Electronics

Raspberry Pi Pico Development Board

AED 42.00

1

Description

Raspberry Pi Pico is a microcontroller board based on the RP2040 microcontroller chip. It features a dual-core ARM Cortex-M0+ processor running at up to 133 MHz, 264KB of on-chip SRAM, and a variety of I/O options, including 26 multi-function GPIO pins. The Pico can be programmed in C/C++ or MicroPython and can be used for a wide range of projects, from simple blinky LED projects to complex robotics and automation applications. It is also very affordable and can be a great option for beginners in embedded programming.

 

Package Includes:

  • 1 x Raspberry Pi Pico Development Board

 

Features:

  • RP2040 microcontroller chip with dual-core ARM Cortex-M0+ processor running at up to 133 MHz
  • 264KB of on-chip SRAM
  • Support for a variety of external flash memory options for program and data storage
  • 26 multi-function GPIO pins with support for digital and analog I/O, SPI, I2C, UART, PWM, and more
  • Two programmable state machines (PSMs) for custom hardware acceleration or real-time control tasks
  • USB 1.1 interface for power, programming, and data transfer
  • Support for a low-level USB device and host modes
  • Built-in temperature sensor and voltage reference
  • Can be programmed in C/C++ or MicroPython using a variety of development tools, including the official Raspberry Pi Pico C/C++ SDK, the MicroPython interpreter, or third-party development tools like Visual Studio Code or PlatformIO
  • The compact form factor (51mm x 21mm) and low power consumption (typically less than 1W) make it suitable for embedded applications
  • Open-source hardware and software design makes it accessible to a wide range of developers and hobbyists.

 

Description:

The Raspberry Pi Pico is a microcontroller board is based on the RP2040 microcontroller chip, which was designed by Raspberry Pi and features a dual-core ARM Cortex-M0+ processor running at up to 133 MHz. The Pico board includes 264KB of on-chip SRAM and supports a variety of external flash memory options for program and data storage. The Pico has 26 multi-function GPIO pins that can be used for a wide range of input and output tasks, including digital and analog I/O, SPI, I2C, UART, PWM, and more. Additionally, the Pico features two programmable state machines (PSMs) that can be used for custom hardware acceleration or real-time control tasks. The Pico can be programmed in C/C++ or MicroPython using a variety of development tools, including the official Raspberry Pi Pico C/C++ SDK, the MicroPython interpreter, or third-party development tools like Visual Studio Code or PlatformIO. The Pico can also be programmed using the drag-and-drop programming environment Scratch, or by using the Arduino IDE with an RP2040 add-on board. The Pico is a versatile and affordable development board that can be used for a wide range of projects, including simple LED blinky projects, robotics and automation applications, data logging, and more. Its compact form factor, low power consumption, and flexible I/O options make it a popular choice for embedded projects, and its low cost makes it accessible to beginners who are just getting started with microcontroller programming.

 

Principle of Work:

CircuitPython is a version of Python programming language designed for microcontrollers, which includes the Raspberry Pi Pico board. The Pico's microcontroller chip is pre-programmed with a small boot loader, which allows CircuitPython to be installed and run on the device. When you connect the Pico to your computer via USB, it appears as a removable storage device, just like a USB flash drive. This allows you to easily access the files on Pico's file system, where you can edit and save Python code directly onto the device. CircuitPython provides a set of built-in modules that you can use to interact with Pico's hardware, such as its GPIO pins, UART, SPI, I2C, and analog-to-digital converters (ADCs). These modules make it easy to work with Pico's hardware without having to write low-level C code. When you write and save Python code to Pico's file system, CircuitPython automatically loads and runs the code on the device. This allows you to quickly test and iterate on your code without having to compile it first. CircuitPython also provides an interactive Python REPL (Read-Eval-Print Loop), which allows you to enter Python commands directly into Pico's serial console. This can be useful for testing and debugging code in real-time, as well as exploring the capabilities of Pico's hardware.

 

Pinout of the Module:

  • The Pico board has 26 GPIO pins, numbered GP0 through GP25.
  • The pins are arranged in two rows of 13 pins each, with the top row numbered GP0 to GP12 and the bottom row numbered GP13 to GP25.
  • Most of the pins can be used for a variety of purposes, including digital input and output, analog input, PWM output, and more.
  • Some pins have specific functions assigned to them, such as I2C, SPI, UART, and ADC inputs.
  • There are also several power and ground pins, as well as a couple of pins specifically for programming the Pico board.

 

Applications:

  1. Electronics prototyping: The Pico board is ideal for experimenting with different electronic circuits and components, thanks to its 26 GPIO pins and support for a variety of interfaces and protocols.
  2. Microcontroller projects: The Pico board can be used as the main microcontroller in a wide range of projects, from simple sensors and actuators to more complex systems like robots and drones.
  3. Internet of Things (IoT): With its built-in support for Wi-Fi and Bluetooth, the Pico board can be used to create IoT devices that can communicate with other devices and services over the internet.
  4. Automation and control: The Pico board can be used to create automation and control systems, such as home automation systems, industrial control systems, and more.
  5. Educational projects: The Pico board is a great tool for teaching electronics and programming, thanks to its easy-to-use interface and support for popular programming languages like MicroPython and C/C++.

 

