Rp2040 arduino ide

Установка поддержки Rasbperry Pi Pico в Arduino IDE

Общие сведения

В этой статье мы объясним как установить поддержку плат Raspberry Pi Pico в Arduino IDE.

Для установки поддержки этих плат достаточно выполнить несколько простых шагов. Перед их выполнением убедитесь, что на ПК на котором они выполняются есть подключение к сети Интернет и доступ к нему для Arduino IDE не заблокирован в Брендмауре Windows.

1 — Откройте менеджер плат Arduino IDE

Выберете пункт меню «Инструметы» -> «Плата:» -> «Менеджер плат. «

2 — Найдите плату в списке

Введите rp2040 в поле поиска

3 — Установите поддержку плат

Найдите строку Arduino Mbed OS RP2040 Boards и нажмите «Установить»

Начнётся установка. Если появится диалоговое окно «Контроль учётных записей», нажмите «Да».

Если появятся окна «Безопасность Windows» с установкой USB устройств, нажмите «Установить»

4 — проверка

Если Вы ещё не подключили плату к ПК, подключите её зажав кнопку «BOOTSEL» на плате.

Выберете пункт меню «Инструменты» -> «Плата:» -> «Arduino Mbed OS RP2040 Boards» -> «Rasbperry Pi Pico»

Начнётся настройка устройства

После завершения настройки в меню «Инструменты» -> «Порт» должен появится новый COM порт. Выберете его.

Загрузите проверочный скетч в плату (например Blink)

5 — устранение неполадок (Нет COM порта в списке)

Если Вы уже использовали плату с MicroPython и после этого сбрасывали на заводские настройки при помощи flash_nuke.uf2 файла, то после подключения к ПК в Arduino IDE порт платы может быть не виден, но при этом внизу окна Arduino IDE будет показан COM порт отсутствующий в списке.

Просто нажмите «Загрузить скетч» не выбирая никаких портов и после загрузки скетча и перезагрузки платы появится новый порт в списке.

Если внизу окна Arduino IDE нет порта не из списка портов или в меню порт уже выбран какой-либо порт, то:

  • Зажмите кнопку «BOOTSEL» на плате при подключении к ПК. Плата определится как флеш карта.
  • Скопируйте на неё вот этот файл. Дождитесь перезагрузки микроконтроллера.
  • В меню «Инструменты» -> «Порт» появится новый порт. Выберете его и загрузите в плату любой скетч, выбрав при этом Raspberry Pi Pico в меню плат.
  • После загрузки скетча плата определится как Raspberry Pi Pico.

Сброс на заводские настройки

Не важно, что вы загружали в плату, её всегда можно перезагрузить в режиме флеш-карты и сбросить на заводские настройки. Для этого:

Источник

earlephilhower/arduino-pico

Use Git or checkout with SVN using the web URL.

Work fast with our official CLI. Learn more.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

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 the bare Raspberry Pi Pico SDK and a custom GCC 10.3/Newlib 4.0 toolchain.

See https://arduino-pico.readthedocs.io/en/latest/ along with the examples for more detailed usage information.

  • Raspberry Pi Pico
  • Raspberry Pi Pico W
  • Adafruit Feather RP2040
  • Adafruit ItsyBitsy RP2040
  • Adafruit KB2040
  • Adafruit Macropad RP2040
  • Adafruit QTPy RP2040
  • Adafruit STEMMA Friend RP2040
  • Adafruit Trinkey RP2040 QT
  • Arduino Nano RP2040 Connect
  • Cytron Maker Pi RP2040
  • Cytron Maker Nano RP2040
  • DeRuiLab FlyBoard2040 Core
  • DFRobot Beetle RP2040
  • ElectronicCats Hunter Cat NFC
  • ExtremeElectronics RC2040
  • Invector Labs Challenger RP2040 WiFi
  • Invector Labs Challenger RP2040 WiFi/BLE
  • Invector Labs Challenger NB RP2040 WiFi
  • Invector Labs Challenger RP2040 LTE
  • Invector Labs Challenger RP2040 LoRa
  • Invector Labs Challenger RP2040 SubGHz
  • Invector Labs Challenger RP2040 SD/RTC
  • Invector Labs RPICO32
  • Melopero Cookie RP2040
  • Melopero Shake RP2040
  • Seeed XIAO RP2040
  • Solder Party RP2040 Stamp
  • SparkFun ProMicro RP2040
  • SparkFun Thing Plus RP2040
  • uPesy RP2040 DevKit
  • WIZnet W5100S-EVB-Pico
  • WIZnet W5500-EVB-Pico
  • WIZnet WizFi360-EVB-Pico
  • Generic (configurable flash, I/O pins)

