Libraries updated to support new RP2040-based boards (RASPBERRY_PI_PICO, etc.)

You'll see in time.c that the boolean result determines whether to repeat the alarm or cancel it.

multiple libraries claim to have been updated but are not their git hub variants and have no real changes. also some of thats not even functional really. i know the arduino people have to update servers and that takes time and all but tft screen driver support is bad to say the least. adafruit ili9341 isnt its git hub version which is the only one that seems to have been updated for rp2040. you guys have a rp2040 board. the tft_espi wont compile when downloaded from arduino or the github version. its odd that bodmers stuff for adafruit works but tft_espi doesnt. same guy 1 compiles and runs the other throws a error

i think this is the result of the 2 unofficial arduino on pico attempts and people ruined their picos. mine was never subjected to that or even micropython scripts. i waited until official support came through. it is treated like a usb device when the bootsel button is pressed. it accepts sketches from arduino no extra software or steps just compile and ignore the usb device dialog and close that window. you have to press bootsel each time you want to upload a sketch it is not a 1 time thing

now that the arduino rp2040 board is out i would expect a little more action to get a good frame buffer in place for a library. people may expect to be able to run video now on larger 320 x 480 tfts. results may vary but over time the unofficial support guys will be a minority

WebSockets_Generic v2.7.0+ now supports RP2040-based boards, such as RASPBERRY_PI_PICO, ADAFRUIT_FEATHER_RP2040 and GENERIC_RP2040, using Earle Philhower's arduino-pico core v1.5.1+ as well as Arduino-mbed RP2040 v2.1.0+ core

WebSockets2_Generic v1.4.0+ now supports RP2040-based boards, such as RASPBERRY_PI_PICO, ADAFRUIT_FEATHER_RP2040 and GENERIC_RP2040, using Earle Philhower's arduino-pico core v1.5.1+ as well as Arduino-mbed RP2040 v2.1.0+ core

WiFiNINA_Generic v1.8.10+ now supports RP2040-based boards, such as Nano-RP2040-Connect, RASPBERRY_PI_PICO, ADAFRUIT_FEATHER_RP2040 and GENERIC_RP2040, using Earle Philhower's arduino-pico core v1.5.1+ or Arduino-mbed RP2040 v2.1.0+ core

WiFiWebServer v1.2.0+ now supports RP2040-based boards, such as Nano-RP2040-Connect, RASPBERRY_PI_PICO, ADAFRUIT_FEATHER_RP2040 and GENERIC_RP2040, using Earle Philhower's arduino-pico core v1.5.1+ or Arduino-mbed RP2040 v2.1.0+ core

Selection_817

1 Like
  1. DoubleResetDetector_Generic v1.3.0+
  2. MultiResetDetector_Generic v1.3.0+
  3. Ethernet_Manager v1.4.0+

now support RP2040-based boards, such as Nano-RP2040-Connect, RASPBERRY_PI_PICO, ADAFRUIT_FEATHER_RP2040 and GENERIC_RP2040, using Earle Philhower's arduino-pico core v1.6.2+ or Arduino-mbed RP2040 v2.1.0+ core

  1. WiFiManager_NINA_Lite v1.4.0+
  2. WiFiManager_Generic_Lite v1.4.0+
  3. Blynk_WiFiNINA_WM v1.1.0+
  4. ESP_AT_WiFiManager v1.3.0+
  5. ESP_AT_WM_Lite v1.4.0+
  6. SinricPro_Generic v2.8.1+

now support RP2040-based boards, such as Nano-RP2040-Connect, RASPBERRY_PI_PICO, ADAFRUIT_FEATHER_RP2040 and GENERIC_RP2040, using Earle Philhower's arduino-pico core v1.6.2+ or Arduino-mbed RP2040 v2.1.0+ core

This is a VERY useful thread, thank you @khoih-prog!

  1. Timezone_Generic v1.4.0+
  2. NTPClient_Generic v3.3.0+
  3. MySQL_MariaDB_Generic v1.1.0+
  4. UPnP_Generic v3.2.0+
  5. MDNS_Generic v1.1.0+

now support RP2040-based boards, such as Nano-RP2040-Connect, RASPBERRY_PI_PICO, ADAFRUIT_FEATHER_RP2040 and GENERIC_RP2040, using Earle Philhower's arduino-pico core v1.8.2+ or Arduino-mbed RP2040 v2.1.0+ core

