I've done this before for a dual drive Z axis on machines in the past without issue. You could give it a shot and report back how it went? The goals of an AWD system for a Voron is to shorten the belt paths, and to get as much power into the motion system as possible.
Posts made by michaelr123
-
RE: AWD Voron 2.4 - Duet3
-
RE: Jobs "Print Time" where does this time come from?
Is there any way to look up or request DWC to record the actual print time?
-
Jobs "Print Time" where does this time come from?
quick question, is the print time in DWC 3.4.6 the actual print time or the simulated time posted by the slicer?
Thanks!
-
RE: 4x Z motors moving different amounts for one Z command
Update on this, it seems like anytime you change config code that affects the endstops or the drive mapping you get this weird behavior when you just run the config file. If you completely reset the board or power cycle it everything behaves just fine.
Long story short you can run 4x Z motors split across a can connection, but you need to fully power cycle between config updates.
-
RE: 4x Z motors moving different amounts for one Z command
Gotcha,
I tried moving 2 z motors back to the HC3 so I could get the 4 XY motors on the 6HC. Sensorless homing works great and after power cycling the board I'm not getting the weird behavior where one set of of Z motors moves at a different rate than the other two. It's definitely something going on over the CAN connection as I saw 2 motors display the weird behavior instead of just the one.
I'll keep running it this way so I can avoid the extra wire
-
RE: 4x Z motors moving different amounts for one Z command
ahhh that's definitely what it is. So the motors on the expansion board aren't being red as an endstop... Any chance 3.5 is adding that feature?
Might have to using one wire on the gantry for endstops after all...
-
RE: 4x Z motors moving different amounts for one Z command
Seems to be working well now, thanks for the recommendation!
Unfortunately, sensorless homing isn't working now. I can home to Y no problem, but when I home to X it will not trigger as an endstop. If I turn on R1 parameter it's definitely reading that motors are stalling. Is there any chance I have the X and Y motors flipped and backwards or something like that and the sensorless endstop is looking for stalls on the wrong motors? Or does S4 on a corexy look at all the X and Y motors?
; Endstops
M574 X1 S4 ; setting up sensorless homing
M574 Y1 S4 ; setting up sensorless homing
M915 X Y R0 F0 S3 -
RE: 4x Z motors moving different amounts for one Z command
Problem is that I’ve got 4x motors on the x and y for an awd setup. I don’t want to run into the same issue on my gentry system either.
Here’s an idea, what if I do 2x X motors on the 6HC and 2x Y motors on the 3HC? Then keep all the z motors together on the 6HC?
Any body that’s done an AWD setup have any input here?
-
4x Z motors moving different amounts for one Z command
We're almost there on my Duet 3 powered Voron 2.4. Everything is working, except I've got a weird issue where sometimes I get one of my 4x z motors to move a lot more than the other 3 for one Z command. I've got the Z probe setup now with sensorless homing on X and Y, but right now I can't figure out why my back left Z motor is moving way more than the others for a given Z command. It also seems to only do this in positive Z movements, not for negative ones. Here's my config file to look over, can anyone find an issue that would cause the Z motors to not all move the same amount for a given command? The Z motor that is behaving differently is connected to the HC6 mainboard, the other 3 are on the 3HC. Is there something else I need to do to define steps/mm or something like that?
; Configuration file for Duet 3 MB 6HC (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.16 on Tue May 16 2023 19:10:31 GMT-0500 (Central Daylight Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Voron2" ; set printer name G4 S2 ; wait for expansion boards to start M669 K1 ; CoreXY M569 P0.0 S1 D2 ; driver 0.0 goes forwards (X axis) D2 - Spreadcycle M569 P0.3 S0 D2 ; Driver 0.3 goes forward (X axis, AWD) D2 - Spreadcycle M569 P0.1 S1 D2 ; Driver 0.1 goes forward (Y axis, AWD) D2 - Spreadcycle M569 P0.2 S1 D2 ; driver 0.2 goes forwards (Y axis) D2 - Spreadcycle M569 P0.5 S1 D2 ; Driver 0.5 goes forward (Z axis - 1) D2 - Spreadcycle M569 P1.0 S1 D2 ; Driver 1.0 goes forward (Z axis - 2) D2 - Spreadcycle M569 P1.1 S0 D2 ; Driver 1.1 goes forward (Z axis - 3) D2 - Spreadcycle M569 P1.2 S0 D2 ; Driver 1.2 goes forward (Z axis - 4) D2 - Spreadcycle M569 P121.0 S1 D2 ; Driver 121.0 goes forward (E axis on 1LC) D2 - Spreadcycle M584 X0.1:0.2 Y0.0:0.3 Z0.5:1.0:1.1:1.2 E121.0 ; set axis mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X300 Y290 Z280 S0 ; set axis maxima M671 X-65:-65:320:320 Y-20:350:350:-20 S20 ; Define Z belts locations (Front_Left, Back_Left, Back_Right, Front_Right) M92 X80.00 Y80.00 Z400.00 E690.00 ; set steps per mm M566 X600 Y600 Z30 E600 ; set maximum instantaneous speed changes (jerk) (mm/min) M203 X60000 Y60000 Z6000 E7200 ; set maximum speeds (mm/min) M201 X8000 Y8000 Z1000 E3000 ; set accelerations (mm/s^2) M906 X1600 Y1600 Z800 E1200 I30 ; set motor currents (mA) and motor idle factor in per cent M84 X Y E S10 ; Set idle timeout ; Motor Idle Current Reduction M906 I30 ; set motor current idle factor M84 S30 ; set motor current idle timeout ; Fans M950 F0 C"121.out2+out2.tach" Q450 ; create fan 0 on pin out5 and set its frequency M106 P0 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on M950 F2 C"OUT_8" ; Create fan 2 - Chamber fan M106 F2 S0 M950 F3 C"OUT_7" ; Create Chamber lights M106 P3 S0 ;Heaters & Temp sensors M308 S1 P"121.TEMP_0" Y"PT1000" ; configure sensor 1 as thermistor on pin temp1 M950 H1 C"121.out0" T1 ; create nozzle heater output on out1 and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S350 ; set temperature limit for heater 1 to 350C M308 S0 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"OUT_1" T0 ; create bed heater output on out1 and map it to sensor 0 M307 H0 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 ; 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 ; Endstops M574 X1 S4 ; setting up sensorless homing M574 Y1 S4 ; setting up sensorless homing M915 X Y R0 F0 S3 ; https://docs.duet3d.com/en/User_manual/Connecting_hardware/Sensors_stall_detection ; Z-probe - Klicky PCB M574 Z1 S2 M558 P8 C"121.io1.in" H3 F1000 T6000 ; Miscellaneous M501 ; load saved parameters from non-volatile memory
-
RE: PT1000 reading 2000c on a new 1LC Board
I'm an idiot, I was using temp_1 instead of temp_0 in my config. disregard, works great now.
-
RE: PT1000 reading 2000c on a new 1LC Board
updated to latest stable build and updated both CAN boards, no difference on the PT1000 reading.
m122
=== Diagnostics ===
RepRapFirmware for Duet 3 MB6HC version 3.4.6 (2023-07-21 14:11:38) running on Duet 3 MB6HC v1.01 (SBC mode)
Board ID: 08DJM-9P63L-DJ3T8-6J1D4-3SD6R-9U479
Used output buffers: 1 of 40 (12 max)
=== RTOS ===
Static ram: 153252
Dynamic ram: 66084 of which 0 recycled
Never used RAM 131336, free system stack 200 words
Tasks: SBC(ready,0.5%,466) HEAT(notifyWait,0.0%,343) Move(notifyWait,0.0%,352) CanReceiv(notifyWait,0.0%,751) CanSender(notifyWait,0.0%,335) CanClock(delaying,0.0%,347) TMC(notifyWait,7.3%,90) MAIN(running,92.1%,1231) IDLE(ready,0.0%,30), total 100.0%
Owned mutexes: HTTP(MAIN)
=== Platform ===
Last reset 00:20:17 ago, cause: software
Last software reset at 2024-01-30 19:31, reason: User, GCodes spinning, available RAM 131336, slot 2
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a
Error status: 0x00
Step timer max interval 134
MCU temperature: min 42.2, current 42.9, max 43.0
Supply voltage: min 24.0, current 24.0, max 24.0, under voltage events: 0, over voltage events: 0, power good: yes
12V rail voltage: min 12.1, current 12.1, max 12.2, 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: standstill, SG min 0, mspos 8, reads 25607, writes 15 timeouts 0
Driver 1: standstill, SG min 0, mspos 8, reads 25607, writes 15 timeouts 0
Driver 2: standstill, SG min 0, mspos 8, reads 25607, writes 15 timeouts 0
Driver 3: standstill, SG min 0, mspos 8, reads 25607, writes 15 timeouts 0
Driver 4: standstill, SG min 0, mspos 8, reads 25611, writes 11 timeouts 0
Driver 5: standstill, SG min 0, mspos 8, reads 25607, writes 15 timeouts 0
Date/time: 2024-01-30 19:51:37
Slowest loop: 21.49ms; fastest: 0.04ms
=== Storage ===
Free file entries: 10
SD card 0 not detected, interface speed: 37.5MBytes/sec
SD card longest read time 0.0ms, write time 0.0ms, max retries 0
=== Move ===
DMs created 125, segments created 0, maxWait 0ms, bed compensation in use: none, comp offset 0.000
=== MainDDARing ===
Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], 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 doing "M122" 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 10842, received 19593, lost 0, boc 0
Longest wait 3ms for reply type 6053, peak Tx sync delay 468, free buffers 50 (min 49), ts 6090/6089/0
Tx timeouts 0,0,0,0,0,0
=== SBC interface ===
Transfer state: 5, failed transfers: 0, checksum errors: 0
RX/TX seq numbers: 45472/45472
SPI underruns 0, overruns 0
State: 5, disconnects: 0, timeouts: 0 total, 0 by SBC, IAP RAM available 0x2ab34
Buffer RX/TX: 0/0-0, open files: 0
=== Duet Control Server ===
Duet Control Server v3.4.6
Code buffer space: 4096
Configured SPI speed: 8000000Hz, TfrRdy pin glitches: 0
Full transfers per second: 40.16, max time between full transfers: 71.0ms, max pin wait times: 37.4ms/1.5ms
Codes per second: 0.03
Maximum length of RX/TX data transfers: 3020/904 -
RE: PT1000 reading 2000c on a new 1LC Board
Can you confirm if it still works?
Do you have a standard thermistor to test on the toolboard?
I've got the duet pretty well torn apart, I can dig up a power supply and try reading from it quick. Would it be faster to grab a thermistor and try reading that instead? If it can read a different temp probe type then we should be able to say that input pin works right?
-
RE: PT1000 reading 2000c on a new 1LC Board
@Phaedrux
M98 P"Config.g" returns a warning that the macro file wasn't found.
Here is my whole config file:; Configuration file for Duet 3 MB 6HC (firmware version 3.3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.3.16 on Tue May 16 2023 19:10:31 GMT-0500 (Central Daylight Time); General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Voron2" ; set printer name
G4 S2 ; wait for expansion boards to startM569 P0.0 S1 D2 ; driver 0.0 goes forwards (X axis) D2 - Spreadcycle
M569 P0.1 S1 D2 ; Driver 0.1 goes forward (X axis, AWD) D2 - SpreadcycleM569 P0.2 S1 D2 ; driver 0.2 goes forwards (Y axis) D2 - Spreadcycle
M569 P0.3 S1 D2 ; Driver 0.3 goes forward (Y axis, AWD) D2 - SpreadcycleM569 P0.5 S1 D2 ; Driver 0.5 goes forward (Z axis - 1) D2 - Spreadcycle
M569 P1.0 S1 D2 ; Driver 1.0 goes forward (Z axis - 2) D2 - Spreadcycle
M569 P1.1 S0 D2 ; Driver 1.1 goes forward (Z axis - 3) D2 - Spreadcycle
M569 P1.2 S0 D2 ; Driver 1.2 goes forward (Z axis - 4) D2 - SpreadcycleM569 P121.0 S1 D2 ; Driver 121.0 goes forward (E axis on 1LC) D2 - Spreadcycle
M584 X0.0:0.3 Y0.1:0.2 Z0.5:1.0:1.1:1.2 E121.0 ; set axis mapping
M350 X16 Y16 Z16 I1 ; configure microstepping with interpolationM671 X-65:-65:320:320 Y-20:350:350:-20 S20 ; Define Z belts locations (Front_Left, Back_Left, Back_Right, Front_Right)
M92 X80.00 Y80.00 Z400 E420.00 ; set steps per mm
M566 X600.00 Y600.00 Z30.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
M203 X18000.00 Y18000.00 Z1000.00 E1200.00 ; set maximum speeds (mm/min)
M201 X2000.00 Y2000.00 Z50.00 E250.00 ; set accelerations (mm/s^2)
M906 X800 Y800 Z1000 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 X Y E S30 ; Set idle timeout; Motor Idle Current Reduction
M906 I30 ; set motor current idle factor
M84 S30 ; set motor current idle timeout; Fans
M950 F0 C"121.out2+out2.tach" Q450 ; create fan 0 on pin out5 and set its frequency
M106 P0 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on;Heaters & Temp sensors
M308 S1 P"121.TEMP_1" Y"PT1000" ; configure sensor 1 as thermistor on pin temp1
M950 H1 C"121.out0" T1 ; create nozzle heater output on out1 and map it to sensor 1
M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M143 H1 S350 ; set temperature limit for heater 1 to 350C; 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
M501 ; load saved parameters from non-volatile memory -
RE: PT1000 reading 2000c on a new 1LC Board
M122
=== Diagnostics ===
RepRapFirmware for Duet 3 MB6HC version 3.4.0 (2022-03-15 18:57:24) running on Duet 3 MB6HC v1.01 or later (SBC mode)
Board ID: 08DJM-9P63L-DJ3T8-6J1D4-3SD6R-9U479
Used output buffers: 1 of 40 (12 max)
=== RTOS ===
Static ram: 151000
Dynamic ram: 64972 of which 0 recycled
Never used RAM 134700, free system stack 200 words
Tasks: SBC(ready,0.4%,468) HEAT(notifyWait,0.0%,373) Move(notifyWait,0.0%,352) CanReceiv(notifyWait,0.0%,797) CanSender(notifyWait,0.0%,374) CanClock(delaying,0.0%,351) TMC(notifyWait,7.7%,92) MAIN(running,89.7%,1231) IDLE(ready,2.2%,30), total 100.0%
Owned mutexes: HTTP(MAIN)
=== Platform ===
Last reset 00:00:44 ago, cause: power up
Last software reset details not available
Error status: 0x00
Step timer max interval 133
MCU temperature: min 26.6, current 36.4, max 36.5
Supply voltage: min 24.0, current 24.0, max 24.0, under voltage events: 0, over voltage events: 0, power good: yes
12V rail voltage: min 12.1, current 12.1, max 12.2, 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: standstill, SG min 0, mspos 8, reads 50029, writes 15 timeouts 0
Driver 1: standstill, SG min 0, mspos 8, reads 50029, writes 15 timeouts 0
Driver 2: standstill, SG min 0, mspos 8, reads 50029, writes 15 timeouts 0
Driver 3: standstill, SG min 0, mspos 8, reads 50029, writes 15 timeouts 0
Driver 4: standstill, SG min 0, mspos 8, reads 50034, writes 11 timeouts 0
Driver 5: standstill, SG min 0, mspos 8, reads 50030, writes 15 timeouts 0
Date/time: 2024-01-28 20:20:22
Slowest loop: 1.11ms; fastest: 0.03ms
=== Storage ===
Free file entries: 10
SD card 0 not detected, interface speed: 37.5MBytes/sec
SD card longest read time 0.0ms, write time 0.0ms, max retries 0
=== Move ===
DMs created 125, segments created 0, maxWait 0ms, bed compensation in use: none, comp offset 0.000
=== MainDDARing ===
Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], 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 doing "M122" 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 241, received 1001, lost 0, boc 0
Longest wait 3ms for reply type 6053, peak Tx sync delay 5, free buffers 50 (min 49), ts 221/220/0
Tx timeouts 0,0,0,0,0,0
=== SBC interface ===
Transfer state: 4, failed transfers: 0, checksum errors: 0
RX/TX seq numbers: 1593/1593
SPI underruns 0, overruns 0
State: 5, disconnects: 0, timeouts: 0, IAP RAM available 0x2b880
Buffer RX/TX: 0/0-0, open files: 0
=== Duet Control Server ===
Duet Control Server v3.4.4
Code buffer space: 4096
Configured SPI speed: 8000000Hz, TfrRdy pin glitches: 0
Full transfers per second: 60.46, max time between full transfers: 217.8ms, max pin wait times: 40.2ms/54.1ms
Codes per second: 1.40
Maximum length of RX/TX data transfers: 2868/904 -
PT1000 reading 2000c on a new 1LC Board
Currently working on setting up a voron 2.4 with a toolboard. Everything was going well until I wired up my PT1000 sensor from a Rapido v2 UHF to the toolboard. It's reading 2000 degrees C whether I have the sensor plugged in or not. If I measure the resistance across the male side connector for the PT1000 I get 1080ohms or so. When it's installed to the 1LC board, I get roughly 750ohms.
Any ideas on what's going on or how to diagnose it? This sensor was just working great on my duet 2 setup.
Currently on DSF 3.4.4, mainboard is on 3.4.0 and 3HC and 1LC are both at updated from 3.4.0.
Firmware related to heater and temp sensor:
;Heaters & Temp sensors
M308 S1 P"121.TEMP_1" Y"PT1000" ; configure sensor 1 as thermistor on pin temp1
M950 H1 C"121.out0" T1 ; create nozzle heater output on out1 and map it to sensor 1
M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M143 H1 S350 ; set temperature limit for heater 1 to 350C -
RE: AWD Voron 2.4 - Duet3
Update pictures:
- AWD installed, 4 motors are all wired up and turning the right way.
- Belts installed, archetype -breakneck tool installed. Toolboard mounted, and ready to go!
Can bus has been really easy to setup and I'm loving the simplicity in the wiring out to the tool head. I also made a decision to go for sensorless homing to completely remove the wiring harnesses from the xy axis.
Things left to do:
- Tighten and sync AWD motors.
- Finish wiring toolhead.
- Install CPAP fan, wire, program it.
- Print out frame parts for the CPAP fan because. I forgot to print those out.
- Put everything back together and sort out firmware and macros for duet 3!!
-
RE: AWD Voron 2.4 - Duet3
I think the part I found is similar but miniaturized and would be soldered in. I guess my real question was to see if there was a better electrical engineering solution to this than just throwing in an a DC-DC converter. I'm also curious if the tachometer pin will work properly if I change the voltage.
-
RE: AWD Voron 2.4 - Duet3
We'll see soon!
I had the day off and got a lot done on the upgrades. One thing I'm running into is needing a 5v power supply for the 5v fan recommended for breakneck: https://www.digikey.com/en/products/detail/delta-electronics/ASB02505SHA-AY6B/7491489
What would be the best way to get a 5v output from OUT_2? I see that it can be selected for either V_in or 12v, I was thinking about getting a tiny 12v to 5v buck converter. Anybody have a better idea on how to wire this up? This is what I found: https://www.amazon.com/gp/product/B0B779ZYN1/ref=ox_sc_act_title_1?smid=A3BHBZ2FB4T3LK&psc=1
I might convert over to AWD today yet, we'll see. I'm importing this fan from the UK, so it'll be a bit before I can get the upgraded toolhead put together and installed anyway.
-
RE: AWD Voron 2.4 - Duet3
Correct. more power and shorter belt paths help with improving resonance and higher print speeds. It also replaces the printed brackets on the coreXY frame with aluminum parts to improve rigidity.