feat: Adapt Bruce firmware for Waveshare ESP32-S3 AMOLED 1.8
- 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_loggerclass 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
Please can you set the merge target to the dev branch.
This is very good.. but simply moving to
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
Excellent work! We're eagerly awaiting devices like the ESP32 2432S022C working with its parallel display. This is great! 🙏
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
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?
¿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.