RCFS-V2
Radio Control
FailSafe Version II

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
So,
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.
Cap
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:
-
Turn on your transmitter
and verify that the stick controls the servo as usual.
-
Turn off the transmitter.
For a very short period the LED should blink, then turn on solid.
-
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.
-
Turn on the
transmitter.
-
Press and hold the
pushbutton switch while applying receiver power. Confirm the LED is flashing.
Release the switch (LED will turn off).
-
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.
-
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.
-
If you chose
Idle or Hold Failsafe modes at step 3 then jump to step 7.
Otherwise, move on to step 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.
-
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: 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: 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. |