The Raspberry Pi is a popular single-board computer. It’s computational power is sufficient to comfortably run Linux, and it has sufficient IO (including USB, Ethernet, and GPIO) for many maker projects. Here are all of the projects I’ve built which include a Raspberry Pi.
As some of you may know, I have a Raspberry Pi which handles all of the radios for Home Assistant. It runs ZwaveJS2MQTT (using the WebSockets connection to Home Assistant, not MQTT), Zigbee2MQTT (using MQTT), and RTL-433 (also using MQTT). So, it’s fairly critical infrastructure. Usually, with critical infrastructure, I try to get it PoE powered so I don’t have to worry about power bricks and can get battery backup via the CRS328 network switch in the basement (which is on a battery of its own).
As I recently posted about, I got my CR-10 MAX working and did some basic upgrades to it. After that, it was printing pretty well, so I decided it needed a camera so I could start trusting it with longer unattended prints. I still don’t have power control of the printer, so I won’t let it run when I’m not home, but now I feel comfortable leaving the basement knowing I can check to see if it’s making a mess of itself.
I’ve had a Creality CR-10 MAX for about a year and a half at this point. I bought it on sale in early 2020 when I had big project ideas that wouldn’t fit on my workhorse Prusa i3 MK3S, so it’s fair to say I bought it for the large size for the price point and not the build quality or feature set. However, I’ve never really liked it, so now that the Prusa is working really well with Octoprint, the box, the cameras, and all of the other projects I’ve documented here, it’s time to move on to the CR-10 and get that one working well too.
In this project, I’m going to setup my Creality CR-10 MAX in the same way that I’ve setup my Prusa i3 MK3S. I’ll continue to update this page as I make progress, instead of splitting the project into multiple parts like I did for the Prusa. My goals for the project are as follows:
OctoPi install, printer profile in OctoPrint, remote mount filesystem, and MQTT - Completed Here PrusaSlicer profile for the CR-10 MAX - Completed, Not Published Power control and monitoring - Not Started HomeAssistant integration, including better notifications including which printer is done (currently my notifications assume ‘columbia’ is done) - In Progress LED status indicators - Not Started Camera mount for the wide angle camera - Completed Here Camera mount for the nozzle camera - Not Started Dealing with the lack of USB power/isolation of the Creality printers (The printer controller and LCD will stay on powered by the USB port) - Not Started Most notably, I will not be building a box for this printer at this point in time.
Bitscope makes some low-cost USB logic analyers and low bandwidth oscilloscopes. Since I am a computer engineer and primarily work in the digital domain, this is adequate for a lot of my projects, and I’ve had a Bitscope Mini for a few years now. I think there are better options available on the market now that weren’t back when I bought it, but I’m sticking with the tools I already own.
I currently have a TI CC2531 based Controller for Zigbee2MQTT, and the performance is poor. Based on how much my Zigbee network is expanding with the really low cost of Zigbee hardware (despite my preference for Z-wave for reliability when it counts), I’m upgrading my Controller to the zzh! from electrolama. The new controller is based on the CC2652 and has a decent external antenna, and should hopefully improve my awful Zigbee reception and reliance on IKEA repeaters to get any signal at all.
After buying some cheap USB boroscope cameras to use as an actual boroscope for home renovation projects, I decided to buy one with a flexible cable to mount near the nozzle of my Prusa i3 MK3s to get a time-lapse of the nozzle during the printing process. Watching the first layer closely during a print can show failures early, since most failures are due to bed adhesion or other first-layer problems.
I have a Prusa i3 MK3S 3D printer, and I use it for many projects I post here. I want to know roughly how much power it consumes while printing, to get a feel for both the peak power consumption of the printer (to, say, size an off-grid power system) and energy consumed for an average print. I know the cost of filament is pretty low for most projects, but I don’t know the cost of energy (or wear on the printer).
I recently got a camera to use with my 3D printer which includes integrated LED illumination. It has a physical switch to control the lights, but I want to turn them on and off, either from OctoPrint, or from Home Assistant, based on the printer status. Wanting the simplest solution possible, I’m going to turn off power to the Pi’s USB hub when I don’t need the camera lighting. This has a side effect of also disabling the camera itself due to lack of power, which I will also need to deal with, but it doesn’t disable the USB data lines, so the 3D printer (which has its own power supply) might not be affected, depending on the printer model.
Occasionally, I find myself wanting to start something custom as a systemd service, so it starts at boot. There’s a whole wealth of information on how to properly write systemd services, but I just want the bare minimum to get my command executed on boot and running on its own. Hence, here is the most basic systemd service guide. Feel free to read the systemd docs (systemd.service, systemd.unit, systemd.exec) for more info on what can go in the service file if you want to get fancy.