TMC4671 expansion board
-
The TMC4671 (https://www.trinamic.com/products/integrated-circuits/details/tmc4671/) can support steppers, Three-Phase, and DC motors/voice coils all running closed loop with Field Oriented Control for steppers and three phase motors.
Having an expansion board running one or more of these of these drivers with a power stage of 4 half bridges would allow maximum flexibility for motors/feedback.
There are dual feedback inputs so you can have one feedback mechanism for commutation and one for the actual position loop. They support both incremental ABN encoders, Hall sensors, and BISS-C/SSI encoders.
This would allow you to drive essentially any motor in step/direction mode from a duet.
Sweet tiny extruder with a micro geared dc motor for the smallest direct drive possible (https://www.pololu.com/product/3055)? You got It!
Drive a linear motor for the absolute fastest speeds for benchy printing? You can do it!
Motor torque feedback for extruder pushing force tracking and grinding prevention? Totally doable.
Want to drive a voice coil optical stage that you got on ebay just because? Easy.
Got your hands on some optical scales from a CNC and never want to use limit switches again? Sure.
That's a lot of functionality for a 12USD chip...
-
@lee7670 That's some serious bang for the buck. FW will probably be a whopper though.
We should first focus on having DC42 cloned 10x then we can have it all . Some form of closed loop is already in the pipeline I believe -
@lee7670 said in TMC4671 expansion board:
Sweet tiny extruder with a micro geared dc motor for the smallest direct drive possible (https://www.pololu.com/product/3055)? You got It!
I wouldn't be too enthusiastic about the geared DC motors, they spin 20k RPM and they won't stop at once.
I'm currently experimenting a lot with the exact same N20 encoder motors and they have some overshooting problems.TBH I'm not a code-wizard, so there might be a propper solution for that issue.
I'm using TB6612 drivers btw. and hardware quadrature decoding on a separate Arduino Due.PS: Did you know the N20 motor can be found in these 3D-printer pens as extruder motor? Alas without encoder...but with drive gear and idler bearing incorporated
-
@o_lampe I've done some custom robotics work with the same motors and I was able to get a stable PID loop going no problem in a position mode. Even so, there are also brushed DC motors from reputable manufacturers like Faulhaber which would work great for the purpose.
-
@lee7670
I'm trying to use them as stepper motors, which adds a bit complexity. I can't use PID, since it reacts on every step-pulse. It would be much easier to send the final position and speed, but that's not gcode conform...
I'm also halfway sure, I have the interrupt-mapping wrong and every DIR -pulse adds a step too. -
@o_lampe You can totally, do that, your stepping just changes the position target. You just have to tune it to react quickly enough, which is the trick... Gotta have a fast ADC and power stage as well as high resolution PWM. Edit: Gotta have a real fast control loop, an ASIC which does it for you (TMC4671 runs control loops at 200KHz according to a webinar I found from the trinamic people), or an FPGA to do similar.
-
@lee7670 said in TMC4671 expansion board:
You can totally, do that, your stepping just changes the position target.
In a test run the Due was quick enough to answer every step pulse. There is no 'piling up' of steps I could apply a PID algorythm to.
The hardware QDE is capable of reading the encoder pulses at 42MHz. Not sure about the other interrupts, though...
If you like, we can discuss it here
[\OT]