DFRobot Beetle RP2350 vs Raspberry Pi Pico 2 — same RP2350 chip, opposite interface and flashing trade-offs
Both run the RP2350A, but the Pico 2 is a 40-pin 2.54 mm through-hole board with micro-USB and drag-and-drop UF2 via BOOTSEL, while the Beetle is a 25 x 20.5 mm castellated board with two 8-pad columns (J3/J4, 11 GPIO), SWD test pads TP3-TP5, Serial1/Serial2 = chip UART0/UART1, and Li-po charging. Interface and flashing comparison with sources.
Related products: DFRobot Beetle RP2350 · Raspberry Pi Pico 2 · RP2350
Question this page answers: "The DFRobot Beetle RP2350 and the Raspberry Pi Pico 2 use the same RP2350 chip — how do their breakout interfaces and flashing workflows differ?"
Same silicon, two opposite form factors. The chip, the 520 KB SRAM, the dual-core Cortex-M33/RISC-V switch and the RP2350 USB ROM bootloader are shared; everything you touch differs (vendor entries: DFRobot DFR1188 wiki, Raspberry Pi Pico 2, Pico 2 datasheet). (For the chip itself, see the RP2350 chip page.)
| DFRobot Beetle RP2350 | Raspberry Pi Pico 2 | Source | |
|---|---|---|---|
| Chip mount | RP2350A (QFN60) soldered directly | RP2350A soldered directly | both official docs |
| Flash | 2 MB (QSPI) | 4 MB (QSPI) | spec tables |
| Size / pitch | 25 x 20.5 mm, edge solder pads | 21 x 51 mm, 40-pin 2.54 mm through-hole + castellated | spec tables |
| USB | USB Type-C | micro-USB | spec tables |
| Breakout | two 8-pad columns J3/J4 (16 pads, 11 GPIO, two GND pads: J3.1 and J4.2); Serial1 = D0/D1 (chip UART0), Serial2 = D8/D9 (chip UART1), I2C0 = D4/D5, SPI0 = D16/D18/D19, A0/A1 = D26/D27; SWD/GND on test pads TP3 (GND) / TP4 (SWCLK) / TP5 (SWDIO) | 40 header positions, 26 GPIO (GP0-GP22, GP26-GP28) with ADC on GP26-28, I2C/SPI/UART controllers, 3V3/VSYS/VBUS/GND, plus a separate 3-pin SWD header | Beetle schematic + wiki docs/21592; Pico 2 datasheet |
| Pin naming | D-numbers map straight to GPIO numbers (D4 = GPIO4); A0/A1 = GPIO26/27; no Pico-style GP naming | GP numbering (GP0 = GPIO0); Pico-1 code ports via the same SDK and GP names, but verify GP23-25 wiring and select the "Pico 2" target for UF2 builds | DFRobot wiki vs Pico 2 datasheet |
| Buttons | SW1 user button on QSPI_SS; SW2 reset on RUN; no BOOTSEL key | dedicated BOOTSEL button: hold it while plugging USB, drop a .uf2 onto the drive | wiki pinout function items vs datasheet |
| Arduino target | earlephilhower arduino-pico SDK, board selection Generic RP2350 (vendor setup guide docs/21601); Serial1 = D0/D1, Serial2 = D8/D9 | same SDK family, board selection Raspberry Pi Pico 2 for its UF2 flow | vendor setup guides |
| Battery | Li-po charging up to 0.5 A with charge LED; GPIO29 senses battery voltage | none on board (VSYS + external circuit) | wiki vs datasheet |
| LED | user LED on IO25 | user LED on GPIO25 | both pin records |
Interface trade. The Beetle gives you 11 GPIO pads with the peripheral pairs pre-named (two serial ports, one I2C, one SPI, two analog inputs) across two physical columns of eight — ideal for soldering into a tiny assembly or onto a carrier board — and SWD debugging exists too, just on three small test pads (TP3 GND, TP4 SWCLK, TP5 SWDIO) rather than a header. The Pico 2 keeps the full breadboard experience: 26 of the 30 usable GPIOs on the 2.54 mm 40-pin header (GP0-GP22 and GP26-GP28; GP23/24/25 carry onboard duties and GP29 monitors VSYS, so they are not on the header), three ADC channels on GP26-28, and a proper SWD header. Pico 1 code ports easily - same SDK, same GP naming - but re-check anything wired where GP23-25 behave differently, and pick the "Pico 2" board target when a UF2 is involved. Pin-for-pin, the Pico 2 exposes far more I/O positions.
Flashing trade. Both boards reach the same RP2350 ROM USB bootloader, but the entry differs. On the Pico 2 you hold BOOTSEL while plugging micro-USB and the board enumerates as a Mass-Storage drive — drag a .uf2 onto it, done; this drag-and-drop flow is the documented path. On the Beetle there is no BOOTSEL key: the documented vendor path is the Arduino flow (earlephilhower SDK, board selection Generic RP2350) which resets into the bootloader on its own. The buttons still mirror the BOOTSEL recipe at the chip level — SW1 sits on QSPI_SS (the RP2350's BOOT strapping pin) and SW2 on RUN, so hold SW1 and tap SW2 to force the ROM bootloader when a sketch bricks the auto-reset path. When picking a UF2, the Pico 2 wants the board-specific "Pico 2" image, while the Beetle's vendor flow flashes the generic RP2350 target.
Which one? Choose the Beetle for size-constrained, solder-down projects that need battery charging and only a handful of signals. Choose the Pico 2 for prototyping on breadboards, reusing Pico 1 pinouts and code, debugging over a real SWD header, or whenever you need more than 11 I/O.
Full pin maps with per-pin sources: Beetle RP2350 and Raspberry Pi Pico 2.