diff --git a/src/drivers/pwm_out_sim/PWMSim.cpp b/src/drivers/pwm_out_sim/PWMSim.cpp
index 9a93dfbf8313482b52663d879d3e2ddfe5df9862..ef7054b3800ef03fc7c55472f1ddd6c5d5f96a94 100644
--- a/src/drivers/pwm_out_sim/PWMSim.cpp
+++ b/src/drivers/pwm_out_sim/PWMSim.cpp
@@ -158,6 +158,9 @@ PWMSim::run()
 
 	_armed_sub = orb_subscribe(ORB_ID(actuator_armed));
 
+	/* advertise the mixed control outputs, insist on the first group output */
+	_outputs_pub = orb_advertise(ORB_ID(actuator_outputs), &_actuator_outputs);
+
 	update_params();
 	int params_sub = orb_subscribe(ORB_ID(parameter_update));
 
@@ -284,8 +287,7 @@ PWMSim::run()
 
 			/* and publish for anyone that cares to see */
 			_actuator_outputs.timestamp = hrt_absolute_time();
-			int instance;
-			orb_publish_auto(ORB_ID(actuator_outputs), &_outputs_pub, &_actuator_outputs, &instance, ORB_PRIO_DEFAULT);
+			orb_publish(ORB_ID(actuator_outputs), _outputs_pub, &_actuator_outputs);
 
 			// use first valid timestamp_sample for latency tracking
 			for (int i = 0; i < actuator_controls_s::NUM_ACTUATOR_CONTROL_GROUPS; i++) {
diff --git a/src/drivers/pwm_out_sim/PWMSim.hpp b/src/drivers/pwm_out_sim/PWMSim.hpp
index 87c7beb61234522ca44f50f5e99f594761667cb2..46772adf67e956aa6a09e3f934df891efb8623f6 100644
--- a/src/drivers/pwm_out_sim/PWMSim.hpp
+++ b/src/drivers/pwm_out_sim/PWMSim.hpp
@@ -110,7 +110,7 @@ private:
 
 	int		_armed_sub{-1};
 
-	actuator_outputs_s _actuator_outputs{};
+	actuator_outputs_s _actuator_outputs = {};
 	orb_advert_t	_outputs_pub{nullptr};
 
 	unsigned	_num_outputs{0};