Duet3 6CH + 3CH expansion board - Missing steps.
-
@evomotors At this point wait for DC42 to wake up. Time zones and all that.
-
@evomotors In the meantime why not make the video that deckingman suggested. That way anyone trying to reproduce the problem you are having can be sure they are seeing the same thing.
-
@evomotors, Tony & I are currently investigating a similar issue - which I believe has the same cause - for one of our OEM customers. I hope to make some progress by Monday.
-
I'm triple checking my wiring just in case I did something wrong and this is why I'm experiencing this issue. So far I cannot see any errors in wiring, but I do have a question: My RPi4 is powered by it's own power supply and I set jumpers according to the documentation. So I just want to make sure if I read documentation correctly.
And the expansion board jumpers set up this way as this is my only expansion board
-
The way you have the jumpers set the Pi is powering the Duet.
See here: https://duet3d.dozuki.com/Wiki/Duet_3_Mainboard_6HC_Hardware_Overview#Section_5V
To power them separately only the Internal 5V En jumper should be installed.
-
@Phaedrux said in Duet3 6CH + 3CH expansion board - Missing steps.:
The way you have the jumpers set the Pi is powering the Duet.
See here: https://duet3d.dozuki.com/Wiki/Duet_3_Mainboard_6HC_Hardware_Overview#Section_5V
To power them separately only the Internal 5V En jumper should be installed.
So I was confused about this statement on https://duet3d.dozuki.com/Wiki/Duet_3_Mainboard_6HC_Wiring_Diagram:
The default 5V power configuration is Internal-5V-EN jumpered, 5V->SBC jumpered (the Duet is powering the SBC) , SBC->5V not jumpered. If you want the SBC to provide 5V to the Duet then remove the jumper from Internal-5V-EN and place a jumper on SBC-5V (leaving the 5V->SBC jumper in place). NOTE this bypasses the 5V protection and a fault on the SBC may damage the Duet.
-
Corrected the jumpers, didn't fix my issue.
-
@evomotors, I would still like to see an photo of a print that is problematic when the extruder is controlled by an expansion board, together with the GCode. Without that, I don't really know what issue it is that you are reporting.
PS - are you using high extruder microstepping? I am doing a test print of a cylinder using a tool board to drive the extruder, which I was hopeful would show up any problems, in particular the effect of CAN clock sync jitter. The only way I can get it to produce hiccups is to run it at high speed and use x256 extruder microstepping.
-
@dc42 said in Duet3 6CH + 3CH expansion board - Missing steps.:
@evomotors, I would still like to see an photo of a print that is problematic when the extruder is controlled by an expansion board, together with the GCode. Without that, I don't really know what issue it is that you are reporting.
PS - are you using high extruder microstepping? I am doing a test print of a cylinder using a tool board to drive the extruder, which I was hopeful would show up any problems, in particular the effect of CAN clock sync jitter. The only way I can get it to produce hiccups is to run it at high speed and use x256 extruder microstepping.
No high micro stepping, I did posted my config as you requested previously in this thread.. it's all there, I also posted gcode file.
I'm not even looking on hiccups any longer. you can see the E driver position and compare it with what it should be according to filament usage.
-
Thanks. I'll do that E drive position reporting check on my tool changer. It may be just a reporting issue.
-
@dc42 said in Duet3 6CH + 3CH expansion board - Missing steps.:
Thanks. I'll do that E drive position reporting check on my tool changer. It may be just a reporting issue.
To prove the point I will be posting 2 videos today. One where XY connected to Duet3 and another where XY connected to 3CH expansion board. Both videos will demonstrate printing first few layers of exactly the same g-code file on the same printer. It's easier to see the issue where it starts shifting layers.
-
@dc42 said in Duet3 6CH + 3CH expansion board - Missing steps.:
Thanks. I'll do that E drive position reporting check on my tool changer. It may be just a reporting issue.
Here are promised videos. Use bookmarks to go directly to issue.
XY Motors connected to Duet 3 board
XY Motors connected to expansion board
Edit: attaching config files
xy_on_expansion.config.g
xy_on_duet3.config.gCompressed gcode, renamed to *.txt
ZR_BearingTopMount_FR.zip.txtDiagnostic after failed print (for M122 B1)
M122 B1 Diagnostics for board 1: Duet EXP3HC firmware version 3.2 (2021-01-05) Bootloader ID: not available Never used RAM 154728, free system stack 154 words HEAT 90 CanAsync 94 CanRecv 84 TMC 30 MAIN 315 AIN 257 Last reset 08:10:45 ago, cause: power up Last software reset data not available Driver 0: position -591153, 160.0 steps/mm, standstill, reads 62793, writes 52 timeouts 0, SG min/max 0/1023 Driver 1: position -76259, 160.0 steps/mm, standstill, reads 62795, writes 52 timeouts 0, SG min/max 0/1023 Driver 2: position 52354, 172.0 steps/mm, standstill, reads 62807, writes 44 timeouts 0, SG min/max 0/156 Moves scheduled 4073, completed 4073, in progress 0, hiccups 218 No step interrupt scheduled VIN: 24.7V, V12: 12.3V MCU temperature: min 43.8C, current 44.0C, max 44.2C Ticks since heat task active 245, ADC conversions started 29445736, completed 29445736, timed out 0 Last sensors broadcast 0x00000000 found 0 248 ticks ago, loop time 0 CAN messages queued 122, send timeouts 0, received 269109, lost 0, free buffers 36
Diagnostic after failed print (for M122)
M122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.2 running on Duet 3 MB6HC v1.01 or later (SBC mode) Board ID: 08DJM-956L2-G43S8-6JKDL-3SJ6L-1802G Used output buffers: 1 of 40 (11 max) === RTOS === Static ram: 149788 Dynamic ram: 63136 of which 68 recycled Never used RAM 145840, free system stack 128 words Tasks: Linux(ready,87) HEAT(blocked,296) CanReceiv(blocked,849) CanSender(blocked,344) CanClock(blocked,352) TMC(blocked,53) MAIN(running,673) IDLE(ready,19) Owned mutexes: HTTP(MAIN) === Platform === Last reset 01:37:31 ago, cause: watchdog Last software reset at 2021-01-11 20:53, reason: User, none spinning, available RAM 146296, slot 1 Software reset code 0x0012 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task Linu Freestk 0 n/a Error status: 0x00 Aux0 errors 0,0,0 Aux1 errors 0,0,0 MCU temperature: min 35.9, current 37.4, max 38.4 Supply voltage: min 24.1, current 24.3, max 24.4, 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 Driver 0: position 70760, standstill, reads 54741, writes 24 timeouts 0, SG min/max 0/238 Driver 1: position 8428, standstill, reads 54741, writes 24 timeouts 0, SG min/max 0/236 Driver 2: position 1039, standstill, reads 54741, writes 24 timeouts 0, SG min/max 0/264 Driver 3: position 0, standstill, reads 54741, writes 24 timeouts 0, SG min/max 0/255 Driver 4: position 0, standstill, reads 54754, writes 11 timeouts 0, SG min/max 0/0 Driver 5: position 0, standstill, reads 54754, writes 11 timeouts 0, SG min/max 0/0 Date/time: 2021-01-11 22:30:54 Slowest loop: 187.54ms; 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, maxWait 272324ms, bed compensation in use: mesh, comp offset 0.000 === MainDDARing === Scheduled moves 1805, completed moves 1805, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 2], CDDA state -1 === AuxDDARing === Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters = 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1 Heater 0 is on, I-accum = 0.4 Heater 1 is on, I-accum = 0.3 === 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 25218, send timeouts 0, received 41, lost 0, longest wait 1ms for reply type 6018, free buffers 48 === SBC interface === State: 4, failed transfers: 0 Last transfer: 2ms ago RX/TX seq numbers: 13476/13476 SPI underruns 0, overruns 0 Number of disconnects: 0, IAP RAM available 0x2c8a8 Buffer RX/TX: 0/0-0 === Duet Control Server === Duet Control Server v3.2.0 Code buffer space: 4096 Configured SPI speed: 8000000 Hz Full transfers per second: 35.91 Maximum length of RX/TX data transfers: 2800/1684
-
Thanks for the videos. It always helps to be able to see what's going on. Thanks for the time you've put into troubleshooting the issue.
While we wait for DC42 to get a chance to see your videos, could you do a test print for me using
M566 P1
set? -
@Phaedrux said in Duet3 6CH + 3CH expansion board - Missing steps.:
M566 P1
Sure, do I need another video of it?
-
@evomotors Let's just see if it makes a difference at all.
The default jerk policy is 0, which replicates the behaviour of earlier versions of RRF (jerk is only applied between two printing moves, or between two travel moves, and only if they both involve XY movement or neither does). Changing the jerk policy to 1 allows jerk to be applied between any pair of moves.
-
@Phaedrux said in Duet3 6CH + 3CH expansion board - Missing steps.:
@evomotors Let's just see if it makes a difference at all.
The default jerk policy is 0, which replicates the behaviour of earlier versions of RRF (jerk is only applied between two printing moves, or between two travel moves, and only if they both involve XY movement or neither does). Changing the jerk policy to 1 allows jerk to be applied between any pair of moves.
Did test with following config changes.
M566 X500.00 Y500.00 Z50.00 E3000.00 P1
Failed the same way
-
Thanks for testing.
-
Not trying to hijack the thread but I got "similar" issues on a 6HC + Toolboard running 3.2
I only see the issue on round surfaces on which there are no retractions (set at 0.2) and PA from the ~middle of the hole was set from 0.005 to 0 which made it worse?!
A previous print with bigger retraction 0.3 and bigger PA 0.02 had issues but not of this magnitude, which is curious.I can start a new thread with all the info if necessary.
-
@jbarros said in Duet3 6CH + 3CH expansion board - Missing steps.:
I can start a new thread with all the info if necessary.
Please do.
-
@evomotors
are you 100% sure that its "data loss" causing the issue ?
it seems you set everything correctly (i'm far from being expert...) maybe the board ignores your current limit settings .
can you try running the same gcode (or simple high accel macro) while the motors disconnected from the load (remove belts) ?
i'm not sure its a comm speed issue . maybe the tboard simply ignores motor current settings .