mirror of
https://github.com/meshtastic/firmware.git
synced 2025-06-09 06:32:06 +00:00
Fixed XPT2046 syntax and using unPhone library to clean up support (#3631)
* Fixed XPT2046 syntax and using unPhone library to clean up main and TFTDisplay. * strange extra edits removed wtf
This commit is contained in:
parent
7d3175dc83
commit
3413b9da41
@ -411,8 +411,7 @@ class LGFX : public lgfx::LGFX_Device
|
|||||||
lgfx::Panel_HX8357D _panel_instance;
|
lgfx::Panel_HX8357D _panel_instance;
|
||||||
lgfx::Bus_SPI _bus_instance;
|
lgfx::Bus_SPI _bus_instance;
|
||||||
#if defined(USE_XPT2046)
|
#if defined(USE_XPT2046)
|
||||||
lgfx::ITouch *_touch_instance;
|
lgfx::Touch_XPT2046 _touch_instance;
|
||||||
// lgfx::Touch_XPT2046 _touch_instance;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -466,8 +465,7 @@ class LGFX : public lgfx::LGFX_Device
|
|||||||
#if defined(USE_XPT2046)
|
#if defined(USE_XPT2046)
|
||||||
{
|
{
|
||||||
// Configure settings for touch control.
|
// Configure settings for touch control.
|
||||||
_touch_instance = new lgfx::Touch_XPT2046;
|
auto touch_cfg = _touch_instance.config();
|
||||||
auto touch_cfg = _touch_instance->config();
|
|
||||||
|
|
||||||
touch_cfg.pin_cs = TOUCH_CS;
|
touch_cfg.pin_cs = TOUCH_CS;
|
||||||
touch_cfg.x_min = 0;
|
touch_cfg.x_min = 0;
|
||||||
@ -478,8 +476,8 @@ class LGFX : public lgfx::LGFX_Device
|
|||||||
touch_cfg.bus_shared = true;
|
touch_cfg.bus_shared = true;
|
||||||
touch_cfg.offset_rotation = 1;
|
touch_cfg.offset_rotation = 1;
|
||||||
|
|
||||||
_touch_instance->config(touch_cfg);
|
_touch_instance.config(touch_cfg);
|
||||||
//_panel_instance->setTouch(_touch_instance);
|
_panel_instance.setTouch(&_touch_instance);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
setPanel(&_panel_instance);
|
setPanel(&_panel_instance);
|
||||||
@ -496,6 +494,11 @@ static LGFX *tft = nullptr;
|
|||||||
#include "TFTDisplay.h"
|
#include "TFTDisplay.h"
|
||||||
#include <SPI.h>
|
#include <SPI.h>
|
||||||
|
|
||||||
|
#ifdef UNPHONE
|
||||||
|
#include "unPhone.h"
|
||||||
|
extern unPhone unphone;
|
||||||
|
#endif
|
||||||
|
|
||||||
TFTDisplay::TFTDisplay(uint8_t address, int sda, int scl, OLEDDISPLAY_GEOMETRY geometry, HW_I2C i2cBus)
|
TFTDisplay::TFTDisplay(uint8_t address, int sda, int scl, OLEDDISPLAY_GEOMETRY geometry, HW_I2C i2cBus)
|
||||||
{
|
{
|
||||||
LOG_DEBUG("TFTDisplay!\n");
|
LOG_DEBUG("TFTDisplay!\n");
|
||||||
@ -576,11 +579,7 @@ void TFTDisplay::sendCommand(uint8_t com)
|
|||||||
digitalWrite(VTFT_CTRL, LOW);
|
digitalWrite(VTFT_CTRL, LOW);
|
||||||
#endif
|
#endif
|
||||||
#ifdef UNPHONE
|
#ifdef UNPHONE
|
||||||
Wire.beginTransmission(0x26);
|
unphone.backlight(true); // using unPhone library
|
||||||
Wire.write(0x02);
|
|
||||||
Wire.write(0x04); // Backlight on
|
|
||||||
Wire.write(0x22); // G&B LEDs off
|
|
||||||
Wire.endTransmission();
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef RAK14014
|
#ifdef RAK14014
|
||||||
#elif !defined(M5STACK)
|
#elif !defined(M5STACK)
|
||||||
@ -612,11 +611,7 @@ void TFTDisplay::sendCommand(uint8_t com)
|
|||||||
digitalWrite(VTFT_CTRL, HIGH);
|
digitalWrite(VTFT_CTRL, HIGH);
|
||||||
#endif
|
#endif
|
||||||
#ifdef UNPHONE
|
#ifdef UNPHONE
|
||||||
Wire.beginTransmission(0x26);
|
unphone.backlight(false); // using unPhone library
|
||||||
Wire.write(0x02);
|
|
||||||
Wire.write(0x00); // Backlight off
|
|
||||||
Wire.write(0x22); // G&B LEDs off
|
|
||||||
Wire.endTransmission();
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef RAK14014
|
#ifdef RAK14014
|
||||||
#elif !defined(M5STACK)
|
#elif !defined(M5STACK)
|
||||||
@ -690,11 +685,7 @@ bool TFTDisplay::connect()
|
|||||||
digitalWrite(ST7735_BL_V05, TFT_BACKLIGHT_ON);
|
digitalWrite(ST7735_BL_V05, TFT_BACKLIGHT_ON);
|
||||||
#endif
|
#endif
|
||||||
#ifdef UNPHONE
|
#ifdef UNPHONE
|
||||||
Wire.beginTransmission(0x26);
|
unphone.backlight(true); // using unPhone library
|
||||||
Wire.write(0x02);
|
|
||||||
Wire.write(0x04); // Backlight on
|
|
||||||
Wire.write(0x22); // G&B LEDs off
|
|
||||||
Wire.endTransmission();
|
|
||||||
LOG_INFO("Power to TFT Backlight\n");
|
LOG_INFO("Power to TFT Backlight\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
14
src/main.cpp
14
src/main.cpp
@ -590,20 +590,6 @@ void setup()
|
|||||||
if (config.display.oled != meshtastic_Config_DisplayConfig_OledType_OLED_AUTO)
|
if (config.display.oled != meshtastic_Config_DisplayConfig_OledType_OLED_AUTO)
|
||||||
screen_model = config.display.oled;
|
screen_model = config.display.oled;
|
||||||
|
|
||||||
#ifdef UNPHONE
|
|
||||||
// initialise IO expander with pinmodes
|
|
||||||
Wire.beginTransmission(0x26);
|
|
||||||
Wire.write(0x06);
|
|
||||||
Wire.write(0x7A);
|
|
||||||
Wire.write(0xDD);
|
|
||||||
Wire.endTransmission();
|
|
||||||
Wire.beginTransmission(0x26);
|
|
||||||
Wire.write(0x02);
|
|
||||||
Wire.write(0x04); // Backlight on
|
|
||||||
Wire.write(0x22); // G&B LEDs off
|
|
||||||
Wire.endTransmission();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(USE_SH1107)
|
#if defined(USE_SH1107)
|
||||||
screen_model = meshtastic_Config_DisplayConfig_OledType_OLED_SH1107; // set dimension of 128x128
|
screen_model = meshtastic_Config_DisplayConfig_OledType_OLED_SH1107; // set dimension of 128x128
|
||||||
display_geometry = GEOMETRY_128_128;
|
display_geometry = GEOMETRY_128_128;
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
|
; platformio.ini for unphone meshtastic
|
||||||
|
|
||||||
[env:unphone]
|
[env:unphone]
|
||||||
;build_type = debug ; to make it possible to step through our jtag debugger
|
|
||||||
extends = esp32s3_base
|
extends = esp32s3_base
|
||||||
board_level = extra
|
board_level = extra
|
||||||
board = unphone9
|
board = unphone9
|
||||||
@ -14,6 +16,15 @@ build_flags = ${esp32_base.build_flags}
|
|||||||
-D UNPHONE
|
-D UNPHONE
|
||||||
-I variants/unphone
|
-I variants/unphone
|
||||||
-D ARDUINO_USB_MODE=0
|
-D ARDUINO_USB_MODE=0
|
||||||
|
-D UNPHONE_ACCEL=0
|
||||||
|
-D UNPHONE_TOUCHS=0
|
||||||
|
-D UNPHONE_SDCARD=0
|
||||||
|
-D UNPHONE_UI0=0
|
||||||
|
-D UNPHONE_LORA=0
|
||||||
|
-D UNPHONE_FACTORY_MODE=0
|
||||||
|
|
||||||
|
build_src_filter = ${esp32_base.build_src_filter} +<../variants/unphone>
|
||||||
|
|
||||||
lib_deps = ${esp32s3_base.lib_deps}
|
lib_deps = ${esp32s3_base.lib_deps}
|
||||||
lovyan03/LovyanGFX @ ^1.1.8
|
lovyan03/LovyanGFX @ ^1.1.8
|
||||||
|
https://gitlab.com/hamishcunningham/unphonelibrary#meshtastic @ ^9.0.0
|
20
variants/unphone/variant.cpp
Normal file
20
variants/unphone/variant.cpp
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
// meshtastic/firmware/variants/unphone/variant.cpp
|
||||||
|
|
||||||
|
#include "unPhone.h"
|
||||||
|
unPhone unphone = unPhone("meshtastic_unphone");
|
||||||
|
|
||||||
|
void initVariant()
|
||||||
|
{
|
||||||
|
unphone.begin(); // initialise hardware etc.
|
||||||
|
unphone.store(unphone.buildTime);
|
||||||
|
unphone.printWakeupReason(); // what woke us up? (stored, not printed :|)
|
||||||
|
unphone.checkPowerSwitch(); // if power switch is off, shutdown
|
||||||
|
unphone.backlight(false); // setup backlight and make sure its off
|
||||||
|
|
||||||
|
for (int i = 0; i < 3; i++) { // buzz a bit
|
||||||
|
unphone.vibe(true);
|
||||||
|
delay(150);
|
||||||
|
unphone.vibe(false);
|
||||||
|
delay(150);
|
||||||
|
}
|
||||||
|
}
|
@ -1,3 +1,7 @@
|
|||||||
|
// meshtastic/firmware/variants/unphone/variant.h
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
#define SPI_SCK 39
|
#define SPI_SCK 39
|
||||||
#define SPI_MOSI 40
|
#define SPI_MOSI 40
|
||||||
#define SPI_MISO 41
|
#define SPI_MISO 41
|
||||||
@ -28,7 +32,7 @@
|
|||||||
#define TFT_WIDTH 320
|
#define TFT_WIDTH 320
|
||||||
#define TFT_OFFSET_X 0
|
#define TFT_OFFSET_X 0
|
||||||
#define TFT_OFFSET_Y 0
|
#define TFT_OFFSET_Y 0
|
||||||
#define TFT_OFFSET_ROTATION 6 // the unPhone's screen is wired unusually, 0 is typical value here
|
#define TFT_OFFSET_ROTATION 6 // unPhone's screen wired unusually, 0 typical
|
||||||
#define TFT_INVERT false
|
#define TFT_INVERT false
|
||||||
#define SCREEN_ROTATE true
|
#define SCREEN_ROTATE true
|
||||||
#define SCREEN_TRANSITION_FRAMERATE 5
|
#define SCREEN_TRANSITION_FRAMERATE 5
|
||||||
@ -37,7 +41,10 @@
|
|||||||
#define USE_XPT2046 1
|
#define USE_XPT2046 1
|
||||||
#define TOUCH_CS 38
|
#define TOUCH_CS 38
|
||||||
|
|
||||||
#define HAS_GPS 0 // the unphone doesn't have a gps module
|
#define HAS_GPS \
|
||||||
|
0 // the unphone doesn't have a gps module by default (though
|
||||||
|
// GPS featherwing -- https://www.adafruit.com/product/3133
|
||||||
|
// -- can be added)
|
||||||
#undef GPS_RX_PIN
|
#undef GPS_RX_PIN
|
||||||
#undef GPS_TX_PIN
|
#undef GPS_TX_PIN
|
||||||
|
|
||||||
@ -49,6 +56,7 @@
|
|||||||
|
|
||||||
#define BUTTON_PIN 21 // Button 3 - square - top button in landscape mode
|
#define BUTTON_PIN 21 // Button 3 - square - top button in landscape mode
|
||||||
#define BUTTON_NEED_PULLUP // we do need a helping hand up
|
#define BUTTON_NEED_PULLUP // we do need a helping hand up
|
||||||
|
#define BUTTON_PIN_ALT 45 // Button 1 - triangle - bottom button in landscape mode
|
||||||
|
|
||||||
#define I2C_SDA 3 // I2C pins for this board
|
#define I2C_SDA 3 // I2C pins for this board
|
||||||
#define I2C_SCL 4
|
#define I2C_SCL 4
|
||||||
@ -58,6 +66,6 @@
|
|||||||
// ratio of voltage divider = 3.20 (R1=100k, R2=220k)
|
// ratio of voltage divider = 3.20 (R1=100k, R2=220k)
|
||||||
// #define ADC_MULTIPLIER 3.2
|
// #define ADC_MULTIPLIER 3.2
|
||||||
|
|
||||||
// #define BATTERY_PIN 13 // A battery voltage measurement pin, voltage divider connected here to measure battery voltage
|
// #define BATTERY_PIN 13 // battery V measurement pin; vbat divider is here
|
||||||
// #define ADC_CHANNEL ADC2_GPIO13_CHANNEL
|
// #define ADC_CHANNEL ADC2_GPIO13_CHANNEL
|
||||||
// #define BAT_MEASURE_ADC_UNIT 2
|
// #define BAT_MEASURE_ADC_UNIT 2
|
Loading…
Reference in New Issue
Block a user