Giter Site home page Giter Site logo

octobrix's Introduction

octobrix

Dockerized octoprint multi-instance environment with multi-webcam support.

Context :

In the scope of using octoprint with my 3d printers (I own 4 printers), I was reluctant to buy 4 raspi + cam and set them (for time and cost). I went for a solution using an old computer, usb cameras and a powered usb port to plug the printers and the cameras. Main idea was to set up a docker server on the computer, create an octoprint container for each printer I own and plug printers + cameras on the usb hub.

Faced issues :

  • Need static /dev links for printers devices : use a custom udev conf file.
  • Need static /dev links for cameras : use a custom udev conf file.
  • Cannot make more than one low cost usb camera works on the same usb port : need to patch uvc to prevent kernel allowing all bandwidth for a not well designed (cheap) camera.

Tested configuration :

Installation procedure :

  • Get the hardware
  • Install Ubuntu server 20.04.2 LTS on your computer
  • Get octobrix from git repository and run install.sh (warning it involves a kernel recompilation, it tooks 12 hours for me)
  • Finalize installation (edit udev configuration and stack.yml to map your printers)
  • Start the containers

TODO list :

  • I'm not expert in kernel patching and while i wanted just to patch and reinstall uvc, my script end up compiling the whole kernel ! (need an expert looking on that point)
  • The uvc_video.c patch does not works on YUV only camera (the very cheap $3 camera found on aliexpress) even removing UVC_FMT_FLAG_COMPRESSED check, i'm pretty sure we can make it works with a better understanding of the code (suspecting others fields than dwMaxPayloadTransferSize need to be altered).
  • Implement auto switch on/off through PSU Control
  • Write a tutorial for custom udev rules (people knowing a little can check the /files/ directory and easily writes their own rules to map a static /dev item mapping usb hub port number)

Contact :

  • If you want to contact me , or give a few bucks through paypal if you find this project usefull, my email is : [email protected]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.