Week 7 - Embedded Programming
This week, we had to program our board from two weeks ago. This was the board I produced at that time:
As absurd as it may sound, I found out this week that my dog chewed my board one day when I wasn't at home (Yes, the dog literally ate my homework). Evidence will be provided soon (i.e., pictures).
So, I had the dubious pleasure of remaking the board from scratch...
When I finally got my new board done, I went ahead to program it. I tried several methods - including using the Arduino IDE 1.0, with the added ATtiny libraries. I followed the instructions, set the board to ATtiny44 external (20mhz clock), and tried to burn the bootloader, which yielded the annoying generic error as seen in the image below.
I then went ahead with the process of testing everything:
- - Checked the polarity of the serial and power connections on the programmer and the board
- - Tried another machine
- - Used an old usb hub, as Google hinted that the problem might be with using a USB 3.0 port
- - Tested with a multi-meter, looking for shorts, OC, or some other weird stuff. All seemed to be perfectly fine.
I even tried using the expensive ISP programmer, which has a led indicator that should let you know if something is wired in the wrong way. Surprise surprise, it was a steady green! So why wasn't the computer recognizing it?
I then tried to ditch the IDE and use the compiler directly (makefile approach). This yielded similar results:
When that didn't work, the next step was to reproduce the board, assuming that I stuffed it in the wrong way. I made yet another board - the 3rd attempt, but alas - I got the same results :(.
It is therefore clear that something in the design process went wrong. I compared my circuit with the one I found in a tutorial from a couple years ago, and could not have identified anything wrong with my design. The next solution is to start the schematic from scratch so I'm not biased, which I plan to do, but unfortunately for this week I ran out of time ..
UPDATE: A couple of weeks later, when designing and making another board seemed to fail, I decided to test my programmer. Using the AVRISP II instead of my FabISP programmer (which worked on week 2) succesfully programmed this board, proving that my programmer was damaged.