[ a n y m a | research – blog ]
news from the lab…
How to update the uDMX firmware
Categories: udmx

You can use the bootloader that is built into the uDMX to update its firmware to the latest version.

Here’s a quick howto on MacOSX:

1. Install CrossPack

CrossPack is a development environment for Atmel’s AVR® microcontrollers running on Apple’s Mac OS X, similar to WinAVR for Windows. It consists of the GNU compiler suite, a C library for the AVR, the AVRDUDE uploader and several other useful tools.

Download the latest CrossPack here http://www.obdev.at/products/crosspack/download.html

2. Download the latest uDMX firmware.

Open a Terminal window (/Applications/Utilities/Terminal) and type the following command to check out the latest source code from version control:

svn checkout http://udmx.googlecode.com/svn/trunk/ udmx-read-only

3. Start the bootloader

There are two ways to start the bootloader. If the uDMX is still working you can simply use the gnubl command. If the uDMX does not enumerate correctly anymore, you can still try to start the bootloader by opening the device and shortening PD5 of the Atmega to ground (see below). If both ways fail, there is a hardware defect…

3.1 using gnubl

Open /Applications/Utilities/System Profiler and look if you can see the uDMX under the USB Tab:


If that is the case you can use the gnubl command to start the bootloader. In the terminal, type:

cd udmx-read-only/various/

the terminal should answer:–> Started bootloader on device “uDMX” (-5)

And if you refresh the System Profiler Window (Cmd-R) you should see the USBasp instead of the uDMX:


3.2 Forcing the bootloader by hardware

In some cases the firmware is broken beyond repair and the udmx doesn’t enumerate, so we cannot issue a software command to start the bootloader. In that case, it might be possible to still force the uDMX into the bootloader:

  • unplug the udmx
  • open the XLR connector
  • short pin D5 (the leftmost pin on the bottom line of the Atmega8) to ground (the black wire of the USB cable)
  • plug in the uDMX (with pin D5 still tied to ground)
  • the yellow led should go on and the device should enumerate as USBasp (see above)

Connect the following two points on the board:

I do it usually with a pair of metal tweezers, so I can keep the connection firmly with one hand while plugging in with the other. Never mind if you accidentally touch the pin right next to it as well, but you should not short any other stuff on the board…

If the yellow light goes on but the device enumerates as uBOOT, you’ve got a really old version of the uDMX with the first bootloader. Please contact me for instructions how to proceed.

After several tries nothing happens? Are your tweezers electrically conductive? -> don’t use plastic tweezers, this won’t work… Is there a hardware defect? Any loose wires? A bad solder joint?

4. Upload the new firmware

When the yellow led is on and you see the USBasp in the System Profiler, you can upload the new firmware to the uDMX. In the Terminal type:

cd ../firmware/
make flash

Avrdude should upload the firmware, check if it is written correctly and thank you in the end. The uDMX should light green and enumerate as uDMX again…


5 Comments to “How to update the uDMX firmware”

  1. Markus says:

    how to update firmware via bootloader on Windows ?
    Any tools ?

  2. Michael says:

    I’ve never tried this and I really have no experience on Windows, but it should be possible to compile the source with WinAVR and then use avrdude to upload the hex file. Have a look at the Makefile for the commands used. You’ll need to manually force your udmx into bootloader mode, though.
    Or maybe someone can manage to compile the gnubl command on windows? source is here: http://gnusb.svn.sourceforge.net/viewvc/gnusb/trunk/_gnubl/
    (gnubl basically just sends the code “0xf8” to the udmx to kick it into bootloader mode…)

    Maybe some of you windows guys out there could give it a try and post a small how-to guide?

  3. raaasz says:

    Can i upload firmware without bootloader to atmega8?
    (only uDMX.hex file)

  4. shrx says:

    I am trying this on OS X 10.9.
    I get an error with ./gnubl command:
    –> Started bootloader on device “uDMX” (0)
    Bus error: 10

    Any ideas?

  5. Felix says:

    Hi, i’ve got also Problems starting the bootloader.

    Started bootloader on device “uDMX” (-5)

    Anyone can help?

Leave a Reply