RepRapFirmware 3.6.0-alpha.2 for Duet main boards available
-
@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
-
@dc42 Just had time to TRY a print with the
alpha.4
binaries you uploaded the other day (on both the D3 Mini & the 1LC), and the bed leveling seems to be working.BUT now the extruder won't extrude (or retract for that matter), either through G-code or if I to use the "extrude buttons" in DWC & PD.
When I canceled the print on PD i got these error messages:
CAN response timeout: board 121, req type 6044, RID 220. Error: at column 2: G10: hA CAN response timeout: board 121, req type 6029, RID 222 CAN response timeout: board 121, req type 6044, RID 223
Which is new behaviour from
alpha.2+3
.AND the hotend heater (connected to the 1LC) won't turn off. Both DWC & PD show active/standby heat to be
0
, but the heater is still at working temp (255c).
If i manually try to input0
in active on DWC and push enter i get this error:M568 P0 S0 Error: at column 2: M568: P
The only way I've found to actually make it turn off/adjust the temp down is to power toggle or restart the printer.
-
@Exerqtor What version of the firmware do you have installed on the 1LC?
-
@gloomyandy said in RepRapFirmware 3.6.0-alpha.2 for Duet main boards available:
@Exerqtor What version of the firmware do you have installed on the 1LC?
@Exerqtor said in RepRapFirmware 3.6.0-alpha.2 for Duet main boards available:
@dc42 Just had time to TRY a print with the
alpha.4
binaries you uploaded the other day (on both the D3 Mini & the 1LC), and the bed leveling seems to be working.To be more specific:
M122 B121 Diagnostics for board 121: Duet TOOL1LC rev 1.1 or later firmware version 3.6.0-alpha.4 (2024-08-13 12:30:07) Bootloader ID: SAMC21 bootloader version 2.8 (2023-07-25)
I just tested if the extrusion works while idle, which it does. I'm about to start a new test print (same job g-code as earlier) and see what happens.
Here is a couple
M122
's from BEFORE starting the print:M122 === Diagnostics === RepRapFirmware for Duet 3 Mini 5+ version 3.6.0-alpha.4 (2024-08-13 15:11:57) running on Duet 3 Mini5plus WiFi (standalone mode) Board ID: XNHXF-HR6KL-K65J0-409N2-K9W1Z-RV2MZ Used output buffers: 16 of 40 (37 max) === RTOS === Static ram: 92296 Dynamic ram: 94544 of which 0 recycled Never used RAM 50316, free system stack 142 words Tasks: NETWORK(2,nWait 7,16.7%,211) HEAT(3,nWait 6,0.0%,350) Move(4,nWait 6,0.0%,247) TMC(4,nWait 6,0.9%,65) CanReceiv(6,nWait 1,0.1%,792) CanSender(5,nWait 7,0.0%,336) CanClock(7,delaying,0.0%,339) MAIN(1,running,80.5%,665) IDLE(0,ready,1.1%,29) AIN(4,delaying,0.8%,259), total 100.0% Owned mutexes: WiFi(NETWORK) === Platform === Last reset 00:17:06 ago, cause: software Last software reset at 2024-08-14 18:13, reason: User, Gcodes spinning, available RAM 52872, slot 2 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00000000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 Aux0 errors 0,1,0 MCU temperature: min 41.0, current 44.0, max 46.0 Supply voltage: min 2.8, current 24.2, max 24.8, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 99/34, heap memory allocated/used/recyclable 2048/696/252, gc cycles 232 Events: 0 queued, 0 completed Date/time: 2024-08-14 18:30:13 Slowest loop: 49.66ms; fastest: 0.11ms === Storage === Free file entries: 18 SD card 0 detected, interface speed: 22.5MBytes/sec SD card longest read time 8.0ms, write time 9.5ms, max retries 0 === Move === Segments created 33, maxWait 232923ms, 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.012 Pos req/act/dcf: 10.00/10/0.00 -27991.00/-27991/0.00 4000.00/4000/0.00 no step interrupt scheduled Driver 0: standstill, SG min 0, read errors 0, write errors 0, ifcnt 38, reads 53987, writes 38, timeouts 0, DMA errors 0, CC errors 0 Driver 1: standstill, SG min 0, read errors 0, write errors 0, ifcnt 38, reads 53987, writes 38, timeouts 0, DMA errors 0, CC errors 0 Driver 2: standstill, SG min 0, read errors 0, write errors 0, ifcnt 24, reads 54001, writes 24, timeouts 0, DMA errors 0, CC errors 0 Driver 3: standstill, SG min 0, read errors 0, write errors 0, ifcnt 23, reads 54001, writes 23, timeouts 0, DMA errors 0, CC errors 0 Driver 4: standstill, SG min 0, read errors 0, write errors 0, ifcnt 23, reads 54002, writes 23, timeouts 0, DMA errors 0, CC errors 0 Driver 5: not present Driver 6: not present === DDARing 0 === Scheduled moves 63, completed 63, LaErrors 0, Underruns [0, 0, 0] === DDARing 1 === Scheduled moves 0, completed 0, LaErrors 0, Underruns [0, 0, 0] === Heat === Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 Heater 0 is on, I-accum = 0.5 Heater 1 is on, I-accum = 0.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 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 doing "G4 P250" in state(s) 0 0, running macro 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 0x0000803 Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === Filament sensors === check 0 clear 0 Extruder 0 sensor: no filament === CAN === Messages queued 9333, received 21187, lost 0, ignored 0, errs 1318, boc 0 Longest wait 6ms for reply type 6024, peak Tx sync delay 10502, free buffers 26 (min 25), ts 5135/5133/0 Tx timeouts 0,0,1,0,0,0 last cancelled message type 30 dest 127 === Network === Slowest loop: 19.26ms; fastest: 0.00ms Responder states: MQTT(0) HTTP(2) 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 c4:5b:be:ce:91:93 Module reset reason: Power up, Vcc 3.38, flash size 2097152, free heap 39620 WiFi IP address 192.168.30.50 Signal strength -48dBm, channel 6, mode 802.11n, reconnections 0 Clock register 00002001 Socket states: 0 0 0 0 0 0 0 0 M122 B121 Diagnostics for board 121: Duet TOOL1LC rev 1.1 or later firmware version 3.6.0-alpha.4 (2024-08-13 12:30:07) Bootloader ID: SAMC21 bootloader version 2.8 (2023-07-25) All averaging filters OK Never used RAM 7956, free system stack 92 words Tasks: Move(3,nWait 7,0.0%,100) TMC(2,delaying,3.6%,52) HEAT(2,nWait 6,0.4%,98) CanAsync(5,nWait 4,0.0%,54) CanRecv(3,nWait 1,0.0%,70) CanClock(5,nWait 1,0.0%,58) ACCEL(3,nWait 6,0.0%,52) MAIN(1,running,91.0%,318) IDLE(0,ready,0.0%,26) AIN(2,delaying,5.0%,112), total 100.0% Owned mutexes: Last reset 00:17:09 ago, cause: power up Last software reset at 2024-03-12 16:55, reason: StackOverflow, available RAM 2968, slot 0 Software reset code 0x0100 ICSR 0x0042600e SP 0x20007f34 Task Move Freestk 3342 ok Stack: 20004a80 20004ab4 0001cf33 20004c98 20004938 00000000 0001c011 20003320 fffffffd a5a5a5a5 00000000 20007f8c 00000000 20007f8c 0001cc97 00000000 200017c4 20001748 0001c4d7 20001748 200017c4 00000032 454c4449 00022700 0001ac77 200018e0 200018e0 Driver 0: pos 34130, 568.8 steps/mm, standstill, SG min 0, read errors 0, write errors 0, ifcnt 14, reads 37260, writes 3, timeouts 0, DMA errors 0, CC errors 0 Moves scheduled 4, hiccups 0 (0.00ms), segs 3, step errors 0 (types 0x0), maxLate 0 maxPrep 96, ebfmin 0.00 max 0.00 Peak sync jitter -2/9, peak Rx sync delay 222, resyncs 0/0, no timer interrupt scheduled, next step interrupt due in 3857541807 ticks, disabled VIN voltage: min 23.8, current 24.7, max 25.2 MCU temperature: min 60.4C, current 64.1C, max 65.5C Last sensors broadcast 0x00000012 found 2 165 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 15059, send timeouts 0, received 6624, lost 0, ignored 0, errs 0, boc 0, free buffers 18, min 18, error reg 0 dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 294, adv 37049/37148 Accelerometer: LIS3DH, status: 00 I2C bus errors 0, naks 0, contentions 0, other errors 0 === Filament sensors === Interrupt 5726621 to 0us, poll 5 to 1268us Driver 0: ok
EDIT:
I've got no idea what was going on earlier, because now it extrudes like it should
😶
I'm letting the test print finish to see what's going to happen. -
@dc42 I didn't try it and I reverted to alpha 2. It's called from the last few lines in config.g so I didn't think it would be different.
I reinstalled alpha 4 and yes, the error occurs on the M260 lines when the macro is invoked from the console using M98.
-
@DonStauffer my apologies, I accidentally disabled M260 in that build. I will reinstate it in the next build. Meanwhile, M260.0 should do what you want in alpha 4.
-
Am I the only one having connection interrupted errors with the most recent build? I'm hard wired into a Ubiquiti network if that matters.
Bed leveling is working as intended.
Controller MB6HC using built in wired network.
Jubilee toolchanger with (4) RRF-36's running the tools.M12 after a few "Connection Interrupted" errors
m122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.6.0-alpha.4 (2024-08-13 15:11:47) running on Duet 3 MB6HC v1.02 or 1.02a (standalone mode) Board ID: 08DJM-9P63L-DJ3T8-6J1F2-3SS6J-KA6VB Used output buffers: 1 of 40 (38 max) === RTOS === Static ram: 133840 Dynamic ram: 128256 of which 128 recycled Never used RAM 57328, free system stack 103 words Tasks: NETWORK(1,ready,35.9%,182) ETHERNET(5,nWait 7,0.1%,311) HEAT(3,nWait 6,0.0%,323) Move(4,nWait 6,0.3%,209) TMC(4,nWait 6,8.5%,53) CanReceiv(6,nWait 1,0.1%,767) CanSender(5,nWait 7,0.0%,327) CanClock(7,delaying,0.0%,348) MAIN(1,running,55.0%,103) IDLE(0,ready,0.0%,29), total 100.0% Owned mutexes: === Platform === Last reset 00:39:59 ago, cause: power up Last software reset at 2024-08-02 12:23, reason: User, Gcodes spinning, available RAM 62628, slot 1 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0044a000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 Aux0 errors 0,0,0 MCU temperature: min 10.7, current 31.1, max 31.4 Supply voltage: min 24.0, current 24.1, max 24.5, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.0, current 12.2, max 12.5, under voltage events: 0 Heap OK, handles allocated/used 99/4, heap memory allocated/used/recyclable 2048/312/264, gc cycles 0 Events: 0 queued, 0 completed Date/time: 2024-08-16 07:22:24 Slowest loop: 224.31ms; fastest: 0.05ms === Storage === Free file entries: 19 SD card 0 detected, interface speed: 25.0MBytes/sec SD card longest read time 3.0ms, write time 4.8ms, max retries 0 === Move === Segments created 381, maxWait 819860ms, bed comp in use: mesh, height map offset 0.000, hiccups added 0 (0.00ms), max steps late 1, ebfmin 0.00, ebfmax 0.00, mcet 0.087 Pos req/act/dcf: 58485.00/66365/-0.04 15858.00/15858/0.04 1934.00/1938/-0.97 0.00/0/0.00 next step interrupt due in 1 ticks, disabled Driver 0: ok, SG min 0, mspos 327, reads 49227, writes 26 timeouts 0 Driver 1: standstill, SG min 0, mspos 276, reads 49227, writes 26 timeouts 0 Driver 2: standstill, SG min 0, mspos 352, reads 49231, writes 22 timeouts 0 Driver 3: ok, SG min 0, mspos 1007, reads 49228, writes 26 timeouts 0 Driver 4: ok, SG min 0, mspos 255, reads 49228, writes 26 timeouts 0 Driver 5: ok, SG min 0, mspos 271, reads 49228, writes 26 timeouts 0 === DDARing 0 === Scheduled moves 18403, completed 18344, LaErrors 0, Underruns [0, 0, 0] === DDARing 1 === Scheduled moves 0, completed 0, LaErrors 0, Underruns [0, 0, 0] === 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 0 is on, I-accum = 0.2 Heater 1 is on, I-accum = 0.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) 3 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 11, axes/extruders owned 0x80000007 Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === CAN === Messages queued 39620, received 192185, lost 0, ignored 0, errs 791, boc 0 Longest wait 2ms for reply type 6031, peak Tx sync delay 61333, free buffers 50 (min 49), ts 11997/11996/0 Tx timeouts 0,0,0,0,0,0 === Network === Slowest loop: 193.94ms; 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: 2 of 8 = Ethernet = Interface state: active Error counts: 0 0 0 1 0 0 Socket states: 5 2 2 2 2 0 0 0 === WiFi === Interface state: disabled Module is disabled Failed messages: pending 0, notrdy 0, noresp 0 Socket states: 0 0 0 0 0 0 0 0 === Multicast handler === Responder is inactive, messages received 0, responses 0