# Atmel SAM

Configuration

  platform = `atmelsam`

Atmel | SMART offers Flash- based ARM products based on the ARM Cortex-M0+, Cortex-M3 and Cortex-M4 architectures, ranging from 8KB to 2MB of Flash including a rich peripheral and feature mix.

For more detailed information please visit vendor site.

Contents

- Examples

- Debugging

- Stable and upstream versions

- Packages

- Frameworks

- Boards

## Examples

Examples are listed from Atmel SAM development platform repository:

- mbed-blink

- mbed-serial

- zephyr-blink

- zephyr-drivers-i2c-scanner

- zephyr-subsys-logger

- mbed-events

- arduino-blink

- simba-blink

- arduino-internal-libs

- arduino-external-libs

- mbed-dsp

- arduino-web-thing-led

- arduino-briki-internal-libs

## Debugging

PIO Unified Debugger - “1-click” solution for debugging with a zero configuration.

- Tools & Debug Probes

  - On-Board Debug Tools

  - External Debug Tools

### Tools & Debug Probes

Supported debugging tools are listed in “Debug” column. For more detailed information, please scroll table by horizontal. You can switch between debugging Tools & Debug Probes using debug_tool option in “platformio.ini” (Project Configuration File).

Warning

You will need to install debug tool drivers depending on your system. Please click on compatible debug tool below for the further instructions.

#### On-Board Debug Tools

Boards listed below have on-board debug probe and ARE READY for debugging! You do not need to use/buy external debug probe.

Name | MCU | Frequency | Flash | RAM
--- | --- | --- | --- | ---
Arduino M0 Pro (Programming/Debug Port) | SAMD21G18A | 48MHz | 256KB | 32KB
Arduino Zero (Programming/Debug Port) | SAMD21G18A | 48MHz | 256KB | 32KB
Atmel ATSAMR21-XPRO | SAMR21G18A | 48MHz | 256KB | 32KB
Atmel ATSAMW25-XPRO | SAMD21G18A | 48MHz | 256KB | 32KB
Atmel SAMC21-XPRO | SAMC21J18A | 48MHz | 256KB | 32KB
Atmel SAMD21-XPRO | SAMD21J18A | 48MHz | 256KB | 32KB
Atmel SAML21-XPRO-B | SAML21J18B | 48MHz | 256KB | 32KB

#### External Debug Tools

Boards listed below are compatible with PIO Unified Debugger but DEPEND ON external debug probe. They ARE NOT READY for debugging. Please click on board name for the further details.