Installing via Arduino Boards Manager

Windows Users: Please do not use the Windows Store version of the actual Arduino application because it has issues detecting attached Pico boards. Use the «Windows ZIP» or plain «Windows» executable (EXE) download direct from https://arduino.cc. and allow it to install any device drivers it suggests. Otherwise the Pico board may not be detected. Also, if trying out the 2.0 beta Arduino please install the release 1.8 version beforehand to ensure needed device drivers are present. (See #20 for more details.)

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:

Hit OK to close the dialog.

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

Type «pico» in the search box and select «Add»:

Installing via GIT

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

Installing both Arduino and CMake

Tom’s Hardware presented a very nice writeup on installing arduino-pico on both Windows and Linux, available at https://www.tomshardware.com/how-to/program-raspberry-pi-pico-with-arduino-ide

If you follow Les’ step-by-step you will also have a fully functional CMake -based environment to build Pico apps on if you outgrow the Arduino ecosystem.

To upload your first sketch, you will need to hold the BOOTSEL button down while plugging in the Pico to your computer. Then hit the upload button and the sketch should be transferred and start to run.

After the first upload, this should not be necessary as the arduino-pico core has auto-reset support. Select the appropriate serial port shown in the Arduino Tools->Port->Serial Port menu once (this setting will stick and does not need to be touched for multiple uploads). This selection allows the auto-reset tool to identify the proper device to reset. Them hit the upload button and your sketch should upload and run.

In some cases the Pico will encounter a hard hang and its USB port will not respond to the auto-reset request. Should this happen, just follow the initial procedure of holding the BOOTSEL button down while plugging in the Pico to enter the ROM bootloader.

Uploading Filesystem Images

The onboard flash filesystem for the Pico, LittleFS, lets you upload a filesystem image from the sketch directory for your sketch to use. Download the needed plugin from

To install, follow the directions in

For detailed usage information, please check the ESP8266 repo documentation (ignore SPIFFS related notes) available at

Uploading Sketches with Picoprobe

If you have built a Raspberry Pi Picoprobe, you can use OpenOCD to handle your sketch uploads and for debugging with GDB.

Under Windows a local admin user should be able to access the Picoprobe port automatically, but under Linux udev must be told about the device and to allow normal users access.

To set up user-level access to Picoprobes on Ubuntu (and other OSes which use udev ):

The first line creates a file with the USB vendor and ID of the Picoprobe and tells UDEV to give users full access to it. The second causes udev to load this new rule. Note that you will need to unplug and re-plug in your device the first time you create this file, to allow udev to make the device node properly.

Once Picoprobe permissions are set up properly, then select the board «Raspberry Pi Pico (Picoprobe)» in the Tools menu and upload as normal.

Uploading Sketches with pico-debug

pico-debug differs from Picoprobe in that pico-debug is a virtual debug pod that runs side-by-side on the same RP2040 that you run your code on; so, you only need one RP2040 board instead of two. pico-debug also differs from Picoprobe in that pico-debug is standards-based; it uses the CMSIS-DAP protocol, which means even software not specially written for the Raspberry Pi Pico can support it. pico-debug uses OpenOCD to handle your sketch uploads, and debugging can be accomplished with CMSIS-DAP capable debuggers including GDB.

Under Windows and macOS, any user should be able to access pico-debug automatically, but under Linux udev must be told about the device and to allow normal users access.

To set up user-level access to all CMSIS-DAP adapters on Ubuntu (and other OSes which use udev ):

The first line creates a file that recognizes all CMSIS-DAP adapters and tells UDEV to give users full access to it. The second causes udev to load this new rule. Note that you will need to unplug and re-plug in your device the first time you create this file, to allow udev to make the device node properly.

