Maestro external driver not working as expected
-
Hello
I started using an external driver to drive an axis on my 3d printer and have been having nothing but problems with getting this to work.
The issue I am having is that the duet3d maestro does not seem to respond to the M569 Gcode properly in particular is the polarity, Which does not seem to make any change electrically with the wiring and does not seem to make sense either
I have attached my config.G file below the line in particular that has the problem is this one
M569 P5 S1 R1 T2 ; physical drive 5 goes forwardsI have tried it with both R1 and R0
The problem I am having is when measuring with a multimeter on the enable, step I am getting the same voltages on both as well.
When Idle / Motor OFF
Step = 0v
Enable = 5vWhen motor running
Step = 5V
Enable = 0VWhich does not make sense as with R1 Step and enable should be active high and R0 both should be active Low
Any help reguarding this would be greatly appreciated.
*Edit : I forgot to mention that the external driver I am using is an DM420A which requires active High signals and also to convert from the 3.3v signals I am using a logic level converter that I have used on multiple projects in the past that works really well to convert the 3.3v into the 5v requirement.
; Configuration file for Duet Maestro (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.0 on Thu Aug 12 2021 16:34:59 GMT+1000 (Australian Eastern Standard Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"My Printer" ; set printer name ; Network M552 P0.0.0.0 S1 ; enable network and acquire dynamic address via DHCP M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P5 S1 R1 T2 ; physical drive 5 goes forwards M569 P1 S0 ; physical drive 1 goes backwards M569 P2 S1 ; physical drive 2 goes forwards M569 P3 S0 ; physical drive 3 goes backwards M584 X5 Y1 Z2 E3 ; set drive mapping M350 X32 Y32 Z32 E64 I0 ; configure microstepping without interpolation M92 X76.74 Y151.47 Z5156.55 E2202.90 ; set steps per mm M566 X900.00 Y900.00 Z60.00 E120.00 ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min) M201 X500.00 Y500.00 Z20.00 E250.00 ; set accelerations (mm/s^2) M906 X800 Y800 Z800 E800 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X10 Y10 Z0 S1 ; set axis minima M208 X200 Y200 Z200 S0 ; set axis maxima ; Endstops M574 X1 S1 P"xstop" ; configure active-high endstop for low end on X via pin xstop M574 Y1 S1 P"ystop" ; configure active-high endstop for low end on Y via pin ystop M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Z-Probe M950 S0 C"^zprobe.mod" ; create servo pin 0 for BLTouch M558 P9 C"^zprobe.in" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X19 Y0 Z2.5 ; set Z probe trigger value, offset and trigger height M557 X25:200 Y25:195 S20 ; define mesh grid ; Heaters M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0 M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S280 ; set temperature limit for heater 1 to 280C ; Fans M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on ; Tools M563 P0 D0 H1 F0 ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C ; Custom settings are not defined
-
@scarface_the_fox said in Maestro external driver not working as expected:
M569 P5 S1 R1 T2 ; physical drive 5 goes forwards
The DM420 is not a closed loop driver, so you have to specify the 'T' parameter in more detail. (eg. T2.5:2.5:5:5)
-
Thanks for the reply,
I have tried changing the T value and it did not help in the slightest as the enable was still low when movement was required.
I have a dodgy fix that I tried after sending the message in the first place which is feeding +5v into the enable pin on the DM420. So that the DM420 is always enabled.
This is far from ideal and would still prefer some way of having the duet3d control the enabling of the stepper driver.
-
@scarface_the_fox I have never tested support for external drivers on the Duet Maestro. On the basis that untested features are usually buggy, it may well be the case that external drivers are not fully supported.