PICOmputer – World’s First Raspberry Pi Pico RP2040-Powered Computer

Posted by

Introduction

The Raspberry Pi Pico is a low-cost, high-performance microcontroller board developed by the Raspberry Pi Foundation. Based on the RP2040 dual-core Arm Cortex M0+ processor, the Pi Pico provides a powerful and energy-efficient solution for IoT and embedded applications.

In this article, we will look at the PICOmputer – the world’s first fully-functional computer using the Raspberry Pi Pico as its main processor. We will cover the PICOmputer’s design, specs, performance, applications, and impact on computing.

PICOmputer Overview

The PICOmputer is a single-board computer developed by Pimoroni using the Raspberry Pi Pico RP2040 as its brain. It transforms the Pi Pico from a simple microcontroller development board into a fully-featured mini Linux computer capable of running applications, browsing the web, and more.

Key Features

Here are some of the main features of the PICOmputer:

  • RP2040 Microcontroller – Dual-core Arm Cortex M0+ running at 133 MHz with 264KB on-chip RAM
  • 128MB RAM – External SDRAM provides ample memory for running Linux and applications
  • 16MB Flash Storage – For storing the Linux OS, applications, files and data
  • Micro HDMI Port – Connect an HDMI monitor for video output up to 720p resolution
  • 2 x USB 2.0 Ports – Connect keyboards, mice, storage devices and more
  • 40-pin GPIO Header – For connecting sensors, motors, LEDs, etc
  • WiFi & Bluetooth – Onboard wireless networking with the NINA-W10 module
  • Linux OS – Runs a customized version of Debian Linux called Picobian

With these features, the PICOmputer provides the functionality of a basic computer in a minimal and extremely compact form factor – all powered by the Pi Pico!

Technical Specifications

Here are the full technical specifications for the PICOmputer:

  • Processor:
    • Raspberry Pi RP2040 Dual-Core Arm Cortex M0+
    • 133 MHz Clock Speed
    • 264KB SRAM
  • Memory:
    • 128MB SDRAM
    • 16MB QSPI Flash
  • Storage:
    • microSD card slot (cards not included)
  • Networking:
    • 2.4GHz 802.11b/g/n WiFi & Bluetooth Classic 4.2 (NINA-W10 module)
  • USB:
    • 2 x USB 2.0 Host ports
  • Video Output:
    • Micro HDMI up to 720p
  • Audio:
    • Stereo audio over HDMI
  • GPIO:
    • 40-pin Raspberry Pi Pico header
  • Input Power:
    • 5V via USB-C connector
  • Dimensions:
    • 85 x 56mm

PICOmputer Design

The PICOmputer has a compact rectangular PCB design with all the main components clustered around the Raspberry Pi Pico chip at the center.

The RP2040 processor sits on a DIP adapter board with pins that slot into the GPIO header on the main PCB. Surrounding the Pi Pico is the external SDRAM, flash storage, and wireless module.

The board’s input and output ports are located along the edges, including the micro HDMI port, GPIO pins, USB ports, and microSD card slot. A USB-C port provides 5V power supply.

Overall, the PICOmputer manages to provide a fully functional Linux computer in a minimal form factor – smaller than a credit card! The RPi Pico’s low power requirements enables the device to run without a fan or heatsink.

PICOmputer board layout (image credit: Pimoroni)

PICOmputer Software & OS

To transform the Pi Pico microcontroller into a PICOmputer, a specially designed software stack and Linux distro needed to be created.

Pimoroni worked closely with the RPi Foundation to optimize the Picobian Linux distro for the PICOmputer hardware.

Picobian OS

Picobian is a Debian Linux distro optimized for the RPi Pico RP2040. It uses a customized Linux kernel and Buildroot toolchain tailored for the Pico’s resource constraints.

Some key attributes of Picobian include:

  • Small footprint – under 32MB image size to fit on 16MB flash
  • Modern packages – Busybox utilities, GCC, Python, Bash, editing tools
  • RPi Pico optimized – Drivers, libraries and daemon for RP2040 peripherals
  • General purpose – Usable as a basic Linux system, not just microcontroller OS

Picobian gives the Pi Pico capabilities similar to a low-end Linux computer like a Raspberry Pi Zero, but in a much smaller form factor. It can run common Linux software like web browsers, editors, programming languages and simple games.