Name | MCU | Frequency | Flash | RAM
--- | --- | --- | --- | ---
Adafruit Circuit Playground Express | SAMD21G18A | 48MHz | 256KB | 32KB
Adafruit Crickit M0 | SAMD21G18A | 48MHz | 256KB | 32KB
Adafruit Feather M0 | SAMD21G18A | 48MHz | 256KB | 32KB
Adafruit Feather M0 Express | SAMD21G18A | 48MHz | 256KB | 32KB
Adafruit Feather M4 Express | SAMD51J19A | 120MHz | 512KB | 192KB
Adafruit Gemma M0 | SAMD21E18A | 48MHz | 256KB | 32KB
Adafruit Grand Central M4 | SAMD51P20A | 120MHz | 1MB | 256KB
Adafruit Hallowing M0 | SAMD21G18A | 48MHz | 256KB | 32KB
Adafruit Hallowing M4 | SAMD51J19A | 120MHz | 496KB | 192KB
Adafruit ItsyBitsy M0 | SAMD21G18A | 48MHz | 256KB | 32KB
Adafruit ItsyBitsy M4 | SAMD51G19A | 120MHz | 512KB | 192KB
Adafruit MONSTER M4SK | SAMD51G19A | 120MHz | 496KB | 192KB
Adafruit Metro M0 Expresss | SAMD21G18A | 48MHz | 256KB | 32KB
Adafruit Metro M4 | SAMD51J19A | 120MHz | 512KB | 192KB
Adafruit Metro M4 AirLift Lite | SAMD51J19A | 120MHz | 512KB | 192KB
Adafruit PyGamer Advance M4 | SAMD51J20A | 120MHz | 1MB | 256KB
Adafruit PyGamer M4 Express | SAMD51J19A | 120MHz | 512KB | 192KB
Adafruit PyPortal M4 | SAMD51J20A | 120MHz | 1MB | 256KB
Adafruit PyPortal M4 Titano | SAMD51J20A | 120MHz | 1MB | 256KB
Adafruit Trellis M4 | SAMD51J19A | 120MHz | 512KB | 192KB
Adafruit Trinket M0 | SAMD21E18A | 48MHz | 256KB | 32KB
Adafruit pIRkey | SAMD21E18A | 48MHz | 256KB | 32KB
Adafruit pyBadge AirLift M4 | SAMD51J20A | 120MHz | 1008KB | 192KB
Adafruit pyBadge M4 Express | SAMD51J19A | 120MHz | 512KB | 192KB
Arduino Due (Programming Port) | AT91SAM3X8E | 84MHz | 512KB | 96KB
Arduino Due (USB Native Port) | AT91SAM3X8E | 84MHz | 512KB | 96KB
Arduino M0 | SAMD21G18A | 48MHz | 256KB | 32KB
Arduino M0 Pro (Native USB Port) | SAMD21G18A | 48MHz | 256KB | 32KB
Arduino MKR FOX 1200 | SAMD21G18A | 48MHz | 256KB | 32KB
Arduino MKR GSM 1400 | SAMD21G18A | 48MHz | 256KB | 32KB
Arduino MKR NB 1500 | SAMD21G18A | 48MHz | 256KB | 32KB
Arduino MKR WAN 1300 | SAMD21G18A | 48MHz | 256KB | 32KB
Arduino MKR WAN 1310 | SAMD21G18A | 48MHz | 256KB | 32KB
Arduino MKR WiFi 1010 | SAMD21G18A | 48MHz | 256KB | 32KB
Arduino MKR1000 | SAMD21G18A | 48MHz | 256KB | 32KB
Arduino MKRZERO | SAMD21G18A | 48MHz | 256KB | 32KB
Arduino Tian | SAMD21G18A | 48MHz | 256KB | 32KB
Arduino Zero (USB Native Port) | SAMD21G18A | 48MHz | 256KB | 32KB
Briki ABC (MBC-WB) - Samd21 | SAMD21G18A | 48MHz | 256KB | 32KB
Briki MBC-WB - Samd21 | SAMD21G18A | 48MHz | 256KB | 32KB
Digistump DigiX | AT91SAM3X8E | 84MHz | 512KB | 96KB
MKR Vidor 4000 | SAMD21G18A | 48MHz | 256KB | 32KB
Minitronics v2.0 | SAMD21J18A | 48MHz | 256KB | 32KB
Moteino M0 | SAMD21G18A | 48MHz | 256KB | 32KB
NANO 33 IoT | SAMD21G18A | 48MHz | 256KB | 32KB
SODAQ Autonomo | SAMD21J18A | 48MHz | 256KB | 32KB
SODAQ ExpLoRer | SAMD21J18A | 48MHz | 256KB | 32KB
SODAQ ONE | SAMD21G18A | 48MHz | 256KB | 32KB
SODAQ SARA | SAMD21J18A | 48MHz | 256KB | 32KB
SODAQ SFF | SAMD21G18A | 48MHz | 256KB | 32KB
SainSmart Due (Programming Port) | AT91SAM3X8E | 84MHz | 512KB | 96KB
SainSmart Due (USB Native Port) | AT91SAM3X8E | 84MHz | 512KB | 96KB
Seeeduino LoRaWAN | SAMD21G18A | 48MHz | 256KB | 32KB
SparkFun 9DoF Razor IMU M0 | SAMD21G18A | 48MHz | 256KB | 32KB
SparkFun Qwiic Micro | SAMD21E18A | 48MHz | 256KB | 32KB
SparkFun RedBoard Turbo | SAMD21G18A | 48MHz | 256KB | 32KB
SparkFun SAMD21 Dev Breakout | SAMD21G18A | 48MHz | 256KB | 32KB
SparkFun SAMD21 Mini Breakout | SAMD21G18A | 48MHz | 256KB | 32KB
SparkFun SAMD21 Pro RF | SAMD21G18A | 48MHz | 256KB | 32KB
Tuino 096 | SAMD21G18A | 48MHz | 256KB | 32KB

## Stable and upstream versions

You can switch between stable releases of Atmel SAM development platform and the latest upstream version using platform option in “platformio.ini” (Project Configuration File) as described below.

