Questions on Internal RSC Governor

Hi Juergen,

Previously, I used a Hall RPM sensor on magnets in the engine cooling fan with pull-up resistor connect to the servo rail (8.4V). It somehow works but has many other problems. If I don’t use a pull-up resistor, the autopilot won’t get a RPM reading.

Hi Steve, yes if you use a seperate Hall RPM sensor this need to be powered maybe from the servo rail by a pullup. But now you only want to use as “secondary receiver” the signal from your ignition system. So this system provides the pullup for the signal line. Your pixhawk has only to “listen” to this signal without changing it, otherwize you can get problems with your ignition. So don’t use any other pullup to the signal line from any other power source. If your pixhawk has a high resitance input path and accepts up to 8 V than your problem is probably a setting.
Internal Error, ISR Flood mean if I unterstood the documentation correct, that on that pin is a too high changing rate is detected and therefore the pin disabled.
So again, do you have a chance to check the signal with an oszilloscope?

Hi Steve, before adding resistors, I would advise to follow these steps . Get an Arduino and check both setups, so your original rpm sensor with fan mounted magnet and the setup with the y-cable.
The Arduino sketch will help you a lot in debugging and finally say who is at fault.
I suspect the 2.4.8 might be the problem, but see first what your findings are with the provided link precdure.

Hi Ferruccio,

I used Arduino sketch on the rpm sensor with magnets mounted on the cooling fan, It has two modes, one is detected, the other is the RPM. With a pull-up resistor, I can see the magnets detected or thr RPM, but I cannot see anything abnormal (such as ISR flooding) in the two modes, how could I use the Arduino to find out the ISR flooding?

Thanks.

Thanks.

Hi Jourgen,

I am puzzled that the same rpm signal that causes ISR flooding in Pixhawk has no problems in the ignition module.

I am not sure the nature of this ISR flooding, is it really poor RPM signal created by the Hall switch or it is the autopilot that has slow response rate. I knew some other users of Miniature Interceptor heli (with O.S. GT15HZII engine) use XGuard RPM Sensor for OS Max Gasser Ignition Systems, power buffer and ESD Protector, basically a Y-cable to feed the rpm signal generated in the engine drive washer to an external governor or an internal governor of FBL controller. I haven’t heard about similar ISR flloding of rpm signal in these systems.

Hi Steve,
If I interpret the ardupilot documentation correct “ISR flood” means that by the signal on the refered input pin to much interrupst are generated (ISR > Interrupt Service Routine). This can happen if the signal is very noisy or if it is switching with contact bouncing or overshooting.
The ignition system might have some input signal conditioning and so can use the signals. The sensor and the ignition system is something which is developed together. So we should never change this system in between as we don’t want that your ignition will get errors and therefore you loose your helicopter.
Also for the autopilot is signal conditioning necessary. High end autopilot might have this functionallty in built. Low end autopilot might be not. In that case it can be done external. So your XGuard device seems to be such a device but I have no experience with it.
But all this is more theoratically analysis based on your report. Without a good measurement on your input signal it is hard to say if this is true or not.

So, in the end, the only difference between the Arduino bench test and the Pixhawk is the supplied voltage? 8.4V in the case of the Pixhawk and 5V in the case of Arduino bench test.
What would really help is a logic level analyzer, to see if there is any difference in the output signal with the two setups (in terms of square wave and voltage levels).
Alternatively, you don’t happen to have a different flight control to test this stuff with? I’m inclined to think the issue is on the flight control hardware side, rather than sensors or parametrization (which looks good to me).

Hi Ferruccio,

Thanks for the answers. Yes, I wish I can set the Arduino to 8.4V. I did see something abnormal in Arduino. When I set detect_on = true; it should only spill the message “detected” when I use a standalone magnet to approach the sensor. But sometimes in this mode, it spill the message of rpm number.

I also searched the Traditional heli discourse on “ISR Flood” and found out that it is not an uncommon problem for camera users when they connect the camera pins to GPIO.

I don’t have other autopilot beside Pixhawk 2.4.8. I did have logic analyzer. I am in a trip overseas now and will be back in about Feb 21 and will start to use logic analyzer on the built-in rpm sensor of this OS GT15HZII engine, and will also test the Y-cable output of this rpm sensor to feed in an Aerospire Multi-Gov pro external governor.

1 Like

Hi Steve, very good that you will have the possibility to use a logic analyzer. Is it just a poor logic analyzer or can you use it also as oszilloscope? Both functionality would be the best.