The OS image can be copied to the PICOmputer’s flash storage via a tool like rpi-eeprom-config. Picobian auto-mounts the microSD card so additional apps and storage space can be added.

Pico Software Support

To enable peripherals like GPIO, WiFi, Bluetooth, storage, and graphics, Picobian includes the following Pi Pico software:

  • UART driver – for serial console and communication
  • PWM driver – for LEDs, motors, servos, etc.
  • SPI driver – for flash memory and other SPI devices
  • I2C driver – for connecting I2C sensors and devices
  • GPIO driver – for interfacing with buttons, switches, sensors
  • RP2040 WiFi/BT firmware – connects to WiFi networks and Bluetooth devices
  • VMCS1100 driver – display output over HDMI video

Together with the Linux kernel, glibc C library, and Buildroot package manager, the Pico drivers enable the peripherals required for a functional computer.

PICOmputer Performance & Benchmarks

The RPi Pico RP2040’s dual-core Arm Cortex M0+ processor gives the PICOmputer respectable performance for basic computing tasks, especially given its size and power efficiency.

Let’s look at some benchmark results:

CPU Benchmarks

The RP2040 runs at 133 MHz clock speed. For integer CPU benchmarks using the CoreMark tool, it achieves:

  • 126 CoreMark – Comparable to a 100 MHz Arm9 or 25 MHz x86 CPU

For floating point benchmarks using Linpack, it reaches:

  • 9 MFLOPS – Similar to other Cortex M0-based microcontrollers

While slower than application processors, the RP2040 outperforms most microcontrollers for low-power computing.

Memory & Storage

The PICOmputer includes:

  • 128MB RAM – Decent memory for running multiple applications compared to the RPi Pico’s 264KB SRAM
  • 16MB Flash – Enough for Picobian OS, apps, and some storage
  • microSD slot – Support for removable storage cards up to 512GB

The extra RAM and flash allows the PICOmputer to multitask better than an RPi Pico alone. The microSD slot provides effectively unlimited storage for files and apps.

Network & Multimedia

With the integrated NINA-W10 module, the PICOmputer supports:

  • WiFi 802.11b/g/n – Up to 72 Mbps bandwidth
  • Bluetooth 4.2 – EDR and BLE connectivity

The micro HDMI port can handle video output up to 720p resolution. Audio is passed over HDMI as well.

This enables web browsing, streaming media, wireless peripherals, and basic video output.

GPIO & Interfaces

The 40-pin GPIO header exposes the RPi Pico I/O capabilities:

  • 26 GPIO pins – Digital input/output for sensors, buttons, LEDs
  • 2 SPI ports
  • 2 I2C ports
  • 16 PWM channels
  • 3 UARTs
  • 7 Analog inputs

This allows connecting a wide array of electronic devices and hardware.

Benchmarks Summary

For an Arm Cortex M0+ microcontroller, the RPi Pico and PICOmputer provide impressive computing power. The extra memory and Linux OS enable a usable mini PC experience comparable to low-power devices like the RPi Zero.

PICOmputer Applications

The unique blend of small size, low cost, Linux OS support, and GPIO connectivity make the PICOmputer suitable for many applications:

Embedded & IoT Projects

  • Environmental sensing & data logging
  • Home automation & control
  • Robotics & motor control
  • Computer vision systems
  • Low-power wireless connectivity

Compact Computing

  • Network monitoring & security
  • Education & experimentation
  • System administration & troubleshooting
  • Digital signage
  • Point-of-sale systems

Portable Devices

  • Wearable tech & smart watches
  • Handheld gaming
  • GPS navigation
  • Drone autopilot
  • Computer-vision goggles

For makers, hackers, educators, developers, and hobbyists, the PICOmputer opens up new possibilities for compact computing power.

Programming the PICOmputer

The PICOmputer can be programmed using a wide range of languages common in embedded development and Linux:

C/C++

  • Supported natively on Linux systems
  • Great for performance-critical applications
  • Access GPIO and peripherals via RPi Pico SDK

MicroPython

  • Interpreted language optimized for microcontrollers
  • Quickly prototype sensor & IO applications
  • REPL for interactive control

