Skip to content

Embedded Programming

Group Assignment - Test the Toolchains and Workflows for Various Microcontrollers

For this assignment, my groupmates (Max Negrin, McKinnon Collins, and Oliver Abbot) and I worked with various microntrollers to create circuits and test their workflows. I worked with the Raspberry Pi Pico 2 W RP2350, and utilized the microcontroller to create a night light circuit.

The Raspberry Pi Pico 2 is a compact microcontroller board built around the RP2350 chip, which provides dual-core processing, improved memory, and enhanced I/O capability. It is designed for embedded systems and prototyping, offering flexible GPIO and support for MicroPython or C/C++ to control electronic components and build efficient hardware projects.

Understanding the Pico 2 W

To develop an understanding of the microcontroller, I found the datasheet online, and consulted seller pages which summarized its features/specs. Using this information, I created the chart below.

Feature Raspberry Pi Pico 2W
Chip RP2350A
CPU Dual ARM Cortex-M33 (Armv8-M), or Dual RISC-V Hazard3 (RV32IMAC+)
CPU Clock 48MHz, up to 150MHz
RAM Size 520 KByte SRAM
Flash Size 4 MByte Q-SPI Flash
Security ARM TrustZone, 8KB OTP, Secure Boot
Wireless IEEE 802.11 b/n/g (2.4GHz), Bluetooth 5.2
Programming Language MicroPython, CircuitPython, C, C++
MCU Voltage 3.3VDC
GPIO Voltage 3.3VDC
GPIO 26 x Digital Input/Output (Total)
PWM 16
Programmable IO 3 x PIO v2 Blocks (12 PIO State Machines)
Debugging ARM Serial Wire Debug (SWD)

Setting up the Pico 2 W

To set up the Pico 2 W to work with MicroPython, I first downloaded the Pico 2 W UF2 firmware from the official micropython website (specifically from this page). Then, I put the microcontroller in BOOTSEL mode by holding the BOOTSEL button and then plugging it in. This opened a drive in my MacBook called RP2350. I then dragged the .uf2 file into the new drive. Once the drive disappeared, I could confirm that the Pico 2 W was successfully configured to run MicroPython.

To make working with MicroPython a lot easier, I installed the MicroPico VSCode extension (created by paulober). This extension allowed me to create and configure Python projects directly from the command palette, as well as freely load and run code onto my microcontoller. To create a new project, I first accessed the command palette by pressing Command + Shift + P, and then ran MicroPico: Create New Project. This generated a base file structure with all necessary MicroPython components.

Creating the Night Light Circuit

The idea for this circuit was heavily inspired by a list of ideas created by ChatGPT. The circuit itself and the corresponding code was based off of this video.

Here are the required components:

  • x 1 Raspberry Pi Pico 2 W RP2350
  • x 5 Male-to-Male Header Wires
  • x 2 Female-to-Female Header Wires
  • x 1 LDR Sensor Module
  • x 1 LDR Photo Resistor

To start, I grasped an understanding of the circuit's wiring by consulting the Pico 2 W's pinout.

Pinout

With this, I was able to wire the circuit.