Updating an IMU firmware from an EMX through RS232

Hi Everyone, I would like to update the firmware of a razor IMU firmware directly with an EMX. The link between the IMU and the EMX is RS232. Do you have any hints or tips?

The link should be UART i would have thought so simple connection to the EMX.

Are you updating the DCM in the Arduino uC? if so then a USB FTDI cable would be the go.

Hi Justin,

yes the IMU is connected through UART (COM2) of EMX. I do not want to use an usb ftdi adapter, this converts USB to RS232 but I won’t have any access to the IMU when the product will be in field. Thus I want to be abble to propose IMU AHRS enhancement by just connecting a USB key that contains the new IMU firmware.

Hi leforban,

Just to get it straight are you trying to update the Arduino code for the Atmega on the Razor?


Yes I am, I thought it was clear. I want to update the razor firmware by using the EMX through the COM Port of the EMX as we can do with the USB-RS232 FTDI adapter.

Customer can be anywhere in the world and I don’t want to ask customers to send me back product just to update or modify kalman filter or the DCM.

The thing is that I don’t know how to extract the binary or hex file from the arduino tool and I don’t know how to update the firmware of the ATMEGA by just using the com port and without the arduino tool.

Sometimes I am a bit slow :wink:

Have a look at 2boots, might be the go


Don 't worry Justin, my explanation about what I want sounds not so clear. Many thanks for your link, this proves that field upgrade is possible. However it needs a custom bootloader. My needs are less complex, I just want to replace the FTDI shield by the EMX but your link will help me to find index to search more on the web.


Is the device moving much or at any great speed? Sounds like there is an ghi imu in the works…maybe its time to put our hands up to help get it finished. Would make updates easier…

The fact is that we started our project 10 months ago, we spent a hard time to get correct AHRS for our needs based on the razor and we have already about a dozen of prototypes over the world. These proto are already running but I know that in short term future, I will need to update these firwmare. For these dozen of product I can ask customers to send me back their devices but It would not be possible for ever.

So here are the constraints: razor 9dof IMU (but it could be other arduino based devices) a com port fully connected and an EMX. With these in mind, I want to upload new program to the arduino.

I have a similar imu and a cobra so will have a play over the next few days to see if I can update the imu code.

WOW that would be great because to be honnest I don’t know where to start to achieve this.

Hi leforban,

Looks like this week is going to be busy at the office so i have to put play time on the back burner for testing the updating until i get the boring stuff done :frowning:

But here are a few links to possibly look at:

Getting the hex file:


Updating the IMU

Hope these help and when the dust settles i will continue looking into it.


I found the hex file (it was a pain to found the correct directory on my computer. I really don’t like windows for that purpose. On my computer with vista the directory is users/the_user/AppData/Local/Temp. In this directory you’ll find a tons of directory sucha that buildXXXXXXXXXXXXXXXXX.tmp. The ouptu of compilation is located there.

Next stage try to upload the hex file through the com port.


I am still investigating solution to perform an field update of the IMU. As far as I understand, the ATMEGA328P is program using the ftdi breaboard with the stk500v1 protocol. I think we just need to clone the avrdude program (just the part that send data using this protocol) and that’s it :wink:

What is your opinion?