change TFT display lib

This commit is contained in:
cyberman54 2022-08-16 13:12:09 +02:00
parent 67350647c1
commit 0519bdc81d
7 changed files with 122 additions and 228 deletions

View File

@ -9,8 +9,10 @@
#if (HAS_DISPLAY) == 1 #if (HAS_DISPLAY) == 1
#include <OneBitDisplay.h> #include <OneBitDisplay.h>
extern ONE_BIT_DISPLAY *dp;
#elif (HAS_DISPLAY) == 2 #elif (HAS_DISPLAY) == 2
#include <TFT_eSPI.h> #include <TFT_eSPI.h>
extern TFT_eSPI *dp;
#endif #endif
#define DISPLAY_PAGES (7) // number of paxcounter display pages #define DISPLAY_PAGES (7) // number of paxcounter display pages
@ -22,7 +24,6 @@
#define MY_FONT_NORMAL FONT_8x8 #define MY_FONT_NORMAL FONT_8x8
#define MY_FONT_LARGE FONT_16x32 #define MY_FONT_LARGE FONT_16x32
#define MY_FONT_STRETCHED FONT_12x16 #define MY_FONT_STRETCHED FONT_12x16
#define MY_DISPLAY_FIRSTLINE 30 #define MY_DISPLAY_FIRSTLINE 30
#ifndef MY_DISPLAY_RST #ifndef MY_DISPLAY_RST
@ -49,18 +50,21 @@
// settings for TFT display library // settings for TFT display library
#elif (HAS_DISPLAY == 2) #elif (HAS_DISPLAY == 2)
#define MY_FONT_SMALL 1 #define MY_FONT_SMALL 2
#define MY_FONT_NORMAL 2 #define MY_FONT_NORMAL 2
#define MY_FONT_LARGE 4 #define MY_FONT_LARGE 2
#define MY_FONT_STRETCHED 6 #define MY_FONT_STRETCHED 2
#define MY_DISPLAY_FIRSTLINE 30 #define MY_DISPLAY_FIRSTLINE 30
#ifndef TFT_FREQUENCY
#define TFT_FREQUENCY 400000L
#endif
#ifndef MY_DISPLAY_FGCOLOR #ifndef MY_DISPLAY_FGCOLOR
#define MY_DISPLAY_FGCOLOR TFT_WHITE #define MY_DISPLAY_FGCOLOR 0xFFFF // TFT_WHITE
#endif #endif
#ifndef MY_DISPLAY_BGCOLOR #ifndef MY_DISPLAY_BGCOLOR
#define MY_DISPLAY_BGCOLOR TFT_BLACK #define MY_DISPLAY_BGCOLOR 0x0000 // TFT_BLACK
#endif #endif
#ifndef TOUCH_CS #ifndef TOUCH_CS

View File

@ -46,7 +46,7 @@ description = Paxcounter is a device for metering passenger flows in realtime. I
[common] [common]
; for release_version use max. 10 chars total, use any decimal format like "a.b.c" ; for release_version use max. 10 chars total, use any decimal format like "a.b.c"
release_version = 3.3.0 release_version = 3.3.1
; DEBUG LEVEL: For production run set to 0, otherwise device will leak RAM while running! ; DEBUG LEVEL: For production run set to 0, otherwise device will leak RAM while running!
; 0=None, 1=Error, 2=Warn, 3=Info, 4=Debug, 5=Verbose ; 0=None, 1=Error, 2=Warn, 3=Info, 4=Debug, 5=Verbose
debug_level = 3 debug_level = 3
@ -54,17 +54,18 @@ extra_scripts = pre:build.py
otakeyfile = ota.conf otakeyfile = ota.conf
lorakeyfile = loraconf.h lorakeyfile = loraconf.h
lmicconfigfile = lmic_config.h lmicconfigfile = lmic_config.h
platform_espressif32 = espressif32@5.0.0 platform_espressif32 = espressif32@5.1.0
monitor_speed = 115200 monitor_speed = 115200
upload_speed = 115200 ; set by build.py and taken from hal file upload_speed = 115200 ; set by build.py and taken from hal file
display_library = ; set by build.py and taken from hal file display_library = ; set by build.py and taken from hal file
lib_deps_lora = lib_deps_lora =
mcci-catena/MCCI LoRaWAN LMIC library @ ^4.1.1 mcci-catena/MCCI LoRaWAN LMIC library @ ^4.1.1
lib_deps_display = lib_deps_display =
https://github.com/bitbank2/OneBitDisplay#8d4ab34 https://github.com/bitbank2/OneBitDisplay.git
;bitbank2/OneBitDisplay @ ^2.1.0 ;bitbank2/OneBitDisplay @ ^2.1.0
https://github.com/bitbank2/bb_spi_lcd.git
;bitbank2/bb_spi_lcd @ ^2.3.0
ricmoo/QRCode @ ^0.0.1 ricmoo/QRCode @ ^0.0.1
bodmer/TFT_eSPI @ ^2.3.84
lib_deps_ledmatrix = lib_deps_ledmatrix =
seeed-studio/Ultrathin_LED_Matrix @ ^1.0.0 seeed-studio/Ultrathin_LED_Matrix @ ^1.0.0
lib_deps_rgbled = lib_deps_rgbled =

