mirror of
https://github.com/meshtastic/firmware.git
synced 2025-06-08 14:12:05 +00:00
Merge branch 'master' into unify-tft
This commit is contained in:
commit
51c90be8ed
@ -8,8 +8,8 @@ plugins:
|
|||||||
uri: https://github.com/trunk-io/plugins
|
uri: https://github.com/trunk-io/plugins
|
||||||
lint:
|
lint:
|
||||||
enabled:
|
enabled:
|
||||||
- checkov@3.2.435
|
- checkov@3.2.436
|
||||||
- renovate@40.36.2
|
- renovate@40.41.0
|
||||||
- prettier@3.5.3
|
- prettier@3.5.3
|
||||||
- trufflehog@3.88.35
|
- trufflehog@3.88.35
|
||||||
- yamllint@1.37.1
|
- yamllint@1.37.1
|
||||||
@ -28,7 +28,7 @@ lint:
|
|||||||
- shellcheck@0.10.0
|
- shellcheck@0.10.0
|
||||||
- black@25.1.0
|
- black@25.1.0
|
||||||
- git-diff-check
|
- git-diff-check
|
||||||
- gitleaks@8.26.0
|
- gitleaks@8.27.0
|
||||||
- clang-format@16.0.3
|
- clang-format@16.0.3
|
||||||
ignore:
|
ignore:
|
||||||
- linters: [ALL]
|
- linters: [ALL]
|
||||||
|
@ -5,7 +5,7 @@ E-Ink display driver
|
|||||||
- Manufacturer: DKE
|
- Manufacturer: DKE
|
||||||
- Size: 2.13 inch
|
- Size: 2.13 inch
|
||||||
- Resolution: 122px x 250px
|
- Resolution: 122px x 250px
|
||||||
- Flex connector marking: FPC-7528B
|
- Flex connector marking (not a unique identifier): FPC-7528B
|
||||||
|
|
||||||
Note: this is from an older generation of DKE panels, which still used Solomon Systech controller ICs.
|
Note: this is from an older generation of DKE panels, which still used Solomon Systech controller ICs.
|
||||||
DKE's website suggests that the latest DEPG0213BN displays may use Fitipower controllers instead.
|
DKE's website suggests that the latest DEPG0213BN displays may use Fitipower controllers instead.
|
||||||
|
@ -5,7 +5,7 @@ E-Ink display driver
|
|||||||
- Manufacturer: DKE
|
- Manufacturer: DKE
|
||||||
- Size: 2.9 inch
|
- Size: 2.9 inch
|
||||||
- Resolution: 128px x 296px
|
- Resolution: 128px x 296px
|
||||||
- Flex connector marking: FPC-7519 rev.b
|
- Flex connector marking (not a unique identifier): FPC-7519 rev.b
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ E-Ink display driver
|
|||||||
- Manufacturer: Goodisplay
|
- Manufacturer: Goodisplay
|
||||||
- Size: 1.54 inch
|
- Size: 1.54 inch
|
||||||
- Resolution: 200px x 200px
|
- Resolution: 200px x 200px
|
||||||
- Flex connector marking: FPC-B001
|
- Flex connector marking (not a unique identifier): FPC-B001
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -5,7 +5,9 @@ E-Ink display driver
|
|||||||
- Manufacturer: Goodisplay
|
- Manufacturer: Goodisplay
|
||||||
- Size: 2.13 inch
|
- Size: 2.13 inch
|
||||||
- Resolution: 250px x 122px
|
- Resolution: 250px x 122px
|
||||||
- Flex connector marking: FPC-A002
|
- Flex connector marking (not a unique identifier):
|
||||||
|
- FPC-A002
|
||||||
|
- FPC-A005 20.06.15 TRX
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ E-Ink display driver
|
|||||||
- Manufacturer: Holitech
|
- Manufacturer: Holitech
|
||||||
- Size: 4.2 inch
|
- Size: 4.2 inch
|
||||||
- Resolution: 400px x 300px
|
- Resolution: 400px x 300px
|
||||||
- Flex connector marking: HINK-E042A07-FPC-A1
|
- Flex connector marking (not a unique identifier): HINK-E042A07-FPC-A1
|
||||||
- Silver sticker with QR code, marked: HE042A87
|
- Silver sticker with QR code, marked: HE042A87
|
||||||
|
|
||||||
Note: as of Feb. 2025, these panels are used for "WeActStudio 4.2in B&W" display modules
|
Note: as of Feb. 2025, these panels are used for "WeActStudio 4.2in B&W" display modules
|
||||||
|
@ -5,7 +5,6 @@ E-Ink display driver
|
|||||||
- Manufacturer: WISEVAST
|
- Manufacturer: WISEVAST
|
||||||
- Size: 2.13 inch
|
- Size: 2.13 inch
|
||||||
- Resolution: 122px x 255px
|
- Resolution: 122px x 255px
|
||||||
- Flex connector marking: Soldering connector, no connector is needed
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ E-Ink display driver
|
|||||||
- Manufacturer: Wisevast
|
- Manufacturer: Wisevast
|
||||||
- Size: 2.13 inch
|
- Size: 2.13 inch
|
||||||
- Resolution: 122px x 250px
|
- Resolution: 122px x 250px
|
||||||
- Flex connector marking: HINK-E0213A162-FPC-A0 (Hidden, printed on back-side)
|
- Flex connector marking (not a unique identifier): HINK-E0213A162-FPC-A0 (Hidden, printed on back-side)
|
||||||
|
|
||||||
Note: this display uses an uncommon controller IC, Fitipower JD79656.
|
Note: this display uses an uncommon controller IC, Fitipower JD79656.
|
||||||
It is implemented as a "one-off", directly inheriting the EInk base class, unlike SSD16XX displays.
|
It is implemented as a "one-off", directly inheriting the EInk base class, unlike SSD16XX displays.
|
||||||
|
59
src/graphics/niche/Drivers/EInk/ZJY128296_029EAAMFGN.cpp
Normal file
59
src/graphics/niche/Drivers/EInk/ZJY128296_029EAAMFGN.cpp
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
#include "./ZJY128296_029EAAMFGN.h"
|
||||||
|
|
||||||
|
#ifdef MESHTASTIC_INCLUDE_NICHE_GRAPHICS
|
||||||
|
|
||||||
|
using namespace NicheGraphics::Drivers;
|
||||||
|
|
||||||
|
// Map the display controller IC's output to the connected panel
|
||||||
|
void ZJY128296_029EAAMFGN::configScanning()
|
||||||
|
{
|
||||||
|
// "Driver output control"
|
||||||
|
// Scan gates from 0 to 295 (vertical resolution 296px)
|
||||||
|
sendCommand(0x01);
|
||||||
|
sendData(0x27); // Number of gates (295, bits 0-7)
|
||||||
|
sendData(0x01); // Number of gates (295, bit 8)
|
||||||
|
sendData(0x00); // (Do not invert scanning order)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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 ZJY128296_029EAAMFGN::configWaveform()
|
||||||
|
{
|
||||||
|
sendCommand(0x3C); // Border waveform:
|
||||||
|
sendData(0x05); // Screen border should follow LUT1 waveform (actively drive pixels white)
|
||||||
|
|
||||||
|
sendCommand(0x18); // Temperature sensor:
|
||||||
|
sendData(0x80); // Use internal temperature sensor to select an appropriate refresh waveform
|
||||||
|
}
|
||||||
|
|
||||||
|
void ZJY128296_029EAAMFGN::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 ZJY128296_029EAAMFGN::detachFromUpdate()
|
||||||
|
{
|
||||||
|
switch (updateType) {
|
||||||
|
case FAST:
|
||||||
|
return beginPolling(50, 300); // At least 300ms for fast refresh
|
||||||
|
case FULL:
|
||||||
|
default:
|
||||||
|
return beginPolling(100, 2000); // At least 2 seconds for full refresh
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif // MESHTASTIC_INCLUDE_NICHE_GRAPHICS
|
44
src/graphics/niche/Drivers/EInk/ZJY128296_029EAAMFGN.h
Normal file
44
src/graphics/niche/Drivers/EInk/ZJY128296_029EAAMFGN.h
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
/*
|
||||||
|
|
||||||
|
E-Ink display driver
|
||||||
|
- ZJY128296-029EAAMFGN
|
||||||
|
- Manufacturer: Zhongjingyuan
|
||||||
|
- Size: 2.9 inch
|
||||||
|
- Resolution: 128px x 296px
|
||||||
|
- Flex connector label (not a unique identifier): FPC-A005 20.06.15 TRX
|
||||||
|
|
||||||
|
Note: as of Feb. 2025, these panels are used for "WeActStudio 2.9in B&W" display modules
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#ifdef MESHTASTIC_INCLUDE_NICHE_GRAPHICS
|
||||||
|
|
||||||
|
#include "configuration.h"
|
||||||
|
|
||||||
|
#include "./SSD16XX.h"
|
||||||
|
|
||||||
|
namespace NicheGraphics::Drivers
|
||||||
|
{
|
||||||
|
class ZJY128296_029EAAMFGN : public SSD16XX
|
||||||
|
{
|
||||||
|
// Display properties
|
||||||
|
private:
|
||||||
|
static constexpr uint32_t width = 128;
|
||||||
|
static constexpr uint32_t height = 296;
|
||||||
|
static constexpr UpdateTypes supported = (UpdateTypes)(FULL | FAST);
|
||||||
|
|
||||||
|
public:
|
||||||
|
ZJY128296_029EAAMFGN() : SSD16XX(width, height, supported) {}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void configScanning() override;
|
||||||
|
void configWaveform() override;
|
||||||
|
void configUpdateSequence() override;
|
||||||
|
void detachFromUpdate() override;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace NicheGraphics::Drivers
|
||||||
|
|
||||||
|
#endif // MESHTASTIC_INCLUDE_NICHE_GRAPHICS
|
Loading…
Reference in New Issue
Block a user