Adafruit
Adafruit Trinket M0 - for use with CircuitPython Arduino IDE
The Adafruit Trinket M0 is a tiny but powerful microcontroller board built around the ATSAMD21E18 32-bit Cortex M0+ processor. It shares the same compact for...
Get notified when back in stock
The Adafruit Trinket M0 is a tiny but powerful microcontroller board built around the ATSAMD21E18 32-bit Cortex M0+ processor. It shares the same compact form factor and pinout as the original Trinket, but with a massive upgrade in processing power, memory, and connectivity — including native USB and support for both CircuitPython and the Arduino IDE.
The Trinket M0 ships with CircuitPython pre-loaded. Plug it in and it appears as a small USB drive with a main.py file — edit it with any text editor to start building your project in Python. No installs, IDE, or compiler needed, so it works on any computer including Chromebooks.
Key Features
- ATSAMD21E18 Processor – 48 MHz 32-bit Cortex M0+, 256KB flash, 32KB RAM
- CircuitPython & Arduino IDE – Ships with CircuitPython; also fully compatible with the Arduino IDE
- Native USB – USB serial console, keyboard/mouse HID, and USB mass storage for Python scripts
- 5 GPIO Pins – All independent (not shared with USB), with digital I/O and internal pull-ups/pull-downs
- 3 Analog Inputs – 12-bit resolution on three I/O pins
- True Analog Output – 10-bit DAC on one pin for audio playback
- 2 PWM Outputs – For servos, LEDs, and more
- 3 Capacitive Touch Pins – Hardware touch sensing with no additional components
- Hardware I2C, SPI, and Serial – True hardware support (not bit-banged)
- NeoPixel & DotStar Support – Drive 8000+ pixels from any pin, with DMA-NeoPixel support on one pin
- Built-in LEDs – Green power LED, red pin #13 LED, and RGB DotStar LED
- Automatic Power Switching – Powers from USB or external source, switches automatically
- Reset Button – Restart your code or enter bootloader mode
- Mounting Holes – For secure installation
Ideal For
- CircuitPython and Arduino projects in a compact form factor
- USB HID devices (custom keyboards, mice, macro pads)
- NeoPixel and DotStar LED projects
- Wearable electronics and embedded builds
- Learning Python on hardware
Package Contents
- 1× Adafruit Trinket M0 (with CircuitPython and example code pre-loaded)
Resources
Jargon buster
Plain-language definitions for the technical terms used above.
- 12-bit resolution
- 12-bit resolution means a value is represented with 12 binary digits, giving 4096 possible levels. For a sensor, analogue-to-digital converter or similar device, higher resolution divides the measured range into finer steps so smaller changes can be distinguished, provided the device's range and noise allow it.
- Bootloader
- Small starter software on a microcontroller that lets new code be uploaded before the main program runs. Knowing how to enter bootloader mode matters when you need to program the board or recover it after a faulty sketch.
- CircuitPython
- A beginner-friendly version of Python designed to run directly on microcontroller boards. If a product supports CircuitPython, you can often program it by copying code files onto the board rather than setting up a more complex toolchain.
- DAC
- A digital-to-analogue converter turns numbers from the microcontroller into a real analogue voltage. It matters if you want to generate simple waveforms, audio-style signals, or variable control voltages rather than just on/off outputs.
- GPIO
- General-purpose input/output pins are microcontroller pins you can set in software to read signals, switch devices on and off, or connect to peripherals. The number of GPIO pins matters because it limits how many buttons, LEDs, sensors, and other parts you can wire directly to the board.
- HID
- Human Interface Device is a USB device class used for keyboards, mice, gamepads and similar controls. If a board supports HID over USB, it can act like an input device to a computer without needing a custom driver.
- I2C
- I2C is a two-wire communication bus used by many sensors and small modules. It matters because several I2C devices can share the same two wires, but each device needs a compatible address and your controller must support I2C.
- IDE
- Short for Integrated Development Environment, a program used to write, run and manage code. It matters because some learners prefer a traditional coding workspace instead of a guided notebook-style lesson.
- LED
- A light-emitting diode (LED) is a small electronic component that emits light when current flows through it in the correct direction. Because it only conducts one way, its polarity matters, and a through-hole LED must be soldered the correct way around to light up.
- microcontroller
- A microcontroller is a small computer on a single chip that runs a stored program and controls connected inputs and outputs such as buttons, sensors, displays and communication interfaces. In a device built around one, it is the part that executes the code and coordinates the device's behaviour.
- native USB
- Native USB means the microcontroller itself handles USB communication, rather than using a separate USB-to-serial chip. This matters for programming, debugging, and projects that need the board to act directly as a USB device.
- NeoPixel
- A type of addressable LED system where colour data is sent along a single digital data line from one LED or controller to the next. Compatibility matters because the timing and signal format must match for the lights or driver board to respond correctly.
- PWM
- Pulse Width Modulation is a way for a digital pin to simulate variable output power by switching on and off very quickly. It matters for controlling things like LED brightness, motor speed, or servo-style signals from a microcontroller pin.
- RAM
- RAM (random-access memory) is fast, temporary memory a device uses for working data while it is running; in its common volatile form, its contents are lost when power is removed. Some devices offer a mode that applies settings to RAM only, which is handy for testing changes temporarily because they are not stored permanently and disappear at power-off.
- RGB
- Short for red, green and blue, the three primary colours of light that are mixed in varying amounts to make a wide range of colours. In electronics RGB can refer to an LED or pixel that blends these three colours, or to a colour signal or interface that carries separate red, green and blue channels.
- SPI
- A fast serial communication bus often used for displays, memory cards, and sensors. It matters because SPI devices need specific pins for clock and data, plus a separate chip-select line for each device.
- UPS
- An uninterruptible power supply is a battery-backed power system that keeps a device running when external power is unplugged or fails. For an embedded computer, it helps prevent sudden shutdowns that can corrupt files or interrupt a project.
- USB mass storage
- USB mass storage is the standard USB device class used by many flash drives and external storage devices. If a board supports it, your project may be able to read and write files on compatible USB storage, provided the software library also supports the device.
Find this product in
Brands
Microcontrollers
dma driven neopixels
Document · 407.4 KB · Click any page to view full size
adafruit trinket m0 circuitpython arduino
Circuit Diagram · 15.7 MB · Click any page to view full size
Resources & Downloads
Guides, code examples, and more
Source Code
Open-source libraries, firmware & example projects for this product
DMA helper/wrapped for ATSAMD21 such as Arduino Zero & Feather M0
5b48867
9 months ago
· 72 commits
- .github Update CI action versions about 3 years ago
- examples Update spi2 example over 3 years ago
- utility clang-format about 6 years ago
- .gitignore Initial Actionsification about 6 years ago
- Adafruit_ZeroDMA.cpp Run clang format 9 months ago
- Adafruit_ZeroDMA.h Fix the angry clang-format about 6 years ago
- library.properties bump version to 1.1.4 9 months ago
- LICENSE release over 8 years ago
- README.md Add Actions 'badge' to README about 6 years ago
DMA-based NeoPixel library for SAMD microcontrollers (Feather M0, M4, Arduino Zero, etc.)
608c671
about 2 years ago
· 62 commits
- .github Update CI action versions about 3 years ago
- examples Fix Arduino SAMD support, add Arduino NANO 33 IoT over 4 years ago
- extras Cleanup after some testing over 6 years ago
- Adafruit_NeoPixel_ZeroDMA.cpp Fix Arduino SAMD support, add Arduino NANO 33 IoT over 4 years ago
- Adafruit_NeoPixel_ZeroDMA.h Fix Arduino SAMD support, add Arduino NANO 33 IoT over 4 years ago
- bittable.h Actions (#10) over 6 years ago
- keywords.txt Cleanup after some testing over 6 years ago
- library.properties Update library.properties - bump version to 1.3.3 about 2 years ago
- LICENSE Add MIT license file, fix a comment over 8 years ago
- pins.h add pixel trinkey about 2 years ago
- README.md Add Arduino NANO 33 IoT to README over 4 years ago
NeoPixel_ZeroDMA-ified version of NeoMatrix library
7b89ebb
over 2 years ago
· 15 commits
- .github Update CI action versions about 3 years ago
- examples Add note re: ASFcore prerequisite, rename .pde files to .ino almost 9 years ago
- extras including .c in clang-format about 6 years ago
- Adafruit_NeoMatrix_ZeroDMA.cpp fixing imports about 6 years ago
- Adafruit_NeoMatrix_ZeroDMA.h fixing imports about 6 years ago
- code-of-conduct.md actionified, formatted and doxy'd about 6 years ago
- COPYING Initial commit almost 9 years ago
- gamma.h actionified, formatted and doxy'd about 6 years ago
- library.properties Update version number over 2 years ago
- README.md actionified, formatted and doxy'd about 6 years ago
Arduino library for controlling single-wire LED pixels (NeoPixel, WS2812, etc.)
d514fc3
about 2 months ago
· 486 commits
- .github add giga to CI about 1 year ago
- examples fix theaterChase effect about 2 years ago
- .gitignore Doxygen WIP about 7 years ago
- Adafruit_NeoPixel.cpp boards: support Zephyr-based STM32 boards 2 months ago
- Adafruit_NeoPixel.h boards: support Zephyr-based STM32 boards 2 months ago
- Adafruit_Neopixel_RP2.cpp use modern API about 1 year ago
- CONTRIBUTING.md [Documentation] over 6 years ago
- COPYING Update COPYING over 10 years ago
- esp.c esp: fix -Wparenthesis warning 11 months ago
- esp8266.c Update esp8266.c almost 5 years ago
- kendyte_k210.c updates almost 6 years ago
- keywords.txt More inconsequential formatting about 7 years ago
- library.properties Bump version to 1.15.5 about 2 months ago
- psoc6.c Add PSOC6 Support to Adafruit Neopixel Library. 11 months ago
- README.md Merge pull request #453 from Brand-IFX/master 5 months ago
CircuitPython - a Python implementation for teaching coding with microcontrollers
4417147
4 days ago
· 41.5k commits
- .codespell Merge pull request #10369 from wee-noise-makers/noise-nugget-support 12 months ago
- .devcontainer install necessary cmake version directly from cmake github releases 28 days ago
- .github Merge pull request #11046 from dhalbert/ci-limit-build-push-branches 21 days ago
- data Update data/nvm.toml to fix CI problem. about 1 year ago
- devices Address feedback 4 months ago
- docs Merge pull request #11073 from dhalbert/CIRCUITPY_SAFE_MODE_DELAY 4 days ago
- extmod update pre-commit config;remove non-CircuitPython extmod files 3 months ago
- frozen update frozen libraries about 2 months ago
- lib Update Zephyr to post-4.4.0 about 1 month ago
- LICENSES updates before header conversion about 2 years ago
- locale Update translation files 7 days ago
- logo non-conflict merge changes almost 2 years ago
- mpy-cross wip 3 months ago
- ports disable AUDIOEFFECTS for pajenicko_picopad 4 days ago
- py Fix definition of `CIRCUITPY_AUDIOSPEED` 11 days ago
Related Tutorials
Free guides on learn.littlebird.com.au