Canada Post Workers May Strike on Monday October 22. See our blog for updates. Consider FedEx as an alternative.

First Glance with Gemma M0

Gemma M0 .  A loonie-sized wearable computing solution.

Feels FAST, great value, onboard ; 

  • power switch
  • reset button
  • three conductive touch pads,
  • 1 full RGB LED
  • LED for blinking
  • JST connector
  • SUPER EASY to LOAD & test code with MU environment. 
gemma m0



  • Onboard memory more than enough for the purpose, but need to manage it carefully.  256KB Flash, 32 KB RAM


  • 1/3rd size of an Arduino + (some) Makey-Makey functionality + (some) RGB goodness. 
  • M0 is the third iteration of Gemma. ( Gemma v1, Gemma v2. Gemma M0) which was originally introduced as a miniaturized FLORA (wearable Adafruit platform). Gemma v2 product line still continuing in parallel. 


  • Uses CircuitPython (*new*) or can use the standard the ArduinoIDE (like Gemma v2).
  • CircuitPython + MU is a very integrated development flow once you download and install MU editor (...not ANOTHER CODE EDITOR/IDE. YES!) 
  • You may be familiar with Mu if you've tried to do Micro:BIT coding outside of a browser. 
  • Has serial debugging ( Gemma v1 & v2 don't). 
  • Supported under linux.


  • You plug it in & can read the file at any point in the future & use any text editor & see what 'sketch' is stored on the board. This is an end to the torturous process of old, needing the exact development chain environment to recover or dump micro-controller memory. 


We'll be following along with the Adafruit guide with some extra notes under OSX.

The Gemma m0 has two 'hard drives' on it, a firmware style boot-loader GEMMABOOT & a workspace where you can load and save code to named CIRCUITPY.

For normal use you only need to interact with CIRCUITPY.

The gemma m0 is good to go out of the tiny pink plastic bag.

1. Install MU

1b. ( *sidequest* ) 

If you are the kind of person who wants/likes/needs to update the firmware a guide is here :

It's probably unnecessary for normal use.

You need to double click the onboard reset button which will mount the GEMMABOOT volume instead of CIRCUITPY
Then replace the firmware with a (possibly) newer version off the Adafruit site.

PRO TIP : OSX keyboard shortcut : COMMAND + SHIFT + PERIOD will show hidden files.

Ran into this fascinating error under 10.13.4

Didn't effect the firmware update, so Reset, & back to CIRCUITPY world.

**end Sidequest**

2. GOTCHA : When testing dragging & dropping from OSX to the CIRCUITPY volume, I initially was running into OSX permission errors. It seemed like a unix read-write permission problem BUT, it was actually out of space on the flash memory. I discovered this from deleting the ReadMe.txt and was able to write the the volume. 

3.  PRO TIP : Only edit from within the Mu editor. At this time running through the circuitPython m0 + MU tutorial is the best starter.

Why should you use ANOTHER new text editor ?

With MU+CircuitPython, you can simply fly through development, the iteration cycle is very fast. Type some code, save to the board, see the result. 
mu editor
If that's TOO SLOW, you can use the interactive python REPL interpreter and see results as you type (these aren't saved, more for testing output to console). 

mu repl
What's REPL anyway ? 
Read Evaluate Print Loop. A computer science term where code is essentially executed interactively ( historically LISP, SCHEME, PYTHON, etc ) VS. the more traditional ; write text file, parse, compile, execute of more static-typed languages. A fine explanation of that HERE

Stay tuned for PART TWO of this ongoing series where we take MU+CircuitPython for a spin and test out the basic board I/O features.

PURCHASE GEMMA m0 on Elmwood site. 

Further Reading:

Over the course of the summer I'll be choosing a few of these ^ tutorials to build and document with extra notes on PROTIPS & GOTCHAS.


Robertson Holt
Robertson Holt


Leave a comment

Comments will be approved before showing up.