The Adafruit Gemma M0—the First Board to Run CircuitPython Out of the Box
A couple of weeks ago Adafruit quietly did something rather interesting. They launched a new board, called the Adafruit Gemma M0. It’s a miniature board—about the size of a quarter—and with the alligator-clip sew pads, it’s aimed squarely at the wearables market.
While it might look pretty similar to its predecessor, the new board has swapped out the lightweight ATtiny85 for an ATSAMD21E18. However that’s not the most interesting thing about the update. While it’s Arduino compatible, the new board ships out of the box running CicuitPython.
CicruitPython is an an open source derivative of MicroPython which supports several Adafruit boards—including the new Gemma M0—and can also be run on the Arduino Zero, and it hugely simplifies development.
When you plug it in, [the board] will show up as a very small disk drive with main.py on it. Edit main.py with your favourite text editor to build your project using Python, the most popular programming language. No installs, IDE or compiler needed, so you can use it on any computer, even ChromeBooks or computers you can’t install software on. When you’re done, unplug the Gemma M0 and your code will go with you.
In other words Adafruit has just shipped a board that doesn’t need any infrastructure to program. Out of the box so long as you have a micro USB cable and a computer—or even a phone or tablet capable of mounting a USB disk and inspecting the files on it—then you can program the board. That’s a powerful simplification over having to install software, and massively lowers the barriers to entry to getting started with microcontrollers and wearables.
The new board is based around the ATSAMD21E18, 32-bit ARM Cortex-M0+ running at 48MHz. It has 256KB of flash and 32KB of RAM onboard, and a built in RGB LED. Each of I/O pad can be used for 12-bit analog input, or for digital input and output, with one pad capable of analog output and two with high speed PWM outputs. All three of these pads can be used as hardware capacitive touch sensors with no additional components required. While I2C and native serial is also available on two of the pads, so no annoying bit-banging is needed to talk to serial hardware.