diff --git a/platformio.ini b/platformio.ini index 2574ea7..7880c6a 100644 --- a/platformio.ini +++ b/platformio.ini @@ -10,7 +10,9 @@ [platformio] globallib_dir = lib -default_envs = M5Stick-C, esp32cam, ESP32-2432S028R, NerminerV2, Lilygo-T-Embed, ESP32-devKitv1, NerminerV2-S3-DONGLE, NerminerV2-S3-AMOLED, NerminerV2-T-QT, NerdminerV2-T-Display_V1, ESP32-2432S028R, M5-StampS3, ESP32-S3-devKitv1, ESP32-S3-mini-wemos, ESP32-S3-mini-weact, ESP32-C3-devKitmv1, ESP32-C3-super-mini + +default_envs = M5Stick-C, esp32cam, ESP32-2432S028R, ESP32_2432S028_2USB, NerminerV2, ESP32-devKitv1, NerminerV2-S3-DONGLE, NerminerV2-S3-AMOLED, NerminerV2-T-QT, NerdminerV2-T-Display_V1, ESP32-2432S028R, M5-StampS3, ESP32-S3-devKitv1, ESP32-S3-mini-wemos, ESP32-S3-mini-weact, ESP32-C3-devKitmv1, ESP32-C3-super-mini + [env:M5Stick-C] platform = espressif32 @@ -404,6 +406,56 @@ lib_deps = mathertel/OneButton @ ^2.0.3 arduino-libraries/NTPClient + ;-------------------------------------------------------------------- + +; This env is just for another type of the popular ESP32_2432S028 which need different settings than others +; like TFT inversion +; and different gamma settings + +[env:ESP32_2432S028_2USB] +platform = espressif32 +board = esp32dev +framework = arduino +monitor_speed = 115200 +upload_speed = 921600 +;build_type = debug +board_build.partitions = huge_app.csv +build_flags = + ;-DDEBUG_MEMORY=1 + -D ESP32_2432S028_2USB=1 + -DTFT_INVERSION_ON + -DUSER_SETUP_LOADED=1 + -DILI9341_2_DRIVER=1 + -DTFT_WIDTH=240 + -DTFT_HEIGHT=320 + -DTFT_BACKLIGHT_ON=HIGH + -DTFT_MOSI=13 + -DTFT_SCLK=14 + -DTFT_CS=15 + -DTFT_DC=2 + -DTFT_RST=12 + -DTFT_BL=21 + -DETOUCH_CS=33 + -DTOUCH_CLK=25 + -DTOUCH_MISO=39 + -DTOUCH_MOSI=32 + -DTOUCH_IRQ=36 + -DLOAD_GLCD=1 + -DLOAD_FONT2=1 + -DLOAD_GFXFF=1 + -DSMOOTH_FONT=1 + -DSPI_FREQUENCY=55000000 + -DSPI_READ_FREQUENCY=20000000 + -DSPI_TOUCH_FREQUENCY=2500000 +lib_deps = + https://github.com/takkaO/OpenFontRender + bblanchon/ArduinoJson@^6.21.2 + https://github.com/tzapu/WiFiManager.git#v2.0.16-rc.2 + mathertel/OneButton @ ^2.0.3 + arduino-libraries/NTPClient + bodmer/TFT_eSPI @ ^2.5.31 + https://github.com/achillhasler/TFT_eTouch + ;-------------------------------------------------------------------- [env:ESP32-2432S028R] @@ -500,4 +552,4 @@ lib_ignore = TFT_eSPI SD rm67162 - SPI \ No newline at end of file + SPI diff --git a/src/drivers/devices/device.h b/src/drivers/devices/device.h index 47b6b16..2d2feb9 100644 --- a/src/drivers/devices/device.h +++ b/src/drivers/devices/device.h @@ -17,6 +17,8 @@ #include "lilygoS3TEmbed.h" #elif defined(ESP32_2432S028R) #include "esp322432s028r.h" +#elif defined(ESP32_2432S028_2USB) // For another type of ESP32_2432S028 version with 2 USB connectors +#include "esp322432s028r.h" #elif defined(NERMINER_T_QT) #include "lilygoT_QT.h" #elif defined(NERDMINER_T_DISPLAY_V1) @@ -30,4 +32,4 @@ #error "No device defined" #endif -#endif // __DEVICE_H__ \ No newline at end of file +#endif // __DEVICE_H__ diff --git a/src/drivers/devices/esp322432s028r.h b/src/drivers/devices/esp322432s028r.h index 5f20e7e..73d6911 100644 --- a/src/drivers/devices/esp322432s028r.h +++ b/src/drivers/devices/esp322432s028r.h @@ -7,4 +7,4 @@ #define LED_PIN 4 // Red pin #define LED_PIN_G 17 // Green pin -#endif \ No newline at end of file +#endif diff --git a/src/drivers/displays/display.cpp b/src/drivers/displays/display.cpp index 7d718be..3838aa3 100644 --- a/src/drivers/displays/display.cpp +++ b/src/drivers/displays/display.cpp @@ -24,6 +24,10 @@ DisplayDriver *currentDisplayDriver = &dongleDisplayDriver; DisplayDriver *currentDisplayDriver = &esp32_2432S028RDriver; #endif +#ifdef ESP32_2432S028_2USB +DisplayDriver *currentDisplayDriver = &esp32_2432S028RDriver; +#endif + #ifdef T_QT_DISPLAY DisplayDriver *currentDisplayDriver = &t_qtDisplayDriver; #endif diff --git a/src/drivers/displays/esp23_2432s028r.cpp b/src/drivers/displays/esp23_2432s028r.cpp index f86a91c..ec9431f 100644 --- a/src/drivers/displays/esp23_2432s028r.cpp +++ b/src/drivers/displays/esp23_2432s028r.cpp @@ -1,6 +1,6 @@ #include "displayDriver.h" -#ifdef ESP32_2432S028R +#if defined ESP32_2432S028R || ESP32_2432S028_2USB #include #include @@ -32,6 +32,17 @@ void esp32_2432S028R_Init(void) { tft.init(); tft.setRotation(1); + #ifdef ESP32_2432S028_2USB + /* + In addition to TFT_INVERSION this adjusts the gamma curve to have better + picture quality for this type of ESP32_2432S028 TFT with for example two USB connectors + */ + tft.writecommand(ILI9341_GAMMASET); // Gamma curve selected + tft.writedata(2); + delay(120); + tft.writecommand(ILI9341_GAMMASET); // Gamma curve selected + tft.writedata(1); + #endif tft.setSwapBytes(true); // Swap the colour byte order when rendering hSPI.begin(TOUCH_CLK, TOUCH_MISO, TOUCH_MOSI, ETOUCH_CS); touch.init();