### Stable

    ; Latest stable version
    [env:latest_stable]
    platform = atmelsam
    board = ...

    ; Custom stable version
    [env:custom_stable]
    platform = atmelsam@x.y.z
    board = ...

### Upstream

    [env:upstream_develop]
    platform = https://github.com/platformio/platform-atmelsam.git
    board = ...

## Packages

Name | Description
--- | ---
framework-arduino-mbcwb | Fork of Arduino framework for briki MBC-WB boards
framework-arduino-sam | Arduino Wiring-based Framework (SAM Core)
framework-arduino-samd | Arduino Wiring-based Framework (SAMD Core)
framework-arduino-samd-adafruit | Arduino Wiring-based Framework (Adafruit SAMD Core)
framework-arduino-samd-moteino | Arduino Wiring-based Framework (Moteino SAMD Core)
framework-arduino-samd-reprap | Arduino Wiring-based Framework (RepRap SAMD Core)
framework-arduino-samd-sodaq | Arduino Wiring-based Framework (SODAQ SAMD Core)
framework-arduino-samd-sparkfun | Arduino Wiring-based Framework (SparkFun SAMD Core)
framework-arduino-samd-tuino0 | Arduino Wiring-based Framework (Tuino0 SAMD Core)
framework-cmsis | Vendor-independent hardware abstraction layer for the Cortex-M processor series
framework-cmsis-atmel | Atmel Smart ARM devices CMSIS module
framework-mbed | mbed Framework
framework-simba | Simba Framework
framework-zephyr | Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
framework-zephyr-canopennode | Zephyr module for CANopenNode - a free and open source CANopen Stack
framework-zephyr-civetweb | Zephyr module CivetWeb Embedded C/C++ web server
framework-zephyr-fatfs | Zephyr module for FATFS filesystem
framework-zephyr-hal-atmel | Atmel SAM HAL for Zephyr framework
framework-zephyr-libmetal | Zephyr module for HAL abstraction layer used by open-amp
framework-zephyr-littlefs | Zephyr module for littlefs filesystem
framework-zephyr-loramac-node | Zephyr module for LoRaWAN endpoint stack implementation
framework-zephyr-lvgl | Zephyr module for LittlevGL - an Open-source Embedded GUI Library
framework-zephyr-mbedtls | mbedTLS module for Zephyr
framework-zephyr-mcuboot | Zephyr module for MCUboot - a secure bootloader for 32-bit MCUs
framework-zephyr-mcumgr | Zephyr module for mcumgr management library for 32-bit MCUs
framework-zephyr-mipi-sys-t | Zephyr module for MIPI System Software Trace
framework-zephyr-open-amp | Zephyr module for Open Asymmetric Multi Processing (OpenAMP) framework
framework-zephyr-openthread | OpenThread module for Zephyr
framework-zephyr-segger | Zephyr module for Segger RTT
framework-zephyr-tinycbor | Zephyr module for Concise Binary Object Representation Library
tool-avrdude | AVRDUDE
tool-bossac | BOSSA CLI
tool-cmake | CMake is an open-source, cross-platform family of tools designed to build, test and package software.
tool-dtc | Device tree compiler
tool-gperf | GNU gperf is a perfect hash function generator.
tool-jlink | SEGGER J-Link Software and Documentation Pack
tool-mbctool | MBC-WB Uploader Application
tool-ninja | Ninja is a small build system with a focus on speed.
tool-openocd | OpenOCD
toolchain-gccarmnoneeabi | gcc-arm-embedded

Warning

Linux Users:

> - Install “udev” rules 99-platformio-udev.rules

> - Raspberry Pi users, please read this article Enable serial port on Raspberry Pi.

Windows Users:

> Please check that you have a correctly installed USB driver from board manufacturer

## Frameworks

Name | Description
--- | ---
Arduino | Arduino Wiring-based Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding, interactive objects, spaces or physical experiences.

Mbed

The mbed framework The mbed SDK has been designed to provide enough hardware abstraction to be intuitive and concise, yet powerful enough to build complex projects. It is built on the low-level ARM CMSIS APIs, allowing you to code down to the metal if needed. In addition to RTOS, USB and Networking libraries, a cookbook of hundreds of reusable peripheral and module libraries have been built on top of the SDK by the mbed Developer Community.

Simba | Simba is an RTOS and build framework. It aims to make embedded programming easy and portable.
Zephyr | The Zephyr Project is a scalable real-time operating system (RTOS) supporting multiple hardware architectures, optimized for resource constrained devices, and built with safety and security in mind.

