# earlephilhower/arduino-pico

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/earlephilhower-arduino-pico).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

2,812 stars · 560 forks · C · LGPL-2.1

## Links

- GitHub: https://github.com/earlephilhower/arduino-pico
- awesome-repositories: https://awesome-repositories.com/repository/earlephilhower-arduino-pico.md

## Topics

`a2dp` `arduino` `arduino-pico` `ble` `bluetooth` `freertos` `pi` `pico` `pico2` `picow` `raspberry` `raspberry-pi` `risc-v` `riscv` `rp2040` `rp2350` `smp` `wifi`

## Description

This project provides a development framework that enables programming Raspberry Pi Pico microcontrollers using the Arduino environment and standard C++ libraries. It serves as a unified platform for compiling, debugging, and deploying firmware to diverse hardware boards based on the RP2040 and RP2350 architectures.

The framework distinguishes itself through native support for symmetric multicore execution, allowing developers to distribute independent tasks across multiple processor cores to manage complex workloads. It also includes a specialized library for USB peripheral emulation, enabling microcontrollers to function as standard devices such as keyboards, mice, or storage drives.

The platform covers a broad range of embedded capabilities, including persistent flash-based filesystem management, network connectivity for data exchange, and programmable input and output subsystems for precise signal timing. It also provides utilities for in-circuit debugging, remote firmware updates, and audio processing optimization.

The framework is distributed as a collection of compilers and build utilities that integrate directly into the Arduino development environment to manage hardware configurations and firmware deployment.

## Tags

### Education & Learning Resources

- [Microcontroller Development Platforms](https://awesome-repositories.com/f/education-learning-resources/educational-resources/systems-applied-computing/infrastructure-architecture/embedded-systems/microcontroller-development-platforms.md) — Provides a unified development platform for writing and deploying firmware to RP2040 and RP2350 microcontrollers.

### Networking & Communication

- [Hardware Cores](https://awesome-repositories.com/f/networking-communication/networking-libraries/arduino/hardware-cores.md) — Provides the hardware core and development environment for programming microcontrollers using standard C++ libraries.
- [Network Connections](https://awesome-repositories.com/f/networking-communication/network-connections.md) — Provides tools for establishing and managing network connections for data exchange. ([source](https://github.com/earlephilhower/arduino-pico/blob/master/README.md))

### Development Tools & Productivity

- [Build Automation Systems](https://awesome-repositories.com/f/development-tools-productivity/build-automation-systems.md) — Provides tools to compile foundational software components and bootloader binaries from source code. ([source](https://github.com/earlephilhower/arduino-pico/tree/master/tools))
- [Embedded Hardware Cross-Compilation](https://awesome-repositories.com/f/development-tools-productivity/cross-compilation-toolchains/embedded-hardware-cross-compilation.md) — Configures build toolchains to compile source code into executable binaries for specific embedded hardware architectures.
- [Board Support Packages](https://awesome-repositories.com/f/development-tools-productivity/project-management-boards/board-support-packages.md) — Provides a unified development environment for a wide range of official and third-party microcontroller boards. ([source](https://github.com/earlephilhower/arduino-pico/blob/master/README.md))

### Hardware & IoT

- [Firmware Deployment Tools](https://awesome-repositories.com/f/hardware-iot/firmware-deployment-tools.md) — Transfers generated firmware images to the microcontroller and triggers system resets for deployment. ([source](https://github.com/earlephilhower/arduino-pico/tree/master/tools))
- [Programmable Input Output State Machines](https://awesome-repositories.com/f/hardware-iot/hardware-signal-emulation/web-to-hardware-signal-translation/programmable-input-output-state-machines.md) — Translates high-level state machine definitions into low-level instructions for programmable input and output subsystems to manage precise signal timing.
- [Multicore Processing](https://awesome-repositories.com/f/hardware-iot/microcontroller-sdks/multicore-processing.md) — Supports symmetric multicore execution to distribute independent tasks across multiple processor cores.
- [Embedded Wireless Connectivity](https://awesome-repositories.com/f/hardware-iot/embedded-wireless-connectivity.md) — Establishes secure wireless or wired network links for data exchange between microcontrollers and remote services.
- [Firmware OTA Update Systems](https://awesome-repositories.com/f/hardware-iot/firmware-management/remote-firmware-updaters/firmware-ota-update-systems.md) — Provides mechanisms for deploying firmware binaries to remote devices with power-failure protection. ([source](https://github.com/earlephilhower/arduino-pico/tree/master/ota))
- [Hardware Debugging](https://awesome-repositories.com/f/hardware-iot/hardware-debugging.md) — Facilitates interactive code debugging and firmware uploading using external hardware probes. ([source](https://github.com/earlephilhower/arduino-pico#readme))
- [Microcontroller Firmware Frameworks](https://awesome-repositories.com/f/hardware-iot/microcontroller-firmware-frameworks.md) — Allows developers to define clock speeds, memory layouts, and peripheral settings for specific hardware boards. ([source](https://github.com/earlephilhower/arduino-pico/blob/master/boards.txt))
- [Standard USB Device Emulations](https://awesome-repositories.com/f/hardware-iot/usb-device-communication/usb-device-stacks/standard-usb-device-emulations.md) — Enables the device to emulate standard USB peripherals like keyboards, mice, and storage drives. ([source](https://github.com/earlephilhower/arduino-pico#readme))

### Programming Languages & Runtimes

- [Cross Compilation Toolchains](https://awesome-repositories.com/f/programming-languages-runtimes/cross-compilation-toolchains.md) — Enables cross-compilation of source code into machine-specific binaries for diverse microcontroller architectures.

### Data & Databases

- [SPI Flash Filesystems](https://awesome-repositories.com/f/data-databases/data-access-querying/memory-mapped-file-access/flash-memory-access/flash-storage-managers/spi-flash-filesystems.md) — Implements flash-based filesystem management for persistent data storage on the device. ([source](https://github.com/earlephilhower/arduino-pico#readme))

### Operating Systems & Systems Programming

- [Hardware Abstraction Layers](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-interfacing-drivers/hardware-abstraction-layers.md) — Provides a unified interface that translates standard programming commands into specific register operations for diverse hardware.
- [Hardware Debugging Protocols](https://awesome-repositories.com/f/operating-systems-systems-programming/remote-debugging-protocols/hardware-debugging-protocols.md) — Facilitates interactive code inspection and firmware uploading via standard diagnostic interfaces and hardware probes.
