Week 6: Embedded Programming

Programming my PCB board

This week's task was straightforward, to program the boards we had milled during week 4. Straightforward, but non-trivial...

My board (see Week 4) was designed with a LED and a button. I hadn't gotten around to stuffing my board, so my first task was to solder all of the components.

Once prepared, I connected the board to the atmel bootloader via the 10pin pinhead connector. The green light on the atmel indicates that there is a connection (there is a correct direction that the connection should be made).


atmel

I quickly ran into an error. For some reason, while installing the san_ba_Generic_D11C14A_SAMD11C14A.bin bootloader file, I was geeting an "incalid response during transfer" error. With the help of the TA's we tried to troubleshoot.


atmel

I scraped excess copper off of the USB connection. (Laura suggests setting the offset to 0 when milling USBs for this reason.)


cleaning usb

We used the multimeter to ensure connections were working within the board. Then checked my schematic/board layout. Ultimately, we found that my board layout had no connection to the VDD output of the pinhead connector, so there was to power going to that unit. I was surprised by this because KiCAD should have indicated if there were any connection that had not been routed. Upon checking the schematic, it became clear what the mistake I had made was. I had labeled the VDD (the correct designation for powersource after filtering through the regulator as 3.3v) leaving the connector as VCC (usually 5v). KiCAD didn't pick up on this user error.


vdd mistake

Luckily fixing this error just required making a new conncection which could be done with a wire soldered to the two unconnected points in the circuit.

I loaded the basic Blink program onto the board via the Arduino IDE and the light blinked on and off just as expected! Success.


rhino design

To incorporate the button, I looked up the example Pullup Resistor code from Arduino and edited it so it would work on my device. And it worked!

On!


on

Off!


off

Looking forward to programming something a bit more advanced now that I know I can make the hardware/software connection.