Skip to content

Optionally slow down or eliminate pwnagotchi.png updates. server web UI from memory instead of file#369

Closed
Sniffleupagus wants to merge 2 commits intojayofelony:noaifrom
Sniffleupagus:slow_png
Closed

Optionally slow down or eliminate pwnagotchi.png updates. server web UI from memory instead of file#369
Sniffleupagus wants to merge 2 commits intojayofelony:noaifrom
Sniffleupagus:slow_png

Conversation

@Sniffleupagus
Copy link
Copy Markdown
Contributor

When using larger DummyDisplay (480x720), saving the png file takes resources. Serving from memory is quicker.

Description

Added an optional config parameter "png_period" that is the time period between saving the UI to the file in /var/tmp/pwnagotchi. View.py stores the current UI image in a "_show_canvas" variable, and adds get_current_image(self) that returns it, making it easy for plugins to access the full UI image as ui.get_current_image().

Handler.py ui(self) gets the image using get_current_image() and serves it to flask through a BytesIO() stream instead of by file access.

Motivation and Context

Pwnagotchi UI should continue to work, even if zram gets wonky.
With large DummyDisplays, the file IO can be significant, especially with other services using the sd card (wardriver, display-password, etc).

  • [ X] I have raised an issue to propose this change (required)

How Has This Been Tested?

Tested on several pwnies in the no-png-file branch. This PR is just the minor changes needed to reduce the PNG updates.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • [ X] New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • [X ] My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • [X ] I've read the CONTRIBUTION guide
  • [X ] I have signed-off my commits with git commit -s

@jayofelony jayofelony closed this Mar 24, 2026
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