A time lapse from Octoprint/octolapse:
To make the magic happen, you need a Raspberry π board with PSU, an SD card (8Gb is plenty), and a camera. All of that can be had for well under $100, closer to $60 if you are careful. The Raspberry π cameras are fine but other options exist from Arducam and Inland. I have had three Raspberry π cameras fail in a month so I am not inclined to advocate for them. An Arducam model I bought to test worked first time and has given me no trouble. They both fit in the same size case and as bonus the ArduCam has a status light to let you know it’s working.
If you go with Raspberry π, the Camera Module 2 is what you will most likely want, as it is well-tested and supported. If you find the camera does not work or that the Raspberry π board doesn’t see it as connected, reboot the board and see if that clears it up. The command line methods for detecting the camera are not available if OctoPrint is running, so lsmod
and friends are not there for you. But by the same token any Linux or other FOSS experience you have will come in handy.
You’ll need a case for the Raspberry π and the camera…so many options. I chose this one which has versions for the 3 and 4 boards. For the camera mount, I recommend something that mounts to the X-axis and can be adjusted to frame different points of view. For monitoring active jobs you want something that will cover the full print bed but for time lapses you want to shoot straight across the X-axis. Aiming straight back on the Y-axis or at 45° also work, if you can find a mount that allows it.. You might want to choose an articulated model in that case since the time lapse process will push the bed into the shot on each layer change. So something like this if you don’t want to make your own. Look on thingiverse as well…the kind that clip onto the QR code on the Ender are a good choice.
Which Raspberry π should you get? I have tried the 3 and 4 and have no preference. A model 3 with 1Gb of RAM is perfectly fine and at $35 (currently) it’s pretty friendly. The 4 can be had at the same price, if you can get one. The one drawback for the 3 is the USB micro B PSU, where the 4 and newer models use USB C. It was an issue for me as the case I initially chose for the 3 didn’t allow the PSU to be plugged in easily. The 4 is about $20 more at this writing (with 4Gb RAM: not a lot of choices sometimes, they are often in short supply).
You will need a USB cable to connect your Raspberry π to your printer. Many of them use the A/B type like a conventional printer so you likely have one. The Ender also uses the Micro B 🙄 so you may need to get one of those. Monoprice is a great place for cheap cables and has all kinds. Here’s one for $1.49.
Getting the Raspberry π imaged and setup and octoprint installed is documented at the Raspberry π site and at Octoprint and will be more up to date, but the short summary is to download the imager from Raspberrypi.com and let it set up your SD card. You can set up your hostname for the Raspberry π, your login info, WiFi credentials, and all of that in the imaging process. Put it in the Raspberry π board, and fire it up, do all the setup that is documented at Octoprint. Once it’s installed and you have logged in, install the Octolapse plugin. Hit the wrench icon to set up OctoPrint for the printer it will be controlling.
In the OptoLapse plugin these settings should deliver a timelapse video with the extruder out of the frame, letting the workpiece appear to grow out of the build plate as in the video above. Lighting and framing might be bigger challenges than the technology.
You can get more sophisticated with snapshot commands embedded in the gcode but I have not explored that. You will need to step through some options for OctoLapse (in the OptoLapse tab) based on the slicer you use: the automatic setting doesn’t actually work. OctoLapse will cancel any job you submit if you don’t fill out all the information about layer height, retraction distance/speed, etc. Save yourself some time and hassle by doing that.
If you use different slicers (Cura vs PrusaSlicer, for example) it might be worth setting different printer profiles that take that into account. So you may need separate Ender/Cura and Ender/PrusaSlicer profiles as the printer destination. That way OctoLapse knows when to trigger the snapshot function regardless of how you created the gcode file.