Solved PanelDue intermittently not working
I have a RatRig V-Core 3 printer with Duet 3 6HC and a PanelDue 5i connected to it on IO_0.
Configuration is set up and the PanelDue works... but only sometimes.
Behavior is as follows:
- Upon powering the printer on (using a smart power plug), everything starts up well, but sometimes PanelDue is stuck "Connecting" for ever.
- Other times, everything starts up fine, PanelDue connects to the mainboard, but doesn't display any changes from initial values. It updates once with data, then nothing, the same data is being displayed.
- More rarely, everything starts fine, PanelDue works as expected, refreshes data, everything is fine.
The change in behavior from one startup from another is happening without any modification of config.g or any other files. It's just a lottery when it starts up.
config.g entry for PanelDue below:
M575 P1 S1 B57600
The line is at the very end of the config.g file.
How would I go about troubleshooting why, sometimes, it's not working as expected?
jay_s_uk last edited by
@war4peace how long is the cable? have you made it up yourself?
war4peace last edited by war4peace
No, the cable is the one which comes with the PanelDue, original cable. It was in the box. I have checked its continuity, and it's good.
LE: the cable is 800mm long.
Stephen6309 last edited by
@war4peace Run M98 P"config.g" to see if there are any errors. Mine got stuck connecting once, when a random gremlin decided one day to make my config.g zero bytes.
What firmware version are you running on the Duet3 and the PanelDue? Can you provide the results of M122? The PD firmware version can be found on the setup page.
Duet should be 3.2.2 and the PanelDue should be at least 1.24.
RFF is 3.2.2
PanelDue firmware version is 1.2.4
M122 results below:
M122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.2.2 running on Duet 3 MB6HC v1.01 or later (SBC mode) Board ID: 08DJM-956BA-NA3TN-6J9FL-3S86T-9TBYS Used output buffers: 1 of 40 (10 max) === RTOS === Static ram: 149788 Dynamic ram: 62692 of which 44 recycled Never used RAM 146308, free system stack 200 words Tasks: Linux(ready,105) HEAT(blocked,297) CanReceiv(blocked,927) CanSender(blocked,371) CanClock(blocked,352) TMC(blocked,53) MAIN(running,1187) IDLE(ready,19) Owned mutexes: HTTP(MAIN) === Platform === Last reset 00:20:45 ago, cause: power up Last software reset at 2021-04-29 16:45, reason: User, none spinning, available RAM 146100, slot 2 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 MCU temperature: min 20.9, current 38.9, max 39.1 Supply voltage: min 23.9, current 23.9, max 24.0, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.1, current 12.2, max 12.2, under voltage events: 0 Driver 0: position 0, standstill, reads 39068, writes 15 timeouts 0, SG min/max 0/0 Driver 1: position 0, standstill, reads 39068, writes 15 timeouts 0, SG min/max 0/0 Driver 2: position 0, standstill, reads 39068, writes 15 timeouts 0, SG min/max 0/0 Driver 3: position 0, standstill, reads 39068, writes 15 timeouts 0, SG min/max 0/0 Driver 4: position 0, standstill, reads 39068, writes 15 timeouts 0, SG min/max 0/0 Driver 5: position 0, standstill, reads 39069, writes 15 timeouts 0, SG min/max 0/0 Date/time: 2021-05-10 09:09:42 Slowest loop: 0.45ms; 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: mesh, 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. === CAN === Messages queued 4892, send timeouts 11120, received 0, lost 0, longest wait 0ms for reply type 0, free buffers 48 === SBC interface === State: 4, failed transfers: 0 Last transfer: 2ms ago RX/TX seq numbers: 44799/44799 SPI underruns 0, overruns 0 Number of disconnects: 0, IAP RAM available 0x2c8a8 Buffer RX/TX: 0/0-0 === Duet Control Server === Duet Control Server v3.2.2 Code buffer space: 4096 Configured SPI speed: 8000000 Hz Full transfers per second: 0.25 Maximum length of RX/TX data transfers: 2720/852
@Stephen6309 M98 results below:
M98 P"config.g" Warning: The height map was loaded when the current Z=0 datum was not determined. This may result in a height offset. Height map loaded from file heightmap.csv CORS disabled CORS disabled CORS disabled Warning: M307: Heater 0 appears to be over-powered. If left on at full power, its temperature is predicted to reach 266C
Heater 0 is bed heater which is a Keenovo 1500W powered through SSR - so no worries there, and the Height Map thing appears right after the printer is powered up, before homing, which is nothing to worry about either.
I should have asked for the full config.g as well.
The heightmap error is probably because you have a G29 S1 in config.g and it's complaining that it's loading a heightmap before the Z axis has been homed with a probe. G29 S1 should rather be in your slicer start gcode or at the end of homeall.
the CORS disabled errors are probably because you have networking commands in config.g but are also using the SBC which handles networking, so the network commands should be removed from config.g.
The temp warning is just a warning about what the firmware estimates as the reachable temp in a failure full on situation.
You could try updating your paneldue with the more recent 3.x releases.
Here's my full config.g:
; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"duet3" ; set printer name M669 K1 ; CoreXY G29 S1 ; Set Units to Millimeters ; Network ;M552 P0.0.0.0 S1 ; enable network and acquire dynamic address via DHCP M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0.0 S1 D2 ; physical drive 0.0 goes forwards M569 P0.1 S1 D2 ; physical drive 0.1 goes forwards M569 P0.2 S1 D2 ; physical drive 0.2 goes forwards M569 P0.3 S1 D2 ; physical drive 0.3 goes forwards M569 P0.4 S1 D2 ; physical drive 0.4 goes forwards M569 P0.5 S1 D2 ; physical drive 0.5 goes forwards M584 X0.4 Y0.3 Z0.0:0.1:0.2 E0.5 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z800.00 ; set steps per mm M906 X1000 Y1000 Z800 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout M566 X400.00 Y400.00 Z6.00 E400 P1 ; set maximum instantaneous speed changes (mm/min) M203 X18000.00 Y18000.00 Z1000.00 E3600.00 ; set maximum speeds (mm/min) M201 X2500.00 Y2500.00 Z100.00 E3600.00 ; set accelerations (mm/s^2) M593 F40.5 ; set DAA ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X500 Y500 Z500 S0 ; set axis maxima ; Endstops M574 X1 S1 P"io1.in" ; configure active high endstops at minX M574 Y2 S1 P"io2.in" ; configure active high endstops at maxY M574 Z1 S2 ; configure Z-probe endstop for low end on Z M671 X-4.5:250:504.5 Y-4.52:505:-4.52 S50 ; Define positions of Z leadscrews or bed levelling screws ; Z-Probe ;; Inductive Probe ; M558 P5 C"!io3.in" H5 F400 T5000 ; set Z probe type to unmodulated and the dive height + speeds ;; BL-touch ;M558 P9 C"io7.in" H5 F500 T10800 ; set Z probe type to unmodulated and the dive height + speeds M558 P9 C"io7.in" F100 H5 R0.2 T6000 A5 B1 M950 S0 C"io7.out" ;M307 H7 A-1 C-1 D-1 M557 X10:470 Y10:470 P5 ; define mesh grid ; Heaters M308 S0 P"temp0" Y"thermistor" T100000 B3950 A"Bed" ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0 M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S150 ; set temperature limit for heater 0 to 150C ;; Run Bed PID Tune!! Bellow is an example for a 300x300 bed M307 H0 R0.800 C302.0 D3.69 S1.00 V23.9 ; Fans M950 F0 C"out2" Q500 ; create fan 0 on pin out2 and set its frequency M106 P0 C"Layer Fan" S0 H1 L255 ; set fan 0 name and value. Thermostatic control turned on for Hotend M950 F1 C"out3" Q500 ; create fan 1 on pin out3 and set its frequency M106 P1 C"Heatsink Fan" S0 T45 H-1 L255 ; set fan 1 name and value. Thermostatic control is turned off ; Tools M563 P0 D0 H1 F1 ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C M308 S1 P"temp1" Y"pt1000" A"Hotend" ;; Run Heater PID Tune!! M950 H1 C"out1" T1 ; create nozzle heater output on out2 and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S300 M307 H1 R2.622 C137.2:121.1 D4.57 S1.00 ; EVA 2 / BMG / E3D V6 M92 E830 ; set extruder steps per mm, 0.9 angle/step M906 E800 ; set extruder motor current (mA) and idle factor in per cent G31 P500 X-28 Y-28 Z2.22 ; set Z probe trigger value, offset and trigger height, more Z means closer to the bed ; Pressure Advance M572 D0 S0.16 ;Taper Height M376 H20 ; PanelDue 5i for Duet 3 6CH M575 P1 S1 B57600 T0
G29 S1 ; Set Units to Millimeters
command and comment don't match. G21 sets to mm.
But that's what's throwing the Z datum warning.
M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet
I believe these are the commands generating the CORS errors and can be removed.
I don't see anything else that would affect the PanelDue. Updating the PD firmware would be my next step.
Thank you for that, the original config.g was taken from the printer manufacturer's website, and I had to change quite a few things in it, I didn't catch the G29/G21 stuff. I fixed it now.
I'll update PD firmware and see if that changed anything.
Will post with results.
Thank you for the help!
The only other thing that would be an obvious issue would be wiring or crimps that are intermittently losing connection/failing. Creating a new 4-wire cable couldn't hurt.
I updated the firmware to latest version using BOSSA.