## Boards

Note

- You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer

- For more detailed `board` information please scroll the tables below by horizontally.

### Adafruit

Name | Debug | MCU | Frequency | Flash | RAM
--- | --- | --- | --- | --- | ---
Adafruit Circuit Playground Express | External | SAMD21G18A | 48MHz | 256KB | 32KB
Adafruit Crickit M0 | External | SAMD21G18A | 48MHz | 256KB | 32KB
Adafruit Feather M0 | External | SAMD21G18A | 48MHz | 256KB | 32KB
Adafruit Feather M0 Express | External | SAMD21G18A | 48MHz | 256KB | 32KB
Adafruit Feather M4 Express | External | SAMD51J19A | 120MHz | 512KB | 192KB
Adafruit Gemma M0 | External | SAMD21E18A | 48MHz | 256KB | 32KB
Adafruit Grand Central M4 | External | SAMD51P20A | 120MHz | 1MB | 256KB
Adafruit Hallowing M0 | External | SAMD21G18A | 48MHz | 256KB | 32KB
Adafruit Hallowing M4 | External | SAMD51J19A | 120MHz | 496KB | 192KB
Adafruit ItsyBitsy M0 | External | SAMD21G18A | 48MHz | 256KB | 32KB
Adafruit ItsyBitsy M4 | External | SAMD51G19A | 120MHz | 512KB | 192KB
Adafruit MONSTER M4SK | External | SAMD51G19A | 120MHz | 496KB | 192KB
Adafruit Metro M0 Expresss | External | SAMD21G18A | 48MHz | 256KB | 32KB
Adafruit Metro M4 | External | SAMD51J19A | 120MHz | 512KB | 192KB
Adafruit Metro M4 AirLift Lite | External | SAMD51J19A | 120MHz | 512KB | 192KB
Adafruit PyGamer Advance M4 | External | SAMD51J20A | 120MHz | 1MB | 256KB
Adafruit PyGamer M4 Express | External | SAMD51J19A | 120MHz | 512KB | 192KB
Adafruit PyPortal M4 | External | SAMD51J20A | 120MHz | 1MB | 256KB
Adafruit PyPortal M4 Titano | External | SAMD51J20A | 120MHz | 1MB | 256KB
Adafruit Trellis M4 | External | SAMD51J19A | 120MHz | 512KB | 192KB
Adafruit Trinket M0 | External | SAMD21E18A | 48MHz | 256KB | 32KB
Adafruit pIRkey | External | SAMD21E18A | 48MHz | 256KB | 32KB
Adafruit pyBadge AirLift M4 | External | SAMD51J20A | 120MHz | 1008KB | 192KB
Adafruit pyBadge M4 Express | External | SAMD51J19A | 120MHz | 512KB | 192KB

### Arduino

Name | Debug | MCU | Frequency | Flash | RAM
--- | --- | --- | --- | --- | ---
Arduino Due (Programming Port) | External | AT91SAM3X8E | 84MHz | 512KB | 96KB
Arduino Due (USB Native Port) | External | AT91SAM3X8E | 84MHz | 512KB | 96KB
Arduino M0 | External | SAMD21G18A | 48MHz | 256KB | 32KB
Arduino M0 Pro (Native USB Port) | External | SAMD21G18A | 48MHz | 256KB | 32KB
Arduino M0 Pro (Programming/Debug Port) | On-board | SAMD21G18A | 48MHz | 256KB | 32KB
Arduino MKR FOX 1200 | External | SAMD21G18A | 48MHz | 256KB | 32KB
Arduino MKR GSM 1400 | External | SAMD21G18A | 48MHz | 256KB | 32KB
Arduino MKR NB 1500 | External | SAMD21G18A | 48MHz | 256KB | 32KB
Arduino MKR WAN 1300 | External | SAMD21G18A | 48MHz | 256KB | 32KB
Arduino MKR WAN 1310 | External | SAMD21G18A | 48MHz | 256KB | 32KB
Arduino MKR WiFi 1010 | External | SAMD21G18A | 48MHz | 256KB | 32KB
Arduino MKR1000 | External | SAMD21G18A | 48MHz | 256KB | 32KB
Arduino MKRZERO | External | SAMD21G18A | 48MHz | 256KB | 32KB
Arduino Tian | External | SAMD21G18A | 48MHz | 256KB | 32KB
Arduino Zero (Programming/Debug Port) | On-board | SAMD21G18A | 48MHz | 256KB | 32KB
Arduino Zero (USB Native Port) | External | SAMD21G18A | 48MHz | 256KB | 32KB
MKR Vidor 4000 | External | SAMD21G18A | 48MHz | 256KB | 32KB
NANO 33 IoT | External | SAMD21G18A | 48MHz | 256KB | 32KB

