RFD900/RFD900+ Firmware Flashing
Let's set up our RFD900 radios! Note that we are running firmware 2.5 on our radios in the lab.
I'm assuming that you have the RFD Starter Kit (or equivalent items) which should include:
- 2xRFD900+ Radios (All commands below are for the
+ model, if you have the former RFD900, drop the
p from the name below in commands)
- 1xFTDI Cable
- 4xAntenna (2xShort, 2xLong)
If you haven't yet installed the FTDI Drivers, please do so now.
If you have windows (or run Mono)
You have the option of using the graphical configuration tool [thanks @KReeve_2 for the tip!].
This allows you to both flash new firmware and configure the radio, so you can skip this whole entry and jump down to the RFD900 Configuration entry below.
Get the Firmware
There are two main branches of the firmware:
SiK (e.g. 1.x): This supports Point-to-Point communication only
SiK_Multipoint (e.g. 2.x): This supports both Point-to-Point and Point-to-Multipoint
Download precompiled (only for the RFD900+)
Get it here, choose the 2.5 or 1.12 for the RFD900+. Jump down to [Flash the firmware].
Don't worry about this, it isn't as hard as it sounds! I'll try to break out system specific instructions that you can just copy and paste, feel free to dig in where your interests are peaked and leave some replies with specific questions or tips to share!
Note: If the step isn't broken out by the system name, it should be the same cross platform.
- XCode Installed (at a minimum the command line tools):
brew install sdcc
Install the dependencies with:
sudo apt-get install -y git g+ make sdcc (assuming you are on a debian system, e.g. Debian, Ubuntu, Mint, Raspbian)
...unknown - I need to test this...
Getting the code and compiling
This is all done in your terminal
- Get the source code:
git clone https://github.com/RFDesign/SiK.git
- Go into the
SiK/Firmware folder with:
- Compile the code for your radio with
make install~radio~rfd900p (if you have a different radio, run
make help and look for your radio name). This should be less than a minute on any hardware (my laptop ~1s, rpi2 ~35s)
- Assuming that was successful, you should now have a
dst/ folder with the firmware file, specifically you are looking for
Flash the Firmware
This will install the firmware file to your radio, repeat for each radio!
Macintosh / Linux
You have a version of
python that should be suitable installed by default, you'll need to install pyserial.
Option 1 (automated):
If you have a program called
pip installed simply run
pip install pyserial.
Option 2 (manual):
- Download the tarball from here
- Unarchive it with:
tar -xvf ~/path/to/downloaded/pyserial-2.7.tar.gz
- Enter the extracted directory:
- Install with
python setup.py install (note: You may need to prepend
sudo, but only do it if your environment prompts that you didn't have permission - don't ever arbitrarily use
You don't have a version of python installed by default, download
For pyserial could install from source (see Macintosh / Linux above), but may as well just use the installer from here - make sure to get the one for your python version (2).
python is not in your
%PATH% (e.g. in your
command line you get an error trying to run
python), simply substitute my use of
python with the path to your installation. e.g.
To determine the port all systems can do the following:
- Connect your radio
- Launch a python interpreter in your shell:
- Import the serial tools:
from serial.tools import list_ports
On mac/linux the one you want likely resembles:
/dev/tty.usbserial*. Alternatively, you should be able see the serial device with
sudo dmesg | grep tty, it should be a recent entry (toward the bottom of the list)
On windows it will be
COM#, the number is a literal numeric digit. Alternatively, you can look in your
Device Manager (use Windows Search to find it)
Note: If you are unsure which port is the right one, unplug your radio modem and re-run the above to see what is persistent.
If you're not still in the
SiK/Firmware folder, go back there in your command line.
Assuming that you haven't changed your baud rate on the radio, you can simply flash your radio with the following, substituting the port path and firmware file for the ones you need (
radio~rfd900p.ihx for the RFD900+,
radio~rfd900.ihx for the RFD900):
python ./tools/uploader.py --port /dev/tty.usbserial-AL00KJY9 ./dst/radio\~rfd900p.ihx
One windows that would look like (notice the slashes being opposite above):
c:\program files\python2.7\python.exe tools\uploader.py --port COM3 dst\radio\~rfd900.ihx
Congratulations, you should now have the latest and greatest firmware on your RFD900! Check back for the Configuration Guide to come.