chmod777's blog

skip to page content

Since February 2021

Theme Options

theme options requires javascript

Pi Pico First Impressions

Specs? Who need those. I wont go deep into the specs because that would be a waist of our time. You can look them up somewhere else.

What is this dual core ARM M0+ microprocessor good for?

What shouldn't you use it for?

This isn't a linux computer like the other Raspberry Pis so don't bother trying to host a server on it or use it to emulate your favorite retro device. Though you certaintly can if you try.

It doesn't have wireless connectivity built into it like the esp devices so you have to bring your own at which point you might consider an integrated solution.

Language Support

The Raspberry Pi foundation supports two languages on the Pi Pico. C and their port of MicroPython to the board.

Table summary
Language Backer Recommended IDE Documentation
C Raspberry Pi Foundation Visual Studio Code
  • PDF
  • Website
MicroPython Raspberry Pi Foundation Thonny
  • PDF
  • MicroPython Website
CircuitPython Adafruit MuPython
  • Website
Arduino C Arduino Arduino IDE
  • Website

Real Applications

C++ and MicroPython Support

To test the language support I created the same program in both MicroPython and C++ using the C SDK. In each program I wrote a driver for the MPU-6050 a sensor with 6 degrees of freedom, and used it to control 2 servos in order to level them.

A Pi Pico on a bread board connected to an MPU-6050 and two servos via jumper wires.
The MPU-6050 is connected to one of the Pico's i2c busses while the servos are connected to PWM pins.

Programmable IO (PIO)

To test the PIO feature of the board I wrote two programs using the C SDK. Each of them poll a key matrix similar to what you would find on a USB keyboard. The first program does it by setting GPIO pins using one of the main cores of the microcontroller while the other polls the keys using the programmable IO state machines.

A wiring diagram for a 3 by 3 keyboard matrix.
Each row is connected to each column by a diode and a button in parrallel. The diodes are oriented so that current flows from the rows to the columns.