Frequently Asked Questions Link
RC-CAM Home
Questions?User-to-User ForumVideo files



RC-CAM Topics
Home
Author Background
Concept 30 R/C Heli
Project Cost
First Flight
Site Sponsor
Legal Notice

RC-CAM Links
RC-CAM1
RC-CAM2
RC-CAM3
RC-CAM4
Special Projects
Movie Catalog
Questions?
Video Site Links
Forums



RCFS-V2

Radio Control FailSafe Version II


RCFS Board
RCFS-V2 is a microcontroller based device that adds FailSafe and Glitch Filtering features to nearly any PPM (AM/FM) model aircraft radio control system.  Despite its smaller size, it offers higher performance than the original RCFS failsafe design.



Several years ago we introduced a microcontroller based R/C Failsafe project. It installed inline with a model's servo and offered failsafe-like features to it. The design worked well, but the availability of more powerful PIC microcontrollers has allowed us to create a more advanced design. This release is smaller, uses less parts, and has exciting new software features.

Let's step back for a moment. There are differences of opinion about a R/C failsafe's role during an extended loss of radio contact. Some modelers feel that all a failsafe device can do is just change the location of the crash. Others believe that the ability to hold a model's attitude, or program in a reduced throttle setting, is helpful in such situations. In any event, we wish to make it clear that using the RCFS-V2 device, or any other R/C FailSafe system, is at your risk.

Beyond the failsafe functions, the design offers other useful features. At the hardware level, it offers a robustly buffered servo signal. Unlike the usual 1mA current that is offered by the typical receiver's decoder, RCFS-V2 delivers a low impedance 20mA servo pulse. This healthy servo drive current can help reduce coupled noise problems that may occur on long servo cable runs.

In addition, its sophisticated firmware can effectively mask short duration glitches. The glitch prevention features are handled by a digital impulse filter that does a surprisingly good job. Intermittent glitch issues often haunt small electric park flyer models since they are usually operated in harsh environments. This feature alone may provide a welcome remedy to some installations.

The RCFS-V2 includes an optional low voltage detector. That's right, failsafe can be triggered if servo voltage becomes too low for safe operation. Lastly, a bright LED indicates when the R/C signal has errors. It is a helpful troubleshooting feature during those vital ground range tests.

Features of RCFS-V2:

  • Flexible Failsafe Modes (Idle, Hold, Preset).
  • Glitch Filtering with Servo Pulse Flywheeling.
  • Optional Low Voltage Failsafe.
  • Buffered Servo Signal (20mA drive).
  • 1000 Step Pulse Resolution Provides Exceptional Pulse Fidelity.
  • Easy Range Testing: Status LED Indicates Servo Pulse Errors.
  • All Failsafe Features are User Programmable (Easy Pushbutton Operation).
  • Designed for electric R/C model airplanes. Works with all 5V BEC voltage sources.

Hold Me

RCFS-V2 is installed between the R/C receiver and servo. It constantly analyzes the incoming servo pulses and looks for trouble. Using a microcontroller, the pulses and framerate are checked to see if they fit within a allowable range, in a template sort of fashion. If they are found to be acceptable then they are passed on to the servo.

If the servo's pulse width or framerate is invalid, the corrupted pulse is replaced with the last known good servo information. In addition, if the servo pulse is valid, yet suspiciously out of context, the proprietary impulse filter will determine if the pulse should be "repaired." This pulse substitution is maintained for a short time in a process called Servo Pulse Flywheeling.

If the problem persists for more than one second then flywheeling is terminated and the FailSafe feature is enabled. FailSafe can be set to hold the last valid position, move the servo to a preset position, or idle (disable) the servo pulse. The latter is used with Electronic Speed Controls (ESC) or when you want to reduce servo currents to a minimum when the RF signal is lost.

All the features are user-programmable. A tiny switch and LED status indicator are used to set the parameters you want. It is as easy as pressing a button.

Timing is Everything

Servo PulseSo, how does this magic really work? The servo signal is a simple digital pulse. It spends most of its time at a logic low (0V). About every 20mS it goes logic high (3-5VDC) and then quickly goes low again. It is this tiny window of logic high time, called the pulse width, that gets the attention of the servo.

