For about $20, you can upgrade your 3d printer with wifi, ethernet, a web-based management interface, and still run it all off the single power cable that your printer came with, and without soldering anything.
Background:
I had picked up a half dozen OrangePi Zero boards on AliExpress with the intention of using them for some cheap, portable retro consoles in combination with some composite backup displays. It has the same chip as the Banana Pi Zero M2 (AllWinner H2+), which is much more powerful than a Raspberry Pi Zero. It also has a tiny footprint, built-in USB hub, etc. The original "Zero" only has composite out, not HDMI like the "Zero Plus 2". I think that because of that I couldn't get the latest RetrOrangePi build working on it, and just getting the composite working with a cheap backup display was a real pain in the ass, so I thought about re-tasking the boards for something else...
I also have a couple of 3d printers: a Prusa Mk3S as my primary, and an Ender 3 Pro that I got off Amazon a few months ago to have as a cheap secondary. Unfortunately, having these two printers tied to my desktop was becoming an issue, because I want to keep my office cool, but the printers perform better when it's uncomfortably warm, and enclosures didn't seem like the right option. It would actually be better to relocate the printers outside of the office, but that would mean untethering them from my computer and copying files to SD cards every time I wanted to print was not a viable option.
While surfing for solutions on how I could use the printers if they were remote, I came across OctoPrint. One thing led to another and I managed to get OctoPrint working on the OrangePi Zero, made some brackets to discretely attach the boards to the printers, and figured out how to power them off the printers' internal power. I'm happy enough with the results that I figured I'd share it with the community.
Hardware Needed:
Orange Pi Zero (or Zero LTS): https://www.aliexpress.com/item/4000049806939.html
Breadboard Wires: https://www.aliexpress.com/item/10000348907053.html (type needed depends on your printer)
- Prusa: 2x wires - male to female
- Ender: 2x wires - female to female
Micro SD Card
USB Data Cable (type needed depends on your printer)
Ethernet Cable (makes setting up the Pi easy, but you can remove it for wireless)
Bracket and Screws: (just 4 small screws should be enough)
- Prusa: http://pocketadventures.com/models/stl_ ... racket.stl
- Ender: http://pocketadventures.com/models/stl_ ... racket.stl
![Image](http://pocketadventures.com/images/opi3d/opi_brackets.jpg)
Software Setup:
There are instructions on the OctoPrint website (https://octoprint.org/) for setting it up from scratch in Linux. There's also a guide that was put together by "Daumemo" for setting it up on an Orange Pi Zero: https://daumemo.com/installing-octoprin ... ro-part-1/ For the most part I followed that guide, but I used a different build of Armbian. You can grab the latest off the Armbian website: https://www.armbian.com/orange-pi-zero/
Also, if you use Daumemo's guide, please note the following:
- After running the update/upgrade, log out and then log in as the non-root user.
- For the "source" command, the "S" should be lowercase.
Orange Pi Zero Wiring:
The Orange Pi Zero wiring is the easiest part of the assembly. Just attach the female end of the breadboard jumpers to the 5V and GND on the 13-pin header, right next to the USB port:
![Image](http://pocketadventures.com/images/opi3d/opi_pinout.jpg)
And of course you'll need to run a USB data cable from the full-size USB port to the printer.
Prusa Wiring:
On the Prusa, nearly all of the ports on the mainboard are already in use. However, the J19 header is available, and it has a couple of options for 5V and GND. I rotated the picture so it matches what you'll see in the printer. You'll attach the male end of the jumpers to J19.
![Image](http://pocketadventures.com/images/opi3d/prusa_opi_2.jpg)
You can use pins 2 (5V) and 4 (GND) or pins 10 (5V) and 14 (GND) - I used 10 and 14.
![Image](http://pocketadventures.com/images/opi3d/prusa_opi_3.jpg)
If you use the bracket on the back-left corner, right below the controller board, then when you're done, it should look like this:
![Image](http://pocketadventures.com/images/opi3d/prusa_opi_1.jpg)
Ender Wiring:
For the Ender, you can pull 5V from the display board, which the bracket sits underneath. The right-most pins in EXP1 are 5V (top row) and GND (bottom row).
![Image](http://pocketadventures.com/images/opi3d/ender3_opi_2.jpg)
And fully-assembled it'll look like this (the SD card is still accessible from underneath):
![Image](http://pocketadventures.com/images/opi3d/ender3_opi_1.jpg)
Other Tips:
Connect to the Orange Pi Zero using PuTTY.
You can easily find the board's IP addressing using Angry IP Scanner. (scan for port 22)
If you're used to "raspi-config", then you can easily enable WiFi by running "armbian-config".
This setup DOES NOT guarantee safe shutdown. Use the option in OctoPrint to power off the Pi before flipping off the printer's power switch. If the "sudo shutdown 0" command line doesn't work, try it without the "sudo".
Conclusion:
There you have it. For about 20 bucks and an hour or two, you can take your 3d printer to the next level. Sure, you can use different SBCs, but you'll either a) spend more, b) need USB adapters, c) need to solder the wires, or d) sacrifice functionality. In any case, it seems like a great use case for the Orange Pi Zero.
PS. They changed the download page and made it easy to find the right version of RetrOrangePi for the Zero. And it works... Yay! http://www.retrorangepi.org/images/OrangePiZero/