uRADMonitor Firmware Upgrade

Reading through the uRADMonitor upgrade guide I spotted the upgrade required a 3.3v programmer which I haven’t got at the moment (the replacement is in the post).

My old USBtinyISP (clone) is 5v only so 3.3v programming wouldn’t be straightforward but all is not lost as the trusty Teensy 3.1 comes to the rescue (any “Arduino” like board which runs on 3.3v will probably also work).

Teensy vs USBtinyISP

The Teensy needs to be prepared by installing the sketch from “File->Examples->ArduinoISP”. The ArduinoISP sketch needs a small modification in the start_pmode function to work correctly with the Teensy 3.1 (the “spi_init();” line needs to be moved down to just above the “spi_transaction…” line).

After selecting the Teensy 3.1 as the board and the serial port (COM26 in my case) the sketch was compiled and uploaded to the Teensy in the normal way.

Connect the Teensy 3.1 to the uRADMonitor pin numbers (from the upgrade documentation) according to the table below.

Name Teensy 3.1 uRADMonitor
Reset 10 5
MOSI 11 1
MISO 12 9
SCK 13 7
GND GND 10
3v3 3v3 2

Teensy ArduinoISP uRADMonitor

I also connected up 3 LEDs as per the documentation in the ArduinoISP sketch – Pin 9 (Heartbeat), Pin 8 (Error) and Pin 7 (Programming) so I could see what was going on.

Copy the uRADMonitor hex firmware file into the Arduino avrdude bin directory (<Arduino Software>\hardware\tools\avr\bin\) and then opened up a command prompt in the binary path.

In command window I used the following line to program the firmware (Windows 7).

> avrdude -C..\etc\avrdude.conf -patmega328p -b19200 -P\\.\COM26 -cstk500v1 -F -u -Uflash:w:uradmonitor-11000045.hex:i

With the additional LEDs connected you should see the first (heartbeat) throbbing before you initiate the upload and then the third LED (programming) should flicker along with the on board LED, during the verify phase the onboard LED will still flicker and the programming LED should be on solid and you should see something like this in the command window

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.07s

avrdude: Device signature = 0x1e950f
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed

To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file “uradmonitor-11000045.hex”
avrdude: writing flash (16882 bytes):

Writing | ################################################## | 100% 13.72s

avrdude: 16882 bytes of flash written
avrdude: verifying flash memory against uradmonitor-11000045.hex:
avrdude: load data flash data from input file uradmonitor-11000045.hex:
avrdude: input file uradmonitor-11000045.hex contains 16882 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 9.71s

avrdude: verifying …
avrdude: 16882 bytes of flash verified

avrdude done. Thank you.

Flash verified means we’re good to go, uRADMonitor reassembled and hooked up it’s now showing the stats in a browser (it’s still starting up in the image below so doesn’t have stats to show for everything).

uRADMonitor with new firmware

It should be noted that the http interface can be accessed from anywhere with access to the port/IP not just your local network so you might need to firewall this off if you’re using public IP addresses if you don’t want it publicly visible.

You will probably be able to use any of the 3.3v Arduinos (or clones) to upgrade the uRADMonitor using this process just take care to use the correct SPI pins.

Leave a Reply

Your email address will not be published. Required fields are marked *