Maker Pro
Raspberry Pi

Getting Started With Raspberry Pi Pico

March 25, 2022 by Ashish Adhikari
Share
banner

Couple of months ago, I bought a "Raspberry Pi Pico" to get some hands-on experience of it and to create some amazing pr

Hardware

Couple of months ago, I bought a "Raspberry Pi Pico" to get some hands-on experience of it and to create some amazing projects using it. But since then, it has just been sitting on my desk, collecting dust. Today after a very long wait, I finally have decided to create a short video tutorial to show you guys how to get started with the Raspberry Pi Pico.

Topics Covered 

1.png

In this tutorial, I am going to discuss:

1. What is a Raspberry Pi Pico?

2. The technical specifications of the board

3. How to program Pico using C/C++ and MicroPython

a. Programming Raspberry Pi Pico using "Arduino IDE"

i. Preparing the Arduino IDE

ii. Loading the Blink Example

iii. Demo

b. Programming Raspberry Pi Pico using "Tonny Python IDE"

i. Installing MicroPython on Pico

ii. Installing Tonny Python IDE

iii. Loading the Blink Example

iv. Demo

4. Difference between Raspberry Pi Pico and Arduino

5. Advantages and Disadvantages of this board

What is Raspberry Pi Pico?

2.0.png

Raspberry Pi Pico is a low-cost microcontroller. It can be used to control other electronic modules and sensors same as any other microcontroller.

Pico is not a Linux single board computer, rather it is a microcontroller like Arduino. Since, its a microcontroller it doesn't come with all the overheads that a computer brings and hence consumes much less current. actually it is more like Arduino than Raspberry Pi.

Pico is not a rival of Raspberry Pi Zero, it actually can work in conjunction with the regular Pi's.

Pico is breadboard friendly and has 40 GPIO pins operating at 3.3v (20 on each side). It has a Dual-Core ARM Cortex M0+ processor. Pico's brain - the RP2040 microcontroller chip is designed by Raspberry Pi in United Kingdom. 

2.1.png

It can be powered either via the micro USB port, or via the VSYS GPIO pin by providing voltage between the range of 1.8V to 5.5V.

Technical Specifications of Pico

3.png

Raspberry Pi Pico is absolutely different from all other Raspberry Pi models. Pico is one of the first microcontrollers to use the RP2040 "Pi Silicon" processor. It is a custom "System on Chip" (SoC) developed by the Raspberry Pi team in UK which features a dual core Arm Cortex M0+ processor running at 133 MHz, 264KB of SRAM and 2MB of flash memory for storing files on it.

Specifications:

- Microcontroller: RP2040 designed by Raspberry Pi in the UK

- Processor: Dual-Core Arm Cortex-M0+ processor, flexible clock running up to 133 MHz

- Input power: 1.8 - 5.5 V DC

- Operating temperature: -20°C to +85°C

- Dimensions: 51.0 x 21.0 mm

- Onboard Sensors: Temperature Sensor

- Memory: 264KB of on-chip internal SRAM and can support up to 16MB of off-chip Flash