### Atmel

Name | Debug | MCU | Frequency | Flash | RAM
--- | --- | --- | --- | --- | ---
Atmel ATSAMR21-XPRO | On-board | SAMR21G18A | 48MHz | 256KB | 32KB
Atmel ATSAMW25-XPRO | On-board | SAMD21G18A | 48MHz | 256KB | 32KB
Atmel SAMC21-XPRO | On-board | SAMC21J18A | 48MHz | 256KB | 32KB
Atmel SAMD21-XPRO | On-board | SAMD21J18A | 48MHz | 256KB | 32KB
Atmel SAML21-XPRO-B | On-board | SAML21J18B | 48MHz | 256KB | 32KB

### Digistump

Name | Debug | MCU | Frequency | Flash | RAM
--- | --- | --- | --- | --- | ---
Digistump DigiX | External | AT91SAM3X8E | 84MHz | 512KB | 96KB

### Gimasi

Name | Debug | MCU | Frequency | Flash | RAM
--- | --- | --- | --- | --- | ---
Tuino 096 | External | SAMD21G18A | 48MHz | 256KB | 32KB

### LowPowerLab

Name | Debug | MCU | Frequency | Flash | RAM
--- | --- | --- | --- | --- | ---
LowPowerLab CurrentRanger | No | SAMD21G18A | 48MHz | 256KB | 32KB
Moteino M0 | External | SAMD21G18A | 48MHz | 256KB | 32KB

### ReprapWorld

Name | Debug | MCU | Frequency | Flash | RAM
--- | --- | --- | --- | --- | ---
Minitronics v2.0 | External | SAMD21J18A | 48MHz | 256KB | 32KB

### SODAQ

Name | Debug | MCU | Frequency | Flash | RAM
--- | --- | --- | --- | --- | ---
SODAQ Autonomo | External | SAMD21J18A | 48MHz | 256KB | 32KB
SODAQ ExpLoRer | External | SAMD21J18A | 48MHz | 256KB | 32KB
SODAQ ONE | External | SAMD21G18A | 48MHz | 256KB | 32KB
SODAQ SARA | External | SAMD21J18A | 48MHz | 256KB | 32KB
SODAQ SFF | External | SAMD21G18A | 48MHz | 256KB | 32KB

### SainSmart

Name | Debug | MCU | Frequency | Flash | RAM
--- | --- | --- | --- | --- | ---
SainSmart Due (Programming Port) | External | AT91SAM3X8E | 84MHz | 512KB | 96KB
SainSmart Due (USB Native Port) | External | AT91SAM3X8E | 84MHz | 512KB | 96KB

### Seeed

Name | Debug | MCU | Frequency | Flash | RAM
--- | --- | --- | --- | --- | ---
Seeeduino LoRaWAN | External | SAMD21G18A | 48MHz | 256KB | 32KB

### SparkFun

Name | Debug | MCU | Frequency | Flash | RAM
--- | --- | --- | --- | --- | ---
SparkFun 9DoF Razor IMU M0 | External | SAMD21G18A | 48MHz | 256KB | 32KB
SparkFun Qwiic Micro | External | SAMD21E18A | 48MHz | 256KB | 32KB
SparkFun RedBoard Turbo | External | SAMD21G18A | 48MHz | 256KB | 32KB
SparkFun SAMD21 Dev Breakout | External | SAMD21G18A | 48MHz | 256KB | 32KB
SparkFun SAMD21 Mini Breakout | External | SAMD21G18A | 48MHz | 256KB | 32KB
SparkFun SAMD21 Pro RF | External | SAMD21G18A | 48MHz | 256KB | 32KB

### meteca

Name | Debug | MCU | Frequency | Flash | RAM
--- | --- | --- | --- | --- | ---
Briki ABC (MBC-WB) - Samd21 | External | SAMD21G18A | 48MHz | 256KB | 32KB
Briki MBC-WB - Samd21 | External | SAMD21G18A | 48MHz | 256KB | 32KB