Arduino-Pico
This is the documentation for the Raspberry Pi Pico Arduino core, Arduino-Pico. Arduino-Pico is a community port of the RP2040 (Raspberry Pi Pico processor) to the Arduino ecosystem, intended to make it easier and more fun to use and program the Raspberry Pi Pico / RP2040 based boards.
This Arduino core uses a custom toolset with GCC 10.3 and Newlib 4.0.0 and doesn’t require any system-installed prerequisites.
For the latest version, always check https://github.com/earlephilhower/arduino-pico
Contents:
- Getting Help
- Contributing
- Installation
- Installing via Arduino Boards Manager
- Installing via Arduino CLI
- Installing via GIT
- Installing both Arduino and CMake
- Uploading Sketches
- Uploading the First Sketch
- Windows 7 Driver Notes
- Windows 7 Installation Problems
- Uploading Filesystem Images
- Uploading Sketches with Picotool
- Uploading Sketches with Picoprobe
- Uploading Sketches with pico-debug
- Debugging with Picoprobe/pico-debug, OpenOCD, and GDB
- IDE Menus
- Platform.IO Integration
- What is PlatformIO?
- Important steps for Windows users, before installing
- Current state of development
- Deprecation warnings
- Selecting the new core
- Flash size
- CPU Speed
- Debug Port
- Debug Level
- C++ Exceptions
- Stack Protector
- RTTI
- USB Stack
- IP Stack
- Bluetooth Stack
- Selecting a different core version
- Examples
- Debugging
- Filesystem Uploading
- Pin (Re)Assignment
- RP2040 Helper
- Analog I/O
- Digital I/O
- BOOTSEL Button
- EEPROM
- I2S Audio
- PWM Audio
- Microphone (and Analog Sensor) Input
- Serial USB and UARTs
- “SoftwareSerial” PIO-based UART
- SoftwareSerial Emulation
- Servo
- SPI Master (Serial Peripheral Interface)
- SPI Slave (SPISlave)
- Examples
- Wire(I2C)
- File Systems (SD, SDFS, LittleFS)
- USB (Arduino and Adafruit_TinyUSB)
- Multicore Processing
- Bluetooth (Alpha/Beta)
- Single File USB Drive
- FreeRTOS SMP (multicore)
- WiFi (Pico-W Support)
- Ethernet (Wired)
- WiFiClient
- WiFiServer
- WiFiUDP
- NTP client
- BearSSL Encrypted TLS
- WiFiClientSecure Class
- Validating X509 Certificates (Am I talking to the server I think I’m talking to?)
- Client Certificates (Proving I’m who I say I am to the server)
- MFLN or Maximum Fragment Length Negotiation (Saving RAM)
- Sessions (Resuming connections fast)
- Errors
- Limiting Ciphers (New connections faster)
- Limiting TLS(SSL) Versions
- ESP32 Compatibility
- WiFiServerSecure (TLS/SSL/HTTPS)
- HTTP/HTTPS Client
- Over-the-Air (OTA) Updates
- Ported/Optimized Libraries
- Using Pico-SDK
- Licenses