Hi Juergen and Ferruccio,

I am sorry in the mistakes in my previous message. I don’t have a logic analyzer, but do have a oscilloscope which I havn’t used for many years. I will start to do it after I come back from my trip.

1 Like

Hi Ferruccio,

I just returned from a trip overseas. Before I further investigate the OS engine’s rpm signal using oscilloscope, I decided to first test the RPM signal from OS engine on an external Aerospire Multi-Gov Pro governor to see if my Pixhawk is problematic. In the instruction manual of this external governor, it asks the users to set up the throttle curves in the transmitter. I don’t know what is the right way to set up the throttle curves in Arduoilot with external governor. Should I really set it up in the transmitter or should I use the ardupilot’s mode 3 (throttle curves) to do so.

Thanks.

Hi Steve, I think it is a question what you want to test. The Aerospire Multi-Gov Pro dos not know anything about RC or FC systems it just need an input of the desired speed. If direct connected to the RC-receiver or RC-passthrough is used you need the throttle curve in the transmitter. If connected to FC you can either use the FC throttle curve ( H_RSC_MODE : 3) or if you always want the same stable RPM than use H_RSC_MODE : 2 and set the H_RSC_SETPOINT to te desired value.

Hi Steve, use mode 3 and hook aerospire to the autopilot, not the receiver (don’t use throttle curves in the remote control).

3 Likes

Hi Ferruccio,

I have a further question on the external engine governor. I knew I should set the H_RSC_MODE = 2, but not sure what value should be used in the H_RSC_SETPOINT for my Aerospire external governor. This governor has an LCD configuration tool to set the desired rotor speed and the gear ratio, etc. I noticed that when I used H_RSC_MODE = 2, and after enabling the motor interlock switch, the Ch8 output (connected to ext governor’s input) will very soon turn the throttle servo (connected to this ext governor’s output) horn to a max range. This max range range is not the same as servo8_max but is determined by the H_RSC_SETPOINT value. When I used the Aerospire LCD configuration tool, it has a menu to set the idle rpm’s and set the high rpm’s PWM values. If I set the H_RSC_SETPOINT = 70, and then enable the motor interlock, in the Aerospire’s LCD config tool’s set idle and set high menu, I can see the high’s PWM value becomes much less than the servo8_max. If I set the H_RSC_SETPOINT = 100, then in the Aerospire’s LCD config tool’s set idle and set high menu, the high’s pwm value will be the same as servo8_max. I think this set idle and set high menu 's PWM values will be used by this governor to set the desired rotor speed later.

Should I use H_RSC_SETPOINT = 100 in this external governor?

Thanks.

Hi Steve,

No, it needs set H_RSC_MODE = 3 as I previously stated.
Aerospire is expecting a throttle curve backup (in case of rpm sensor fail).
Again, you should use the throttle curve points you have been using so far as a baseline.
For the setting through LCD display proceed as follows:
SetIdle: arm aircraft and leave motor interlock( CH8) low, throttle output should be at H_RSC_IDLE-> hit SetIdle on AP multigov display
SetHigh: arm aircraft, move motor intelock (CH8) to high, raise the collective fully up (and wait for throttle servo pwm to reach maximum value)-> hit SetHigh on AP multigov display
Set the gear ratio and target rpm according to your specific machine.
It will start governing the motor speed once these two conditions are met:

  1. throttle output coming from the autopilot is 20% greater thein Idle
  2. measured rpm are at least 70% of target rpm

Hi Ferruccio,

I set the H_RSC_MODE = 3 with the throttle curves 32-40-50-75-100, when I enable the motor interlock then raise the collective almost to 40%, the Aerospire governor never spool up by itself (the 40% collective stick almost lifted the heli off from the ground), the rotor speed never reach 70% of 1700 rpm by itself. If I reduce the collective stick, the engine simply slowed down. The Aerospire governor never spool up by itself to reach the 70% rotor speed. Basically, the H_RSC_MODE = 3 is simply the throttle curves in Ardupilot without actually activating the external governor. If I set H_RSC_MODE = 2 with H_RSC_SETPOINT = 100%, the Aerospire will spool up and activate and lock the rotor speed at 1700 rpm when I enable motor Interlock (I used a tachometer on the ground to know it).

Hi Steve,
then you just need to further tune the throttle curve (increase points 0-25), so to let the governor engage before liftoff. It is not safe to operate this setup in H_RSC_MODE 2 , if for any reason the governor stops working it will revert to throttle output from autopilot (100%), could have serious consequence. I hope this is clear.