Difference between revisions of "Cerealbot/Software"
m (→Webcam: formatted section) |
m (→Octoprint Config: updated haproxy/authbind information) |
||
Line 37: | Line 37: | ||
== Octoprint Config == | == Octoprint Config == | ||
− | + | === Authbind === | |
− | + | tl;dr: haproxy ''bad'', authbind '''good'''. | |
− | + | In '/etc/default/octoprint' Set port to 80 and uncommand the extra arguments. | |
+ | |||
+ | In '/etc/init.d/octoprint' Add 'AUTHBIND=/usr/bin/authbind' to the variable declaration section and then find the invocation of $DAEMON and add $AUTHBIND directly in front of it (with a space). When you restart the service, it should come up on port 80. | ||
== RedQueen256 Integration == | == RedQueen256 Integration == |
Revision as of 12:47, 27 May 2015
Contents
[hide]Webcam
To list available formats:
v4l2-ctl --list-formats
or
v4l2-ctl -d /dev/video0 --list-formats-ext
Octoprint
To use an http stream with octoprint, the URL has to be formatted correctly.
At first glance, I tried: cerealbox.256.makerslocal.org:8081, which didn't work.
Turns out Octoprint blindly appends a GET variable to the URL, which turns the above into: cerealbox.256.makerslocal.org:8081?2354jk345 which isn't a valid URL anymore.
So, you have to set up the webcam URL like: http://cerealbox.256.makerslocal.org:8081/
Here the trailing slash lands the GET variable. It took Hunter Fuller to figure all that out.
mjpg-streamer
mjpg-streamer is by far the best solution for webcam streaming from the RPi. A recent update brought immense relief for CPU overhead.
Base command to run:
mjpg_streamer -b -i "./input_uvc.so -d /dev/video0 -n -f 5 -r 1280x720" -o "./output_http.so -p 8080 -w ./www"
Previously I've used the -y flag for compatibility, which totally crushed the little CPU, but the most recent build of mjpg-streamer appears to work quite well with my Logitech webcam using the default MJPG codec.
Octoprint Config
Authbind
tl;dr: haproxy bad, authbind good.
In '/etc/default/octoprint' Set port to 80 and uncommand the extra arguments.
In '/etc/init.d/octoprint' Add 'AUTHBIND=/usr/bin/authbind' to the variable declaration section and then find the invocation of $DAEMON and add $AUTHBIND directly in front of it (with a space). When you restart the service, it should come up on port 80.
RedQueen256 Integration
Slic3r Config
Octoprint Server - RPi
Raspbian - Debian
Archlinux
To run octoprint from port 80 as user 'octoprint', I adjusted the systemd unit file to launch with authbind.
[Unit] Description=Octoprint 3d Printing Web Server After=network.target [Service] User=octoprint Group=octoprint Type=simple ExecStart=/usr/bin/authbind --deep /usr/bin/octoprint --port 80 Restart=on-failure [Install] WantedBy=multi-user.target
Right now I'm streaming the webcam from v4l-mjpg-streamer, total pain, will look for something better.
Protips
BYOBU
- F1 allows you to set "log into byobu" to save some time while logging in.
- 'C-a a' will send C-a to screen, so that you can use screen within byobu to debug the printer's serial connection.