board dev studio

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 →

Logic level3.3 V

Part & documents

Data sheetData sheet →
Sourcewww.dfrobot.com/product-2095.html →

Specs

MCUMicrochip 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
Clock48 MHz
Flash16 MB
RAM32 KB

Pinout

32 pads, as the vendor numbers them.

#NameFunctionSignals
1RSTLeft 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 nFreset input
23V3Left 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
3ARELeft row pad 3: ARE, the board's AREF/VREF pin, decoupled by C13 1 uF - the silk truncates AREF to ARE for spaceanalogue reference, VREF
4GNDLeft row pad 4: GND, common ground for all power and logicground
5ENLeft 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 railregulator enable
6SCKLeft row pad 6: SCK, hardware SPI clockSPI clock
7MOLeft row pad 7: MO, hardware SPI MOSI (master out) - DFRobot abbreviates it in two charactersSPI MOSI
8MILeft row pad 8: MI, hardware SPI MISO (master in)SPI MISO
9SCLLeft row pad 9: SCL, I2C clock, fitted with a 10 k pull-up to 3V3 (R10) on the boardI2C clock
10SDALeft row pad 10: SDA, I2C data, fitted with a 10 k pull-up to 3V3 (R11) on the boardI2C data
11~9Left row pad 11: ~9, Arduino D9, PWM capableArduino D9, PWM
12~7Left row pad 12: ~7, Arduino D7, PWM capableArduino D7, PWM
13~6Left row pad 13: ~6, Arduino D6, PWM capableArduino D6, PWM
14~5Left row pad 14: ~5, Arduino D5, PWM capableArduino D5, PWM
15~3Left row pad 15: ~3, Arduino D3, PWM capableArduino D3, PWM
16~2Left row pad 16: ~2, Arduino D2, PWM capableArduino D2, PWM
17TX1Left row pad 17: TX1, Arduino D1 - the second hardware UART's transmit line; the silk also carries ~1 beside itArduino D1, Serial1 TX, PWM
18RX1Left row pad 18: RX1, Arduino D0 - the second hardware UART's receive line; the silk also carries ~0 beside itArduino D0, Serial1 RX, PWM
19VINRight 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 cellpower input
20NCRight row pad 20: NC, a plated hole with no connection to the chip - DFRobot says to leave it floatingnot connected
21RXRight row pad 21: RX, the first hardware UART's receive line (Serial2 in DFRobot's Arduino core)Serial2 RX
22TXRight row pad 22: TX, the first hardware UART's transmit line (Serial2)Serial2 TX
23A5Right row pad 23: A5, analogue input and digital I/Oanalogue input A5, digital I/O
24A4Right row pad 24: A4, analogue input and digital I/O; the FPC connector also routes it as FCS, the font-library chip selectanalogue input A4, digital I/O
25A3Right row pad 25: A3, analogue input and digital I/O; the FPC connector also routes it as TCS, the touch chip selectanalogue input A3, digital I/O
26A2Right 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 voltageanalogue input A2, digital I/O, battery sense
27A1Right row pad 27: A1, analogue input and digital I/Oanalogue input A1, digital I/O
28A0Right 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~13Right row pad 29: ~13, Arduino D13, PWM capable - also the on-board red LED beside the USB socketArduino D13, PWM, on-board red LED
30~12Right row pad 30: ~12, Arduino D12, PWM capableArduino D12, PWM
31~11Right row pad 31: ~11, Arduino D11, PWM capableArduino D11, PWM
32~10Right row pad 32: ~10, Arduino D10, PWM capableArduino D10, PWM

Buses

BusSignalsPinsVoltageNote
I2C ×1SDA, SCLSDA, SCL3.3 V VOne 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 ×1SCK, MOSI, MISOSCK, MO, MI3.3 V VHardware 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 ×2TX, RXTX1, RX1, TX, RX3.3 V VTwo 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

Input5 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 rangeDFRobot'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

RailRatingNote
3.3V3.3 V VU2, 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.

Related boards