sforkowany z mirror/meshtastic-firmware
PPR1 fix screen mirroring on LCD
rodzic
18bbf3523e
commit
0767c8be03
|
@ -7,12 +7,18 @@
|
||||||
|
|
||||||
### PPR1 TODO
|
### PPR1 TODO
|
||||||
|
|
||||||
|
* fix usb
|
||||||
|
* fix bluetooth
|
||||||
* Test GPS
|
* Test GPS
|
||||||
* make ST7567Wire driver less ugly
|
* make ST7567Wire driver less ugly, move OLED stuff into a common class treee
|
||||||
|
* add power save mode for lcd per page 31 of datasheet
|
||||||
|
* add power off sequence per datasheet to lcd driver
|
||||||
* leave LCD screen on most of the time (because it needs little power)
|
* leave LCD screen on most of the time (because it needs little power)
|
||||||
|
|
||||||
### general nrf52 TODO:
|
### general nrf52 TODO:
|
||||||
|
|
||||||
|
- turn off transitions on eink screens
|
||||||
|
- change update interval on eink from 1/sec frames to one frame every 5 mins
|
||||||
- enter SDS state at correct time (to protect battery or loss of phone contact)
|
- enter SDS state at correct time (to protect battery or loss of phone contact)
|
||||||
- show screen on eink when we enter SDS state (with app info and say sleeping)
|
- show screen on eink when we enter SDS state (with app info and say sleeping)
|
||||||
- require button press to pair
|
- require button press to pair
|
||||||
|
|
|
@ -147,7 +147,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
// Flip the screen upside down by default as it makes more sense on T-BEAM
|
// Flip the screen upside down by default as it makes more sense on T-BEAM
|
||||||
// devices. Comment this out to not rotate screen 180 degrees.
|
// devices. Comment this out to not rotate screen 180 degrees.
|
||||||
#define FLIP_SCREEN_VERTICALLY
|
#define SCREEN_FLIP_VERTICALLY
|
||||||
|
|
||||||
|
// Define if screen should be mirrored left to right
|
||||||
|
// #define SCREEN_MIRROR
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
// GPS
|
// GPS
|
||||||
|
|
|
@ -627,7 +627,8 @@ void Screen::setup()
|
||||||
// is never found when probing i2c and therefore we don't call setup and never want to do (invalid) accesses to this device.
|
// is never found when probing i2c and therefore we don't call setup and never want to do (invalid) accesses to this device.
|
||||||
useDisplay = true;
|
useDisplay = true;
|
||||||
|
|
||||||
dispdev.resetOrientation();
|
// I think this is not needed - redundant with ui.init
|
||||||
|
// dispdev.resetOrientation();
|
||||||
|
|
||||||
// Initialising the UI will init the display too.
|
// Initialising the UI will init the display too.
|
||||||
ui.init();
|
ui.init();
|
||||||
|
@ -635,7 +636,12 @@ void Screen::setup()
|
||||||
displayWidth = dispdev.width();
|
displayWidth = dispdev.width();
|
||||||
displayHeight = dispdev.height();
|
displayHeight = dispdev.height();
|
||||||
|
|
||||||
ui.setTimePerTransition(300); // msecs
|
uint16_t transitionTime = 300; // msecs
|
||||||
|
#ifdef HAS_EINK
|
||||||
|
transitionTime = 0;
|
||||||
|
#endif
|
||||||
|
ui.setTimePerTransition(transitionTime);
|
||||||
|
|
||||||
ui.setIndicatorPosition(BOTTOM);
|
ui.setIndicatorPosition(BOTTOM);
|
||||||
// Defines where the first frame is located in the bar.
|
// Defines where the first frame is located in the bar.
|
||||||
ui.setIndicatorDirection(LEFT_RIGHT);
|
ui.setIndicatorDirection(LEFT_RIGHT);
|
||||||
|
@ -661,7 +667,9 @@ void Screen::setup()
|
||||||
// Set up a log buffer with 3 lines, 32 chars each.
|
// Set up a log buffer with 3 lines, 32 chars each.
|
||||||
dispdev.setLogBuffer(3, 32);
|
dispdev.setLogBuffer(3, 32);
|
||||||
|
|
||||||
#ifdef FLIP_SCREEN_VERTICALLY
|
#ifdef SCREEN_MIRROR
|
||||||
|
dispdev.mirrorScreen();
|
||||||
|
#elif defined(SCREEN_FLIP_VERTICALLY)
|
||||||
dispdev.flipScreenVertically();
|
dispdev.flipScreenVertically();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,11 @@
|
||||||
#include "power.h"
|
#include "power.h"
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
// 0 to 255, though particular variants might define different defaults
|
||||||
|
#ifndef BRIGHTNESS_DEFAULT
|
||||||
|
#define BRIGHTNESS_DEFAULT 150
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace graphics
|
namespace graphics
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -99,7 +104,7 @@ class Screen : public concurrency::OSThread
|
||||||
|
|
||||||
// Implementation to Adjust Brightness
|
// Implementation to Adjust Brightness
|
||||||
void adjustBrightness();
|
void adjustBrightness();
|
||||||
uint8_t brightness = 150;
|
uint8_t brightness = BRIGHTNESS_DEFAULT;
|
||||||
|
|
||||||
/// Starts showing the Bluetooth PIN screen.
|
/// Starts showing the Bluetooth PIN screen.
|
||||||
//
|
//
|
||||||
|
|
|
@ -256,9 +256,9 @@ void setup()
|
||||||
// FIXME - move this someplace better, LCD is at address 0x3F
|
// FIXME - move this someplace better, LCD is at address 0x3F
|
||||||
pinMode(PIN_LCD_RESET, OUTPUT);
|
pinMode(PIN_LCD_RESET, OUTPUT);
|
||||||
digitalWrite(PIN_LCD_RESET, 0);
|
digitalWrite(PIN_LCD_RESET, 0);
|
||||||
delay(20);
|
delay(1);
|
||||||
digitalWrite(PIN_LCD_RESET, 1);
|
digitalWrite(PIN_LCD_RESET, 1);
|
||||||
delay(20);
|
delay(1);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
scanI2Cdevice();
|
scanI2Cdevice();
|
||||||
|
|
|
@ -138,7 +138,7 @@ bool NodeDB::resetRadioConfig()
|
||||||
crypto->setKey(channelSettings.psk.size, channelSettings.psk.bytes);
|
crypto->setKey(channelSettings.psk.size, channelSettings.psk.bytes);
|
||||||
|
|
||||||
// temp hack for quicker testing
|
// temp hack for quicker testing
|
||||||
devicestate.no_save = true;
|
// devicestate.no_save = true;
|
||||||
if (devicestate.no_save) {
|
if (devicestate.no_save) {
|
||||||
DEBUG_MSG("***** DEVELOPMENT MODE - DO NOT RELEASE *****\n");
|
DEBUG_MSG("***** DEVELOPMENT MODE - DO NOT RELEASE *****\n");
|
||||||
|
|
||||||
|
|
|
@ -119,6 +119,9 @@ static const uint8_t AREF = PIN_AREF;
|
||||||
#define PIN_LCD_RESET 23 // active low, pulse low for 20ms at boot
|
#define PIN_LCD_RESET 23 // active low, pulse low for 20ms at boot
|
||||||
#define USE_ST7567
|
#define USE_ST7567
|
||||||
|
|
||||||
|
// Define if screen should be mirrored left to right
|
||||||
|
#define SCREEN_MIRROR
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SPI Interfaces
|
* SPI Interfaces
|
||||||
*/
|
*/
|
||||||
|
|
Ładowanie…
Reference in New Issue