RRF 3.4 input shaping preview available
-
I have now updated the binaries at https://www.dropbox.com/sh/l020weqx7pijv84/AACFM3knhVXQ1hKu6NyKOfx6a?dl=0. These fix the bug that gave step errors when running one of my tests prints, so they may well fix the main issues that other users found when using the binaries that I posted yesterday. I also found and fixed a less serious bug that sometimes caused an incorrect amount of extruder retraction at the end of a move, when medium to large values of pressure advance were used.
-
@dc42 Tried the new firmware, did a full power cycle after installing just in case. Had same clunking noise on printing a calibration cube on the infill. I discovered disabling pressure advance caused it to stop clunking.
Normally I have S 0.12 for PA, with a little experimentation anything at 0.4 or above (ish) seems to cause the clunking noise. If there's specific debug that would help with this, I can try and gather it.
-
@skrotz thanks. I've only tried pressure advance up to 0.2. It sounds like I have a little more work to do to get it right.
After you have run a print with high PA and had the clunking, does M122 report any step errors in the MainDDARing debug?
-
@skrotz PS - is your extruder drive connected to the main board, or to a CAN-connected expansion or tool board?
-
Last update for tonight. I've updated the binaries at https://www.dropbox.com/sh/l020weqx7pijv84/AACFM3knhVXQ1hKu6NyKOfx6a?dl=0 once more:
-
These binaries are based on RRF 3.4.0beta1. This means that if you want use them with attached SBC, you must first upgrade to 3.4.0beta1 from the unstable feed on the package server; and then upgrade to the input shaping RRF binary. The benefit is that you will be able to collect data from an accelerometer if you have one. If necessary you can downgrade later to the standard RRF 3.4.0beta1 binary from https://github.com/Duet3D/RepRapFirmware/releases/tag/3.4.0beta1.
-
I fixed a bug that caused extrusion to be inaccurate when the extruder was driven from a CAN-connected tool or expansion board.
-
-
@dc42 said in RRF 3.4 input shaping preview available:
Last update for tonight. I've updated the binaries at https://www.dropbox.com/sh/l020weqx7pijv84/AACFM3knhVXQ1hKu6NyKOfx6a?dl=0 once more:
-
These binaries are based on RRF 3.4.0beta1. This means that if you want use them with attached SBC, you must first upgrade to 3.4.0beta1 from the unstable feed on the package server; and then upgrade to the input shaping RRF binary. The benefit is that you will be able to collect data from an accelerometer if you have one. If necessary you can downgrade later to the standard RRF 3.4.0beta1 binary from https://github.com/Duet3D/RepRapFirmware/releases/tag/3.4.0beta1.
-
I fixed a bug that caused extrusion to be inaccurate when the extruder was driven from a CAN-connected tool or expansion board.
You're too quick on the updates!
Was testing your previous update,'none', 'zvd', 'zvdd', 'EI2', and 'EI3' all work as expected. 'daa' does some wonky movement - unfortunately I mistakenly cleared out the terminal logs, so I'll retest 'daa' on your newest version hopefully sometime soon.
-
-
@sebkritikel thanks for testing it. DAA uses a different section of code from the other methods, so it could quite easily have different bugs. I'll quite likely remove support for DAA if the other methods turn out to be better, as I expect.
-
@dc42 So far I have found as soon as DAA is enabled I get a massive layer shift and it stops extruding.
Currently testing other modes as I had DAA first.'Board: Duet 2 WiFi (2WiFi)
Firmware: RepRapFirmware for Duet 2 WiFi/Ethernet 3.4.0beta1-inputshaping (2021-07-10)
Duet WiFi Server Version: 1.26M122 === Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 3.4.0beta1-inputshaping (2021-07-10 20:57:53) running on Duet WiFi 1.02 or later Board ID: 08DGM-917NK-F2MS4-7J1DA-3S86T-TZTWD Used output buffers: 3 of 24 (24 max) === RTOS === Static ram: 23932 Dynamic ram: 79088 of which 208 recycled Never used RAM 5684, free system stack 112 words Tasks: NETWORK(ready,24.2%,237) ACCEL(notifyWait,0.0%,348) HEAT(delaying,0.0%,326) Move(notifyWait,0.1%,283) MAIN(running,69.0%,420) IDLE(ready,6.6%,29), total 100.0% Owned mutexes: === Platform === Last reset 01:27:13 ago, cause: software Last software reset at 2021-07-10 20:15, reason: User, GCodes spinning, available RAM 8456, slot 2 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x0e Aux0 errors 0,0,0 Step timer max interval 0 MCU temperature: min 17.8, current 18.1, max 18.6 Supply voltage: min 24.1, current 24.2, max 24.4, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 99/16, heap memory allocated/used/recyclable 2048/2032/1806, gc cycles 9 Driver 0: position 2996, standstill, SG min/max not available Driver 1: position 3081, standstill, SG min/max 0/555 Driver 2: position 14, standstill, SG min/max 0/130 Driver 3: position 0, standstill, SG min/max not available Driver 4: position 0, standstill, SG min/max 0/160 Driver 5: position 0 Driver 6: position 0 Driver 7: position 0 Driver 8: position 0 Driver 9: position 0 Driver 10: position 0 Driver 11: position 0 Date/time: 2021-07-11 09:22:19 Cache data hit count 4294967295 Slowest loop: 8.78ms; fastest: 0.12ms I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 === Storage === Free file entries: 8 SD card 0 detected, interface speed: 20.0MBytes/sec SD card longest read time 1.7ms, write time 0.0ms, max retries 0 === Move === DMs created 83, segments created 13, maxWait 91990ms, bed compensation in use: mesh, comp offset 0.000 === MainDDARing === Scheduled moves 199, completed moves 196, hiccups 5, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state 3 === 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, chamberHeaters = -1 -1 -1 -1 Heater 0 is on, I-accum = 0.2 Heater 1 is on, I-accum = 0.3 === GCodes === Segments left: 1 Movement lock held by null HTTP is idle in state(s) 0 Telnet is idle in state(s) 0 File is doing "G1 X151.413 Y31.057 E0.04606" 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 Daemon is idle in state(s) 0 0, running macro Autopause is idle in state(s) 0 Code queue is empty. === Filament sensors === Extruder 0 sensor: ok === Network === Slowest loop: 201.15ms; fastest: 0.09ms Responder states: HTTP(2) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(1), 1 sessions HTTP sessions: 2 of 8 - WiFi - Network state is active WiFi module is connected to access point Failed messages: pending 0, notready 0, noresp 3 WiFi firmware version 1.26 WiFi MAC address bc:dd:c2:89:a0:bb WiFi Vcc 3.37, reset reason Power up WiFi flash size 4194304, free heap 22112 WiFi IP address 192.168.1.163 WiFi signal strength -61dBm, mode 802.11n, reconnections 0, sleep mode modem Clock register 00002002 Socket states: 2 0 4 4 0 0 0 0
-
Can confirm all other input shaping modes worked but daa causes step loss every time.
Also stops extruding for some reason.
M122 after canceling11/07/2021, 1:27:54 pm M122 === Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 3.4.0beta1-inputshaping (2021-07-10 20:57:53) running on Duet WiFi 1.02 or later Board ID: 08DGM-917NK-F2MS4-7J1DA-3S86T-TZTWD Used output buffers: 4 of 24 (24 max) === RTOS === Static ram: 23932 Dynamic ram: 79088 of which 16 recycled Never used RAM 5156, free system stack 108 words Tasks: NETWORK(ready,168.2%,229) ACCEL(notifyWait,0.0%,348) HEAT(delaying,0.3%,326) Move(notifyWait,1.0%,299) MAIN(running,220.9%,420) IDLE(ready,61.3%,29), total 451.7% Owned mutexes: WiFi(NETWORK) === Platform === Last reset 02:54:25 ago, cause: power up Last software reset at 2021-07-11 09:24, reason: User, GCodes spinning, available RAM 5684, slot 0 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x0e Aux0 errors 0,0,0 Step timer max interval 0 MCU temperature: min 16.7, current 24.0, max 26.3 Supply voltage: min 24.1, current 24.3, max 24.5, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 99/16, heap memory allocated/used/recyclable 2048/1656/1430, gc cycles 17 Driver 0: position 0, standstill, SG min/max 0/582 Driver 1: position 20000, standstill, SG min/max 0/1023 Driver 2: position 24864, standstill, SG min/max 0/648 Driver 3: position 0, standstill, SG min/max 0/1023 Driver 4: position 0, standstill, SG min/max 0/1023 Driver 5: position 0 Driver 6: position 0 Driver 7: position 0 Driver 8: position 0 Driver 9: position 0 Driver 10: position 0 Driver 11: position 0 Date/time: 2021-07-11 13:27:49 Cache data hit count 4294967295 Slowest loop: 318.94ms; fastest: 0.12ms I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 === Storage === Free file entries: 9 SD card 0 detected, interface speed: 20.0MBytes/sec SD card longest read time 2.3ms, write time 91.9ms, max retries 0 === Move === DMs created 83, segments created 43, maxWait 158450ms, bed compensation in use: mesh, comp offset 0.000 === MainDDARing === Scheduled moves 28342, completed moves 28342, hiccups 0, stepErrors 5, LaErrors 0, Underruns [0, 0, 3], 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, chamberHeaters = -1 -1 -1 -1 === GCodes === Segments left: 0 Movement lock held by null HTTP is idle in state(s) 0 Telnet is idle in state(s) 0 File is idle in state(s) 0 USB is idle in state(s) 0 Aux is idle in state(s) 0 Trigger is idle in state(s) 0 Queue is idle in state(s) 0 LCD is idle in state(s) 0 Daemon is idle in state(s) 0 0, running macro Autopause is idle in state(s) 0 Code queue is empn state(s) 0 Trigger is idle in state(s) 0 Queue is idle in state(s) 0 LCD is idle in state(s) 0 Daemon is idle in state(s) 0 0, running macro Autopause is idle in state(s) 0 Code queue is empty. === Filament sensors === Extruder 0 sensor: ok === Network =essions: 2 of 8 - WiFi - Network state is active WiFi module is connected to access point Failed messages: pending 0, notready 0, noresp 0 WiFi firmware version 1.26 WiFi MAC address bc:dd:c2:89:a0:bb WiFi Vcc 3.38, reset reason Turned on by main processor WiFi flash size 4194304, free heap 23688 WiFi IP address 192.168.1.163 WiFi signal strength -65dBm, mode 802.11n, reconnections 0, sleep mo
-
@owend I confirm there is a bug in the implementation of DAA. I hope to get time to fix it today.
-
I have updated the binaries at https://www.dropbox.com/sh/l020weqx7pijv84/AACFM3knhVXQ1hKu6NyKOfx6a?dl=0 again:
- Fixed a bug that caused incorrect movements when DAA input shaping was selected
- Fixed a bug that sometimes caused incorrect extrusion on CAN-connected extruders when pressure advance was used
- Fixed a bug that caused a filament error pause to lock up if the pause.g file used certain commands in combination, e.g. a M106 command followed by a tool change
- Increased Duet 3 MB6HC Ethernet task stack size by 50 words
- Fixed a bug that caused a crash when the slicer labeled objects using M486 and there were more than 20 (Duet 2) or 40 (Duet 3) objects on the build plate. Unlike the other ones, this bug is also present in RRF 3.3 stable and 3.4.0beta1.
I have tested that movement with DAA enabled is now working; however on my delta printer, when printing the test piece it's much less effective at reducing ringing than the other shaping methods. I have also tested with pressure advance set to 0.5.
-
@dc42
I got Duet3 + toolboard ver1.1 installed - Today i have upgraded to 3.4.0beta1-inputshaping (2021-07-11) - i have then used latest binaries to be able use accelerometer in SBC configuration. -when i try to G1 X-50 G4 S2 M956 P121.0 S1000 A0 G4 P10 G1 X50 F20000 i received Error: M956: Accelerometer not found but when i send M120 B121 in response i got : Accelerometer detected: yes, status: 00
Is this got any thing to toolboard still being: Duet TOOL1LC firmware version 3.3 (2021-06-15 16:12:58)? is there any files to upgrade TOOL1LC to 3.4 firmware? -
@cadetc you don't need to upgrade the tool board firmware. I assume you have verified that you are running DSF 3.4.0b1 on the Pi. We are looking into a possible cause of the problem you are having with M956.
-
@dc42
Info copied from DWC : Machine specific-General :
Board: Duet 3 MB6HC (MB6HC)
DSF Version: 3.4-b1
Firmware: RepRapFirmware for Duet 3 MB6HC 3.4.0beta1-inputshaping (2021-07-11)Thanks,
-
@dc42 here the same error , accelerometer detected but when trying to perform a data collect, it says acceleromter not found
m122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.4.0beta1 (2021-07-10 16:20:28) running on Duet 3 MB6HC v1.01 or later (SBC mode) Board ID: 08DJM-956BA-NA3TN-6J9DL-3S46S-99AUT Used output buffers: 1 of 40 (10 max) === RTOS === Static ram: 150904 Dynamic ram: 62912 of which 24 recycled Never used RAM 140352, free system stack 146 words Tasks: SBC(ready,0.7%,308) HEAT(delaying,0.0%,325) Move(notifyWait,0.0%,266) CanReceiv(notifyWait,0.0%,774) CanSender(notifyWait,0.0%,374) CanClock(delaying,0.0%,339) TMC(notifyWait,7.4%,59) MAIN(running,91.8%,922) IDLE(ready,0.0%,29), total 100.0% Owned mutexes: HTTP(MAIN) === Platform === Last reset 00:40:04 ago, cause: software Last software reset at 2021-07-11 15:33, reason: User, none spinning, available RAM 137420, slot 0 Software reset code 0x0012 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0044a000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a Error status: 0x00 Step timer max interval 172 MCU temperature: min 31.1, current 33.9, max 47.4 Supply voltage: min 24.0, current 24.1, max 24.1, 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 Driver 0: position 41808, standstill, reads 41390, writes 20 timeouts 0, SG min/max 0/425 Driver 1: position -25728, standstill, reads 41390, writes 20 timeouts 0, SG min/max 0/995 Driver 2: position 3893, standstill, reads 41390, writes 20 timeouts 0, SG min/max 0/852 Driver 3: position 0, standstill, reads 41391, writes 20 timeouts 0, SG min/max 0/280 Driver 4: position 0, standstill, reads 41391, writes 20 timeouts 0, SG min/max 0/825 Driver 5: position 0, standstill, reads 41399, writes 12 timeouts 0, SG min/max 0/0 Date/time: 2021-07-11 16:13:58 Slowest loop: 56.12ms; 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, maxWait 1844035ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 13, completed moves 13, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 1], 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 = 2 -1 -1 -1 Heater 1 is on, I-accum = 0.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. === Filament sensors === Extruder 0: no data received === CAN === Messages queued 21655, received 30029, lost 0, longest wait 5ms for reply type 6024, peak Tx sync delay 169, free buffers 49 (min 48), ts 12021/12020/0 Tx timeouts 0,0,0,0,0,0 === SBC interface === State: 4, failed transfers: 0, checksum errors: 0 Last transfer: 2ms ago RX/TX seq numbers: 29527/29527 SPI underruns 0, overruns 0 Disconnects: 0, timeouts: 0, IAP RAM available 0x2c7a4 Buffer RX/TX: 0/0-0 === Duet Control Server === Duet Control Server v3.4-b1 Code buffer space: 4096 Configured SPI speed: 8000000Hz Full transfers per second: 39.59, max wait times: 49.2ms/0.0ms Codes per second: 0.04 Maximum length of RX/TX data transfers: 3196/800 m122 b121 Diagnostics for board 121: Duet TOOL1LC firmware version 3.3 (2021-06-15 16:12:58) Bootloader ID: SAMC21 bootloader version 2.3 (2021-01-26b1) Never used RAM 2108, free system stack 2789 words Tasks: Move(notifyWait,0.0%,153) HEAT(delaying,0.2%,117) CanAsync(notifyWait,0.0%,65) CanRecv(notifyWait,0.0%,76) CanClock(notifyWait,0.0%,65) ACCEL(notifyWait,0.0%,61) TMC(notifyWait,2.8%,57) MAIN(running,92.0%,352) IDLE(ready,0.0%,27) AIN(delaying,4.9%,142), total 100.0% Last reset 00:01:14 ago, cause: VDD brownout Last software reset data not available Driver 0: position 0, 859.0 steps/mm, standstill, SG min/max 0/0, read errors 0, write errors 0, ifcnt 11, reads 18391, writes 0, timeouts 0, DMA errors 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/5, peak Rx sync delay 192, resyncs 0/0, no step interrupt scheduled VIN: 24.4V MCU temperature: min 37.5C, current 39.0C, max 39.0C Ticks since heat task active 2, ADC conversions started 74496, completed 74495, timed out 0, errs 0 Last sensors broadcast 0x00000002 found 1 6 ticks ago, loop time 0 CAN messages queued 492, send timeouts 0, received 339, lost 0, free buffers 37, min 37, error reg 0 dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 0 Accelerometer detected: yes, status: 00 I2C bus errors 0, naks 0, other errors 0 === Filament sensors === Interrupt 5726621 to 0us, poll 9 to 432us Driver 0: no data received, errs: frame 0 parity 0 ovrun 0 pol 0 ovdue 0 m122 b121 Diagnostics for board 121: Duet TOOL1LC firmware version 3.3 (2021-06-15 16:12:58) Bootloader ID: SAMC21 bootloader version 2.3 (2021-01-26b1) Never used RAM 2108, free system stack 2789 words Tasks: Move(notifyWait,0.0%,153) HEAT(delaying,0.2%,113) CanAsync(notifyWait,0.0%,61) CanRecv(notifyWait,0.0%,76) CanClock(notifyWait,0.0%,65) ACCEL(notifyWait,0.0%,61) TMC(delaying,2.8%,57) MAIN(running,92.0%,352) IDLE(ready,0.0%,27) AIN(delaying,4.9%,142), total 100.0% Last reset 00:43:34 ago, cause: software Last software reset data not available Driver 0: position 0, 859.0 steps/mm, standstill, SG min/max 0/0, read errors 0, write errors 0, ifcnt 23, reads 5309, writes 0, timeouts 0, DMA errors 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/6, peak Rx sync delay 212, resyncs 0/0, no step interrupt scheduled VIN: 24.4V MCU temperature: min 38.8C, current 40.0C, max 40.3C Ticks since heat task active 129, ADC conversions started 2614124, completed 2614122, timed out 0, errs 0 Last sensors broadcast 0x00000002 found 1 134 ticks ago, loop time 0 CAN messages queued 8362, send timeouts 0, received 6006, lost 0, free buffers 37, min 37, error reg 0 dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 0 Accelerometer detected: yes, status: 00 I2C bus errors 0, naks 0, other errors 0 === Filament sensors === Interrupt 5726621 to 0us, poll 9 to 433us Driver 0: no data received, errs: frame 0 parity 0 ovrun 0 pol 0 ovdue 0
regards
-
@frederik thanks, we have identified the cause. Fixing it will require a change to DSF on the Pi.
Meanwhile, you should be able to send the command to the Duet from an attached PanelDue if you have one, or via USB.
-
Measurement without input shaping (Y axis):
With ZVD input shaping:
The print results to also show that it is working.
I also have no issues with PA nor was it necessary to recalibrate PA.Is it planned to to be able to use different shapers and frequencies per axis or to use an "automatic frequency and shaper finder" in conjunction with the accelerometer (like Klipper does)?
-
@argo the automatic shaper recommendation generator is under development.
-
@dc42 I mis-typed, I meant that PA clunked unless I took it down to 0.04 (not 0.4), reducing it from my usual 0.12 value. Sorry about that.
I've grabbed the latest firmware and still have that same result of clunking with PA at or above 0.04 or so. My extruder is attached to E0 on the duet2, I have a pretty standard railcore setup, so I have z steppers on a duex5 but X/Y and E0 are on the duet2 wifi.
Aside from the PA clunking, everything else so far seems fine, things were printing ok with DAA, and now with zvdd in some quick tests.
-
@argo, as you have a fairly broad resonance, ZVDD will probably work better than ZVD.