C Framebuffer display of a remote (HTTP) JPEG image / Octoprint monitoring from REST API
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
LICENSE
Makefile
README.md
bbmode1_8x8.png
nanojpeg.c
octo_monitor.c
screenshot.png
screenshot2.png
screenshot3.png
tools.c

README.md

C Framebuffer display of a remote JPEG image / Octoprint monitoring from REST API

Small 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 library) along with informations gathered from a REST API (via ulfius library)

This was made to monitor my 3D printer (with octoprint webcam stream & 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.

Features :

  • 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.
  • Printer power / octoprint serial status (ON / OFF)
  • Realtime statistics (temperature, host board temperature, current and last job, time, job progression bar)
  • Realtime tool/bed temperature graphics

This program can be easily configured.

Altough this was made for octoprint, it has all the basic tools to be adapted for all sort of embedded monitoring needs...

To compile it, you will need my framebuffer graphics library, libcurl and ulfius.

Note : Linux framebuffer streaming example (with twitch service) :

ffmpeg -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/<stream key>

Screenshots

Prusa 3D printer monitoring with octoprint Prusa 3D printer monitoring with octoprint Prusa 3D printer monitoring with octoprint

License

BSD, see LICENSE file