- Raspberry Pi (2,3,4 ; 0 and 1 might be to weak... )
- Display - I used 5" DSI from BTT (BigTreeTech)
- Octoprint with mjpeg-streamer
- Burn latest RaspiOS (I used raspbian 11 bullseye
2022-04-04-raspios-bullseye-armhf-lite
) on SD, - Create default user (
pi
) and enable ssh (fastes use headless method - need 2 files to drop on sd boot partition:userconf
andssh
) - Run
raspi-config
and enable kms driver (raspi-config will install some packages doing this):8. -> A2. -> G2.
, also set RaspiOS to console-autologin mode, don't reboot yet. - Edit
/boot/config.txt
, find line withdtoverlay
andvc4-kms...
, change kms to fkms:dtoverlay=vc4-fkms-v3d
- otherwise vlc won't work 😒 , now reboot, - Update system, install
vlc
(I don't remember if anything else I installed...), - Test if streaming works - replace
<octoprint_mjpeg_streamer:8080>
for your IP address and port:
cvlc --play-and-exit --quiet --vout=mmal_vout --mmal-display=dsi "http://<octoprint_mjpeg_streamer:8080>/?action=stream"
If you want output to HDMI you have to tinker with --mmal-display=dsi
and change dsi
to hdmi-1
/hdmi-2
.
-
if works then create 2 scripts
start-monitor.sh
andupovl-octo.py
, put them into home dir. -
Open
start-monitor.sh
setup mjpeg_streamer address, and eventually other options. If you want to use HDMI you'll need to adjust too--mmal-vout-window
for your monitor resolution, it take argument in format:<window_width>x<window_height>+<left_pos>+<top_pos>
. -
Open
upovl-octo.py
, set octoprint address (and port), and api_key (to find in octoprint in user preferences window). -
Run
upovl-octo.py
without any arguments, to see if it'll get info from octoprint. -
If everything works, then edit file
/home/<your_user>/.bashrc
, and add at end a new line with path tostart-monitor.sh
script. -
Test it by running
start-monitor.sh
you should see on display stream from octoprint and some information about hot end temperature, progress, time left, and/or status text. You can change color of the text on displayed stream by tweakingcolor=0xFFFF00
in line withcvlc
. COlor must be in RGB in HEX notatnion. -
Reboot to see if it works.