DuetLapse available for Alpha testing
-
https://github.com/DanalEstes/DuetLapse
Time Lapse camera support for Duet based 3D printers. Works with firmware V2 or V3 (including stand alone V3 or Pi based V3).
Designed to run on a Raspberry Pi, any Pi, not necessarily the one on the printer; may be adaptable to other platforms. Supports cameras via USB, Pi (ribbon cable), and Webcam. May support DSLR triggering in the future. Produces a video with H.264 encoding in an MP4 container. Does not, at this time, manage a library of videos, it simply drops the vid in home directory.
Triggers images based on time, layer change, or pause. Works with existing pauses in G-Code, or can force pauses at other trigger events. Coming soon: Optionally moves head to a specified position before capturing paused images.
See readme on github for the most current list of features, as they get implemented.
-
Should work with DSF since it uses your DuetWebAPI yeah?
If so, I'll be testing later today! -
Yes, needs only network connectivity to V2 or V3 printer. A V3 can be stand-alone or Pi, doesn't matter. Also, to be clear, does NOT require running on the printer's Pi; of course, it can also be run there if you wish.
It does have the "common sense" requirements regarding camera attach: USB and Ribbon cameras must be on the Pi where it runs, Webcam must be network reachable, etc.
I know that people tend to not like command line... so it was written with as much "help you run it" as reasonably possible. For example, it won't just fail if a co-req module is missing; it will tell you what is missing and how to install it. I'll be adding more of that regarding cameras in the near future.
-
Hi Danal
I have a duet 3 with SBC and running this on the printers pi.
The script executes ok, reports that it is connected to my printer and webcam but then exits with an error message as such:
Attempting to connect to printer at 127.0.0.1
Connected to a Duet V3 printer at http://127.0.0.1##################################
Options in force for this run:
Camera = web
Printer = 127.0.0.1
Seconds = 20.0
Detect = none
Pause = no
Movehead = 0.00 0.00
##################################
Waiting for print to start on printer 127.0.0.1
Traceback (most recent call last):
File "./DuetLapse.py", line 228, in <module>
status=printer.getStatus()
AttributeError: 'DuetWebAPI' object has no attribute 'getStatus'
pi@Duet3:~/DuetLapse $Any ideas?
Great work though!
-
Looks like you have an old copy of DuetWebAPI, the getStatus call was a recent add.
Re-download it and put it in the same directory.
Let me know...
-
Also, just committed support for forcing pauses and moving the head during pauses.
-
@Danal said in DuetLapse available for Alpha testing:
Looks like you have an old copy of DuetWebAPI, the getStatus call was a recent add.
Re-download it and put it in the same directory.Clicking on the link to DuetWebAPI leads me to the one and only copy that I can see there.
-
@chas2706 said in DuetLapse available for Alpha testing:
@Danal said in DuetLapse available for Alpha testing:
Looks like you have an old copy of DuetWebAPI, the getStatus call was a recent add.
Re-download it and put it in the same directory.Clicking on the link to DuetWebAPI leads me to the one and only copy that I can see there.
AHA!! Something that I thought was linked together was not. This is why we alpha test! THANK YOU for exposing this.
And... there was a commit about one minute before this post, if you re-pull DuetWebAPI now, it will work.
-
Thank you so much. I will let you know how I get on.
-
Hi Danal
Eventually got it working, not very good with Linux!
When I ran the DuetLapse.py I got this message
rm: cannot remove '/tmp/DuetLapse': No such file or directory
Couple of things, where are the images stored?
Does it delete them after a print?
and where does it put the video?I am going to install Samba so I can access the finished videos on a PC and would be nice if we could define where we wanted them.
Great work, Thank you.
Regards,
PaulEdit - I also had this error message
Python Library Module 'numpy' is required.
Thought it was directed at me!
-
Edit: That message should be suppressed, but is not. I will fix that.
It puts the images in /tmp/DuetLapse. They will stay until the next reboot, or next invocation of the script. They have sequence numbers, I don't remember the exact name format.
It puts the video in your home directory. The vid will be uniquely named with DDMMYYHHMM and you can certainly move it wherever, if you wish to keep them, etc.
-
Re: The "numpy" message, it also should have told you how to install it.
Python Library Module 'numpy' is required. Obtain via 'sudo python3 -m pip install numpy'
Be sure you have the latest copy of DuetLapse.py, I am pushing four and five updates a day.
-
Project's documentation looks very clear and professionalWould be interesting to see here sample videos.
The layer sync without a wired connection to the printer is a creative idea. Is it possible to achieve somehow the 'stationary print head' effect? https://youtu.be/S2cpHMoK8mw?t=13
Edit: a feature idea, include automatically music in the generated video.
Edit: another feature idea, add automatic time indication in the generator video. E.g. an analog clock at the corner, or digital time.
-
@zapta said in DuetLapse available for Alpha testing:
Is it possible to achieve somehow the 'stationary print head' effect?
This is already implemented. Add
-movehead 10 15
to flags that either detect or force pauses. The numbers are X and Y respectively. -
@zapta said in DuetLapse available for Alpha testing:
Edit: another feature idea, add automatic time indication in the generator video. E.g. an analog clock at the corner, or digital time.
Not a bad idea. I will add that to the "to do" list.
-
@zapta said in DuetLapse available for Alpha testing:
Edit: a feature idea, include automatically music in the generated video.
Probably going to let people do that in post-processing.
-
@Danal
It has stopped processing at image46 out of 200.
I had this issue with the other Timelapse, and dropped the resolution of the images.
Is there somewhere I can tweak the resolution?I am not a Python Guru, my skills lie elsewhere.
Regards,
Paul. -
@Danal
Following on, I added the -q 25 to the DuetLapse.py for the Raspistillcmd = 'raspistill -o -q 25 '+fn
I am getting some errors and it seems to be taking pictures whilst my bed leveling is happening
End of print will be sensed, and frames will be converted into video. Capturing frame 0 at X25.00 Y25.00 Z117.31 Invalid command line option (25) Capturing frame 1 at X25.00 Y25.00 Z121.31 Invalid command line option (25) Capturing frame 2 at X-10.00 Y25.00 Z117.31 Invalid command line option (25) Capturing frame 3 at X-10.00 Y25.00 Z121.31 Invalid command line option (25) Capturing frame 4 at X-10.00 Y-8.00 Z117.31 Invalid command line option (25) Capturing frame 5 at X150.00 Y150.00 Z122.31 Invalid command line option (25)
-
@Danal said in DuetLapse available for Alpha testing:
This is already implemented. Add -movehead 10 15 to flags that either detect or force pauses. The numbers are X and Y respectively.
Very nice! You are doing magic with network connections to the Duet.
-
@Danal said in DuetLapse available for Alpha testing:
Not a bad idea. I will add that to the "to do" list.
While you do it you can add other visual indicators such as Z height, and filament used.