fbpixel
Tags: ,

The Raspberry Pi Pico is a development board based on the RP2040 programmable with the Arduino IDE. It has a large number of inputs

Installing drivers on the computer

The Raspberry Pi Pico is recognized as a Fat32 USB storage device. No special driver needs to be installed to connect it to a computer. To convert the RPi Pico into a USB flash drive:

  • Disconnect the Pico from its power supply
  • Press the BOOTSEL button
  • Connect the Pico to the computer using the USB cable
  • Release the BOOTSEL button
raspberry-pi-pico-boot-usb Programming a Raspberry Pi Pico with Arduino IDE

Add JSON handlers

To program other microcontrollers with the Arduino IDE, you need to install board managers on your Arduino, containing all the tools you need to program them. To retrieve the managers, you need to find the corresponding URL. In the case of the Raspberry Pi Pico, https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

N.B.: If you encounter compilation problems, check whether a previous version of Pico is installed. If so, delete it manually (C:\Users\\AppData\Local\Arduino15\packages\rp2040).

Then open the File>Preferences window of the Arduino software. At the bottom of the page you will find a text box in which to enter the URL: “Additional board manager URL”. (don’t forget to separate URLs with a comma “,”)

nodemcu-esp32-ide-configuration Programming a Raspberry Pi Pico with Arduino IDE

Install managers

In the “Tools” tab, follow the path “Map type > Map manager”. The IDE will load the map catalogue from the URL.

arduino-ide-board-manager Programming a Raspberry Pi Pico with Arduino IDE

If you search for the microcontroller in the search bar, the package to be installed should be displayed.

raspberry-pi-pico-arduino-ide-install Programming a Raspberry Pi Pico with Arduino IDE

Select configuration

Once the management package has been installed, the microcontroller should appear in the available board types.

raspberry-pi-pico-arduino-ide-board Programming a Raspberry Pi Pico with Arduino IDE

You’ll then need to know the characteristics of your card to select the right settings. However, except in exceptional cases, the default settings will work without a hitch.

Example code

You can copy and paste this example code to test compilation and uploading. A list of Arduino libraries compatible with the RP2040 microcontroller is available here.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
//Constants
#define BRIGHTNESS 200
//Parameters
const int ledPin = 25;
//Variables
bool ledStatus = 0;
void setup() {
//Init Serial USB
Serial.begin(9600);
Serial.println(F("Initialize System"));
//Init led
pinMode(ledPin, OUTPUT);
}
void loop() {
testLed();
}
void testLed( ) {
digitalWrite(ledPin, HIGH);
Serial.println(F("LED ON"));
delay(500);
digitalWrite(ledPin, LOW);
Serial.println(F("LED OFF"));
delay(500);
}
//Constants #define BRIGHTNESS 200 //Parameters const int ledPin = 25; //Variables bool ledStatus = 0; void setup() { //Init Serial USB Serial.begin(9600); Serial.println(F("Initialize System")); //Init led pinMode(ledPin, OUTPUT); } void loop() { testLed(); } void testLed( ) { digitalWrite(ledPin, HIGH); Serial.println(F("LED ON")); delay(500); digitalWrite(ledPin, LOW); Serial.println(F("LED OFF")); delay(500); }
//Constants
#define BRIGHTNESS 200

//Parameters
const int ledPin = 25;

//Variables
bool ledStatus = 0;

void setup() {
  //Init Serial USB
  Serial.begin(9600);
  Serial.println(F("Initialize System"));
  //Init led
  pinMode(ledPin, OUTPUT);

}

void loop() {
  testLed();
}

void testLed( ) {
  digitalWrite(ledPin, HIGH);
  Serial.println(F("LED ON"));
  delay(500);
  digitalWrite(ledPin, LOW);
  Serial.println(F("LED OFF"));
  delay(500);
}

If the upload is successful, this message should be displayed

Resetting COM15
Converting to uf2, output size: 105472, start address: 0x2000
Flashing E: (RPI-RP2)
Wrote 105472 bytes to E:/NEW.UF2

Results

raspberry-pi-pico-arduino-ide-result Programming a Raspberry Pi Pico with Arduino IDE

Sources