Embedded Programming

Make Your PCB do something

I'm not a coder, by which I mean I have no idea how to code and even less idea where to start. I am however taking a class this semester that is granting me familiarity... actually familiarity is the wrong word... exposure. I am however taking a class this semester that is granting me exposure to Arduino. The class makes me want to rip my hair out, but as a side effect it has helped to make me want to rip my hair out less in this class. A couple weeks ago I milled and produced the beginnings of a miniPOV let me preface this with saying that I did not in fact finicsh or complete the POV, even though the dream has yet to die. The problem with that occured not this week but two weeks ago in my naivete that things would actually work.

Finished board 2 boo

Problems with Project5

I used the wrong chip for the lights I planned on using. Nothing was soldered wrong and bootloading went really smoothly after the whole four instead of ten pins debacle, see the end of Project5 for context. Also I solved the pin debacle with this cute cat converter, there are so many ways to get the connection wrong, but if I remember how to do it, I can now bootload my weird four pin connector.

cat converter!

At first I couldn't figure out how to bootload the thing, but then I took a quick trip down to EDS and Anthony, who is such a lifesaver, walked me through how to interface my chips with my board using Arduino IDE. I first installed the Fab documentation that gave me access to the right boards (I used the SAMD11... don't use the SAMD11) and then bootloaded it using a programmer at EDS, everything went smoothly. The only problem being my USB connector is a little loose and glitchy so it has to be inserted just right. After this we got to work trying, and I do emphasize the trying part, to get the neopixels working. The SAMD11 chip does not have a lot of memory and even though it appeared to compile more or less fine, the chip never responded to the program. With a heavy heart neopixels were abandoned but not forgotten.


Bootloaded!
neopixels

Coming soon to a Document Near You

I was running out of time and decided to work with what I had, though I did design my next board, it still needs to be milled, cut, soldered, and programmed, but the hard part is done. Here's a picture of how it will look, same concept as the last board but using the much more spacious SAMD21 chip.

SAMD2l

If at First you Don't Succeed Work With What You Have

Though neopixels would not connect to my board, I still had an exposed input and ground pin and a nicely completed button. I decided to try a few outputs including an LED, buzzer, and motor. The motor required too much power and couldn't be used. Fun fact: the battery pack was connected to only the "neopixels" meaning that it could be swung around all lit up iff (if and only if) I uploaded a sketch to it, turned on the batteries, and never unplugged them or turned them off again, the button would not be able to interface with it though. So note: Power EVERYTHING not just the lights, POWER the MICROCONTROLLER. Back to the outputs... The buzzer worked pretty well and so did the LED. First I attempted a simple button on output high program, and then graduated to a program I called an annoying alarm where I had either the LED or buzzer go off randomly and stay on until you hit the button which acted like a snooze alarm button. I think a similar set up would keep me from missing my 9am class. Below are videos and pictures of this weeks adventures and I can't wait to do something more with this technology.

Let there be light Motor doesn't work



Arduino page1 Arduino page2

Group Assignment

For the group test I experimented with other types of bootloaders and learned that though Atmel Studio provides interesting extra info, and EDBG is great for programming programmers, they can not compete with the simplicity of good old fashion Arduino.

Arduino