Ariel Ekblaw - HTMAA Portfolio

Embedded Programming

This week, we learn how to load programs onto our newly fabbed PCBs!

There are several ways to approach this. One, we can use our Fab ISPs (after they have been "programmed as programmers" ) and work with low-level hex and C files to program a new board. To do this, we need to hook the fabISP up to our computers over the USB connection, take a cable from the fabISP to the ISP header pins on our new boards, and power our new boards (if powered separately). You can see my fabISP board below. A second way, that I had most success with, is to "burn" the Arduino bootloader onto your board one time (via a programmer, like the fabISP or commercial Atmel ICE/AVRISP mkii), which then allows you to use the Arduino IDE to subsequently load other programs just directly over FTDI connection (rather than always requiring a separate, additional programmer between your computer and the board).

Unfortunately, I got stuck this week trying to use my fabISP as the programmer. I had not successfully "programmed it as a programmer" through the final steps (got stuck on one of the fuse steps), and have decided to come back to this in a later week. For my next attempt, I tried the Arduino bootloader method.

Programming the board!

Programming Steps for ATTiny chips

Although I did not ultimately use the ATTiny for my board, I did come across this very helpful tutorial (by way of Caroline Jaffe's recommendation!) from the old "high-low tech" group at the Media Lab that explains the custom config that must be added for the Arduino IDE to recognize the ATTiny chips.

Programming Steps for ATMEGA 328p

Is the board successfully "programmed"?

Yes! After loading the arduino blink sketch, I was able to program the board to delay, lengthen, shorten, and otherwise manipulate the digital pin 13 LED!