- Category: Radio basics (XRF, URF, ERF & SRF)
- Last Updated on Wednesday, 04 March 2015 15:10
Uploading new LLAP Device and Serial firmwares to XRF's from the Raspberry Pi.
The XCM software is normally used to uploaded new firmwares to the XRF's however this is currently a windows based program.
For GNU/Linux we have a simple command line tool that can be used to upload the .bin firmware files.
Thanks to the Raspberry Pi's on board 3v3 UART this upload can be done with nothing more than a Slice of Pi or a few jump wires and the target XRF, yes no need for and FTDI or similar USB to TTL-Serial.
Although the following instructions are aimed at the Raspberry Pi the XRF Uploader should compile and work on most GNU/Linux and OSX systems.
VERY IMPORTANT: Upgrading your radio is not something that should be done without knowing the risks and making sure you are fully happy with what you are about to do. We have seen many times that failed upgrades require the radio to be sent back to us for a "hardware" program.
THE RISKS: If the upgrade fails or the wrong combination of Bootloader and Firmware are used you can cause the radio to stop working.
SHOULD I UPDATE? Only update if you are 100% sure that you need too. We have seen many people see there is a new file and update without knowing why. The radio code has remained largely the same for a long time. The various simple generations have fixes for issues people have found. If you are not experiencing any issues and have a working system WE HIGHLY recommend you do not update the firmware.
Current Uploader Limits:
Any XRF/SRF/other radio sold by Ciseco after May 2012 can use this uplaoder.
The uploader cannot update the Bootloader.
Slice Of Pi or Passive XBBO and 4 jump wires
These instructions are based around the Debian image and may be slightly different for others.
For this examples we have a v1.5 XRF with bootloader V3d and will update it to llapThermistor-V0.47-24MHz.bin
Disabling the Serial Console and Terminal
By default Debian used the serial UART durning boot to output kernel messages and once booted it can be used as a normal login terminal.
There is a great article here with detail's of how to disable this: www.irrational.net
Getting the XRF Uploader and compiling
The XRF Uploader source can be downloaded from GitHub here
Use the following command to compile the source and make it executable
$ g++ xfr_uploader.cpp -o xrf_uploader $ chmod +x xrf_uploader
If you have a Slice of Pi simply plug the XRF into the slice then put the slice onto the Raspberry Pi
It should look like this
If you have an XBBO you can used four jumper wire to hook up GND TX and RX as follows.
Power depends on which XBBO you have.
For a passive XBBO use the 3v3 pin from the Raspberry Pi.
For a active XBBO you can used the 5v0 pin from the Raspberry Pi
Download the firmware you wish to use from here and put it in the same folder as the compiled xrf_uploader program
For this examples we will upload llapThermistor-V0.56-24MHz.bin
In order to download the file navigate to the file (for our example select XRF-LLAP and then the file) - so that is is displayed in Github and then press RAW to download it.
$ ./xrf_uploader -d /dev/ttyAMA0 -f llapThermistor-V0.56-24MHz-ok.bin
If you see a load off "ERR" errors coming back from the XRF try try opening the serial port with a terminal application like screen and make sure up can talk to the XRF by entering command mode
$ screen /dev/ttyAMA0 +++ // you might not see this echoed back OK // response from the XRF
To exit screen hit 'Ctrl-a' then 'k' then 'y'
Try the firmware upload again. we are working on this and will update the source on Github as soon as possible.
If you have any other errors please post details to the forum so we can help you out.