Maker Uno RP2040 review with Arduino IDE using micro servo, soil moisture sensor, ultrasonic sensor, and I2C OLED modules

Today, We will review the Cytron Maker Uno RP2040 development board combining the Arduino UNO form factor with the Raspberry Pi RP2040 microcontroller that makes it programmable with the Arduino IDE (C/C++), Micropython, or CircuitPython.

The board is suitable for both beginners and advanced users with a convenient port layout that includes a “Maker” connector plus six Grove connectors for sensor modules and a header for four servos besides the Arduino UNO headers. The board offers two power options: USB (5V) via the USB-C connector or a single-cell LiPo/Li-Ion battery via the LiPo connector.

Maker Uno RP2040 review Arduino IDE

Cytron Maker Uno RP2040 specifications

  • SoC – Raspberry Pi RP2040 dual-core Arm Cortex-M0+ processor @ up to 133 MHz with 264 KB SRAM
  • Storage – 2MB flash
  • USB – USB-C port for power and programming
  • Expansion
    • Arduino UNO headers for shields
    • 6x Grove Ports (Digital I/O, PWM Output, UART, I2C, Analog Input)
    • 1x Maker port compatible with Qwiic, STEMMA/QT, and Grove module (the latter via conversion cable)
    • 12-pin header for 4x servos
  • Misc
    • 16x Status LEDs for GPIO
    • 1x Piezo Buzzer with mute switch
    • User programmable keypad
    • Reset button
    • Boot button
    • 2x RGB LEDs (WS2812)
  • Power Supply
    • 5V via USB-C port
    • Single-cell LiPo connector with built-in overcharge/discharge protection circuitry
  • Dimensions – 60.96 x 9.40 cm (Arduino UNO form factor)
Cytron Maker Uno RP2040 PINOUT DIAGRAM
Pinout diagram

Unboxing of the Cytron Maker Uno RP2040 kit

The Maker Uno RP2040 can be purchased as a standalone board, but we requested a few modules to make the review more interesting and received everything in a single package.

Cytron package CNX Software

Our kit includes the Maker Uno RP2040 itself, four Grove to jumper cables, a USB-A to USB-C cable, a soil moisture sensor with one Grove cable, an HC-SR04 ultrasonic sensor with a Grove cable, a SG90 micro servo with accessories, a 0.96-inch I2C OLED display (128×64 resolution), and four silicon rubber feet.

Cytron Maker Uno RP2040 kit unboxing
Here’s a closer look at the top of the board…

Maker Uno RP2040 front

… and the bottom side with the Raspberry Pi RP2040 microcontroller and a white area to let students write their names.

Cytron Maker Uno RP2040 bottom

All modules are well-known off-the-shelf parts so we won’t go into details this time.

Getting started with the Maker Uno RP2040 board using the Arduino IDE

As mentioned in the introduction, the Maker Uno RP2040 can be powered with either a USB Type-C cable (5V) or a single-cell Li-Po/Li-Ion battery (3.7V). In this review, we will use a USB Type-C cable for power and to program the board with a laptop running Windows 11.

Power USB Type-C 5V laptop

The Maker Uno RP2040 supports Arduino, Micropython, and CircuitPython programming, but in this review, we will be focusing on the former. So the first step is to download and install the Arduino IDE for your operating system. We used the latest version available at the time of the review, namely Arduino IDE 2.3.2 for Windows.

Arduino IDE configuration

We’ll be mostly following Cytron’s tutorial to work with the Cytron Maker UNO RP2040 using the Arduino IDE. Three steps are needed for the initial configuration.

  1. Add Maker Uno RP2040 to the Arduino IDE.
      • Go to File->Preferences menu, and add the URL “https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json” in the “Additional Boards Manager URLs”
      • Select OK and search for “Uno RP2040” to install the board package.
      • Once installed, you will find the Maker Uno RP2040 board in the Arduino IDE. Just select it from Tools > Board > Raspberry Pi Pico/RP2040 > Cytron Maker Uno RP2040 or in the drop-down menu.

    Cytron Maker UNO RP2040 Arduino IDE

  2. Enter Bootloader mode by connecting the Maker Uno RP2040 to your laptop. Press and hold the BOOT button and press RESET (just one press!) and a new drive named RPI-RP2 will appear in the File Manager.
    RPI-RP2 Bootloader mode
  3. Select the board and COM port
    • Select the Maker Uno RP2040 board from Tools > Board > Raspberry Pi Pico/RP2040 > Cytron Maker Uno RP2040
    • Select the COM port by going to Tools > Port (the first time the COM port will be “UF2_Board”). After uploading the sketch, the board will reset and the COM port will appear under a name such as “COM12”. Now we are ready to start coding.

Arduino IDE Cytron Maker UNO RP2040 port

Blinking some LEDs

Make sure the correct board and COM port are selected in the Arduino and copy the following code to blink two LEDs every 500ms:


Select Verify to check the code compiles and then Upload the sketch to your Maker Uno RP2040 board.

Maker Uno RP2040 blink LED

Two LEDs should now be blinking on the board (connected to GP0 and GP1) alternating every 0.5 seconds. (Note GP2 is always on, and we can’t see GP1 clearly in the animated WebP file above but it’s blinking too).

Controlling the RGB LEDs

Here’s an Arduino sketch to cycle the colors of the two RGB LEDs on the board going to Red, Green, Blue, and off:


