Awesome! Thank you!
Posts made by evan38109
-
RE: Issues with pressure advance since RRF 3.4
@CCS86 I mean...maybe? If I'm betting on something being wrong, I bet it's me, not RRF.
Have you seen the same thing? It should be easy to recreate, just print a one-wall cube with the seam on the side while both IS and PA are enabled vs. not enabled. Make sure to disable any kind of dynamic speed control in the slicer. (e.g., "Slow down if layer print time is below...")
-
RE: "Sawtooth" Error in Motion, Even Open Loop?
@dc42 Yep, the period is definitely two cycles per revolution. It's also consistent on all motors and encoders I have, including 0.9 degree steppers and CUI AMT10E2 capacitive encoders.
Here's just one revolution out and back. I marked the shaft and watched as it went. At this scale (and with the other issue resolved), it's more of a
sinecosine wave than a sawtooth pattern. Between that and the two cycles per revolution period, makes me think it has something to do with pi, but I couldn't guess what. -
RE: "Sawtooth" Error in Motion, Even Open Loop?
@dc42 Here is the same motion at various currents. Both steppers move the same now.
TL;DR while increasing current reduces the absolute error, it doesn't look like it makes much difference to the amplitude of the sawtooth.
I've also tried all manner of other settings on the Trinamic drivers -- TBL, TOFF, hysteresis, CoolStep, etc. Ditto for accel and jerk. No difference.
Anything else you'd like me to try?
There are all two rotations forward then back at 200mm/sec, open loop, belts removed.
1.0A
2.0A
3.0A
3.5A
-
RE: "Sawtooth" Error in Motion, Even Open Loop?
@dc42 Well, I've got at least half an answer to the mystery. I figured out and resolved why the motion was asymetrical, though the underlying sawtooth shape and 0.15-ish step error remains.
First, regarding current: all of these are at 2.8A. These steppers are rated at 3.5A, so I can't push them too much more, but...I'll see what I can do.
I've swapped the encoders before, but I've been testing more...vigorously...recently. When I removed the encoders, I noticed a fine dust on the optical wheel. The stepper's rear shaft was just long enough to lightly rub against a screw on the underside of the encoder housing. I added a shim beneath the encoder and voila. Here's two rotations forward and two back in open loop mode at 200mm/sec, thankfully symmetrical:
Backlash is now measured consistently closer to 0.06 steps.
It's still fascinating to me that straight, constant-speed movement is...not. If anyone has any idea why that is, I'm all ears. I'd love to understand more.
That said, I'm now making headway on closed loop tuning. As a bit more realistic test, I took the outer perimeter from layer 42 of a Benchy, sliced at 150mm/sec. With some preliminary tuning, closed loop error looks like this:
The squiggles in the first half are the rear nameplate of the Benchy where it reads "#3DBenchy," while the right half is the smoother bow.
For comparison, open loop looks like this:
Closed loop is is staying within 0.2 steps in the worst case, with the mean error centered right at zero. Open loop strays to around 0.45 steps error, with significant offset from zero.
Pretty fascinating stuff.
-
RE: "Sawtooth" Error in Motion, Even Open Loop?
@dc42 That makes sense. Candidly, one of the things I've been looking forward to seeing with the 1HCL was the actual accuracy of microstepping and open loop movement. And I think it's cool to see the lag during motion, which you'd expect from stepper mechanics.
But the error isn't +/- 0.05 steps, it's much bigger -- and it's not symmetrical.
Here's three rotations forwards and backwards, with a 100ms pause in between. Open loop, no belts attached. A couple things to note:
- The period of the oscillation seems to be half a rotation.
- There's a major asymmetry, which you see above as well.
The error is oscillating around 0.2 steps in one direction and up to a whopping 0.8 steps in the other. (Most times it's closer to 0.5 or 0.6, but sometimes...well, there's the screenshot...) You can see the same asymmetry in the plots from my first post as well.
It's making it just impossible to find decent PID settings.
Why would there be such an asymmetry in error depending on which direction a stepper is moving?
Edit: Oh, and if it makes a difference, here is the backlash measurement from encoder tuning:
-
RE: "Sawtooth" Error in Motion, Even Open Loop?
@o_lampe With the belts removed from the steppers? Hmm...Nah, I think there's something else going on here...
-
"Sawtooth" Error in Motion, Even Open Loop?
I've been spending time in the Closed Loop plugin tuning lately using 3.5.0beta1 and I keep seeing an oscillating "sawblade" pattern in the error during movement:
The movement above is a square at a 45° angle so that only one stepper moves at a time, since it's a CoreXY printer. It's just one stepper performing a straight movement, a pause, and a straight movement back. GCode here.
I can kinda-sorta tune it out with sufficiently aggressive PID parameters at the cost of overshoot, but it still bugged me. So I looked at the motion in open loop mode and, low and behold, the same sawblade error appears:
(P.S. - I love that I can use the 1HCL to view behavior of open loop steppers.)
My first instinct was that I revealed some kind of stiction or other motion system issue, but then I took a look with the belts off. Same issue with both closed and open loop:
The previous were at 400mm/sec movement. The same pattern shows up at lower speeds as well, though. Here's 50mm/sec open loop:
Machine is using Duet 3 6HC in SBC mode + 2 x 1HCL running 3.5 beta1.
The above were with Trinamic TMCS-28-6.35-10k-AT-01 10,000 CPR / 40,000 PPR encoders on 1.8° ML23HS0L4350-E steppers at 48V. (Yes, overkill for this application.) I've seen similar with CUI AMT10E2 encoders at lower resolutions, and even tried 0.9° ML23HA0L4350-E steppers to see what I could see. Same behavior.
Why would there be a periodic error to movement like this, even in open-loop mode, and even with belts off the steppers? Am I doing something dumb? (I always assume I'm doing something dumb.)
For completeness, machine config is here, and here are the
M122
diagnostics:M122 B51 Diagnostics for board 51: Duet EXP1HCL firmware version 3.5beta1 (2022-12-23 18:43:49) Bootloader ID: SAME5x bootloader version 2.4 (2021-12-10) All averaging filters OK Never used RAM 52392, free system stack 161 words Tasks: Move(notifyWait,0.0%,108) HEAT(notifyWait,0.0%,88) CanAsync(notifyWait,0.0%,70) CanRecv(notifyWait,0.0%,79) CanClock(notifyWait,0.0%,70) TMC(notifyWait,37.0%,351) CLSend(notifyWait,0.0%,152) MAIN(running,60.9%,395) IDLE(ready,0.0%,30) AIN(notifyWait,2.0%,265), total 100.0% Last reset 00:09:11 ago, cause: software Last software reset data not available Closed loop enabled: yes, pre-error threshold: 1.00, error threshold: 2.00, encoder type rotaryQuadrature, position -76033 Encoder reverse polarity: yes, raw count 10497 Tuning mode: 0, tuning error: 0, collecting data: no Control loop runtime (ms): min=0.008, max=0.041, frequency (Hz): min=8242, max=16304 Driver 0: pos -158389, 320.0 steps/mm,ok, SG min 27, mspos 230, reads 6922, writes 64039 timeouts 0, steps req 384000 done 384000 Moves scheduled 23, completed 23, in progress 0, hiccups 0, step errors 0, maxPrep 65, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0 Peak sync jitter 1/17, peak Rx sync delay 201, resyncs 0/0, no step interrupt scheduled VIN voltage: min 48.0, current 48.0, max 48.1 V12 voltage: min 12.1, current 12.1, max 12.1 MCU temperature: min 37.7C, current 37.9C, max 38.1C Last sensors broadcast 0x00000000 found 0 118 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 2526, send timeouts 0, received 2821, lost 0, free buffers 37, min 37, error reg 0 dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 307, adv 35645/37075 12/31/2022, 11:19:08 AM M122 B50 Diagnostics for board 50: Duet EXP1HCL firmware version 3.5beta1 (2022-12-23 18:43:49) Bootloader ID: SAME5x bootloader version 2.4 (2021-12-10) All averaging filters OK Never used RAM 52392, free system stack 167 words Tasks: Move(notifyWait,0.0%,108) HEAT(notifyWait,0.0%,88) CanAsync(notifyWait,0.0%,70) CanRecv(notifyWait,0.0%,79) CanClock(notifyWait,0.0%,70) TMC(notifyWait,37.0%,351) CLSend(notifyWait,0.2%,122) MAIN(running,60.8%,395) IDLE(ready,0.0%,30) AIN(notifyWait,2.0%,265), total 100.0% Last reset 00:09:09 ago, cause: software Last software reset data not available Closed loop enabled: yes, pre-error threshold: 1.00, error threshold: 2.00, encoder type rotaryQuadrature, position -94592 Encoder reverse polarity: yes, raw count 29056 Tuning mode: 0, tuning error: 0, collecting data: no Control loop runtime (ms): min=0.008, max=0.055, frequency (Hz): min=7075, max=16667 Driver 0: pos 36801, 320.0 steps/mm,ok, SG min 28, mspos 290, reads 65125, writes 57829 timeouts 0, steps req 384000 done 384000 Moves scheduled 22, completed 22, in progress 0, hiccups 0, step errors 0, maxPrep 66, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0 Peak sync jitter 0/11, peak Rx sync delay 207, resyncs 0/0, no step interrupt scheduled VIN voltage: min 48.0, current 48.1, max 48.1 V12 voltage: min 12.1, current 12.2, max 12.2 MCU temperature: min 33.1C, current 33.1C, max 33.9C Last sensors broadcast 0x00000000 found 0 161 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 7740, send timeouts 0, received 2897, lost 0, free buffers 37, min 37, error reg 0 dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 310, adv 35769/36259 12/31/2022, 11:19:04 AM M122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.5beta1 (2022-12-23 18:27:08) running on Duet 3 MB6HC v1.01 (SBC mode) Board ID: 08DJM-956L2-G43S8-6J1DJ-3SJ6N-980LG Used output buffers: 1 of 40 (17 max) === RTOS === Static ram: 151524 Dynamic ram: 74784 of which 0 recycled Never used RAM 121364, free system stack 154 words Tasks: SBC(ready,0.7%,458) HEAT(notifyWait,0.0%,321) Move(notifyWait,0.0%,255) CanReceiv(notifyWait,0.2%,763) CanSender(notifyWait,0.0%,335) CanClock(delaying,0.0%,340) TMC(notifyWait,7.8%,56) MAIN(running,91.0%,953) IDLE(ready,0.3%,30), total 100.0% Owned mutexes: HTTP(MAIN) === Platform === Last reset 00:09:06 ago, cause: software Last software reset at 2022-12-31 17:09, reason: User, Platform spinning, available RAM 121160, slot 0 Software reset code 0x6000 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a Error status: 0x00 Step timer max interval 786 MCU temperature: min 52.3, current 52.7, max 52.8 Supply voltage: min 23.8, current 23.9, max 23.9, 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 99/17, heap memory allocated/used/recyclable 2048/744/496, gc cycles 0 Events: 0 queued, 0 completed Driver 0: standstill, SG min n/a, mspos 4, reads 23289, writes 20 timeouts 0 Driver 1: standstill, SG min n/a, mspos 8, reads 23295, writes 14 timeouts 0 Driver 2: standstill, SG min n/a, mspos 8, reads 23295, writes 14 timeouts 0 Driver 3: standstill, SG min 43, mspos 8, reads 23284, writes 25 timeouts 0 Driver 4: standstill, SG min 84, mspos 8, reads 23284, writes 25 timeouts 0 Driver 5: standstill, SG min 85, mspos 8, reads 23284, writes 25 timeouts 0 Date/time: 2022-12-31 17:19:04 Slowest loop: 36.57ms; 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 6, maxWait 191256ms, bed compensation in use: none, comp offset 0.000 no step interrupt scheduled === DDARing 0 === Scheduled moves 31, completed 31, 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 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 Heater 1 is on, I-accum = 0.0 === GCodes === Movement locks held by null, 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 File2 is idle in state(s) 0 Queue2 is idle in state(s) 0 Q0 segments left 0, axes/extruders owned 0x1000003 Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === CAN === Messages queued 5059, received 17476, lost 0, boc 0 Longest wait 13ms for reply type 6018, peak Tx sync delay 445, free buffers 50 (min 46), ts 2731/2730/0 Tx timeouts 0,0,0,0,0,0 === SBC interface === Transfer state: 5, failed transfers: 0, checksum errors: 0 RX/TX seq numbers: 22960/22960 SPI underruns 0, overruns 0 State: 5, disconnects: 0, timeouts: 0 total, 0 by SBC, IAP RAM available 0x29b04 Buffer RX/TX: 0/0-0, open files: 0 === Duet Control Server === Duet Control Server version 3.5.0-b1 (2022-12-23 20:41:36) Failed to deserialize the following properties: - ModelCollection`1 -> Int32 from 0.030 Code buffer space: 4096 Configured SPI speed: 8000000Hz, TfrRdy pin glitches: 0 Full transfers per second: 42.28, max time between full transfers: 84.0ms, max pin wait times: 68.7ms/16.0ms Codes per second: 0.36 Maximum length of RX/TX data transfers: 7436/852
-
RE: [3.5beta1] Closed Loop Plugin Installation Error
@Sindarius Thanks! That's the version I was trying. It's mostly working quite well. I really can't imagine working with closed loop mode without it!
Preliminarily, I've got one issue, but I don't feel like I have it narrowed down enough yet to really make a good bug report.
I find that autotune will intermittently fail with the following:
- Start autotuning
- It will tune twice
- It will error out with,
TypeError: Cannot read properties of undefined (reading 'time')
The error is intermittent, and I haven't been able to recreate it recently. If I can figure out more, I'll let you know.
Thanks again for your hard work!
-
RE: Issues with pressure advance since RRF 3.4
@droftarts Yes, I've heard this before and followed this instruction.
First, I tuned IS with PA off, arriving at
M593 P"ei3" F42
.Second, I printed this calibration print with input shaping held constant and PA values varied from 0.00 at the far right (bottom of the print) to 0.14 at the far left, incrementing every 5mm.
Note how the pre- and post-seam artifact is not present when PA is zero on the right-hand side when PA is off. The artifact I am referring to the horizontal line / thin section that measures around 4mm before and after the seam, and the corners. It's present for any PA values from way too low to way too high as long as IS is enabled, and absent if PA is off. Apologies for my photography.
Did I misunderstand something? What else could I have done?
-
RE: Issues with pressure advance since RRF 3.4
@gnydick I've also seen issues with input shaping + pressure advance, though I'm always open to having done something wrong on my end. At the risk of hijacking a closely-related-but-not-quite-the-same thread, you can see the artifact show up as an indentation before and after turns in the photo below. I wasn't able to remove it with any amount of tuning.
- gcode here.
- Ringing tower model here.
- Config files for the machine when the above was printed in this commit. (Newer repo state is a bit different; I'm converting to closed loop.)
- If you want to re-slice for your machine, the PrusaSlicer layer change script, designed for 0.25mm layer height, is:
{if layer_num== 1} M593 P"none" ; no input shaping M572 D0 S0 ; no PA {elsif layer_num== 60} M593 P"ei3" F42 S0.1 ; enable input shaping M572 D0 S0 ; no PA {elsif layer_num== 120} M593 P"none" ; no input shaping M572 D0 S0.09 ; enable PA {elsif layer_num== 180} M593 P"ei3" F42 0.1 ; enable input shaping M572 D0 S0.09 ; enable PA {endif}
-
RE: Simplify3D v5 not turning on part cooling fan
I encountered this same issue as well. I re-ordered my fans in my printer's
config.g
so that fan 0 was the part fan.Alternately, there's a drop down in S3D so you can select the appropriate fan number:
I wish there were an option for the old behavior, though...
-
RE: [3.5beta1] Random SPI-Resets after update
I am also getting SPI resets with 3.5beta1.
Machine is a CoreXY with Duet 3 6HC + 2 x 1HCL in SBC mode with an RPi4.
Most recently, this happened after I had completed homing and closed loop tuning, then did a closed loop data capture with
M569.5 P51.0 S7500 A0 R5000 D783 V0 M98 P"0:/macros/MotionTest.g"
ThatMotionTest.g
file is:var speed = 99999 G1 X100 Y100 F{var.speed} G1 X200 Y100 F{var.speed} G1 X200 Y200 F{var.speed} G1 X100 Y200 F{var.speed} G1 X100 Y100 F{var.speed}
M122 Main Board:
=== Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.5beta1 (2022-12-23 18:27:08) running on Duet 3 MB6HC v1.01 (SBC mode) Board ID: 08DJM-956L2-G43S8-6J1DJ-3SJ6N-980LG Used output buffers: 1 of 40 (17 max) === RTOS === Static ram: 151524 Dynamic ram: 74328 of which 16 recycled Never used RAM 121948, free system stack 200 words Tasks: SBC(ready,0.7%,436) HEAT(notifyWait,0.0%,321) Move(notifyWait,0.0%,350) CanReceiv(notifyWait,0.0%,796) CanSender(notifyWait,0.0%,335) CanClock(delaying,0.0%,340) TMC(notifyWait,7.6%,90) MAIN(running,91.3%,953) IDLE(ready,0.4%,30), total 100.0% Owned mutexes: HTTP(MAIN) === Platform === Last reset 00:01:39 ago, cause: software Last software reset at 2022-12-28 01:16, reason: User, Platform spinning, available RAM 121412, slot 2 Software reset code 0x6000 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a Error status: 0x00 Step timer max interval 135 MCU temperature: min 51.4, current 51.6, max 51.9 Supply voltage: min 23.8, current 23.9, max 23.9, 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/15, heap memory allocated/used/recyclable 2048/328/96, gc cycles 0 Events: 0 queued, 0 completed Driver 0: standstill, SG min n/a, mspos 4, reads 33107, writes 20 timeouts 0 Driver 1: standstill, SG min n/a, mspos 8, reads 33113, writes 14 timeouts 0 Driver 2: standstill, SG min n/a, mspos 8, reads 33113, writes 14 timeouts 0 Driver 3: standstill, SG min n/a, mspos 8, reads 33107, writes 20 timeouts 0 Driver 4: standstill, SG min n/a, mspos 8, reads 33107, writes 20 timeouts 0 Driver 5: standstill, SG min n/a, mspos 8, reads 33107, writes 20 timeouts 0 Date/time: 2022-12-28 01:18:03 Slowest loop: 1.54ms; fastest: 0.06ms === 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 no step interrupt scheduled === 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 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 Heater 1 is on, I-accum = 0.0 === GCodes === Movement locks held by null, 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 File2 is idle in state(s) 0 Queue2 is idle in state(s) 0 Q0 segments left 0, axes/extruders owned 0x1000003 Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === CAN === Messages queued 908, received 3223, lost 0, boc 0 Longest wait 1ms for reply type 6042, peak Tx sync delay 435, free buffers 50 (min 49), ts 500/499/0 Tx timeouts 0,0,0,0,0,0 === SBC interface === Transfer state: 5, failed transfers: 0, checksum errors: 0 RX/TX seq numbers: 6086/3918 SPI underruns 0, overruns 0 State: 5, disconnects: 0, timeouts: 0 total, 0 by SBC, IAP RAM available 0x29b04 Buffer RX/TX: 0/0-0, open files: 0 === Duet Control Server === Duet Control Server version 3.5.0-b1 (2022-12-23 20:41:36) Failed to deserialize the following properties: - ModelCollection`1 -> Int32 from 0.030 Code buffer space: 4096 Configured SPI speed: 8000000Hz, TfrRdy pin glitches: 1 Full transfers per second: 41.18, max time between full transfers: 136.6ms, max pin wait times: 1005.5ms/16.1ms Codes per second: 1.47 Maximum length of RX/TX data transfers: 8176/828
M122 First 1HCL:
Diagnostics for board 50: Duet EXP1HCL firmware version 3.5beta1 (2022-12-23 18:43:49) Bootloader ID: SAME5x bootloader version 2.4 (2021-12-10) All averaging filters OK Never used RAM 52392, free system stack 200 words Tasks: Move(notifyWait,0.0%,162) HEAT(notifyWait,0.0%,95) CanAsync(notifyWait,0.0%,70) CanRecv(notifyWait,0.0%,81) CanClock(notifyWait,0.0%,72) TMC(notifyWait,31.6%,351) CLSend(notifyWait,0.0%,152) MAIN(running,66.4%,413) IDLE(ready,0.0%,40) AIN(notifyWait,1.9%,265), total 100.0% Last reset 00:04:34 ago, cause: software Last software reset data not available Closed loop enabled: no, pre-error threshold: 1.00, error threshold: 2.00, encoder type rotaryQuadrature, position 0 Encoder reverse polarity: no, raw count 0 Driver 0: pos 0, 160.0 steps/mm,standstill, SG min n/a, mspos 316, reads 37415, writes 23 timeouts 0, steps req 0 done 0 Moves scheduled 0, completed 0, in progress 0, hiccups 0, step errors 0, maxPrep 0, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0 Peak sync jitter 2/10, peak Rx sync delay 179, resyncs 0/0, no step interrupt scheduled VIN voltage: min 48.1, current 48.1, max 48.1 V12 voltage: min 12.1, current 12.1, max 12.2 MCU temperature: min 29.1C, current 29.1C, max 31.4C Last sensors broadcast 0x00000000 found 0 178 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 2224, send timeouts 0, received 2475, lost 0, free buffers 37, min 37, error reg 10000 dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 0
M122 Second 1HCL:
Diagnostics for board 51: Duet EXP1HCL firmware version 3.5beta1 (2022-12-23 18:43:49) Bootloader ID: SAME5x bootloader version 2.4 (2021-12-10) All averaging filters OK Never used RAM 52392, free system stack 192 words Tasks: Move(notifyWait,0.0%,162) HEAT(notifyWait,0.0%,108) CanAsync(notifyWait,0.0%,70) CanRecv(notifyWait,0.0%,81) CanClock(notifyWait,0.0%,72) TMC(notifyWait,31.7%,351) CLSend(notifyWait,0.0%,152) MAIN(running,66.4%,431) IDLE(ready,0.0%,40) AIN(notifyWait,1.9%,265), total 100.0% Last reset 00:05:06 ago, cause: software Last software reset data not available Closed loop enabled: no, pre-error threshold: 1.00, error threshold: 2.00, encoder type rotaryQuadrature, position 0 Encoder reverse polarity: no, raw count 0 Driver 0: pos 0, 160.0 steps/mm,standstill, SG min n/a, mspos 4, reads 58812, writes 23 timeouts 0, steps req 0 done 0 Moves scheduled 0, completed 0, in progress 0, hiccups 0, step errors 0, maxPrep 0, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0 Peak sync jitter 1/11, peak Rx sync delay 182, resyncs 0/0, no step interrupt scheduled VIN voltage: min 48.0, current 48.0, max 48.1 V12 voltage: min 12.1, current 12.1, max 12.1 MCU temperature: min 33.0C, current 33.0C, max 36.0C Last sensors broadcast 0x00000000 found 0 136 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 2480, send timeouts 0, received 2766, lost 0, free buffers 37, min 37, error reg 0 dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 0
...and it happened again. Here's another set of
M122
s in case they help:12/27/2022, 9:45:05 PM M122 B51 Diagnostics for board 51: Duet EXP1HCL firmware version 3.5beta1 (2022-12-23 18:43:49) Bootloader ID: SAME5x bootloader version 2.4 (2021-12-10) All averaging filters OK Never used RAM 52392, free system stack 200 words Tasks: Move(notifyWait,0.0%,162) HEAT(notifyWait,0.0%,108) CanAsync(notifyWait,0.0%,70) CanRecv(notifyWait,0.0%,81) CanClock(notifyWait,0.0%,72) TMC(notifyWait,31.5%,351) CLSend(notifyWait,0.0%,152) MAIN(running,66.6%,411) IDLE(ready,0.0%,40) AIN(notifyWait,1.9%,265), total 100.0% Last reset 00:00:48 ago, cause: software Last software reset data not available Closed loop enabled: no, pre-error threshold: 1.00, error threshold: 2.00, encoder type rotaryQuadrature, position 0 Encoder reverse polarity: no, raw count 0 Driver 0: pos 0, 640.0 steps/mm,standstill, SG min n/a, mspos 519, reads 36961, writes 23 timeouts 0, steps req 0 done 0 Moves scheduled 0, completed 0, in progress 0, hiccups 0, step errors 0, maxPrep 0, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0 Peak sync jitter 2/11, peak Rx sync delay 184, resyncs 0/0, no step interrupt scheduled VIN voltage: min 48.0, current 48.0, max 48.1 V12 voltage: min 12.1, current 12.1, max 12.1 MCU temperature: min 36.0C, current 36.0C, max 36.9C Last sensors broadcast 0x00000000 found 0 75 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 416, send timeouts 0, received 439, lost 0, free buffers 37, min 37, error reg 0 dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 0 12/27/2022, 9:44:58 PM M122 B50 Diagnostics for board 50: Duet EXP1HCL firmware version 3.5beta1 (2022-12-23 18:43:49) Bootloader ID: SAME5x bootloader version 2.4 (2021-12-10) All averaging filters OK Never used RAM 52392, free system stack 200 words Tasks: Move(notifyWait,0.0%,162) HEAT(notifyWait,0.0%,108) CanAsync(notifyWait,0.0%,70) CanRecv(notifyWait,0.0%,81) CanClock(notifyWait,0.0%,72) TMC(notifyWait,31.5%,351) CLSend(notifyWait,0.0%,152) MAIN(running,66.6%,409) IDLE(ready,0.0%,40) AIN(notifyWait,1.9%,265), total 100.0% Last reset 00:00:41 ago, cause: software Last software reset data not available Closed loop enabled: no, pre-error threshold: 1.00, error threshold: 2.00, encoder type rotaryQuadrature, position 0 Encoder reverse polarity: no, raw count 0 Driver 0: pos 0, 640.0 steps/mm,standstill, SG min n/a, mspos 363, reads 60810, writes 23 timeouts 0, steps req 0 done 0 Moves scheduled 0, completed 0, in progress 0, hiccups 0, step errors 0, maxPrep 0, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0 Peak sync jitter 0/10, peak Rx sync delay 180, resyncs 0/0, no step interrupt scheduled VIN voltage: min 48.1, current 48.1, max 48.1 V12 voltage: min 12.1, current 12.2, max 12.2 MCU temperature: min 31.4C, current 31.4C, max 32.1C Last sensors broadcast 0x00000000 found 0 54 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 366, send timeouts 0, received 383, lost 0, free buffers 37, min 37, error reg 0 dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 0 12/27/2022, 9:44:29 PM M122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.5beta1 (2022-12-23 18:27:08) running on Duet 3 MB6HC v1.01 (SBC mode) Board ID: 08DJM-956L2-G43S8-6J1DJ-3SJ6N-980LG Used output buffers: 1 of 40 (17 max) === RTOS === Static ram: 151524 Dynamic ram: 74328 of which 16 recycled Never used RAM 121948, free system stack 200 words Tasks: SBC(ready,0.7%,477) HEAT(notifyWait,0.0%,327) Move(notifyWait,0.0%,350) CanReceiv(notifyWait,0.0%,822) CanSender(notifyWait,0.0%,335) CanClock(delaying,0.0%,340) TMC(notifyWait,7.5%,90) MAIN(running,87.8%,953) IDLE(ready,3.9%,30), total 100.0% Owned mutexes: HTTP(MAIN) === Platform === Last reset 00:00:12 ago, cause: software Last software reset at 2022-12-28 03:44, reason: User, GCodes spinning, available RAM 121320, slot 0 Software reset code 0x6003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0044a000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a Error status: 0x00 Step timer max interval 133 MCU temperature: min 51.8, current 52.2, max 52.3 Supply voltage: min 23.8, current 23.9, max 23.9, 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 99/15, heap memory allocated/used/recyclable 2048/328/96, gc cycles 0 Events: 0 queued, 0 completed Driver 0: standstill, SG min n/a, mspos 4, reads 3909, writes 20 timeouts 0 Driver 1: standstill, SG min n/a, mspos 8, reads 3915, writes 14 timeouts 0 Driver 2: standstill, SG min n/a, mspos 520, reads 3915, writes 14 timeouts 0 Driver 3: standstill, SG min n/a, mspos 8, reads 3909, writes 20 timeouts 0 Driver 4: standstill, SG min n/a, mspos 8, reads 3909, writes 20 timeouts 0 Driver 5: standstill, SG min n/a, mspos 8, reads 3909, writes 20 timeouts 0 Date/time: 2022-12-28 03:44:29 Slowest loop: 1.50ms; fastest: 0.06ms === 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 no step interrupt scheduled === 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 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 Heater 1 is on, I-accum = 0.0 === GCodes === Movement locks held by null, 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 File2 is idle in state(s) 0 Queue2 is idle in state(s) 0 Q0 segments left 0, axes/extruders owned 0x1000003 Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === CAN === Messages queued 122, received 266, lost 0, boc 0 Longest wait 1ms for reply type 6042, peak Tx sync delay 436, free buffers 50 (min 49), ts 63/62/0 Tx timeouts 0,0,0,0,0,0 === SBC interface === Transfer state: 5, failed transfers: 0, checksum errors: 0 RX/TX seq numbers: 36104/529 SPI underruns 0, overruns 0 State: 5, disconnects: 0, timeouts: 0 total, 0 by SBC, IAP RAM available 0x29b04 Buffer RX/TX: 0/0-0, open files: 0 === Duet Control Server === Duet Control Server version 3.5.0-b1 (2022-12-23 20:41:36) Failed to deserialize the following properties: - ModelCollection`1 -> Int32 from 0.030 Code buffer space: 4096 Configured SPI speed: 8000000Hz, TfrRdy pin glitches: 1 Full transfers per second: 47.41, max time between full transfers: 597.4ms, max pin wait times: 74.6ms/10.1ms Codes per second: 0.50 Maximum length of RX/TX data transfers: 8184/828
-
RE: [3.5beta1] Closed Loop Plugin Installation Error
FYI, I was able to get around this by following these instructions from the v3.3.0 release notes:
Plugin support is now enabled but requires some extra steps before they can be installed. Execute the following commands in a Linux terminal:
- Install AppArmor package:
sudo apt install apparmor
- Enable AppArmor support on boot:
sudo bash -c 'echo " lsm=apparmor" >> /boot/cmdline.txt'
- Enable new plugin services:
sudo systemctl enable duetpluginservice && sudo systemctl enable duetpluginservice-root
- Reboot the SBC to apply the changes:
sudo reboot
Now I'm getting a different error during autotuning (
TypeError: Cannot read properties of undefined (reading 'time')
), but I'll keep at it and open another ticket if I can't figure it out... - Install AppArmor package:
-
[3.5beta1] Closed Loop Plugin Installation Error
I'm trying to to install the most recent version of the Closed Loop Plugin,
v3.5.0-b1
. I had two issues. Got over the first one and I'm stuck on the second.First, I received an error about dependencies:
The README says that the minimum version required is 3.3.0 and I was on 3.4.5. Since the latest version of the plugin is
v3.5.0-b1
, I went ahead, switched to the Duet unstable channel, and updated my boards firmware and DSF to v3.5.0-b1 to match. No big deal, docs could just use a minor tweak.Second, trying to install the plugin after updating to 3.5.0 b1, I get:
In the browser console, the error is,
RestConnector.ts:195 PUT http://railcore/machine/plugin 500 (Internal Server Error) PluginInstallDialog.vue?3153:211 Error: Operation failed (Reason: InvalidOperationException in InstallPlugin: Cannot perform command because the plugin service is not started) at new ExtendableBuiltin (app.d5085d2f.js:1:289768) at new NetworkError (errors.ts:24:3) at new OperationFailedError (errors.ts:50:3) at ce.onload (RestConnector.ts:179:13)
Other plugins, like Height Map, G-Code Viewer, and Object Model Browser are running fine.
I'm running a Duet 3 6HC + 2x 1HCL in SBC mode with a Raspberry Pi 4.
-
1HCL Max CPR/PPR?
The 1HCL documentation says it, "works with common 5V, 1000CPR-2500CPR optical encoders..." Is that a hard limit?
I recently stumbled upon some Trinamic TMCS-40-10K, which the spec sheet says are, "10.000 lines (40.000 counts)." Will that be too much for the 1HCL?
Thanks in advance --
-
RE: Input Shaping + Pressure Advance Artifact
@egon-net I put this one down and figure I'll get back to it. I assume I'm doing something dumb somewhere.
In the meantime, I've got an accelerometer and cabling in the mail. I've been tuning manually by printing calibration towers and such, but I figure I should try the more rigorous approach eventually. I've also been tuning other elements of my printer. If you look closely, even the "good" prints above have some artifacts and could be better.
I'll probably revisit input shaping eventually, and I hope to be in the best possible place for it to succeed when I do.
-
RE: Input Shaping + Pressure Advance Artifact
Try as I might, I can't get rid of these artifacts with any combination of IS and PA options.
Here's how it shows up in real prints. Note the gaps where it looks like some segments of certain layers just didn't print.
Here's a comparison with input shaping enabled + pressure advance enabled on the left (
M593 P"ei2" F42.0
+M572 D0 S0.09
); and only PA enabled on the right (M593 P"none"
+M572 D0 S0.07
). Same filament, gcode, printer, etc. Printed back to back, didn't even restart or re-home the printer. The one with IS disabled is fine.Is anyone out there using both input shaping and pressure advance at the same time with v3.4.0?
-
RE: Input Shaping + Pressure Advance Artifact
@mikeabuilder said in Input Shaping + Pressure Advance Artifact:
Both Input Shaping and Pressure Advance affect the flow of the extrusion at corners, so they both need to be adjusted at the same time to get a good setting. The IS documentation suggests adjusting adjusting Pressure Advance after IS. In my case, I liked a PA setting of 0.1 without Input Shaping, and 0.08 after I selected IS parameters.
Indeedy, you can see that happening in the second photo above. I first found good settings for input shaping, and then printed a PA calibration piece. That's a range of PA values with input shaping held constant. The same artifact shows up on the whole set of PA values from way too little (right) to way too much (left). But when PA is 0 (right edge), it's gone. For what it's worth, I've settled on a PA value of 0.09 with input shaping enabled, and 0.07 with it disabled.
For reference, the input shaping configuration I'm currently using is
M593 P"ei3" F42.0 S0.1
.I'll try and get some photos of a print holding PA constant but printing through a range of input shaping frequencies. The ridge is closer to the seam/turn with lower frequencies, and further away with higher frequencies. I've gone from 10Hz to over 100Hz, and it's always there. The damping parameter makes no difference to the artifact, nor does the PA value.
The above were printed with the EI3 shaper. I'll try others soon. I've primarily focused on the EI2 and EI3 shapers since I have different resonant frequencies on the X and Y axes of my CoreXY printer. With 30-something Hz resonance on one axis and 50-something on the other, I can get pretty decent results with a shaping frequency in the low 40's using EI3.