Is your feature request related to a problem? Please describe.
Yes. On the Adafruit MagTag running WipperSnapper, the firmware currently draws a status bar/header at the top of the eInk display. This is useful as a default, but for some display use cases I would like to use the full MagTag screen area for my own content.
Right now I do not see a documented secrets.json option or Adafruit IO display setting that allows this header/status bar to be hidden.
From reading the current implementation, the status bar appears to be drawn from the display component path:
Those drivers reserve STATUS_BAR_HEIGHT pixels, and writeMessage() starts below the status bar. So hiding the bar should also allow user content to use the full display area.
Describe the solution you'd like
Please add a supported option to hide the MagTag display status bar/header.
A possible implementation would be a boolean option such as:
{
"display_status_bar": false
}
or, if the maintainers prefer grouping display settings:
{
"display": {
"status_bar": false
}
}
Desired behavior:
- Default behavior remains unchanged.
- If the option is absent, the status bar is shown as it is today.
- If the option is set to
false, WipperSnapper should:
- skip the initial
drawStatusBar()
- skip periodic
updateStatusBar()
- let
writeMessage() use the full screen, starting at y=0 or an appropriate small top padding instead of below STATUS_BAR_HEIGHT
- This should work for both pre-2025 and 2025 MagTag display drivers:
dispDrvThinkInkGrayscale4T5.h
dispDrvThinkInkGrayscale4Eaamfgn.h
Describe alternatives you've considered
- Covering the top part of the eInk display physically, which is not a real solution.
- Maintaining a custom local firmware patch, which would make normal WipperSnapper updates harder.
- Using smaller text/content to work around the reserved top area, but that still wastes display space.
Additional context
I am happy to help with a PR if the maintainers agree with the approach.
Potential PR scope:
- Add a boolean config field, defaulting to current behavior.
- Parse it from
secrets.json, or from whichever config path the maintainers prefer.
- Thread the setting into the display controller/hardware/driver path.
- Update both MagTag eInk drivers so full-screen layout works when the bar is hidden.
- Add documentation/examples showing the new option.
- Verify the PlatformIO build for
magtag.
Related context I found:
Is your feature request related to a problem? Please describe.
Yes. On the Adafruit MagTag running WipperSnapper, the firmware currently draws a status bar/header at the top of the eInk display. This is useful as a default, but for some display use cases I would like to use the full MagTag screen area for my own content.
Right now I do not see a documented
secrets.jsonoption or Adafruit IO display setting that allows this header/status bar to be hidden.From reading the current implementation, the status bar appears to be drawn from the display component path:
src/components/display/controller.cppDisplayController::Handle_Display_AddOrReplace()callsdisplay->drawStatusBar(WS._config.aio_user)DisplayController::update()periodically callshw_instance->updateStatusBar(rssi, 100, is_connected)src/components/display/hardware.cppDisplayHardware::drawStatusBar()forwards to_drvDisp->drawStatusBar()DisplayHardware::updateStatusBar()forwards to_drvDisp->updateStatusBar()MagTag display drivers:
src/components/display/drivers/dispDrvThinkInkGrayscale4T5.hsrc/components/display/drivers/dispDrvThinkInkGrayscale4Eaamfgn.hThose drivers reserve
STATUS_BAR_HEIGHTpixels, andwriteMessage()starts below the status bar. So hiding the bar should also allow user content to use the full display area.Describe the solution you'd like
Please add a supported option to hide the MagTag display status bar/header.
A possible implementation would be a boolean option such as:
or, if the maintainers prefer grouping display settings:
Desired behavior:
false, WipperSnapper should:drawStatusBar()updateStatusBar()writeMessage()use the full screen, starting at y=0 or an appropriate small top padding instead of belowSTATUS_BAR_HEIGHTdispDrvThinkInkGrayscale4T5.hdispDrvThinkInkGrayscale4Eaamfgn.hDescribe alternatives you've considered
Additional context
I am happy to help with a PR if the maintainers agree with the approach.
Potential PR scope:
secrets.json, or from whichever config path the maintainers prefer.magtag.Related context I found: