Frequently Asked Questions
- How do I connect a Failsafe to my PC?
- How do I send a flight termination command?
- It was all working fine, but now it just seems to be transmitting garbage. What's going on?
- It sort of works, but doesn't always seem to respond to commands. What's going on?
- I programmed in "$ATTO" as a heartbeat string. Why doesn't it work?
- Do I need to use a "failsafe" type of RC receiver?
- What autopilots are compatible with the Failsafe?
1. How do I connect a Failsafe to my PC?
A Failsafe connected directly to a PC
2. How do I send a flight termination command?
There is no specific flight termination command, but flight termination can easily be achieved by sending the command: $E,80,04,00*FF (or the 3 byte equivalent: 0x80 0x04 0x00).
This command sets the failsafe timeout period to zero, which results in an immediate timeout and assertion of the failsafe positions. Zero will be written to the EEPROM internally, so don't forget to set it back to a more sensible value later.
If there is a later, of course.
3. It was all working fine, but now it just seems to be transmitting garbage. What's going on?
Most likely the Failsafe has become set to a different baudrate. To get things working again, you will have to try all possible baudrates one by one. Fortunately there are only eight, and you can rule out your current choice. The possibilities are 2400, 9600 (the default), 14.4k, 19.2k, 28.8k, 38.4k, 57.6k and 115.2k.
If this happens a lot then you really should figure out why, but failing that you can always send the "Set Baudrate" command periodically. This can be done as often as you like without fear of wearing out the EEPROM; the Failsafe implements an intelligent write algorithm that only writes to its EEPROM if the data has actually changed.
Another cause of receiving garbage is failing to connect ground, or connecting it to the wrong pin. On a 9-pin D connector, ground is pin 5.
4. It sort of works, but doesn't always seem to respond to commands. What's going on?
There are a few possibilities.
Perhaps some spaces are sneaking in between your command bytes. You can have anything you like before or after commands, but the command sequences themselves must be devoid of spaces, tabs and other contaminants.
Another possibility is that the servo group number has been inadvertently changed. To set it back to zero just send $E,80,02,00*FF (or the 3 byte equivalent: 0x80 0x02 0x00). As noted previously, if this continues to be a problem you really should figure out why, but failing that you can always reset the servo group number to zero periodically. Again - because of the intelligent write algorithm - this can be done as often as you like without fear of wearing out the EEPROM.
5. I programmed in "$ATTO" as a heartbeat string. Why doesn't it work?
The string matching routine is very thorough, and will find the heartbeat string regardless of how well buried it is. The only caveat is that the programmable heartbeat string must not begin with "$". If you want to use an NMEA 0183 format text string as a heartbeat, just leave off the initial "$". For example, to use the string "$ATTO" as a heartbeat (which Attopilots send out quite regularly), just program in "ATTO" like this: $E,80,06,ATTO*FF (the byte equivalent is: 0x80 0x06 0x41 0x54 0x54 0x4F 0x00).
6. Do I need to use a "failsafe" type of RC receiver?
No. The RC channel 5 PWM demodulator includes a digital phased-locked loop that is relatively immune to noise and dropout. It will capture and lock onto PWM signals between 40 and 75Hz, and at 50Hz will tolerate up to 40% pulse loss. There is no need for a "failsafe" type of RC receiver; old-fashioned PPM receivers will give perfectly reliable operation.
7. What autopilots are compatible with the Failsafe?
Integrating with AttoPilots is relatively straightforward, because the Failsafe's text commands (the commands beginning with "$E") were created specifically to pass transparently through Attopilots. We even provide a free, open-source Attopilot-compatible GCS that provides access to all of the Failsafe PTZ's features.
Integration with other autopilots requires some knowledge of serial communications and a smattering of electronics. You will need to consider the following questions:
- What do you want the Failsafe to do?
- Do you want Failsafe functionality (monitor the telemetry data stream and take control if the heartbeat signal stops)?
- Do you want payload control (pan, tilt, zoom, parachute, bottle drop, etc)?
- Or both?
- Do Failsafe commands pass transparently through your autopilot? Make sure you try the byte commands as well as the text commands.
- If yes, then you are cooking with gas. You can connect up the Failsafe in the same way as a standard Attopilot installation.
- If not, then the point at which the Failsafe taps into the telemetry data stream is different: it must be upstream (before) the autopilot. This is fine, but there are a couple of things to be aware of:
- If you want failsafe functionality, the GCS must generate the heartbeat string. This is the most sensible and robust arrangement anyway.
- The Failsafe cannot detect an autopilot software crash. Your GCS will need to detect this and tell the Failsafe to take control.
- Failsafe status reporting on the downlink probably won't work (the string probably won't get through the autopilot).
- Does your autopilot ignore the Failsafe commands that will be present on its uplink? Most do, but it's worth checking.
- Is the continuous total servo current consumption less than 2 Amps?
- Yes - the Failsafe will handle it.
- No - you might want to consider an external power source, such as a ServoStation. Don't forget that the Failsafe has to supply current to the telemetry radio as well, and this can be quite significant (up to 0.75 Amps).
- Do you need power supply redundancy?
- No - no worries.
- Yes - get a ServoStation.
- Many autopilots allow RC receiver control, usually switched on and off by one of the RC channels. With what pulse length does your autopilot give control to the RC receiver? The Failsafe gives the RC receiver control with pulse lengths between 0.9 and 1.2 ms (the same as an Attopilot). If your autopilot is different that's ok, but you'll need to consider the implications.