Skip to content

Elecrow eink refactor - #3659

Merged
fdlamotte merged 5 commits into
meshcore-dev:devfrom
fdlamotte:elecrow_eink_refactor
Oct 24, 2026
Merged

fdlamotte merged 5 commits into
meshcore-dev:devfrom
fdlamotte:elecrow_eink_refactor

Conversation

@fdlamotte

Copy link
Copy Markdown
Collaborator

This PR tackles with the inconsistencies in behaviour between eink devices and tries to resolve #3612

  • adds backlight button on M1
  • backlight stays on 5sec after release
  • double click on backlight btn refreshes screen
  • triple click on backlight btn turns screen off (and blanks it)
  • auto-off has been generalized to 15min (could be adjusted via cli)
  • compile time option for blanking the screen or not when turning it off (could be cli command)

@ClemPera

ClemPera commented Oct 24, 2026 •

Copy link
Copy Markdown

I'm testing with the M1, the issue I have encountered is that nothing works with the "backlight" button (simple press, double press, triple press or long press) and there is no backlight at all.

Also, the regression of the M1 in #3612 is not fixed, when the screen is cleared after 900s and you push the button to power it up again, half of the screen is not showing. (see image below)

image

@fdlamotte

Copy link
Copy Markdown
Collaborator Author

I'm testing with the M1, the issue I have encountered is that nothing works with the "backlight" button (simple press, double press, triple press or long press) and there is no backlight at all.

Ok, this probably means that pin definition for second button is not good (or that the button has not been initialized)

Also, the regression of the M1 in #3612 is not fixed, when the screen is cleared after 900s and you push the button to power it up again, half of the screen is not showing. (see image below)

Thanks for the picture, lots of information there

I think I'll have to push on elecrow so they send me an M1, because I probably need to play with it to see how the screen responds to different stimulus

@fdlamotte

Copy link
Copy Markdown
Collaborator Author

I'm testing with the M1, the issue I have encountered is that nothing works with the "backlight" button (simple press, double press, triple press or long press) and there is no backlight at all.

Compared with meshtastic and definition for button2 was wrong (on pin 11 instead of 39)

I hope that the button works for you now, so you can tell me if screen is better after refreshing it with a double-click (might give me some insight on what is happening)

Also I'm really thinking about adding cli options for dealing with eink parameters ... this way it might be easier to test different configurations ;)

thanks for the feedback

@fdlamotte

Copy link
Copy Markdown
Collaborator Author

@F4FPR maybe you can give a hand here ? I read you have an M1 ...

@ClemPera

Copy link
Copy Markdown

I hope that the button works for you now, so you can tell me if screen is better after refreshing it with a double-click (might give me some insight on what is happening)

Yes it works now:

  • One press turn on the backlight
  • Long press does nothing
  • Two press is doing the same behavior as the power off after 900s: it clear everything and only show partial refreshes
  • Three press has the same behavior as two press

@fdlamotte

Copy link
Copy Markdown
Collaborator Author

three presses should poweroff the screen

two presses normally clears all the partial refresh related buffers, so normally the screen should be entirely redrawn after ...

@fdlamotte

Copy link
Copy Markdown
Collaborator Author

@ClemPera I tried building a fw with a different screen definition (the same I use on M5 and M8)

Can you give a try ?

firmware.zip

@ClemPera

Copy link
Copy Markdown

three presses should poweroff the screen

Maybe I didn't see the difference in behavior between two and three press since I need to press the button anyway to trigger the partial refresh.

For the firmware, it seem to work fine, two and three press work as expected and everything gets redrawn after! I need to go now so I'm not able to check for the poweroff after 900s.

@F4FPR

F4FPR commented Oct 24, 2026

Copy link
Copy Markdown
Contributor

@ClemPera I tried building a fw with a different screen definition (the same I use on M5 and M8)

Can you give a try ?

firmware.zip

Hi Florent,

I’ve tested your latest firmware on my ThinkNode M1 and it’s working well.

One press of the upper round button turns on the backlight, which switches off after about 5–10 seconds. A double press refreshes the e-ink display. The lower triangle button scrolls through the menus as expected.

The display looks much cleaner and sharper than with MeshCore 1.18.0 from the main branch.

For the M1, I think these changes, including the display definition in your latest build, are worth merging into dev. I haven’t tested the M5 or M8, so those still need checking.

Thanks for your help and for sending the updated firmware!

@fdlamotte

Copy link
Copy Markdown
Collaborator Author

Great news @ClemPera thanks for your feedback, debugging without the unit is not easy ;) but with the photo I got the idea to check wich configuration was used for GxEpd and see this was an old config that was used there (the newer driver is much better ...)

@fdlamotte

Copy link
Copy Markdown
Collaborator Author

I’ve tested your latest firmware on my ThinkNode M1 and it’s working well.

For the M1, I think these changes, including the display definition in your latest build, are worth merging into dev. I haven’t tested the M5 or M8, so those still need checking.

Thanks @F4FPR, yes I think I can pull this ...

And now work on some cli parameters for eink, because I think we should be able to tune some parms as:

  • eink.partial.max
  • eink.backlight.delay
  • eink.autooff.blank
  • eink.autooff.keep_notif
  • display.autooff.delay

@fdlamotte
fdlamotte merged commit ea8e954 into meshcore-dev:dev Oct 24, 2026
15 checks passed
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