We’re often asked how to make great looking time-lapses with a digital camera and our Original Prusa i3 3D printers. While OctoLapse is a good solution for some users, we’re using something a bit more special – a custom-made remote trigger, which is controlled by the Einsy RAMBo board. It’s not too difficult to make one and we’ll show you how to get started. However, if you would like something simpler and solder-free, wait until next week – we will show you how to make a Bluetooth shutter compatible with pretty much all modern smartphones.
WARNING: THIS METHOD REQUIRES YOU TO SOLDER A CUSTOM CABLE TO CONNECT A CAMERA TO YOUR 3D PRINTER – THERE’S A CHANCE OF POSSIBLE DAMAGE TO YOUR DEVICES IN CASE OF INCORRECT WIRING/CONNECTIONS!
A bit of theory
To record a timelapse of a print, a couple of things are needed:
- Original Prusa i3 MK3/S or MK2S / 2.5 / 2.5S 3D printer
- A digital camera with a port for a remote trigger (power adapter recommended)
- Video editing software
- Custom-made cable (see below)
Our solution has some pretty good features: the cable can be made with just a few basic (and cheap) components, so it can be tailor-made to suit your setup perfectly. We’re using custom G-code to move the extruder aside and push the print bed all the way forward to have those clean, nice-looking shots. The cable is essentially a remote camera trigger, which is controlled by activating a pin on the Einsy / mini RAMBo. There’s one downside: remote shutters differ based on the camera manufacturer, so every cable will be slightly different depending on the camera model. The main difference is usually the connector, the way how the wires are connected and the voltages for the focus and shutter functions.
Some cameras have proprietary connectors, which usually means that you need to buy a pre-made remote trigger, disassemble it and modify it.
We’re using Panasonic Lumix digital cameras, so the sample cable described in this article is meant to be used with a Lumix camera. However, you can find a comprehensive list of popular camera brands at www.doc-diy.net along with diagrams depicting the parts required for making these cables. The way it works is pretty basic: three wires are all you need – ground, focus, and shutter. Once you connect the focus or shutter wire to the ground, the camera will perform the required action.
Making a cable for a Lumix camera
All cables will have two input wires: +5V and ground. We’re using a Toshiba TLP621 transistor as a switch to activate a separate trigger circuit, and an LED to check whether there’s power on the input pin. The “U2” part on the right is actually a 4-segment 2.5mm jack that will be plugged into the camera. The complete diagram is below:
If you decide to solder your own cable for a different type of camera, the parts to the right from the TLP621 will be different (namely R3, R4, R5, and U2).
Here’s a complete list of all required parts for Lumix cameras:
- 2x jumper wire with a male connector – for MK3/S
- 2x jumper wire with a female connector – for MK2.5/S
- 2x 68k resistor
- 1x 2.2k resistor
- 1x 470 resistor
- 1x 1k resistor
- 1x LED
- 1x Toshiba TLP621 or another optocoupler with the same parameters
- 1x cable with a 2.5mm 4-segment jack (we recommend buying a 2.5mm jack with a cable already soldered to it for easier setup)
The total price for the needed parts is roughly 5-7 USD, but the overall price will be a bit higher since many of the parts can be bought only in larger quantities. You can even buy pretty good sets of various types of that part, so you have some extra stuff for future projects. 🙂
Connecting the cable to the MK3/S
We have designed the cable to fit the Raspberry Pi W Zero port on the Einsy RAMBo motherboard. As long as you are not using the RasPi, the port is free (and if you have a RasPi Zero, you are most likely going to use the OctoLapse plugin anyway).
There are two ways how to connect the wires to the RasPi port – either from inside the case or from the back. The choice is yours. We found it to be a bit easier to remove the back door from the case and connect the wires from the back. Just remember to do this when the printer is turned off!
Please refer to the illustrations below to learn how to connect the wires correctly
It’s always better to test the cable before you connect it to the camera. Simply run the modified G-code without the camera connected – the blinking LED will tell you whether the connections work.
Connecting the cable to MK2S / 2.5 / 2.5S
As described in the previous chapter, our solution is designed to work with the MK3/S primarily, since the cable is connected to the Raspberry Pi port, which is not present on older Mini RAMBo motherboards. With a very limited selection of pins, the easiest option is to disconnect the filament sensor and plug the timelapse cable in its place – see the illustration below.
Remember that you will need to use the latest MK2.5 firmware for the M42 Gcode to work!
This also means that the cable is connected to a different pin than in the case of MK3/S – it’s P20 instead of P73, so the G-code you’ll find in the next chapter needs to be modified. We’ll show you how.
Preparing the G-code
The best way how to create fluid timelapse is to take a picture after each layer. This is done by adding a piece of custom code to every layer change. Slic3r PE can do this for you.
The code we’re talking about is this (for MK3/S):
;AFTER_LAYER_CHANGE G1 X5 Y205 F{travel_speed*60} ;Move away from the print G4 S0 ;Wait for move to finish G4 P500 ;Wait for 500ms M42 S255 P73 ;Trigger G4 P200 ;Wait for 200ms M42 S0 P73 ;Untrigger G4 P500 ;Wait for 500ms ;[layer_z]
In case you have an MK2.5/S, you need to change the pin number to P20:
;AFTER_LAYER_CHANGE G1 X5 Y205 F{travel_speed*60} ;Move away from the print G4 S0 ;Wait for move to finish G4 P500 ;Wait for 500ms M42 S255 P20 ;Trigger G4 P200 ;Wait for 200ms M42 S0 P20 ;Untrigger G4 P500 ;Wait for 500ms ;[layer_z]
Let’s take a look at each step:
G1 X5 Y205 F{travel_speed*60} – this code tells the extruder to move all the way to the side and the print bed to move all the way forward
G4 S0 – waits until these moves are finished
G4 P500 – wait 500 milliseconds
M42 S255 P73 – M42 G-code activates pin 73 (P73) with 5V. S0 = 0V, S255 = 5V. Since we’re using fixed (manual) focus, we don’t need to worry about focusing the camera first
G4 P200 – wait 200 milliseconds
M42 S0 P73 – disabling (S0) pin 73, aka “untrigger”
G4 P500 – wait 500 milliseconds
After these actions are performed, the printer returns the extruder and print bed back to the original position and continues the print. This procedure won’t affect the look of the model in any way.
Adding custom G-code is easy. Open Slic3r PE, go to the “Printer Settings” tab and look for “Custom G-Code” section. Add the code above into the “After layer change G-code” textbox and save the profile as something easy to remember – e.g. Original Prusa i3 MK3S Timelapse. It’s advised to save this as a new printer profile, because when you slice an object with these settings, it will always perform the “move to the side” action after each layer, no matter whether a camera is connected or not. This, of course, makes the printing times noticeably longer.
Once you have the custom G-code implemented, you can slice the object as usual – you can choose any layer height or material.
Keep in mind that printing objects with the timelapse mode on will extend the print time noticeably.
Setting up the camera and preparation of the timelapse
To make a good looking timelapse video means first and foremost to ensure stable lighting conditions in the environment. If you have the printer located in a room where there’s a lot of sunlight and the lighting conditions change during the day (and people are often using light switches at night), the timelapse video will be extremely inconsistent.
A good solution is to place the printer in a dedicated room with minimum “traffic”. Sunblinds on a window are recommended. Set up artificial lights, so the 3D printer is nicely lit – we are regularly using “arch lamps” such as this one: https://www.thingiverse.com/thing:3469190 It’s easy to print and it creates some really good lighting conditions. And by the way, if you want to learn more about 3D printing and LED lights, check out our previous article!
Mount your digital camera on a tripod, change the focus mode to manual and push the print bed all the way forward – this will be the position where the printer will move the print bed during timelapse videos. Don’t zoom all the way in – you can easily do that in post-production.
Set up the camera and get it ready for shooting single photos (not a video). Keep in mind that longer prints can take many hours to complete, so using a power adapter is a good option. Otherwise, you may run out of batteries before the print finishes.
Turning photos into a timelapse
There’s a number of ways how to turn hundreds or even thousands of pictures into smooth videos. Most of them require a professional video editing software (such as Adobe Premiere Pro or DaVinci Resolve) and you can find plenty of tutorials for these programs online.
However, there’s a nice little app available for Windows directly on Microsoft Store. It’s called Time Lapse Creator, it has a simple interface and it’s completely free.
Basically, all you need to do is to click the Select Photos Folder button and point the app to the folder where the timelapse photos are stored. The length of the video is controlled by the number in the TimeSpan (ms) field – the number tells the app how long a single image should be displayed. Lower numbers will lead to faster speeds. Once you’re happy with the result, press the Save Video button to save the video as an MP4 file.
Other solutions
Using a DSLR camera and a custom-made cable turned out to be our favorite way of capturing timelapse prints. However, we understand that some users don’t have a digital camera, or don’t know how to solder. In our next article, we will show you some other solutions on how to create a print timelapse – with a regular smartphone and no soldering whatsoever. Stay tuned and don’t forget to share your timelapses on social media. Also, check out our Weekly Prints page where we publish new timelapse videos every week!
Pretty cool! I’ve got an OctoPrint setup currently but am not happy about the camera quality of its location. I gotta try this soon. Without any real experience in this sort of modification, I will take it slowly, lol
Toshiba TLP621-4 as linked to is an End of Life/Out of manufacture part according to UK Farnell. What’s the alternate part number please?
You can use almost any opto-coupler device.
e.g. https://www.vishay.com/docs/83725/4n25.pdf
Working on a circuitboard to wirelessly trigger a GoPro.
It is a WiFi remote trigger and it fits the same way you would connect the RaspiZero. Might share the results when the design is finished.
Aren’t the pins showed by the image for the mk2.5 used for the filament sensor?
Is this not going to cause any trouble with the filament sensor disconnected?
Website; http://www.microsoftoutlookoffice.com/office-365-support
I thought this was a great idea, so I made myself one 🙂
I made a PCB for this (with KiCAD) and am happy to share the files – I also have half a dozen (commercially produced) spare PCB’s which I am willing to give away?
Not sure how to do this, if anyone from Prusa is reading this?
I have a couple of photos but cannot see how to attach them…
Chris Parsons
Hi,
do you have a link for the PCB ? I’m not an expert in electronic and that could help me 🙂
thx
Hi.
Nice tutorial here, i have tryed this method, and works fine, but on the traveling the extruder from away the printed part, when it comes back to print, there is a bit of filament left out of the nozzle, about 2mm which will affect the quality of the print, do you have any g-code to make a rectraction about it?
I already tried to put a g-code to improve it, but it did not work, it started after missing filament in print.
By the way, I am not a prusa user, but who knows if it will be my next printer 🙂
Hi bullgun, I have the same issue. Could you solve your problem?
How do you know that selected pin is #73? What about other pins? Can any of these be used as well?
I have a Sigma, that don’t need resistance and just to close the contact between the pins : don’t we have somewhere in the Rambo 2 pins that we can close with a G code number ?
That would avoid to use the 5v and octocoupler
Is it also somehow possible for the mini?
Hi,
thanks for the tutorial. I have a Canon EOS 600D and a Prusa MK3s. I had to slighly adapt your setup. I had a hand-full of 4N35 optocouplers laying around and it did the job as well. Like for the Sigma mentioned above, the Canon is less complicated for wired remotes. No need for special resistors. Just close the connection between ground and the trigger line of the camera and you take a photo. So all resistors on the right-hand side of your schematic are not required.
Well, now it’s working perfectly. Much nice timelapses than with my old RaspiCam.
Thank you for sharing. I have same situation with my camera. What pins did you use? You didn’t need a 5v one did you?
Thanks for sharing. I had tried many options to stitch a video together from images (snagit, movie maker, VLC, etc – I had no good luck), however this little utility you suggested works great and is fast.
To collect my images, I bought a very inexpensive ( <$50 US ) ring light that holds my phone camera, and comes with a simple blue tooth "snap a picture" remote trigger ( supports Android and iOS ). It required a lot of emailing of pics to myself, but worked well enough. I printed a holder, check out Make Anything YouTube channel by Devin Montes, below:
https://www.myminifactory.com/object/3d-print-timelapse-rig-ender-3-and-similar-printers-74180
I did not want to use a cable for the camera trigger for my Canon EOS77D. Instead I use bluetooth BLE to trigger my camera. The hardware is a simple ESP32 board from China, price about 3 €. Basics about the software for connecting the camera can be found here: https://github.com/maxmacstn/ESP32-Canon-BLE-Remote
If you have some experience with arduino, it’s easy to adapt the example code there for this project. It works perfect.
Just use Octolapse with OctoPrint. OctoPrint has so many benefits, it makes using your print so much easier and more fun. OctoLapse is just one of many plug-ins I take advantage of, but it works really well.
mark
Is it necessary to include some sort of retraction gcode in the after layer change?
it is good idea
Can we please recieve a possibility of buying kit/instruction for prusa mini for such timelapses using a webcam camera?
Heya! Have there been many updates since this article? I’m looking for an easy solder-less way to make cool high-quality timelapse videos for a smattering of printers: Comgrow T500, Bambu A1 mini, X1C, Prusa Mk4… I can’t find the following week’s article using Bluetooth shutter, did that get published? Either would be 5 years old by now. A lot has changed, I’m sure.
How can this be done on the MK4 ?
Creating beautiful 3D print timelapse videos is a great way to showcase your work. Capture consistent footage and ensure good lighting. For editing, I recommend using <a href="www.movavi.com/">movavi</a>. It’s user-friendly and has powerful features for speeding up footage, adding music, and enhancing the overall quality, helping you create stunning timelapse videos effortlessly.