Verified 2026-10
dfrobot FireBeetle 2 M0 Development Board (ATSAMD21G18, USB-C)
25.4 x 60 mm 3.3 V ATSAMD21G18 board with 16 MB SPI flash and a 12 MB USB flash drive, USB-C, a single-cell Li-ion charger, an 18-pin FPC display connector and 32 header holes carrying 25 GPIO - $8.90 USD.
Place this board on a carrier in the editor →
Part & documents
| Data sheet | Data sheet → |
|---|---|
| Source | www.dfrobot.com/product-2095.html → |
Specs
| MCU | Microchip ATSAMD21G18A (ARM Cortex-M0+ at 48 MHz, 256 KB flash, 32 KB SRAM, 12-bit ADC with 6 channels brought out, 10-bit DAC on A0), plus a 16 MB SPI NOR flash chip for the built-in 12 MB USB flash drive and the font library |
|---|---|
| Clock | 48 MHz |
| Flash | 16 MB |
| RAM | 32 KB |
Pinout
32 pads, as the vendor numbers them.
| # | Name | Function | Signals |
|---|---|---|---|
| 1 | RST | Left row pad 1: RST, the reset line of the K2 push-button, pulled up by R13 10 k to 3V3 and held quiet by C7 100 nF | reset input |
| 2 | 3V3 | Left row pad 2: 3V3, the output of the U2 3.3 V LDO (10 uF in, 10 uF out on C2) | 3.3 V rail, regulated output |
| 3 | ARE | Left row pad 3: ARE, the board's AREF/VREF pin, decoupled by C13 1 uF - the silk truncates AREF to ARE for space | analogue reference, VREF |
| 4 | GND | Left row pad 4: GND, common ground for all power and logic | ground |
| 5 | EN | Left row pad 5: EN, the 3.3 V regulator's enable - pulled up by R3 10 k, so grounding it disables the 3.3 V rail | regulator enable |
| 6 | SCK | Left row pad 6: SCK, hardware SPI clock | SPI clock |
| 7 | MO | Left row pad 7: MO, hardware SPI MOSI (master out) - DFRobot abbreviates it in two characters | SPI MOSI |
| 8 | MI | Left row pad 8: MI, hardware SPI MISO (master in) | SPI MISO |
| 9 | SCL | Left row pad 9: SCL, I2C clock, fitted with a 10 k pull-up to 3V3 (R10) on the board | I2C clock |
| 10 | SDA | Left row pad 10: SDA, I2C data, fitted with a 10 k pull-up to 3V3 (R11) on the board | I2C data |
| 11 | ~9 | Left row pad 11: ~9, Arduino D9, PWM capable | Arduino D9, PWM |
| 12 | ~7 | Left row pad 12: ~7, Arduino D7, PWM capable | Arduino D7, PWM |
| 13 | ~6 | Left row pad 13: ~6, Arduino D6, PWM capable | Arduino D6, PWM |
| 14 | ~5 | Left row pad 14: ~5, Arduino D5, PWM capable | Arduino D5, PWM |
| 15 | ~3 | Left row pad 15: ~3, Arduino D3, PWM capable | Arduino D3, PWM |
| 16 | ~2 | Left row pad 16: ~2, Arduino D2, PWM capable | Arduino D2, PWM |
| 17 | TX1 | Left row pad 17: TX1, Arduino D1 - the second hardware UART's transmit line; the silk also carries ~1 beside it | Arduino D1, Serial1 TX, PWM |
| 18 | RX1 | Left row pad 18: RX1, Arduino D0 - the second hardware UART's receive line; the silk also carries ~0 beside it | Arduino D0, Serial1 RX, PWM |
| 19 | VIN | Right row pad 19: VIN, the power-input pad. DFRobot's wiki says it outputs the power-source voltage: USB 5 V when USB-powered, the battery voltage when running from a Li-ion cell | power input |
| 20 | NC | Right row pad 20: NC, a plated hole with no connection to the chip - DFRobot says to leave it floating | not connected |
| 21 | RX | Right row pad 21: RX, the first hardware UART's receive line (Serial2 in DFRobot's Arduino core) | Serial2 RX |
| 22 | TX | Right row pad 22: TX, the first hardware UART's transmit line (Serial2) | Serial2 TX |
| 23 | A5 | Right row pad 23: A5, analogue input and digital I/O | analogue input A5, digital I/O |
| 24 | A4 | Right row pad 24: A4, analogue input and digital I/O; the FPC connector also routes it as FCS, the font-library chip select | analogue input A4, digital I/O |
| 25 | A3 | Right row pad 25: A3, analogue input and digital I/O; the FPC connector also routes it as TCS, the touch chip select | analogue input A3, digital I/O |
| 26 | A2 | Right row pad 26: A2, analogue input - it also sits on the board's own 3V7 battery divider (R5 and R14, 1 M each), so a reading there is the cell voltage | analogue input A2, digital I/O, battery sense |
| 27 | A1 | Right row pad 27: A1, analogue input and digital I/O | analogue input A1, digital I/O |
| 28 | A0 | Right row pad 28: A0, analogue input and the chip's true 10-bit DAC output (0-3.3 V, not PWM) | analogue input A0, DAC output |
| 29 | ~13 | Right row pad 29: ~13, Arduino D13, PWM capable - also the on-board red LED beside the USB socket | Arduino D13, PWM, on-board red LED |
| 30 | ~12 | Right row pad 30: ~12, Arduino D12, PWM capable | Arduino D12, PWM |
| 31 | ~11 | Right row pad 31: ~11, Arduino D11, PWM capable | Arduino D11, PWM |
| 32 | ~10 | Right row pad 32: ~10, Arduino D10, PWM capable | Arduino D10, PWM |
Buses
| Bus | Signals | Pins | Voltage | Note |
|---|---|---|---|---|
| I2C ×1 | SDA, SCL | SDA, SCL | 3.3 V V | One bus on left-row pads 10 (SDA) and 9 (SCL), repeated on two Gravity I2C connectors on the component side. The board fits its own pull-ups - 10 k to 3V3 on each line (R10 on SCL, R11 on SDA) - so an external pair is not needed for a short bus. No I2C device is on the board, so there is no address to report. |
| SPI ×1 | SCK, MOSI, MISO | SCK, MO, MI | 3.3 V V | Hardware SPI on pads 6 (SCK), 7 (MO/MOSI) and 8 (MI/MISO). No chip-select pad is dedicated: the 16 MB flash and the FPC connector share the bus, with the FPC carrying CS on pin 5, SDCS on 3, FCS on A4 and TCS on A3. |
| UART ×2 | TX, RX | TX1, RX1, TX, RX | 3.3 V V | Two hardware UARTs: Serial1 on left-row pads 17 (TX1) and 18 (RX1), and Serial2 on right-row pads 22 (TX) and 21 (RX). USB CDC is SerialUSB in DFRobot's Arduino core, which is why Serial still prints over USB. |
Power
| Input | 5 V on the USB Type-C socket, or a 3.7 V single-cell Li-ion on the JST-PH connector or the 'Li-ion' solder pads |
|---|---|
| Input range | DFRobot's spec table gives 3.3 V to 5.5 V input |
A single-cell Li-ion charger IC (U3, with active-low CHRG and STDBY status pins) charges the cell from USB. Charging current and sleep draw are both given twice and differently - 300 mA against 500 mA charging, 30 uA against 10 uA low-power - so neither number is recorded. DFRobot's product page and its wiki disagree; the board itself carries a horizontal power switch and a red charge LED.
Outputs
| Rail | Rating | Note |
|---|---|---|
| 3.3V | 3.3 V V | U2, a 5-pin fixed LDO with 10 uF input and 10 uF output capacitors (C4, C2), brought out on left-row pad 2. DFRobot's wiki power section quotes 500 mA peak while its spec table quotes 600 mA maximum discharge, so no single figure is recorded. |
Notes
DFRobot numbers no pads on this board, so pins[] is this entry's own 1-32 sequence - left row 1-18 top to bottom with the USB-C socket at the top, then right row 19-32 - and every description opens with the row and the position. The right row is 14 holes against the left row's 18 because the JST battery socket and the USB-C shell take the top of the right edge; DFRobot's shipping list (18-pin and 14-pin header pairs) confirms the asymmetry. Labels are the component-side silkscreen, read at full resolution from DFRobot's own 'Power & PinOut' diagram with a vision model: the left row reads RST, 3V3, ARE, GND, EN, SCK, MO, MI, SCL, SDA, ~9, ~7, ~6, ~5, ~3, ~2, TX1, RX1 and the right row VIN, NC, RX, TX, A5, A4, A3, A2, A1, A0, ~13, ~12, ~11, ~10, in both cases exactly the nets the schematic's P1 and P3 connectors carry (the schematic calls ARE 'VREF', MO/MOSI and MI/MISO, and TX1/RX1 'D1/TX' and 'D0/RX'), so the silk reading is checkable against the netlist rather than taken on trust. The schematic is a rasterised A3 sheet with no text layer, so the reference-circuit values were read off its render at 600 dpi; the regulator is only legible as '...9080' there, so no LDO part number is claimed. D8 (~8) drives the on-board WS2812 and D4 the user button, so neither appears on a header; the wiki's own pin table lists 25 GPIO, 6 ADC channels and one DAC. Operating temperature -40 to +85 C per both the product page and the wiki, dimension 25.4 x 60 mm, M2 mounting holes with a 2 mm bore.
AI context
Dense context for pasting into a model prompt — addresses, pinout, voltages, tolerances and the vendor's reference circuit.
PART: DFRobot FireBeetle 2 M0 Development Board (ATSAMD21G18, USB-C), SKU DFR0652, 25.4 x 60 mm, 1.0 mm-thick FireBeetle 2 form factor. It is built on a Microchip ATSAMD21G18A: ARM Cortex-M0+ at 48 MHz, 256 KB flash, 32 KB SRAM, 12-bit ADC, a true 10-bit DAC on A0, up to six SERCOM blocks, one SPI, two hardware UARTs and USB 2.0 full speed. The board adds a USB Type-C socket, a single-cell Li-ion charger with a JST-PH battery connector plus a 'Li-ion' solder-pad pair, a 16 MB SPI NOR flash chip that carries a 12 MB USB mass-storage drive and a multilingual font library, a WS2812 RGB LED driven from ~8, a red LED on ~13, a user button on ~4, a horizontal power switch, and an 18-pin FPC 'General Display Interface' connector on the end opposite the USB socket. I2C ADDRESSES: none - there is no I2C device on the board, so addresses is empty. The bus is one pair, SDA and SCL, brought out on left-row pads 10 and 9 and again on two Gravity I2C connectors on the component side, and the board DOES fit pull-ups: 10 k from 3V3 to SCL (R10) and 10 k from 3V3 to SDA (R11), so no external pull-ups are needed for a short bus. PINOUT: DFRobot numbers no pads anywhere, so these numbers are this entry's own 1-32: left row 1-18 top to bottom with the USB-C socket at the top, then right row 19-32. LEFT (1-18): RST, 3V3, ARE, GND, EN, SCK, MO, MI, SCL, SDA, ~9, ~7, ~6, ~5, ~3, ~2, TX1, RX1. RIGHT (19-32): VIN, NC, RX, TX, A5, A4, A3, A2, A1, A0, ~13, ~12, ~11, ~10. The right row starts four positions lower than the left because the JST battery socket and USB-C shell occupy that part of the right edge, so the two rows are 18 and 14 holes, not 18 and 18. SUPPLY: DFRobot's spec table gives an input range of 3.3 V to 5.5 V. In practice 5 V arrives on Type-C, or a 3.7 V single-cell Li-ion on the JST-PH connector or the Li-ion solder pads, and a charger IC (U3) with active-low CHRG and STDBY outputs charges the cell. The 3.3 V rail comes from U2, a 5-pin fixed LDO with 10 uF on its input and 10 uF on its output (C2), and is brought out on pad 2 and on the prototype rails. EN (pad 5) is the regulator's enable, pulled up by R3 10 k: ground it to shut the 3.3 V rail down. LOGIC LEVEL: all I/O is 3.3 V and the absolute maximum on any pin is VDD + 0.3 V, so a 5 V sensor output must be divided or level-shifted. Every pin is an interrupt input and nearly all can do PWM; the chip's own limit is 3.6 V on VDD. REFERENCE CIRCUIT: RST carries a 10 k pull-up (R13) and a 100 nF cap to ground (C7) alongside the K2 button. Decoupling on the MCU is 100 nF per supply pin - C8 on VDDANA, C9 and C10 on the two VDDIO pins, C11 on VDDIN - plus 1 uF on VDDCORE (C12) and 1 uF on VREF (C13). The WS2812 has its own 100 nF (C14) and the SPI flash its own 100 nF (C15). The USB-C socket's CC1 and CC2 carry 5.1 k pull-downs (R2, R7). FPC: the 18-pin display connector parallels VCC=3V3, BLK=9 (backlight PWM), GND, SCLK=SCK, MOSI=MOSI, MISO=MISO, DC=7, RES=6, CS=5, SDCS=3, FCS=A4, TCS=A3, SCL=SCL, SDA=SDA, INT=2, BUSY-TE=10, and two user-defined pins X1 and X2 that are NC. TRAPS: (1) pinMode(pin, INPUT) does NOT switch on an internal pull-up on this chip - DFRobot's own FAQ says the AVR habit fails here and INPUT_PULLUP is required. (2) ~4 is not on either header: it is the user button, with solder pads on the bottom; bridging them makes it a normal GPIO but breaks the serial-port reset function the wiki documents for recovering a lost COM port. (3) NC on pad 20 must be left floating. (4) FireBeetle 2 pins and sizes are NOT compatible with FireBeetle 1, and neither are the expansion boards. (5) A2 is already loaded by the on-board 1 M/1 M battery divider. (6) USB CDC is SerialUSB in the Arduino core, Serial1 is the TX1/RX1 pair and Serial2 is the TX/RX pair. (7) DFRobot contradicts itself on three figures: charging current 300 mA (product page) against 500 mA (wiki), low-power draw 30 uA (page) against 10 uA (wiki), and the 3V3 rail 500 mA peak (wiki power section) against 600 mA maximum discharge (wiki spec table) - none of the three is recorded here as a number.
Provenance
Every figure on this page was read from the 5 sources below and last checked on Oct 24, 2026.
- vendor DFRobot - FireBeetle 2 M0 Development Board (ATSAMD21G18, USB-C) product page (DFR0652, $8.90 USD; 3.3-5.5 V input, 300 mA charging, 30 uA low-power, 16 MB SPI flash and 12 MB flash drive, -40 to +85 C, 25.4 x 60 mm)
- reference DFRobot wiki - DFR0652 FireBeetle 2 M0 (spec table: 48 MHz, 32 KB SRAM, 256 KB flash + 16 MB SPI flash, 25 GPIO, 12-bit x6 ADC, 10-bit x1 DAC, 1 SPI, 1 I2C, 2 UART, WS2812 on ~8, 10 uA low power, 500 mA charging, 600 mA LDO discharge; the pin table, the power-pin notes and the FPC pin order)
- image DFRobot 'Power & PinOut' diagram for DFR0652 - the two header rows with their silkscreen labels in order and the notes on VIN, EN and 3V3 (read with a vision model at full resolution)
- reference DFRobot DFR0652 schematic V1.0 (raster A3 sheet, read at 600 dpi: R10/R11 = 10 k I2C pull-ups on SCL/SDA, R13 10 k + C7 100 nF on RST, C8-C11 100 nF on VDDANA/VDDIO/VDDIN, C12/C13 1 uF on VDDCORE/VREF, C2 10 uF on the 3V3 output, R3 10 k on EN, R5/R14 1 M battery divider on A2, header P1 and P3 net orders)
- datasheet Microchip SAM D21/DA1 family data sheet DS40001882H - the ATSAMD21G18A's own document (this is also the PDF DFRobot's wiki links as the board's 'Datasheet')