Description: If you’re ready to step your Arduino game up from older 8-bit/16MHz microcontrollers, the SparkFun SAMD21 Dev Breakout is a great landing spot. The SparkFun SAMD21 Dev Breakout is an Arduino-sized breakout for the Atmel ATSAMD21G18, a 32-bit ARM Cortex-M0+ processor with 256KB flash, 32KB SRAM, and an operating speed of up to 48MHz. This dev breakout provides you with an Arduino hardware option that solves the problems of low storage limits and dynamic memory stack overflows that have plagued the previous iterations of the Arduino family. Yes, the SparkFun SAMD21 Dev Breakout is even fully supported in the Arduino IDE and libraries for the Arduino Zero!
The SparkFun SAMD21 Dev Breakout has been equipped with a USB interface for programming and power, surrounded with an RTC crystal, and a 600mA 3.3V regulator. By utilizing the Pro R3’s extra PCB real-estate we’ve been able to leave room for a few extra GPIO pins and an integrated LiPo charger. To power the SAMD21 Breakout board, just plug it into a USB port on your computer via the micro-B port on the breakout. Not near a USB port? No problem, the SparkFun SAMD21 Dev Breakout is also equipped with a LiPo Battery connector (for a single-cell 3.7-4.2V litium-polymer battery) and unpopluated supply input to solder on your own PTH Barrel Jack. If you’ve used any Arduino before, this pinout shouldn’t surprise you – the layout meets the Arduino 1.0 footprint standard, including a separate SPI header and additional I2C header.
One of the most unique features of the SAMD21 is SERCOM – a set of six configurable serial interfaces that can be turned into either a UART, I2C master, I2C slave, SPI master, or SPI slave. Each SERCOM provides for a lot of flexibility: the ports can be multiplexed, giving you a choice of which task each pin is assigned.
The on-line SAMD21 Mini/Dev Breakout Hookup Guide (in the Documents section below) contains step by step instructions of how to connect your SparkFun SAMD21 Dev Breakout as well as a few circuit examples to test out. Full example code is provided and explained and even includes troubleshooting tips to make make you have zero problems.
Note: The breakout does NOT have headers installed and will need to purchased and soldered on yourself. Check the Recommended Products section below for the type of headers we use in the Hookup Guide!
Based on 5 ratings:
2 of 2 found this helpful:
I was reasonably happy with this board until my program grew to over 20k. Then it became impossible to program over native USB due to COM port dropouts. There’s a known fix for this, yet Sparkfun hasn’t updated their SAMD boards core or bootloader in months. This board relies heavily on the Zero toolchain, and as that is still relatively new and undergoing many updates and bug fixes, Sparkfun needs to keep up with them. Their customer/tech support was extremely disappointing - they replaced the boards which of course didn’t fix the problem, then when that didn’t work, just stopped answering emails. It’s a shame because this could be a great product. As is, I’d recommend buying a Feather M0+ instead, as Adafruit is actively involved with the Arduino Zero development and keeps their toolchain up to date. I’ve had no problems with the Feather, I just wish it had more pins broken out.
Also, the battery charging circuit audibly rings during the last ~25% toward full.
Our boards core has been updated. Does this fix the issues you were seeing with uploading large programs?
I wanted to step up to 32 bit microprocessors for my circuits, this breakout is so well documented to make this easy. Works well with the Arduino IDE and with Atmel Ice programmer and Studio 7.
This is a nice board but unfortunately there are still issues with it and its mini sibling uploading larger sketches. Using Arduino IDE 1.6.9, Arduino SAMD 1.6.5, and Sparkfun’s SAMD 1.2.0 uploads of larger programs can stall. It’s unfortunate that Member #532709’s comments above state that it is a toolchain issue and there is/are known fixes but provides no links.
There are a few posts in the forums regarding slow upload speeds and these issues seem related. The posts suggest using a different USB cable, a USB hub, or a different USB port on your computer. I stumbled on these posts after spending hours pulling my hair out and can confirm that they solved my problem. For me it was switching from my laptop’s USB 2 port to the USB 3 port. I can now successfully upload a 42 Kb sketch without stalling.
Edit: After a number of successful uploads, still having intermittent issues so while switching USB ports, etc. may help, it’s not a sure fix. <sigh>
Keep this in mind as you move beyond your “Hello World” or “Blink” sketch and try to do something real, which is why you bought this thing in the first place.
Documentation very good, git hub has been updated, and I think there is no longer requirement for IAR to rebuild core, if I read makefile correctly.
Does anyone know where I can get the small header strip for the JTAG SWD connection. Seems like .05 mm spacing?
The SWD connection uses .05" spacing, and you should be able to find headers of that pitch over at Digi-Key.
I have a linear quadrature encoder which the Arduino Uno can read just fine as long as the motion is slow enough. The SAMD21 reads the encoder at much faster speeds, as you would expect. The next project will be independently controlling the rotational speed of four dc motors while simultaneously reading five geartooth sensors. Further complexity may be the addition of four sensors to count objects as they pass by. Things I like: multiple serial tx rx hardware, real time clock, LiPo charger, fairly seamless use of Arduino code, support to integrate SAMD21 Dev board into IDE.