https://github.com/Olivier-ADLER/ardupilot/tree/ArduPPM_v3/Tools/ArduPPM
A binary is available in the binaries folder.
I did modify the arduino usb driver, removing LED control, so that APM 2.x USB TX and RX LEDs can be used to check ArduPPM inputs when connected to Mission Planner.
It's here :
https://github.com/Olivier-ADLER/ardupilot/tree/ArduPPM_v3/Tools/ArduPPM/ATMega32U2
FAILSAFE_MUTE // Failsafe method muting ppm output ( mainly for use with other systems )
FAILSAFE_THROTTLE // Legacy throttle failsafe method using a low value (900 us) on the throttle channel
FAILSAFE_EXTRA_LOW // Preferred new method using extra low PWM values on missing channels ( 700 us is the value i would suggest if possible for the APM ).
1. I think the majority of people are moving to ppmsum or sbus type connections. Is the negative polarity equivalent to SBUS?
2. I somewhat wonder if having support for an additional receiver is worth the additional complexity.
the ppmencoder briefly outputs 900 on all channels before outputting the expected values of 1500
Very impressive, Olivier. I assume this should be eventually shipped with our hardware. What sort of verification / testing will be needed before we make that change?
Chris
// -------------------------------------------------------------// FAILSAFE MODE// -------------------------------------------------------------// FAILSAFE_EXTRA_LOW is the preferred new failsafe method// Check compatibility with your APM board firmware// Channel failsafe value for each lost or invalid channel// will be the extra low value specified with PPM_CHANNEL_LOSS setting// available in the "PPM output special values" section#define FAILSAFE_MUTE 0 // Failsafe method muting ppm output ( mainly for use with other systems )#define FAILSAFE_THROTTLE 1 // Legacy throttle failsafe method using a low value (900 us) on the throttle channel#define FAILSAFE_EXTRA_LOW 2 // Preferred method using extra low PWM values (700 us) on missing channels or on all channels for PPM modes.#define _FAILSAFE_METHOD_ FAILSAFE_THROTTLE // Select the failsafe method here