Time Lapse Using Python

Firstly, long time no post, sorry ….

Recently I upgraded the FolgerTech i3-2020 clone 3D printer from using an Arduino/RAMPs board control setup to using a Duet 3D – 6HC control/main board (will be a later post on that). However, with that change, it meant giving up OctoPi and its ability to capture time lapses. So after searching and finding time lapse Python scripts for Duet 2 boards only to find out that code couldn’t be used as the Duet 3 – 6HC doesn’t have Telnet capability I landed on a Duet 3 forum post that gave some light here: https://forum.duet3d.com/topic/14055/random-duet3-sbc-questions/8
Armed with a need, and an idea to follow, the code was started. Note that Danal also has a more advanced Duet Time Lapse here: https://github.com/DanalEstes/DuetLapse.

The code creates time lapse videos with a Duet 3 – 6HC Mainboard and is mainly meant for 3D Printers, but can be used for other machines too. It is designed to run on a Raspberry Pi and may be adaptable to other Linux platforms. Supports cameras via USB, Pi (ribbon cable), and Webcam. Produces photos and renders a video using MJPEG-Streamer & FFMPEG. Creates a sub-folders for photos and video with date and time stamps for each. As the printer changes layers, Duet Web Control (DWC) will post PRINT_STARTED, LAYER_CHANGE, and PRINT_COMPLETE while the printer is operating and log them in the Duet Control Server Service. The program uses these cues to monitor the service for changes and then to have M-JPEG take photos and store them so FFMPEG can then compile the time lapse video.

The code is technically my first published open source code in Python and is available on GIT Hub here: https://github.com/JimsJump/Duet_3_6HC_Time_Lapse

Below is a quick video of the result – works great!!