No motor / servo output on Pixhawk 4 w/ PM07 board

Hi all,
I’ve been trying to get my rover working for a bit now and I haven’t had any luck.

  • Flysky FS-i6X transmitter, FS-iA6B receiver set up for PPM
  • 3S 5200mah lipo battery
  • QUICRUN WP 1080 brushed ESC w/ 7.4BEC
  • 7.4v servo
  • Pixhawk 4 w/ PM07power board
  • some brushed motor that already came on this chassis (I’m converting a kids quadbike lol)

The servo works, I’ve tested it with an arduino. The BEC is working, I verified voltage.
IO Out on the Pixhawk 4 is connected to FMU-PWM in on the PM07 and the servo and ESC are connected to the relevant output pins 1 & 3.

On the radio calibration screen everything looks fine: throttle etc operate like normal.
On the servo output screen, position stays at 1500 for steering & throttle even when armed & in manual mode. Switching the servos to RCIN1 and RCIN3 makes the position change on the screen but I don’t see anything physically happen.

Parameters, logs:
params.param (14.6 KB)
2021-11-29 17-58-56.bin (696.0 KB)

EDIT: see next response below

It wasn’t on in the photo but I have been turning it on to test!
I can’t calibrate it yet because the calibration steps require using throttle input, but the throttle input isn’t making its way to the ESC at all.

The steering servo also isn’t working which makes me think there’s a config issue somewhere, but I’ve checked the wiki many times and everything looks right

I jumped in thinking I’d be of some help since I’m at least a little familiar with the hardware in use, but I’m coming up empty so far.

A review of your log shows that the Rover is indeed armed in manual mode with throttle and steering inputs received. And indeed, there is no throttle or steering output commanded, meaning that there is almost certainly a config parameter snafu somewhere (or a failsafe preventing motion control).

I looked a little at the BRD_PWM_COUNT and virtual pin assignment section of the documentation, but I came up empty there, too.

I’m sure it’s something simple, but I can’t quite pinpoint it for you just yet.

I’m not seeing anything either. Try setting BRD_SAFETYOPTION to 3.

Thanks for the help, I appreciate it.

I did some more testing. The servo works when powered by the BEC and given PWM from an Arduino.
In the raw sensor view, I can see steering is being output to the servo (or at least should be), but the servo doesn’t actually do anything. I switched the 10pin cable to see if it’s a connection issue but as far as I can see it’s fine too.
I’m going to try the safety option now, and I’ll upload new logs

What’s odd as Yuri said is it’s armed and there is throttle control input but no output. There is steering output. This happens when it’s not armed but it is. Why the steering servo doesn’t move is another problem. Unfortunately I’m nowhere near my Rover so can’t physically test anything.

Ah gotcha. I did the parameter change you suggested but I still saw the same behavior.
I did change the RC Mapping just now as well, since the throttle doesn’t have a spring on my transmitter I swapped throttle and pitch (and verified in radio calibration that I did it correctly).
I wish I had some device so I could see what the actual PWM pin was doing, if anything.
New params / logs:
params.param (14.6 KB)
2021-11-29 19-27-24.bin (672.5 KB)

I thought I saw steering output clamped at zero as well. Perhaps you caught something even more strange?

I’m away from the laptop where I review logs for a little bit, but I just thought of something. How is your steering servo powered? Are you assuming that the center pin on the Pixhawk is powered? It is not. That rail is dead on purpose, with the express intent that you provide power on an unused pin and then use it as a distribution bus for that source.

I see the behavior one would expect with an unarmed Rover. Steering output from control input and no output (~1500us) with attempted throttle control input.

You know you have arm/disarm as an RC6 option and haven’t activated it. You also have rudder arming configured. Disable rudder arming and activate the switch. That’s how I configure it.

1 Like

Yes, I have the 7.4v BEC on that rail and I’ve checked that the power is actually getting to it too.

As far as I can tell, I don’t need to flip the RC6 switch (although I have tried that too) since I’m currently force arming in mission planner as I’m testing it on my workbench indoors so the GPS lock isn’t good enough to properly arm it. I’ll check the rudder arming bit

1 Like

Perhaps keep it simple. Disable the safety switch, disable arming checks, disable rudder arming and use the switch. Or disable arming altogether and see if the motor runs! All that fluff can be turned on later :grinning:

This is so embarrassing lol. I had no idea you actually had to do something on the safety switch (I thought it was only to kill it), and where I sit the blinking red light faces away from me. For my first ardupilot project we weren’t allowed to use GPS, so my team member must have just disabled the safety switch checks and so I never knew you had to actually do anything besides the arming. Everything is working now lol