Jump to content
Ultimaker Community of 3D Printing Experts
Sign in to follow this  
donmilne

Feeder motor current.

Recommended Posts

Given that the firmware has to monitor it continually, and since it's apparantly crucial to performance, is there any chance of getting a live view of feeder motor current draw say in the Tune menu? I'm asking for a way to view it, not necessarily an ability to change the limit.

Basically, I want to be able the see how close I am to skipping, also the precise effect of higher operating temp, bearing mod on spool holder, PTFE bowden tube etc. Also if the number tends to grow over time then presumably I have a growing hot end blockage...

etc etc. I'm kind of surprised it isn't there already, but I couldn't find it.

 

Share this post


Link to post
Share on other sites

As far as I know there's no way to get that information as it's not handled by the firmware but rather by the stepper driver IC. I don't know if those chips are able to report that information back. And I'm not sure what good it would do, doesn't the stepper use as much current as it is allowed? There is a setting these days to set the current in Maintenance -> Movement settings (I think that's right, too lazy to go check on the printer) but no way to check what's actually being drawn.

 

Share this post


Link to post
Share on other sites

>Doesn't the stepper use as much [current] as is allowed?

I'm open to being corrected by David, but I do have recent experience controlling a normal (not stepper) motor with an Arduino, and in that case the motor only draws peak current when it's overworked, i.e. load stuck. I'm not sure how stepper motors are driven - is it through an h-bridge chip? In which case measuring input current ought to be possible.

 

Share this post


Link to post
Share on other sites

I believe the following...

Oh and yes, the driver chops the current to the set value. Because of holding torque, the motor always consumes the same amount of current whether stepping or not. Basically, there is either enough current to overcome the force to step or the step is missed. It won't consume more current under load.

 

Share this post


Link to post
Share on other sites

Sets the current? Again, that seems unlikely. I assume you would send the driver chip a series of TTL pulses, and the motor will take whatever current it needs, unless limited by the supply. Hmm. Maybe I should build myself a breadboard stepper controller to give my guesses a better chance of being right.

 

Share this post


Link to post
Share on other sites

This doesn't make sense to me. If the motor current doesn't change with load, why does it need to be limited?

Also, my understanding of the "feeder motor skipping" problem is that when the draw exceeds the 1250mA current limit then the motor is reversed a bit to avoid grinding the filament (or destroying the motor?). An explanation which again IMHO makes no sense if current is constant. Likewise the partial remedy of using a higher hotend temp... does what exactly? - if not reduce the load and hence the load dependant current draw?

 

Share this post


Link to post
Share on other sites

Stepper motors in normal use are constant current devices. See here for a great introduction:

http://www.geckodrive.com/support/step-motor-basics.html

So the controller sets the current that is supplied to the motor, and the available torque is proportional to that. If the motor tries to step but stalls and cannot advance, then in falls back into a stable configuration - this is what is happening when the motor 'steps back'.

Heating the filament makes it easier to extrude, lowering the pressure in the head, and hence the required torque at the exruder motor - and so makes it less likely that the motor will stall, given its fixed torque capabilities.

 

Share this post


Link to post
Share on other sites

Limiting is required because most steppers are specified at 2-3V and we are cramming 18V into them. Without the limiting, the motors would burn up

Nope, trust me, one of the fundamental functions of the the driver is to limit current.

The skipping occurs when the force required to move to the next step is more that the force generated by the coils at the set current. There is no reversing due to a missed step The controller has no way of knowing the step was missed.

I checked the electronics and there is NO way for the controller to measure the current.

These are used in the UM1 and use the same chip as the UM2. See the section on current limiting.

http://www.pololu.com/product/1182

There are sense resistors on both the pololu carrier board and the UM2 (which have the AD4988s built in). The sense resistors are NOT monitored by the UM1 (they aren't even available off the carrier) or the UM2 where they are only connected to ground.

Go here:

https://github.com/Ultimaker/Ultimaker2/blob/master/1091_Main_board_v2.1.1_(x1)/Main%20Board%20V2.1.1.pdf?raw=true

go to page ten. It shows the 5 drivers for X, Y, Z E1 and extra (E2)

Notice that the only pins that go off the page are STEP, DIR, ENABLE and VREF. The sense lines on the right side only go to ground. The STEP, DIR ENABLE are self explanatory. VREF is the voltage FROM the processor and is what sets the current.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!