ATMega168 on 6DOF Atomic IMU no longer programming :(

Hey folks - I purchased a 6DOF Atomic IMU - http://www.sparkfun.com/commerce/produc … ts_id=9184. What a cool board with a great price!

I started working on my own firmware for it to fit the needs of my situation. I soldered on the ISP and serial pins and programmed it with a very simple modified version of the default firmware using avrdude.

I had used an Arduino to create an AVRISP clone programmer from this site: http://code.google.com/p/mega-isp/

This worked just fine and I started playing around with my new project a bit. Later, I made some more modifications and programmed again - but to my horror, upon readback/verification, avrdude told me the fuse bits had changed! It asked me if I wanted to put them back the way they were, and I said yes. Sadly, at this point, the programmer seemed to hang and the RX/TX lights on my Arduino just kept rapidly blinking.

I waited for some time and eventually concluded that avrdude and/or my programmer were hung or out of sync, and my stomach sunk.

Then, as you can imagine, the fun started and avrdude now returns a “Yikes!” unrecognized device signature of 0x000000.

Hoping the fuse bits were just screwed up to a weird clock setting - I tried building an RC oscillator of 1Mhz and hooking it up to TOSC1, but I get the same result :frowning:

I thought perhaps my programmer was simply flaky (seemingly good conclusion since the AVR failure! ARG!), so I made a parallel port clone of stk200 - there seem to be a million different pin configurations for this, but I very carefully examined the avrdude.conf file to ensure my signals were routed properly. That doesn’t work either - same error from avrdude.

So now I’m stuck with an unresponsive SMD ATMega168 on my $100+ sensor board :frowning:

I know I can get a new chip for ~$4, but I really don’t want to try my soldering skills at getting the current SMD off there without wrecking other stuff.

I have one last solder-free ray of hope and wanted advice from someone with more electronics knowledge than me:

I can build a High Voltage parallel programmer using my Arduino and use it to reset the fuse bits to those the board shipped with. I read the code and schematic for the one listed here - http://mightyohm.com/blog/2008/09/ardui … rogrammer/. This looks pretty darn simple and reliable, so I’d like to use it to recover my AVR.

I’d like to try this without removing the ATMega168 chip - can the 6DOF circuits / components tolerate 12V applied to the /RST signal? I’m concerned because it’s connected through a 10K resistor to the 3.3V power line for the rest of the board.

I’m getting desperate enough, I was considering “cutting” the connection on the PCB between the reset pin and the 10K resistor. Once my rescue mission was over, then I would hope to solder this line back together.

My other analysis of the design is that with the power to the MMA7260, whose signal lines are connected to pins of the ATMega168 that I need to use for parallel programming, I’d get contention there which would screw up the programming, so I was thinking I might have to cut that line as well.

What’s lower risk, trying to remove an SMD chip or cutting PCB traces with the hope of restoring them? I’ve never tried it, but I guess I could use wrapping-wire to manually reconnect power between these components if solder bridging the PCB trace wasn’t possible.

I’m bouncing between feeling so forlorn and feeling determined and invigorated by the challenge - if other people have good ideas for how to fix this, I would love to hear them.

Thanks,

Brian

Try connecting an external clock (not just R/C or a crystal, but an oscillator or squarewave generator) to XTAL1. You should be able to write a program on the Arduino to generate such a clock signal. You may need a voltage divider if the arduino isn’t a 3.3v one.

/mike

I saw a pretty long thread on another forum about the same problem:

http://www.edaboard.com/ftopic323123-30.html

I just looked at the thread (above) again. There is a pretty interesting device here:

http://cgi.ebay.com/ws/eBayISAPI.dll?Vi … 3D1&_rdc=1