Duet Maestro Stepper Driver Extension Issue
-
Hello world!
I finished rebuilding my Geeetech A20M (kind of an Ender3 with dual color) using a Duet Maestro. The printer is supposed to allow printing with 4 colors (I am using two E3D Cyclops for that).
While the onboard stepper drivers work very nicely, I am facing an issue with the official driver expansion board (or anything that I am overlooking here):
The motors that are driven by the expansion board are very loud (when moving and when at rest). Exchanging motors (I have a couple of spares), does not help. Exchanging wires (I have spares...), does not help. I also have a second expansion board - switching to it does not help. Switching to onboard drivers makes the motors quiet.
There is a bit of a difference between E2 and E3 though, E2 is even louder (E3 may be considered okay-ish). Nevertheless, by inserting E3 into E2, the E2 socket is as quiet as E3. That means, it does not seem like an issue with the board?Lets talk about firmware and config. I am using SpreadCycle for all drivers and I added the "T3" part to the expansion board to make sure that there is no trouble with the timing.
Here is my config.g file.
; Configuration file for Duet Maestro (firmware version 1.21) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v2 on Sat Aug 10 2019 14:51:04 GMT+0200 (MitteleuropƤische Sommerzeit) ; General preferences G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves ; Network M550 P"KrakingCyclops" ; Set machine name 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 P0 S0 V4000 D2 ; Physical drive 0 goes forwards M569 P1 S0 V4000 D2 ; Physical drive 1 goes forwards M569 P2 S1 V4000 D2 ; Physical drive 2 goes forwards M569 P3 S1 V4000 D2 ; Physical drive 3 goes forwards M569 P4 S0 V4000 D2 ; Physical drive 4 goes forwards M569 P5 S0 V4000 D2 T3 ; Physical drive 5 goes forwards M569 P6 S1 V4000 D2 T3 ; Physical drive 6 goes forwards M350 X16 Y16 Z16 E16:16:16:16 I1 ; Configure microstepping with interpolation M92 X80.00 Y80.00 Z400.00 E415.00:415.00:415.00:415.00 ; Set steps per mm M566 X600.00 Y600.00 Z30.00 E600.00:600.00:600.00:600.00 ; Set maximum instantaneous speed changes (mm/min) M203 X12000.00 Y12000.00 Z600.00 E3000.00:3000.00:3000.00:3000.00 ; Set maximum speeds (mm/min) M201 X1500.00 Y1500.00 Z60.00 E1000.00:1000.00:1000.00:1000.00 ; Set accelerations (mm/s^2) M906 X600.00 Y750.00 Z600.00 E1000.00:1000.00:1000.00:1000.00 I50 ; Set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X-11 Y-41 Z0 S1 ; Set axis minima M208 X250 Y220 Z200 S0 ; Set axis maxima ; Endstops M574 X1 Y1 S0 ; Set active low endstops ; Z-Probe M574 Z1 S2 ; Set endstops controlled by probe M558 P9 H5 F120 T6000 ; Enable Z probe and set dive height, probe speed and travel speed G31 P500 X30 Y0 Z3.740 ; Set Z probe trigger value, offset and trigger height M557 X25:225 Y25:225 S25 ; Define mesh grid ; Heaters M307 H0 B0 S1.00 ; Disable bang-bang mode for the bed heater and set PWM limit M305 P0 T100000 B3950 R2200 ; Set thermistor + ADC parameters for heater 0 M143 H0 S100 ; Set temperature limit for heater 0 to 100C M305 P1 T100000 B4725 C7.060000e-8 R2200 ; Set thermistor + ADC parameters for heater 1 M143 H1 S300 ; Set temperature limit for heater 1 to 300C M305 P2 T100000 B4725 C7.060000e-8 R2200 ; Set thermistor + ADC parameters for heater 2 M143 H2 S300 ; Set temperature limit for heater 2 to 300C M307 H1 A251.6 C190.6 D9.0 S0.6 V24.3 B0 M307 H2 A251.6 C190.6 D9.0 S0.6 V24.3 B0 ; Fans M106 P0 S0.5 I0 F500 H1 T45 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned on M106 P1 S0.5 I0 F500 H2 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on ; Tools M563 P0 D0:1 H1 ; 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 M568 P0 S1 ; Enable mixing for tool 0 M567 P0 E1:0 ; Set mixing ratios for tool 0 M563 P1 D1:0 H1 ; Define tool 1 G10 P1 X0 Y0 Z0 ; Set tool 1 axis offsets G10 P1 R0 S0 ; Set initial tool 1 active and standby temperatures to 0C M568 P1 S1 ; Enable mixing for tool 1 M567 P1 E1:0 ; Set mixing ratios for tool 1 M563 P2 D2:3 H2 ; Define tool 2 G10 P2 X0 Y0 Z0 ; Set tool 2 axis offsets G10 P2 R0 S0 ; Set initial tool 2 active and standby temperatures to 0C M568 P2 S1 ; Enable mixing for tool 2 M567 P2 E1:0 ; Set mixing ratios for tool 2 M563 P3 D3:2 H2 ; Define tool 3 G10 P3 X0 Y0 Z0 ; Set tool 3 axis offsets G10 P3 R0 S0 ; Set initial tool 3 active and standby temperatures to 0C M568 P3 S1 ; Enable mixing for tool 3 M567 P3 E1:0 ; Set mixing ratios for tool 3 M563 P4 D0:1 H1 ; Define tool 4 G10 P4 X0 Y0 Z0 ; Set tool 4 axis offsets G10 P4 R0 S0 ; Set initial tool 4 active and standby temperatures to 0C M568 P4 S1 ; Enable mixing for tool 4 M567 P4 E0.5:0.5 ; Set mixing ratios for tool 4 M563 P5 D2:3 H2 ; Define tool 5 G10 P5 X0 Y0 Z0 ; Set tool 5 axis offsets G10 P5 R0 S0 ; Set initial tool 5 active and standby temperatures to 0C M568 P5 S1 ; Enable mixing for tool 5 M567 P5 E0.5:0.5 ; Set mixing ratios for tool 5 ; Automatic saving after power loss is not enabled ; Custom settings are not configured M918 P1 E-4 ; Display and dial selector settings M207 S2 F2500 T1000 Z0.2 ; Firmware retraction settings M572 D0:1:2:3 S0.3 ; Pressure advance ; Miscellaneous M501 ; Load saved parameters from non-volatile memory
I will post the system diagnostics when I am back home. I am using "RepRapFirmware for Duet 2 Maestro version 2.03 running on Duet Maestro 1.0".
With this preanalysis, I would assume that my Maestro might have an issue - or my config is wrong - or both of my driver expansions are weird. So now I am looking for help - as I am running out of options. I was thinking of using some stepsticks that I have and try these with the expansion header. Something that I might try is to attach an oscilloscope to the STEP/DIR/EN pins and check if the signals look fine. What kind of bandwidth would the osci require to do so reliably (I wanted to buy one anyway)?
Any ideas?
Thank you in advance!
-
@Wurstkarton The T3 should not be required for the Maestro expansion board because they are controlled over UART so should be the same as the on board 2224s from that perspective. Try without that.
Can you also try running them all without D2 and comparing.
-
Thanks for the response. Of course I already tried that too. Initially, I used that setting. But that does not change anything. Also the V parameter is not effective, because I am using D2.
For me the behavior of the noise is somehow weird: I tell the stepper to move a millimeter and when it comes to a stop, the noise is kind of changing - loud for a while, then silent, might become loud again. I dont know...
-
@Wurstkarton what is it like without D2.
Stand still noise can be improved with standstill current reduction (which you have configured but you can set it lower for extruders).
-
Yes. I am using a value of 50%, but that does not change much (also going lower). I also know the F parameter, but that does not improve the noise. It even makes it worse changing from the default value of 3.
The main question is: why do the expansion drivers perform worse than the onboard devices? Or is it something else? -
@Wurstkarton said in Duet Maestro Stepper Driver Extension Issue:
Yes. I am using a value of 50%, but that does not change much (also going lower). I also know the F parameter, but that does not improve the noise. It even makes it worse changing from the default value of 3.
The main question is: why do the expansion drivers perform worse than the onboard devices? Or is it something else?If you have configured them in exactly the same way (in particular, the M569 parameters and motor current), then the expansion drivers should behave exactly the same as the on-board drivers, unless there is a hardware or firmware issue that we don't know about.
-
@dc42 said in Duet Maestro Stepper Driver Extension Issue:
@Wurstkarton said in Duet Maestro Stepper Driver Extension Issue:
Yes. I am using a value of 50%, but that does not change much (also going lower). I also know the F parameter, but that does not improve the noise. It even makes it worse changing from the default value of 3.
The main question is: why do the expansion drivers perform worse than the onboard devices? Or is it something else?If you have configured them in exactly the same way (in particular, the M569 parameters and motor current), then the expansion drivers should behave exactly the same as the on-board drivers, unless there is a hardware or firmware issue that we don't know about.
Okay. This is an answer I can work with. I think I might try to get my hands on another Maestro then. This is the only thing I can think of...
BTW: otherwise I am very pleased with it! Works like a champ! Not that anybody gets the wrong impression here...
-
@Wurstkarton said in Duet Maestro Stepper Driver Extension Issue:
@dc42 said in Duet Maestro Stepper Driver Extension Issue:
@Wurstkarton said in Duet Maestro Stepper Driver Extension Issue:
Yes. I am using a value of 50%, but that does not change much (also going lower). I also know the F parameter, but that does not improve the noise. It even makes it worse changing from the default value of 3.
The main question is: why do the expansion drivers perform worse than the onboard devices? Or is it something else?If you have configured them in exactly the same way (in particular, the M569 parameters and motor current), then the expansion drivers should behave exactly the same as the on-board drivers, unless there is a hardware or firmware issue that we don't know about.
Okay. This is an answer I can work with. I think I might try to get my hands on another Maestro then. This is the only thing I can think of...
BTW: otherwise I am very pleased with it! Works like a champ! Not that anybody gets the wrong impression here...
I think it unlikely that a hardware fault would cause a different behaviour. The only reasons I can think of for different behaviour is if the daughter board was manufactured incorrectly, or a firmware bug.
Can you be more precise about the differences between an extruder connected to E0 or E1 on the main board, and the same extruder connected to one of the expansion board outputs, using exactly the same M569 settings (adjusted to account for the driver number) and M906 settings in either case?
Please share your config.g file.
-
Interesting answer. I ordered both of these expansion boards(well I got the second as a replacement for the first, although it behaves as the first..., came to a similar conclusion you did) from the official duet3d page. I also ordered another maestro to rule this out from the equation. Will arrive next week.
Currently I am on vacation. I'll be back next weekend and can provide the information at that time.
[Another edit]: differences between internal and external is mainly noise. It behaves much more "rough" using the expansion board (and also there is a lot of noise when the motors are only in holding position. No noise at all with the internals). I can make a recording of the sound when I am back.
-
I started working on my printer again during the weekend. After installing a replacement Maestro, I can confirm that this is not the issue. It rather looks like an issue with the firmware or a concept issue with the driver expansion.
- can't be a faulty maestro (I tried two of them with same behavior)
- can't be a faulty driver expansion (I tried two of them with same behavior)
- can't be a faulty cable (I tried several of them with same behavior)
- can't be a faulty motor (I tried several of them with same behavior)
I will provide my config.g and M122 output this evening (as I am currently working on making a silicone mold for the E3D Cyclops+, I was short on time...).
If I have the time, I might take a look at the expansion schematic. Maybe I can see something by comparing it to the onboard drivers. -
M122 === Diagnostics === RepRapFirmware for Duet 2 Maestro version 2.03 running on Duet Maestro 1.0 Board ID: 08DAM-9F9GA-J24TJ-6J1DD-3SN6N-94GGU Used output buffers: 3 of 24 (15 max) === RTOS === Static ram: 19664 Dynamic ram: 94840 of which 0 recycled Exception stack ram used: 212 Never used ram: 16356 Tasks: NETWORK(ready,700) HEAT(blocked,1276) MAIN(running,3908) IDLE(ready,160) Owned mutexes: === Platform === Last reset 00:09:46 ago, cause: software Last software reset time unknown, reason: User, spinning module GCodes, available RAM 15800 bytes (slot 1) Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x04418000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d Error status: 0 Free file entries: 10 SD card 0 detected, interface speed: 15.0MBytes/sec SD card longest block write time: 0.0ms, max retries 0 MCU temperature: min 33.6, current 34.0, max 34.1 Supply voltage: min 24.1, current 24.2, max 24.5, under voltage events: 0, over voltage events: 0, power good: yes Driver 0: standstill, read errors 0, write errors 0, ifcount 22, reads 2406, timeouts 0 Driver 1: standstill, read errors 0, write errors 0, ifcount 22, reads 2406, timeouts 0 Driver 2: standstill, read errors 0, write errors 0, ifcount 32, reads 2406, timeouts 0 Driver 3: standstill, read errors 0, write errors 0, ifcount 19, reads 2406, timeouts 0 Driver 4: standstill, read errors 0, write errors 0, ifcount 19, reads 2406, timeouts 0 Driver 5: standstill, read errors 0, write errors 0, ifcount 19, reads 2406, timeouts 0 Driver 6: standstill, read errors 0, write errors 0, ifcount 19, reads 2406, timeouts 0 Date/time: 2019-09-24 19:30:13 Slowest loop: 1.70ms; fastest: 0.07ms I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 === Move === Hiccups: 0, FreeDm: 169, MinFreeDm: 169, MaxWait: 0ms Bed compensation in use: none, comp offset 0.000 === DDARing === Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 === Heat === Bed heaters = 0, chamberHeaters = -1 -1 === GCodes === Segments left: 0 Stack records: 1 allocated, 0 in use Movement lock held by null http is idle in state(s) 0 telnet is idle in state(s) 0 file is idle in state(s) 0 serial is idle in state(s) 0 aux is idle in state(s) 0 daemon is idle in state(s) 0 queue is idle in state(s) 0 lcd is idle in state(s) 0 autopause is idle in state(s) 0 Code queue is empty. === Network === Slowest loop: 5.93ms; fastest: 0.03ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) HTTP sessions: 1 of 8 Interface state 5, link 100Mbps full duplex
-
I generated the config again with the online configurator, but this does not change the result.
; Configuration file for Duet Maestro (firmware version 2.03) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v2.0.4 on Sat Sep 21 2019 11:18:51 GMT+0200 (MitteleuropƤische Sommerzeit) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"KrakingCyclops" ; set printer name M918 P1 E-4 F2000000 ; configure direct-connect display ; 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 P0 S0 D2 ; physical drive 0 goes forwards M569 P1 S0 D2 ; physical drive 1 goes forwards M569 P2 S1 D2 ; physical drive 2 goes forwards M569 P3 S0 D2 ; physical drive 3 goes forwards M569 P4 S1 D2 ; physical drive 4 goes forwards M569 P5 S1 D2 ; physical drive 5 goes forwards M569 P6 S1 D2 ; physical drive 6 goes forwards M584 X0 Y1 Z2 E3:4:5:6 ; set drive mapping M350 X16 Y16 Z16 E16:16:16:16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z400.00 E415.00:415.00:415.00:415.00 ; set steps per mm M566 X1200.00 Y1200.00 Z60.00 E300.00:300.00:300.00:300.00 ; set maximum instantaneous speed changes (mm/min) M203 X9000.00 Y9000.00 Z600.00 E2400.00:2400.00:2400.00:2400.00 ; set maximum speeds (mm/min) M201 X750.00 Y750.00 Z20.00 E750.00:750.00:750.00:750.00 ; set accelerations (mm/s^2) M906 X650 Y750 Z650 E900:900:900:900 I50 ; set motor currents (mA) and motor idle factor in per cent M84 S10 ; Set idle timeout ; Axis Limits M208 X-11 Y-41 Z0 S1 ; set axis minima M208 X250 Y220 Z200 S0 ; set axis maxima ; Endstops M574 X1 Y1 S0 ; set active low and disabled endstops ; Z-Probe M574 Z1 S2 ; set endstops controlled by probe M558 P9 H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X30 Y0 Z4.017 ; set Z probe trigger value, offset and trigger height M557 X-10:220 Y-10:220 S23 ; define mesh grid ; Heaters M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit M305 P0 T100000 B4138 R2200 ; set thermistor + ADC parameters for heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M305 P1 T100000 B4725 C7.060000e-8 R2200 ; set thermistor + ADC parameters for heater 1 M143 H1 S280 ; set temperature limit for heater 1 to 280C M305 P2 T100000 B4725 C7.060000e-8 R2200 ; set thermistor + ADC parameters for heater 2 M143 H2 S280 ; set temperature limit for heater 2 to 280C M307 H1 A251.6 C190.6 D9.0 S0.6 V24.3 B0 M307 H2 A251.6 C190.6 D9.0 S0.6 V24.3 B0 ; Fans M106 P0 S0.0 I0 F500 H-1 ; set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off M106 P1 S0.0 I0 F500 H-1 ; set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off ; Tools M563 P0 D0:1 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 M568 P0 S1 ; enable mixing for tool 0 M567 P0 E1:0 ; set mixing ratios for tool 0 M563 P1 D1:0 H1 F0 ; define tool 1 G10 P1 X0 Y0 Z0 ; set tool 1 axis offsets G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C M568 P1 S1 ; enable mixing for tool 1 M567 P1 E1:0 ; set mixing ratios for tool 1 M563 P2 D2:3 H2 F1 ; define tool 2 G10 P2 X0 Y20 Z0 ; set tool 2 axis offsets G10 P2 R0 S0 ; set initial tool 2 active and standby temperatures to 0C M568 P2 S1 ; enable mixing for tool 2 M567 P2 E1:0 ; set mixing ratios for tool 2 M563 P3 D3:2 H2 F1 ; define tool 3 G10 P3 X0 Y20 Z0 ; set tool 3 axis offsets G10 P3 R0 S0 ; set initial tool 3 active and standby temperatures to 0C M568 P3 S1 ; enable mixing for tool 3 M567 P3 E1:0 ; set mixing ratios for tool 3 M563 P4 D0:1 H1 F0 ; define tool 4 G10 P4 X0 Y0 Z0 ; set tool 4 axis offsets G10 P4 R0 S0 ; set initial tool 4 active and standby temperatures to 0C M568 P4 S1 ; enable mixing for tool 4 M567 P4 E0.5:0.5 ; set mixing ratios for tool 4 M563 P5 D2:3 H2 F1 ; define tool 5 G10 P5 X0 Y20 Z0 ; set tool 5 axis offsets G10 P5 R0 S0 ; set initial tool 5 active and standby temperatures to 0C M568 P5 S1 ; enable mixing for tool 5 M567 P5 E0.5:0.5 ; set mixing ratios for tool 5 ; Custom settings are not defined M207 S3.5 F2400 T1200 Z0.2 ; firmware retraction settings M572 D0:1:2:3 S0.2 ; pressure advance
Just if you are curious.