Help with setting up 6XD CNC for the first time
-
This is my first time setting up a Duet flavored CNC and I'm needing a bit of help. So far I've been able to get my spindle to turn on and off with a M4/M5, but I can't get my axes to move.
The machine is a Indymill build and I'm upgrading from an Arduino running GRBL.
Stepper drivers are RTELLIGENT T60's wired exactly according to this diagram: Duet6XD Wiring (I tried with and without connecting the alarm wire but no difference)GRBL settings:
Grbl 1.1h ['$' for help] [MSG:Check Limits] [MSG:'$H'|'$X' to unlock] $0=10 $1=255 $2=0 $3=0 $4=0 $5=1 $6=0 $10=0 $11=0.010 $12=0.002 $13=0 $20=0 $21=1 $22=1 $23=3 $24=50.000 $25=500.000 $26=250 $27=3.000 $30=20000 $31=0 $32=0 $100=640.000 $101=640.000 $102=1600.000 $110=3000.000 $111=3000.000 $112=1000.000 $120=80.000 $121=80.000 $122=80.000 $130=470.000 $131=470.000 $132=150.000 ok
Here's my config.
; Configuration file for Duet 3 MB 6XD (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.16 on Sat Mar 18 2023 15:44:49 GMT-0500 (Central Daylight Time) ; General preferences M575 P1 S1 B57600 ; enable support for PanelDue G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Indymill" ; set printer name M453 ; set cnc mode ; 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.0 S1 ; physical drive 0.0 goes forwards M569 P0.1 S1 ; physical drive 0.1 goes forwards M569 P0.2 S1 ; physical drive 0.2 goes forwards M569 P0.3 S1 ; physical drive 0.3 goes forwards M584 X0.0 Y0.1:0.2 Z0.3 ; set drive mapping M92 X640.00 Y640.00 Z1600.00 ; set steps per mm M566 X900.00 Y900.00 Z60.00 ; set maximum instantaneous speed changes (mm/min) M203 X3000.00 Y3000.00 Z1200.00 ; set maximum speeds (mm/min) M201 X80.00 Y80.00 Z80.00 ; set accelerations (mm/s^2) M84 S0 ; Disable motor idle current reduction ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X440 Y480 Z200 S0 ; set axis maxima ; Endstops M574 X1 S1 P"io1.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io1.in M574 Y1 S1 P"io2.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin io2.in M574 Z2 S1 P"io4.in" ; configure switch-type (e.g. microswitch) endstop for high end on Z via pin io4.in ; Z-Probe M558 P5 C"^io5.in" H5 F120 T6000 ; set Z probe type to switch and the dive height + speeds G31 P500 X0 Y0 Z12 ; set Z probe trigger value, offset and trigger height M557 X15:215 Y15:195 S20 ; define mesh grid ; Heaters M140 H-1 ; disable heated bed (overrides default heater mapping) ; Fans M950 R0 C"out3" Q500 ; create spindle 0 on pin out3 and set its frequency ; Tools M563 P0 R0 ; 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 T0 ; Set active tool
And here's M122
M122 === Diagnostics === RepRapFirmware for Duet 3 MB6XD version 3.4.5 (2022-11-30 19:41:59) running on Duet 3 MB6XD v1.0 or later (standalone mode) Board ID: 08DLM-956DA-M2NS4-6J1DG-3SD6R-1U32T Used output buffers: 1 of 40 (14 max) === RTOS === Static ram: 151200 Dynamic ram: 95476 of which 0 recycled Never used RAM 103924, free system stack 192 words Tasks: NETWORK(ready,41.4%,227) ETHERNET(notifyWait,0.1%,423) HEAT(notifyWait,0.0%,374) Move(notifyWait,0.0%,266) CanReceiv(notifyWait,0.0%,944) CanSender(notifyWait,0.0%,336) CanClock(delaying,0.0%,343) MAIN(running,58.4%,1232) IDLE(ready,0.0%,29), total 100.0% Owned mutexes: === Platform === Last reset 00:18:00 ago, cause: power up Last software reset at 2023-03-18 17:55, reason: User, GCodes spinning, available RAM 104352, slot 0 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 Aux0 errors 0,0,0 Step timer max interval 2228 MCU temperature: min 19.0, current 41.8, max 42.0 Supply voltage: min 12.0, current 12.0, max 12.1, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 11.3, current 11.5, max 11.5, under voltage events: 0 Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0 Events: 0 queued, 0 completed Driver 0: ok Driver 1: ok Driver 2: ok Driver 3: ok Driver 4: ok Driver 5: ok Date/time: 2023-03-19 09:11:05 Slowest loop: 3603.07ms; fastest: 0.05ms === Storage === Free file entries: 10 SD card 0 detected, interface speed: 25.0MBytes/sec SD card longest read time 3.3ms, write time 1.4ms, max retries 0 === Move === DMs created 125, segments created 3, maxWait 167976ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 13, completed 13, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 1], CDDA state -1 === AuxDDARing === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 === GCodes === Segments left: 0 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 USB is idle in state(s) 0 Aux is idle in state(s) 0 Trigger is idle in state(s) 0 Queue is idle in state(s) 0 LCD is idle in state(s) 0 SBC is idle in state(s) 0 Daemon is idle in state(s) 0 Aux2 is idle in state(s) 0 Autopause is idle in state(s) 0 Code queue is empty === CAN === Messages queued 5417, received 0, lost 0, boc 0 Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 50 (min 49), ts 5405/0/0 Tx timeouts 0,0,5404,11,0,0 last cancelled message type 30 dest 127 === Network === Slowest loop: 16.71ms; fastest: 0.03ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) HTTP sessions: 1 of 8 = Ethernet = State: active Error counts: 0 0 0 1 0 0 Socket states: 5 2 2 2 2 0 0 0 === Multicast handler === Responder is inactive, messages received 0, responses 0
Any help would be greatly appreciated!
-
@p8blr
I don't see a M906 command to set the axis motor currents in your config.g file. This will cause the drivers to give them only a few tens of milliamps, not enough to move them. -
@dc42 How much current would you recommend for external drivers? I actually had it in there and removed it because I thought it didn't apply to external drivers.
Here it is added in there and unfortunately it still doesn't move the axes. I can see the status light on the drivers come on but still nothing.
; Configuration file for Duet 3 MB 6XD (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.16 on Sat Mar 18 2023 15:44:49 GMT-0500 (Central Daylight Time) ; General preferences M575 P1 S1 B57600 ; enable support for PanelDue G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Indymill" ; set printer name M453 ; set cnc mode ; 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.0 S1 ; physical drive 0.0 goes forwards M569 P0.1 S1 ; physical drive 0.1 goes forwards M569 P0.2 S1 ; physical drive 0.2 goes forwards M569 P0.3 S1 ; physical drive 0.3 goes forwards M584 X0.0 Y0.1:0.2 Z0.3 ; set drive mapping M92 X640.00 Y640.00 Z1600.00 ; set steps per mm M566 X900.00 Y900.00 Z60.00 ; set maximum instantaneous speed changes (mm/min) M203 X3000.00 Y3000.00 Z1200.00 ; set maximum speeds (mm/min) M201 X80.00 Y80.00 Z80.00 ; set accelerations (mm/s^2) M906 X800 Y800 Z800 ; set motor currents (mA) M84 S0 ; Disable motor idle current reduction ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X440 Y480 Z200 S0 ; set axis maxima ; Endstops M574 X1 S1 P"io1.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io1.in M574 Y1 S1 P"io2.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin io2.in M574 Z2 S1 P"io4.in" ; configure switch-type (e.g. microswitch) endstop for high end on Z via pin io4.in ; Z-Probe M558 P5 C"^io5.in" H5 F120 T6000 ; set Z probe type to switch and the dive height + speeds G31 P500 X0 Y0 Z12 ; set Z probe trigger value, offset and trigger height M557 X15:215 Y15:195 S20 ; define mesh grid ; Heaters M140 H-1 ; disable heated bed (overrides default heater mapping) ; Fans M950 R0 C"out3" Q500 ; create spindle 0 on pin out3 and set its frequency ; Tools M563 P0 R0 ; 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 T0 ; Set active tool
-
@p8blr I'm sorry, I missed that you were using a 6XD.
Ordinary moves won't be allowed before the axes have been homed. To test the axis motors, first send G91 to select relative movement. Then send G1 H2 moves, e.g. G1 H2 X10 t move the X axis +10mm. These moves are allowed even when the axes haven't been homed.
Another thing to check is that the drivers are enabled (so the motors will resist turning by hand) when you send M17, and disabled (so easy to turn by hand) when you send M18. There is a jumper on the 6XD to set the enable polarity.
-
@dc42 Thank you so much, it was that jumper that did the trick!
-
-