{"id":22120780,"url":"https://github.com/grz0zrg/fb_monitor","last_synced_at":"2025-10-12T07:30:22.860Z","repository":{"id":148952490,"uuid":"139324684","full_name":"grz0zrg/fb_monitor","owner":"grz0zrg","description":"C Framebuffer display of a remote (HTTP) JPEG image / Octoprint monitoring from REST API","archived":false,"fork":false,"pushed_at":"2018-07-22T13:29:19.000Z","size":621,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-12-01T14:36:04.847Z","etag":null,"topics":["3d-printing","c","embedded-systems","framebuffer","graphics","monitoring","monitoring-tool","octoprint"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grz0zrg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-07-01T11:47:21.000Z","updated_at":"2024-11-04T10:34:39.000Z","dependencies_parsed_at":"2023-04-13T23:32:45.803Z","dependency_job_id":null,"html_url":"https://github.com/grz0zrg/fb_monitor","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grz0zrg%2Ffb_monitor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grz0zrg%2Ffb_monitor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grz0zrg%2Ffb_monitor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grz0zrg%2Ffb_monitor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grz0zrg","download_url":"https://codeload.github.com/grz0zrg/fb_monitor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236178236,"owners_count":19107663,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d-printing","c","embedded-systems","framebuffer","graphics","monitoring","monitoring-tool","octoprint"],"created_at":"2024-12-01T14:29:56.088Z","updated_at":"2025-10-12T07:30:17.586Z","avatar_url":"https://github.com/grz0zrg.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"C Framebuffer display of a remote JPEG image / Octoprint monitoring from REST API\n=====\n\nSmall C program which is able to gather a remote JPEG image at regular intervall (via HTTP / `curl` library) and display it fullscreen onto a framebuffer device (via [fbg](https://github.com/grz0zrg/fbg) library) along with informations gathered from a REST API (via [ulfius](https://github.com/babelouest/ulfius) library)\n\nThis was made to monitor my 3D printer (with [octoprint](https://octoprint.org/) webcam stream \u0026 API) from my desk using a NanoPI NEO 2  and a small LCD display and thus allow to occasionally stream the framebuffer content to a streaming service like [twitch](https://www.twitch.tv/).\n\nFeatures :\n\n* Octoprint stream status (red / green); if down it mean that either the physical connection to octoprint was lost or that the octoprint device had an issue.\n* Printer power / octoprint serial status (ON / OFF)\n* Realtime statistics (temperature, host board temperature, current and last job, time, job progression bar)\n* Realtime tool/bed temperature graphics\n\nThis program can be easily configured.\n\nAltough this was made for octoprint, it has all the basic tools to be adapted for all sort of embedded monitoring needs...\n\nTo compile it, you will need my [framebuffer graphics library](https://github.com/grz0zrg/fbg), libcurl and [ulfius](https://github.com/babelouest/ulfius).\n\n**Note** : Linux framebuffer streaming example (with twitch service) :\n\n```\nffmpeg -f fbdev -framerate 25 -i /dev/fb0 -c:v libx264 -preset veryfast -maxrate 2000k -bufsize 4000k -vf \"format=yuv420p\" -g 50 -f flv rtmp://live.twitch.tv/app/\u003cstream key\u003e\n```\n\n## Screenshots\n\n![Prusa 3D printer monitoring with octoprint](/screenshot.png?raw=true \"Prusa 3D printer monitoring with octoprint\")\n![Prusa 3D printer monitoring with octoprint](/screenshot2.png?raw=true \"Prusa 3D printer monitoring with octoprint\")\n![Prusa 3D printer monitoring with octoprint](/screenshot3.png?raw=true \"Prusa 3D printer monitoring with octoprint\")\n\nLicense\n=====\n\nBSD, see LICENSE file","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrz0zrg%2Ffb_monitor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrz0zrg%2Ffb_monitor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrz0zrg%2Ffb_monitor/lists"}