Lv_micropython on RP2040-Touch-LCD-1.28

Hi everyone,

i’m trying to run lv_micropython on Waveshare RP2040-Touch-LCD-1.28. There’s not a port for this board, so i compiled lv_micropython for the PICO board. It compiles fine and i uploaded the UF2 firmware on the board, but it seems not to start, probably because, despite they both use the RP2040, they’re actually not the same board… Is there any way to use the lv_micropython on this board?

Thank you very much in advance for the replies

1 Like

After months of search and attempts, i’m still unable to understand the issue… once i uploaded the firmware.uf2, i get these errors (sudo dmesg; i’m under Fedora 40):

[26682.008822] usb 1-2: new full-speed USB device number 109 using xhci_hcd
[26697.495806] usb 1-2: device descriptor read/64, error -110
[26713.368880] usb 1-2: device descriptor read/64, error -110
[26713.591794] usb 1-2: new full-speed USB device number 110 using xhci_hcd
[26729.239835] usb 1-2: device descriptor read/64, error -110
[26745.111818] usb 1-2: device descriptor read/64, error -110
[26745.213966] usb usb1-port2: attempt power cycle
[26745.594028] usb 1-2: new full-speed USB device number 111 using xhci_hcd
[26750.629867] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[26756.261808] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[26756.469783] usb 1-2: device not accepting address 111, error -62
[26756.469886] usb 1-2: WARN: invalid context state for evaluate context command.
[26756.584068] usb 1-2: new full-speed USB device number 112 using xhci_hcd
[26761.893967] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[26767.525988] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[26767.733862] usb 1-2: device not accepting address 112, error -62
[26767.733962] usb 1-2: WARN: invalid context state for evaluate context command.
[26767.734067] usb usb1-port2: unable to enumerate USB device

Any suggestions on how i could get rid of this?

Thank you :slight_smile:

It´s likely an hardware problem. From dirty USB port (got kids?), to faulty ESD diode on a USB port, another USB device that is not working well, crappy cable…

  • First eliminate the cable possibility: get a good cable that you know works flawlessly with USB3.x and TEST IT (transfer data from/to an USB drive for example)

  • port problem: your log show xhci → this is the USB3.x controller. Maybe you have some USB2.0 ports ? try those. And make sure you have no other USB device attached (if possible)

  • Is it the same problem with another computer, on any port, and with a known good cable ? Then your RP2 board is faulty.

  • Not? then it´s your computer or its OS or its UEFI BIOS. I´d say: factory reset of UEFI BIOS, boot from a live (linux whatever) CD, and try if the error is still there. If the problem persist, your computer is faulty, if not, something is wrong with your OS (kernel, udev rules …)

oh, still no kids… :slight_smile:

Ok, i could exclude hardware. Other USB devices i have work good on this and other PCs, and the issue occurs only with the lv_micropython firmware; i followed the instructions on the lv_micropython github repository for compiling and, next, i loaded the firmware.uf2 via the “BOOTSEL procedure”.

Other firmwares run fine (the official micropython firmware and the demo firmwares shipped with the board); so, i suspect that lv_micropython enters some kind of boot loop, but i’m unable to identify the reason…

Thank you for the reply and the help. It helps brainstorming too :slight_smile:

Just got my RP2350-Touch-LCD-1.28 and LVGL would be a great advantage if it works on this device. The .UF2 provided by Waveshare gets me up and running with Micropython on this device. However, I wouldn’t know where to start with LVGL. It says it needs a driver, and I don’t know how to check if there is one. Assuming there isn’t, based on this thread, what’s involved in creating one? Waveshare provide a basic driver with the device and I wonder if that could be modified to suit LVGL?

1 Like