Overview

The Arduino MKR Zero (SKU: ABX00012) is a compact MKR-form-factor board built around the Atmel SAMD21G18A (ARM Cortex-M0+ at 48 MHz). Launched in 2017, it is the audio-focused member of the MKR family, distinguished by its built-in I2S interface, on-board microSD card slot, and a JST connector for single-cell 3.7V Li-Po batteries with an integrated charger circuit.

Designed for maker projects that need high-quality audio I/O in a small, battery-powered package, the MKR Zero can connect directly to I2S DACs, I2S ADCs, and MEMS microphones without any additional glue logic. Paired with the ArduinoSound library and the SD library, it becomes a self-contained audio player, recorder, or effects processor.

All I/O operates at 3.3V logic. The board is not 5V tolerant — connecting 5V signals to the GPIO pins will damage the MCU.

Quick Overview

Feature Detail
MCU Atmel SAMD21G18A (ARM Cortex-M0+, 48 MHz)
Flash 256 KB
SRAM 32 KB
Logic Voltage 3.3V (NOT 5V tolerant)
Key Interface I2S audio (built-in)
Storage microSD card slot (SPI)
Battery Li-Po 1-cell 3.7V connector + on-board charger
USB micro-USB (programming + serial)
Dimensions 67.64 × 25 mm

Key Features

I2S Audio Interface

The I2S (Inter-IC Sound) bus is the defining feature of the MKR Zero. It allows direct connection to I2S-compatible DACs (such as the MAX98357A), I2S ADCs, and digital MEMS microphones (such as the SPH0645) without any additional conversion circuitry. This enables studio-quality, 24-bit / 96 kHz audio processing on a board the size of a credit card.

On-Board microSD Slot

The integrated microSD card slot connects via SPI and works with the standard Arduino SD library. Combined with the I2S interface, the board can read WAV or raw PCM audio files from the card and stream them directly to an I2S DAC — making it a capable standalone audio player.

Li-Po Battery Connector and Charger

A JST PH 2-pin connector accepts a single-cell 3.3V / 3.7V Li-Po battery. The on-board MCP73831 charger tops up the battery when USB power is present, enabling fully portable, rechargeable audio projects without any external charging module.

MKR Form Factor

At 67.64 × 25 mm, the MKR Zero shares the same compact footprint and pinout standard as all other Arduino MKR boards (MKR WiFi 1010, MKR GSM 1400, etc.), allowing shields and accessories designed for the MKR ecosystem to be used interchangeably.

ArduinoSound Library

Arduino provides the ArduinoSound library specifically for this board. It abstracts the I2S peripheral into simple read/write calls, greatly reducing the code needed to implement audio playback, recording, and frequency analysis.

Technical Specifications

Parameter Value
MCU Atmel SAMD21G18A
Architecture ARM Cortex-M0+
Clock Speed 48 MHz
Flash Memory 256 KB
SRAM 32 KB
Operating Voltage 3.3V
Input Voltage (USB) 5V via micro-USB
Input Voltage (Li-Po) 3.7V (1-cell Li-Po)
Digital I/O Pins 8
PWM Channels Up to 12
ADC Resolution 12-bit
I2S Interface Yes (built-in, for digital audio)
microSD Slot Yes (SPI interface)
Li-Po Connector Yes (JST PH 2-pin, with charger)
UART 1
I2C 1
SPI 1
USB Interface micro-USB (USB native support)
Dimensions 67.64 × 25 mm
Weight ~32 g

Pinout

Arduino MKR Zero pinout diagram

The MKR Zero exposes its pins on two edge-mounted headers following the standard MKR layout:

Left Header (top to bottom)

AREF, DAC0 (A0), A1, A2, A3, A4, A5, A6, D0 (also used for I2S), D1, D2, D3, D4, D5, D6, D7

Right Header (top to bottom)

5V (from USB only), VCC (3.3V regulated), GND, RESET, D8 (SCK/I2S SCK), D9 (MISO), D10 (MOSI / I2S SD), D11 (SDA / I2S FS), D12 (SCL), RX (D13), TX (D14)

I2S Pins

I2S uses SD (Serial Data) on D10, SCK (Bit Clock) on D8, and FS (Frame Select / Word Select) on D11. These are shared with SPI and I2C, so I2S and SPI/I2C cannot be used simultaneously on the same lines.

microSD (Internal SPI)

The microSD card slot is wired to an internal SPI bus separate from the header pins. No user pin assignment is needed — simply use the SD library.

Power

The MKR Zero can be powered in three ways:

Source Connector Voltage Notes
USB micro-USB 5V Powers board and charges Li-Po
Li-Po Battery JST PH 2-pin 3.7V nominal On-board charger (MCP73831)
External VCC Pin header 3.3V Directly powers regulated rail; use with caution

