RepPanel - A DIY alternative to the PanelDue with WiFi support
-
@seeul8er said in RepPanel - A DIY alternative to the PanelDue with WiFi support:
You would need an additional microcontroller to translate the commands as far as I understood
Since you have an ESP32, it can send the command to the Nextion via a serial port. The commands are simple text such as field.val="123", and the field itself is designed with a GUI editor they provide.
What you are doing very good. However if you find yourself spending too much time on implementing the GUI that you want, switching to Nextion will speed up the process and will lower the hassle factor of adding new features. That was at least the case with one of my recent projects.
Anyway, I like your project very much.
-
@zapta I totally agree. That option was my favourite for a while. It can get the job done very quickly. However, I also do these projects to up my skills on a specific subject and I do not like to be constrained a lot when it comes to choosing my tools. The UIs produced by the more affordable nextion displays look kind of shitty in my opinion. Maybe due to a reduced feature/cpu power set.
The project is already in a released state and I am using it for my prints so the hard work is done
-
@seeul8er said in RepPanel - A DIY alternative to the PanelDue with WiFi support:
The project is already in a released state...
That's what count
I see that you use the lvgl library, I will check it out for my projects.
-
@seeul8er said in RepPanel - A DIY alternative to the PanelDue with WiFi support:
But they tend to be lower in quality - breaking a lot more often.
empirical data? genuinely curious if really inferior or if lending temselves to protptyping and rapid development just means they see more and harder use? waiting for my first one to try out with zapta's stepper analyzer and will perhaps borrow it for other one-off type projects.
-
@bearer said in RepPanel - A DIY alternative to the PanelDue with WiFi support:
empirical data?
I have a 3.5" and I don't see why it should be less reliable than similar TFT screens.
BTW, one cool feature of the Nextion is the ability to run the MCU code against a simulator on your computer, via serial over USB. A little bit tricky but doable. This is how I took the screenshots for the documentation.
However, the lvgl library is intriguing. I plan to play with it and see how easy it is to design and use GUIs. One thing I would like to try one day is a battery operated Duet monitor with ePaper display for a long battery life, maybe even with a small indoor solar panel.
-
@seeul8er Thanks for your help. Display is now working, the invert was on and now it's off.
Now struggling with the touch, it's an XPT2046 capcitive touch, I'm getting feedback on the monitor so at least the interrupt is wired correctly but no co-ordinates.
Looking through some LVGL posts others have had issues with the SPI speed and it looks like there have been updates to the XPT2046 driver in recent months but there's lots that is new here for me and I could be heading down the wrong rabbit hole.
Any pointers? -
Hi,
I ordered a display and ESP32, but all I get is a white screen. Looking at a serial console, I get the following output:rst:0x1 (POWERON_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0018,len:4 load:0x3fff001c,len:6960 ho 0 tail 12 room 4 load:0x40078000,len:14076 load:0x40080400,len:4352 entry 0x400806ec [0;32mI (74) boot: Chip Revision: 1[0m [0;32mI (74) boot_comm: chip revision: 1, min. bootloader chip revision: 0[0m [0;32mI (41) boot: ESP-IDF v4.0.1 2nd stage bootloader[0m [0;32mI (41) boot: compile time 13:22:55[0m [0;32mI (41) boot: Enabling RNG early entropy source...[0m [0;32mI (45) boot: SPI Speed : 40MHz[0m [0;32mI (49) boot: SPI Mode : DIO[0m [0;32mI (53) boot: SPI Flash Size : 4MB[0m [0;32mI (57) boot: Partition Table:[0m [0;32mI (61) boot: ## Label Usage Type ST Offset Length[0m [0;32mI (68) boot: 0 nvs WiFi data 01 02 00009000 00006000[0m [0;32mI (76) boot: 1 phy_init RF data 01 01 0000f000 00001000[0m [0;32mI (83) boot: 2 factory factory app 00 00 00010000 00200000[0m [0;32mI (91) boot: End of partition table[0m [0;32mI (95) boot_comm: chip revision: 1, min. application chip revision: 0[0m [0;32mI (102) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x80728 (526120) map[0m [0;32mI (299) esp_image: segment 1: paddr=0x00090750 vaddr=0x3ffb0000 size=0x041cc ( 16844) load[0m [0;32mI (306) esp_image: segment 2: paddr=0x00094924 vaddr=0x40080000 size=0x00400 ( 1024) load[0m [0;32mI (307) esp_image: segment 3: paddr=0x00094d2c vaddr=0x40080400 size=0x0b2e4 ( 45796) load[0m [0;32mI (334) esp_image: segment 4: paddr=0x000a0018 vaddr=0x400d0018 size=0xc0010 (786448) map[0m [0;32mI (616) esp_image: segment 5: paddr=0x00160030 vaddr=0x4008b6e4 size=0x0c68c ( 50828) load[0m [0;32mI (652) boot: Loaded app from partition at offset 0x10000[0m [0;32mI (652) boot: Disabling RNG early entropy source...[0m [0;32mI (653) cpu_start: Pro cpu up.[0m [0;32mI (656) cpu_start: Application information:[0m [0;32mI (661) cpu_start: Project name: reppanel_esp32[0m [0;32mI (666) cpu_start: App version: v1.0.2-dirty[0m [0;32mI (672) cpu_start: Compile time: Jun 22 2020 18:25:51[0m [0;32mI (678) cpu_start: ELF file SHA256: 8b85d585a6bdd293...[0m [0;32mI (684) cpu_start: ESP-IDF: v4.0.1[0m [0;32mI (689) cpu_start: Starting app cpu, entry point is 0x40081468[0m [0;32mI (0) cpu_start: App cpu up.[0m [0;32mI (699) heap_init: Initializing. RAM available for dynamic allocation:[0m [0;32mI (706) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM[0m [0;32mI (712) heap_init: At 3FFDA238 len 00005DC8 (23 KiB): DRAM[0m [0;32mI (718) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM[0m [0;32mI (725) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM[0m [0;32mI (731) heap_init: At 40097D70 len 00008290 (32 KiB): IRAM[0m [0;32mI (737) cpu_start: Pro cpu start user code[0m [0;32mI (755) spi_flash: detected chip: generic[0m [0;32mI (756) spi_flash: flash io: dio[0m [0;32mI (756) cpu_start: Starting scheduler on PRO CPU.[0m [0;32mI (0) cpu_start: Starting scheduler on APP CPU.[0m [0;32mI (210) ILI9488: ILI9488 initialization.[0m [0;32mI (510) ILI9488: Enabling backlight.[0m [0;32mI (510) FT6X36: Found touch panel controller[0m [0;31mE (510) FT6X36: Error reading from device: ERROR[0m [0;32mI (510) FT6X36: Device ID: 0x00[0m [0;32mI (520) FT6X36: Chip ID: 0x00[0m [0;32mI (520) FT6X36: Device mode: 0x00[0m [0;32mI (530) FT6X36: Firmware ID: 0x00[0m [0;32mI (530) FT6X36: Release code: 0x00[0m
I double checked the wiring twice, but cannot rule out the possibility of miswiring of course, but I also cannot find an error myself.
-
Reading more of the thread closely again, the display turns on when switching to 5V, but it looks like the touch controller is not being detected correctly.
-
@oliof What display? The recommended one? Can you post your wiring please, especially the touch panel stuff.
-
I got the recommended panel (ER-TFTM035-6). Wiring is as per README.md,
ESP32 GPIO TFT Pin Color 13 27 white 14 24 yellow 15 23 grey 22 30 orange 21 31 brown 4 21 violet 2 25 green 27 29 blue Some photos at https://photos.app.goo.gl/gmXPoCFF2FA5Ge2M8
NB: I can only get the display working with the precompiled binaries, building from source was quite hairy to set up, and all I get is a white screen. I didn't find documentation about how to configure the screen correctly, so I am fumbling around a bit there.
-
@oliof said in RepPanel - A DIY alternative to the PanelDue with WiFi support:
(510) FT6X36: Found touch panel controller (510) FT6X36: Error reading from device: ERROR (510) FT6X36: Device ID: 0x00 (520) FT6X36: Chip ID: 0x00 (520) FT6X36: Device mode: 0x00 (530) FT6X36: Firmware ID: 0x00 (530) FT6X36: Release code: 0x00
It looks like I ordered the screen with the resistive touch panel, so this can't work (FT6x36 is capacitative if I got it right). I will see if I can get my own build up.
-
@oliof Was about to suggest that. Your touch panel looks a little different than mine. You can check if J8 on the TFT is closed. Closed means resistive touch.
You can configure the build by dunning
idf.py menuconfig
Check the config options.
Set the display controller manually to ILI9488. The resistive touch panel is a XPT2046. Configure that one as well. You can choose the pins now. I recommend to go with the ones from the readme -
The RepPanel Readme or the LVGL Readme?
-
@oliof The RepPanel Readme. At least what the TFT is concerned. The touch controller should be SPI as far as I rememember. So you will need to hook it up to the VSPI of the ESP32. The default pins of LVGL should work fine I guess. I updated the repo a few days ago so make sure you use the latest lv_conf.h (copy content from lv_conf_back.h). It fixes random UI freezes.
-
@seeul8er I checked out master and will try to sort this out over the weekend. Thanks for your help so far!
-
Unfortunately the weekend didn't have enough time for me to figure things out. Between menuconfig selections not sticking, PIN definitions that aren't part of any readme, and possibly bad cables I can't say I've had any success moving forward. The most timely solution seems to be to order another screen with 3.3v and capacitative touch and trying again with that ...
-
I still can't get my SPI touchscreen working. Feeling I'm in over my head. I just don't know how to troubleshoot this stuff.
-
@oliof @littlehobbyshop I don't think that the 5V version is any problem. It can be tricky to get the config right. I'd go and config all pins manually with menuconfig. Maybe use these pins as a hint for a start. Then you just need to wire it accordingly. If the TFT does not have proper docs ... thats a different story.
According to the git the XPT2046 driver has not been updated since. So By using the recommended/supported commit ID of LVGL for ESP32 you have the up to date driver
-
@littlehobbyshop said in RepPanel - A DIY alternative to the PanelDue with WiFi support:
I still can't get my SPI touchscreen working. Feeling I'm in over my head. I just don't know how to troubleshoot this stuff.
Sorry man, I completely forgot to answer you. Where are you with this now? I absolutely do not know what I am doing with stuff like this, so I just lucked out getting it working. I can try and figure out some details if you still need it?
-
@seeul8er thanks for the encouraging words ... I tried those pins as well. The 5V isn't a problem as I can feed it from the 5V pin and it lights up with your firmware (just without any touch support, of course) -- I just decided to stick with 3.3V on the re-order to avoid any surprises.
I will need to go back and try to get this going, but I can't even replicate your build by following the instructions. So I must be doing something wrong.