CircuitPython runs nicely on the Gemma or Trinket M0 but there are some constraints
Since we use the internal flash for disk, and that's shared with runtime code, its limited! Only about 50KB of space. Our Express line of boards have a whopping 2 MB of external Flash, if you need more space
As of CircuitPython 2.1 we have added PulseIO support to Trinket & Gemma M0. That means PWM, piezo, servo, DHT22 and Infrared support!
Part of giving up that FLASH for disk means we couldn't fit everything in. There is, at this time, no support for hardware audio playpack or NVM 'eeprom'. For that support, check out the Circuit Playground Express or other Express boards
However, I2C, UART, capacitive touch, NeoPixel, PWM, analog in and out, digital IO, logging storage, and HID do work! Check below for quick starts on all these.
- The wide body of python libraries have not been ported over, so while we wish you could
import numpy, numpy isn't available. So you may have to port some code over yourself!
- For the ATSAMD21 based boards (Feather M0, Metro M0, Trinket M0, Gemma M0, Circuit PlayGround Express) there's a limited amount of RAM, we've found you can have about 250-ish lines of python (that's with various libraries) before you hit MemoryErrors. The upcoming SAMD51 chipset will help with that a ton but its not yet available)
- Non-Express boards like Trinket M0 and Gemma M0 and non-Express Feathers do not include all of the hardware support. For example,
bitbangioare not included.
- Integers can only be up to 31 bits. Integers of unlimited size are not supported.
- We keep up with MicroPython stable releases, so check out the core 'differences' they document here.
Will give you the number of bytes available for use.