firmware icon indicating copy to clipboard operation
firmware copied to clipboard

feat: Adapt Bruce firmware for Waveshare ESP32-S3 AMOLED 1.8

Open lelebrr opened this issue 1 month ago • 6 comments

  • Added a new board configuration for the Waveshare ESP32-S3-Touch-AMOLED-1.8.
  • Implemented a custom LovyanGFX configuration (LGFX_Config.h) with drivers for the SH8601 display (QSPI) and FT3168 touch controller (I2C), including a custom backlight handler.
  • Integrated the new LGFX driver into the existing tft_logger class to maintain compatibility with the project's helper functions.
  • Corrected the PlatformIO build configuration to use the appropriate partition table.
  • Adapted the entire user interface, including main menus, submenus, and all feature screens (WiFi Scanner, Deauth, Evil Portal, BLE Spam, RFID tools), for the new 368x448 portrait resolution.
  • Adjusted font sizes, layouts, icon positions, and coordinates across the application to ensure readability and a consistent user experience on the new hardware.

Proposed Changes

Types of Changes

Verification

Testing

Linked Issues

User-Facing Change


Further Comments

lelebrr avatar Nov 09 '25 05:11 lelebrr

Please can you set the merge target to the dev branch.

emericklaw avatar Nov 09 '25 07:11 emericklaw

This is very good.. but simply moving to won´t work.. I'd ask you to remake it on the dev brench, because there are many things different there (other framework) that must be considered..

Adding custom code for each device in the main code is not a good thing, because most of the devs doesn't have these particular devices to test, so keeping things relative is the best practice around here

The font sizes are controlled by 5 macros: FP -> Small Font size, usually 1 FM -> Medium Font size, usually 2 FG -> Bigger Font size, usually 3 LW -> Character Width multiplier at size 1, which is 6px for TFT_eSPI LH -> Character Height multiplier at size 1, which is 8px for TFT_eSPI

you can set these values on your platformio.ini to, it will make fonts and things bigger to accomodate things on bigger screens

build_flags=
    # keep all the previous stuff
    -D FP=2
    -D FM=3
    -D FG=4

#and add
build_unflags=
     -D FP=1
     -D FM=2
     -D FG=3

bmorcelli avatar Nov 09 '25 18:11 bmorcelli

Excellent work! We're eagerly awaiting devices like the ESP32 2432S022C working with its parallel display. This is great! 🙏

Pikolodaimaku avatar Nov 09 '25 18:11 Pikolodaimaku

I don't know if this is of much use to this board.

[env:esp32-2432s022c] platform = espressif32 board = esp32dev framework = arduino upload_speed = 921600 monitor_speed = 115200

build_flags = -DLV_CONF_INCLUDE_SIMPLE -I include ; Adaugă folderul "include" pentru a găsi lv_conf.h -D LGFX_USE_V1=1 -D ST7789_DRIVER=1 -D TFT_PARALLEL_8_BIT -D TFT_ROTATION=0 -D TFT_WIDTH=240 -D TFT_HEIGHT=320 -D TFT_CS=17 -D TFT_DC=16 -D TFT_RST=-1 -D TFT_WR=4 -D TFT_RD=2 -D TFT_D0=15 -D TFT_D1=13 -D TFT_D2=12 -D TFT_D3=14 -D TFT_D4=27 -D TFT_D5=25 -D TFT_D6=33 -D TFT_D7=32 -D TFT_BCKL=0 -D TOUCH_DRIVER=0x816 -D HASP_USE_LGFX_TOUCH=1 -D TOUCH_SDA=21 -D TOUCH_SCL=22 -D TOUCH_IRQ=-1 -D TOUCH_RST=-1 -D I2C_TOUCH_FREQUENCY=400000 -D I2C_TOUCH_PORT=0 -D I2C_TOUCH_ADDRESS=0x15

lib_deps = lvgl/lvgl@^9.2.2 lovyan03/LovyanGFX@^1.2.0

Pikolodaimaku avatar Nov 14 '25 17:11 Pikolodaimaku

would this work on the 1.91inch version? and if not maybe it wont be too hard to adapt it to the 1.91 one?

joragoncharenko0106-cmd avatar Nov 15 '25 17:11 joragoncharenko0106-cmd

¿Funcionaría esto en la versión de 1,91 pulgadas? ¿Y si no tal vez no será demasiado difícil adaptarlo al modelo 1.91?

I don't think it's difficult in fact @Bmorcelli clearly explains that these boards work well with the LovyanGFX library but with TFT_eSPI it doesn't work because the developer manages to implement that library and with patience everything can be done.

Pikolodaimaku avatar Nov 15 '25 18:11 Pikolodaimaku