[Sticky] Cloudless iBoardBot Server (via USB)
I bought an iBoardBot with the intention to leave it running in a shop window, but I definitely do not feel at ease using a not very secured cloud API and a printer that accepts unauthenticated commands from any host in an unsupervised public place. If I were a bored student, I’d probably think it would be funny to send drawings of genitals to all printers connected to the API 🙂 Another issue is that in some cases you don’t actually have an internet connection from where you want to use it.
Therefore I started hacking on a custom iBoardBot server that connects to the robot through serial (USB) connection. It is written in Rust and accepts SVG uploads through a web browser. The SVG processing isn’t very feature-complete yet, it only supports simple paths without handling stroke thickness and things like that, but it does support flattening of Bézier curves. The server also supports scheduling of erase-redraw cycles, so a single drawing could be erased and re-drawn automatically every 5 minutes or every hour.
Here’s the code: https://github.com/dbrgn/iboardbot-web Note that you need to use a different firmware on your robot to use this. It’s linked from the README and still a bit hacky (like the original firmware :P)
The library that does the conversion from the SVG file to polylines processable by the iBoardBot can be found here: https://github.com/dbrgn/svg2polylines
The intended use case is a Raspberry Pi connected to the printer that is not connected to the internet, but supports connecting through direct WiFi.
If you’re interested, feel free to comment here or open issues on Github 🙂 Any feedback is welcome.
Great job! We will try it. For sure.
We have here, in Edinburgh some iboardbots in public places and yes… people use to draw… “everything” 😀
Yeah, if the drawing is meant to be public, then it’s great 🙂 But if it’s used as an advertising platform you want to make sure that nobody else gets access.