RepRapFirmware 3.6.0-alpha.2 for Duet main boards available
-
@ProteanReverie Sorry I'm not up to speed on the latest features, but is there some particular feature that has to be enabled or configured to get that improvement in the ringing, or is it just improvements to the RFF code?
-
@Notepad thank you for your guidance. I was able to reproduce the issue and here are the output files.
Here is the output of M122 right after booting up with 3.6.0-alpha2+3
M122 === Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 3.6.0-alpha.2+3 (2024-07-17 20:03:21) running on Duet WiFi 1.0 or 1.01 Board ID: 08DAM-999TL-MQ4SD-6JTDL-3SS6N-968BX Used output buffers: 15 of 26 (22 max) === RTOS === Static ram: 23368 Dynamic ram: 66320 of which 0 recycled Never used RAM 28388, free system stack 178 words Tasks: NETWORK(2,nWait 6,17.5%,222) HEAT(3,nWait 5,0.1%,328) Move(4,nWait 5,0.0%,359) MAIN(1,running,81.2%,748) IDLE(0,ready,1.3%,29), total 100.0% Owned mutexes: WiFi(NETWORK) === Platform === Last reset 00:04:04 ago, cause: software Last software reset at 2024-07-22 19:58, reason: User, Gcodes spinning, available RAM 12348, slot 0 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 Aux0 errors 0,0,0 MCU temperature: min 31.2, current 33.3, max 34.5 Supply voltage: min 24.1, current 24.3, max 24.6, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 99/1, heap memory allocated/used/recyclable 2048/24/0, gc cycles 0 Events: 0 queued, 0 completed Date/time: 2024-08-02 11:27:17 Slowest loop: 150.13ms; fastest: 0.19ms 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 1.2ms, write time 15.6ms, max retries 0 === Move === Segments created 0, maxWait 0ms, bed comp in use: none, height map offset 0.000, hiccups added 0 (0.00ms), max steps late 0, ebfmin 0.00, ebfmax 0.00, mcet 0.000 Pos req/act/dcf: 114452.00/114452/0.00 114452.00/114452/0.00 114452.00/114452/0.00 no step interrupt scheduled === DDARing 0 === Scheduled moves 0, completed 0, LaErrors 0, Underruns [0, 0, 0] Driver 0: standstill, SG min n/a Driver 1: standstill, SG min n/a Driver 2: standstill, SG min n/a Driver 3: standstill, SG min n/a Driver 4: standstill, SG min n/a Driver 5: Driver 6: Driver 7: Driver 8: Driver 9: Driver 10: Driver 11: === Heat === Bed heaters 0 -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 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 Autopause is idle in state(s) 0 Q0 segments left 0 Code queue 0 is empty === Network === Slowest loop: 190.46ms; fastest: 0.00ms Responder states: HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) HTTP sessions: 1 of 8 === WiFi === Interface state: active Module is connected to access point Failed messages: pending 0, notrdy 0, noresp 0 Firmware version 2.1.0 MAC address 5c:cf:7f:2c:25:00 Module reset reason: Turned on by main processor, Vcc 3.40, flash size 4194304, free heap 41332 WiFi IP address 192.168.1.61 Signal strength -39dBm, channel 6, mode 802.11n, reconnections 0 Clock register 00002002 Socket states: 0 0 0 0 0 0 0 0
Then I ran M111, here is the output:
M111 P4 D1 B2048 Debugging enabled for modules: Move(4 - 0x1) Debugging disabled for modules: Platform(0) Network(1) Webserver(2) Gcodes(3) Heat(5) Kinematics(6) InputShaping(7) unused(8) PrintMonitor(9) Storage(10) PortControl(11) DuetExpansion(12) FilamentSensors(13) WiFi(14) Display(15) SbcInterface(16) CAN(17) Expansion(18)
Next, I ran G32 and here is the output. Note that before it gave up, the nozzle crashed into the bed, as shown in the previous video.
G32 Error: G30: Probe was not triggered during probing move Too many auto calibration attempts
Here is the output of M122 after the failure:
M122 === Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 3.6.0-alpha.2+3 (2024-07-17 20:03:21) running on Duet WiFi 1.0 or 1.01 Board ID: 08DAM-999TL-MQ4SD-6JTDL-3SS6N-968BX Used output buffers: 15 of 26 (22 max) === RTOS === Static ram: 23368 Dynamic ram: 66320 of which 0 recycled Never used RAM 28388, free system stack 178 words Tasks: NETWORK(2,nWait 6,17.5%,222) HEAT(3,nWait 5,0.1%,328) Move(4,nWait 5,0.0%,359) MAIN(1,running,81.2%,748) IDLE(0,ready,1.3%,29), total 100.0% Owned mutexes: WiFi(NETWORK) === Platform === Last reset 00:04:04 ago, cause: software Last software reset at 2024-07-22 19:58, reason: User, Gcodes spinning, available RAM 12348, slot 0 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 Aux0 errors 0,0,0 MCU temperature: min 31.2, current 33.3, max 34.5 Supply voltage: min 24.1, current 24.3, max 24.6, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 99/1, heap memory allocated/used/recyclable 2048/24/0, gc cycles 0 Events: 0 queued, 0 completed Date/time: 2024-08-02 11:27:17 Slowest loop: 150.13ms; fastest: 0.19ms 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 1.2ms, write time 15.6ms, max retries 0 === Move === Segments created 0, maxWait 0ms, bed comp in use: none, height map offset 0.000, hiccups added 0 (0.00ms), max steps late 0, ebfmin 0.00, ebfmax 0.00, mcet 0.000 Pos req/act/dcf: 114452.00/114452/0.00 114452.00/114452/0.00 114452.00/114452/0.00 no step interrupt scheduled === DDARing 0 === Scheduled moves 0, completed 0, LaErrors 0, Underruns [0, 0, 0] Driver 0: standstill, SG min n/a Driver 1: standstill, SG min n/a Driver 2: standstill, SG min n/a Driver 3: standstill, SG min n/a Driver 4: standstill, SG min n/a Driver 5: Driver 6: Driver 7: Driver 8: Driver 9: Driver 10: Driver 11: === Heat === Bed heaters 0 -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 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 Autopause is idle in state(s) 0 Q0 segments left 0 Code queue 0 is empty === Network === Slowest loop: 190.46ms; fastest: 0.00ms Responder states: HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) HTTP sessions: 1 of 8 === WiFi === Interface state: active Module is connected to access point Failed messages: pending 0, notrdy 0, noresp 0 Firmware version 2.1.0 MAC address 5c:cf:7f:2c:25:00 Module reset reason: Turned on by main processor, Vcc 3.40, flash size 4194304, free heap 41332 WiFi IP address 192.168.1.61 Signal strength -39dBm, channel 6, mode 802.11n, reconnections 0 Clock register 00002002 Socket states: 0 0 0 0 0 0 0 0
Here is the relevant section from eventlog.txt:
power up + 00:00:00 [info] Event logging started at level warn power up + 00:00:00 [info] Running: Duet WiFi 1.0 or 1.01: 3.6.0-alpha.2+3 (2024-07-17 20:03:21) power up + 00:00:00 [warn] Warning: Heater 1 predicted maximum temperature at full power is 627°C power up + 00:00:01 [warn] WiFi module started power up + 00:00:08 [warn] WiFi module is connected to access point yablibli, IP address 192.168.1.61 power up + 00:00:09 [warn] HTTP client 192.168.1.163 login succeeded (session key 304643682) 2024-08-02 11:23:22 [warn] Date and time set at power up + 00:00:09 2024-08-02 11:24:23 [warn] HTTP client 192.168.1.163 login succeeded (session key 545348926) 2024-08-02 11:25:22 [warn] HTTP client 192.168.1.163 login succeeded (session key 219193886) 2024-08-02 11:28:48 [warn] Error: G30: Probe was not triggered during probing move 2024-08-02 11:30:01 [info] Event logging stopped power up + 00:00:00 [info] Event logging started at level warn power up + 00:00:00 [info] Running: Duet WiFi 1.0 or 1.01: 3.6.0-alpha.2+3 (2024-07-17 20:03:21) power up + 00:00:00 [warn] Warning: Heater 1 predicted maximum temperature at full power is 627°C power up + 00:00:01 [warn] WiFi module started power up + 00:00:08 [warn] WiFi module is connected to access point yablibli, IP address 192.168.1.61 power up + 00:00:09 [warn] HTTP client 192.168.1.163 login succeeded (session key 1182103538) 2024-08-02 11:30:11 [warn] Date and time set at power up + 00:00:09
-
@DonStauffer said in RepRapFirmware 3.6.0-alpha.2 for Duet main boards available:
@ProteanReverie Sorry I'm not up to speed on the latest features, but is there some particular feature that has to be enabled or configured to get that improvement in the ringing, or is it just improvements to the RFF code?
The difference between my pictures is only an update to the RFF code, but the difference in the code pertains to how input shaping is handled. So, if you are using input shaping the update should improve things. If not, you would likely need to configure input shaping as well as applying the update. You can learn more about Input Shaping for Duet here https://docs.duet3d.com/en/User_manual/Tuning/Input_shaping
-
Haven't used my RRF printer in a few months due to it not printing as well as the Qidi. I saw this post and decided to dust off the Jubilee and load up 3.6 alpha and give it a go. I only have a few prints in but see a big improvement in print quality over the 3.5 version it replaced. So far not having an issues but have only used a single tool. Will try to do a multi color this weekend.
-
@ProteanReverie said in RepRapFirmware 3.6.0-alpha.2 for Duet main boards available:
These tests were done with a Hemera Revo 0.4HF nozzle and PETG material. I am also starting tests with a 1.0 nozzle but do not have that data yet.
Here is data from my 1.0 nozzle tests.
Duet 2
accel test
3.5.2 = Never used RAM 11736, free system stack 112 words
3.6A2+3 = Never used RAM 22616, free system stack 116 wordsbenchy
3.5.2 = Never used RAM 11664, free system stack 122 words
3.6A2+3 = Never used RAM 18992, free system stack 116 wordsghost text
3.5.2 = Never used RAM 11808, free system stack 114 words
3.6A2+3 = Never used RAM 22112, free system stack 114 words
Duet 3
accel test
3.5.2 = Never used RAM 12068, free system stack 130 words
3.6A2+3 = Never used RAM 40076, free system stack 130 wordsbenchy
3.5.2 = Never used RAM 11972, free system stack 128 words
3.6A2+3 = Never used RAM 36236, free system stack 130 wordsghost text
3.5.2 = Never used RAM 12092, free system stack 128 words
3.6A2+3 = Never used RAM 39788, free system stack 130 words
additionally, here is data from the duet 3 using a 0.4 nozzle for the accel test model, since that data wasn't ready for my prior post
3.5.2 = Never used RAM 11876, free system stack 128 words
3.6A2+3 = Never used RAM 39884, free system stack 130 words
I have still not encountered any noticeable issues on either the Duet 2 Wi-Fi or Duet 3 Mini 5+ setups when using 3.6A2+3.
-
@dc42 I've been having major problems with bed leveling. One Z stepper either adjusts the wrong direction, or doesn't move at all. I had been doing extensive work on bed.g a few weeks ago and got it working perfectly. This problem doesn't correspond with that, but it gives a time frame which indicates to me there's something with this alpha version since that's the only major change since then. At that time I had probably run the routine 100 times in a row, working on LED issues. The actual leveling worked well.
-
@DonStauffer I too am having a similar problem with bed levelling. Printing with 3.6.0-alpha2+3 works fine and the input shaping is absolutely awesome! BTW, the printer I have is a delta.
The input shaping is so good that I am able to increase the accleration and jerk, without any artefacts. I was also able to drop the pressure advance value. I went from 0.21 to 0.14.
-
@balajiramani I need to look into input shaping. The pics I've seen a really awesome.
-
I've put new 3.6.0 alpha RRF builds at https://www.dropbox.com/scl/fo/yc7mnauicu5vqw6yegeq7/AKnV4j8k1MCADG4VE4EIG6Y?rlkey=skjxh23i9c953yvxm2tb8qr36&dl=0. Some notes:
- The issue with bed tramming might be fixed. I don't have a suitable machine to test it on.
- Scanning Z probes are fixed (they didn't work in previous 3.6.0 alpha releases)
- Also included are 3.6.0 alpha versions of some expansion board firmware (not EXP1HCL or M23CL). You can revert to 3.5.2 versions if you have any issues with them.
See https://github.com/Duet3D/RepRapFirmware/wiki/Changelog-RRF-3.x-Beta#reprapfirmware-360-beta1-in-preparation for more details.
-
@dc42 Im just about to start deploying and testing 3.6.A2+4. and in a few weeks I should have a handful of Duet3 equipped machines ready for testing the firmware on.
Regarding the bed tramming bug on A2+3 I have not been able to repeat this bug using Duet2 hardware on a 2 z-motor setup. I have not tried this on my 3 z-motor setup yet. -
@Notepad the latest build is 3.6.0-alpha.4 which you can find at https://www.dropbox.com/scl/fo/cckwiq91gn16hvl1zdjnp/AF0SMEtkVfiArSPeYaBDGPY?rlkey=kqkknk9q1kiq684u4s55ce8d4&dl=0. Release notes are at https://github.com/Duet3D/RepRapFirmware/wiki/Changelog-RRF-3.x-Beta#reprapfirmware-360-alpha4-in-preparation,
-
@dc42 M260 lines in my initialization macro called by config.g in alpha 4 generate a message "Error: Command is not supported"
;------------------------------------------------------------------------------- ; InitNeoPix ;------------------------------------------------------------------------------- ; To disable NeoPixel LEDs, in config.g comment out the call to this macro. ; You must restart afterward (don't just run config.g). ;------------------------------------------------------------------------------- ; Defines global data, initializes NeoDriver and turns off LEDs. Preventing ; this macro from running at machine startup should effectively disable all ; NeoPixel=related macros. ; ; Parameters: ; A I2C Address (default: 0x60) ; N Number of LEDs (default: 28) ;------------------------------------------------------------------------------- ; Don Stauffer August, 2024 ;------------------------------------------------------------------------------- if global.DebugLevel >= 1200 echo "InitNeoPix" ;------------------------------------------------------------------------------- ; Enumeration Constants ;------------------------------------------------------------------------------- var FUNC_REG_PIN = 0x01 var FUNC_REG_SPEED = 0x02 var FUNC_REG_BUF_LENGTH = 0x03 var NEO_DRIVER_PIN_NUM = 0x0F var SPEED400khz = 0 var SPEED800khz = 1 ;------------------------------------------------------------------------------- ; Other Constants ;------------------------------------------------------------------------------- var ADDR_BASE = 0x0E ;------------------------------------------------------------------------------- ; Parameters ;------------------------------------------------------------------------------- var AddrI2C = (exists(param.A) ? param. A : 0x60) var LEDCount = (exists(param.N) ? param.N : 28) ;------------------------------------------------------------------------------- ; Define global NeoPixel array ;------------------------------------------------------------------------------- if exists(global.NeoPix) set global.NeoPix = vector(2, vector(var.LEDCount, null)) else global NeoPix = vector(2, vector(var.LEDCount, null)) ;------------------------------------------------------------------------------- ; Initialize NeoDriver card settings ;------------------------------------------------------------------------------- M260 A{var.AddrI2C} B{var.ADDR_BASE, var.FUNC_REG_PIN, var.NEO_DRIVER_PIN_NUM} M260 A{var.AddrI2C} B{var.ADDR_BASE, var.FUNC_REG_SPEED, var.SPEED800khz} M260 A{var.AddrI2C} B{var.ADDR_BASE, var.FUNC_REG_BUF_LENGTH, 3 *var.LEDCount,0} ;------------------------------------------------------------------------------- ; Turn all LEDs off ;------------------------------------------------------------------------------- G4 P500 echo "5" M98 P"/macros/Lights/NeoPixel/TurnOffAll" A{var.AddrI2C} ;------------------------------------------------------------------------------- if global.DebugLevel >= 1200 echo "Leaving InitNeoPix" ;-------------------------------------------------------------------------------
-
@dc42 I am still seeing failures and head crashing into the bed on running G32 calibration on a delta. Is this a known issue?
-
@balajiramani are you definitely running the 3.6.0-alpha.4 build? There was a minor bug in G32 calibration on deltas in early 3.6.0 alpha builds but I fixed that some time ago.
-
@DonStauffer does that same macro work if you invoke it from the DWC command line using M98?
-
@dc42 Yes, I downloaded it from the latest link you posted. Here is a screenshot.
-
@balajiramani my delta is working perfectly with alpha.4. Please post your bed.g file and provide more details about when the probing sequence goes wrong.
-
@dc42 Here is a video that shows the crash - https://forum.duet3d.com/assets/uploads/files/1721977512327-pxl_20240726_065615215-2.mp4. The motion from from one probe point to the other is more of a 'U' shaped travel, instead of a straight line.
Let me know if you need any other information.
Here is bed.g file.
M561 ; clear any bed transform, otherwise homing may be at the wrong height M290 R0 S0 ; Remove any baby stepping ; bed.g file for RepRapFirmware, generated by Escher3D calculator ; 16 points, 4 factors, probing radius: 150, probe offset (0, 0) ; If the printer hasn't been homed, home it if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed G28 ; Probe the bed and do auto calibration G1 X0 Y0 Z10 F10000 ; go to just above the first probe point while true if iterations = 5 abort "Too many auto calibration attempts" G30 P0 X0.00 Y150.00 Z-99999 H0 if result != 0 continue G30 P1 X96.42 Y114.91 Z-99999 H0 if result != 0 continue G30 P2 X147.72 Y26.05 Z-99999 H0 if result != 0 continue G30 P3 X129.90 Y-75.00 Z-99999 H0 if result != 0 continue G30 P4 X51.30 Y-140.95 Z-99999 H0 if result != 0 continue G30 P5 X-51.30 Y-140.95 Z-99999 H0 if result != 0 continue G30 P6 X-129.90 Y-75.00 Z-99999 H0 if result != 0 continue G30 P7 X-147.72 Y26.05 Z-99999 H0 if result != 0 continue G30 P8 X-96.42 Y114.91 Z-99999 H0 if result != 0 continue G30 P9 X0.00 Y75.00 Z-99999 H0 if result != 0 continue G30 P10 X64.95 Y37.50 Z-99999 H0 if result != 0 continue G30 P11 X64.95 Y-37.50 Z-99999 H0 if result != 0 continue G30 P12 X0.00 Y-75.00 Z-99999 H0 if result != 0 continue G30 P13 X-64.95 Y-37.50 Z-99999 H0 if result != 0 continue G30 P14 X-64.95 Y37.50 Z-99999 H0 if result != 0 continue G30 P15 X0 Y0 Z-99999 S6 if result != 0 continue if move.calibration.initial.deviation <= 0.03 break echo "Repeating calibration because deviation is too high (" ^ move.calibration.initial.deviation ^ "mm)" ; end loop echo "Auto calibration successful, deviation", move.calibration.final.deviation ^ "mm"
-
@balajiramani it sounds to me that segmentation is not working on those moves. If you send M669 without parameters, what does it report?
-
@dc42 Here is what I see:
M669 Kinematics is Linear delta, 100 segments/sec, min. segment length 0.20mm