3.3B3 certain lines cause firmware reset
-
@alex-cr thanks. I've updated the firmware binary at https://www.dropbox.com/sh/6fdfjn7fpjnk3vv/AADWZIXsKn5B_GsTauCx8Nsna?dl=0. Please try that one. Whether your daemon.g file succeeds or crashes, please post a new M122 report after running it.
-
Good news, the latest +1 appears to have fixed the firmware crashes.
Unfortunately the line in deamon.g that was causing the crash is now throwing the following alarm.; daemon.g set global.holdtime = state.upTime set global.printcomplete = state.upTime - global.printstoptime
The global variable "printstoptime" is fully defined according to the object model.
And as requested here is the M122.
m122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.3beta3+1 (2021-04-25 21:40:09) running on Duet 3 MB6HC v0.6 or 1.0 (SBC mode) Board ID: 08DJM-956L2-G43S4-6J1FD-3SJ6T-TB6QH Used output buffers: 1 of 40 (10 max) === RTOS === Static ram: 150800 Dynamic ram: 64488 of which 176 recycled Never used RAM 135872, free system stack 178 words Tasks: SENSORS(delaying,0.0%,70) Linux(resourceWait:,5.7%,266) HEAT(delaying,0.0%,281) Move(notifyWait,0.0%,350) CanReceiv(notifyWait,0.0%,773) CanSender(notifyWait,0.0%,373) CanClock(delaying,0.0%,341) TMC(notifyWait,7.2%,93) MAIN(running,87.0%,924) IDLE(ready,0.0%,29), total 100.0% Owned mutexes: HTTP(MAIN) === Platform === Last reset 00:10:34 ago, cause: software Last software reset at 2021-04-25 20:42, reason: User, none spinning, available RAM 135872, slot 0 Software reset code 0x0012 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task Linu Freestk 0 n/a Error status: 0x00 Aux0 errors 0,0,0 Aux1 errors 0,0,0 Step timer max interval 134 MCU temperature: min 24.9, current 25.5, max 39.7 Supply voltage: min 3.1, current 24.0, max 24.1, under voltage events: 1, over voltage events: 0, power good: yes 12V rail voltage: min 0.4, current 12.2, max 12.2, under voltage events: 0 Heap OK, handles allocated/used 99/4, heap memory allocated/used/recyclable 2048/64/0, gc cycles 0 Driver 0: position 0, standstill, reads 58281, writes 28 timeouts 0, SG min/max 0/0 Driver 1: position 0, standstill, reads 58281, writes 28 timeouts 0, SG min/max 0/0 Driver 2: position 0, standstill, reads 58281, writes 28 timeouts 0, SG min/max 0/0 Driver 3: position 0, standstill, reads 58281, writes 28 timeouts 0, SG min/max 0/0 Driver 4: position 0, standstill, reads 58281, writes 28 timeouts 0, SG min/max 0/0 Driver 5: position 0, standstill, reads 58282, writes 28 timeouts 0, SG min/max 0/0 Date/time: 2021-04-25 20:53:14 Slowest loop: 0.68ms; 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 0ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], 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 = -1 -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 sensor: no data received === CAN === Messages queued 5699, send timeouts 15, received 7849, lost 0, longest wait 1ms for reply type 6042, peak Tx sync delay 45775, free buffers 49 (min 48) Last cancelled message type 30 dest 127 === SBC interface === State: 4, failed transfers: 0 Last transfer: 1ms ago RX/TX seq numbers: 23043/23043 SPI underruns 0, overruns 0 Number of disconnects: 0, IAP RAM available 0x2c594 Buffer RX/TX: 0/0-0 === Duet Control Server === Duet Control Server v3.3-b3 Code buffer space: 4096 Configured SPI speed: 8000000 Hz Full transfers per second: 36.43 Codes per second: 0.15 Maximum length of RX/TX data transfers: 5740/936
-
@alex-cr thanks. As you are using SBC I'll ask @chrishamm to look at why the global variable isn't found.
-
Not a problem. Just doing my best to beta test!
-
@alex-cr This problem had to do with the space after the variable name. To work-around this problem you can remove spaces before the '=' from your daemon.g.
I've got a fix ready for this, thanks for your report.
-
Hey @dc42 I installed the firmware you linked to as I was having the same issue as the OP, I'm running MB6HC with SBC. It solved some issues but others came up. I thought that possibly these new issues were related to my TOOL1LC and 2x EXP3HC being not on the "dropbox" firmware too, so I uploaded and installed those versions with M997. The installations took an abnormally long time to complete.
After installing I am unable to communicate with any of the expansion boards and they all flash with this pattern:
3s Pause, three flashes, 1s pause, very fast single flash, 3s pause, four flashes, repeated.
I tried to downgrade the firmwares back to 3.3beta1 from the github, but am unable to communicate with the boards. "Response Timeout" from M997. I tried the reset procedures but the issue persisted. M112 B{tried for all three boards} gave the same Response Timeout error.
All boards appear in the object model browser but list "null" for all values except CAN address.
I can document the issue further when I am with the machine tomorrow, and or create a new thread if you think that would be better.
Cheers,
T -
@tristanryerparke said in 3.3B3 certain lines cause firmware reset:
After installing I am unable to communicate with any of the expansion boards and they all flash with this pattern:
3s Pause, three flashes, 1s pause, very fast single flash, 3s pause, four flashes, repeated.That indicates that the boards are trying to download firmware from the main board, but the main board doesn't have it in the right place. Most likely the firmware files are in the /sys folder on the SD card but not in the /firmware folder which is where the main board will look for them when running 3.3beta3.
Check that you are running Duet Web Control 3.3beta, then upload the tool board and expansion board firmware files again.
-
@dc42 Files were in /firmware and /sys which was why I was really worried originally. Seemed to be a problem with boards retrieving firmware from the Pi4 SD card. I solved the issue by going into standalone mode and restarting the machine. Then the boards were able to request firmware and sync.
All set now,
Thanks -
@dc42 I seem to be having a similar issue.
I downloaded the 3HC and 6HC files from dropbox, uploaded it to the board.
I'm trying to get the accelerometer to work with the printer, so what I did was this:
- Home
- Level gantry (Voron 2.4)
- Send m955 to set up the accelerometer (the response seems to ignore I10 I am sending and keeps reporting orientation 20).
- Set movement to relative with G91
- Trigger the command from the docs with:
G1 X-50 G4 S2 M956 P0.0 S5000 A0 G4 P10 G1 X50 F20000
- Printer moves by -50, then resets. This happens every time now. It doesn't matter if I have the accelerometer hooked up via SPI or i2c. Always happens.
M122 from after the board boots up is as follows:
m122 b0 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.3RC1 (2021-05-01 09:12:50) running on Duet 3 MB6HC v0.6 or 1.0 (standalone mode) Board ID: 08DJM-956L2-G43S4-6JKDA-3SJ6T-1B6GH Used output buffers: 3 of 40 (19 max) === RTOS === Static ram: 150680 Dynamic ram: 92772 of which 116 recycled Never used RAM 107768, free system stack 200 words Tasks: NETWORK(ready,15.7%,218) ETHERNET(notifyWait,0.1%,117) HEAT(delaying,0.0%,345) Move(notifyWait,0.0%,352) CanReceiv(notifyWait,0.0%,911) CanSender(notifyWait,0.0%,373) CanClock(delaying,0.0%,350) TMC(notifyWait,7.2%,93) MAIN(running,76.1%,924) IDLE(ready,0.9%,29), total 100.0% Owned mutexes: HTTP(MAIN) === Platform === Last reset 00:00:12 ago, cause: software Last software reset at 2021-05-01 12:14, reason: HeatTaskStuck, Platform spinning, available RAM 105784, slot 2 Software reset code 0x4140 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0040080f BFAR 0x00000000 SP 0x2043be24 Task ACCE Freestk 334 ok Stack: 00448065 0044805a 610f0000 00000000 407ad03f b5fbe847 bf6d6ea8 00000000 42e80000 f81d6400 3f5cc44b 15873197 3ec9dc39 37533333 43d697a0 00000000 422ba3c7 42288192 00000000 60000010 2043b7c1 2043b7a0 2043b7c1 000000e8 000000ef 00000003 20423f00 Error status: 0x00 Aux0 errors 0,0,0 Aux1 errors 0,0,0 Step timer max interval 133 MCU temperature: min 41.7, current 42.6, max 42.8 Supply voltage: min 24.0, current 24.0, 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 99/2, heap memory allocated/used/recyclable 2048/26/0, gc cycles 0 Driver 0: position 0, standstill, reads 1504, writes 14 timeouts 0, SG min/max 0/0 Driver 1: position 0, standstill, reads 1504, writes 14 timeouts 0, SG min/max 0/0 Driver 2: position 0, standstill, reads 1505, writes 14 timeouts 0, SG min/max 0/0 Driver 3: position 0, standstill, reads 1505, writes 14 timeouts 0, SG min/max 0/0 Driver 4: position 0, standstill, reads 1505, writes 14 timeouts 0, SG min/max 0/0 Driver 5: position 0, standstill, reads 1505, writes 14 timeouts 0, SG min/max 0/0 Date/time: 2021-05-01 12:15:23 Slowest loop: 5.60ms; fastest: 0.05ms === Storage === Free file entries: 10 SD card 0 detected, interface speed: 25.0MBytes/sec SD card longest read time 3.4ms, write time 0.0ms, max retries 0 === Move === DMs created 125, maxWait 0ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], 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 = -1 -1 -1 -1 === GCodes === Segments left: 0 Movement lock held by null HTTP is ready with "m122 b0" 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. === CAN === Messages queued 97, send timeouts 0, received 57, lost 0, longest wait 1ms for reply type 6042, peak Tx sync delay 206, free buffers 49 (min 48) === Network === Slowest loop: 9.48ms; fastest: 0.02ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions HTTP sessions: 2 of 8 - Ethernet - State: active Error counts: 0 0 1 0 0 Socket states: 5 2 2 2 2 0 0 0
-
We hope to release 3.3RC1 later today. It includes fixes for these stack overflow issues.