RPM sensors not working

Hi!

I have a Pix32 V6, a Pixhawk 6C Mini, and a Cube Orange Plus. I’ve tried to get an RPM sensor working on all three, but without success.

The aircraft is a Chinook style helicopter built from two T-Rex 450 RC helicopters. I’m using the same ESCs and servos on both sides. Overall, it flies reasonably well, but after programming, the ESCs still don’t maintain exactly the same RPM.

I’d like to install two RPM sensors, one for each motor, so I can later analyze how the RPM changes during flight and how collective pitch affects each motor.

Now back to the problem. On all three flight controllers, I’ve configured the AUX pins as GPIOs so I can connect Hall-effect sensors to measure RPM. I managed to get the first sensor working briefly, but the readings were intermittent. During a 10-minute flight, it only detected RPM for about one second, 2–5 times. It seemed to detect the RPM, but I couldn’t tell how collective pitch (COL) was affecting it.

I have 2–5 Hall-effect sensors available, and I’ve verified with both a multimeter and an oscilloscope that they all work correctly. However, I just can’t get reliable RPM data or the necessary parameters in Mission Planner with any of these flight controllers. it only shows ( -1 ) as the reading.

Could someone please help me figure out what I’m doing wrong?

DShot/BDShot ESC’s measure RPM’s, but you can substitute yours with opto RPM sensors (they are cheap and reliable) connected to two phases of the motor and compare.

It may be signalling voltage issue, check that the sensor goes between <0.7V and >2V (LVTTL low and high voltages) when the magnet passes it.

Currently Ardupilot internal governor can control only one motor so you need external governing ESCs.

Looking at the first picture, what’s the actual distance between the magnet and the sensor? Can’t really see it clearly. Did you measure with an oscilloscope the sensor output? On the autopilot side one check you can perform is connecting one of the swashplate PWM signal output back into the GPIo pin you assigned for rpm sensing. If everything is setup correctly you should read the servo frequencyx60.

Thanks! I checked it with an oscilloscope, and the signal was always present.

The thing I didn’t know was that PIX and Pixhawk can’t properly read the signal when it’s coming from a Hall sensor. That type of sensor measures the signal relative to the positive supply (+) rather than ground. The helicopter flight controllers are designed to have built-in support for this, so they handle it without any issues.

On top of that, the signal was inverted and ranged from 0.1 V to 5 V, which Pixhawk also doesn’t like.

I finally got some new sensors, and these output the signal relative to ground instead of the positive supply. Their signal range is 0.2 V to 3.3 V, and as soon as I connected them, everything started working immediately.

Capteur Vitesse de Rotation (RPM) FrSky HALL ADV haute précision - Horus RC Europe.