Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Changes to Wireless Paper V1.0 and V1.1 #5

Merged
merged 3 commits into from
Mar 4, 2024

Conversation

todd-herbert
Copy link

@todd-herbert todd-herbert commented Mar 3, 2024

DEPG0213BNS800 - Heltec Wireless Paper V1.0

  • Implement a missing soft-reset when swapping between fast and full refresh.
  • Change border waveform used for fast refresh.

LCMEN2R13EFC1 - Heltec Wireless Paper V1.1

  • Rewritten, modeled on another class which has same limitation as LCMEN2R13EFC1 (no support for "partial window").
  • Fast refresh implemented, using custom LUT.

Note: Changes to LCMEN2R13EFC1 will not immediately impact meshtastic/firmware. A further pull-request is required to point lib_deps back at this repo.

Implement a missing soft-reset. Change fast refresh border waveform
Implement fast refresh
void GxEPD2_213_BN::_Init_Part()
{
_InitDisplay();
_writeCommand(0x3C); // Border Waveform
_writeData(0xC0); // Floating (less noise-accumulation?)
Copy link
Author

@todd-herbert todd-herbert Mar 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note border waveform change to 0xC0 - "Hi-Z".
Previous value was 0x05 - "Follow LUT".
This change seems to prevent "static" accumulating on the display border, during fast-refresh.
It would be good to get confirmation that this change is safe and appropriate.

// Fast refresh waveform is unofficial (experimental?)
// https://github.com/todd-herbert/heltec-eink-modules/tree/v4.1.2/src/Displays/LCMEN2R13EFC1/LUTs

const unsigned char GxEPD2_213_FC1::lut_20_vcomDC_partial[] PROGMEM =
Copy link
Author

@todd-herbert todd-herbert Mar 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be safe, before opening pull request, I tested the custom LUT by running the Meshtastic carousel (every 20 seconds) for just less than 3 hours.
~500 fast refreshes were performed, between occasional full refreshes (EInkDynamicDisplay). No negative effect was noticed.

The operation is slightly unconventional, but it does seem to produce reasonable results. Would be good to get some confirmation here that this all looks okay, if possible.

@todd-herbert
Copy link
Author

todd-herbert commented Mar 3, 2024

@thebentern meshtastic/firmware#3320, which was merged yesterday, depends on this pull request. I might not have made that clear, sorry.

@GUVWAF
Copy link
Member

GUVWAF commented Mar 4, 2024

Great work @todd-herbert!

Just tested this on a Wireless Paper v1.1 using the master branch of the firmware while pointing this lib to the commit of your repository. Fast updates look very clean and I also can’t reproduce this issue anymore, except when it happens to do a full refresh when sending a lot of packets.

For the confirmation of the specific code changes you mention, I would refer to @markbirss.

@thebentern thebentern merged commit 378318c into meshtastic:master Mar 4, 2024
@todd-herbert todd-herbert deleted the wireless-paper-v1.1 branch March 7, 2024 14:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants