harbaum / ftDuino-controller

Firmware for the ftDuino controller
11 stars 3 forks source link

Init_gui_SDL : for test on PC desktop ? #1

Open picpic020960 opened 3 years ago

picpic020960 commented 3 years ago

Bonjour , i see in the python source , that the GUI try to connect to SDL then to ESP32. It's for PC desktop test , one window shell/SDL and the other with web navigator ? ( With lv_micropython for Linux compiled , of course )

[I have ESP32 with no PSRAM. :-( ]

edit : wifi.json example file please , for get-starting

harbaum commented 3 years ago

The SDL port is for quick testing of the GUI on a PC. It doesn't provide the web interface and cannot be used to test that.

The wifi.json is generated using the GUI. It contains the WiFi SSIDs and credentials. It doesn't make sense to share it (unless you want to dial into my WiFi)

picpic020960 commented 3 years ago

Bonjour , it's only for debugging. ili9468 and not ili9341 so no GUI I have some issues with wifi you can mask your ssid and password bus the dico python structure is not clear thanks

PS: i wish adapt ftDuino32 for twatch-2020 lilygo

PS2 : I will ask you more questions soon

harbaum commented 3 years ago

This is just a json witha dict of WiFi SSIDs and keys. It can optionally contain a name which will be used for DHCP and MDNS and finally "last" keeps track of the last SSID you were connected to and to which the device will automatically try to connect on the next boot.

This is how the file contents may look like:

{"keys": {"MySSID": "MyKey"}, "name": "MyTestDevice", "last": "MySSID"}

picpic020960 commented 3 years ago

Bonjour Harbaum , so lvgl driver run fine on twatch with ftDuino32. wifi connected , test apps OK. tried to connect with navigator ... some issues : some times :

ELF file SHA256: 0000000000000000

Backtrace: 0x400961fc:0x3ffe1880 0x40096621:0x3ffe18a0 0x40090cdc:0x3ffe18c0 0x4015df87:0x3ffe1900 0x401c2ccb:0x3ffe1920 0x401c3488:0x3ffe1960 0x401c3a3e:0x3ffe1a10 0x401c1c34:0x3ffe1a30 0x40090fad:0x3ffe1a90

Rebooting... ets Jun 8 2016 00:22:57 `

`http_server: init Webserver error: Cannot set field is_websocket on struct httpd_uri_t! callback {'y': 22, 'x': 53} callback {'y': 22, 'x': 53} callback {'y': 22, 'x': 53} callback {'y': 22, 'x': 53} Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled. Core 1 register dump: PC : 0x40090cc5 PS : 0x00060030 A0 : 0x8015df8a A1 : 0x3ffe18c0
A2 : 0x00ba4000 A3 : 0x00000000 A4 : 0xffffffff A5 : 0x00000000
A6 : 0x00000000 A7 : 0x3ffde060 A8 : 0x00000001 A9 : 0x3ffe18b0
A10 : 0x00000000 A11 : 0x3ffdf820 A12 : 0x000005a8 A13 : 0x3f4617d8
A14 : 0x00ff0000 A15 : 0xff000000 SAR : 0x00000019 EXCCAUSE: 0x0000001c
EXCVADDR: 0x00ba4040 LBEG : 0x40095a1d LEND : 0x40095a2d LCOUNT : 0xffffffff

ELF file SHA256: 0000000000000000

Backtrace: 0x40090cc2:0x3ffe18c0 0x4015df87:0x3ffe1900 0x401c2ccb:0x3ffe1920 0x401c3488:0x3ffe1960 0x401c3a3e:0x3ffe1a10 0x401c1c34:0x3ffe1a30 0x40090fad:0x3ffe1a90

Rebooting... ets Jun 8 2016 00:22:57`

nmap 192.168.1.41

Starting Nmap 7.01 ( https://nmap.org ) at 2021-06-05 09:40 CEST Nmap scan report for espressif (192.168.1.41) Host is up (0.069s latency). Not shown: 999 closed ports PORT STATE SERVICE 80/tcp open http

Nmap done: 1 IP address (1 host up) scanned in 10.38 seconds NB : patchs made how to for debug ? thanks for help

index

harbaum commented 3 years ago

The espidf you are using is pretty old and does not include websocket support. Please apply esp-idf.patch to the esp idf you are using.

Also the colors are inverted. What kind of display are you using? Try removing the line "self.disp.send_cmd(0x21);" from gui.py

picpic020960 commented 3 years ago

OK for inverted colors.

is wifi.json on sd card ? like as firmware not found file

"The espidf you are using is pretty old and does not include websocket support. Please apply esp-idf.patch to the esp idf you are using." for the espidf , I have apply all the steps with no errors message , and espidf & lv_micropython are big/heavy machines ! and "This build has only been tested under Linux. These instuctions may be outdated as MicroPython and LVGL are being developed rather quickly." not easy for hoobyst

maybe lv_micropython.bin with esp-idf websocket support will best (no patch to apply , no version issues)

Thank's for help

harbaum commented 3 years ago

Wifi.json is in ESP flash file system.

You cannot use the prebuilt firmware from the official Micropython distribution as it does not include Websockets support.

Alternately check the release on GitHub. It includes a zip and a windows Installer that will do everything out of the box.

picpic020960 commented 3 years ago

OK I will try but micropython source always accessible ? (for st7789/ft6x36 twatch driver) question : exists websocket in [lv_]micropython . Not compatible ? (sorry it's client , not server)

edit : installer OK for linux ? (I see windows , windows ... windows )

edit2 : install pyqt5 and pyqt5-plugins via pip , then : make ./ftduino32_installer.py qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. ...

after googled ... it's not easy ...

:thinking:

maybe you can share your lv_micropython websocket bin in repo ...

harbaum commented 3 years ago

The installer was written under Linux and just works if you install the dependencies. Installing pyqt under Linux is rather simple. The installer was written for Windows users as they usually have more trouble running Python command line applications. But the Linux setup is easier to use and thus most people won't need the graphical installer there, anyway.

I don't understand your question about Websockets. If you want to use something else, then feel free to do so.

The firmware binary is in the repo in the ftduino32_firmware.zip as part of the releases. Isn't this working for you?

picpic020960 commented 3 years ago

a clarification: in the firmware.bin zip it is indeed micropython with websocket espidf only, ftDuino32 being next to the source. (in the ftDuino32 'firmware' repository is a directory which includes all the sources hence my confusion) for Qt I give up, because of my company PC i try all this tomorrow

thanks again

harbaum commented 3 years ago

There is a ftduiono32_firmware.zip in both of the two releases of this repository. Together with the windows exe of the installer. Inside that zip is the firmware.bin. Do you use the generic Esp32 Micropyrhon firmware? Or one built for the watch? If you need a special one incl. hardware support for the warch then you need to recompile that with the patches I provide in the repository.

picpic020960 commented 3 years ago

"Do you use the generic Esp32 Micropython firmware?" yes

harbaum commented 3 years ago

So why don't you use the binary one from the released zip then?

picpic020960 commented 3 years ago

Bonjour Harbaum ,

bin loaded then firmware = worls fine wifi.json is OK now issues with navigator :

File error: [Errno 2] ENOENT

and the log below :

one idea ? Thank's

edit : OK , no html pages in the watch ... now it's better but 'live view' display the Main screen then frozen when watch touch log below

Trying last network freebot ... g.run loop http_server: init sending file: /html/index.html sending file: /html/picnic.min.css sending file: /html/style.css sending file: /html/common.js sending file: /html/liveview.js sending file: /html/zlib_and_gzip.min.js Files: /apps/ sending file: /html/cm.html sending file: /html/picnic.min.css sending file: /html/cm/codemirror.min.js sending file: /html/style.css sending file: /html/common.js sending file: /html/cm/codemirror.css sending file: /html/cm/python.js Files: /apps/Chart_Demo.py receiving 4516 Writing file /apps/Chart_Demo.py KeyError: handler_cb

or

http_server: init sending file: /html/index.html sending file: /html/picnic.min.css sending file: /html/zlib_and_gzip.min.js sending file: /html/style.css sending file: /html/common.js Scheduling failed ...

harbaum commented 3 years ago

It sais you did not install the html files. Did you?

harbaum commented 3 years ago

Ah, ok. Finally you did.

So now it's crashing when you touch the touchscreen? Is this a xpt2046 touch controller? Or do you change something to use a different touch?

picpic020960 commented 3 years ago

python is ok in ftduino32 navigator all is ok on the watckh (st7789 and ft6x36 pure python driver) , tab ok , apps ok on navigator , tab not respond in live view ... KeyError: handler_cb come from websocket patch zone how to debug ?

edit : on 'live view' the mouse pointer 'handful' over top right cross but 'arrow' over main/wifi/apps tabs when I click on this tabs , KeyError: handler_cb and the watch reboot

harbaum commented 3 years ago

Are you using the mp scheduler? Try asyncio as suggested in this thread:

https://forum.lvgl.io/t/olvgl-using-asyncio/4370

picpic020960 commented 3 years ago

on the watch it's only ftDuino32 loaded. gui.py was updated as readme.md with pure python driver for st7789(tft) ans ft3x36(touch). axp202 is actived as watch hardware. no other update , I think (what's "mp scheduler" ?)

harbaum commented 3 years ago

mp_scheduler is the Micropyrhon scheduler

picpic020960 commented 3 years ago

other issue Running with llvgl Chart_Test Task exception wasn't retrieved future: < Task > coro= < Task > Traceback (most recent call last): File "uasyncio/core.py", line 1, in run_until_complete File "async_utils.py", line 29, in refresh File "llvgl.py", line 401, in File "llvgl.py", line 394, in on_timer File "apps/Chart_Test.py", line 23, in __llvgl_task0 TypeError: unsupported types for truediv _ : 'NoneType', 'int'

maybe I mixed two versions ...

picpic020960 commented 3 years ago

maybe the watch screen is two small (240 x 240) so the mirroring is not good / troncated , the tab click KO and the process facing wall

Line_Demo.py works fine on the watch without live view codeblocks works also on navigator

picpic020960 commented 3 years ago

Bonjour , always facing KeyError: handler_cb * issue many try , no results !

MicroPython v1.14-457-g3bf6c7f12-dirty on 2021-05-21; ESP32 module (spiram) with ESP32 Type "help()" for more information.

some help or tracks well become

Thank's and regard

(*) just after the begin of liveview , the ESP32 screen is displayed on the PC 'KeyError: handler_cb' and liveview is KO the others choices work fine... but is liveview the high interest !

edit : try firmware out of the box without updated driver = no display at watch (normal) but liveview work ...slowly so my problem is on updated drivers . but this work fine with ftDuino32 ...without liveview = not easy to right !