top of page

The new Raspberry Pi Pico

  • q in motion
  • Feb 13, 2021
  • 4 min read

A couple of weeks ago, the Raspberry Pi Foundation, creators of the most popular single board computer, announced the launch of the new Raspberry Pi Pico.

Many people were confused, thinking that this would be another version of the Raspberry Pi, something like a new Raspberry Pi Zero. Absolutely not.


The Pico is a complete different device, and it is Raspberry Pi's first foray in the market of microcontrollers, rather than single board computers. This board is a lot closer to an Arduino than a Raspberry Pi.


It has been announced at a price point of $4 per unit, and it just flew off the shelves. At the time of writing this, it is out of stock on all major US official distributors. I just got mine through eBay, and had to overpay for it to get it now. According to the Raspberry Pi Foundation, supply should be normalized by the second quarter of 2021.


What is so special about this board? Is this just another Arduino?


Well, it is in the sense of the market that it is aiming to. A low cost microcontroller board that is easy to use. But is is very powerful and very flexible. Let's have a look at some of its specs:


  • Dual-core Arm Cortex M0+ processor, flexible clock running up to 133 MHz

  • 264KB of SRAM, and 2MB of on-board Flash memory

  • USB 1.1 with device and host support

  • Drag-and-drop programming using mass storage over USB

  • 2 × SPI, 2 × I2C, 2 × UART

  • 3 × 12-bit ADC

  • 16 × controllable PWM channels

  • 8 × Programmable I/O (PIO) state machines for custom peripheral support


This controller is fast! Clocked at 133MHz, it puts it well above other controllers. For instance, an Arduino Uno runs at 16MHz. Plus, you do not have one core, but two. This allows one core to be running computational intensive processes, while having the other one taking care of the user interface.


It has a lot of memory. OK, not much compared to your phone or your laptop, but it has enough RAM to easily handle a buffer for a 320 x 240 full color display or camera or other applications requiring big amounts of data capture. For comparison, an Arduino Uno has 2kB (compared to 256kB in the Pico)


It has 2MB of flash. This is on the board, not on the chip, but the processor can execute code from it directly. This is a lot, and can easily store audio for some voice playback applications.


USB with device and host capability: you can make this device behave as a keyboard, mouse, or flash drive to connect to a computer, or you can connect other devices to it.


Drag and drop programming: No special programmers needed. If you have a computer with a web browser and a terminal emulator (PuTTY or TeraTerm for instance), you can start programming it in MicroPython without installing any other software.


Two of each of the most popular serial interfaces for microcontrollers: UART, I2C and SPI.


ADC with 12 bit resolution (3.3V reference), up to 500 kS per second. Again, this is fast. The only drawback is that only 3 pins on the board can be used as analog inputs. This may not be enough for some projects.


The PWM channels provide more than enough to control hobby servos or to be used as analog outputs.


And the icing on the cake, the PIO for custom peripheral support. These are highly specialized co-processors optimized for I/O operations. These can be programmed to act as SPI, I2C, UART, to drive WS2812 addressable LEDs, VGA video output, Manchester signaling (which is the encoding used in Ethernet), or I2S for digital audio using the provided examples and libraries. Some hackers already started pushing this over the limit by overclocking the processor and generating DVI video.


The internal architecture has been highly optimized for very efficient I/O. There is a DMA unit with 12 channels that allows peripheral to memory, memory to peripheral and memory to memory transfer without using any of the cores. All of the serial interfaces have buffers of at least 4




Why would I use a Pico instead of an Arduino Nano, for instance?


For one, its price. The $4 price tag puts the Pico below any official Arduino board, and on par with many clones. Other reasons may depend on your project, but having two of each of the most popular interfaces plus USB makes this a board that you can drop on almost any project.

Does the Arduino IDE support it? Not yet, but this is expected to change soon. If you are comfortable with the Arduino IDE and have no time to explore other options, keep checking. If you want to venture into other ways of programming microcontrollers, check out MicroPython.




Is there a reason not to use it?


The Pico has many advantages, but it is not the one-size-fits-all product. For one, it does not include Bluetooth or WiFi. The ESP-32 and ESP-8266 are still the best options to use these wireless standards.


It has only 3 analog inputs. This may or may not be enough for you. If you need more, you could expand them by adding an external multiplexer, but at that point, depending on your project, it may be best to use a microcontroller with enough analog inputs for your needs.


Its power consumption is a bit on the high side. The Pico board takes about 1mA in Sleep mode and close to 100mA at full processing speed. If you expect to use this in a battery-powered product and expect the batteries to last for several months, it will not happen.


The board size is definitely small, but not the smallest. Depending on your project, it may be too big. And if you plan to use the chip by itself (without the board), the QFN package is on the difficult side to solder by hand.


Availability of shields is not there yet. If you expect an accessory board to just plug onto a Pico, you will have to wait some time and see what comes up.



Bottom line


The Pico is a very solid choice. High performance, well documented, easy to use, MicroPython available now and Arduino support coming soon. Oh, and it is only $4! Once it starts being available again, it can easily be the number 1 choice for many projects.


For more information, check the official Getting Started page.







Comments


Commenting on this post isn't available anymore. Contact the site owner for more info.
Post: Blog2_Post
bottom of page