2MB on-board QSPI Flash (Adafruit's Feather RP2040, features 16MB of storage)

- GPIO: It has 40 GPIO through-hole pins also with edge castellation

- 26 × multi-function 3.3V GPIO pins, which includes 3 analogue inputs (The Analog inputs is something other Raspberry Pi's lack. They use variable voltages to connect to devices like a potentiometers, joystick or a LDR)

- 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 that can offload many kinds of timing-critical processes from the CPU

- Other Features:

- 1 × Contains 1 × USB 1.1 controller and PHY, with host and device support

- Accurate clock and timer on-chip

- Low-Power sleep and dormant modes

- Accelerated integer and floating-point libraries on-chip

- Works with Windows, Mac, Linux machines and Raspberry Pi Computers

- Provides drag-and-drop programming using mass storage over USB

4.png

The one biggest disadvantage of the Raspberry Pi Pico is that there is no WiFi or Bluetooth on it. ESP32 and ESP8266 which you can buy for similar price comes with WiFi and Bluetooth (ESP32). Surely we can add wireless connectivity via external components, however that would require a little bit more knowledge and experience to get it working.

6.png

Since Pico is not a computer, we need to write our codes on a different machine using an external application and then "flash" the code onto the microcontroller over USB.

Pinout Diagram:

Here is the top view of the pinouts on the Raspberry Pi Pico. The pin-labels are on the bottom side of the board.

7.png

How to program Pico using C/C++ and MicroPython

8.png

Pi Foundation officially supports MicroPython and C/C++, however high-level programming language like CircuitPython (A fork of MicroPython created by Adafruit), and Drag and Drop Python Editor like Pico Piper which adds further enhancements and can be used to program the Pico boards.

Programming Raspberry Pi Pico using Arduino IDE

Python and C/C++ are both great for programming Picos. However, being able to program a Pico just like an Arduino would help us to integrate the Pico into the Arduino ecosystem. One of the best reasons to do this is because of the availability of libraries to integration of modules, sensors, and other complex stuff without having to write the entire code from scratch.

i. Preparing the Arduino IDE

9.png

To start, let go to Tools > Boards > Boards Manager and search for "Pico", select "Arduino Mbed OS RP2040 Boards" and hit the install button.

Connect the micro USB cable to the Pico and then press and hold the "BOOTSEL" button before plugging the USB cable into the computer. Release BOOTSEL once the drive RPI-RP2 appears on your computer.

Now, go to Tools > Port and you will now be able to see the number of the COM Port.

ii. Loading the Blink Example

Go to Files > Examples > Basics > Blink and click on Upload, this will load the code to the Pico board.

iii. Demo

10.png

After the IDE finished uploading the code, you will see the Pico's onboard LED blinking.

You can now use your Pico like an Arduino and program it using the Arduino IDE.

Programming Raspberry Pi Pico using Tonny Python IDE

You can program your Pico using MicroPython by connecting it to a computer via USB and then dragging and dropping files to it.

i. Installing MicroPython on Pico

11.png

Installation of MicroPython on Pico requires a "UF2" file to be copied onto it. A UF2 file is a "binary data file" which contains a program that can be transferred from a PC to a microcontroller, such as an Arduino or Pico circuit board.

To load MicroPython on Pico:

1. Download "MicroPython UF2 file" from the link provided in the description below.

2. Connect the micro USB cable to the Pico and then press and hold the "BOOTSEL" button before plugging the USB cable into the computer. Release BOOTSEL once the drive RPI-RP2 appears on your computer.

3. Drag and drop the UF2 file onto the RPI-RP2 volume.

4. Your Pico will reboot. That's it, you are now running MicroPython on your Pico.

ii. Installing Tonny Python IDE

To write code and save files to Pico we are going to use the "Thonny Python IDE". Thonny comes with built-in Python 3.7, so just one simple installer is what you need to learn programming. To get started:

1. Download and install "Thonny" free from the Thonny website for your version of OS. The website's link is in the description below.

Note: If you are running "Raspberry Pi OS" then Thonny is already installed on it, but may need to update it to the latest version

sudo apt update && sudo apt upgrade -y

2. Connect the Raspberry Pi Pico to your computer. Then, in Thonny go to Tools > Options and click on the "Interpreter" tab. From the interpreter dropdown list select "MicroPython (Raspberry Pi Pico)". The port dropdown menu can be left to "automatically detect the Pico". Click "OK" to close.

3. A Python Shell called "REPL" (Read, Eval, Print, Loop) will popup to show that the Pico is connected and working.

iii. Loading the Blink Example

1. Click in the main editor pane of Thonny and enter the following code to toggle the onboard LED.

from machine import Pin, Timer
led = Pin(25, Pin.OUT)
timer = Timer()


def blink(timer):
led.toggle()

timer.init(freq=2.5, mode=Timer.PERIODIC, callback=blink)

Content goes here2. Click the "Run" button to execute the code.

3. Thonny will ask whether you want to save the file on "This computer" or the "MicroPython device". Choose "MicroPython device". Enter "blink.py" as the file name. Make sure you enter ".py" as the file extension so that Thonny recognizes it as a Python file.

iv. Demo

12.png

You should now see the onboard LED switching between on and off until you click the Stop button.

Difference between Raspberry Pi Pico and Arduino

13.png

* Before Raspberry Pi Pico, Raspberry Pi has always been know for their single board computers.

However, in 2021 Raspberry Pi Foundation stepped a few steps forward and launched the Raspberry Pi Pico giving a head-to-head challenge to Arduino and all other board based microcontrollers.

* Arduino was first introduced in 2005 and since then Millions of Arduino Units have been sold in the market. Compared to that, the response Pico received after its initial launch in 2021 is absolutely mind-blowing.

* Both units are made for automating applications that don’t involve human intervention.

* Pico can be used alone or in combination with Arduino for Automation and AI purposes.

* Both modules are different in terms of power consumption, value, functionality, and price.

* Pico boards come unsoldered however Arduino comes pre-soldered or unsoldered.

* Pico module supports MicroPython and C/C++, while Arduino codes are written in C/C++ using Arduino.IDE.

14.png

So which one to go for… Pico or Arduino?

Advantages and Disadvantages

15.png

If you have a Windows, Apple, Linux or even a Raspberry Pi, then you are already well in your way to program the small, cute, and gorgeous Raspberry Pi Pico in your next project. I bet, there must be a lot of project ideas going in your mind, so get your supplies and start coding. And, what are you waiting for???

16.png

Thanks

Thanks again for checking my post. I hope it helps you.

If you want to support me subscribe to my YouTube Channel: https://www.youtube.com/user/tarantula3

Blog Posts: https://diyfactory007.blogspot.com/2022/01/getting-started-with-raspberry-pi-pico.html

Video: https://youtu.be/vO_2XWJDF70

Other Resources:

RP2040 Datasheet : https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf

Hardware design with RP2040 : https://datasheets.raspberrypi.com/rp2040/hardware-design-with-rp2040.pdf

Raspberry Pi Pico Datasheet : https://datasheets.raspberrypi.com/pico/pico-datasheet.pdf

Getting started with Raspberry Pi Pico : https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf

MicroPython UF2 : https://micropython.org/download/rp2-pico/rp2-pico-latest.uf2

Thonny website : https://thonny.org/

Piper Make: https://make.playpiper.com/

CircuitPython 7.1.0: https://circuitpython.org/board/raspberry_pi_pico/

Support My Work:

BTC: 1M1PdxVxSTPLoMK91XnvEPksVuAa4J4dDp

LTC: MQFkVkWimYngMwp5SMuSbMP4ADStjysstm

DOGE: DDe7Fws24zf7acZevoT8uERnmisiHwR5st

ETH: 0x939aa4e13ecb4b46663c8017986abc0d204cde60

BAT: 0x939aa4e13ecb4b46663c8017986abc0d204cde60

LBC: bZ8ANEJFsd2MNFfpoxBhtFNPboh7PmD7M2

Thanks, ca again in my next tutorial.

Author

Avatar
Ashish Adhikari

There were 1000+ sperms but I was the fastest one.

Related Content

Comments


You May Also Like