Running 3020 pro 48 volt motors on Duet at 24 volts for AFSD
-
@o_lampe you still need a esc or something like that. you can't just wire a DC motor in and expect it to go. I was just trying to point out theres no DC drivers on the board, only PWM control
-
Thanks so much for the prompt and detailed reply!
A few additional more detailed questions about the specifics below...@jay_s_uk said in Running 3020 pro 48 volt motors on Duet at 24 volts for AFSD:
@unit-005 said in Running 3020 pro 48 volt motors on Duet at 24 volts for AFSD:
Will it be possible to run the 48 volt stepper motors of the 3020 pro, on the Duet 3 MB6HC given the current limits of the duets drivers?
No, the 6HC can only handle up to 32v input. If you want 48v then look at adding a 3HC, a 6XD with external drivers or use something like an STM32 board (either one that can handle 48v natively or external drivers)
So it is impossible to use a 24 volt PSU with the duet, and drive the 48 volt steppers from the 24 volt PSU, basically undervolting them?
@unit-005 said in Running 3020 pro 48 volt motors on Duet at 24 volts for AFSD:
Can I monitor the stepper motor current directly from the duet user interface somehow?
You can find out what you've set them to but you can't dynamically monitor the current in realtime
Do you know of any instances of stepper motor current monitoring for closed loop control? Or other practical implementations of closed loop stepper control via the Duet?
I would very much like to obtain this data for my experiments but I am not sure how to get it without probing the sense resistors of the motor drivers directly.@unit-005 said in Running 3020 pro 48 volt motors on Duet at 24 volts for AFSD:
Can I monitor spindle current and RPM of a driven a DC motor from the Duet's built in DC spindle drivers?
None of the duet boards can natively control a DC spindle. You have to use some sort of driver for that, whether its one of those small PSU's you get for a 500w or 800w spindle or a VFD. There is also no feedback system currently in the firmware so you can only set the spindle speed and trust its at that speed (the setting of the speed is via PWM).
So in principle, if I use one of the analog inputs for an optical tachometer, and use that input to validate the spindle RPM, and install my own current sensor on one of the leads of the spindle motor, then feed that current sensor output back to one of the duet's analog inputs, I should be able to monitor both spindle RPM and current, but the Duet does not support that monitoring natively without this kind of custom setup?
@unit-005 said in Running 3020 pro 48 volt motors on Duet at 24 volts for AFSD:
Would it be possible to replace the DC spindle motor with a stepper motor?
You won't have neither the speed or the torque required, hence why people use DC spindles
I am not using the spindle at high RPM... AFSD typically occurs at speeds between 300-1000 RPM, where DC motors tend to have lower torque than steppers.
I have some nice off the shelf stepper motors that are pre drilled and tapped to the right size, for my AFSD setup, while the DC motors typically require me to modify them manually. Which is troublesome and inconsistent.But it is alright if I must use a conventional DC spindle...
-
@o_lampe said in Running 3020 pro 48 volt motors on Duet at 24 volts for AFSD:
@jay_s_uk We can drive a DC motor from the bed heater FET? But it's only one direction.
In case of AFDS this might be good enough...This does sound like it may be sufficient... it only needs to turn one direction at a low speed and I would like to be able to monitor the spindle current and RPM closely for closed loop control of the process... Among other things like tool temperature and pressure. Are there examples of doing this elsewhere in the forum? I have looked but have not found anything I would term a usable schematic since I am kind of new to the duet.
@unit-005 I've heard of ultrasonic AFSDs, what's the benefit of a spindle motor?
the spindle motor allows for complete volumetric grain refinement at the deposit by stirring the whole volume together rather than just at the interfaces.
I am specifically using a powder material feedstock pumped by diaphragm pumps through a material deposition needle into a space underneath a rotating polycrystalline diamond FDM nozzle. the nozzle spins, traps the powder under its tool face, and causes the particles asperities (sharp edges and points) to break up and flow, releasing strain energy as heat; this heat then plasticizes each particle in contact with the tool and allows them to be stirred together into a wrought deposit about ~20 microns thick, on a surface. I am using this to create wrought aluminum and copper tracks on aluminum oxide and other ceramics for high reliability electronics, but eventually 3D printing in earnest.It works well but I need better control to really push it to be more than just a curiosity. I have been making youtube videos about it and will be vlogging about it more extensively as the project progresses. I am doing a PhD on the surface physics involved.
Hence, why I need more data collection capabilities to be able to run good experiments.
-
@unit-005 said in Running 3020 pro 48 volt motors on Duet at 24 volts for AFSD:
it only needs to turn one direction at a low speed and I would like to be able to monitor the spindle current and RPM closely for closed loop control of the process... Among other things like tool temperature and pressure.
You might be better off with a brushless DC motor (BLDC) and an RC-helicopter ESC. The helicopter ESC can be controlled via a simple GPIO pin on the Duet in "servo" mode. The ESC itself has "governour" mode to keep RPM steady. That would indirectly link the PWM-servo signal to an external close loop RPM.
Controlling motor current is a different thing, since you'd have to overrule the RPM loop. An external shunt resistor between PSU and ESC would supply a current control signal for the Duet, but the Firmware reads analogue values as temperatures. (no current or pressure guages so far)
There is a fast close loop PID algorhythm implemented to keep "temps" steady. You just have to match the value from the shunt to be useful as fake thermistor.
There are also PT1000 sensor daughterboards for Duets available, maybe they are better suited for reading small voltages from a shunt?I guess the pressure, motor current and RPM will all depend on each other and one signal overrules the others.
Stacking 3 close loop signals is not the easiest thing to do. Maybe you'll find, that controling pressure has highest priority and current /RPM are just secondary signal following the pressure loop. (Current and RPM just need to be monitored to not exceed critical values)Strain gauges are used in 3D printing to measure "pressure", but it's very low and not an analogue signal. (eg. z-probe of the SmartEffector)
With bigger strain gauges (and the PT1000 daughterboard?) you can mock up an analogue pressure sensor. But again, it's interpreted as temperature. -
@unit-005 said in Running 3020 pro 48 volt motors on Duet at 24 volts for AFSD:
So it is impossible to use a 24 volt PSU with the duet, and drive the 48 volt steppers from the 24 volt PSU, basically undervolting them?
You can indeed run the motors at a lower voltage. If you know the specifications of the motors then you can use the calculator at https://www.reprapfirmware.org/emf.html to estimate the speed at which torque will start to drop because of insufficient voltage.
Do you know of any instances of stepper motor current monitoring for closed loop control? Or other practical implementations of closed loop stepper control via the Duet?
See https://docs.duet3d.com/en/Duet3D_hardware/Duet_3_family/Duet_3_Expansion_1HCL.
-
@o_lampe said in Running 3020 pro 48 volt motors on Duet at 24 volts for AFSD:
@unit-005 said in Running 3020 pro 48 volt motors on Duet at 24 volts for AFSD:
it only needs to turn one direction at a low speed and I would like to be able to monitor the spindle current and RPM closely for closed loop control of the process... Among other things like tool temperature and pressure.
You might be better off with a brushless DC motor (BLDC) and an RC-helicopter ESC. The helicopter ESC can be controlled via a simple GPIO pin on the Duet in "servo" mode. The ESC itself has "governour" mode to keep RPM steady. That would indirectly link the PWM-servo signal to an external close loop RPM.
Controlling motor current is a different thing, since you'd have to overrule the RPM loop. An external shunt resistor between PSU and ESC would supply a current control signal for the Duet, but the Firmware reads analogue values as temperatures. (no current or pressure guages so far)
There is a fast close loop PID algorhythm implemented to keep "temps" steady. You just have to match the value from the shunt to be useful as fake thermistor.
There are also PT1000 sensor daughterboards for Duets available, maybe they are better suited for reading small voltages from a shunt?I guess the pressure, motor current and RPM will all depend on each other and one signal overrules the others.
Stacking 3 close loop signals is not the easiest thing to do. Maybe you'll find, that controling pressure has highest priority and current /RPM are just secondary signal following the pressure loop. (Current and RPM just need to be monitored to not exceed critical values)Strain gauges are used in 3D printing to measure "pressure", but it's very low and not an analogue signal. (eg. z-probe of the SmartEffector)
With bigger strain gauges (and the PT1000 daughterboard?) you can mock up an analogue pressure sensor. But again, it's interpreted as temperature.So I would have to write my own firmware from the ground up and give it a gcode wrapper to make it compatible with the wider ecosystem at some point to be able to have anything bu temperature data?
Or is there some built in way to just change the data label and register the signal as what it is? a simple analog voltage value?
-
@dc42 said in Running 3020 pro 48 volt motors on Duet at 24 volts for AFSD:
@unit-005 said in Running 3020 pro 48 volt motors on Duet at 24 volts for AFSD:
So it is impossible to use a 24 volt PSU with the duet, and drive the 48 volt steppers from the 24 volt PSU, basically undervolting them?
You can indeed run the motors at a lower voltage. If you know the specifications of the motors then you can use the calculator at https://www.reprapfirmware.org/emf.html to estimate the speed at which torque will start to drop because of insufficient voltage.
Do you know of any instances of stepper motor current monitoring for closed loop control? Or other practical implementations of closed loop stepper control via the Duet?
See https://docs.duet3d.com/en/Duet3D_hardware/Duet_3_family/Duet_3_Expansion_1HCL.
Thanks for the help DC!
It does appear my specific motor model will handle being undervolted at 24 volts without substantial loss of torque, though it may run at a lower set of speeds.
As regards the exapnsion board, is that strictly for use in driving a closed loop stepper motor? or is it also for providing better control over a DC spindle with built in current monitoring?
-
@unit-005 said in Running 3020 pro 48 volt motors on Duet at 24 volts for AFSD:
As regards the exapnsion board, is that strictly for use in driving a closed loop stepper motor?
Yes. I am not a CNC user, but I believe the usual way to drive a spindle is to use an AC motor with a variable frequency drive (VFD). A DC motor with speed controller would be a lower cost option. Do you know the characteristics (voltage, current etc.) of your spindle motor and any associated control electronics?
-
@dc42 said in Running 3020 pro 48 volt motors on Duet at 24 volts for AFSD:
@unit-005 said in Running 3020 pro 48 volt motors on Duet at 24 volts for AFSD:
As regards the exapnsion board, is that strictly for use in driving a closed loop stepper motor?
Yes. I am not a CNC user, but I believe the usual way to drive a spindle is to use an AC motor with a variable frequency drive (VFD). A DC motor with speed controller would be a lower cost option. Do you know the characteristics (voltage, current etc.) of your spindle motor and any associated control electronics?
The DC motor is a 30 watt unit, running at 24 volts, and 1.2 Amps.
I Was planning to drive it directly from one of the two prong high current PWM outputs on the duet main board. -
@unit-005 that should be OK. The starting current of the motor will be a lot higher than 1.2A if you command full power immediately, but a short-term surge of 10A should not cause the Duet a problem. You can work out the starting current if you measure the resistance of the motor and divide that into 24V. Measure the resistance several times, turning the shaft slightly between readings, and take the lowest value.
If you decide that you do need to use 48V supply for your motors then please send me a direct message via the Chat function.