Please refer to the drawing. The period labeled "A" is called the frame rate. In the example it is repeated every 20mS (50 times per second), which is quite typical for most AM or FM (PPM) R/C transmitters.

Modern servos define center as a 1.5mS pulse width, as shown by detail "B" in the drawing. Full servo rotation to one side would require that this pulse width be reduced to 1.0mS. Full rotation to the other side would require the pulse width to increase to 2.0mS.

In the eyes of RCFS, good servo pulses will be between 0.8mS and 2.2mS long. Even though a normal servo signal is 1.0mS to 2.0mS, some transmitters offer ATV settings that can extend the timing beyond that. The wider range taken by RCFS allows compatibility with such radio systems.

When servo pulses do not fall within the allowed pulse range, or the framerate becomes suspicious, the signal is flagged as "corrupt." When bad pulses are encountered during the flywheeling period, they are immediately substituted with the last known good servo pulse value. This helps mask intermittent glitches. If the problem persists for more than a second then RCFS-V2 will switch to a full FailSafe state. The user can set the failsafe mode as they see fit.


Less is the New More

Even though there are more features than before, the parts count is less. All it takes is an 8-pin PIC microcontroller, capacitor, resistor, and LED. If you want the Low voltage detection then two more parts are needed. Shopping for these parts is a breeze since they are all available at Digi-Key.

You will need a PIC12F683 chip programmer to "burn" the provided hex file's object code into the microcontroller. Be sure to select the configuration fuses during chip burning as follows:
WDT: Disabled
MCLR: Disabled
Oscillator: IntRC I/O
Code Protection: Disable
EE Protection: Disable
FCM: Enable
BODEN0: = 1
BODEN1: = 1
Power Timer: Enable
IESO: Enable

The PIC's Hex file is designed to automatically instruct the programming hardware to chose these values. However, it is always a good idea to check them for accuracy. Be sure to setup your programmer so that it does NOT overwrite the factory stored OSCAL value! Please do not ask me how to do that -- I will not know how to operate your equipment.

If you have trouble burning the PIC, then please check your programmer. Whatever the fault, it is not a RC-CAM hex file issue. The most common problem is that the user has forgotten to burn the PIC's configuration fuses, as described above.

By the way, unlike most of our other PIC projects, this one does not have Code Protection enabled. That means that you can verify the PIC chip after programming. Please keep in mind that there are restrictions to using the hex file. Permission requirements are found in the readme file that is provided with the hex data.

Board Construction:

Even though it is very simple, this project is only recommended to those that have electronic assembly experienced. If you have successfully built any of the other RC-CAM Electronic Projects then you should have no problem with this one. Entry level builders should plan on getting some hands-on help.

Below is the complete materials list:

DESCRIPTION REF DIGIKEY P/N
PIC12F683 U1 PIC12F683-I/P-ND
.1uF Cap C1 1203PHCT-ND
150 ohm 1/8W Resistor R1 150EBK-ND
Bright LED LED1 404-1114-ND
Push Button Switch S1 EG2513-ND
3-Pin Header J2 A26510-40-ND
Servo Cable J1 N/A
Jumper Wire JP1 N/A

OPTIONAL LOW VOLTAGE DETECT PARTS

LM285-2-5 Voltage Ref IC D1 296-9524-5-ND
10K 1/8W Resistor R2 10KEBK-ND

The RCFS-V2 board can be built using nearly any technique you wish. Ours was built on a tiny piece of phenolic perfboard. Be sure that your construction method is worthy of a model aircraft's environment.

Layout is not critical. Perfboard ConstructionCap C1 should be installed with short leads to the PIC. The circuit was point-to-point wired using 30 gauge insulated Kynar wire. This wire is normally used for wirewrapping, but works fine with a soldering iron. We recommend a temperature controlled iron (700° tip).

If the low voltage detect feature is not used then install the JP1 jumper wire and omit R2 and D1. If low voltage detection is wanted, then omit JP1 and install the two components.

The circuit can be hardwired with the servo's existing cable. However, we used a 3-Pin header for J2 and a short servo cable on J1. Installation in the model plane is a plug-and-go sort of effort.

Check it Out

Simple mistakes can destroy electronic parts and may generally ruin your day, so check your work carefully. Do not install the receiver battery until you have verified that the power leads are not shorted (use an ohmmeter). If all looks good, plug the RCFS-V2 into a channel of your R/C receiver.

