Friday, December 9, 2011

Updating the Ardweeny Bootloader

I've been having trouble with one of my Ardweeny devices.  I use one of the little guys in a timer that runs my Acid Pump. It has been running well, but recently started to hang up daily.  I added a watchdog timer based on the code I developed for the Arduino Mega2560 that should have caused it to recover if this happened, but that didn't solve the problem.  I finally realized that I may be suffering from a problem with temperature.  It gets cold at night now and the device may be temperature sensitive.  However, before I thought of that, I decided to use the normal watchdog timer code that is supported for the Arduino; it didn't work.

It appears the Ardweeny uses the standard bootloader for the Arduino Duemilanove which doesn't support the watchdog timer properly.  Easy, just replace the bootloader with the one developed by Lady Ada right?  Except, I couldn't find the hex file for it.  I spent a couple of hours looking around the web for it and just couldn't find the darn thing.  I know it's out there, people say they use it and have burned it into their roms, but I couldn't locate it.  Finally, I just gave up and got the optiboot loader for the Arduino Uno and loaded it on.

People talk about how the first of optiboot loaders had a number of problems and they have since been fixed, but I'm here to testify that it's pretty darn hard to find one that has the various problems fixed that you can load on a board.  After trying several of them I finally found one that actually works.  Version 4.4 of the optiboot loader will burn into an Ardweeny and works just fine.  It supports the higher loading speed, is considerably smaller and supports the watchdog timer.  I got it here as text and simply copied and pasted it into a hex file.  Then I used an ISP (In-circuit Serial Programmer, specifically Lady Ada's USBTinyISP) to program it into the Ardweeny.

However, the Ardweeny doesn't have an ISP plug.  That means you have to figure out which pins from the programmer go to which pins on the Ardweeny and jumper them to it.  However, that's not too hard and only drove me nuts for around an hour or so, after all it's only six wires.......

I really like this solution.  It gives me the very latest and greatest bootloader on the Ardweeny and totally supports the watchdog.  Now, some more testing to see which of my parts is temperature sensitive, I may have to break down and buy some freeze spray.

4 comments:

  1. I hate to do this via the comment box but, I am trying to get a hold of you, Dave as I would like to invite you to participate in a podcast being produced by RAVE/AV Nation focusing on DIY/AV/Controls stuff. I believe that you could add a great deal to the conversation. Ping me via Twitter (@TonyNoOne) of you would like to join us. Thanks, man.

    ReplyDelete
  2. Sorry about the lack of an email address. I had it here for a time, but the stupid robots out there flooded my email address with Viagra ads. I sent you a message on twitter.

    ReplyDelete
  3. Weird...I didn't get it. Will you ping me Anthony at rethinkconnection dot com

    ReplyDelete
  4. Scratch that, I found your message...

    ReplyDelete