The on-board 3.3V regulator supplies all logic. The Li-Po charger activates automatically when USB is connected. When running on battery only, the 5V pin is unpowered.

Getting Started

What You Need

  • Arduino MKR Zero board
  • Micro-USB cable
  • MicroSD card (FAT32 formatted) — optional for audio playback
  • I2S DAC breakout (e.g. MAX98357A) — optional for audio output
  • Arduino IDE 1.8+ or Arduino IDE 2.x

Install Board Support

  1. Open Arduino IDE and go to File > Preferences.
  2. Add the following URL to "Additional Boards Manager URLs": https://downloads.arduino.cc/packages/package_index.json
  3. Go to Tools > Board > Boards Manager, search for "SAMD", and install "Arduino SAMD Boards".
  4. Select Tools > Board > Arduino MKR Zero.

Install Libraries

In the Library Manager (Sketch > Include Library > Manage Libraries), install:

  • SD (built-in, for microSD access)
  • ArduinoSound (for I2S audio playback and recording)

Programming

Reading a WAV File from the SD Card

The example below opens a WAV file stored on the microSD card and plays it through an I2S DAC connected to the I2S pins (D8, D10, D11).

#include <SD.h> #include <ArduinoSound.h> // CS pin for the on-board microSD slot const int SD_CS_PIN = SDCARD_SS_PIN; SDWaveFile waveFile; void setup() { Serial.begin(9600); while (!Serial); // Initialize the SD card if (!SD.begin(SD_CS_PIN)) { Serial.println("SD initialization failed!"); while (true); } Serial.println("SD card initialized."); // Open a WAV file from the SD card waveFile = SDWaveFile("AUDIO.WAV"); if (!waveFile) { Serial.println("Could not open WAV file!"); while (true); } // Print file info Serial.print("Sample rate: "); Serial.print((long)waveFile.sampleRate()); Serial.println(" Hz"); Serial.print("Bits per sample: "); Serial.println(waveFile.bitsPerSample()); Serial.print("Channels: "); Serial.println(waveFile.channels()); // Start I2S output and play the file if (!AudioOutI2S.canPlay(waveFile)) { Serial.println("Unable to play WAV file with I2S output!"); while (true); } Serial.println("Playing audio..."); AudioOutI2S.play(waveFile); } void loop() { // Check if playback has finished if (!AudioOutI2S.isPlaying()) { Serial.println("Playback complete."); while (true); // Stop here } }

Notes on the Code

  • SDCARD_SS_PIN is a pre-defined constant for the MKR Zero's internal SD CS pin.
  • The WAV file must be placed in the root directory of a FAT32-formatted microSD card.
  • The I2S DAC (e.g. MAX98357A) connects: BCLK to D8, LRC (WS) to D11, DIN to D10.

Package Contents

Item Quantity
Arduino MKR Zero board 1
Headers (unsoldered) 1 set

MicroSD card and Li-Po battery are not included.

Applications

  • Portable audio file players (WAV playback from microSD)
  • Digital audio recorders (using I2S microphones)
  • Music synthesizers and sequencers
  • Audio effects pedals (real-time DSP)
  • MIDI controllers with audio output
  • Battery-powered sound modules for installations
  • Educational audio DSP projects

Where to Buy

Equivalent Boards

Board Key Difference
Arduino MKR WiFi 1010 Adds Wi-Fi + BLE; no I2S header breakout, no microSD slot
Arduino Due Larger SAM3X8E, dual DAC + I2S, 3.3V, no Li-Po connector, not MKR form
Teensy 4.1 Far more powerful audio (480 MHz Cortex-M7), I2S, SD, larger and pricier

Notes

3.3V Logic Warning

The MKR Zero operates at 3.3V logic on all I/O pins. The SAMD21 is NOT 5V tolerant. Connecting any 5V signal (from a 5V Arduino, sensor, or module) directly to a GPIO pin will permanently damage the microcontroller. Use a logic level shifter when interfacing with 5V devices.

microSD Card Format

The SD card must be formatted as FAT16 or FAT32. Cards larger than 32 GB may require special formatting tools to use FAT32. Recommended capacity: 4 GB to 32 GB.

I2S and SPI Conflict

The I2S peripheral shares physical pins with the SPI bus exposed on the header. Using I2S audio output/input at the same time as SPI devices connected to the header pins (D8, D10, D11) is not possible without hardware multiplexing. The internal SD card slot uses a separate internal SPI bus and is not affected.

Community

Revision History

Version Date Notes
v1.0 2026-06 Initial entry