"PRO-FLASH" User's Manual
Note: All pictures that follow are
"clickable". Clicking on them will show you an enlargement!
User's Manual for the
"Pro-Flash" Programmable LED Flasher/Sequencer!
The "Pro-Flash", is a programmable LED Sequencer/Flasher that is based around a small programmed PIC microcontroller. The Pro-Flash controller includes 8 programmable LED sequencing channels. Probably the most unique, cutting-edge feature about the Pro-Flash is the ability to customize the LED flashing sequence using a PC-based (i.e. Windows) program. This programming software includes a unique and intuitive Graphical User Interface. Pro-Flash's servo wire is plugged into a spare R/C receiver channel for power and control while a separate programming jack supplied on the Pro-Flash is used to reprogram the Pro-Flash flasher/sequencer. A computer's serial port (9-pin) connection and programming cable is only needed to reprogram the Pro-Flash. The free downloadable programming software also allows the user to "test" the LED sequence they develop by use of software-based graphical representations of the 8 LED channels. The sequencer speed can also be programmed by the user, as well as the sequencer end marker (you don't need to use all 100 events in your sequence). Another great feature of the Pro-Flash controller is that each of the 8 LED channels can be controlled (on/off) using a spare R/C receiver channel. This gives the user the ability to remotely turn on or off either of the 8 LED channels, even while your model is being operated. How neat is that?
Pro-Flash Controller Specifications
merely 10 grams and roughly 1.7" long by 1" wide by 1/4" thick, the Pro-Flash is based around an 18-pin programmable microcontroller chip
The controller can gets it power from either a R/C receiver or an external
battery (normally, it is plugged into a receiver). The Pro-Flash is
designed to operate off of a 4.8-5 volt power source therefore do not attempt to
run it off of anything else or you will ruin the microcontroller. The
Pro-Flash provides for 8 independent LED sequencer channels that a driven using
individual power output transistor (2N2222). These output transistors can
typically provide up to
400 milliamps of total current, therefore, you are capable of connecting
multiple LED to each channel if required. In fact, theoretically speaking,
you should be able to connect at least 10-15 LEDs to each channel (assuming each LED
draws around 25 milliamps each). Each of the 8 Pro-Flash LED
channels can have up to a maximum of 100 individual events (an event either turns
the LED on or off).
|# of LED Channels||8 LED Channels|
|# Events/Channel||100 maximum
(User can set for less if desired)
|Operating Voltage||4.8 volts to 5.0 volts
(a filtered/regulated source is recommended, such as a BEC)
|Operating Current||With out LEDs connected,
(LEDs draw roughly 25mA each)
|Total Output Current||Each Transistor handles at
(so 400mA x 8 = 3.2 amps total)
|Dimensions||Roughly 1" x 1.7" x .25", not counting the connector|
|Weight||Roughly 10 grams total
(includes completed controller, servo lead and LED connector)
|Programming Software||Tested on Windows 98, 2000, ME
(developed using MS Visual Basic 5.0)
picture to the left indicates exactly what is included in the Pro-Flash kit :
(1 controller, one programming cable and eight 2-pin LED mating connectors). Remove
the contents from their plastic packing bags and be sure to not loose the small
miniature LED mating connectors. These connectors mate to the controller's
LED connections. To use these connectors, you will need to solder on some
small gauge, two conductor wire, a series resistor (see below) and finally your
LED. If you require more mating connectors, these can be purchased through
DIYRC.com (send an email).
NOTE: Some pre-manufactured LEDs (for systems such as Curtek) can easily plug right onto Pro-Flash's LED connection! The output pins currently shown on the Pro-Flash above are "machine pin" headers whereas Curtek uses a normal "square pin" header. At your request, I can solder on this type of connection instead of the machine pin header (although, the machine pin headers are higher quality and in fact lighter in weight). Email me with your request in any case.
Note: If you are using a BEC to power up your receiver, and you have the Pro-Flash plugged into the receiver for power (and control), you will need to be sure the BEC is rated for the total current that will be drawn, that being the combination of the connected servos (normally powered from Rx), the receiver itself, the Pro-Flash itself and the LEDs connected to the Pro-Flash.
The first step you will probably need to do is to assemble your LED using the supplied mating connectors. Also be sure to add an appropriate series resistor in series with one of the LED leads as you need to limit the current supplied to the LED as to not exceed it's maximum specified operating current, otherwise LED damage will occur. (See Notes section below)
LED mating connectors supplied provide a nice tight connection to the LED
connector pins located on the Pro-Flash. If you are going to heat shrink
these ends, be sure you do not cover the black portion of the connector as this
will not allow you to plug these connectors side-by-side onto the Pro-Flash (as
the heat shrink makes the connectors too wide). If you are only
using 4 LEDs (one per channel), you can skip other other row on the Pro-Flash
Only apply heat shrink around the metal portion of the connectors and connecting wires, especially on the connector side that will connect to the Pro-Flash controller. (see picture on left). Also notice that this LED harness has female connectors on both side. This allows for the user to replace LEDs (maybe to simply change a color). The LED connector include a 100 ohm resistor (inside the black heat shrink tubing). Just a few ideas when you are building your LEDs.
The picture to the left indicates the 8 LED channel outputs. Notice that each of the 8 channels have a single output. If you want to add more LEDs to a channel, you will need to either make an adapter (a "Y" adapter or splitter) or simply solder multiple LED lead wires onto the connector. As shown in the picture, the pins along the top are ground (-) while the pins along the bottom are positive (+).
The servo-like cable/plug leading out of the Pro-Flash is used to get servo information and power from your receiver during normal use such as in your R/C model.
NOTE: Be sure that when you connect the Pro-Flash cable to your receiver, you pay close attention to voltage polarity. As with most servo wires, the black or brown wire is ground, the orange or red wire is +V while the green or white wire is the servo signal. Plugging this cable in wrong could and probably would damage the Pro-Flash.
Programming the Pro-Flash
Probably the neatest feature of the Pro-Flash is the ability for the user to completely customize the flashing sequence for each of the 8 LED channels, and then download it to the Pro-Flash. Not only are these sequences programmable, but the user can also program the overall LED sequencing speed. Another really neat and very useful feature is the "Test" feature where you can actually visually test the sequence you programmed even with out the Pro-Flash connected. Pressing the test button in the software will run the sequence while visually displaying the actually sequence on GUI-based LEDs. This test function also allows you to test servo control function too by popping up a slider control which emulates the R/C transmitter's stick/slider control. The following sections explain each of the programming functions such as general Program Settings (communications port and sequencer speeds), setting the graphical LED colors, setting LED Channel Sequences, using the LED channel options button, setting the end of the sequence, assigning servo control functions, testing the sequence, opening, merging and saving sequence files on your PC and finally downloading your sequence to the Pro-Flash.
Changing the General Program Settings (Comm Port and Sequencer Speed settings):
The Pro-Flash programming software allows the user to alter the Pro-Flash sequencer speed. Additionally, the software also allows the user to select the proper communications port to which the download cable is connected to. These settings can be changed by selecting the "Settings" menu option. Selecting this option will bring up a new Settings window. On the far left side, there exists a options frame that allows the user to change the communications port (1->6). Use the pull-down and select the port # to which you have the programming cable connected (it might in fact default to port 2 which you might not have; typically, this would be set to port#1). Once you set this correctly, this setting is saved in a configuration file and will never need to be changed again unless you plug the programming cable onto a different port. On the far right of the Settings window, you will see two modifiable settings mainly "LED Test Speed" and "Sequencer Delay". The first, "LED Test Speed" allows the user to fine tune the sequencer's speed when using the "Test" button. Although the software uses timers, I have found that some older computer can run sluggish. This setting usually defaults to 20 (20 milliseconds) and should suffice on most modern computer. You can change this setting (up or down) to alter the test speed, such that it closely matched that of the real Pro-Flash sequencer. The "Sequencer Delay" option allows the user to alter the actual running speed on the Pro-Flash unit (this value is also sent to the Pro-Flash" when downloading a sequence). This "delay" value indicated the actual delay between each of the 50 programmed events. A delay value of 1 (1ms) will make the Pro-Flash run as fast as it can. Increasing this delay value will slow down the running of the sequence (increases the delay time between events). Experiment with these values until you are happy with the results. Typically, a delay setting of 10-15ms will suffice for most applications.
Setting GUI LED Colors:
The Pro-Flash programming software emulates the LEDs connected to the Pro-Flash controller and these LEDs (LED#1 - 4) are shown towards the left of each of the 4 sequence event rows. Initially, when the software is loaded, these color default to black and you will need to set these. To select an LED color, click on the LED name (LED#1-4) with your mouse and a window will pop up with various color names. Simply select the appropriate color (maybe even the color LED you plan to actually hook up to your Pro-Flash). Upon selecting the color, the LED text color will also change indicating the color the graphical LED will appear when triggered. Do this for the remaining graphical LEDs.
NOTE: If you programmed a sequence, pressed the "Test" button and do not see any graphical LEDs flashing, you might have forgotten to set the graphical LED colors. Stop the test, set the colors and rerun the test.
Setting LED Channel Sequence/Events:
The user has 50 events per channel that are capable of being programmed where an event is either On or Off, as indicated with a check mark if On. You can set the sequence for each channels by using your mouse and mouse button (you can even hold and drag across the row to mark/unmark). Click on the individual checkboxes to either set or unset the individual sequence event. Another quicker method to set a particular channel's sequence is to use the Channel Options button (small square button just to the right of the graphical LEDs) which is explained below.
Using the LED Channel Options button:
The Channel Options button allows you to manipulate the selected channel's sequence in that you can quickly:
|Clear All||Turns OFF all events on selected channel|
|Set All||Turns ON all events on selected channel|
|Toggle All||Toggles the state of all selected channels events (if event is on, it is turned off, if event is off, it is turned on)|
|Copy To||Copy the selected channel (all events) to another channel (user then selects channel to copy to)|
|Copy From||Copy another channel's events into the selected channel (user then selects channel to copy from)|
|Skip 1||Turns on every other event on selected channel|
|Skip 2||Turns on every 3rd event on selected channel|
|Skip 3||Turns on every 4th event on selected channel|
|Cancel||Cancels the Channel Options action, returns to GUI|
you selected either the "Copy To" or the "Copy From" option, you will see this
pop-up window shown to the left, allowing you to choose a LED channel (LED#) for
which to either copy to or to copy from. Upon selecting one, you will see
the selected channel's sequence events update accordingly.
Setting the LED Sequence "End Marker":
Normally, the Pro-Flash programming assumes that the user will use all 100 events when developing a new sequence. There might be a time when the user might only want to use 25 events instead of 100. If you were to look closely at the programming software, there exist a grayish line across the bottom of the sequencer that has numbers (1->10 or really 1->0) that cycle 10 times, indicating the 100 individual events. This "event bar" is also used to indicate the displayed events as they are being played pack during testing. The programming software indicates the sequence "end mark" by painting a number on this bar RED. Normally, when starting a new sequence, you will see the far most "0" painted red (event #100). This indicates that this event will be the last event in the sequence and will then loop back around to the first event (Event #1), repeating indefinitely. To change this setting, simply "double-click" on another number located on this bar until you see it change to red/bold text. The sequence end mark has now been changed. If you were to now press "Test", you will see that the test sequencer now cycles up to the newly selected end marker and then loops back to the first event. This End Marker setting is also sent to the Pro-Flash when ever a sequence is downloaded.
The All-Important "Servo Control":
The Pro-Flash programming software includes a "servo control" for each of the 8 channels that allows the user to use a R/C servo output (from a R/C receiver) as a "switch" control for each LED channel. This feature allows the user to control (turn On or Off) each of the 8 channels in response to the position of the servo control. If the user uses a stick/slider as the servo control, the user will be able to define one of 16 control settings for each LED channel. These settings are based upon the servo position, that consisting of 4 unique "Zones". The zones are 0->1/4, 1/4->1/2, 1/2->3/4, and 3/4 ->Full (with full being the full deflection of the switch/slider). But how do you get to choose 1 of 16 positions? Well, you are also allowed to select one of the 16 possible "binary" combinations of these zones. For instance, you could program a LED channel to be active only when the stick is in the first zone (0->1/4) OR in the forth zone (3/4->Full). This binary interpretation would be "1001". All 16 combinations are available to the user. The servo pulse position determines the binary "mask" applied to each LED's sequence set by the user. A mask of "*-*-" (as selected in the programming software) would mean the sequence would only be active (turned on) when the servo is in zone 2 (1/4->1/2) or in zone 4 (full). As another last example, a mask of "***-" would mean the LED sequence would be active for zones 2 thru 4, except for zone 1 (0->1/4), where the channel would be turned off. If the servo output used for the control is a toggle switch instead of a variable slider/joystick, you would then obviously have only two zones (on or off, or, 0->1/4 and 3/4->Full). The chart below indicated how the servo control setting works for each of the LED channels.
|Servo Control Setting||Position of Transmitter Stick/Slider & Effect on LED Channel|
(0 -> 1/4)
(1/4 -> 1/2)
(1/2 -> 3/4)
(3/4 -> Full)
(i.e. Always On)
(i.e. Always On)
Included with the Pro-Flash software download are a few example files that show you some sample sequences/controls you can develop. Use your own imagination... the possibilities are almost endless.
As for one example (see Aircraft-Servo9.dat), this is how each of the channels are set up
Ch#1&5 = White LED, 1 double blink (on-off-on-off)
every second (Tail Strobe)
Ch#2&6 = Red LED, one longer blink (on-off) every 2 seconds; alternates with Ch#3 (Wingtip)
Ch#3&7 = Green LED, one longer blink every 2 seconds; alternates with Ch#2 (Wingtip)
Ch#4&8 = White LED, always ON (Landing light) - but controlled by servo control (see below)
This can be seen on the following screen shot:
As for servo controls, the following can also be programmed (assuming you are controlling Pro-Flash using a spare slider/stick channel, or even tapping off of the throttle servo wire):
When stick is 3/4 - to- Full deflection, Only CH#1&5 is active
(i.e. flashing strobe on Tail)
When stick is 1/2 - to- 3/4 deflection, Only Ch#2&6 and Ch#3 are active (i.e. red & green wing tip light)
When stick is 1/1 - to- 1/2 deflection, Only Ch#1&5, Ch#2&6 and Ch#3&7 are active (i.e. Both strobe and wingtip lights)
When stick is 0 - to- 1/4 deflection, All channels (1-8) are active (i.e. Strobe, wing tip & Landing light)
The Servo Controls for each channel are set as follows:
Ch#1&5 = "*-**" (ON only when servo signal is in
zones 1, 2 and 4)
Ch#2&6 = "-***" (ON only when servo signal is in zones 1, 2 and 3)
Ch#3&7 = "-***" (ON only when servo signal is in zones 1, 2 and 3)
Ch#4&8 = "---*" (ON only when servo signal is in zone 1)
The 4 servo "zones" are as described:
Zone #1 = Stick in 0 to 1/4 deflection
Zone #2 = Stick in 1/4 to 1/2 deflection
Zone #3 = Stick in 1/2 to 3/4 deflection
Zone #4 = Stick in 3/4 to full deflection
The more you experiment, the more versatile you will find the Pro-Flash programmer!
Testing the programmed LED Sequence:
The programming software allows the user to "test" the current programmed sequence, including the servo control functions programmed by the user. To initiate the test, press the "Test" button in the programming software. Upon pressing this button, you will see the test sequencer display the programmed sequence on the graphical LEDs in the program. If you have selected a servo control for either of the 4 channels, you will also see a scroll bar along the bottom of the page. This bar is used as if it was the transmitter's stick/switch, allowing you to test the servo control functions you have programmed for each LED channel. You can use the left/right arrow keys to alter the scrollbar setting or you can use your mouse to move the slider. As you change this slider, you will notice the servo pulse width value changing, just as if it was a servo signal coming from the receiver. As you change this slider, you should see its effect on the programmed LED channels. If no servo controls are programmed for any of the channels, this scrollbar type control will not be displayed, since it is not needed.
New/Clear, Open, Merge, or Save Sequence File:
The programming software allows the user to either develop a New LED sequence (clearing all current sequence events), Open an existing sequence file (previously saved sequence files like the sample files included), Merge an existing sequence file into the currently displayed sequence or Save the current sequence. These options are easily selected under the "File" menu in the programming software and are fairly intuitive (these are general dialog boxes most MS Window users are already familiar with).
Programming the Pro-Flash ! :
After you are satisfied with your programmed LED sequence, you can easily download it to your Pro-Flash, and this normally takes less than 10 seconds. It is very important though that you follow the instructions below very carefully. Please read carefully before attempting to download the sequence.
STEP-BY-STEP PROGRAMMING INSTRUCTIONS
Step 1: If the LED sequencer is
already functioning (flashing LED) you can skip to step #2. If the
Pro-Flash is not running or powered, you will need to do this now. Simply
turn on your transmitter and then plug the Pro-Flash into your receiver channel
jack, and be certain normal operation is observed before continuing (having LEDs
hooked up to the Pro-Flash will greatly help too)
Note: Always observe polarity when plugging the Pro-Flash into the receiver!
Step 2: Connect the programming cable's 9-pin connector (rs-232 serial cable) to an empty RS-232 serial communications port on your computer. Make note of the actual com port number (usually 1 or 2, some PCs could have more), as you will need to define this port in the programming software later if you already haven't changed it.
Step 3: Connect the programming cable (male machine pin plug) to your Pro-Flash controller using the 4 pin connector (only 3 pins are used, one pin is used as a "key" so you can not plug it in wrong).
Step 4: Now, run the software and configure the LED channels as you like them. You could also load a supplied example file for test purposes. If you haven't done so already, you could "virtually" test the sequence by hitting the "Test" button in the software (hit "Stop Test" button to stop testing)
5: When happy with the sequence and controls, hit the "Download"
button and a message will pop up. At the same time, you should see the
Pro-Flash operation cease (all LEDs stop flashing). The displayed message tells you to
hit OK to continue download. As long as you saw all the LED stop
flashing, continue to download by clicking on "OK" button.
Step 6: You will notice that immediately after you hit the "OK" button, Pro-Flash's LEDs all go out (all LED extinguish). At the same time, you will see the downloading progress as indicated by the software's download progress bar along the bottom of the screen. This download process typically takes on the order of 7-10 seconds. When the download is completed, you will see the download bar disappear and then see the LEDs on the Pro-Flash begin flashing. They should now be flashing in accordance to how you programmed them, including the functionality of the servo controls you set for each of the 8 LED channels.
Step 8: Disconnect the programming cable from the Pro-Flash. You are now done! Simply repeat this process if you want to reprogram the Pro-Flash again with a different sequence.
order for the Pro-Flash to use these programmed setting and be fully
operational each and every time you power it up, you will need to be sure that
your R/C transmitter is powered ON before you apply power to the Pro-Flash
(this is normal recommended operation for most R/C models, as it is safer on
your model's servos and control surfaces). If the transmitter is not
turned on before the Pro-Flash is
powered, it will light all LEDs for 3 seconds again, then because it can not
find a servo signal, it will go into a "free-running" mode where all sequences are active,
regardless of the servo signal. Even if you then turn on your transmitter,
it will stay in this free-running mode until power is cycled to the Pro-Flash.
Operating the Pro-Flash
The following instructions describe how the user would normally operate the Pro-Flash once installed in your model. Be sure to thoroughly read these instruction before proceeding.
STEP-BY-STEP OPERATING INSTRUCTIONS
1. With all devices off (no power to transmitter, receiver or Pro-Flash), power up your transmitter and be sure it is outputting RF (some Tx take a second or two).
2. With your receiver off, connect the Pro-Flash to its appropriate channel (normally, it is already connected in your model)
3. With your R/C Transmitter on, and the Pro-Flash plugged into your receiver, finally power on the receiver.
4. As soon as you power on your receiver (as long as the receiver is receiving a valid Tx frame) the Pro-Flash should be fully operational (LEDs flashing along with servo control functionality).
5. Power off sequence is not that important but normally (and for safety sakes), it's always good to power off your receiver before powering off your transmitter.
DON'T FORGET THE ALL IMPORTANT SERIES RESISTOR INLINE WITH ALL LEDS !!!
The LEDs you will connect to the Pro-Flash need to have a resistor in series with one of the LED's leads (I usually use the + lead). The resistor value depends on the LED's forward voltage and the LED's maximum current rating. These specs are usually supplied by the LED manufacturer. The basic formula for calculating this required series LED resistance is as follows:
Required Resistance = (Voltage Source - LED Forward Voltage) / Max LED Current
R = (Vs-Vf) / Imax
As an example, a particular LED has a 3.0 volt forward voltage (Vf) and a maximum current rating of 20mA. It is to be driven with a 5.0 volt source. Therefore,
R = (5.0 - 3.0) / .020
or R = 2.0 / .020
R = 100 Ohms
Some LED Calculator Links:
http://linear1.org/ckts/led.php (simple LED resistor calculator)
http://led.linear1.org/led.wiz (another LED calculator for multiple LED in series or parallel)
http://www.besthongkong.com/clrc.htm (a neat calculator hosted by a big LED distributor in Hong Kong)
Some Interesting Visual Basic coding information (Picaxe to/from PC serial port)
http://www.rentron.com/VisualBasic.htm (Reynolds Electronics)
SOFTWARE !!! (beta1)
*** Click Here) ***
Q1. How do you compensate for differing forward voltages and current drawn by differing LED's?
A1. Ah.... good question....
The input voltage to LEDs is all not that important (usually 5v is fine for all). It is the current that you push through the LED that is important, as you do not want to drive them with too much current. You usually always need to put a series resistor inline with one of the LED leads such to limit the current. I use a neat calculator, I even have a link for it on my webpages. You really need to know the specs on the LEDs, particularly the LEDs rated current (typical 5mm LEDs run around 20-25 milliamps). Here's the calculator:
You simply enter the supply voltage (in the
controller's case, 5 volts), the LEDs forward voltage (this varies from LED to
LED) then enter the rated LED current (typically 20-25 milliamps). Then hit the
"find R" button and the program calculates the resistor value you need for that
LED (typically a 68 - 120 ohm resistor is required). Be careful also as there
exists some LED that already have the series resistor incorporated in the LED
(not all that common though). Once the resistor value is determined, I
usually then solder it to the end of one of the LED leads. The wires then
leading from this LED assembly is then connected directly to the controller
using a miniature machine-pin female socket (I will provide at least 8 with
every controller). Putting the series resistors on the PCB would take up
space (unless they were SMD maybe).
Q2. I have a question: So tell me how you could control different sequences with a TX like a 6102 which is a 6 channel but the 2 extras are more like landing gear, and flaps?
A2. Great question.... ( I knew I'd eventually have
write about this, as most will probably use a switch and some will have the
luxury of having a spare variable channel, like a rotating knob or lever).
Is the landing gear channel on your system controlled by a switch ? (most likely). How about the flaps, are these a switch too or is this a rotating knob (like I think my Futaba 9C has) ??
If the channel you have the flasher plugged into is controlled (Tx) using a toggle switch, you will still be able to control the 4 LED channels/sequences, but you will only have two possible servo control positions, on (*---) and off (---*). If you were to look at the "Servo Control" pull-down in the software, you have 16 different "servo zone" combinations you can chose. All 16 work only when you are using a variable Rx channel, such as a channel being controlled by a knob, slider or stick. If you are only using a "switched" Rx channel and you want to simply use the switch to turn the channel on or off, you would set up the "servo control" such that it is "*---". What this would do is make the selected LED channel active only when the switch is in the up position (actually, it is as if the stick is in the position, 3/4->Full deflection). Now catch this, if you were to choose the "**--" option or the "***-" option, this would still have the same effect. When using a toggle switch on your Tx to control the LED flasher, the receiver will never output the middle two zones (-**-). Therefore selecting these zones in a channel's servo zone will do nothing.
"PICAXE is a
trademark of Revolution Education Ltd (www.picaxe.co.uk)"