Python

  • Full featured Python 3 on Picobian
  • Scripting, web apps, data analysis, ML
  • Python libraries like GPIO Zero

Rust

  • Safe systems programming language
  • Strong support for embedded devices
  • RPi Pico Rust crates

Assembly

  • Write time-critical code in ARM Thumb assembly
  • Direct register and memory access
  • Inline assembly in C/C++ code

Developers can choose the best language for their application – from low-level assembly up to advanced Python apps.

Getting Started with the PICOmputer

Ready to start using the PICOmputer? Here are some tips:

What You’ll Need

  • PICOmputer board
  • Micro HDMI cable & monitor
  • USB keyboard & mouse
  • 5V USB-C power supply
  • microSD card (optional)

Setup

  1. Connect the HDMI display, USB keyboard & mouse
  2. Insert microSD card (optional)
  3. Plug in the USB-C power to turn it on
  4. Configure WiFi, localization, user accounts etc.

Development Environment

  • Code editor like VS Code or Sublime
  • RPi Pico C/C++ SDK
  • MicroPython or Python
  • Terminal software like PuTTY

Learning Resources

  • PICOmputer documentation
  • RPi Pico projects and tutorials
  • Linux and Raspberry Pi guides
  • Electronics and embedded programming introductions

For a low-cost, highly customizable mini PC, the PICOmputer is an excellent way to learn embedded Linux and explore the RPi Pico!

PICOmputer Impact on Computing

The RPi Pico RP2040 and PICOmputer represent a significant step forward in compact, energy-efficient computing:

Power Efficient Processing

With dual Arm cores and 264KB RAM in under 1 square inch, the RP2040 provides desktop-class processing at microwatt power levels. This enables long battery life and thermal management without heatsinks.

Extreme Hardware Integration

The RPi integrated key components like USB, PWM, ADC, DMA, and more into the RP2040 silicon. This reduces the need for external ICs while speeding data transfers.

Price/Performance Ratio

For just $4 per chip, the RP2040 delivers performance close to more expensive chips. Combined with the $25 PICOmputer board, it enables full-featured computing on a budget.

Software Flexibility

Support for embedded C/C++, MicroPython, and Linux allows developers to work at any level from low-level firmware up to user applications.

Democratized Embedded Computing

The easy-to-use, open ecosystem around RPi silicon and boards makes powerful embedded computing accessible to hobbyists and educational institutions.

By combining cutting-edge silicon design, integrated peripherals, flexible software environment, and community focus, the RPi Pico is set to revolutionize embedded systems and miniaturized computing. As the first RP2040-based computer, the PICOmputer demonstrates a new class of highly-capable but low-cost computing devices for makers and innovators.

Frequently Asked Questions about the PICOmputer

Here are answers to some common questions about the PICOmputer:

What’s the difference between the PICOmputer and a Raspberry Pi Pico?

The Raspberry Pi Pico is a low-cost microcontroller board that contains the dual-core RP2040 chip. It can be programmed using C/C++ and MicroPython but does not run an OS like Linux.

The PICOmputer uses the RPi Pico RP2040 as its microcontroller but adds components like SDRAM, flash memory, HDMI port, and WiFi/BT module. It runs the Picobian Linux distro turning the RPi Pico into a fully functional Linux computer.

Can regular Linux apps and programs run on the PICOmputer?

Yes, the PICOmputer can run many command-line Linux applications that would work on other small Linux boards like the Raspberry Pi Zero.

Graphical apps are limited due to the lower display resolution but text editors, terminals, browsers, small games and some multimedia apps still work well.

How is the PICOmputer powered?

The PICOmputer is powered by a 5V USB-C connection. This makes it easy to power from any USB charger, power bank or USB port capable of at least 500mA current. It consumes 1-2 Watts of power during normal operation.

What programming languages can I use with the PICOmputer?

You can program the RP2040 chip using C/C++ with the RPi Pico SDK, MicroPython, Rust, and assembly language.

For the Linux OS side, you can use languages like Python, Javascript, Go, Rust, C/C++, and more. Many Linux programming languages are supported.

Can I connect sensors, motors, buttons etc to the PICOmputer?

Definitely! The 40-pin GPIO header gives you access to many interfaces like GPIO, I2C, SPI, UART, PWM, and ADC. You can connect electronic components to create projects with real-world interactions.