Skip to content

Add Bangle.js 2, JDI memory displays and ACeP epd #7497

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

Merged
merged 7 commits into from
Feb 24, 2023

Conversation

tannewt
Copy link
Member

@tannewt tannewt commented Jan 28, 2023

This 2-in-1 PR started with the goal of support the Bangle.js 2 smartwatch with no USB.

  • Adds "secure" DFU build support with a committed private key.
  • Adds 3-bit color support with one dummy bit for the JDI memory display
  • Allows nrf boards to have a board_background_task() run in RUN_BACKGROUND_TASK. This is needed because the Bangle.js 2 uses the watchdog to reset.
  • Renamed port_background_task() to port_background_tick() to indicate it runs on tick, not RUN_BACKGROUND_TASK.
  • Marks serial connected when the display terminal is inited. This means that safe mode messages show up on the display.

ACep, 7-color epaper displays also pack 3 bits in 4. So, I added that support as well.

  • Adds 3-bit ACeP color support for 7-color e-paper displays. (Not watch related but similar due to color depth.)
  • Allows a refresh sequence instead of a single int command. The 7" ACeP display requires a data byte for refresh.
  • Adds optional delay after resetting the display. The ACeP displays need this. (Probably to load LUTs from flash.)
  • Adds a cleaning phase for ACeP displays before the real refresh.

For both:

  • Add dither support to Palette.
  • Palette no longer converts colors when set. Instead, it caches converted colors at each index.
  • ColorConverter now caches the last converted color. It should make conversions faster for repeated colors (not dithering.)

@tannewt tannewt added this to the 8.1.0 milestone Jan 28, 2023
@tannewt tannewt mentioned this pull request Feb 15, 2023
This 2-in-1 PR started with the goal of support the Bangle.js 2
smartwatch with *no USB*.
* Adds "secure" DFU build support with a committed private key.
* Adds 3-bit color support with one dummy bit for the JDI memory display
* Allows nrf boards to have a board_background_task() run in RUN_BACKGROUND_TASK.
  This is needed because the Bangle.js 2 uses the watchdog to reset.
* Renamed port_background_task() to port_background_tick() to indicate it
  runs on tick, not RUN_BACKGROUND_TASK.
* Marks serial connected when the display terminal is inited. This means
  that safe mode messages show up on the display.

ACep, 7-color epaper displays also pack 3 bits in 4. So, I added that
support as well.
* Adds 3-bit ACeP color support for 7-color e-paper displays. (Not
  watch related but similar due to color depth.)
* Allows a refresh sequence instead of a single int command. The 7" ACeP
  display requires a data byte for refresh.
* Adds optional delay after resetting the display. The ACeP displays
  need this. (Probably to load LUTs from flash.)
* Adds a cleaning phase for ACeP displays before the real refresh.

For both:
* Add dither support to Palette.
* Palette no longer converts colors when set. Instead, it caches
  converted colors at each index.
* ColorConverter now caches the last converted color. It should make
  conversions faster for repeated colors (not dithering.)
@tannewt tannewt marked this pull request as ready for review February 16, 2023 18:22
@tannewt tannewt requested a review from dhalbert February 16, 2023 18:22
Copy link
Collaborator

@dhalbert dhalbert left a comment

Choose a reason for hiding this comment

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

Thanks for all this work! Having a motivated project is great!

In the long run, I am still advocating to pass a struct to the display init functions. The number of args is unwieldy. Doesn't need to be now.

Only uppercase ASCII letters a-z. This saves ~900 bytes. Previously
written files with other unicode letters will only be accessible
from their upper cased path.
Copy link
Collaborator

@dhalbert dhalbert left a comment

Choose a reason for hiding this comment

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

slightly better name for FF_FS_ASCII_UPPER_ONLY

Also added label portion to the test.
@tannewt tannewt requested a review from dhalbert February 24, 2023 21:21
Copy link
Collaborator

@dhalbert dhalbert left a comment

Choose a reason for hiding this comment

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

Thank you for all this work!

@dhalbert dhalbert merged commit 8c714ec into adafruit:main Feb 24, 2023
@tannewt tannewt mentioned this pull request Apr 7, 2023
dhalbert pushed a commit that referenced this pull request Apr 7, 2023
In #7497 port_background_task was renamed to port_background_tick
but the actual call site wasn't changed. This meant that it was
no longer called!

Rename more functions from task to tick to make it clearer which is
which.
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.

2 participants