Welcome! Log In Create A New Profile

Advanced

Firmware Modifications for Pinch-Wheel Extruder

Posted by cpwebste 
Firmware Modifications for Pinch-Wheel Extruder
April 03, 2009 12:58PM
I am interested in what modifications need to be made to the Arduino firmware to accommodate a pinch-wheel style extruder where the extruder motor is a stepper motor instead of a DC motor. It looks like the firmware currently has it setup as a DC motor which it is controlling the speed via pwm. This is obviously not a good idea to try to control a stepper motor driver this way. Can someone point me in the right direction as I am sure this problem has been dealt with before as the current trend is shifting towards using these types of filament drives. Thanks in advance and PS, great work on the software/firmware so far! A big thanks goes out to all those who have been contributing!


[cpwebste.blogspot.com]
Re: Firmware Modifications for Pinch-Wheel Extruder
April 03, 2009 08:02PM
They talk about in TermoplatExtuder_2

Here's a link:

[reprap.org]
Re: Firmware Modifications for Pinch-Wheel Extruder
April 04, 2009 07:02PM
Thanks freds. I went ahead and applied all the relevant changes. Here is the issue I am still having. My motor drivers require a step pulse each time the motor needs to step. So for the extruder to keep turning it would require continuous pulses on the step input. With the new firmware I seem to be only able to get a constant logic HIGH or LOW. It does not seem to be sending continuous pulses. I have a feeling this has to due with the fact that the software probably can't handle pulsing too many motors at once (X, Y, Z, and extruder). Is this what I should be observing? I browsed through the code and found the relevant section that looks like it might be pulsing, but I was unsure what some of the variables represented. Has anyone used this stepper driver extruder firmware successfully? And what should I be seeing as the output? Pulses or a constant value? Thanks.


[cpwebste.blogspot.com]
emt
Re: Firmware Modifications for Pinch-Wheel Extruder
April 06, 2009 01:36PM
Hi

Are you running as G code or trying to use the Host? I think the firmware may have only been altered to stepper extruder drive for the G code Interpretor.


Regards

Ian
Re: Firmware Modifications for Pinch-Wheel Extruder
April 07, 2009 06:51AM
I am using the software to generate Gcode from an stl file and then send it to my Arduino that has the GCode_Interpreter firmware loaded on it. The firmware is the most up to date version and I am pretty sure I have everything hooked up correctly. Is the stepgenie a suitable replacement for the reprap extruder controller (gen 3 I think)? The step genie specs are at stepgenie.com. The IC has a step, direction, and enable input, so I hooked these up as specified on the extruder v2 page linked above. That should work right??

An additional question I came across, is there any reason that the manual control on the host software limits Y direction movements to 160mm? I have it set to have 220mm of workspace, but every time I put in a number >160 it just defaults to 160mm. Any thoughts? I haven't tested it yet on automatic control being directed by GCode, so I'm not sure if the problem is just in the manual control or if it includes normal build operation.


[cpwebste.blogspot.com]
Re: Firmware Modifications for Pinch-Wheel Extruder
April 08, 2009 10:11AM
What version of the firmware were you using and intending to modify? Of a user (Zach, Marius')? Or of the main one (mostly managed by Adrian IIRC)?

In the svn trunk (reprap/trunk/reprap/firmware/GCode_Interpreter) there is code in there for stepper based extrusion.

For example in parameters.h(.dist):

// For when we have a stepper-driven extruder
// E_STEPS_PER_MM is the number of steps needed to
// extrude 1mm out of the nozzle.

#define E_STEPS_PER_MM 0.52 // 5mm diameter drive - empirically adjusted
#define E_STEPS_PER_INCH (E_STEPS_PER_MM*INCHES_TO_MM)
#define E_MOTOR_STEPS 400

In extruder.pde it steps every 1000 interrupts.

From the code it seems that you enable a stepper based extrusion by defining STEP_EN_PIN as >= 0.


Regards,

Erik de Bruijn
[Ultimaker.com] - [blog.erikdebruijn.nl]
Re: Firmware Modifications for Pinch-Wheel Extruder
April 08, 2009 09:25PM
I've spent a good amount of time in the past couple days debugging everything and it ended being that one of the other .pde's, either the extruder.pde or command interpreter were corrupted. When I replaced them and made the changes above it started working. I had to adjust the E_STEPS_PER_MM for my smaller 0.4mm nozzle, but after that, when I press extrude it extrudes!

One big problem though. For some reason, when I pause or stop a build midway, the extruder does not shut off anymore. I am thinking that when the modification were made to the code to allow for the new extruder design this may have been overlooked. Can anyone else with a pinch wheel extruder and the GCoder_Interpreter firmware from the svn trunk confirm this?


[cpwebste.blogspot.com]
Re: Firmware Modifications for Pinch-Wheel Extruder
April 09, 2009 03:14AM
I'll see if I can replicate it. Maybe today. I guess we could come up with a fix then. I've been looking at the firmware a lot these days, because I also think I had the problem with the extrusion was >= STEP_EN_PIN while I set it to -1. This meant for me that stepper based extrusion kicked in. This setting was historically a compiler-level variable, but now it is set at run-time when the program initializes to allow for multiple extruders by invoking the same methods. Anyway, I finally found out that en_in was different than STEP_EN_PIN, while STEP_EN_PIN is used to set en_pin. I ended up manually commenting out the stepper enabled parts in the code. How did you solve it? Are you using stepper based extrusion, or just planning to (I intend to)?


Regards,

Erik de Bruijn
[Ultimaker.com] - [blog.erikdebruijn.nl]
Re: Firmware Modifications for Pinch-Wheel Extruder
April 09, 2009 06:57AM
The main change that I made were the ones described in the extruder v2 page. I simply chaned the STEP_EN_PIN to a value >= 0. I think I used Arduino pin 5. I moved the fan onto one of the analog pins that I wasn't using (analog1, one of the max endstops I think). Then you just use the extruder speed control in the host software. It's shown with units of rpm but if you have the pinch wheel extruder hooked up it is actually in units of mm/min. So for example I put 700 in the extruder speed field in the manual window host software and hit extrude and it will start turning. I had to fine tune the E_STEP_PER_MM field in the Arduino firmware as well to get it to a correct value. I had a 5mm diameter wheel but my extruder nozzle was 0.4mm which makes it extrude about twice as fast as a 0.5mm nozzle using mass conservation. I'm trying to think if there was anything else major that I did, but I'm pretty sure that was it. Just make sure you follow the schematic on this page: [dev.www.reprap.org]

I had issues originally because I didn't have the enable pin hooked up. I was just using the step and dir pins. The enable pin, unlike the XY and Z steppers is actually used to control extruding so wire it up! But I have been using stepper based extruding for the past 10 prints or so and the variable speed is working great. I can get up to around 1000 mm/min with the extruder that I have made, but I just have that annoying problem of not being able to pause/stop the builds midway because the extruder just keeps going. I have a feeling the disable_steppers() function is getting called which disables the X, Y, and Z steppers, but it appears that the method for using the pinch-wheel stepper is actually different than how the axis steppers work (it uses the enable pin where the axis steppers have the enable pin on at all times). So I feel like a modification will be needed to stop the extruder stepper as well when the axes are frozen. Let me know if anyone else notices this bug.


[cpwebste.blogspot.com]
Re: Firmware Modifications for Pinch-Wheel Extruder
September 11, 2009 08:10PM
I have a similar problem, I can't use my stepper motor with Extruder Controller v2.2.

I can't find STEP_EN_PIN in the source code. Are you using gen3 firmware ?
Sorry, only registered users may post in this forum.

Click here to login