Explaining 3D printing to hundreds of people that come to a booth at Maker Faire can be quite exhausting. I put together this info to help explain the process in a way that was easy for most people to grasp as well as provide some more in depth info for others that may be familiar with 3D printing.
Dream in Code
Maker projects, code examples and testing out ideas.
Wednesday, October 10, 2018
Friday, September 28, 2018
3D Print Time Lapse from a Smartphone
Time lapse videos of 3D prints are a great way to show off not only the finished product, but part of the process that goes into making it. There are a few options for doing time lapses, but they all involve either a webcam and a raspberry pi running Octoprint, or an expensive camera with a remote shutter option. Since I have a smartphone with a better camera than a webcam, and didn't want to buy an expensive camera just yet, I figured I could build something to make it work.
You can watch my video I did on the process below.
I'll give a little more info here but won't go into full details as I figure the video should cover the overall summary of the process.
Here is the schematic for the circuit I designed.
It's quite simple and could probably be simplified even more. As I stated in the video, I learned after I had built the thing that the 3 pins attached to Servo 3 were not as advertised and was missing the +5v that I was expecting. If I had to do it again, I would check that before going all in on the device. It was a quick fix in the end though. I just added a jumper from the nearby pin that did have +5v and it was all good.
Once I got the hardware figured out, it took me a while to accept that Cura didn't have the ability to insert gcode on layer change easily. There were tricks to make it possible, but I just wanted it to work.
I gave up and went to Slic3r since it did have the option and got the process working. I have not been happy with the results from Slic3r on this printer after I found Cura, so I decided to look into what it would take in order to make this possible in Cura.
I created a simple script for the PostProcessing plugin that comes shipped with Cura that allows you to insert gcode on layer change:
InsertAtLayerChange.py
This was pretty simple and did the job. I realized that I could make the script more user friendly and specific to the task, but I realized that this has it's own uses outside of what I was trying to do so I created a second script just for time lapses:
TimeLapse.py
For anyone wanting to use these, you can download them from the links and then add them using the steps laid out here.
I'm happy with the result of this process and learned so much along the way. I have found some issues that need some attention though. Since this only works with gcode files that are saved, I'm working on building an actual plugin to make this work when saving or printing directly from the program. I've also found that retraction on layer change doesn't quite work as expected and hope to be able to address that with a dedicated plugin.
You can watch my video I did on the process below.
I'll give a little more info here but won't go into full details as I figure the video should cover the overall summary of the process.
Here is the schematic for the circuit I designed.
It's quite simple and could probably be simplified even more. As I stated in the video, I learned after I had built the thing that the 3 pins attached to Servo 3 were not as advertised and was missing the +5v that I was expecting. If I had to do it again, I would check that before going all in on the device. It was a quick fix in the end though. I just added a jumper from the nearby pin that did have +5v and it was all good.
Once I got the hardware figured out, it took me a while to accept that Cura didn't have the ability to insert gcode on layer change easily. There were tricks to make it possible, but I just wanted it to work.
I gave up and went to Slic3r since it did have the option and got the process working. I have not been happy with the results from Slic3r on this printer after I found Cura, so I decided to look into what it would take in order to make this possible in Cura.
I created a simple script for the PostProcessing plugin that comes shipped with Cura that allows you to insert gcode on layer change:
InsertAtLayerChange.py
This was pretty simple and did the job. I realized that I could make the script more user friendly and specific to the task, but I realized that this has it's own uses outside of what I was trying to do so I created a second script just for time lapses:
TimeLapse.py
For anyone wanting to use these, you can download them from the links and then add them using the steps laid out here.
I'm happy with the result of this process and learned so much along the way. I have found some issues that need some attention though. Since this only works with gcode files that are saved, I'm working on building an actual plugin to make this work when saving or printing directly from the program. I've also found that retraction on layer change doesn't quite work as expected and hope to be able to address that with a dedicated plugin.
Labels:
3d printing,
camera,
cura,
electronics,
gcode,
post processing,
ramps,
relay,
stop motion,
time lapse
Thursday, March 31, 2016
Contributing to the Community
I recently had the privilege of getting my name added to the list of contributors of Cygwin packages. I use a program called watch to run a script that pings a group of servers and reports them as being up or down. Watch runs a program at a specified interval and prints the output to the screen.
The version that was in Cygwin was 3.2.8 and was quite old. On my Debian system, version 3.3.9 was the stable version and it supported color output. To see the server status easier, I wanted to display the text in green if the server was up and red if it was down. Such a simple thing ended up being a very rewarding and satisfying journey.
Compiling linux source code in Cygwin is quite simple and many packages already exist to make this process easier. There are packages such as cygport that automate the packaging process so you eliminate the human element as much as possible. I'm curious if this is how many other packaging systems such as Debian's or RedHat's make the process easier for their developers. I'll probably look into this next.
I built a page with bootstrap to host the files and give as much info about Procps-ng as I could to make sharing the code with the community easier.
Procps-ng
This has been a great learning experience and my fear to putting my code out into the world has been relieved quite a bit now. I hope to post some in-depth info about this process, but I'm currently working to publish my Blogger-sublime-plugin package to the package control system and that's what I'm focusing on at the moment.
The version that was in Cygwin was 3.2.8 and was quite old. On my Debian system, version 3.3.9 was the stable version and it supported color output. To see the server status easier, I wanted to display the text in green if the server was up and red if it was down. Such a simple thing ended up being a very rewarding and satisfying journey.
Compiling linux source code in Cygwin is quite simple and many packages already exist to make this process easier. There are packages such as cygport that automate the packaging process so you eliminate the human element as much as possible. I'm curious if this is how many other packaging systems such as Debian's or RedHat's make the process easier for their developers. I'll probably look into this next.
I built a page with bootstrap to host the files and give as much info about Procps-ng as I could to make sharing the code with the community easier.
Procps-ng
This has been a great learning experience and my fear to putting my code out into the world has been relieved quite a bit now. I hope to post some in-depth info about this process, but I'm currently working to publish my Blogger-sublime-plugin package to the package control system and that's what I'm focusing on at the moment.
Wednesday, October 14, 2015
Sharing code with the world
The main reason I started writing this blog was to share snippets of things I find interesting or as a way to document any solutions I come up with that I would like to share. The problem with the web though, is formatting. When you copy and paste code from your code editor into a web form, things don't go as expected. Some pages will try to interpret the code blocks and in some cases can even cause the page to break. Most of the time, indentation is ignored and sometimes line breaks too.
Friday, October 9, 2015
Posting blog entries from Sublime Text 3
This is a proof of concept post that means the Sublime Text 3 Blogger plugin is working.
Friday, October 2, 2015
More Floating Point Goodness
Continuing my look into floating point arithmetic, I decided to see how things work in different languages. If you didn't see my first foray into this, you can check that out here.
Wednesday, September 30, 2015
Floating Point Math
In most cases, I tend to write my own code to do simple tasks. In some cases it's not a simple task but I need more control. Recently I've realized that when it comes to math, specifically floating point operations, I will always rely on someone else's code to do the math for me.
Labels:
coldfusion,
floating point,
javascript,
math
Subscribe to:
Posts (Atom)