How to Update Firmware on Your Arduino Project

I'm in the process of making an RC lap timer and I'm using the HC-05 bluetooth module that is permanently fixed to my arduino pro mini. I have always kept projects to myself but I finally decided to share knowledge and wrote a tutorial How to Update Firmware on Your Arduino Project. I wrote an app that has a GUI that I use to upload the compiled hex files, so that end users don't have to see my code or mess with the arduino IDE. A firmware updater for non technical users :slight_smile: I might release the app if people are interested. I will also finish part 2 if people are interested.

Regards

Theokie

This tool is VERY useful! There was an XLoader that someone made but he has moved on already. Arduino team should make this tool that may be customizable in the title (maybe you want to display mighty-gadget updater instead of TR updater). This way users of the gadget can easily update firmware! I am very glad to see some code :smiley: Karma!

Very cool tool, thanks for sharing, I'm waiting for your app's releasing :). But I don't get what does the bluetooth in this stuff. Are you uploading via bluetooth or USB?

@liudr Thanks, yeah I used XLoader but found that I couldn't release it with any product as it was still too technical. But I did use it as a starting point so thanks to the creator of XLoader. I was thinking of asking a small fee to customize the app or maybe just release the whole thing, source and all and ask for donations lol :stuck_out_tongue: What would be best? BTW great blog you have, bookmarked.

@mart256 I've never really shared any of my projects yet so thanks for the positive response. I use the bluetooth module to upload but I have also tested an FTDI USB to TTL Serial Adapter Module similar to THIS one, and it worked perfectly.

I only use bluetooth as the project I'm working on is using bluetooth to post RC Car lap times to an Android app I wrote.

I will finish part 2 of the post shortly and maybe make a video where I show the whole process using bluetooth and USB.

And just a fun fact, I've really searched everywhere and did a lot of research on RC lap timers and the one I built uses a magnetic strip. The first version used IR but wasn't very accurate. The magnets work like a charm. Up to about 12cm detection range.

Theokie,

I have no issues of paying a small fee or donation. Indeed, I encourage you to consider crowd funding like kick starter. Then you can get paid (say $5K) with what you consider fair for the entire development some documentation and then release your software as open source (most highly recommended).

The XLoader has some unknown license and is a bit more technical although I successfully trained clients in using it (they download the program themselves so I'm not selling anything with XLoader packaged).

Here is a related post I started a while back and got necroposted just days ago:

http://forum.arduino.cc/index.php?topic=225263.0

liudr,

I actually only used the AVRDude binary that came with XLoader and use nothing else from XLoader. If you are interested I will send you the program so you can test it and tell me what you think of it or what needs changing. Kick Starter would have been awesome but I'm from South Africa so I can't use it :frowning:

I'd be happy to test your code and give you feedback. As long as you are clear about who may use the program and to what extent (say bundle it with their arduino-based products), I'm OK to pay or donate. Arduino team should really make one for all of us.

You know what, just because this is an awesome community here is the source to everyone, please fork from me if you make changes and maybe mention me if you ever blog about it :slight_smile:

Wow, when I receive my first sallary I'll donate. Thanks.

Thank you so much! Set up some donation link already! (I'll do what I can)

I will add a compiled jar file to my site shortly for everyone who doesn't want to compile and just use it.

You will need to rename your compiled hex files to blink.hex and drop it in the root folder of TR Updater. It will always use that file to upload to the Arduino.

And I have added a donate button on my blog and a link on github :slight_smile:

Enjoy

TheokieZA,

I was able to compile and run your project using netbeans. I used netbeans a bit some years ago and had a hard time adding the jssc 2.6.0 library but finally found the right way to do it. An instruction on how to do that will help many people.

I am not really familiar with the programming style you used to create the window. It seems like xml style. Is there a name for this type of programming? I am more used to older styles of Java Swing, creating and initializing items using Java statements, instead of describing the look with xml.

Again thank you very much! I saw the donation link. I'll make a donation after I get a hang of how to use your program.