If you’re ready to step your Arduino game up from older 8-bit/16MHz microcontrollers, the SparkFun SAMD21 Mini Breakout is a great landing spot. The SAMD21 Mini Breakout is a Pro Mini-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 mini 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 Mini Breakout is even fully supported in the Arduino IDE and libraries for the Arduino Zero!
The SparkFun SAMD21 Mini 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. We’ve pinned the Mini Breakout to match – as much as possible – our faithful Pro Mini and Pro Micro. The I/O and voltage rails are all broken out to a pair of breadboard-compatible headers. Power can be supplied, and the board can be programmed, through the micro-B USB connector.
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 Mini 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!
The 1x12 Stackable header is useful if you are testing the board on a mini-breadboard or are stacking boards underneath the SAMD21 Mini.
If you see an error like this one:
Cannot run program ... (in directory "."): error=2,
You may have skipped the step where youI was supposed to install the "Arduino SAMD Boards" before I install the specific SparkFun package.
You can upload to this board with "Arduino/Genuino Zero (Native USB port)" selected in the IDE, however, it you do this the board will suddenly become an Arduino Zero under Windows and unless you have the Zero drivers installed, will then become an unknown device. If that happens, just install the Zero drivers located in the IDE folder and then upload any sketch to the board with "SparkFun SAMD21 Mini Breakout" selected and this will restore the board.
The PWM will not work on pins 10-13. These pins were changed around to setup the SPI in a similar fashion to the arduino form factor that we're all accustom to. You can get around this by using the "SparkFun SAMD21 DEV Breakout" definition, but if you do that, you're going to lose SPI on those pins. It should not have any other adverse effects though, and you can switch back and forth between the two definitions depending on what you need at the time.
If Windows fails to recognize the board and gives a "USB Device Not Recognized." error, try a quick double tap on the reset button to force the board into bootloader mode, and then upload some known good code like "blink."
The SPI pins on the mini breakout are D10, D11, D12 and D13. Some of the older board definitions do not have it configured this way, so if you're having issues working with SPI on 10-13, you should try updating the board definitions for the SAMD21.
This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.
Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels
If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.
Skill Level: Competent - The toolchain for programming is a bit more complex and will examples may not be explicitly provided for you. You will be required to have a fundamental knowledge of programming and be required to provide your own code. You may need to modify existing libraries or code to work with your specific hardware. Sensor and hardware interfaces will be SPI or I2C.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels
Based on 18 ratings:
4 of 4 found this helpful:
This mini breakout board is small and powerfull. Love using it.
As a note I edit the variant files on the sparkfun board to give me Serial 2 and Serial 3. Dont need them right now but good to have. I have tested these Serials and thay are working.
All info can be found on Sparkfun Forum. Link: https://forum.sparkfun.com/viewtopic.php?f=32&t=42698&p=186984&hilit=SAMD21+Serial2#p186984
1 of 1 found this helpful:
The SAMD21 Dev Board has many unique features I need and I use it in many testers.... but it is a BEAR to develop on. It uses 2 com ports from the pc and when it's time to download, you get the error that the port you've selected can't be found :( It's there, Arduino is confused, USB ports are confused, chaos ensues. Pretty much you just have to "give in" and double tap the reset pin every down load, close your serial debug screen. Then once downloaded, re-select your port again and reopen the debug screen. I would recommend doing any simple testing of I/O using a Pro-Mini, it will go faster then switch to this when you NEED to start working on specific peripherals from the SAMD21.
1 of 1 found this helpful:
What I really like is: - with the Atmel ICE you have ability to see all the registers, variables, and set breakpoints - CPU clock, RAM, Flash, and data paths are much larger than the 8bit Mini breakout - USB included
But all the flexibility comes with complexity and frustration. Reading the datasheet is like reading a foreign language. You have a vague idea what is being described, but not enough to get you where you want to be.
I use the Atmel studio and there are major tools provided: ASF and Atmel Start. I have used both and finally settled on ASF, but it still takes a lot of experimentation to get the chip setup. Getting the clocks setup for PWM measurement and transmission was a trial.
You can find lots of example code, but there are lots of SAM flavors, and the closest example is usually for a flavor different than the SAMD21G18.
I still plan to use it as my baseline CPU board, because the power and debugging capabilities out weigh the complexity fog.
Be prepared to make a major investment in time to get to the point where you understand how to make this guy sing. Once you get past pin assignments, IO setup, and interrupt mapping, then you have all the debugging tools you expect in today's high level language development environment, and CPU resources large enough you do not ponder whether adding another variable or hunk of code is going to crash the program.
1 of 1 found this helpful:
Works great and a nice step up from the Uno
Very small, extremely powerful with a lot of memory. I've used this as the core component in many prototypes, it's my goto core module, it meets nearly all my needs and allows me to easily load custom HID profiles. I would love to see another variant of this, with an integrated BLE module + Li Battery charging.
0 of 1 found this helpful:
Incredibly fast board at 48MHz. Tons of memory for big programs. Works great with Arduino IDE, simple to load drivers.
I bought one and found it so practical the I bought 5 more. I am using it during the design phase of a complex project that supports multiple sensors. Different versions use sensors from different manufacturers. This allows me to choose the best solutions before committing the pcb. The small form factor is by far more convenient than the Atmel board.
the 4 layer PCB construction makes this board extra tiny! its the perfect balance of exposed pins and additional components.
I also like the adafruit feather M0, but it has a bunch of extra space for prototyping, and a battery charger circuit. depending on the application sometimes you dont need all the extra parts.
I have used several of these boards in the past for various projects. These are perfect to do a quick proof of concept prior to doing a full development project for new products. The SAMD21 processor is plenty powerful enough to do most embedded tasks.
I purchased this dev board to try to get more involved with ARM programming (started with AVR). It pairs nicely with the Segger Mini Edu programmer and both integrate with Atmel Studio without a hassle. It's a little bit of pain dealing with the smaller programming header ( PRT-15362 on SparkFun) because there isn't a "key" on the silkscreen on either the breakout board or the programmer (fyi: the extruded boss on the header of the ribbon cable goes on the button side of the dev board and facing away from the IC on the Segger board; I flipped around the connector trying to program it a few times and it didn't hurt the dev board in the process). Also SparkFun has posted the design for the PCB so you can learn from them if you want to integrate this into your PCB designs.
Very well built board, but utterly miserable to use with Linux. The port shows up to Arduino once in a blue moon usually after a full reset. I haven't found any clear support documentation beyond shutdown arduino and bring it back up. On one of the few occasions i could flash it I loaded a uf2 bootloader from adafruit: https://github.com/adafruit/uf2-samdx1/releases and loaded circuit python to good result
Nice product for a good price
I have both this and an Adafruit SAMD Feather. Both are great parts in different ways
I find myself prototyping with this one more because it's smaller and has the standard cortex debug port.
The near-drop-in-replacement for the ubiquitous atmega32u4 pro micro form factor has helped me as well.
Last but not least the quality of this (and other Sparkfun gear) is definitely higher than the junk I get off eBay. Big ups, thank you guys and girls!
Started out my projects using the Arduino AVR 328, but kept running out of memory. This is a great way to have access to Arduino environment and not worry about memory. I spent way too much time in the 80's dealing with memory, why do it now no 30+ years later.