3D printers and Octoprint have a long history together, and pre-built images for the Raspberry Pi make getting up and running pretty easy. But there’s also another easy way to get in on the Octoprint action, and that’s to run it on an Android phone with the octo4a project.
A modern smartphone has a lot of useful features that make it attractive as an Octoprint host. There is a built-in touchscreen, easy power management, a built-in camera, and the fact that people regularly upgrade to new phones means that older Android phones — still powerful pieces of hardware in their own right — are readily available at low cost. The project is still relatively new, so don’t forget to check the Octoprint community thread for this project if you give it a try.
If you are wondering what Octoprint is and what it brings to the table, our own Tom Nardi explained what it does and why it matters when he shared his own upgrade experience from 2018. A few details are no longer current — for example one is no longer likely to encounter a Printrbot — but it’s still a perfectly valid primer on adding great management functionality to a 3D printer.
It’s so good, that github went down due to HackADay effect ;)
I thought git was decentralized :-)
Git is decentmalized. Github, apparently, is not.
This is the way.
This is awesome!
The problem with this is so many phones don’t support charging AND running a USB device at the same time. This has already been reported, but isn’t really addressed.
https://github.com/feelfreelinux/octo4a/issues/3
I’ve made a partial list of those devices which are known to support OTG and power:
http://techref.massmind.org/techref/io/usb/OTG.htm
Could you bypass the power issue by using wireless charging to provide the power and the usb to run the printer?
But that reduces the number of [old] phones available to use.
I guess I’ll just set up a DC-DC at 3.8 volts and clunch it inside instead of the battery. Keeping a LiIon constantly on charge will bloat it in no time
A 1N400x diode to 5V will do the trick, was popular for building Perk mining clusters out of cheap smartphones back in the day.
thats where wirless fast charging comes in handy .. but still rapes the battery running .. i got a pi4 now works much better than the phone
i ended up stripping the phone down and removing the battery and powering it from a usb lead . before binning the idea and getting a pi 4 ..
I do agree with this, and found the issue myself, as most micro USB phones do not support it, while most USB C phones do. Also, that ACA cable you link on Amazon? Tried it, garbage. There’s a switch on the side that does ONLY charge or OTG, not both at the same time. A USB C hub into my pixel 2 does work however.
Maybe a better idea would be to use a dummy battery providing 4.2V to the phone.
Great idea. I see one main problem: charging. You’re either stuck with keeping the phone plugged in all the time (they really don’t like that in the long run, can cause battery damage and may be even dangerous), or having it boot every time you start your printer and you have long boot times to contend with.
Tengo un lumia 950. Y también me gustaría poder usarlo para esto.
What versions of Android does this support?
Wish we could A version of Klipper to run on Android like this. For power it’s easy enough to either run straight DC 5v(since lipo is 4.2v charged it may work) or a diode if the 0.8v extra ends up being too much.
This is why I think there should be a law about partially open-sourcing end-of-life products – this sort of thing could apply to millions of devices that are essentially worthless as phones but have years of life left in them as some sort of smart touchscreen device in myriad applications.
How about running it on an old Android tablet? Many have a charging jack, leaving the USB port available to connect to the printer.
Very late to respond, but I was looking into Octo4a and whether it could support the faster new Python 3.11 version eventually.
So after looking into it a bit, it looks like this is not a straight-up rewrite of OctoPrint in Kotlin. Instead it’s bootstrapping an Alpine Linux userland (feelfreelinux/android-linux-bootstrap repo from Octo4a author afaict) and then installs Python and all other dependencies of OctoPrint that way, some “shims” for the camera and serial are written in Kotlin/Java/Android-NDK-C++ though.