You've already forked meshtastic-device-ui
mirror of
https://github.com/m5stack/meshtastic-device-ui.git
synced 2026-05-20 11:51:03 -07:00
elecrow lgfx support
This commit is contained in:
@@ -2,11 +2,13 @@
|
||||
|
||||
#define LGFX_USE_V1
|
||||
#include <LovyanGFX.hpp>
|
||||
#include <TCA9534.h>
|
||||
#include <lgfx/v1/platforms/esp32s3/Bus_RGB.hpp>
|
||||
#include <lgfx/v1/platforms/esp32s3/Panel_RGB.hpp>
|
||||
#include <TCA9534.h>
|
||||
|
||||
TCA9534 ioex;
|
||||
#ifndef FREQ_WRITE
|
||||
#define FREQ_WRITE 14000000
|
||||
#endif
|
||||
|
||||
class LGFX_ELECROW70 : public lgfx::LGFX_Device
|
||||
{
|
||||
@@ -28,11 +30,11 @@ class LGFX_ELECROW70 : public lgfx::LGFX_Device
|
||||
ioex.config(2, TCA9534::Config::OUT);
|
||||
ioex.config(3, TCA9534::Config::OUT);
|
||||
ioex.config(4, TCA9534::Config::OUT);
|
||||
|
||||
|
||||
ioex.output(1, TCA9534::Level::H);
|
||||
ioex.output(3, TCA9534::Level::L);
|
||||
ioex.output(4, TCA9534::Level::H);
|
||||
|
||||
|
||||
pinMode(1, OUTPUT);
|
||||
digitalWrite(1, LOW);
|
||||
ioex.output(2, TCA9534::Level::L);
|
||||
@@ -61,7 +63,7 @@ class LGFX_ELECROW70 : public lgfx::LGFX_Device
|
||||
|
||||
{
|
||||
auto cfg = _panel_instance.config_detail();
|
||||
cfg.use_psram = 0;
|
||||
cfg.use_psram = 1;
|
||||
_panel_instance.config_detail(cfg);
|
||||
}
|
||||
|
||||
@@ -89,7 +91,7 @@ class LGFX_ELECROW70 : public lgfx::LGFX_Device
|
||||
cfg.pin_vsync = GPIO_NUM_41;
|
||||
cfg.pin_hsync = GPIO_NUM_40;
|
||||
cfg.pin_pclk = GPIO_NUM_39;
|
||||
cfg.freq_write = 13000000;
|
||||
cfg.freq_write = FREQ_WRITE;
|
||||
|
||||
cfg.hsync_polarity = 0;
|
||||
cfg.hsync_front_porch = 8;
|
||||
@@ -102,9 +104,9 @@ class LGFX_ELECROW70 : public lgfx::LGFX_Device
|
||||
cfg.vsync_back_porch = 8;
|
||||
|
||||
cfg.pclk_idle_high = 1;
|
||||
//cfg.pclk_active_neg = 0;
|
||||
//cfg.pclk_idle_high = 0;
|
||||
//cfg.de_idle_high = 1;
|
||||
// cfg.pclk_active_neg = 0;
|
||||
// cfg.pclk_idle_high = 0;
|
||||
// cfg.de_idle_high = 1;
|
||||
|
||||
_bus_instance.config(cfg);
|
||||
}
|
||||
@@ -132,4 +134,7 @@ class LGFX_ELECROW70 : public lgfx::LGFX_Device
|
||||
|
||||
setPanel(&_panel_instance);
|
||||
}
|
||||
|
||||
private:
|
||||
TCA9534 ioex;
|
||||
};
|
||||
|
||||
@@ -29,6 +29,7 @@ class DisplayDriverConfig
|
||||
BPICOMPUTER_S3,
|
||||
TWATCH_S3,
|
||||
UNPHONE_V9,
|
||||
ELECROW_ADV,
|
||||
HELTEC_TRACKER,
|
||||
WT32_SC01_PLUS,
|
||||
ESP2432S028RV1,
|
||||
|
||||
@@ -10,9 +10,6 @@
|
||||
#if defined(EINK_DRIVER) || defined(ARCH_PORTDUINO)
|
||||
// TODO #include "graphics/driver/EINKDriver.h"
|
||||
#endif
|
||||
#if defined(USE_FRAMEBUFFER)
|
||||
#include "graphics/driver/FBDriver.h"
|
||||
#endif
|
||||
#if defined(USE_X11)
|
||||
#include "graphics/driver/X11Driver.h"
|
||||
#endif
|
||||
@@ -45,6 +42,9 @@
|
||||
#ifdef UNPHONE
|
||||
#include "graphics/LGFX/LGFX_UNPHONE.h"
|
||||
#endif
|
||||
#ifdef ELECROW_PANEL
|
||||
#include "graphics/LGFX/LGFX_ELECROW70.h"
|
||||
#endif
|
||||
#ifdef ESP32_2432S022
|
||||
#include "graphics/LGFX/LGFX_ESP2432S022.h"
|
||||
#endif
|
||||
@@ -69,9 +69,6 @@ DisplayDriverFactory::DisplayDriverFactory() {}
|
||||
|
||||
DisplayDriver *DisplayDriverFactory::create(uint16_t width, uint16_t height)
|
||||
{
|
||||
#if defined(USE_FRAMEBUFFER)
|
||||
return &FBDriver::create(width, height);
|
||||
#endif
|
||||
#if defined(USE_X11)
|
||||
return &X11Driver::create(width, height);
|
||||
#elif defined(LGFX_DRIVER)
|
||||
@@ -100,11 +97,6 @@ DisplayDriver *DisplayDriverFactory::create(const DisplayDriverConfig &cfg)
|
||||
// TODO return new EINKDriver<EINKConfig>(cfg);
|
||||
}
|
||||
#endif
|
||||
#if defined(USE_FRAMEBUFFER)
|
||||
if (cfg._device == DisplayDriverConfig::device_t::FB) {
|
||||
return &FBDriver::create(cfg.width(), cfg.height());
|
||||
}
|
||||
#endif
|
||||
#if defined(USE_X11)
|
||||
if (cfg._device == DisplayDriverConfig::device_t::X11) {
|
||||
return &X11Driver::create(cfg.width(), cfg.height());
|
||||
@@ -147,6 +139,10 @@ DisplayDriver *DisplayDriverFactory::create(const DisplayDriverConfig &cfg)
|
||||
case DisplayDriverConfig::device_t::UNPHONE_V9:
|
||||
return new LGFXDriver<LGFX_UNPHONE_V9>(cfg.width(), cfg.height());
|
||||
break;
|
||||
#elif defined(ELECROW_PANEL)
|
||||
case DisplayDriverConfig::device_t::ELECROW_ADV:
|
||||
return new LGFXDriver<LGFX_ELECROW70>(cfg.width(), cfg.height());
|
||||
break;
|
||||
#elif defined(HELTEC_TRACKER)
|
||||
case DisplayDriverConfig::device_t::HELTEC_TRACKER:
|
||||
// return new LGFXDriver<LGFX_HELTEC_TRACKER>(cfg.width(), cfg.height());
|
||||
@@ -164,10 +160,6 @@ DisplayDriver *DisplayDriverFactory::create(const DisplayDriverConfig &cfg)
|
||||
return new LGFXDriver<LGFX_ESP2432S028RV2>(cfg.width(), cfg.height());
|
||||
break;
|
||||
#endif
|
||||
#elif defined(USE_FRAMEBUFFER)
|
||||
case DisplayDriverConfig::device_t::FB:
|
||||
return &FBDriver::create(cfg.width(), cfg.height());
|
||||
break;
|
||||
#elif defined(USE_X11)
|
||||
case DisplayDriverConfig::device_t::X11:
|
||||
return &X11Driver::create(cfg.width(), cfg.height());
|
||||
|
||||
Reference in New Issue
Block a user