First Week With the Raspberry Pi Pico - One Year After

This was first posted in my Portuguese blog in March 9, 2021. I was following the news of the Pi Pico from its announcement and bought a few boards as soon as they were available in Brazil. 

My precious!

What is the Pi Pico?

The Raspberry Pi Pico is a board with the RP2040 microcontroller (designed by the Raspberry Foundation), The RP2040 has the following characteristics:
  • 2 ARM M0+ cores, running at up to 133MHz
  • 264K of internal Ram (organized in four 64K blocks plus two 4K blocks)
  • Support for up to 16M of external Flash memory
  • DMA
  • 30 GPIO pins (4 used to connect the Flash memory)
  • 16 16-bit PWM channels
  • 12-bit ADC with five inputs (internal temperature sensor + four external inputs)
  • 2 UARTs, 2 SPIs, 2 I2C
  • USB 1.1 controller, with device and host support
  • 8 "PIO State Machines" (allows programming simple I/O operations that run independently of the ARM cores)
So it is a very powerful microcontroller, specially with the dual ARM core and the PIO - there is great expectation on their uses.

The Raspberry Pi Pico Board contains, besides the RP2040 itself:
  • 2M Flash memory
  • USB micro B connector (for power and communication)
  • 3 pin SWD port for debugging
  • One button (BOOTSEL)
  • A "buck-boost" regulator to generate the 3.3V used by the RP2040. This is normally powered by the USB, but it accepts voltages from 1.8V to 5.5V.
  • 12MHz oscillator, used by the RP2040 PLLs to generate all the clocks
  • One LED
Connections to the board are done through 40 pins arranged in DIP format:
  • 26 GPIO Pins; 3 can be used as input for the ADC, multiple options for connecting UART, SPI and I2C
  •  8 ground pins
  • 7 power and control pins

Source: Official Raspberry Pi Pico Datasheet

Does it Run Linux?

The Pi Pico is not a SBC (Single Board Computer), it is a microcontroller board. So, running Linux is not its objective.

This is way I have some reservations on the naming. People equate Raspberry Pi with SBCs. It also makes a little harder to search for information on the web (when um search for "Raspberry Pi Pico" you will also get results for "Raspeberry Pi").

Programming

In the announcement we got two official programming environments:
  • MicroPython: a Python interpreter that runs in the Pi Pico. It is the easy way to program. Setting up the environment, coding and running is really fast. Of course you pay for it in performance (but not much) and there are some limitations.
  • C/C++, with a official SDK (Software Development Kit). It take some work to set up the environment (but there are step by step guides. Creating a new project and writing the code is harder, but you get full control over the microcontroller
As Arduino is one of the partners developing boards with the RP2040, support by the Arduino IDE was expect "real soon now".

What Have I Done in the First Week?
  • Soldered headers to the board (the headers are not included with the board)
  • Soldered a reset button (a big omission in the Pi Pico)
  • Instaled the MicroPython and C/C++ programming environments
  • Blinked a LED (using MicroPython)

Looking at the Pi Pico and RP2040 One Year After

The Pico has been a success. Its launch was quickly followed by other boards with the RP2040 from Raspberry partners: Adafruit Sparkfun, Pimori and, a few months later, Arduino. Later the RP2040 chip was available for everybody and more boards have been coming.

People found a lot of interesting uses for the PIO. Video generation has been particularly popular.

We got both unofficial and official support for programming the Pico with the Arduino IDE. There is also support in Circuit Python. And BASIC, of course.

While mainstream Linux does not support the Pico, we got two Linux/POSIS flavored OS: Nuttx and Fuzzix.


Comments

Popular posts from this blog