Duet maestro Driver Expansion underpowered?
-
I've added the driver expansion to the maestro board. All the motors I've added to it act like they are under powered. It makes a grinding sound like it when it's hitting an object but if I give it a slight push it moves just fine. These motors work just fine on the board itself.
I'm trying to move the x y axis with it.
Is the expansion faulty? -
Post your config.g please and tell us which motors are connected to which drivers. Also the results of M122 please.
-
@phaedrux
The m122 results are being flagged for spam -
Here are some of the files.
config.g [0_1629491348026_download.zip](Uploading 100%)
machine_stepper_movement.g -
@phaedrux
It's a corexy style printer.
x is driver 6
y is driver 5 -
@beej said in Duet maestro Driver Expansion underpowered?:
@phaedrux
The m122 results are being flagged for spamTry again in a few minutes
-
@beej said in Duet maestro Driver Expansion underpowered?:
Here are some of the files.
config.g [0_1629491348026_download.zip](Uploading 100%)
machine_stepper_movement.gZip files aren't allowed. Copy and paste the text of the files may be easiest
-
Attached is m122
m122.txt=== Diagnostics === RepRapFirmware for Duet 2 Maestro version 2.01beta1(RTOS) running on Duet Maestro 1.0 Board ID: 08DJM-9X66L-LG3SJ-6JKD6-3S86K-1AYUN Used output buffers: 3 of 20 (16 max) === RTOS === Static ram: 22420 Dynamic ram: 92380 of which 12 recycled Exception stack ram used: 384 Never used ram: 15876 Tasks: NETWORK(ready,444) HEAT(blocked,916) MAIN(running,3728) Mutexes: FilamentSensors(null) DHT(null) W5500(null) TelnetGCodeReply(null) HttpGCodeReply(null) Telnet(null) HTTP(null) SD1(null) SD0(null) DirSearch(null) FileSystem(null) Aux(null) USB(null) MessageBox(null) ToolList(null) SPI(null) Malloc(null) NetworkGCodeInput(null) NetworkGCodeInput(null) FileInfoParser(null) === Platform === Last reset 00:31:20 ago, cause: power up Last software reset at 2021-08-20 13:41, reason: User, spinning module GCodes, available RAM 16012 bytes (slot 2) Software reset code 0x0003 HFSR 0x00000000, CFSR 0x00000000, ICSR 0x04418000, BFAR 0xe000ed38, SP 0xffffffff Error status: 0 Free file entries: 10 SD card 0 detected, interface speed: 15.0MBytes/sec SD card longest block write time: 9.5ms MCU temperature: min 37.6, current 43.3, max 44.0 Supply voltage: min 24.0, current 24.2, max 24.3, under voltage events: 0, over voltage events: 0 Driver 0: standstill, read errors 0, write errors 0, ifcount 23, reads 4187, timeouts 28 Driver 1: standstill, read errors 0, write errors 0, ifcount 23, reads 4177, timeouts 10 Driver 2: standstill, read errors 0, write errors 0, ifcount 23, reads 4162, timeouts 15 Driver 3: standstill, read errors 0, write errors 0, ifcount 8, reads 4161, timeouts 16 Driver 4: standstill, read errors 0, write errors 0, ifcount 22, reads 4136, timeouts 11 Date/time: 2021-08-20 14:26:30 Slowest loop: 4581228.50ms; fastest: 0.07ms === Move === Hiccups: 0, StepErrors: 0, LaErrors: 0, FreeDm: 240, MinFreeDm 236, MaxWait: 65142905ms, Underruns: 0, 0 Scheduled moves: 67, completed moves: 67 Bed compensation in use: mesh Bed probe heights: 0.000 0.000 0.000 0.000 0.000 === Heat === Bed heaters = 0, chamberHeaters = -1 -1 Heater 2 is on, I-accum = 0.0 === GCodes === Segments left: 0 Stack records: 3 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: 4581228.50ms; fastest: 0.02ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) HTTP sessions: 1 of 8 Interface state: 5
-
; CONFIGURATION FILE for Duet Maestro ; Executed by the firmware on start-up ; Headers within parenthesis are headings in Duet3D documentation=https://duet3d.com/wiki/Configuring_RepRapFirmware_for_a_Cartesian_printer ; Visit https://reprap.org/wiki/G-code for an explanation of G-code commands ; --- SECTION: GENERAL PREFERENCES ( ) --- M564 S1 H1 ; Enables Homing Requirement For Motor Activation and set axes limits ; --- SECTION: Z-PROBE & MESH COMPENSATION --- M98 Pmachine_zprobe.g ; configure the z probe M98 Pmachine_bedmesh.g ; configure the bed mesh ;G29 S1 ; Load heightmap after power cycle ; --- SECTION: DRIVES (MOVEMENT SECTION) & ENDSTOPS --- M98 Pmachine_stepper_movement.g ; configures the motion steppers M98 Pmachine_stepper_extruder.g ; configures the extruder steppers M98 Pmachine_endstoptypes.g ; set endstop types G21 ; Work in millimetres G90 ; Set to absolute coordinates... M84 S1 ; Set idle timeout ; --- SECTION: HEATERS, BED & THERMISTOR --- M98 Pmachine_heater_bed.g M98 Pmachine_heater_extrusion.g ; --- SECTION: FANS ( ) --- M98 Pmachine_fans.g ; --- SECTION: TOOLS ( ) --- ; Comment: Remember! H0 is the heated bed! ; Comment: D0 is the first driver after movement (X, Y and Z) drives, which is left extruder ; D1 is right extruder M98 Pmachine_tools.g ; Define the tools T0 ; Automatic tool select ; --- SECTION: NETWORKS (PROLOGUE & COMMUNCATIONS SECTION) --- M98 Pmachine_access.g ; set machine name and IP M586 P0 S1 ; Enable HTTP M586 P1 S0 ; Disable FTP M586 P2 S0 ; Disable Telnet ; --- SECTION: MISCELLANEOUS --- ;M572 D0:1 S0.5 ; Extruder Pressure Advance ; Set auto resume M911 S21.0 R23.0 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" M98 Pmachine_zendstop.g M564 H1 S1 ; machine_stepper_movement.g ; December 16, 2019 ; This file is used to configure all the values for the movement steppers, like direction, steps / mm and power. ; ---------- SECTION ---------- ; Set the mode and XYZ scaling. X and Z are usually 1.0, Y is calculated based of your calibration method M584 X6 Y5 Z0:1:2:4 E3 M667 S1 X1.0 Y1.0 Z1.0 ; Enable coreXY mode, set Y scale factor M671 X-5:340:340:-5 Y-5:-5:320:320 P2 ; ---------- SECTION ---------- ; Configure the direction each stepper turns. For CoreXY, each stepper moves the carriage diagonally. M569 P0 S1 D3 V0 ; Drive 0, CoreXY_1 M569 P1 S1 D3 V0 ; Drive 1, CoreXY_2 M569 P2 S1 D3 V0 ; Drive 2, Z Motor ;back right M569 P2 S1 D3 V0 ; Drive 4, Z Motor ;back left M569 P2 S1 D3 V0 ; Drive 5, Z Motor ;front left M569 P2 S1 D3 V0 ; Drive 6, Z Motor ;front right ; ---------- SECTION ---------- ; These values define how many steps make 1mm of movement. ; Please note, only change the calibration if the measurements are always ; off by the same amount, no matter what the material, layer height or print speed. ; Here is a link on how to properly calibrate your step values. ; http://print.theporto.com/posts/how-to-calibrate-your-3d-printer-for-accurate-printing/ M92 X80.22 Y80.22 Z399.19 ; Set axis steps/mm. ; Please note that on a CoreXY system, the X and Y value MUST be the same. ; Change the Y scaling above if you're not getting identical X and Y distance M350 X32 Y32 Z32 ; Default machine steps This line added here as the Duet firmware will then recalcuate the steps/mm for the new ;M350 below M350 X16 Y16 Z16 I1 ; Setting microstepping with interpolation, this will recalculate the step sizes above ; ---------- SECTION ---------- ; This section sets the stepper motor currents. ; This is an advanced feature and should only be changed if you REALLY know what you're doing! ; Increasing stepper motor currents beyond their limit can result in damage to them! ; This only sets the currents for the movement steppers, change the current for the extruder steppers in machine_stepper_extruder.g M906 x800 Y800 Z500 I60; Set motor currents (mA) and idle current percentage ; ---------- SECTION ---------- ; Thisa section sets the different speed limits of the X Y and Z steppers.4 ; A higher acceleration value makes for faster print speeds, but can also introduce ghosting and other artifac ; The maximum linear speed should only be changed if hardware has changed ; The maximum instantaneous speed change determines how slow the print head has to move before it can make ; abrupt direction changes. ; These are advanced feature values and should only be changed for good reason and if you know how they impact prints. M203 X650 Y650 Z1500 ; Set maximum linear speeds (mm/min) M201 X2000 Y2000 Z75 ; Set accelerations (mm/s^2) ; previous 1500 M566 X200 Y200 Z50 ; Set maximum instantaneous/jerk speed changes (mm/min) ; ---------- SECTION ---------- ; Since this is called in other places as well, the information is in its own file. M98 Pmachine_axisdimension.g ; Set Axes Limits
; machine_stepper_movement.g ; December 16, 2019 ; This file is used to configure all the values for the movement steppers, like direction, steps / mm and power. ; ---------- SECTION ---------- ; Set the mode and XYZ scaling. X and Z are usually 1.0, Y is calculated based of your calibration method M584 X6 Y5 Z0:1:2:4 E3 M667 S1 X1.0 Y1.0 Z1.0 ; Enable coreXY mode, set Y scale factor M671 X-5:340:340:-5 Y-5:-5:320:320 P2 ; ---------- SECTION ---------- ; Configure the direction each stepper turns. For CoreXY, each stepper moves the carriage diagonally. M569 P0 S1 D3 V0 ; Drive 0, CoreXY_1 M569 P1 S1 D3 V0 ; Drive 1, CoreXY_2 M569 P2 S1 D3 V0 ; Drive 2, Z Motor ;back right M569 P2 S1 D3 V0 ; Drive 4, Z Motor ;back left M569 P2 S1 D3 V0 ; Drive 5, Z Motor ;front left M569 P2 S1 D3 V0 ; Drive 6, Z Motor ;front right ; ---------- SECTION ---------- ; These values define how many steps make 1mm of movement. ; Please note, only change the calibration if the measurements are always ; off by the same amount, no matter what the material, layer height or print speed. ; Here is a link on how to properly calibrate your step values. ; http://print.theporto.com/posts/how-to-calibrate-your-3d-printer-for-accurate-printing/ M92 X80.22 Y80.22 Z399.19 ; Set axis steps/mm. ; Please note that on a CoreXY system, the X and Y value MUST be the same. ; Change the Y scaling above if you're not getting identical X and Y distance M350 X32 Y32 Z32 ; Default machine steps This line added here as the Duet firmware will then recalcuate the steps/mm for the new ;M350 below M350 X16 Y16 Z16 I1 ; Setting microstepping with interpolation, this will recalculate the step sizes above ; ---------- SECTION ---------- ; This section sets the stepper motor currents. ; This is an advanced feature and should only be changed if you REALLY know what you're doing! ; Increasing stepper motor currents beyond their limit can result in damage to them! ; This only sets the currents for the movement steppers, change the current for the extruder steppers in machine_stepper_extruder.g M906 x800 Y800 Z500 I60; Set motor currents (mA) and idle current percentage ; ---------- SECTION ---------- ; Thisa section sets the different speed limits of the X Y and Z steppers.4 ; A higher acceleration value makes for faster print speeds, but can also introduce ghosting and other artifac ; The maximum linear speed should only be changed if hardware has changed ; The maximum instantaneous speed change determines how slow the print head has to move before it can make ; abrupt direction changes. ; These are advanced feature values and should only be changed for good reason and if you know how they impact prints. M203 X650 Y650 Z1500 ; Set maximum linear speeds (mm/min) M201 X2000 Y2000 Z75 ; Set accelerations (mm/s^2) ; previous 1500 M566 X200 Y200 Z50 ; Set maximum instantaneous/jerk speed changes (mm/min) ; ---------- SECTION ---------- ; Since this is called in other places as well, the information is in its own file. M98 Pmachine_axisdimension.g ; Set Axes Limits
-
Did you make this config file?
It's difficult to follow with the nest macros.
To verify what the motors are actually configured as can you send these commands by themselves and report back with what they return?
M584
M906
M305
M92Your firmware version is also quite ancient.
I think maybe at this point it would be best to simply update the firmware and generate a new fresh config file set using the online tool. It will be far easier to help support you.
If you still have access to DWC. Upload these 3 zip files, one at a time in the system tab. Don't extract them. Reboot after each. Use M115 to verify the firmware has been applied.
https://github.com/Duet3D/RepRapFirmware/releases/download/2.05.1/Duet2Firmware-2.05.1.zip
https://github.com/Duet3D/RepRapFirmware/releases/download/3.0/Duet2and3Firmware-3.0.zip
https://github.com/Duet3D/RepRapFirmware/releases/download/3.3/Duet2and3Firmware-3.3.zip
That will get your firmware and DWC up to date.You can see the change logs here:
https://github.com/Duet3D/RepRapFirmware/wiki/Changelog-RRF-3.xFor your config, might be a good idea to run through the configurator tool and generate a fresh set for RRF3.
https://configtool.reprapfirmware.org/StartBackup your existing config files in the sys folder in case you want to switch back to RRF3. IT’s easy to switch back and forth, just upload the zip file for the version you want and then upload your config files.
These documents will come in handy during the conversion.
https://duet3d.dozuki.com/Wiki/RepRapFirmware_3_overview
https://duet3d.dozuki.com/Wiki/Gcode -
PS, you can post your configs and gcode within a code block to make them easier to read. Use the </> button in the post window and place your text where it says UNDEFINED
-
@phaedrux
The config format was made by community members that own the M3D Promega.
</>
M584
Driver assignments: X6 Y5 Z0:1:2:4 E3, 3 axes visibleM906
Motor current (mA) - X:650, Y:650, Z:500, E:0, idle factor 60%M92
Steps/mm: X: 80.220, Y: 80.220, Z: 399.190, E: 3120.000M305
-
; Configuration file for Duet Maestro (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.0 on Fri Aug 20 2021 16:20:05 GMT-0600 (Mountain Daylight Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Promega" ; set printer name M669 K1 ; select CoreXY mode ; Network M552 P192.168.1.61 S1 ; enable network and set IP address M553 P255.255.255.0 ; set netmask M554 P192.168.1.1 ; set gateway M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0 S1 ; physical drive 0 goes forwards M569 P1 S1 ; physical drive 1 goes forwards M569 P2 S1 ; physical drive 2 goes forwards M569 P4 S1 ; physical drive 4 goes forwards M569 P5 S1 M569 P6 S1 M584 X6 Y5 Z0:1:2:4 E3 ; set drive mapping M350 E128 I0 ; configure microstepping without interpolation M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation M92 X80.22 Y80.22 Z399.20 E390.00 ; 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 X0 Y0 Z0 S1 ; set axis minima M208 X335 Y317 Z362 S0 ; set axis maxima ; Endstops M574 X2 S1 P"xstop" ; configure active-high endstop for high end on X via pin xstop M574 Y1 S1 P"ystop" ; configure active-high endstop for low end on Y via pin ystop M574 Z2 S1 P"zstop" ; configure active-high endstop for high end on Z via pin zstop ; Z-Probe M558 P0 H10 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed M557 X15:215 Y15: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"e1temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e1temp M950 H1 C"e1heat" T1 ; create nozzle heater output on e1heat 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 ; Miscellaneous M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
I think this is working better.
I'm having problems with the homing for this new config.
It mostly only moves the z axes when I home x and y, but they move correctly when manually jogged. -
@beej said in Duet maestro Driver Expansion underpowered?:
I'm having problems with the homing for this new config.
It mostly only moves the z axes when I home x and y, but they move correctly when manually jogged.Can you post your previous endstop configuration? You may need to invert the endstop pin. It sounds like it thinks the endstop is triggered already at the start of homing.
-
@beej when I installed it and configured it the first time I had some odd issues too. But after a cold start, the steppers behaved normal. I guess it's a SPI setup thing running after a reset.
-
@phaedrux
Here's the old(In machine_endstoptypes files) M574 X2 Y2 Z2 S0 ; Set xy end-stops types (S0 is active low, applied to XY) (homex file) ; homex.g ; called to home the X axis ; updated September 4, 2018 ; same as homey.g because of coreXY ; Front left corner is (0,0) ; ============= PRE-HOMING ===================== M913 X60 ; drop X motor currents to 60% M913 Y60 ; drop Y motor currents to 60% ; Ignore Machine boundaries M564 H0 S0 ; Turn off bed leveling during homing G29 S2 ; Does the same as M561! ; Switch to Origin Tool T0 ; Relative positioning G91 ; Provide Z height clearance G1 Z10 F750 S1 ; ================== HOME Y ============================ ; Rapid Y until limit switch triggers G0 Y450 F1500 S1 ; Back off to release limit switch G0 Y-6 F1500 ; Slow advance to trigger limit switch G0 Y10 F120 S1 ; Set this location as Y = 341mm G92 Y341 ; Move the gantry slightly away from back of printer, to allow travel past the bolt mounting the gantry bracket G0 Y-2 F1200 ; ============= HOME X ==================== ; Rapid X until limit switch triggers G0 X-450 F1500 S1 ; Back off to release limit switch G0 X6 F1500 ; Slow advance to trigger limit switch G0 X-10 F120 S1 ; Set this location as X = 0mm G92 X0 ; Move away from the limit switch, to prevent damage to it upon next move G0 X5 F1500 ; ============ Post-Homing ============== ; Revert to absolute coordinates G90 ; Re-enable mesh leveling G29 S1 M913 X100 ; X motor currents back to 100% M913 Y100 ; Y motor currents back to 100% M98 Pmachine_axisdimension.g ; Set Axes Limits ; Stop movement across limits, enable boundaries, homing requirement M564 H1 S1
-
@beej
Here's the new homex file and homez file; homex.g ; called to home the X axis ; ; generated by RepRapFirmware Configuration Tool v3.3.0 on Fri Aug 20 2021 16:20:05 GMT-0600 (Mountain Daylight Time) ;Home y axis G91 ; relative positioning G1 H2 Z10 F6000 ; lift Z relative to current position G1 H1 Y-322 F1800 ; move quickly to Y axis endstop and stop there (first pass) G1 Y5 F6000 ; go back a few mm G1 H1 Y-322 F360 ; move slowly to Y axis endstop once more (second pass) ;home x axis G1 H1 X340 F1800 ; move quickly to X axis endstop and stop there (first pass) G1 X-5 F6000 ; go back a few mm G1 H1 X340 F360 ; move slowly to X axis endstop once more (second pass) ;G1 H2 Z-10 F6000 ; lower Z again G90 ; absolute positioning
-
M574 X2 Y2 Z2 S0 ; Set xy end-stops types (S0 is active low, applied to XY)
S0 means active low, so you will indeed need to invert the pin signal.
So your M547 commands need a ! in front of the pin name, like this:
; Endstops M574 X2 S1 P"!xstop" ; configure active-high endstop for high end on X via pin xstop M574 Y1 S1 P"!ystop" ; configure active-high endstop for low end on Y via pin ystop M574 Z2 S1 P"!zstop" ; configure active-high endstop for high end on Z via pin zstop
-
@phaedrux
awesome that worked It's homing and everything is moving in the right directions.
The steppers are sounding a little grinding, i'm not sure if that's quite the right word.
But they aren't running as smoothly as they have been, would that have to do with the interpolation, or current...? -
M569 P0 S1 D3 V0 ; Drive 0, CoreXY_1 M569 P1 S1 D3 V0 ; Drive 1, CoreXY_2 M569 P2 S1 D3 V0 ; Drive 2, Z Motor ;back right M569 P2 S1 D3 V0 ; Drive 4, Z Motor ;back left M569 P2 S1 D3 V0 ; Drive 5, Z Motor ;front left M569 P2 S1 D3 V0 ; Drive 6, Z Motor ;front right
D3 V0 means you were running them in stealthchop mode before the entire time I believe. That could explain the difference in sound.