Let’s now Upload the sketch to the maker Uno RP2040 board…

Maker Uno RP2040 RGB LEDs

The RGB LEDs will change color and turn off in a loop as expected.

Controlling an LED with the user button

The Arduino sketch below turns on or off the LED connected to the GP1 pin when pressing the user button (GP2) on the Maker Uno RP2040 board:


 

 

Cytron Maker Uno RP2040 Button Test

Buzzer testing

We’ll play some sound through the buzzer when pressing the user button (GP2) using this code:


After uploading the sketch, we should hear a short snippet of Mario Bros theme melody each time we press the user button

Arduino sketch to control a micro servo from the Maker Uno RP2040

We’ve only tested hardware built-in on the Maker Uno RP2040 board so far, but we’ll now start testing expansion capabilities by connecting an S90 micro servo to the GP14, +, and – pins of the SERVO header.

Maker Uno RP2040 with four Servo ports

The Arduino sketch below will rotate the four servos from 0 degrees to 180 degrees and back in an infinite loop:


We only have one micro servo which we connected to GP14 (S1) and added a small flag for dramatic effect 🙂

Maker Uno RP2040 Micro Servo Motor

The servo motor rotates smoothly from 0° to 180° in increments of 1° every 10 ms. When it reaches 180°, it reverses direction and moves back to 0° in increments of 1° every 10 ms.

Reading analog values from a soil moisture sensor

The Maker Uno RP2040 board comes with various Grove connectors with digital, analog, or I2C interfaces.

Grove ports

We’ll first test an analog connector (Grove 5) using a Maker soil moisture sensor to measure humidity in a glass of water.

Maker Uno RP2040 Soil Sensor

There are dry, moist, and wet LEDS on the sensor module, but the following code will report the raw and voltage values from the A3 (GP29) pin in the serial monitor:


Once the sketch is running, we can open the Serial Monitor to check out the values updates in a loop every 1 seconds.

Arduino IDE Serial Monitor Sensor Values

Reading digital values from an HC-SR04 ultrasonic sensor

While only two of the Grove connectors support analog, any of the 6 Grove connectors and the Maker port can be configured to take a digital sensor. In this review, we will be using an HC-SR04 ultrasonic sensor module connected to pins 20 (ECHO signal), 21 (TRIG signal), and 3.3V and GND of the Grove 6 connector on the Maker Uno RP2040 board in order to measure the distance to the Cytron retail box.

Maker Uno RP2040 with Ultrasonic HC SR04 sensor

Here’s the Arduino sketch to measure the distance and output the value in the serial monitor:


Let’s upload the code to the board and move the box at different distances from the package.

Ultrasonic HC SR04 Arduino sensor demo

The distance will be shown in the serial monitor in centimeters.

Arduino IDE Serial Monitor HC-SR04 Ultrasonic Sensor

Connecting an I2C OLED module to the Maker Uno RP2040.

We’ve already tested analog input and digital I/O interface, and we’ll now switch to I2C using the small SSD1315 OLED display provided in our kit connected to the Grove 6 I2C connector.

Grove port SSD1315 OLED I2C module

Here’s a simple Arduino sketch to write some messages on the OLED module:


The first time we tried to compile the code it ended up in failure due to u8g2lib.h file missing.

error u8g2lib.h Arduino IDE

That’s because we’ve yet to install the U8g2 graphics library. It can be installed by going to Tools->Manage Libraries and searching for u8g2.

Arduino U8g2 library

After loading the code to the board, the display would still stay dark. We eventually tried another similar display OLED module (also 0x7B I2C address) and the text was shown properly.

Maker Uno RP2040 Displaying Text on OLED module

In this review of the Maker Uno RP2040 board with the Arduino IDE we could blink LEDs, control RGB LED lights, press the user button to turn on one LED or make the buzzer output some melody, control a micro servo, read sensor values from a soil moisture sensor (analog) and an ultrasonic sensor (digital I/O), as well as display text to an I2C OLED module.

All that could be done relatively easily thanks to tutorials by Cytron that are fairly easy to follow even for a beginner. The board is suitable for STEM education with built-in LEDs, RGB LEDs, a buzzer, and expansion capabilities through Arduino headers and Grove and Maker connectors.

We’d like to thank Cytron for sending us the Maker Uno RP2040 kit for review. The Maker Uno RP2040 board can be purchased for $14.90 with some local distributors in Europe, India, Japan, and Egypt.  They don’t sell the kit we’ve received directly, but you’ll find the Maker soil moisture sensor, HC-SR04 ultrasonic sensor, SG90 micro Servo, and 0.96-inch I2C OLED display on the company’s online store.

CNXSoft: This review is a translation of the original tutorial on CNX Software Thailand by Suthinee Kerdkaew. Note that Suthinee has limited experience with this type of hardware, having only reviewed the Cytron Maker Nano RP2040 kit with CircuitPython two years ago and no formal IT education. I just gave her the kit and link to Cytron tutorial, and said “Good luck”. I ended up providing some very limited support (maybe 5 to 10 minutes of my time) for some blocking issues, but as a relative beginner, she mostly managed to complete the review on her own.

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

Radxa Orion O6 Armv9 mini-ITX motherboard
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
1 Comment
oldest
newest
Iskandar Nungtjik
Iskandar Nungtjik
7 months ago

Good review

Boardcon Rockchip RK3588S SBC with 8K, WiFI 6, 4G LTE, NVME SSD, HDMI 2.1...