mirror of
https://github.com/meshtastic/firmware.git
synced 2026-01-03 16:41:56 +00:00
* Add BaseUI support for L1 EInk * Fix Eink offset * Add joystick * Updates * Adjust Seeed Wio Tracker L1 E-Ink variant (#7326) * Rename variant Needs the -inkhud suffix to work correctly with the web flasher * Display driver for ZJY122250_0213BAAMFGN * Remove dead code from nicheGraphics.h Remnants of T-Echo's nicheGraphics.h file, which was used as a template. * Use ZJY122250_0213BAAMFGN driver Improves display health. We don't need as many full refreshes now. * Tidying * board_check = true --------- Co-authored-by: Ben Meadors <benmmeadors@gmail.com> * Consolidation * Add hack for existing InkHUD button functionality --------- Co-authored-by: todd-herbert <herbert.todd@gmail.com>
68 lines
2.1 KiB
C++
68 lines
2.1 KiB
C++
#include "./ZJY122250_0213BAAMFGN.h"
|
|
|
|
#ifdef MESHTASTIC_INCLUDE_NICHE_GRAPHICS
|
|
|
|
using namespace NicheGraphics::Drivers;
|
|
|
|
// Map the display controller IC's output to the connected panel
|
|
void ZJY122250_0213BAAMFGN::configScanning()
|
|
{
|
|
// "Driver output control"
|
|
// Scan gates from 0 to 249 (vertical resolution 250px)
|
|
sendCommand(0x01);
|
|
sendData(0xF9);
|
|
sendData(0x00);
|
|
sendData(0x00);
|
|
}
|
|
|
|
// Specify which information is used to control the sequence of voltages applied to move the pixels
|
|
// - For this display, configUpdateSequence() specifies that a suitable LUT will be loaded from
|
|
// the controller IC's OTP memory, when the update procedure begins.
|
|
void ZJY122250_0213BAAMFGN::configWaveform()
|
|
{
|
|
switch (updateType) {
|
|
case FAST:
|
|
sendCommand(0x3C); // Border waveform:
|
|
sendData(0x80); // VCOM
|
|
break;
|
|
case FULL:
|
|
default:
|
|
sendCommand(0x3C); // Border waveform:
|
|
sendData(0x01); // Follow LUT 1 (blink same as white pixels)
|
|
break;
|
|
}
|
|
|
|
sendCommand(0x18); // Temperature sensor:
|
|
sendData(0x80); // Use internal temperature sensor to select an appropriate refresh waveform
|
|
}
|
|
|
|
void ZJY122250_0213BAAMFGN::configUpdateSequence()
|
|
{
|
|
switch (updateType) {
|
|
case FAST:
|
|
sendCommand(0x22); // Set "update sequence"
|
|
sendData(0xFF); // Will load LUT from OTP memory, Display mode 2 "differential refresh"
|
|
break;
|
|
|
|
case FULL:
|
|
default:
|
|
sendCommand(0x22); // Set "update sequence"
|
|
sendData(0xF7); // Will load LUT from OTP memory
|
|
break;
|
|
}
|
|
}
|
|
|
|
// Once the refresh operation has been started,
|
|
// begin periodically polling the display to check for completion, using the normal Meshtastic threading code
|
|
// Only used when refresh is "async"
|
|
void ZJY122250_0213BAAMFGN::detachFromUpdate()
|
|
{
|
|
switch (updateType) {
|
|
case FAST:
|
|
return beginPolling(50, 500); // At least 500ms for fast refresh
|
|
case FULL:
|
|
default:
|
|
return beginPolling(100, 2000); // At least 2 seconds for full refresh
|
|
}
|
|
}
|
|
#endif // MESHTASTIC_INCLUDE_NICHE_GRAPHICS
|