RepRapFirmware 3.6.0-alpha.2 for Duet main boards available
-
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
-
@edsped said in RepRapFirmware 3.6.0-alpha.2 for Duet main boards available:
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%
Not sure what's going on, I reverted back to 3.5.2 and the dropped connection persists.. All works well using the paneldue but the web interface is all but unusable and sometimes I'm unable to reconnect for several minutes. Not sure what got hosed but something is surely borked.
-
@edsped I see connection errors too. Do your connections errors go away if you put the PanelDue on the Setup page so that it stops polling the 6HC?