Integrating the Arduino Zero
Arduino has allowed countless amounts of people to build anything they imagine. Not only engineers, but artists and 8 year-olds as well. For me, Arduino has provided a fairly reliable way to quickly iterate my projects, letting me skip over the hard part, and just wack an Atmega328 (or a few) onto every design. Luckily for my design strategy, Arduino has released a few more boards such as the Mega, Due, Leonardo, and now Zero, that have allowed everyone to use more advanced processors in their designs without having to put much effort into the software.
Just to note, I am completely self-taught in engineering. If something I say is pure garbage, try telling me in a non-aggressive way. This is purely to help people with similar problems that I run into.
So now let’s get to the newly released and extremely confusing Arduino Zero. The Arduino Zero brings us an 32-bit ARM M0+, a low-cost, low-power, and low-range processor. However, at 48MHz and having plenty of peripherals such as a 10-bit DAC and 12-bit ADCs, many robots could be built with this thing.
The first thing I wanted to do after getting my Arduino Zero (from CC, not ORG) was to see how easy it was to start using the SAMD21 in my designs. After playing around with it for a while (and being amazed of the lack of information available) I’m pretty sure the debugging IC on board is useless and I’m also pretty sure the only reason it is there is because Atmel has teamed up with them on this one (taking the same design from the Atmel SAMD21 Xplained Pro dev board). If you already have an Atmel ICE, it makes the EDBG irrelevant.
Anyways, I was having problems uploading through the native SAM USB port and could only upload through the EDBG. I then noticed the SRL guys had an “Arduino M0”, which is the Arduino Zero without the EDBG. Refusing to buy that from them, I proceeded to wack on a SWD connector (annoying this wasn’t populated) for the SAM and attempted to upload the Arduino M0’s bootloader so I could completely ignore the EDBG. I downloaded Arduino SRLs IDE and tried to push the bootloader with my ICE, but I kept getting strange errors. I then booted up Atmel Studio and tried to manually upload the bootloader but the file was in binary format instead if hex (Atmel Studio does not like binary files) so I just converted it using this guy. Atmel Studio liked the file and uploaded no problem. I was then able to upload code using SRLs IDE.
I am still trying to find a way to use the real Arduino IDE instead, but no success yet. Regardless, it works and I should be able to spin a custom board now. More on that later.