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.
OF NOTE :
- Onboard memory more than enough for the purpose, but need to manage it carefully. 256KB Flash, 32 KB RAM
WHERE DOES IT FIT IN PRODUCT LINES ?
- 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.
HOW IS IT DIFFERENT?
- 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.
SO AWESOME :
- You plug it in & can read the code.py 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.
2. GOTCHA : When testing dragging & dropping code.py 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 code.py 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.
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).
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.