MBED_RPI_PICO_TimerInterrupt has just been published to support RP2040-based boards, such as Nano-RP2040-Connect, RASPBERRY_PI_PICO, ADAFRUIT_FEATHER_RP2040 and GENERIC_RP2040, using Arduino-mbed RP2040 v2.1.0+ core.

Also check topic MBED_RPI_PICO_TimerInterrupt library in this Arduino forum.

1 Like

LittleFS_Mbed_RP2040 has just been published to support RP2040-based boards, such as Nano-RP2040-Connect, RASPBERRY_PI_PICO, ADAFRUIT_FEATHER_RP2040 and GENERIC_RP2040, using Arduino-mbed RP2040 v2.1.0+ core.

This library is just a simple LittleFS wrapper to facilitate your usage of LittleFS for the onboard flash on MBED RP2040-based boards such as Nano_RP2040_Connect, RASPBERRY_PI_PICO, using Arduino-mbed RP2040 core

Also check topic LittleFS_Mbed_RP2040 library in this Arduino forum.

RP2040_RTC has just been published to support internal RTC usage for RP2040-based boards, such as Nano-RP2040-Connect, RASPBERRY_PI_PICO, ADAFRUIT_FEATHER_RP2040 and GENERIC_RP2040, using Arduino-mbed RP2040 core or Earle Philhower's arduino-pico core.

This RP2040-based RTC, using ISR for callback function, has no battery backup. Time will be lost when powered down. Examples show how to use NTP-client to update RTC on every start-up.

1 Like
  1. TimerInterrupt_Generic v1.6.0+

now support RP2040-based boards, such as Nano-RP2040-Connect, RASPBERRY_PI_PICO, ADAFRUIT_FEATHER_RP2040 and GENERIC_RP2040, using Earle Philhower's arduino-pico core v1.8.4+ or Arduino-mbed RP2040 v2.1.0+ core

Hi @khoih-prog
Thanks for creating and updating these libraries !

I've been trying to use ESP_AT_WM_LITE with a RPI Pico and an ESP-8266_01 for several days now, but unfortunately without success so far. I'm wondering where I should ask for help: on this thread or on Github maybe ? Or should I just create a new thread ?

In case it's OK to post here, here's a short description of the problem. Else, I'm happy to create a new issue on Github with the full details and output of the serial monitor.

Right now, I have no idea wether the problem is the hardware, the pins configuration in Mbed Core or the ESP or the library. Sorry, for asking here if the library is unlikely to be the problem...

To put it briefly:

  • I managed to flash an ESP-8266-01 with an AT firmware 1.7.4 (SDK 3.0.4)
  • The ESP is connected to the serial 2 (Tx on RX, and Rx on TX) of a Raspberry Pi Pico. I adjusted the pins in pins_arduino.h
  • The ESP responds to AT and AT+GMR in the Arduino IDE monitor when connected only with its USB adapter

But when I load the RP2040 example of the library to the Pico, the response in the monitor is always.

[ESP_AT] Cannot initialize ESP module
[ESP_AT] NoESP
[ESP_AT] Full output below

Full output

Start RPi_Pico_ESP8266Shield on MBED RASPBERRY_PI_PICO

ESP_AT_WM_Lite v1.4.0

Debug Level = 4

[ESP_AT] Cannot initialize ESP module

[ESP_AT] NoESP

LittleFS size (KB) = 64

LittleFS Mount OK

LittleFS Flag read = 0xd0d04321

Flag read = 0xd0d04321

No doubleResetDetected

Saving DOUBLERESETDETECTOR_FLAG to DRD file : 0xd0d01234

Saving DRD file OK

SetFlag write = 0xd0d01234

[ESP_AT] ======= Start Default Config Data =======

[ESP_AT] Hdr=SHD_ESP8266,SSID=SSID1,PW=password1

[ESP_AT] SSID1=SSID2,PW1=password2

[ESP_AT] BName=nRF52-ESP_AT

[ESP_AT] LoadCfgFile

[ESP_AT] failed

[ESP_AT] LoadBkUpCfgFile

[ESP_AT] failed

[ESP_AT] b:StayInCfgPortal:NoCfgDat

[ESP_AT] Scanning Network

