User Manual
CircuitPython and your code. This means that we're able to include more functionality in CircuitPython and you're able
to do more with your code on an Express board than you would on a non-Express board.
Express boards include Circuit Playground Express, ItsyBitsy M0 Express, Feather M0 Express, Metro M0 Express and
Metro M4 Express.
Non-Express boards include Trinket M0, Gemma M0, Feather M0 Basic, and other non-Express Feather M0 variants.
Non-Express Boards: Gemma and Trinket
CircuitPython runs nicely on the Gemma M0 or Trinket M0 but there are some constraints
Small Disk Space
Since we use the internal flash for disk, and that's shared with runtime code, its limited! Only about 50KB of space.
No Audio or NVM
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'. Modules audioio and bitbangio are not included. For that support, check out the
Circuit Playground Express or other Express boards.
However, I2C, UART, capacitive touch, NeoPixel, DotStar, PWM, analog in and out, digital IO, logging storage, and HID
do work! Check the CircuitPython Essentials for examples of all of these.
Differences Between CircuitPython and MicroPython
For the differences between CircuitPython and MicroPython, check out the CircuitPython
documentation (https://adafru.it/Bvz).
Differences Between CircuitPython and Python
Python (also known as CPython) is the language that MicroPython and CircuitPython are based on. There are many
similarities, but there are also many differences. This is a list of a few of the differences.
Python Libraries
Python is advertised as having "batteries included", meaning that many standard libraries are included. Unfortunately,
for space reasons, many Python libraries are not available. So for instance while we wish you could import numpy ,
numpy isn't available. So you may have to port some code over yourself!
Integers in CircuitPython
On the non-Express boards, integers can only be up to 31 bits long. Integers of unlimited size are not supported. The
largest positive integer that can be represented is 2 -1, 1073741823, and the most negative integer possible is -2 , -
1073741824.
As of CircuitPython 3.0, Express boards have arbitrarily long integers as in Python.
Floating Point Numbers and Digits of Precision for Floats in CircuitPython
Floating point numbers are single precision in CircuitPython (not double precision as in Python). The largest floating
point magnitude that can be represented is about +/-3.4e38. The smallest magnitude that can be represented with full
30 30
© Adafruit Industries https://learn.adafruit.com/adafruit-metro-m4-express-featuring-atsamd51 Page 170 of 172










