@developeralgo222 @dc42 & @droftarts Finally got this fixed . The issue was bad cable /connection from 6XD to Expansion Board 1 of 3HC . Never trust any cables from China , OMG when i decided to splice them , they are really crappy no shields and no proper insulations per pair. Buyer be aware.Have seen this in many chinese made products on Amazon.
developeralgo222
@developeralgo222
AI , Bitaxe , Jabit, Hardware and Software engineering
Best posts made by developeralgo222
-
RE: Duet 3HC Expansion looses Connection
-
RE: Duet 3HC Expansion looses Connection
@droftarts said in Duet 3HC Expansion looses Connection:
@developeralgo222 Yes, that is correct. The three V- terminals on each power supply are basically one output, they are linked to the same rail. Use a decent sized gauge of wire, at least as big as the other power wires.
I asked @dc42 the other day if your problem might be down to an issue with shared ground. I hadn't spotted that you are using two PSUs. However, I thought the CAN bus was pretty tolerant of this sort of thing, but maybe not.
Ian
connected the cable ,now they are syncing without any timeouts
M122 B1 Diagnostics for board 1: Duet EXP3HC rev 1.02 or later firmware version 3.5.0-rc.2 (2023-12-14 08:56:47) Bootloader ID: SAME5x bootloader version 2.4 (2021-12-10) All averaging filters OK Never used RAM 156976, free system stack 202 words Tasks: Move(3,nWait,0.0%,182) HEAT(2,nWait,0.0%,138) CanAsync(5,nWait,0.0%,67) CanRecv(3,nWait,0.0%,80) CanClock(5,nWait,0.0%,70) TMC(2,nWait,5.7%,103) MAIN(1,running,93.1%,413) IDLE(0,ready,0.0%,39) AIN(2,delaying,1.1%,263), total 100.0% Last reset 00:00:42 ago, cause: power up Last software reset data not available Driver 0: pos 0, 80.0 steps/mm, standstill, SG min 0, mspos 8, reads 35139, writes 11 timeouts 0, steps req 0 done 0 Driver 1: pos 0, 80.0 steps/mm, standstill, SG min 0, mspos 8, reads 35139, writes 11 timeouts 0, steps req 0 done 0 Driver 2: pos 0, 80.0 steps/mm, standstill, SG min 0, mspos 8, reads 35140, writes 11 timeouts 0, steps req 0 done 0 Moves scheduled 0, completed 0, in progress 0, hiccups 0, segs 0, step errors 0, maxLate 0 maxPrep 0, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0, ebfmin 0.00 max 0.00 Peak sync jitter -4/5, peak Rx sync delay 156, resyncs 0/0, no timer interrupt scheduled VIN voltage: min 24.2, current 24.2, max 24.2 V12 voltage: min 12.4, current 12.4, max 12.4 MCU temperature: min 17.9C, current 20.5C, max 20.5C Last sensors broadcast 0x00000000 found 0 142 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 364, send timeouts 0, received 221, lost 0, errs 54, boc 0, free buffers 38, min 38, error reg 360000 dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 0 ok M122 B2 Diagnostics for board 2: Duet EXP3HC rev 1.02 or later firmware version 3.5.0-rc.2 (2023-12-14 08:56:47) Bootloader ID: SAME5x bootloader version 2.4 (2021-12-10) All averaging filters OK Never used RAM 156976, free system stack 202 words Tasks: Move(3,nWait,0.0%,182) HEAT(2,nWait,0.0%,120) CanAsync(5,nWait,0.0%,67) CanRecv(3,nWait,0.0%,80) CanClock(5,nWait,0.0%,70) TMC(2,nWait,5.7%,103) MAIN(1,running,93.1%,436) IDLE(0,ready,0.0%,39) AIN(2,delaying,1.1%,263), total 100.0% Last reset 00:00:46 ago, cause: power up Last software reset data not available Driver 0: pos 0, 80.0 steps/mm, standstill, SG min 0, mspos 8, reads 48746, writes 11 timeouts 0, steps req 0 done 0 Driver 1: pos 0, 80.0 steps/mm, standstill, SG min 0, mspos 8, reads 48746, writes 11 timeouts 0, steps req 0 done 0 Driver 2: pos 0, 80.0 steps/mm, standstill, SG min 0, mspos 8, reads 48747, writes 11 timeouts 0, steps req 0 done 0 Moves scheduled 0, completed 0, in progress 0, hiccups 0, segs 0, step errors 0, maxLate 0 maxPrep 0, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0, ebfmin 0.00 max 0.00 Peak sync jitter -5/7, peak Rx sync delay 157, resyncs 0/0, no timer interrupt scheduled VIN voltage: min 24.3, current 24.3, max 24.3 V12 voltage: min 12.3, current 12.3, max 12.4 MCU temperature: min 21.1C, current 23.9C, max 23.9C Last sensors broadcast 0x00000000 found 0 133 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 392, send timeouts 0, received 239, lost 0, errs 57, boc 0, free buffers 38, min 38, error reg 3a0000 dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 0 ok M122 B3 Diagnostics for board 3: Duet EXP3HC rev 1.02 or later firmware version 3.5.0-rc.2 (2023-12-14 08:56:47) Bootloader ID: SAME5x bootloader version 2.4 (2021-12-10) All averaging filters OK Never used RAM 156976, free system stack 202 words Tasks: Move(3,nWait,0.0%,182) HEAT(2,nWait,0.0%,120) CanAsync(5,nWait,0.0%,67) CanRecv(3,nWait,0.0%,80) CanClock(5,nWait,0.0%,70) TMC(2,nWait,5.7%,103) MAIN(1,running,93.1%,424) IDLE(0,ready,0.0%,39) AIN(2,delaying,1.1%,263), total 100.0% Last reset 00:00:53 ago, cause: power up Last software reset data not available Driver 0: pos 0, 80.0 steps/mm, standstill, SG min 0, mspos 8, reads 10560, writes 11 timeouts 0, steps req 0 done 0 Driver 1: pos 0, 80.0 steps/mm, standstill, SG min 0, mspos 8, reads 10560, writes 11 timeouts 0, steps req 0 done 0 Driver 2: pos 0, 80.0 steps/mm, standstill, SG min 0, mspos 8, reads 10561, writes 11 timeouts 0, steps req 0 done 0 Moves scheduled 0, completed 0, in progress 0, hiccups 0, segs 0, step errors 0, maxLate 0 maxPrep 0, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0, ebfmin 0.00 max 0.00 Peak sync jitter -7/6, peak Rx sync delay 155, resyncs 0/0, no timer interrupt scheduled VIN voltage: min 24.2, current 24.2, max 24.2 V12 voltage: min 12.3, current 12.3, max 12.4 MCU temperature: min 21.1C, current 23.8C, max 23.8C Last sensors broadcast 0x00000000 found 0 143 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 448, send timeouts 0, received 275, lost 0, errs 60, boc 0, free buffers 38, min 38, error reg 3c0000 dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 0 ok M122 B4 Diagnostics for board 4: Duet EXP3HC rev 1.02 or later firmware version 3.5.0-rc.2 (2023-12-14 08:56:47) Bootloader ID: SAME5x bootloader version 2.4 (2021-12-10) All averaging filters OK Never used RAM 156976, free system stack 204 words Tasks: Move(3,nWait,0.0%,182) HEAT(2,nWait,0.0%,120) CanAsync(5,nWait,0.0%,67) CanRecv(3,nWait,0.0%,80) CanClock(5,nWait,0.0%,70) TMC(2,nWait,5.7%,103) MAIN(1,running,93.1%,429) IDLE(0,ready,0.0%,39) AIN(2,delaying,1.1%,263), total 100.0% Last reset 00:00:55 ago, cause: power up Last software reset data not available Driver 0: pos 0, 80.0 steps/mm, standstill, SG min 0, mspos 8, reads 21146, writes 11 timeouts 0, steps req 0 done 0 Driver 1: pos 0, 80.0 steps/mm, standstill, SG min 0, mspos 8, reads 21147, writes 11 timeouts 0, steps req 0 done 0 Driver 2: pos 0, 80.0 steps/mm, standstill, SG min 0, mspos 8, reads 21147, writes 11 timeouts 0, steps req 0 done 0 Moves scheduled 0, completed 0, in progress 0, hiccups 0, segs 0, step errors 0, maxLate 0 maxPrep 0, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0, ebfmin 0.00 max 0.00 Peak sync jitter -5/4, peak Rx sync delay 153, resyncs 0/0, no timer interrupt scheduled VIN voltage: min 24.2, current 24.3, max 24.3 V12 voltage: min 12.4, current 12.4, max 12.4 MCU temperature: min 21.6C, current 24.4C, max 24.4C Last sensors broadcast 0x00000000 found 0 110 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 470, send timeouts 0, received 287, lost 0, errs 63, boc 0, free buffers 38, min 38, error reg 3f0000 dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 0 ok M122 B0 === Diagnostics === RepRapFirmware for Duet 3 MB6XD version 3.5.0-rc.2 (2023-12-14 10:33:00) running on Duet 3 MB6XD v1.01 or later (standalone mode) Board ID: 0JD2M-999AL-D25S0-7J9DA-3SJ6S-T43V2 Used output buffers: 1 of 40 (7 max) === RTOS === Static ram: 153284 Dynamic ram: 117344 of which 0 recycled Never used RAM 72508, free system stack 176 words Tasks: NETWORK(1,ready,105.3%,182) ETHERNET(5,nWait,0.0%,312) HEAT(3,nWait,0.0%,369) Move(4,nWait,0.0%,340) CanReceiv(6,nWait,0.0%,797) CanSender(5,nWait,0.0%,334) CanClock(7,delaying,0.0%,342) MAIN(1,running,226.8%,444) IDLE(0,ready,2.7%,30), total 334.8% Owned mutexes: USB(MAIN) === Platform === Last reset 02:16:05 ago, cause: power up Last software reset at 2024-01-15 20:32, reason: User, Gcodes spinning, available RAM 72304, slot 2 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 MCU temperature: min 25.5, current 42.1, max 42.7 Supply voltage: min 0.1, current 24.0, max 24.7, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 0.1, current 12.2, max 12.2, under voltage events: 0 Heap OK, handles allocated/used 99/0, heap memory allocated/used/recyclable 2048/12/12, 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: 1970-01-01 00:00:00 Slowest loop: 21.40ms; fastest: 0.07ms === Storage === Free file entries: 20 SD card 0 detected, interface speed: 25.0MBytes/sec SD card longest read time 2.5ms, write time 0.0ms, max retries 0 === Move === DMs created 125, segments created 0, maxWait 0ms, bed compensation in use: none, height map offset 0.000, max steps late 0, ebfmin 0.00, ebfmax 0.00 no step interrupt scheduled Moves shaped first try 0, on retry 0, too short 0, wrong shape 0, maybepossible 0 === DDARing 0 === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === DDARing 1 === 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 === Movement locks held by null, null HTTP is idle in state(s) 0 Telnet is idle in state(s) 0 File is idle in state(s) 0 USB is ready with "M122 B0" 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 File2 is idle in state(s) 0 Queue2 is idle in state(s) 0 Q0 segments left 0, axes/extruders owned 0x0000000 Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === CAN === Messages queued 40919, received 2240, lost 0, errs 39255999, boc 1404 Longest wait 2ms for reply type 6024, peak Tx sync delay 22911, free buffers 50 (min 49), ts 40828/341/0 Tx timeouts 0,0,39777,47,0,0 last cancelled message type 30 dest 127 === Network === Slowest loop: 0.47ms; fastest: 0.03ms Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) HTTP sessions: 0 of 8 = Ethernet = Interface state: active Error counts: 0 0 0 1 0 0 Socket states: 2 2 2 2 2 0 0 0 === Multicast handler === Responder is inactive, messages received 0, responses 0 ok
-
RE: Configs for PCB PnP for Duet3D 6XD and 3 x 3HC expansion boards
@droftarts said in Configs for PCB PnP for Duet3D 6XD and 3 x 3HC expansion boards:
@developeralgo222 said in [Configs for PCB PnP for Duet3D 6XD and 3 x 3HC expansion boards]
This sounds like the functionality that we need to replicate. Like I've said, the enable wires aren't connected on either of the links you sent. My best guess is that the enable signal isn't quite right, but it seems to work with Mach3 with enable disconnected. Disconnect the enable wires.@droftarts , i disconnected and the ENABLE Wires from the External Drive and the Duet 6XD and that did the trick. Now i am able to move X and Y -axis Motors now
-
RE: Duet 3 3HC to external DM542 Driver and a Stepper Motor
The 6HC, 3HC, and 1HCL internally derive the STEP/DIR/etc and can directly control the phases of the stepper motors - like you said, you can connect the A+ to A+, A- to A-, B+ to B+, and B- to B- to directly drive the stepper motors.
This is helpful to know that 3HC internally derive the STEP/DIR/etc and can directly control the phases of the stepper motors and i don't need the External Drivers for fine tunning microsteps of STEP/DIR/ENA etc
-
RE: Duet 3HC Expansion looses Connection
@oliof said in Duet 3HC Expansion looses Connection:
@developeralgo222 and just to be sure, termination only happens on the last 3HC in the chain?
Yes
-
RE: Duet 3HC Expansion looses Connection
@infiniteloop said in Duet 3HC Expansion looses Connection:
Decided to retest the isolated boards (Test bench setup )
Thank you for the tests. Looks like some meters of CAN more or less make a difference - that’s not OK at all. Could you please run two quick tests on the bench, both starting with the setup as on the photo:
- physically swap 3HC boards #1 and #2 in the CAN chain, take the 15m cable to link the 6XD with 3HC2 (chaining 6XD -> 3HC2 -> 3HC1 -> 3HC3 -> 3HC4). No change of IDs. This is to see whether a different CAN port on at least one end of the connection with the 6XD makes a difference or not.
TEST 1
- Same Test with 0.5m and 4m Works OK, Syncs and No errors
- Same Test with 15m Kenable ADSL 2+ cable Does Not Work . Just reconnected errors and CAN timeout errors
...... 1/28/2024, 6:08:17 PM Error: Expansion board 3 reconnected 1/28/2024, 6:08:15 PM Error: Expansion board 4 reconnected ..... ... 1/28/2024, 6:11:03 PM M122 B0 === Diagnostics === RepRapFirmware for Duet 3 MB6XD version 3.5.0-rc.2 (2023-12-14 10:33:00) running on Duet 3 MB6XD v1.01 or later (standalone mode) Board ID: 0JD2M-999AL-D25S0-7J9DA-3SJ6S-T43V2 Used output buffers: 1 of 40 (29 max) === RTOS === Static ram: 153284 Dynamic ram: 117412 of which 0 recycled Never used RAM 72440, free system stack 204 words Tasks: NETWORK(1,ready,29.1%,172) ETHERNET(5,nWait,0.1%,323) HEAT(3,nWait,0.0%,369) Move(4,nWait,0.0%,340) CanReceiv(6,nWait,0.0%,795) CanSender(5,nWait,0.0%,334) CanClock(7,delaying,0.0%,342) MAIN(1,running,50.4%,444) IDLE(0,ready,20.4%,30), total 100.0% Owned mutexes: HTTP(MAIN) === Platform === Last reset 00:05:22 ago, cause: power up Last software reset at 2024-01-19 15:33, reason: User, Gcodes spinning, available RAM 71300, 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 MCU temperature: min 30.5, current 42.7, max 42.9 Supply voltage: min 23.9, 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.2, max 12.2, under voltage events: 0 Heap OK, handles allocated/used 99/0, heap memory allocated/used/recyclable 2048/12/12, gc cycles 0 Events: 265 queued, 265 completed Driver 0: ok Driver 1: ok Driver 2: ok Driver 3: ok Driver 4: ok Driver 5: ok Date/time: 2024-01-28 18:11:00 Slowest loop: 1200.90ms; fastest: 0.07ms === Storage === Free file entries: 20 SD card 0 detected, interface speed: 25.0MBytes/sec SD card longest read time 2.8ms, write time 0.0ms, max retries 0 === Move === DMs created 125, segments created 0, maxWait 0ms, bed compensation in use: none, height map offset 0.000, max steps late 0, ebfmin 0.00, ebfmax 0.00 no step interrupt scheduled Moves shaped first try 0, on retry 0, too short 0, wrong shape 0, maybepossible 0 === DDARing 0 === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === DDARing 1 === 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 === Movement locks held by null, null HTTP is ready with "M122 B0" 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 File2 is idle in state(s) 0 Queue2 is idle in state(s) 0 Q0 segments left 0, axes/extruders owned 0x0000000 Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === CAN === Messages queued 1972, received 923, lost 0, errs 12242198, boc 0 Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 50 (min 49), ts 1614/0/0 Tx timeouts 0,0,1613,58,0,298 last cancelled message type 30 dest 127 === Network === Slowest loop: 7.24ms; fastest: 0.03ms Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) HTTP sessions: 1 of 8 = Ethernet = Interface state: active Error counts: 0 0 0 1 0 0 Socket states: 5 5 2 2 2 0 0 0 === Multicast handler === Responder is inactive, messages received 0, responses 0 1/28/2024, 6:11:03 PM Error: Expansion board 4 reconnected 1/28/2024, 6:11:00 PM CAN response timeout: board 4, req type 6024, RID 58 Error: Expansion board 4 reconnected Error: Expansion board 4 reconnected 1/28/2024, 6:10:59 PM M122 B4 ......... ......... Error: Expansion board 4 reconnected 1/28/2024, 6:10:58 PM Error: Expansion board 4 reconnected ............ 1/28/2024, 6:10:56 PM CAN response timeout: board 3, req type 6024, RID 57 Error: Expansion board 4 reconnected Error: Expansion board 2 stopped sending status 1/28/2024, 6:10:54 PM M122 B3 ............ ............ Error: Expansion board 4 reconnected 1/28/2024, 6:10:53 PM Error: Expansion board 4 reconnected ...... ...... 1/28/2024, 6:10:52 PM CAN response timeout: board 2, req type 6024, RID 56 1/28/2024, 6:10:50 PM M122 B2 ....... 1/28/2024, 6:10:50 PM Error: Expansion board 4 reconnected Error: Expansion board 4 reconnected ....... 1/28/2024, 6:10:49 PM Error: Expansion board 2 stopped sending status ...... 1/28/2024, 6:10:46 PM M122 B1 CAN response timeout: board 1, req type 6024, RID 55
TEST 2:
- again starting with the initial arrangement, replace the short cable between 3HC3 and 3HC4 with the 15m one. The result might indicate a problem with either the overall length of the CAN bus, or the position of the long section within the chain of boards.
For both tests, would you mind to post the M122 reports (if available)?
NOTE: i can confirm that we might have an Issue with CAN Bus cable Length . If this can be reproduced by someone else then its bad news.
- Same Test with 0.5m and 4m Works OK, Syncs and No errors
- Same Test with 15m Kenable ADSL 2+ cable Does Not Work ,
Where 6XD-->0.5m-->3HC1 -->0.5m-->3HC2-->0.5m-->3HC3-->15m-->3HC4
- 6XD-->0.5m-->3HC1 -->0.5m-->3HC2-->0.5m-->3HC3 All Sync except 3HC4 Which has 15m kenable ADSL 2+ cable connected between 3HC3 and 3HC4
1/28/2024, 6:34:08 PM M122 B4 CAN response timeout: board 4, req type 6024, RID 82 1/28/2024, 6:34:04 PM M122 B3 Diagnostics for board 3: Duet EXP3HC rev 1.02 or later firmware version 3.5.0-rc.2 (2023-12-14 08:56:47) Bootloader ID: SAME5x bootloader version 2.8 (2023-07-25) All averaging filters OK Never used RAM 156832, free system stack 194 words Tasks: Move(3,nWait,0.0%,182) HEAT(2,nWait,0.0%,120) CanAsync(5,nWait,0.0%,67) CanRecv(3,nWait,0.0%,80) CanClock(5,nWait,0.0%,70) TMC(2,nWait,6.0%,103) MAIN(1,running,92.8%,391) IDLE(0,ready,0.0%,39) AIN(2,delaying,1.2%,263), total 100.0% Last reset 00:06:57 ago, cause: power up Last software reset data not available Driver 0: pos 0, 8.9 steps/mm, standstill, SG min 0, mspos 8, reads 48852, writes 17 timeouts 0, steps req 0 done 0 Driver 1: pos 0, 8.9 steps/mm, standstill, SG min 0, mspos 8, reads 48853, writes 17 timeouts 0, steps req 0 done 0 Driver 2: pos 0, 8.9 steps/mm, standstill, SG min 0, mspos 8, reads 48854, writes 17 timeouts 0, steps req 0 done 0 Moves scheduled 0, completed 0, in progress 0, hiccups 0, segs 0, step errors 0, maxLate 0 maxPrep 0, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0, ebfmin 0.00 max 0.00 Peak sync jitter -4/13, peak Rx sync delay 182, resyncs 0/0, no timer interrupt scheduled VIN voltage: min 24.2, current 24.3, max 24.3 V12 voltage: min 12.3, current 12.3, max 12.4 MCU temperature: min 22.6C, current 29.6C, max 29.6C Last sensors broadcast 0x00000000 found 0 148 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 3382, send timeouts 0, received 2066, lost 0, errs 14241581, boc 0, free buffers 38, min 38, error reg ffff00 dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 0 1/28/2024, 6:34:01 PM M122 B2 Diagnostics for board 2: Duet EXP3HC rev 1.02 or later firmware version 3.5.0-rc.2 (2023-12-14 08:56:47) Bootloader ID: SAME5x bootloader version 2.8 (2023-07-25) All averaging filters OK Never used RAM 156832, free system stack 194 words Tasks: Move(3,nWait,0.0%,182) HEAT(2,nWait,0.0%,120) CanAsync(5,nWait,0.0%,67) CanRecv(3,nWait,0.0%,80) CanClock(5,nWait,0.0%,70) TMC(2,nWait,6.0%,103) MAIN(1,running,92.8%,393) IDLE(0,ready,0.0%,39) AIN(2,delaying,1.2%,263), total 100.0% Last reset 00:06:54 ago, cause: power up Last software reset data not available Driver 0: pos 0, 8.9 steps/mm, standstill, SG min 0, mspos 8, reads 38393, writes 17 timeouts 0, steps req 0 done 0 Driver 1: pos 0, 8.9 steps/mm, standstill, SG min 0, mspos 8, reads 38393, writes 17 timeouts 0, steps req 0 done 0 Driver 2: pos 0, 8.9 steps/mm, standstill, SG min 0, mspos 8, reads 38394, writes 17 timeouts 0, steps req 0 done 0 Moves scheduled 0, completed 0, in progress 0, hiccups 0, segs 0, step errors 0, maxLate 0 maxPrep 0, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0, ebfmin 0.00 max 0.00 Peak sync jitter -11/10, peak Rx sync delay 183, resyncs 0/0, no timer interrupt scheduled VIN voltage: min 24.2, current 24.2, max 24.3 V12 voltage: min 12.3, current 12.3, max 12.4 MCU temperature: min 23.2C, current 30.8C, max 31.0C Last sensors broadcast 0x00000000 found 0 128 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 3360, send timeouts 0, received 2052, lost 0, errs 14147821, boc 0, free buffers 38, min 38, error reg ffff00 dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 0 1/28/2024, 6:33:59 PM M122 B1 Diagnostics for board 1: Duet EXP3HC rev 1.02 or later firmware version 3.5.0-rc.2 (2023-12-14 08:56:47) Bootloader ID: SAME5x bootloader version 2.8 (2023-07-25) All averaging filters OK Never used RAM 156904, free system stack 194 words Tasks: Move(3,nWait,0.0%,182) HEAT(2,nWait,0.0%,120) CanAsync(5,nWait,0.0%,67) CanRecv(3,nWait,0.0%,80) CanClock(5,nWait,0.0%,70) TMC(2,nWait,6.0%,103) MAIN(1,running,92.8%,413) IDLE(0,ready,0.0%,39) AIN(2,delaying,1.2%,263), total 100.0% Last reset 00:06:52 ago, cause: power up Last software reset data not available Driver 0: pos 0, 20.0 steps/mm, standstill, SG min 0, mspos 8, reads 28357, writes 17 timeouts 0, steps req 0 done 0 Driver 1: pos 0, 20.0 steps/mm, standstill, SG min 0, mspos 8, reads 28357, writes 17 timeouts 0, steps req 0 done 0 Driver 2: pos 0, 20.0 steps/mm, standstill, SG min 0, mspos 8, reads 28358, writes 17 timeouts 0, steps req 0 done 0 Moves scheduled 0, completed 0, in progress 0, hiccups 0, segs 0, step errors 0, maxLate 0 maxPrep 0, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0, ebfmin 0.00 max 0.00 Peak sync jitter -5/15, peak Rx sync delay 180, resyncs 0/0, no timer interrupt scheduled VIN voltage: min 24.1, current 24.1, max 24.2 V12 voltage: min 12.4, current 12.4, max 12.4 MCU temperature: min 20.5C, current 26.3C, max 26.3C Last sensors broadcast 0x00000000 found 0 16 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 3343, send timeouts 0, received 2042, lost 0, errs 14059073, boc 0, free buffers 38, min 38, error reg ffff00 dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 0 1/28/2024, 6:33:56 PM M122 B0 === Diagnostics === RepRapFirmware for Duet 3 MB6XD version 3.5.0-rc.2 (2023-12-14 10:33:00) running on Duet 3 MB6XD v1.01 or later (standalone mode) Board ID: 0JD2M-999AL-D25S0-7J9DA-3SJ6S-T43V2 Used output buffers: 1 of 40 (29 max) === RTOS === Static ram: 153284 Dynamic ram: 117916 of which 0 recycled Never used RAM 71936, free system stack 202 words Tasks: NETWORK(1,ready,35.2%,172) ETHERNET(5,nWait,0.1%,317) HEAT(3,nWait,0.0%,369) Move(4,nWait,0.0%,340) CanReceiv(6,nWait,0.0%,797) CanSender(5,nWait,0.0%,334) CanClock(7,delaying,0.0%,350) MAIN(1,running,64.4%,444) IDLE(0,ready,0.3%,30), total 100.0% Owned mutexes: HTTP(MAIN) === Platform === Last reset 00:06:49 ago, cause: power up Last software reset at 2024-01-19 15:33, reason: User, Gcodes spinning, available RAM 71300, 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 MCU temperature: min 28.3, current 42.7, max 42.7 Supply voltage: min 24.0, current 24.0, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.1, current 12.2, max 12.2, under voltage events: 0 Heap OK, handles allocated/used 99/0, heap memory allocated/used/recyclable 2048/12/12, 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: 2024-01-28 18:33:55 Slowest loop: 5.37ms; fastest: 0.07ms === Storage === Free file entries: 20 SD card 0 detected, interface speed: 25.0MBytes/sec SD card longest read time 2.3ms, write time 0.0ms, max retries 0 === Move === DMs created 125, segments created 0, maxWait 0ms, bed compensation in use: none, height map offset 0.000, max steps late 0, ebfmin 0.00, ebfmax 0.00 no step interrupt scheduled Moves shaped first try 0, on retry 0, too short 0, wrong shape 0, maybepossible 0 === DDARing 0 === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === DDARing 1 === 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 === Movement locks held by null, null HTTP is ready with "M122 B0" 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 File2 is idle in state(s) 0 Queue2 is idle in state(s) 0 Q0 segments left 0, axes/extruders owned 0x0000000 Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === CAN === Messages queued 2108, received 9884, lost 0, errs 13969212, boc 96 Longest wait 30ms for reply type 6018, peak Tx sync delay 1586, free buffers 50 (min 49), ts 2047/1998/0 Tx timeouts 0,0,0,0,0,0 === Network === Slowest loop: 7.36ms; fastest: 0.03ms Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) HTTP sessions: 1 of 8 = Ethernet = Interface state: active Error counts: 0 0 0 0 0 0 Socket states: 5 2 2 2 2 0 0 0 === Multicast handler === Responder is inactive, messages received 0, responses 0
I think further Testing with different Length using TEST 1 and 2 is required to rule out this issue of cable length. I have tried several self-made CAN Bus cables with different lengths around 4m to 5m and some work but some don't , i am assuming that my Network Cable craftmanship might not be the top notch ( BTW, i have always terminated all my own Network cables for over 25 years as an engineer). I assumed that Kenable ADSL 2+ cables should work in this case to rule out if its my cable termination work.
-
RE: Duet 3HC Expansion looses Connection
@gloomyandy said in Duet 3HC Expansion looses Connection:
@developeralgo222 Just to clarify, when you are using the boards individually are you enabling the termination resistors on the 3HC boards that is being tested?
Yes , Each 3HC board is CAN Bus terminated when testing individually.
-
RE: Wiring Multiple Endstops in Parallel or Series with Duet 6XD
@droftarts
i did define the wrong pins. The correct pins areI am able to move the X and Y-axis to homing points except the triggers or Endstops were not working correctly. I will update as per your advice and comment out the endstop lines for X and Y axis in the config.g and just leave Trigger 1 then test again
Updated Config.g Snapshot
On trigger 1 for X and Y-axis and commented out Endstops for X and Y-axis; Triggers -- Two triggers, one for X and one for Y, and set them to pause the machine M950 J1 C"!0.io0.in" ; define Trigger input pin #1 on IO_0 M950 J2 C"!0.io1.in" ; define Trigger input pin #2 on IO_1 M581 T1 P1:2 S1 R0 ; invoke trigger 1 (pause) when an inactive-to-active edge (correct for NO switches) is detected on input 1 or input 2 at any time ; Endstops ; For X and Y Axis ;M574 X1 S1 P"!0.io0.in" ; configure active high endstop switch for low end on X via pin io0.in ;M574 Y1 S1 P"!0.io1.in" ; configure active high endstop switch for low end on Y via pin io1.in
Updated homex.g
; homex.g ; called to home the X axis ; Undefine any Triggers for X and Y-axis M950 J1 C"nil" ; undefine X axis limit switch triggers M950 J2 C"nil" ; undefine Y axis limit switch triggers ;Define The Triggers for X and Y-axis M574 X1 S1 P"0.io0.in" ; define X axis endstop, minimum end M574 Y1 S1 P"0.io1.in" ; define Y axis endstop, minimum end ; Home X-Axis G91 ; relative positioning G1 H2 X0 ; move X-axis Minimum Homing endstop and stop there (first pass) G1 H2 X-1575 F1800 ; move quickly to X-axis Maximum endstop and stop there (first pass) G1 H2 X-15 F6000 ; go back a few mm G1 H2 X-1575 F360 ; move slowly to X-axis Maximum endstop once more (second pass) G1 H2 X0 ; move back to X-axis Minimum Homing endstop and stop there (second pass) G92 X0 G90 ; absolute positioning ; M574 X0 M574 Y0 ; Triggers M950 J1 C"0.io0.in" M950 J2 C"0.io1.in"
Updated homey.g
; homey.g ; called to home the Y axis ; ; generated by RepRapFirmware Configuration Tool v3.3.16 on Tue Dec 05 2023 09:51:46 GMT-0500 (Eastern Standard Time) M950 J1 C"nil" ; undefine X axis limit switch triggers M950 J2 C"nil" ; undefine X axis limit switch triggers M574 X1 S1 P"!0.io0.in" ; define X axis endstop, minimum end M574 Y1 S1 P"!0.io1.in" ; define Y axis endstop, minimum end G91 ; relative positioning G1 H2 Y0 ; move Y-axis Minimum Homing endstop and stop there (first pass) G1 H2 Y2125 F1800 ; move quickly to Y-axis Maximum endstop and stop there (first pass) G1 H2 Y15 F6000 ; go back a few mm G1 H2 Y2125 F360 ; move slowly to Y-axis Maximum endstop once more (second pass) G1 H2 Y0 ; move back to Y-axis Minimum Homing endstop and stop there (second pass) G92 Y0 G90 ; absolute positioning M574 X0 M574 Y0 M950 J1 C"!0.io0.in" M950 J2 C"!0.io1.in"
@droftarts , Does this look correct to you ?
Latest posts made by developeralgo222
-
RE: Reading Sensor Pressure from Analog output
i can't seem to get a good voltage divider to purchase that can handle 6 outlets. Do you have any link of any voltage divider that can do that and is being sold anywhere ? i don't have time to design one at the moment
-
RE: Reading Sensor Pressure from Analog output
@gloomyandy , ok will do that. Quick question, Do i need to connect a 10K resistor between the 3.3V converter source i.e Tie VA(3.3V) to OE then to 10K resistor to GND as per the TXS0108E Datasheet ?
-
RE: Reading Sensor Pressure from Analog output
@gloomyandy Yes i did before i plugged everything in . 5V on the High side and 3.3V on the low side. Let me just do it again to see if that changed with the load
-
RE: Reading Sensor Pressure from Analog output
@gloomyandy , Voltage divider is simple and works most of the time (Dividers tend to be unreliable sometimes when you need accuracy ) but i have 6 sensors that are connected and are being used as Vacuum Pressure Sensing Actuators for my Pick-and-Place machine . i need high accuracy and robust reliability , that's why i used a Voltage Level Shifter
-
RE: Reading Sensor Pressure from Analog output
@droftarts
Thanks Ian, i have tried connecting directly & through a level Shifter and none seems to work correctly .I am sure i am not the only one who has dealt or is dealing with this issue on Duet3 boards.
How to correctly read Pressure Sensor values either using a Digital NPN output signal ( 1 =True , 0=False) or Analog Voltage/Current Signal output ( Variable range ). i have made the connections and double checked everything but can't get it to work on Duet3 Boards but it works great on my Arduino and other boards no issues at all.
-
RE: Reading Sensor Pressure from Analog output
@gloomyandy . Any suggestion of a solution if a Logic level shifter is not the right solution ?
AFAIK, these are the recommended solutions to solve this issue. Are you suggesting anything different from this?
-
Voltage Divider ( simple but not robust)
-
Bi-directional Logic Level Shifter ( Robust )
-
Zener Diode Clamp
-
Opto-isolator
-
-
RE: Reading Sensor Pressure from Analog output
i have 6 ports connected to 6 sensors as indicated above ( Board 2 (3HC) = 2.io0.in , 2.io1.in , 2.io2.in & Board 3 (3HC) = 3.io0.in , 3.io1.in , 3.io2.in ) and they are all behaving the same way.
i have tried on the 6XD analog capable ports and they are behaving the same way too
-
RE: Reading Sensor Pressure from Analog output
As per my testing i don't think Analog port on Duet3 3HC seems to be working correctly. It seems that as per the Analog connection , i should be getting varied Analog pressure reading from the Sensor but it looks like its behaving as if it only triggers to a Max Value set when the Set pressure is met or it remains at the Minimum set Value so long as the Set pressure on the sensor is not yet met. Its behaving more like a NPN output instead or analog output .
E.g i have this on Duet3
M308 S1 P"2.io0.in" Y"linear-analog" A"VG1" F0 B0.0 C-101 V0.0 U13.5
and on SMC Pressure Sensor i have set it to - 40 kPa for testing
When the
-
Sensor reads/displays 0.0 ~ -39.9 kPa =====> Duet reads -0.1 ~ 0.1
-
Sensor reads/displays -40.0 ~ -101 kPa =====> Duet reads -87.5 ~ -87.9
it seems to be behaving like a digital NPN output yet its analog output
-
-
RE: Reading Sensor Pressure from Analog output
at 0.0 kPa those above values work but they extremely skewed as you start to have pressure reading. i am not sure what are the correct values to have it working .
e.g Actual Sensor Display = 0.0 Kpa , Duet Adjusted Reading = 0.0 kPa But
Actual Sensor Display =70.0 kPa , Duet Adjusted Reading = 86.8 kPai then let it run and kept reading the observing the values compared to what is being read. The Duet readings don't change that much while the actual pressure is decreasing. I am not sure if Adjusted reading formula actually works with Pressure sensor readings
in a simple way of y = ax+b ==> a = slope & b = offset , y = Voltage (1 ~ 5V ) and X = Pressure ( 0 ~ -101.0 kPa )
i.e y = 0.043x + 0.6 ===> x = (y/0.043 ) - (0.6/0.043) ==> x = 23.25y - 13.90
- Looking the formula AdjustedReading = (RawReading * (1.0 + V)) + U
But if i equate 1.0+V = 23.25 ==> V = 22.25 & U = -13.90
i get an error that V is "Too High".
What are the ranges of V & U ?
-
Reading Sensor Pressure from Analog output
I have SMC ZSE30A-01-C Pressure Sensors with 1 NPN output (Black) + Analog voltage output (white wire) and have configured them with M308 Commands, and also according to the datasheet ZSE30A_ISE30.pdf
M308 S1 P"2.io0.in" Y"linear-analog" A"VG1" F0 B0.0 C-101 M308 S1 P"2.io1.in" Y"linear-analog" A"VG2" F0 B0.0 C-101 M308 S1 P"2.io2.in" Y"linear-analog" A"VG3" F0 B0.0 C-101 M308 S1 P"3.io0.in" Y"linear-analog" A"VG4" F0 B0.0 C-101 M308 S1 P"3.io1.in" Y"linear-analog" A"VG5" F0 B0.0 C-101 M308 S1 P"3.io2.in" Y"linear-analog" A"VG6" F0 B0.0 C-101
More info:
.
I am able to read the values but they are wrong . Are offset by almost -38 , Actual Value = 0.0 while the reading returns -38 or -37.x as the value
Duet3 Analog ports on 3HC (0 to 3.3V signal) ====> isolated 8-Port channel Bidirectional Level Shifter 3.3V to/from 5V ==> SMC ZSE30A-01-C Analog port ( 1 - 5V signal).
How do i configure this correctly ?
i was also looking at an Old Arduino code to see if i can get some help from that :
SMC vacuum sensor ZSE30A-01-C-L =============================================== ARDUINO CODE =============================================== // 1 Volt is an ADC value of ~205 with a 10-bit ADC and 5V Aref const int offset = 205; // calibrate zero pressure Kpa = (analogRead(A0) - offset) * 101 / (1023 - offset);
I have managed to fiddle a round and get to this to try solve my issue but i am not sure if this is the correct way to configure it.
M308 S1 P"2.io0.in" Y"linear-analog" A"VG1" F0 B0.0 C-101 V0.00 U13.5 M308 S1 P"2.io1.in" Y"linear-analog" A"VG2" F0 B0.0 C-101 V0.00 U13.5 M308 S1 P"2.io2.in" Y"linear-analog" A"VG3" F0 B0.0 C-101 V0.00 U13.5 M308 S1 P"3.io0.in" Y"linear-analog" A"VG4" F0 B0.0 C-101 V0.00 U13.5 M308 S1 P"3.io1.in" Y"linear-analog" A"VG5" F0 B0.0 C-101 V0.00 U13.5 M308 S1 P"3.io2.in" Y"linear-analog" A"VG6" F0 B0.0 C-101 V0.00 U13.5
i got adjusted values at 0.0 kPa that now fall within expected readings (-0.1 - 0.1 ) kPa but i still need to test with actual air pressure running through to see what the values are going to be and if they conform to the Adjusted Reading e.g is Actual -50.0 kPa pressure reading on the sensor going to be read as -50.0 (+/- 0.2) kPa with the adjusted reading or it will skew or extremely deviate from the actual sensor displayed values.
11/14/2024 , 12:24:15 PM M308 S1 Sensor 1 (VG1 Pressure) type Linear analog using pin 2.io0.in, last error ok, offset adjustment 13.5, slope adjustment 0.000, adjusted reading -0.1, unfiltered, range 0.0 to -101.0
Here is brief snapshot of my connections :