You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If you'd like to give a helping hand, pick any of the unfinished items and submit a PR. Don't ask for permission, everything is available and there are no issues to assign.
Old archived tasks
July to November 2023. Python proof of concept
Backend + frontend for control panel running
SSH connection to frames
Deploy and launch client software
Launch as a daemon (via tmux for now)
API connection back
Streaming SSH logs to client
UI to add frames
Get live images back
Reload button in FCP UI
Show image as it's updating
Sync frame updating state to control panel
Sync button presses to control panel
Add migrations
Send logs sequentially
Configure image via UI
Kiosk mode URL
Create new frame installation instructions (from rpi)
Add apps
Draw stuff on images
OpenAI DallE2
Rotate images
Scaling mode as part of the frame, not app
App for scaling with cover modes
Edit via a diagram UI
Require user/pass to see interface
Close a tab, fix bugs with tabs
Handle saving modified apps
Virtualize logs (list gets too big)
Settings page with credential storage (HA, OpenAI, Github)
Save scenes (one or many) as templates
Template .zip export
Template .zip import
Github template repositories
Support making screenshots of web pages (on 64bit devices only)
Apps/devices must preselect the settings/secrets they are using, only those are copied over
SSH keys
Python and JSON errors inline in editor (red if file is obviously wrong)
Editing text in app config jumps to end
Document the coding environment and the available apps
Explore migrating from PIL to pixie-python make sense? We'd get great font rendering for free, minus emoji support sadly. --> Might be great, but putting energy into the next point instead.
Experiment if it makes any sense to rewrite the FrameOS on-device part in a compiled language. Conclusion: yes it does. We're doing real time graphics on low power devices. A compiled language brings 10x improvements in speed and/or performance. Migrating some parts to a compiled language is inevitable. After looking around a lot, nim seems like the best choice. People praise it. It's friendlier than rust/zig/go ("If you imagine native-compiled type-annotated Python where nearly 100% of your code is business logic with no cruft, you're getting close to the Nim experience."), it's easy to pick up from examples, fast, it's used for games (it's fast), and comes with an amazing image handling library and other goodies. None of the other languages hit this sweet spot, so let's go.
Rewrite FrameOS in nim.
Proof of concept in the nim branch
Deploy the nim code onto a raspberry with on-device compilation
Caching for on device compilation
Support for apps and the execution context
Support numbers, color and other types of fields
Support template strings in config -> inline code nodes for vars
Support edited custom apps
Convert to async server with schedules, etc
Scheduler
Inky impression display support? No C bindings? Only python available. Will call python code for now.
Rotated display support
System of hardware specific drivers, and devices that group them
Port over the main apps
Unsplash
Text
Code
Clock
Download URL
FrameOS Gallery
Color
Gradient
HA Sensor
If
Split
Resize
Rotate
OpenAI
Break if rendering
Log batching in a separate thread
Rendering in a separate thread
HDMI support (double buffering, frame info, different color modes)
Sanitize app fields
Display on/off controls
Skip most logs in high fps mode
Metrics logger
Waveshare eink support (using C libraries!)
Touch and click handlers
Ignore render when rendering, run all events after
60fps mode (max 2fps with Python now) -> got 60fps+ (more like 100) on a rpi5 with a 720p display (pikvm). So it's possible, even with simple "software rendering". Once we have the basics covered, I can investigate something like boxy to increase performance even more.
Stability and hours of use (been running an inky impression + rpi zero w 1 and a hyperpixel round + zero w 2 at 24fps for days now without downtime)
Show errors when editing nim apps in the interface
If you'd like to give a helping hand, pick any of the unfinished items and submit a PR. Don't ask for permission, everything is available and there are no issues to assign.
Old archived tasks
July to November 2023. Python proof of concept
December to January 2024. Nim rewrite. Blog post. HN thread
nim
branchboxy
to increase performance even more.gcsafe
hacksFebruary to April 2024. Multiple scenes, apps, regression tests and other completed tasks.
Sometimes 404 error when opening frame and clicking backonly during rebuilds in devMay to July 2024. Data nodes, state nodes, universal caching, agenda app.
TODO next
Apps to build next
New features
All the other ideas
Here's a list of things that have come to mind. Not in order of priority.
Cases and devices
The text was updated successfully, but these errors were encountered: