Document version: 2021-03-23 RIOT-OS update. Add cmd_upgr to commands in RIOT app the upgrade-RSS2.sh should work with an upgraded tty_talk version which checks for the OK return code. static int cmd_upgr(__attribute__((unused)) int ac, __attribute__((unused)) char **av) { printf("OK\n"); pm_reboot(); return 0; } What's needed: * avrdude flash programming untility for your host computer * USB-TTL cable USB type A to 6-pin header * Firmware to be flashed. Normally with a .hex entension Boards are equipped with a serial bootlaoder for Atmel AVR109 protocol. This makes it possible to upgrade and reflash firmware via the TTL-USB cable. This procedure follows the normal procedurere for Atmel microcontollers. When RESET button is pushed bootloader waits for 3 Sec for programming commands. The red LED is lit while waiting in bootloader. After wait firmware is booted. BAUD is 38400. avrdude program can be used to flash the firmware. During the bootloader wait window the avrdude command should be given. The Unix example below flashes beta-S2-5.0.hex having the mote on /dev/ttyUSB0 Commad line example for flashing: avrdude -p m128rfa1 -c avr109 -P /dev/ttyUSB0 -b 38400 -e -U flash:w:beta-S2-5.0.hex Use your appropriate USB-device. When using the custom firmaware it's recommended to reset EEPROM settings in a know state. This is done with: rest eeprom Bifrost/Linux has a x86-package for avrdude. That should run on most x86 linuxes. http://www.bifrost-network.org/files/opt/opt-avrdude-5.10-1.tar.gz Note! If you program the board with ISP-programmer the bootloader will be overwritten and MCU Fuses might be inconsistent. Experimental: ------------ For the custom firmware the upgrade-sm.sh script can be used to avoid the manual RESET of the MCU. This enables remote upgrade via cable. The upgrade script: http://www.radio-sensors.com/download/firmware/S2/upgrade-RSS2.sh This requires the tty_talk program. Source code is hosted: https://github.com/herjulf/tty_talk