View File

@ -12,8 +12,8 @@ Display-Mask (128 x 64 pixel):
1|PAX:aabbccdd LARGE 1|PAX:aabbccdd LARGE
2| 2|
3|WIFI:abcde BLTH:abcde SMALL 3|WIFI:abcde BLTH:abcde SMALL
4|Batt:abc% chan:ab SMALL 4|Batt:abc% chan:ab SMALL
5|RLIM:abcd Mem:abcdKB SMALL 5|RLIM:abcd Mem:abcdeKB SMALL
6|27.Feb 2019 20:27:00* SMALL 6|27.Feb 2019 20:27:00* SMALL
7|yyyyyyyyyyyyy xx SFab SMALL 7|yyyyyyyyyyyyy xx SFab SMALL
@ -49,61 +49,55 @@ static QRCode qrcode;
#if (HAS_DISPLAY) == 1 #if (HAS_DISPLAY) == 1
static ONE_BIT_DISPLAY oled; static ONE_BIT_DISPLAY oled;
#elif (HAS_DISPLAY) == 2 #elif (HAS_DISPLAY) == 2
static TFT_eSPI tft = TFT_eSPI(MY_DISPLAY_WIDTH, MY_DISPLAY_HEIGHT); TFT_eSPI *dp = NULL;
#else #else
#error Unknown display type specified in hal file #error Unknown display type specified in hal file
#endif #endif
#endif #endif
void dp_setup(int contrast) { void dp_setup(int contrast) {
#if (HAS_DISPLAY) == 1 // I2C OLED #if (HAS_DISPLAY) == 1 // I2C OLED
oled.setI2CPins(MY_DISPLAY_SDA, MY_DISPLAY_SCL, MY_DISPLAY_RST); dp = new ONE_BIT_DISPLAY;
oled.setBitBang(false); dp->setI2CPins(MY_DISPLAY_SDA, MY_DISPLAY_SCL, MY_DISPLAY_RST);
oled.I2Cbegin(OLED_TYPE, OLED_ADDR, OLED_FREQUENCY); dp->setBitBang(false);
oled.allocBuffer(); // render all outputs to lib internal backbuffer dp->I2Cbegin(OLED_TYPE, OLED_ADDR, OLED_FREQUENCY);
oled.setTextWrap(false); dp->allocBuffer(); // render all outputs to lib internal backbuffer
oled.setRotation( dp->setTextWrap(false);
dp->setRotation(
MY_DISPLAY_FLIP ? 2 : 0); // 0 = no rotation, 1 = 90°, 2 = 180°, 3 = 280° MY_DISPLAY_FLIP ? 2 : 0); // 0 = no rotation, 1 = 90°, 2 = 180°, 3 = 280°
#elif (HAS_DISPLAY) == 2 // SPI TFT #elif (HAS_DISPLAY) == 2 // SPI TFT
dp = new TFT_eSPI(MY_DISPLAY_WIDTH, MY_DISPLAY_HEIGHT);
tft.init(); dp->init();
tft.setRotation(MY_DISPLAY_FLIP ? 3 : 1); dp->setRotation(MY_DISPLAY_FLIP ? 3 : 1);
tft.invertDisplay(MY_DISPLAY_INVERT ? true : false); dp->invertDisplay(MY_DISPLAY_INVERT ? true : false);
tft.setTextColor(MY_DISPLAY_FGCOLOR, MY_DISPLAY_BGCOLOR); dp->setTextColor(MY_DISPLAY_FGCOLOR, MY_DISPLAY_BGCOLOR);
#endif #endif
// clear display
dp_clear(); dp_clear();
if (contrast) if (contrast)
dp_contrast(contrast); dp_contrast(contrast);
} }
void dp_init(bool verbose) { void dp_init(bool verbose) {
dp_setup(DISPLAYCONTRAST); dp_setup(DISPLAYCONTRAST);
// show chip information
if (verbose) { if (verbose) {
// show startup screen
// to come -> display .bmp file with logo
// show chip information
#if (VERBOSE) #if (VERBOSE)
esp_chip_info_t chip_info; esp_chip_info_t chip_info;
esp_chip_info(&chip_info); esp_chip_info(&chip_info);
dp_setFont(MY_FONT_NORMAL); dp_setFont(MY_FONT_NORMAL);
dp_printf("** PAXCOUNTER **\r\n"); dp->printf("** PAXCOUNTER **\r\n");
dp_printf("Software v%s\r\n", PROGVERSION); dp->printf("Software v%s\r\n", PROGVERSION);
dp_printf("ESP32 %d cores\r\n", chip_info.cores); dp->printf("ESP32 %d cores\r\n", chip_info.cores);
dp_printf("Chip Rev.%d\r\n", chip_info.revision); dp->printf("Chip Rev.%d\r\n", chip_info.revision);
dp_printf("WiFi%s%s\r\n", (chip_info.features & CHIP_FEATURE_BT) ? "/BT" : "", dp->printf("WiFi%s%s\r\n",
(chip_info.features & CHIP_FEATURE_BLE) ? "/BLE" : ""); (chip_info.features & CHIP_FEATURE_BT) ? "/BT" : "",
dp_printf("%dMB %s Flash", spi_flash_get_chip_size() / (1024 * 1024), (chip_info.features & CHIP_FEATURE_BLE) ? "/BLE" : "");
(chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "int." : "ext."); dp->printf("%dMB %s Flash", spi_flash_get_chip_size() / (1024 * 1024),
(chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "int." : "ext.");
// give user some time to read or take picture // give user some time to read or take picture
dp_dump(); dp_dump();
@ -143,11 +137,15 @@ void dp_init(bool verbose) {
} // verbose } // verbose
dp_power(cfg.screenon); // set display off if disabled dp_power(cfg.screenon); // set display off if disabled
} // dp_init } // dp_init
void dp_refresh(bool nextPage) { void dp_refresh(bool nextPage) {
struct count_payload_t count; // libpax count storage
static uint8_t DisplayPage = 0;
char timeState, strftime_buf[64];
time_t now;
struct tm timeinfo = {0};
#ifndef HAS_BUTTON #ifndef HAS_BUTTON
static uint32_t framecounter = 0; static uint32_t framecounter = 0;
#endif #endif
@ -216,6 +214,11 @@ void dp_drawPage(bool nextpage) {
// ---------- page 0: parameters overview ---------- // ---------- page 0: parameters overview ----------
case 0: case 0:
// show pax
libpax_counter_count(&count);
dp_setFont(MY_FONT_LARGE);
dp->printf("%-8d", count.pax);
dp_setFont(MY_FONT_SMALL); dp_setFont(MY_FONT_SMALL);
dp_setTextCursor(); dp_setTextCursor();
@ -224,22 +227,22 @@ void dp_drawPage(bool nextpage) {
#if ((WIFICOUNTER) && (BLECOUNTER)) #if ((WIFICOUNTER) && (BLECOUNTER))
if (cfg.wifiscan) if (cfg.wifiscan)
dp_printf("WIFI:%-5d", count.wifi_count); dp->printf("WIFI:%-5d", count.wifi_count);
else else
dp_printf("WIFI:off"); dp_printf("WIFI:off");
if (cfg.blescan) if (cfg.blescan)
dp_printf("BLTH:%-5d", count.ble_count); dp->printf("BLTH:%-5d", count.ble_count);
else else
dp_printf(" BLTH:off"); dp_printf(" BLTH:off");
#elif ((WIFICOUNTER) && (!BLECOUNTER)) #elif ((WIFICOUNTER) && (!BLECOUNTER))
if (cfg.wifiscan) if (cfg.wifiscan)
dp_printf("WIFI:%-5d", count.wifi_count); dp->printf("WIFI:%-5d", count.wifi_count);
else else
dp_printf("WIFI:off"); dp_printf("WIFI:off");
#elif ((!WIFICOUNTER) && (BLECOUNTER)) #elif ((!WIFICOUNTER) && (BLECOUNTER))
if (cfg.blescan) if (cfg.blescan)
dp_printf("BLTH:%-5d", count.ble_count); dp->printf("BLTH:%-5d", count.ble_count);
dp_printf("BLTH:off"); dp->printf("BLTH:off");
#else #else
dp_printf("Sniffer disabled"); dp_printf("Sniffer disabled");
#endif #endif
@ -259,8 +262,8 @@ void dp_drawPage(bool nextpage) {
// line 5: RSSI limiter + free memory // line 5: RSSI limiter + free memory
// RLIM:abcd Mem:abcdKB // RLIM:abcd Mem:abcdKB
dp_printf(!cfg.rssilimit ? "RLIM:off " : "RLIM:%-4d", cfg.rssilimit); dp->printf(!cfg.rssilimit ? "RLIM:off " : "RLIM:%-4d", cfg.rssilimit);
dp_printf(" Mem:%4dKB\r\n", getFreeRAM() / 1024); dp->printf(" Mem:%4dKB\r\n", getFreeRAM() / 1024);
// line 6: time + date // line 6: time + date
// Wed Jan 12 21:49:08 * // Wed Jan 12 21:49:08 *
@ -308,14 +311,20 @@ void dp_drawPage(bool nextpage) {
// 6|fUp:000000 fDn:000000 // 6|fUp:000000 fDn:000000
// 7|SNR:-0000 RSSI:-0000 // 7|SNR:-0000 RSSI:-0000
// show pax
libpax_counter_count(&count);
dp_setFont(MY_FONT_LARGE);
dp->printf("%-8d", count.pax);
dp_setFont(MY_FONT_SMALL); dp_setFont(MY_FONT_SMALL);
dp_setTextCursor(); dp->setCursor(0, MY_DISPLAY_FIRSTLINE);
dp_printf("Net:%06X Pwr:%-2d\r\n", LMIC.netid & 0x001FFFFF, LMIC.radio_txpow); dp->printf("Net:%06X Pwr:%-2d\r\n", LMIC.netid & 0x001FFFFF,
dp_printf("Dev:%08X DR:%1d\r\n", LMIC.devaddr, LMIC.datarate); LMIC.radio_txpow);
dp_printf("ChMsk:%04X Nonce:%04X\r\n", LMIC.channelMap, LMIC.devNonce); dp->printf("Dev:%08X DR:%1d\r\n", LMIC.devaddr, LMIC.datarate);
dp_printf("fUp:%-6d fDn:%-6d\r\n", LMIC.seqnoUp ? LMIC.seqnoUp - 1 : 0, dp->printf("ChMsk:%04X Nonce:%04X\r\n", LMIC.channelMap, LMIC.devNonce);
LMIC.seqnoDn ? LMIC.seqnoDn - 1 : 0); dp->printf("fUp:%-6d fDn:%-6d\r\n", LMIC.seqnoUp ? LMIC.seqnoUp - 1 : 0,
dp_printf("SNR:%-5d RSSI:%-5d", (LMIC.snr + 2) / 4, LMIC.rssi); LMIC.seqnoDn ? LMIC.seqnoDn - 1 : 0);
dp->printf("SNR:%-5d RSSI:%-5d", (LMIC.snr + 2) / 4, LMIC.rssi);
dp_dump(); dp_dump();
break; break;
@ -328,6 +337,11 @@ void dp_drawPage(bool nextpage) {
#if (HAS_GPS) #if (HAS_GPS)
// show pax
libpax_counter_count(&count);
dp_setFont(MY_FONT_LARGE);
dp->printf("%-8d", count.pax);
// show satellite status at bottom line // show satellite status at bottom line
dp_setFont(MY_FONT_SMALL); dp_setFont(MY_FONT_SMALL);
dp_setTextCursor(0, 56); dp_setTextCursor(0, 56);
@ -379,7 +393,7 @@ void dp_drawPage(bool nextpage) {
dp_setFont(MY_FONT_LARGE); dp_setFont(MY_FONT_LARGE);
dp_printf("%.8s\r\n", strftime_buf); dp_printf("%.8s\r\n", strftime_buf);
dp_setFont(MY_FONT_SMALL); dp_setFont(MY_FONT_SMALL);
dp_printf("%21.1f", uptime() / 1000.0); dp->printf("%21.1f", uptime() / 1000.0);
dp_dump(); dp_dump();
break; break;
@ -416,91 +430,51 @@ void dp_setTextCursor(int x, int y) {
void dp_setFont(int font, int inv) { void dp_setFont(int font, int inv) {
#if (HAS_DISPLAY) == 1
// handle invers printing // handle invers printing
if (inv) if (inv)
oled.setTextColor(MY_DISPLAY_BGCOLOR, MY_DISPLAY_FGCOLOR); oled.setTextColor(MY_DISPLAY_BGCOLOR, MY_DISPLAY_FGCOLOR);
else else
oled.setTextColor(MY_DISPLAY_FGCOLOR, MY_DISPLAY_BGCOLOR); dp->setTextColor(MY_DISPLAY_FGCOLOR, MY_DISPLAY_BGCOLOR);
#if (HAS_DISPLAY) == 1
// set desired font // set desired font
oled.setFont(font); dp->setFont(font);
#elif (HAS_DISPLAY) == 2 #elif (HAS_DISPLAY) == 2
// handle invers printing
if (inv)
tft.setTextColor(MY_DISPLAY_BGCOLOR, MY_DISPLAY_FGCOLOR);
else
tft.setTextColor(MY_DISPLAY_FGCOLOR, MY_DISPLAY_BGCOLOR);
// map desired oled font to tft font // map desired oled font to tft font
switch (font) { switch (font) {
case MY_FONT_STRETCHED: // 16x16 on OLED case MY_FONT_STRETCHED: // 16x16 on OLED
case MY_FONT_LARGE: // 16x32 on OLED case MY_FONT_LARGE: // 16x32 on OLED
tft.setTextFont(4); // 26px dp->setTextFont(4); // 26px
break; break;
case MY_FONT_SMALL: // 6x8 on OLED case MY_FONT_SMALL: // 6x8 on OLED
case MY_FONT_NORMAL: // 8x8 on OLED case MY_FONT_NORMAL: // 8x8 on OLED
default: default:
tft.setTextFont(2); // 16px dp->setTextFont(2); // 16px
break; break;
} }
#endif #endif
} }
void dp_printf(const char *format, ...) {
char loc_buf[64];
char *temp = loc_buf;
va_list arg;
va_list copy;
va_start(arg, format);
va_copy(copy, arg);
int len = vsnprintf(temp, sizeof(loc_buf), format, copy);
va_end(copy);
if (len < 0) {
va_end(arg);
return;
};
if (len >= sizeof(loc_buf)) {
temp = (char *)malloc(len + 1);
if (temp == NULL) {
va_end(arg);
return;
}
vsnprintf(temp, len + 1, format, arg);
}
va_end(arg);
#if (HAS_DISPLAY) == 1
oled.write(temp);
#elif (HAS_DISPLAY) == 2
tft.printf(temp);
#endif
if (temp != loc_buf) {
free(temp);
}
}
void dp_dump(uint8_t *pBuffer) { void dp_dump(uint8_t *pBuffer) {
#if (HAS_DISPLAY) == 1
if (pBuffer) if (pBuffer)
memcpy(oled.getBuffer(), pBuffer, PLOTBUFFERSIZE); memcpy(dp->getBuffer(), pBuffer, PLOTBUFFERSIZE);
oled.display(); dp->display();
#elif (HAS_DISPLAY) == 2 #elif (HAS_DISPLAY) == 2
if (pBuffer) if (pBuffer)
tft.drawBitmap(0, 0, pBuffer, MY_DISPLAY_WIDTH, MY_DISPLAY_HEIGHT, dp->drawBitmap(0, 0, pBuffer, MY_DISPLAY_WIDTH, MY_DISPLAY_HEIGHT,
MY_DISPLAY_FGCOLOR); MY_DISPLAY_FGCOLOR);
#endif #endif
} }
void dp_clear(void) { void dp_clear(void) {
#if (HAS_DISPLAY) == 1 #if (HAS_DISPLAY) == 1
oled.fillScreen(MY_DISPLAY_BGCOLOR); dp->fillScreen(MY_DISPLAY_BGCOLOR);
oled.display(); dp->display();
#elif (HAS_DISPLAY) == 2 #elif (HAS_DISPLAY) == 2
tft.fillScreen(MY_DISPLAY_BGCOLOR); dp->fillScreen(MY_DISPLAY_BGCOLOR);
#endif #endif
dp_setTextCursor(0, 0); dp->setCursor(0, 0);
} }
void dp_contrast(uint8_t contrast) { void dp_contrast(uint8_t contrast) {
@ -574,7 +548,6 @@ void dp_fillRect(uint16_t x, uint16_t y, uint16_t width, uint16_t height,
int dp_drawPixel(uint8_t *buf, const uint16_t x, const uint16_t y, int dp_drawPixel(uint8_t *buf, const uint16_t x, const uint16_t y,
const uint8_t dot) { const uint8_t dot) {
if (x > MY_DISPLAY_WIDTH || y > MY_DISPLAY_HEIGHT) if (x > MY_DISPLAY_WIDTH || y > MY_DISPLAY_HEIGHT)
return -1; return -1;
@ -592,7 +565,6 @@ int dp_drawPixel(uint8_t *buf, const uint16_t x, const uint16_t y,
void dp_scrollHorizontal(uint8_t *buf, const uint16_t width, void dp_scrollHorizontal(uint8_t *buf, const uint16_t width,
const uint16_t height, bool left) { const uint16_t height, bool left) {
uint16_t col, page, idx = 0; uint16_t col, page, idx = 0;
for (page = 0; page < height / 8; page++) { for (page = 0; page < height / 8; page++) {
@ -615,7 +587,6 @@ void dp_scrollHorizontal(uint8_t *buf, const uint16_t width,
void dp_scrollVertical(uint8_t *buf, const uint16_t width, void dp_scrollVertical(uint8_t *buf, const uint16_t width,
const uint16_t height, int offset) { const uint16_t height, int offset) {
uint64_t buf_col; uint64_t buf_col;
if (!offset) if (!offset)
@ -638,7 +609,6 @@ void dp_scrollVertical(uint8_t *buf, const uint16_t width,
// ------------- curve plotter ----------------- // ------------- curve plotter -----------------
void dp_plotCurve(uint16_t count, bool reset) { void dp_plotCurve(uint16_t count, bool reset) {
static uint16_t last_count = 0, col = 0, row = 0; static uint16_t last_count = 0, col = 0, row = 0;
uint16_t v_scroll = 0; uint16_t v_scroll = 0;

View File

@ -28,9 +28,6 @@
#define CFG_sx1276_radio 1 // select LoRa chip #define CFG_sx1276_radio 1 // select LoRa chip
#define DISABLE_BROWNOUT 1 // comment out if you want to keep brownout feature #define DISABLE_BROWNOUT 1 // comment out if you want to keep brownout feature
#define HAS_DISPLAY 2 // TFT-LCD, support work in progess, not ready yet
//#define MY_DISPLAY_FLIP 1 // use if display is rotated
#define HAS_LED NOT_A_PIN // no on board LED (?) #define HAS_LED NOT_A_PIN // no on board LED (?)
#define HAS_BUTTON (39) // on board button A #define HAS_BUTTON (39) // on board button A
@ -44,38 +41,22 @@
// GPS settings // GPS settings
#define HAS_GPS 1 // use on board GPS #define HAS_GPS 1 // use on board GPS
#define GPS_SERIAL 9600, SERIAL_8N1, RXD2, TXD2 // UBlox NEO 6M RX, TX #define GPS_SERIAL 9600, SERIAL_8N1, RXD2, TXD2 // UBlox NEO 6M RX, TX
#define GPS_INT GPIO_NUM_35 // 30ns accurary timepulse, to be external wired on pcb: shorten R12! #define GPS_INT
// Display Settings // Display Settings
#define HAS_DISPLAY 2 // TFT-LCD
//#define MY_DISPLAY_FLIP 1 // use if display is rotated
#define MY_DISPLAY_WIDTH 320 #define MY_DISPLAY_WIDTH 320
#define MY_DISPLAY_HEIGHT 240 #define MY_DISPLAY_HEIGHT 240
#define MY_DISPLAY_INVERT 1 #define MY_DISPLAY_INVERT 1
#define TFT_TYPE LCD_ILI9341
// setting for M5 display #define TFT_MOSI MOSI // SPI
#define USER_SETUP_LOADED 1 #define TFT_MISO MISO // SPI
#define ILI9341_DRIVER 1 #define TFT_SCLK SCK // SPI
#define M5STACK // needed for TFT driver #define TFT_CS GPIO_NUM_14 // Chip select control
#define TFT_DC GPIO_NUM_27 // Data Command control
#define TFT_MISO MISO // SPI #define TFT_RST GPIO_NUM_33 // Reset
#define TFT_MOSI MOSI // SPI #define TFT_BL GPIO_NUM_32 // LED back-light
#define TFT_SCLK SCK // SPI #define TFT_FREQUENCY 40000000
#define TFT_CS GPIO_NUM_14 // Chip select control
#define TFT_DC GPIO_NUM_27 // Data Command control
#define TFT_RST GPIO_NUM_33 // Reset
#define TFT_BL GPIO_NUM_32 // LED back-light
#define TFT_RGB_ORDER TFT_BGR // Colour order Blue-Green-Red
//#define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH
#define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters
#define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters
//#define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm
//#define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:-.
//#define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-.
//#define LOAD_FONT8N // Font 8. Alternative to Font 8 above, slightly narrower, so 3 digits fit a 160 pixel TFT
//#define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts
#define SMOOTH_FONT
#define SPI_FREQUENCY 40000000
#endif #endif

View File

@ -20,7 +20,6 @@
#define LORA_IO1 GPIO_NUM_34 // must be wired by you on PCB! #define LORA_IO1 GPIO_NUM_34 // must be wired by you on PCB!
#define LORA_IO2 LMIC_UNUSED_PIN #define LORA_IO2 LMIC_UNUSED_PIN
// enable only if you want to store a local paxcount table on the device // enable only if you want to store a local paxcount table on the device
#define HAS_SDCARD 1 // this board has an SD-card-reader/writer #define HAS_SDCARD 1 // this board has an SD-card-reader/writer
#define SDCARD_CS GPIO_NUM_4 #define SDCARD_CS GPIO_NUM_4
@ -31,9 +30,6 @@
#define CFG_sx1276_radio 1 // select LoRa chip #define CFG_sx1276_radio 1 // select LoRa chip
#define DISABLE_BROWNOUT 1 // comment out if you want to keep brownout feature #define DISABLE_BROWNOUT 1 // comment out if you want to keep brownout feature
#define HAS_DISPLAY 2 // TFT-LCD, support work in progess, not ready yet
//#define MY_DISPLAY_FLIP 1 // use if display is rotated
#define HAS_LED NOT_A_PIN // no on board LED (?) #define HAS_LED NOT_A_PIN // no on board LED (?)
#define RGB_LED_COUNT 10 #define RGB_LED_COUNT 10
@ -53,35 +49,19 @@
// #define GPS_INT GPIO_NUM_35 // 30ns accurary timepulse, to be external wired on pcb: shorten R12! // #define GPS_INT GPIO_NUM_35 // 30ns accurary timepulse, to be external wired on pcb: shorten R12!
// Display Settings // Display Settings
#define HAS_DISPLAY 2 // TFT-LCD
//#define MY_DISPLAY_FLIP 1 // use if display is rotated
#define MY_DISPLAY_WIDTH 320 #define MY_DISPLAY_WIDTH 320
#define MY_DISPLAY_HEIGHT 240 #define MY_DISPLAY_HEIGHT 240
#define MY_DISPLAY_INVERT 1 #define MY_DISPLAY_INVERT 1
#define TFT_TYPE LCD_ILI9341
// setting for M5 display #define TFT_MOSI MOSI // SPI
#define USER_SETUP_LOADED 1 #define TFT_MISO MISO // SPI
#define ILI9341_DRIVER 1 #define TFT_SCLK SCK // SPI
#define M5STACK // needed for TFT driver #define TFT_CS GPIO_NUM_14 // Chip select control
#define TFT_DC GPIO_NUM_27 // Data Command control
#define TFT_MISO MISO // SPI #define TFT_RST GPIO_NUM_33 // Reset
#define TFT_MOSI MOSI // SPI #define TFT_BL GPIO_NUM_32 // LED back-light
#define TFT_SCLK SCK // SPI #define TFT_FREQUENCY 40000000
#define TFT_CS GPIO_NUM_14 // Chip select control
#define TFT_DC GPIO_NUM_27 // Data Command control
#define TFT_RST GPIO_NUM_33 // Reset
#define TFT_BL GPIO_NUM_32 // LED back-light
#define TFT_RGB_ORDER TFT_BGR // Colour order Blue-Green-Red
//#define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH
#define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters
#define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters
//#define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm
//#define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:-.
//#define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-.
//#define LOAD_FONT8N // Font 8. Alternative to Font 8 above, slightly narrower, so 3 digits fit a 160 pixel TFT
//#define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts
#define SMOOTH_FONT
#define SPI_FREQUENCY 40000000
#endif #endif

View File

@ -9,9 +9,6 @@
#define DISABLE_BROWNOUT 1 // comment out if you want to keep brownout feature #define DISABLE_BROWNOUT 1 // comment out if you want to keep brownout feature
#define HAS_DISPLAY 2 // TFT-LCD, support work in progess, not ready yet
#define MY_DISPLAY_FLIP 1 // use if display is rotated
#define HAS_LED NOT_A_PIN // no on board LED (?) #define HAS_LED NOT_A_PIN // no on board LED (?)
#define HAS_BUTTON (35) // on board button A #define HAS_BUTTON (35) // on board button A
@ -20,36 +17,19 @@
#define BAT_VOLTAGE_DIVIDER 2.605f // voltage divider #define BAT_VOLTAGE_DIVIDER 2.605f // voltage divider
// Display Settings // Display Settings
#define HAS_DISPLAY 2 // TFT-LCD
#define MY_DISPLAY_FLIP 1 // use if display is rotated
#define MY_DISPLAY_WIDTH 135 #define MY_DISPLAY_WIDTH 135
#define MY_DISPLAY_HEIGHT 240 #define MY_DISPLAY_HEIGHT 240
#define MY_DISPLAY_INVERT 1 #define MY_DISPLAY_INVERT 1
#define TFT_TYPE LCD_ST7789_135 // size 135x240 px
// setting for TTGO T-display
#define USER_SETUP_LOADED 1
#define ST7789_DRIVER 1
#define CGRAM_OFFSET
#define TFT_MOSI GPIO_NUM_19 // SPI #define TFT_MOSI GPIO_NUM_19 // SPI
#define TFT_MISO NOT_A_PIN // SPI
#define TFT_SCLK GPIO_NUM_18 // SPI #define TFT_SCLK GPIO_NUM_18 // SPI
#define TFT_CS GPIO_NUM_5 // Chip select control #define TFT_CS GPIO_NUM_5 // Chip select control
#define TFT_DC GPIO_NUM_16 // Data Command control #define TFT_DC GPIO_NUM_16 // Data Command control
#define TFT_RST GPIO_NUM_23 // Reset #define TFT_RST GPIO_NUM_23 // Reset
#define TFT_BL GPIO_NUM_4 // LED back-light #define TFT_BL GPIO_NUM_4 // LED back-light
#define TFT_FREQUENCY 40000000
#define TFT_RGB_ORDER TFT_BGR // Colour order Blue-Green-Red
#define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH
#define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters
#define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters
#define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm
#define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:-.
#define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-.
//#define LOAD_FONT8N // Font 8. Alternative to Font 8 above, slightly narrower, so 3 digits fit a 160 pixel TFT
#define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts
#define SMOOTH_FONT
#define SPI_FREQUENCY 40000000
#define SPI_READ_FREQUENCY 6000000
#endif #endif

View File

@ -9,9 +9,6 @@
#define DISABLE_BROWNOUT 1 // comment out if you want to keep brownout feature #define DISABLE_BROWNOUT 1 // comment out if you want to keep brownout feature
#define HAS_DISPLAY 2 // TFT-LCD, support work in progess, not ready yet
#define MY_DISPLAY_FLIP 1 // use if display is rotated
#define HAS_LED NOT_A_PIN // no on board LED (?) #define HAS_LED NOT_A_PIN // no on board LED (?)
#define HAS_BUTTON (33) // on board button A #define HAS_BUTTON (33) // on board button A
@ -20,39 +17,20 @@
#define BAT_VOLTAGE_DIVIDER 2.605f // voltage divider #define BAT_VOLTAGE_DIVIDER 2.605f // voltage divider
// Display Settings // Display Settings
#define HAS_DISPLAY 2 // TFT-LCD
#define MY_DISPLAY_FLIP 1 // use if display is rotated
#define MY_DISPLAY_WIDTH 80 #define MY_DISPLAY_WIDTH 80
#define MY_DISPLAY_HEIGHT 160 #define MY_DISPLAY_HEIGHT 160
#define MY_DISPLAY_INVERT 1 #define MY_DISPLAY_INVERT 1
#define TFT_TYPE LCD_ST7735S
// setting for TTGO T-display
#define USER_SETUP_LOADED 1
#define ST7735_DRIVER 1
#define CGRAM_OFFSET
#define TFT_MISO -1
#define TFT_MOSI GPIO_NUM_19 // SPI #define TFT_MOSI GPIO_NUM_19 // SPI
#define TFT_MISO NOT_A_PIN // SPI
#define TFT_SCLK GPIO_NUM_18 // SPI #define TFT_SCLK GPIO_NUM_18 // SPI
#define TFT_CS GPIO_NUM_5 // Chip select control #define TFT_CS GPIO_NUM_5 // Chip select control
#define TFT_DC GPIO_NUM_23 // Data Command control #define TFT_DC GPIO_NUM_23 // Data Command control
#define TFT_RST GPIO_NUM_26 // Reset #define TFT_RST GPIO_NUM_26 // Reset
#define TFT_BL GPIO_NUM_27 // LED back-light #define TFT_BL GPIO_NUM_27 // LED back-light
#define TFT_BACKLIGHT_ON 1 #define TFT_FREQUENCY 27000000
#define ST7735_GREENTAB160x80
#define TFT_RGB_ORDER TFT_BGR // Colour order Blue-Green-Red
#define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH
#define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters
#define LOAD_FONT4 // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters
#define LOAD_FONT6 // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm
#define LOAD_FONT7 // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:-.
#define LOAD_FONT8 // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-.
#define LOAD_GFXFF // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts
#define SMOOTH_FONT
#define SPI_FREQUENCY 27000000
#define SPI_READ_FREQUENCY 6000000
#endif #endif