Firepick and Smoothie

290 views
Skip to first unread message

Tyler Kalinowicz

unread,
Apr 19, 2017, 2:11:55 PM4/19/17
to FirePick
Hi, I haven't ever posted in this group so I'd like to start by saying hi! My name is Tyler. Me and three other engineering students in our fourth year have been constructing our own rotary delta 3D printer this past year. We used a modified Firepick Delta code from the IcepickDelta (https://github.com/TTN-/Marlin/tree/Marlin_v1) to run ours on a Ramps 1.4 + Arduino mega. We designed it to be almost completely 3D printed and make use of 2020 aluminum extrusions, with a modular hot end we designed to allow use to detach the tool head for possible PnP, laser engraving or other such tools. It has run pretty well up until now, our prints aren't spectacular; we get jagged edges and the dimensions are slightly off (within 5%) but it's printing recognizable shapes and we've been impressed so far.

With the ramps and mega we were not able to get it over 50 delta calculations a second and only able to run it at 1/8th microstepping with 400steps/degree motors. We noticed the hot end was bowing (bowl shaped movement) as well as jagged lines when doing curves. We understand why the hot end is bowing, it was mainly due to our plastic pieces deflecting, however we have mitigated the problem (mostly, however it isn't causing significant issues right now). The DRV8825 drivers were getting really hot, and we decided we should give smoothieware a try after seeing Douglas' work on it in this group. 

We picked up an MKS SBASE v1.3 board (picture here:https://cdn.instructables.com/FTM/Q6UN/IN63CZON/FTMQ6UNIN63CZON.MEDIUM.jpg) and decided get it going last night. At 32 microstepping the motion is really smooth (I don't have a video right now but will try and get one uploaded to youtube soon). We were able to read the temperatures and heat our extruder and heated bed, as well as control the printer through jog controls. We are however having difficulty when homing the printer. The Marlin code works by using a max height for the nozzle as the reference when homing, not an angle. When homing we would home to max, and it would remember that point as z_max. With the smoothiware firmware for the Firepick made by Douglas Pearless the printer homes to an angle and it is set to home_to_min. 

We were hoping to ask and see if anyone else here is running the Firepick smoothieware and get some help in terms of our code and the homing issue. We haven't played around with it much since we have a big exam tomorrow, but hope to spend more time on the smoothieboard this weekend. Here is a link to the firmware with our values and changes for our printer: https://github.com/tylerkalinowicz/Smoothieware/blob/DouglasPearless-thermistor-fix/ConfigSamples/config_Adapt3D.txt 
It is forked from Douglas Pearless' firmware, I believe he is the one who's making it. Our next step is getting motion working as well as our induction sensor for bed leveling. Right now we have an induction sensor that worked on Marlin (the bed leveling algorithm with G29 did not work, but it could sense where the bed is with G30 command). so we are hoping to be able to adapt it to smoothieware and get it working easily. 

I will try and upload some videos tonight of our printer running on the ramps and arduino! Here is a photo of the printer for now: http://imgur.com/a/hAgrk
Message has been deleted
Message has been deleted

Tyler Kalinowicz

unread,
Apr 19, 2017, 7:40:32 PM4/19/17
to FirePick

So a bit of an update. Looked at this code here:https://github.com/Smoothieware/Smoothieware/blob/edge/ConfigSamples/rotary.delta/config by wolfmanjm and we tried it out with some newer values. We are still having an issue with homing, which we took a video of here: https://www.youtube.com/watch?v=lKZ5831n2Fo 
As you can see it moves up as if it were to home, then it stops before reaching the endstops. Additionally we noticed that as the end effector moves lower to the bed, it moves more and more as you get closer. My initial guess is that it doesn't understand where zmin is so we need to be able to probe the bed or tell it where the bottom is. However, when manually inputting z0 with M306 Z0, it still does not fix the issue. 

We decided to try our induction sensor, which has a voltage divider so it can take in 12V but be able to work with a 5V input from the board. It plugs in fine and the light on it registers, however it is always opened, even when we see the light being triggered. So that's where we are now. Homing not working, zprobe not working, something wrong with our kinematics as well since it isn't moving the same amount as it gets closer to the bed. Our big pulley's have a diameter of 89.9mm which should give us 142 'teeth' on the pulley when calculating the actual circumference. We end up with a pulley reduction of 9.02226215564 and with the 32 microstepping and 400 steps/mm motors we get a total steps/mm of 320.791543312. 

Here are some videos of the printer running on a ramps + arduino and marlin as well: https://www.youtube.com/watch?v=YOts58trAGU
https://www.youtube.com/watch?v=ZHU2rk1it-Q&list=PLJ6MSNEWbSRj-3txn-mxreXx9fr0_FSMi&index=2 (still being processed by youtube)
I also attached a photo of a piece the marlin code printed. 

18052298_10154479201803461_1415343946_o.jpg

Douglas Pearless

unread,
Apr 20, 2017, 1:30:45 AM4/20/17
to fire...@googlegroups.com
I originally ported the Rotary Delta to Smoothie so I will try to help.

There is a setting in the config file which is the maximum it will travel to home before it stops.  This is a safety part of Smoothie to eventually stop a homing if the end stops are not triggered.  I am not near my PC so I cannot tell you what the setting is but it should be listed in the config section of the Smoothie documentation.

Also check your pulley ratios and steps, I documented that in the original config for Rotary Delta (FirePick) so you should be able to check those values too.

One test you can do is manually move the effector to say via 20mm from the base plate at the bottom and use a g-code (M114) to record  its actual height then move it via a G0 10mm lower using the result from the M114 and then measure whether it actually moved 10mm and adjust the pulley ratios to correct.

Cheers
Douglas

Sent from my iPhone
--
You received this message because you are subscribed to the Google Groups "FirePick" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firepick+u...@googlegroups.com.
To post to this group, send email to fire...@googlegroups.com.
Visit this group at https://groups.google.com/group/firepick.
For more options, visit https://groups.google.com/d/optout.
<18052298_10154479201803461_1415343946_o.jpg>

Karl

unread,
Apr 20, 2017, 8:18:46 PM4/20/17
to FirePick
Welcome, Tyler!We'd love to see pictures of your project. :D

I'm a Mega fan, but you're in good hands with Douglas and Smoothie.

Looks like you've hit the gnarly zbowl issue--with 3DP part manufacturing tolerance it may be difficult to eliminate that mechanically. I've been pursuing software calibration solutions, but my head hurts from the complexity.

Also regarding DRV8825--I've switched to the Trinamic stepper chips. They are BEAUTIFUL, COOL and SMOOTH. 

Keep up the good work!

Douglas Pearless

unread,
Apr 20, 2017, 8:37:24 PM4/20/17
to fire...@googlegroups.com
Yep!

I have started, but have not had time, to implement the attached paper in Smoothie which should address the bowl effect, have a look and see what you think.

Note I have designed the sensors for the FirePick delta and have these mounted, just have not have time to write the code.
Kinematic_calibration_of_the_parallel_Delta_robot.pdf

Karl

unread,
Apr 21, 2017, 11:10:45 AM4/21/17
to FirePick
Douglas, your approach seems 100% the right way to go. I will follow you once I catch my breath. :D
Message has been deleted

Tyler Kalinowicz

unread,
Apr 22, 2017, 10:51:40 AM4/22/17
to FirePick
Yeah with the 3D printed pieces we are definitely going to have some inaccuracies that we can't really do much about, but with the Marlin code we were able to keep the bowling effects to a minimum in a 120mm diameter on the print bed. Beyond that we would see increased bowling effects.  


On Thursday, April 20, 2017 at 8:18:46 PM UTC-4, Karl wrote:

Looks like you've hit the gnarly zbowl issue--with 3DP part manufacturing tolerance it may be difficult to eliminate that mechanically. I've been pursuing software calibration solutions, but my head hurts from the complexity.

On Wednesday, April 19, 2017 at 11:11:55 AM UTC-7, Tyler Kalinowicz wrote:
Hi, I haven't ever posted in this group so I'd like to start by saying hi! My name is Tyler. Me and three other engineering students in our fourth year have been constructing our 

 
Okay awesome. I'll give it a look today and try and adjust the ratio accordingly. After moving from Marlin to Smoothieware I was quite curious as to why your code homes to minimum. Every delta I've worked with homes to max. What are the implications of homing to minimum? When inputting gcode should my z height be negative? 

Tyler Kalinowicz

unread,
Apr 22, 2017, 5:25:45 PM4/22/17
to FirePick
So a little update. We have been messing around A LOT with the printer today. We've spent hours just trying to get it to work properly. We tried calibrating the printer the way you mentioned but it seems like the delta_z_offset value doesn't actually correspond to what the height is in real life. We're having to set our offset way larger than the distance between our big pulley and the bed. We initially had a z height of around 210mm, however every time we'd input our delta_z_offset of 337mm, when in the home position M114 would output about 130mm. Once the printer went past what it thought was the z=0 position, the printer would accelerate rapidly and all dimensional accuracy was lost. 

The only way we've been able to print is by setting the delta_z_offset value to a larger value and adjusting our steps/mm value accordingly. The only problem with that is now our prints aren't dimensionally accurate and everything is off by about 20%.

Also, in the code we have currently, there is no delta_home_angle set. The rotary delta config file for smoothie doesn't seem to have, but the one on your personal github does. 
 

On Thursday, April 20, 2017 at 1:30:45 AM UTC-4, Douglas Pearless wrote:

Douglas Pearless

unread,
Apr 23, 2017, 3:08:31 AM4/23/17
to fire...@googlegroups.com
The firmware on my github is old now, but it does work; suggest you start with that version as the code was refactored after I submitted the pull request.

If that works, then move on to the newest code and see if it still works.

Let me know how the results of these two tests.

Cheers
Douglas
On 23/04/2017, at 9:25 AM, Tyler Kalinowicz <tylerka...@gmail.com> wrote:

So a little update. We have been messing around A LOT with the printer today. We've spent hours just trying to get it to work properly. We tried calibrating the printer the way you mentioned but it seems like the delta_z_offset value doesn't actually correspond to what the height is in real life. We're having to set our offset way larger than the distance between our big pulley and the bed. We initially had a z height of around 210mm, however every time we'd input our delta_z_offset of 337mm, when in the home position M114 would output about 130mm. Once the printer went past what it thought was the z=0 position, the printer would accelerate rapidly and all dimensional accuracy was lost. 

The only way we've been able to print is by setting the delta_z_offset value to a larger value and adjusting our steps/mm value accordingly. The only problem with that is now our prints aren't dimensionally accurate and everything is off by about 20%.

Also, in the code we have currently, there is no delta_home_angle set. The rotary delta config file for smoothie doesn't seem to have, but the one on your personal github does. 
 

On Thursday, April 20, 2017 at 1:30:45 AM UTC-4, Douglas Pearless wrote:
I originally ported the Rotary Delta to Smoothie so I will try to help.

There is a setting in the config file which is the maximum it will travel to home before it stops.  This is a safety part of Smoothie to eventually stop a homing if the end stops are not triggered.  I am not near my PC so I cannot tell you what the setting is but it should be listed in the config section of the Smoothie documentation.

Also check your pulley ratios and steps, I documented that in the original config for Rotary Delta (FirePick) so you should be able to check those values too.

One test you can do is manually move the effector to say via 20mm from the base plate at the bottom and use a g-code (M114) to record  its actual height then move it via a G0 10mm lower using the result from the M114 and then measure whether it actually moved 10mm and adjust the pulley ratios to correct.

Cheers
Douglas

Sent from my iPhone

On 20/04/2017, at 11:40 AM, Tyler Kalinowicz <tylerka...@gmail.com> wrote:


So a bit of an update. Looked at this code here:https://github.com/Smoothieware/Smoothieware/blob/edge/ConfigSamples/rotary.delta/configby wolfmanjm and we tried it out with some newer values. We are still having an issue with homing, which we took a video of here: https://www.youtube.com/watch?v=lKZ5831n2Fo 
As you can see it moves up as if it were to home, then it stops before reaching the endstops. Additionally we noticed that as the end effector moves lower to the bed, it moves more and more as you get closer. My initial guess is that it doesn't understand where zmin is so we need to be able to probe the bed or tell it where the bottom is. However, when manually inputting z0 with M306 Z0, it still does not fix the issue. 

We decided to try our induction sensor, which has a voltage divider so it can take in 12V but be able to work with a 5V input from the board. It plugs in fine and the light on it registers, however it is always opened, even when we see the light being triggered. So that's where we are now. Homing not working, zprobe not working, something wrong with our kinematics as well since it isn't moving the same amount as it gets closer to the bed. Our big pulley's have a diameter of 89.9mm which should give us 142 'teeth' on the pulley when calculating the actual circumference. We end up with a pulley reduction of 9.02226215564 and with the 32 microstepping and 400 steps/mm motors we get a total steps/mm of 320.791543312. 

Here are some videos of the printer running on a ramps + arduino and marlin as well: https://www.youtube.com/watch?v=YOts58trAGU
https://www.youtube.com/watch?v=ZHU2rk1it-Q&list=PLJ6MSNEWbSRj-3txn-mxreXx9fr0_FSMi&index=2 (still being processed by youtube)
I also attached a photo of a piece the marlin code printed. 


-- 
You received this message because you are subscribed to the Google Groups "FirePick" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firepick+u...@googlegroups.com.
To post to this group, send email to fire...@googlegroups.com.
Visit this group at https://groups.google.com/group/firepick.
For more options, visit https://groups.google.com/d/optout.
<18052298_10154479201803461_1415343946_o.jpg>

Tyler Kalinowicz

unread,
Apr 23, 2017, 9:14:05 PM4/23/17
to FirePick
So we tried from scratch and the code from your github doesn't work. The printer won't home and move properly. We are able to get the refactored code close to working, however our movements are always too small when the bicep arms are above the horizontal and the movements are much longer when the tool is closer to the bed. Changing the steps/mm isn't really changing thing. We got the z probe to trigger when it gets close to the bed, but any attempt to send a G32 or G30 or G29 command smashes the nozzle into the bed. All of our prints are currently coming out pretty accurate in the x-y plane but extremely stretched in the z direction. 

Brandon Byrne

unread,
Jun 2, 2017, 9:22:41 PM6/2/17
to FirePick
Hey Tyler, I saw the youtube videos of your delta in action and it looked pretty good.  I was hoping you could give a brief summary here of what you did and how you overcame some of the issues you have outlined above.  Despite the difficulties and issues with the Firepick Delta I've started building one myself; the design seems solid and I figure the best way to learn about deltas is to try to work through some of the calibration issues here.  Any details of what you did would help tremendously.

Thomas Kamsker

unread,
Sep 7, 2017, 2:29:36 AM9/7/17
to FirePick
Hi i am about to build and fire pick for my learning. i almost have all parts laying around. (including smoothie board ;)- So my question is there some progress when all is put together i can offer some tests. I have good development skills and i do cnc mills and lathes thomas 
Reply all
Reply to author
Forward
0 new messages