Once CMSIS-DAP permissions are set up properly, then select the board «Raspberry Pi Pico (pico-debug)» in the Tools menu.

When first connecting the USB port to your PC, you must copy pico-debug-gimmecache.uf2 to the Pi Pico to load pico-debug into RAM; after this, upload as normal.

Debugging with Picoprobe/pico-debug, OpenOCD, and GDB

The installed tools include a version of OpenOCD (in the pqt-openocd directory) and GDB (in the pqt-gcc directory). These may be used to run GDB in an interactive window as documented in the Pico Getting Started manuals from the Raspberry Pi Foundation. For pico-debug, replace the raspberrypi-swd and picoprobe example OpenOCD arguments of «-f interface/raspberrypi-swd.cfg -f target/rp2040.cfg» or «-f interface/picoprobe.cfg -f target/rp2040.cfg» respectively in the Pico Getting Started manual with «-f board/pico-debug.cfg».

  • Adafruit TinyUSB Arduino (USB mouse, keyboard, flash drive, generic HID, CDC Serial, MIDI, WebUSB, others)
  • Generic Arduino USB Serial, Keyboard, and Mouse emulation
  • WiFi (Pico W)
  • HTTP client and server (WebServer)
  • SSL/TLS/HTTPS
  • Over-the-Air (OTA) upgrades
  • Filesystems (LittleFS and SD/SDFS)
  • Multicore support (setup1() and loop1())
  • FreeRTOS SMP support
  • Overclocking and underclocking from the menus
  • digitalWrite/Read, shiftIn/Out, tone, analogWrite(PWM)/Read, temperature
  • Peripherals: SPI master, Wire(I2C) master/slave, dual UART, emulated EEPROM, I2S audio input, I2S audio output, Servo
  • printf (i.e. debug) output over USB serial

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

  • Servos
  • Tones
  • I2S Input
  • I2S Output
  • Software UARTs (Serial ports)

Tutorials from Across the Web

Here are some links to coverage and additional tutorials for using arduino-pico

  • The File:: class is taken from the ESP8266. See https://arduino-esp8266.readthedocs.io/en/latest/filesystem.html
  • Arduino Support for the Pi Pico available! And how fast is the Pico? — https://youtu.be/-XHh17cuH5E
  • Pre-release Adafruit QT Py RP2040 — https://www.youtube.com/watch?v=sfC1msqXX0I
  • Adafruit Feather RP2040 running LCD + TMP117 — https://www.youtube.com/watch?v=fKDeqZiIwHg
  • Demonstration of Servos and I2C in Korean — https://cafe.naver.com/arduinoshield/1201
  • Home Assistant Pico W integration starter project using Arduino — https://github.com/daniloc/PicoW_HomeAssistant_Starter

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

Licensing and Credits

  • The Arduino IDE and ArduinoCore-API are developed and maintained by the Arduino team. The IDE is licensed under GPL.
  • The RP2040 GCC-based toolchain is licensed under under the GPL.
  • The Pico-SDK is by Raspberry Pi (Trading) Ltd and licensed under the BSD 3-Clause license.
  • Arduino-Pico core files are licensed under the LGPL.
  • LittleFS library written by ARM Limited and released under the BSD 3-clause license.
  • UF2CONV.PY is by Microsoft Corporation and licensed under the MIT license.
  • Networking and filesystem code taken from the ESP8266 Arduino Core and licensed under the LGPL.
  • DHCP server for AP host mode from the Micropython Project, distributed under the MIT License.
  • FreeRTOS is Copyright Amazon.com, Inc. or its affiliates, and distributed under the MIT license.
  • lwIP is (c) the Swedish Institute of Computer Science and licenced under the BSD license.
  • BearSSL library written by Thomas Pornin, is distributed under the MIT License.
  • UZLib is copyright (c) 2003 Joergen Ibsen and distributed under the zlib license.
  • LEAmDNS is copyright multiple authors and distributed under the MIT license.
  • http-parser is copyright Joyent, Inc. and other Node contributors.
  • WebServer code modified from the ESP32 WebServer and is copyright (c) 2015 Ivan Grokhotkov and others

About

Raspberry Pi Pico Arduino core, for all RP2040 boards

Источник

Adblock
detector