RP2040 development hardware

RP-Duino: Modern RP2040 performance, with 5V-tolerant I/O.

RP-Duino combines Raspberry Pi's RP2040 microcontroller with the familiar Arduino Uno form factor and a board-level interface designed to work with both modern 3.3V electronics and existing 5V hardware.

Dual-core RP2040 5V-tolerant I/O Uno form factor USB-C
RP2040 Dual-core Arm Cortex-M0+ at up to 133MHz.
19 × GPIO Board-level 5V-tolerant digital I/O.
4 × analogue 5V-tolerant analogue inputs with selectable signal paths.
4MB flash External program storage for RP2040 applications.

Why RP-Duino?

An RP2040 board designed around the hardware you already have.

The RP2040 is a capable modern microcontroller, but many established shields, sensors and modules still expect 5V logic. RP-Duino adds the interface circuitry needed to make those two worlds easier to combine.

01 / PROCESSING

RP2040 at the centre

Dual Cortex-M0+ cores, 264KB of SRAM and the flexible RP2040 peripheral system provide considerably more headroom than traditional 8-bit Uno-class boards.

02 / INTERFACING

Designed for mixed-voltage projects

Board-level translation sits between the RP2040's 3.3V GPIO and the external headers, reducing the amount of separate level-shifting hardware needed in many 5V projects.

03 / FORMAT

Familiar Uno footprint

The 68.6mm × 53.4mm board follows the Arduino Uno form factor, making it easier to reuse existing mechanical layouts and compatible add-on hardware.

04 / CONNECTIVITY

USB-C and external power

USB-C provides programming, data and power, while a 12V barrel-jack input supports projects that need a more traditional external supply.

Board specification

RP-Duino at a glance

The board keeps the RP2040's processing capability while adding the voltage translation, controls and connectors needed for a more flexible development platform.

MicrocontrollerRP2040, dual-core Arm Cortex-M0+
CPU frequencyUp to 133MHz
SRAM264KB
Flash4MB external flash
Digital GPIO19 × 5V-tolerant I/O
Analogue inputs4 × 5V-tolerant inputs
User buttons2 × GPIO buttons, independent of the main headers
User LEDs4 × GPIO LEDs, independent of the main headers
Programming controlsReset and firmware/boot switches
USBUSB-C for connectivity and power
External power12V DC barrel jack
Form factorArduino Uno footprint
Dimensions68.6mm × 53.4mm
Close view of the RP-Duino showing board information and controls
Useful board information is printed directly on the PCB, including the analogue-enable GPIO range.
The external I/O is not electrically identical to a bare RP2040 pin.

The level-shifting network changes the available source/sink behaviour and switching characteristics. Design loads around the board interface rather than assuming normal RP2040 GPIO drive capability.

The reason for the board

Why 5V tolerance still matters

3.3V logic is now common, but electronics has decades of 5V hardware behind it. The problem becomes obvious when a modern controller has to connect directly to older shields, modules, interfaces or laboratory hardware.

A standard RP2040 design is based around 3.3V I/O. That is a good match for many current sensors and ICs, but a 5V signal cannot simply be treated as a safe RP2040 input. External translation or conditioning is normally required whenever the surrounding hardware uses a higher logic voltage.

That extra circuitry is perfectly reasonable in a purpose-built product, but it becomes inconvenient on a development board intended to replace or coexist with older Uno-style hardware. It adds components, wiring, board area and another place for a prototype to go wrong.

RP-Duino moves much of that translation onto the development board itself. The goal is not to make voltage domains disappear, but to make mixed-voltage prototyping more practical.

Useful when working with

  • 5V Arduino-style shields and add-ons
  • Legacy 5V sensor and actuator modules
  • Mixed 3.3V and 5V prototypes
  • Open-drain buses such as I²C
  • Existing Uno-form-factor mechanical designs

Digital translation

How the digital I/O becomes 5V tolerant

Each translated digital channel uses a BSS138 MOSFET level-shifting arrangement between the RP2040 side and the external 5V side.

BSS138 bidirectional 3.3V to 5V level-shifting circuit used by RP-Duino
Digital channels use MOSFET-based translation between the 3.3V RP2040 domain and the external 5V domain.

This circuit allows a signal to move between the two voltage domains without applying 5V directly to the RP2040 GPIO. It is especially well suited to open-drain signalling, where pull-up resistors define the logic-high voltage on each side.

The same translation also means the external pin should not be treated like a direct, high-current GPIO output. Pull-up values, connected capacitance and the type of interface all affect rise time and practical switching speed.

Design implication

The translation circuitry is what gives RP-Duino its compatibility advantage, but it also becomes part of the electrical behaviour of every translated signal.

GPIO & analogue inputs

Two signal paths let the analogue pins do two jobs.

The Uno-style analogue header has to support both analogue measurement and digital I/O. RP-Duino handles this by providing separate analogue and translated-digital paths that can be selected in software.

Each analogue header pin can be routed towards the RP2040 ADC path or used as a translated digital I/O. The analogue-enable controls use GPIO22 through GPIO25 and are active low.

For example, to use A0 as an analogue input, configure GPIO22 as an output and drive it low. To use A0 as a digital I/O pin, drive the corresponding enable high so the digital path is selected instead.

Enable LOW Analogue mode

Connects the conditioned analogue path to the RP2040 ADC.

Enable HIGH Digital mode

Selects the translated digital I/O path for the header pin.

RP-Duino analogue input signal path with level shifting, divider and analogue switches
The analogue interface combines switching, level translation and voltage conditioning so the same header position can support analogue and digital operation.

Board reference

GPIO and connector layout

The original board pinout is retained here as a quick reference when wiring shields, modules or direct connections.

RP-Duino GPIO and connector pinout diagram

Engineering trade-offs

What the level shifting changes

5V tolerance is useful precisely because extra circuitry sits between the microcontroller and the header. That circuitry solves one problem while introducing limits that need to be understood in more demanding designs.

Signal speed is not unlimited

The pull-up resistors and connected capacitance influence rise time. Lower resistance can improve switching speed, but it also increases current, so the interface is a deliberate compromise rather than an ideal logic buffer.

Open-drain behaviour needs thought

The translated channels already include pull-up behaviour. Circuits that depend on an unusual high-impedance or externally pulled configuration should be checked against the complete signal path.

Analogue values need scaling

The 5V-tolerant analogue path conditions the incoming voltage before it reaches the RP2040 ADC. Software should therefore use the board's actual scaling rather than assuming a direct 0–3.3V ADC connection.

Use the board for what it was designed to do.

RP-Duino is intended to make mixed-voltage development and migration from 5V hardware easier. For very high-speed buses, precision analogue measurement or unusual electrical loads, treat the level-shifting and analogue front end as part of the design and verify the interface accordingly.

RP2040 without abandoning 5V hardware

Build with RP-Duino

Use the familiar Uno format, modern RP2040 processing and board-level voltage translation to bring older hardware into newer projects.