The RCFS-V2 is compatible with 5VDC ESC/BEC power sources. But, do NOT install the PIC chip until you have verified that U1 pin-8 is ground and pin-1 has +4.5 to +5.5 VDC on it when power is applied. Remove the battery BEFORE you install the PIC chip.

Now it's time to test your work. Just follow these three simple steps:

  1. Turn on your transmitter and verify that the stick controls the servo as usual.
  2. Turn off the transmitter. For a very short period the LED should blink, then turn on solid.
  3. Turn on the transmitter and verify the LED immediately turns off..

Note: Upon power-up, the failsafe output will be off until a valid R/C signal is detected. So be sure to turn on the R/C transmitter before expecting anything magic to happen.

Optional Low Voltage Feature

The optional low voltage feature should be used in limited circumstances. The feature is designed to invoke failsafe when the servo voltage is under 3.8VDC. Servo control will be immediately restored once the voltage rises to about 4.2VDC. The only expected application is on a throttle servo; perhaps you would like to idle the model's motor if the servo voltage is bad (this can be used to warn you of trouble). In any case, use this feature with care.


User Configuration (Programming)

As mention earlier, the failsafe features are user programmable. Configuration is a breeze. Just follow these instructions.

  1. Turn on the transmitter.
  2. Press and hold the pushbutton switch while applying receiver power. Confirm the LED is flashing. Release the switch (LED will turn off).
  3. Set the desired Failsafe mode as follows:
    > Idle Mode: Press One (1) time.
    > Hold Mode: Press Two (2) times. This provides the servo hold feature.
    > Preset Mode: Press Three (3) times. This is popular for throttle servos.
  4. Wait about five seconds until the LED begins to slowly flash. Now it is time to set the glitch filtering feature. You have five seconds to respond.
    > Filter Off: Do NOT press switch (do nothing).
    > Filter On: Press One (1) Time. This is the recommended setting.
  5. If you chose Idle or Hold Failsafe modes at step 3 then jump to step 7. Otherwise, move on to step 6.
  6. Wait until you see the LED's Flash-Flash-pause pattern. Set the servo Preset position by moving the transmitter stick. Once the servo is in the failsafe position you need, press the pushbutton switch.
  7. Done. System is ready to use. This is a good time to test out your settings (turn off the transmitter and wait a second or two). You may go back to step 1 to change your preferred settings at any time.


Blink Once for Yes

A review of the programmed user settings can be seen at any time. All you have to do is press the pushbutton during normal operation (not during failsafe). A code will be blinked out:
> Idle Mode: Blink-Pause.
> Hold Mode: Blink-Blink-Pause.
> Preset Mode: Blink-Blink-Blink-Pause.

After the pause (about 3 secs) one more blink may be seen. It it is, then the Glitch Filter is enabled. Otherwise, if the extra blink is missing, then the Glitch Filter is disabled.


Design Documents:

The technical details are available as file downloads. There is no charge for the information when used in a personal (hobby) project. Commercial users must obtain written approval before use.

Please be aware that the information is copyright protected, so you are not authorized to republish it, distribute it, or sell it, in any form. If you wish to share it, please do so only by providing a link to the RC-CAM site. Please respect this simple request.

Schematic Files Schematic Files: PDF file of the RCFS-V2 circuitry. All major components are from http://www.digikey.com/.
Revision: Rev A, dated 04-05-2005
PIC Object Code Files PIC Object Code: Firmware Hex files. You should occasionally check for updates.
Revision: V2.0, dated 04-05-2005.


The Small Print:

If you need a part then please consult the sources shown in the project (see schematics download). I do not work for, nor represent, ANY supplier of the parts used in RCFS-V2. Any reference to a vendor is for your convenience and I do not endorse or profit from any purchase that you make. You are free to use any parts source that you wish.

All information is provided as-is. I do not offer any warranty on its suitability. That means that if you build and use this device, you will do so at your own risk. If you find documentation or software errors then please report them to me.


FeedBack:

I would enjoy hearing from anyone that uses the RCFS-V2. Please send me an email if you build it. Your comments and suggestions are welcome.




 © 2005-2009 RC-CAM, all rights reserved.