12864 Display Unresponsive on Preheat Page 3.3b2
-
Good afternoon!
I routinely use my set of display files (Github) for the 12864 display on my Duet Maestro, but recently the preheat page stopped working. When you open it the text is sometimes jumbled and it always freezes up the display. The easiest way to fix it is to simply reset the board. I did not edit the display code when the issue happened.
I have two different machines with the issue (both Maestros, one with 3.2-RC2 and another with 3.2.2). Another user just reported on Github that he's having the issue as well.
Below I've attached the code and also an M122 dump after it freezes. All other pages appear to work well.
Thanks for your help!
Jadon; Duet 12864 Menu Files ; ; This is a set of menu files for running a 12864 display with a duet3D control board. ; ; Written by Jadon Miller - 2/27/2019 ; Partially adapted from the work of tinkerlifeprojects on Github. ; ; File "preheat" ; ; The goal of this menu is to make it easy to preheat the printer. It ; has a group of buttons to set the temperature and the current temperatures ; at the bottom with a shortcut to print/resume. ; ; Note: To modify the preset temperatures, there are two places to change for ; each temperature. The "T" parameter determines what is shown on the button ; and the number after the "S" is the temperature sent to the firmware. For example, ; if I wanted to change the second bed heater button to 45C, I would change this line: ; ; button C46 W19 T"40" A"M140 S40" ; ; To this line: ; ; button C46 W19 T"45" A"M140 S45" ; ; The hotend buttons work the same way. ; ; Note: you may need to change the gcode commands for each button if you don't use the ; default heater configuration. ; --------------- Header --------------- text R0 C0 W63 F0 H1 T"Preheat" image L"imgs/vline.img" button W64 F0 T"Back" A"return" image R11 C0 L"imgs/hline.img" ; --------------- Preheat Bed --------------- image R14 C6 L"imgs/bed.img" button C23 W22 T"Off" A"M140 S0" button C46 W19 T"40" A"M140 S40" button C66 W19 T"50" A"M140 S50" button C86 W19 T"60" A"M140 S60" button C106 W19 T"70" V3 A"M140 S70" ; --------------- Preheat Hotend --------------- image R27 C6 L"imgs/temp.img" button C23 W22 T"Off" A"G10 P0 S0" button C46 W19 T"130" A"G10 P0 S130" button C66 W19 T"200" A"G10 P0 S200" button C86 W19 T"210" A"G10 P0 S210" button C106 W19 T"230" A"G10 P0 S230" ; --------------- Print Button--------------- ; The "print" button is shown when not printing and "resume" when paused. button R40 C0 W128 V5 T"Print" A"menu selectSD" button R40 C0 W128 V6 T"Resume" A"M24|menu main" ; --------------- Temperatures --------------- image R53 C0 L"imgs/hline.img" ; Bed Temperature image R54 C5 L"imgs/bed.img" value H2 N180 text T"/" value N80 ; Hotend Temperature image L"imgs/temp.img" value H2 N100 text T"/" value N0
M122 === Diagnostics === RepRapFirmware for Duet 2 Maestro version 3.2-RC2 running on Duet Maestro 1.0 Board ID: 08DJM-956DU-LLMS4-7JKD2-3S07J-1VPQJ Used output buffers: 1 of 24 (11 max) === RTOS === Static ram: 22292 Dynamic ram: 73632 of which 24 recycled Never used RAM 18884, free system stack 216 words Tasks: NETWORK(ready,206) HEAT(blocked,340) TMC(blocked,117) MAIN(running,467) IDLE(ready,20) Owned mutexes: === Platform === Last reset 00:06:22 ago, cause: power up Last software reset at 2021-03-11 07:40, reason: User, GCodes spinning, available RAM 18376, 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,0,0 MCU temperature: min 13.3, current 22.7, max 23.3 Supply voltage: min 0.0, current 24.2, max 24.3, under voltage events: 0, over voltage events: 0, power good: yes Driver 0: position 0, standstill, read errors 0, write errors 0, ifcnt 8, reads 63622, writes 8, timeouts 0, DMA errors 0 Driver 1: position 0, standstill, read errors 0, write errors 0, ifcnt 8, reads 63622, writes 8, timeouts 0, DMA errors 0 Driver 2: position 0, standstill, read errors 0, write errors 0, ifcnt 9, reads 63621, writes 9, timeouts 0, DMA errors 0 Driver 3: position 0, standstill, read errors 0, write errors 0, ifcnt 8, reads 63622, writes 8, timeouts 0, DMA errors 0 Driver 4: position 0, standstill, read errors 0, write errors 0, ifcnt 6, reads 63624, writes 6, timeouts 0, DMA errors 0 Driver 5: position 0, assumed not present Driver 6: position 0, assumed not present Date/time: 2021-03-12 13:49:00 Slowest loop: 81.19ms; fastest: 0.17ms 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: 15.0MBytes/sec SD card longest read time 3.6ms, write time 0.6ms, max retries 0 === Move === DMs created 83, 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, chamberHeaters = -1 -1 Heater 1 is on, I-accum = 0.0 === 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 Autopause is idle in state(s) 0 Code queue is empty. === Network === Slowest loop: 129.51ms; fastest: 0.02ms Responder states: HTTP(0) HTTP(1) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions HTTP sessions: 1 of 8 Interface state active, link 100Mbps full duplex === Filament sensors === Extruder 0 sensor: ok ``
-
Would you be able to test with 3.3beta2?
-
@Phaedrux said in 12864 Display Unresponsive on Preheat Page:
Would you be able to test with 3.3beta2?
Absolutely! I can confirm that it behaves in exactly the same way. Here's another M122 dump:
M122 === Diagnostics === RepRapFirmware for Duet 2 Maestro version 3.3beta2 running on Duet Maestro 1.0 Board ID: 08DAM-9F9GA-J24TD-6J9DL-3SW6K-T71YV Used output buffers: 1 of 24 (16 max) === RTOS === Static ram: 21348 Dynamic ram: 74636 of which 0 recycled Never used RAM 19512, free system stack 210 words Tasks: NETWORK(ready,253) HEAT(delaying,335) TMC(notifyWait,116) MAIN(running,469) IDLE(ready,21) Owned mutexes: === Platform === Last reset 00:06:26 ago, cause: power up Last software reset at 2021-03-06 11:14, reason: User, GCodes spinning, available RAM 18776, slot 0 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 1,1,1 MCU temperature: min 15.9, current 17.2, max 23.9 Supply voltage: min 0.0, current 24.7, max 24.8, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0 Driver 0: position 0, standstill, read errors 0, write errors 0, ifcnt 8, reads 64281, writes 8, timeouts 0, DMA errors 0 Driver 1: position 0, standstill, read errors 0, write errors 0, ifcnt 8, reads 64281, writes 8, timeouts 0, DMA errors 0 Driver 2: position 0, standstill, read errors 0, write errors 0, ifcnt 8, reads 64281, writes 8, timeouts 0, DMA errors 0 Driver 3: position 0, standstill, read errors 0, write errors 0, ifcnt 9, reads 64280, writes 9, timeouts 0, DMA errors 0 Driver 4: position 0, standstill, read errors 0, write errors 0, ifcnt 8, reads 64281, writes 8, timeouts 0, DMA errors 0 Driver 5: position 0, assumed not present Driver 6: position 0, assumed not present Date/time: 2021-03-12 15:14:42 Slowest loop: 79.93ms; fastest: 0.17ms 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: 15.0MBytes/sec SD card longest read time 3.6ms, write time 1.4ms, max retries 0 === Move === DMs created 83, 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 = 1 -1, chamberHeaters = 2 -1 Heater 0 is on, I-accum = 0.0 Heater 1 is on, I-accum = 0.0 Heater 2 is on, I-accum = 0.0 === 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 Autopause is idle in state(s) 0 Code queue is empty. === Filament sensors === Extruder 0 sensor: ok === Network === Slowest loop: 30.73ms; fastest: 0.02ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions HTTP sessions: 2 of 8 Interface state active, link 100Mbps full duplex
-
Thanks. Moved to the beta firmware section.
-
odd, I use your menu system on the Fly-E3 running 3.3b1 (we don't have b2 yet) and haven't seen any issues reported.
we haven't had any reports on our discord either -
@jadonm did you ever figure it out? Ive got 2 machines on my bench testing the Fysetc 12864 display and Im seeing this issue only within the preheat menu. The text file looks ok and nothing seems out of the ordinary. its doing it on a duet3 mini and a duet 2. Both have the same symptom that can be cleared by resetting the board. Ill probably go in and delete one function at a time to see what is triggering this to happen.
-
@JadonM and @LeckieTech
Just for fun, you could make a special menu version, where the preheat menu is at top level/main page.
Just to see, if there are any sub-sub-menu out_of_mem/stack overrun issues. -
@leckietech Unfortunately, I haven't figured anything out yet.
If you have the time to troubleshoot it, I'd greatly appreciate it! I'm simply too busy to work with it right now.
@dc42 Have you and your team had a chance to look into this? It's no rush, but my curiosity is getting the best of me! Thanks!
-
@jadonm I can confirm we've since had a couple of reports on the STM32 port as well
-
@jadonm, I have just reproduced this, although in my case I get a firmware reset when I select Preheat. I will find out the cause. We're in the middle of doing the 3.3beta3 release, so unfortunately it's probably too late to include the fix in this version.
-
@dc42 said in 12864 Display Unresponsive on Preheat Page 3.3b2:
@jadonm, I have just reproduced this, although in my case I get a firmware reset when I select Preheat. I will find out the cause. We're in the middle of doing the 3.3beta3 release, so unfortunately it's probably too late to include the fix in this version.
Im getting a firmware reset on the duet3 mini and duet2 wifi just has some menu freezing. Both are running 3.2.2
-
The problem appears to be the combination of these lines:
image R54 C5 L"imgs/bed.img" ... image L"imgs/temp.img"
Image bed.img is OK, but temp.img is 13 pixels high, so when it is positioned starting on line 54 the last row overflows the display. RRF should detect this and truncate the image, but that's not working.
The menu works OK (apart from the display not being what was intended) if either R54 is replaced by R53, or temp.img in the second line is replaced by bed.img. Either way, the image no longer overflows past the last line of the 64-line display.
Edit: another fix is to replace the "Hotend temperature section by this:
; Hotend Temperature image R53 L"imgs/temp.img" value R54 N100 text T"/" value H2 N0
I changed the row to 53 for the image, and set it back to 54 for the following text.
-
@dc42 Thanks a lot for your time! I really do appreciate it, and will update the repository soon with the fix for that bug in the display file.
-
@jadonm, I have fixed the RRF code in the soon-to-be-released 3.3beta3.
-
@dc42 I just updated to the RRF 3.3 beta2 on the Mini5, im now not seeing the Display card under files anymore although the SD card files are still there. Any ideas?
-
@leckietech Theres a dropdown menu top left in system to switch to the menu/display files
-
@jay_s_uk said in 12864 Display Unresponsive on Preheat Page 3.3b2:
@leckietech Theres a dropdown menu top left in system to switch to the menu/display files
Ah, got it. Thanks, heres a photo for anyone stuck in the future:
-
@dc42 said in 12864 Display Unresponsive on Preheat Page 3.3b2:
I have fixed the RRF code in the soon-to-be-released 3.3beta3
Wow! Your excellent support continues to amaze me!