[ESP_AT] scanWifiNetworks: Done, Scanned Networks n = -1

[ESP_AT] No network found

[ESP_AT] SSID=CfgPrtl-SSID,PW=CfgPrtl-PW

[ESP_AT] IP=192.168.4.1,CH=2

Stop doubleResetDetecting

Saving to DRD file : 0xd0d04321

Saving DRD file OK

LittleFS Flag read = 0xd0d04321

ClearFlag write = 0xd0d04321

FF

And since I finally successfully updated the firmware of the ESP to 1.7.4, I noticed that it does create an AP when it's connected to the Pico (ESP-987003 is listed in the Wifi networks), but it's not the "right" SSID, the one created by the library - CfgPrtl-SSID

I hope I can make it work at some point :slight_smile:

Thanks.

Hi @nordseele

Thanks for using the library.

You have to connect ESP8266-01 to Serial port as follows:

ESP8266-01 <-> MBED RP2040

ESP8266-01 TX <-> UART0_RX = GP1
ESP8266-01 RX <-> UART0_TX = GP0

If you still have some issue, please post on ESP_AT_WM_Lite issue

I just verify that the example is working OK



Start RPi_Pico_ESP8266Shield on MBED RASPBERRY_PI_PICO
ESP_AT_WM_Lite v1.4.0
Debug Level = 4
[ESP_AT] Use ES8266-AT Command
LittleFS size (KB) = 64
LittleFS Mount OK
LittleFS Flag read = 0xd0d01234
Flag read = 0xd0d01234
doubleResetDetected
Saving to DRD file : 0xd0d04321
Saving DRD file OK
LittleFS Flag read = 0xd0d04321
ClearFlag write = 0xd0d04321
[ESP_AT] Double Reset Detected
[ESP_AT] ======= Start Default Config Data =======
[ESP_AT] Hdr=SHD_ESP8266,SSID=SSID1,PW=password1
[ESP_AT] SSID1=SSID2,PW1=password2
[ESP_AT] BName=nRF52-ESP_AT
[ESP_AT] LoadCfgFile 
[ESP_AT] failed
[ESP_AT] LoadBkUpCfgFile 
[ESP_AT] failed
[ESP_AT] b:StayInCfgPortal:DRD
[ESP_AT] Scanning Network
[ESP_AT] scanWifiNetworks: Done, Scanned Networks n = 9
[ESP_AT] Sorting
[ESP_AT] Removing Dup
[ESP_AT] DUP AP:
[ESP_AT] WiFi networks found:
[ESP_AT] 1: HueNetTek, -38dB
[ESP_AT] 2: HueNet1, -86dB
[ESP_AT] 3: house, -81dB
[ESP_AT] 4: dlink-4F96, -87dB
[ESP_AT] 5: , -83dB
[ESP_AT] 7: elef, -85dB
[ESP_AT] 8: Waterhome, -84dB
[ESP_AT] 9: TP-LINK_2.4GHz_9A67ED, -84dB
[ESP_AT] SSID=CfgPrtl-SSID,PW=CfgPrtl-PW
[ESP_AT] IP=192.168.4.1,CH=4
FFFFFFFFFF FFFFFFFFFF FFFFFFFFFF FFFFFF
1 Like

Thank you very much for your reply.
I'm using the second serial ports (gpio 8 and 9) of the Pico on a custom PCB. I've modified pins_arduino.h in consequence but that's very likely the problem. I will disconnect the ESP from its header and connect it to the GPIO 0 & 1 for a test as mentioned in your post, hopefully this will work.

Thanks again :-))

Edit: After checking the schematics again, the TX and RX have been inverted by mistake on the PCB, probably because of a wrong pinout image of the ESP found on the internet... Serial2 works thanks to the workaround found on the other thread, I've been able to test that with a passthrough script but with the TX of the Pico going to the TX of the ESP of course the ESP won't work... I'm not sure if there's a way to invert the serial pins. Too bad...

No issue at all with your library. Just tested with inverted Rx and TX using Dupont wires and the library is working really great. Just my own mistake.

Also check this topic Serial2 on Raspberry Pi Pico to know why it didn't work with your connection.

Currently, Arduino-mbed RP2040 core only provides 1 serial port. Check pins_arduino.h#L41-L61

1 Like