Circuit:

 No need to connect anything we will blink the onboard LED in this example.

 

Library:

Installing CircuitPython on Raspberry Pi Pico:

  1. Download the latest version of CircuitPython firmware for the Raspberry Pi Pico from the CircuitPython website.
  2. Connect your Raspberry Pi Pico to your computer using a micro USB cable.
  3. Your Pico should appear as a USB storage device. Drag and drop the CircuitPython firmware .UF2 file onto the Pico.
  4. Eject the Pico from your computer and unplug the USB cable.
  5. Press and hold the BOOTSEL button on the Pico while plugging it back into your computer. You should now see a new drive called RPI-RP2 appear on your computer.
  6. Drag and drop the code.py file into the RPI-RP2 drive. This is the file that will be executed automatically when the Pico is powered on.
  7. Eject the Pico from your computer, unplug the USB cable, and press the RESET button on the Pico. CircuitPython should now be running on your Pico.

Working with CircuitPython on Raspberry Pi Pico:

  1. Connect your Raspberry Pi Pico to your computer using a micro USB cable.
  2. Your Pico should appear as a USB storage device. Double-click on the RPI-RP2 drive to open it.
  3. Create a new file in the RPI-RP2 drive and name it code.py.
  4. Open the code.py file using a text editor, such as Notepad or Visual Studio Code.
  5. Write your CircuitPython code in the code.py file.
  6. Save the code.py file and eject the Pico from your computer.
  7. Press the RESET button on the Pico to run your code.

That's it! You have successfully installed and worked with CircuitPython on the Raspberry Pi Pico.

 

Code:

CircuitPython code to blink the onboard LED of the Raspberry Pi Pico board

Create a new file on your computer called main.py. Add the following code to your main.py file:

 
import time
import board
import digitalio

led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT

while True:
    led.value = True
    time.sleep(0.5)
    led.value = False
    time.sleep(0.5)

  1. Save the main.py file to the root directory of your Raspberry Pi Pico board.
  2. Eject the Pico board from your computer and disconnect it from the USB cable.
  3. Reconnect the Pico board to your computer using the USB cable.
  4. The onboard LED on the Pico board should now start blinking at a 0.5-second interval.

That's it! You have successfully written a CircuitPython code to blink the onboard LED of the Raspberry Pi Pico board.

 

Technical Details: 

Microcontroller:

  • RP2040 dual-core ARM Cortex-M0+ processor, running at up to 133 MHz
  • 264KB of SRAM
  • 2MB of flash memory

Power:

  • Micro-USB port for power and data transfer
  • Input voltage: 5V DC
  • Operating current: 22mA (typical), 44mA (maximum)

Digital I/O:

  • 26x multi-function GPIO pins (3.3V logic level)
  • 3x analog inputs (12-bit ADC)
  • 3x UARTs (1x TX/RX, 2x TX-only)
  • 2x I2C interfaces
  • 2x SPI interfaces
  • 16x PWM channels
  • 1x USB 1.1 controller with full-speed support

Dimensions:

  • 51mm x 21mm x 5mm (L x W x H)

Other features:

  • Onboard programmable RGB LED
  • Boot mode selection button
  • User-programmable push button switch
  • Low-power sleep and dormant modes

 

Resources:

 CircuitPython Download Link

 Getting started with CircuitPython

Comparisons:

 

Comparison between the Raspberry Pi Pico, Arduino Uno, and ESP32:

Microcontroller:

  • Raspberry Pi Pico: RP2040 dual-core ARM Cortex-M0+ processor, running at up to 133 MHz
  • Arduino Uno: ATmega328P AVR microcontroller running at 16 MHz
  • ESP32: Dual-core Tensilica LX6 microprocessor running at up to 240 MHz

Memory:

  • Raspberry Pi Pico: 264KB of SRAM, 2MB of flash memory
  • Arduino Uno: 2KB of SRAM, 32KB of flash memory
  • ESP32: 520KB of SRAM, 4MB of flash memory

Digital I/O:

  • Raspberry Pi Pico: 26x multi-function GPIO pins (3.3V logic level), 3x analogue inputs (12-bit ADC), 3x UARTs, 2x I2C interfaces, 2x SPI interfaces, 16x PWM channels
  • Arduino Uno: 14x digital I/O pins, 6x analogue inputs, 1x UART, 1x SPI interface, 1x I2C interface
  • ESP32: 36x digital I/O pins, 18x analogue inputs, 3x UARTs, 3x SPI interfaces, 2x I2C interfaces, 16x PWM channels

Wireless Connectivity:

  • Raspberry Pi Pico: None
  • Arduino Uno: None
  • ESP32: Wi-Fi and Bluetooth

Programming Language:

  • Raspberry Pi Pico: CircuitPython, MicroPython, C/C++, and more
  • Arduino Uno: Arduino IDE (based on C++)
  • ESP32: Arduino IDE, MicroPython, Lua, and more

The Raspberry Pi Pico is more powerful than the Arduino Uno and has more I/O options, but it lacks the wireless connectivity options of the ESP32. The ESP32 is more powerful than both the Pico and the Uno and has wireless connectivity options, but it is also more expensive. The choice between these boards ultimately depends on the specific requirements of the project.