No description
Find a file
Earle F. Philhower, III c0276bc170
Update README.md
2021-03-21 11:57:48 -07:00
ArduinoCore-API@2af4a9c721 Initial commit, basic sanity 2021-02-24 20:31:13 -08:00
assembly Initial commit, basic sanity 2021-02-24 20:31:13 -08:00
cores/rp2040 Add missing file 2021-03-21 11:38:20 -07:00
docs Update index.md 2021-03-21 10:27:55 -07:00
lib Add library build and update via CLI 2021-03-20 12:19:38 -07:00
libraries Remove library warning in rp2040 dir 2021-03-21 11:27:37 -07:00
package Fix my name, d'oh! 2021-03-21 11:47:15 -07:00
pico-sdk@2d5789eca8 Initial commit, basic sanity 2021-02-24 20:31:13 -08:00
pico-sdk-lib Add library build and update via CLI 2021-03-20 12:19:38 -07:00
pico_base/pico Remove hardcoded path 2021-03-12 21:34:35 -08:00
system Adjust directories for cleaner use w/Arduino 2021-03-17 08:33:51 -07:00
tools Adjust directories for cleaner use w/Arduino 2021-03-17 08:33:51 -07:00
variants Add EEPROM library, using last flash sector 2021-03-12 19:38:14 -08:00
.gitmodules Adjust directories for cleaner use w/Arduino 2021-03-17 08:33:51 -07:00
boards.txt Initial debugging framework 2021-03-17 10:54:13 -07:00
LICENSE Create LICENSE 2021-03-02 17:56:36 -08:00
package.json Add package.json and tools listing 2021-02-24 21:34:29 -08:00
platform.txt Clean up unused platform.txt 2021-03-21 10:37:39 -07:00
programmers.txt Initial commit, basic sanity 2021-02-24 20:31:13 -08:00
README.md Update README.md 2021-03-21 11:57:48 -07:00

Arduino-Pico

Raspberry Pi Pico Arduino core, for all RP2040 boards

This is a port of the RP2040 (Raspberry Pi Pico processor) to the Arduino ecosystem.

It uses a custom toolset with GCC 10.2 and Newlib 4.0.0, not depending on system-installed prerequisites. https://github.com/earlephilhower/pico-quick-toolchain

There is automated discovery of boards in bootloader mode, so they show up in the IDE, and the upload command works using the Microsoft UF2 tool (included).

Installing via Arduino Boards Manager

Open up the Arduino IDE and go to File->Preferences.

In the dialog that pops up, enter the following URL in the "Additional Boards Manager URLs" field:

https://github.com/earlephilhower/arduino-pico/releases/download/0.9.0/package_rp2040_index.json

image

Hit OK to close the dialog.

Go to Tools->Boards->Board Manager in the IDE

Type "pico" in the search box and select "Add":

image

Installing via GIT

To install via GIT (for latest and greatest versions):

mkdir -p ~/Arduino/hardware/pico
git clone https://github.com/earlephilhower/arduino-pico.git ~/Arduino/hardware/pico/rp2040
cd ~/Arduino/hardware/pico/rp2040
git submodule init
git submodule update
cd pico-sdk
git submodule init
git submodule update
cd ../tools
python3 ./get.py

Status of Port

Lots of things are working now!

  • digitalWrite/Read (basic sanity tested)
  • shiftIn/Out (tested using Nokia5110 https://github.com/ionpan/Nokia5110)
  • SPI (tested using SdFat 2.0 https://github.com/greiman/SdFat ... note that the Pico voltage regulator can't reliably supply enough power for a SD Card so use external power, and adjust the USE_SIMPLE_LITTLE_ENDIAN define in src/sdfat.h to 0)
  • analogWrite/PWM (tested using Fade.ino)
  • tone/noTone (using IRQ generated waveform)
  • Wire/I2C (tested using DS3231 https://github.com/rodan/ds3231)
  • EEPROM (tested examples)
  • USB Serial(ACM) w/automatic reboot-to-UF2 upload)
  • Hardware UART
  • Servo (basic waveform testing, disables/re-enables without any short pulses)

The RP2040 PIO state machines (SMs) are used to generate jitter-free:

  • Servos
  • Tones

Contributing

If you want to contribute or have bugfixes, drop me a note at earlephilhower@yahoo.com or open an issue/PR here.

-Earle F. Philhower, III earlephilhower@yahoo.com