====== How to build and flash the rad1o firmware from git ====== This howto explains how to get the firmware from git, setup the build environment and build and flash the firmware to the rad1o. An easier (but not as cutting-edge) alternative is to [[howto:update|update from a release]]. ===== Requirements ===== * a rad1o * a computer running something similar to Linux * git ===== Tasks ===== ==== Preparation and Build ==== * clone the rad1o firmware repository from git git clone https://github.com/rad1o/f1rmware.git * If you did that already some time ago, get the latest changes:cd f1rmware git checkout master git pull * install the following build requirments, see ''[[https://github.com/rad1o/f1rmware/blob/master/doc/build.md|doc/build.md]]'' for details how to install on your system: * arm-gcc * python-yaml * xxd * cmake * setup the ''hackrf'' and ''libopencm3'' submodules:git submodule init git submodule update * build everything make cd smartflash make build make gather * if that is successfull, all firmware files end up in ''smartflash/IMG''. ==== Flash ==== There are several methods to get the f1rmware on the rad1o. When the rad1o is booted in MSC mode (hold UP while turning it on), it appears to the computer as USB mass storage with a small FAT filesystem. You can either manually copy the files to the rad1o or use the smartflash FLASHgui to do it automatically. You can also use the FLASHgui to do a complete reinstall of the rad1o, this is useful if the filesystem is broken. === Easy Method: Manual copy === * Boot the rad1o in MSC-mode (joystick UP while you turn it on) * mount the device if your system does not do it automatically (your path will probably be different)mount /dev/sdb /media/ABCD-1234 * copy the firmware files to the mounted device manually (your path will probably be different):cp smartflash/IMG/* /media/ABCD-1234 === Advanced Method: With FLASHgui === * install all requirements for FLASHgui, see ''[[https://github.com/rad1o/f1rmware/blob/master/smartflash/README.md|smartflash/README.md]]'' for details: * mtools * perl-curses * [[https://github.com/rad1o/dfu-util|patched dfu-util]] (this is only required for the factory reset method) * dosfstools (this is only required for the factory reset method) * install the udev-rules cp smartflash/90-rad1o-flash.rules /etc/udev/rules.d * start the smartflash FLASHgui app: cd smartflash make run * connect a rad1o via USB to the computer and start it in MSC mode (hold UP and switch on). FLASHgui shows a line for every connected rad1o. During the transfer, it says ''(running))'' and the green LED next to the USB port on the rad1o will blink. After the transfer is finished, the state changes to ''(done)''. After a few more seconds, the rad1o should restart and FLASHgui will report ''(gone)''. === Recovery Method: factory reset with FLASHgui === you can also use FLASHgui to do a complete reinstall of a rad1o, including the bootloader, CPLD and all firmware files. This will also delete your nick, highscores and any other personal info on the rad1o * prepare and run FLASHgui like above * connect a rad1o via USB to the computer and start it in DFU mode (hold DOWN and switch on). This will first reflash the bootloader and CPLD and then write a new filesystem image to the rad1o. The led next to the headset port on the rad1o will blink red when the process is finished. ===== Result ===== * a rad1o running the latest firmware from git