DWC not accessible, M122 causes timeout
-
FINAL EDIT: Ethernet daughterboard developed fault. Replacement rectified any issues. Easiest diagnosis is checking whether the chip on the Ethernet submodule is excessively hot.
Hi all,
all of a sudden I can't connect to DWC on my Duet 2 Ethernet anymore. The ethernet LEDs blink while trying to access DWC.
I'm running firmware version 2.02.M115 output is:
FIRMWARE_NAME: RepRapFirmware for Duet 2 WiFi/Ethernet FIRMWARE_VERSION: 2.02(RTOS) ELECTRONICS: Duet Ethernet 1.02 or later + DueX5 FIRMWARE_DATE: 2018-12-24b1 ok
I then temporarily stole the extruder to keep working on a different printer. While coming back to Duet2 printer in question I noticed that one lead the heating cartridge had broken off. Likely happend during my disassembly AFTER I couldn't connect to DWC anymore. I since replaced the heater cartridge.
While inspecting the Duet2 Ethernet board I noticed that the Diag-LED was permanently on after flashing once while booting. The documentation is not helpful but apparently sometimes that's bad except when "the probe type is set to M558 P1 in config.g" which it is in my case.
Lacking other options I've also replaced the contents of the SD-card with a backup. Since doing so the Diag-LED does NOT stay on (only flashes once), even though I believe it should (why?).Throughout all that, I can connect to the board via USB and still execute G- and M-commands.
I tested everything with VIN applied or USB-Power alone, Ethernet plugged in and removed. Voltage LED's all light up as they should. I tested all endstops, temp sensors and moved all Axis, everything is as normal. Same Behavior over USB with everything unplugged as well.
M115, M140 etc still work as expected. M552 does too but the board does not respond to M552 S0 and M122. YAT says "waiting for reconnect". If I manually close and open the connection again without powercycling the board I'm back to it responding to M115 etc.
Frustratingly the same happens for M122.This leads me to believe that ~something~ is wrong with the networking subsystem and any command interfacing with it fails.
I tried updating UWC on its own but noticed no changes.
Should I try to reflash the firmware? Update to the latest 2.x?
What's up with the Diag-LED behavior?Any help is greatly appreciated.
-
Can you post your config.g?
How was your networking setup previously?
Did the Duet have an assigned IP address or was it getting one from DHCP?
If you send M552 what does it respond with?
What are the contents of the /www folder?
What IP address are you trying to reach to get to DWC?
What error message do you get in your browser?
Are you able to ping the IP address your Duet had?
-
@stretchy It is normal that the diag LED flashes once when the board is powered on and it's definitely a good idea to upgrade to 2.05.1 as well. Apart from that please check the questions @Phaedrux posted. It might be possible that the microSD card could not be read which would cause the same symptoms - check by sending
M122
over USB. -
First of all many thanks for your debugging guidance!
networking was setup using an assigned IP (169.254.183.38) and sending M552 returnsNetwork is enabled, configured IP address: 169.254.183.38, actual IP address: 169.254.183.38 ok
Trying to connect to 169.254.183.38 in firefox results:
"unable to connect, can't establish a connection to the server at 169.254.183.38" "The site could be temporarily unavailable or too busy..."
its trying for a couple of seconds though and I see the Ethernet LEDs flash on the duet2.
Pinging 169.254.183.38 works perfectly fine and it consistently responds within 2ms.contents in /www on the SD card:
D:. │ favicon.ico.gz │ index.html.gz │ ├───css │ app.c3eac487.css.gz │ app.eb4376bc.css.gz │ ├───fonts │ materialdesignicons-webfont.2abd86f9.ttf.gz │ materialdesignicons-webfont.2dcce271.woff │ materialdesignicons-webfont.3e2c1c79.eot.gz │ materialdesignicons-webfont.4c3075c9.woff2 │ materialdesignicons-webfont.88ffecaf.woff │ materialdesignicons-webfont.a323c28e.woff2 │ materialdesignicons-webfont.c7a79340.eot.gz │ materialdesignicons-webfont.e7dec9c5.ttf.gz │ └───js app.289e2336.js.gz app.289e2336.js.map.gz app.2a4070cd.js.gz app.2a4070cd.js.map.gz app.dbb6d215.js.gz app.dbb6d215.js.map.gz
and lastly my config.g
; General preferences G90 ; send absolute coordinates... M82 ; ...but relative extruder moves M550 P"BLV" ; set printer name M669 K1 ; select CoreXY mode ; Network M552 P169.254.183.38 S1 ; enable network and set IP address M553 P255.255.255.0 ; set netmask M554 P169.254.183.0 ; set gateway M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drive Settings M569 P0 S0 ; physical drive 0 goes backwards (x motor) M569 P1 S0 ; physical drive 1 goes backwards (y motor) M569 P2 S0 ; physical drive 2 goes forwards (Left Z) M569 P4 S0 ; physical drive 4 goes forwards (Right Z) M569 P3 S0 ; physical drive 3 goes forwards (E0 motor) tool 0 Paste M584 X0 Y1 Z2:4 E3 ; set drive mapping Drive 3-> FDM Drive 2-> LeftZ Drive 4-> Right Z M350 X16 Y16 Z16:16 E16 I1 ; configure microstepping with interpolation E0:16, E1:16 M92 X200 Y200 Z800:800 E800 ; set steps per mm E1:800 M566 X800 Y800 Z80:80 E300 ; set maximum instantaneous speed changes (mm/min) M203 X20000 Y20000 Z10000:100000 E2000 ; set maximum speeds (mm/min) M201 X1500.00 Y1500.00 Z200:200 E250.00 ; set accelerations (mm/s^2) M906 X1350 Y1350 Z1100:1100 E1200 I30 ; set motor currents (mA) and motor idle factor in % M84 S30 ; Set idle timeout ; Axis Limits Zero position at left corner ;M208 X60 Y50 Z0 S1 ; set axis minima ;M208 X405 Y290 Z300 S0 ; set axis maxima ; Axis Limits Zero position at center M208 X-180:120 Y-100:170 ;Lead Position M671 X-235:205 Y20:20 S10 ; Z-Probe M307 H3 A-1 C-1 D-1 M558 P9 H5 F500 T1000 G31 X50 30 Z0 P25 ;M557 X-100:160 Y-100:130 S80 ; define mesh grid ; Endstops M574 X1 Y2 S1 ; set active high endstops M574 Z1 S2 ; set endstops controlled by probe ; Heaters M140 H0 ; disable heated bed M305 P0 T100000 B4267 R4700 M305 P1 T100000 B4267 R4700 ; set thermistor + ADC parameters for heater 1 M143 H1 S285 ; set temperature limit for heater 1 to 285C M301 H1 P21.1 I0.816 D59.6 ; Fans M106 P0 S0 I0 F500 H-1 ; set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off M106 P1 S1 I0 F500 H1 T45 ; set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on ; Tools M563 P0 S"Paste" D0 ; define tool 0, use Drive 3 in M584 G10 P0 X0 Y-80 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temp to 0C M501 ; Custom settings are not defined
-
@chrishamm today I tried another SD-card and noticed no changes.
M122 does not return anything and makes the controller stall (?). Reconnecting YAT makes it responsive again but waiting has no effect. I know M122 can take a while to execute but no dice. -
@stretchy What is the IP address of your computer's Ethernet adapter? It is rather unusual to have a link-local IP address (169.254..) in config.g, so I suspect you connect your board directly to your PC. If the Duet is connected to your router and not directly to your PC, change
M552 P169.254.183.38 S1
toM552 P0.0.0.0 S1
and remove the line starting withM554 P169.254.183.0
. -
@chrishamm oops, I failed to mention that It is indeed connected directly to my PC. Tried on two PCs with a USB Ethernet Adapter and their built-in Ethernet ports. Pinging always works. In the network configuration the network shows up as 169.254.183.40 instead of the set ...38.
-
I tried updating the firmware using the first fallback method mentioned here:
https://duet3d.dozuki.com/Wiki/Installing_and_Updating_Firmware_(Legacy)#Section_Fallback_procedure_Num_1
It didn't work but fallback #2 did by commenting out M552 in config.g.
Now im on 2.05.1, DWC still isn't working but the controller no longer crashes on M552 Pn.n.n.n S1 commands. -
Are you able to connect the Duet to a router and use DHCP as a test?
Do you have a different computer/browser to test with as well?
The Duet appears to be responding as it should, the DWC is just not loading on the PC. There could be external network reasons for that as well.
The ethernet port lights are showing activity. The SD card is being read and showing the DWC files there. It's responding to pings. It responds over USB terminal and took a firmware update.
Which reminds me, when you updated the firmware to 2.05.1 did you also update the DWC files in the /www folder?
https://github.com/Duet3D/RepRapFirmware/releases/download/2.05.1/DuetWebControl-SD-2.0.7.zip
-
I've revisited my duet2 ethernet machine and the error still persists. Things that changed since last time are:
-updated to RRF3.0 and DWC 3.x
-m122 works now as long as networking is disabled (m552 s0)Below is an orderly list demonstrating what my problem looks like. I want to know if there is a possible mismatch of Firmware/DWC or some low level firmware is bricked. Basically is this fixable or will I need a new board and could I potentially get away with a new ethernet daughter board?
networking section of config.g
; Network M552 P192.168.1.117 ; (0 = DHCP) M554 P192.168.1.1 ; Gateway M553 P255.255.255.0 ; Netmask
and config in win10
ipv4 configured via controlpanel IP address 192.168.1.1 subnet mask 255.255.255.0
-
USB serial with YAT
M115FIRMWARE_NAME: RepRapFirmware for Duet 2 WiFi/Ethernet FIRMWARE_VERSION: 3.0 ELECTRONICS: Duet Ethernet 1.02 or later + DueX5 FIRMWARE_DATE: 2020-01-03b3 ok
M122
=== Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 3.0 running on Duet Ethernet 1.02 or later + DueX5 Board ID: i removed that for this post Used output buffers: 1 of 24 (1 max) === RTOS === Static ram: 30516 Dynamic ram: 91800 of which 108 recycled Exception stack ram used: 256 Never used ram: 8392 Tasks: NETWORK(ready,2048) HEAT(blocked,1240) DUEX(suspended,160) MAIN(running,3764) IDLE(ready,156) Owned mutexes: === Platform === Last reset 00:03:19 ago, cause: software Last software reset time unknown, reason: Stuck in spin loop, spinning module GCodes, available RAM 7984 bytes (slot 1) Software reset code 0x0083 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0040080f BFAR 0xe000ed38 SP 0x200031dc Task 0x5754454e Stack: 00404899 0040489a 0100f000 00000108 0040459d 00000108 00404abd 00000008 00404ad7 00000000 00000000 00000000 00404b81 00000006 ffffffff 200184b8 00000000 00000001 00000000 00000006 00405f7d 200183f8 200029dc Error status: 0 Free file entries: 10
-
latter half of M122
Free file entries: 10 SD card 0 detected, interface speed: 20.0MBytes/sec SD card longest block write time: 0.0ms, max retries 0 MCU temperature: min 31.3, current 32.0, max 32.3 Supply voltage: min 0.5, current 0.5, max 0.5, under voltage events: 0, over voltage events: 0, power good: no Driver 0: ok, SG min/max not available Driver 1: ok, SG min/max not available Driver 2: ok, SG min/max not available Driver 3: ok, SG min/max not available Driver 4: ok, SG min/max not available Driver 5: ok, SG min/max not available Driver 6: ok, SG min/max not available Driver 7: ok, SG min/max not available Driver 8: ok, SG min/max not available Driver 9: ok, SG min/max not available Date/time: 1970-01-01 00:00:00 Cache data hit count 268624066 Slowest loop: 0.23ms; fastest: 0.07ms I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
-
The last part of the M122 debug output I'm unfortunately not allowed to post as it gets caught in the spam filter. But basically all looks good, network is offline and no one is connected to the duet
then enabling networking via USB serial
m552 Network is disabled, configured IP address: 192.168.1.117, actual IP address: 192.168.1.117 ok m552 s1 ok m552 Network is enabled, configured IP address: 192.168.1.117, actual IP address: 192.168.1.117 ok
pinging IP address on my connected PC
C:\>ping 192.168.1.117 Pinging 192.168.1.117 with 32 bytes of data: Reply from 192.168.1.117: bytes=32 time<1ms TTL=128 Reply from 192.168.1.117: bytes=32 time<1ms TTL=128 Reply from 192.168.1.117: bytes=32 time<1ms TTL=128 Reply from 192.168.1.117: bytes=32 time<1ms TTL=128 Ping statistics for 192.168.1.117: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms
M122 via USB serial in YAT again
*no response*, serial connection terminated *windows unplug sound* .... 10s later *windows plug in sound* (board crashed and rebooted)
and then we start at the top again. M122 works again and M552 reports networking disabled.
What could be the issue here?
-
@stretchy said in DWC not accessible, M122 causes timeout:
Last software reset time unknown, reason: Stuck in spin loop, spinning module GCodes
this obviously sticks out but i dont know what to make of it nor how to fix it.
Any help is greatly appreciated. Apologies for the multiple posts but akismet.com would not allow a post that long and sections of the M122 response. -
@stretchy said in DWC not accessible, M122 causes timeout:
I've revisited my duet2 ethernet machine and the error still persists. Things that changed since last time are:
-updated to RRF3.0 and DWC 3.x
-m122 works now as long as networking is disabled (m552 s0)Below is an orderly list demonstrating what my problem looks like. I want to know if there is a possible mismatch of Firmware/DWC or some low level firmware is bricked. Basically is this fixable or will I need a new board and could I potentially get away with a new ethernet daughter board?
networking section of config.g
; Network M552 P192.168.1.117 ; (0 = DHCP) M554 P192.168.1.1 ; Gateway M553 P255.255.255.0 ; Netmask
and config in win10
ipv4 configured via controlpanel IP address 192.168.1.1 subnet mask 255.255.255.0
this shows you're setting the gateway on the duet to the same IP address as you're setting the win10 IP address. Is that correct?
Can you set the Win10 IP address to a different IP?This is a direct ethernet connection between the duet and win10 pc?
-
When and where did you purchase the Duet?
-
@phaedrux yes the Duet2 Ethernet board is directly connected to a dedicated PC for that single machine.
-
@phaedrux the duet 2 board was purchased on duet3d.com, I believe in mid 2020 to early 2021.
-
@stretchy RepRapFirmware 3.0 is outdated, please upgrade to RRF+DWC v3.3 or newer - see here. If the board still fails to serve the web interface after that, please try to access it from another device (e.g. smartphone or tablet) and check if that works. If it still resets at some point, please share the output from
M122
again. -
@chrishamm I've updated to RRF3.3 using these steps:
- copy Duet2CombinedFirmware.bin to /sys
- copy the folders /js, /css, /fonts, /img into /sys (not documented what they do but to be safe I copied these too)
- copy the Duet2CombinedIAP.bin to the SD card (can only be found in the old RRF 3.0 release, iap4e.bin does not work anymore)
- insert SD and M997 S0 to start update
- M115 to verify update
- M122 to gather new log
M115 FIRMWARE_NAME: RepRapFirmware for Duet 2 WiFi/Ethernet FIRMWARE_VERSION: 3.3 ELECTRONICS: Duet Ethernet 1.02 or later + DueX5 FIRMWARE_DATE: 2021-06-15 21:45:03 ok M122 === Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 3.3 (2021-06-15 21:44:54) running on Duet Ethernet 1.02 or later + DueX5 Board ID: XXX Used output buffers: 1 of 24 (1 max) === RTOS === Static ram: 23876 Dynamic ram: 70988 of which 24 recycled Never used RAM 19528, free system stack 205 words Tasks: NETWORK(ready,6.1%,565) HEAT(delaying,0.0%,341) Move(notifyWait,0.1%,364) DUEX(notifyWait,0.0%,24) MAIN(running,92.8%,467) IDLE(ready,1.0%,29), total 100.0% Owned mutexes: USB(MAIN) === Platform === Last reset 00:01:04 ago, cause: software Last software reset time unknown, reason: StuckInSpinLoop, GCodes spinning, available RAM 19528, slot 1 Software reset code 0x0083 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0040080f BFAR 0xe000ed38 SP 0x200034dc Task NETW Freestk 541 ok Stack: 00411ff3 00411eb8 01000000 00000108 00411c57 00000108 00000108 0000000b 0041217d 00000000 0041218f 00000000 00412225 00000000 ffffffff 20011800 00000000 00000001 00000000 00000006 004133cf 00000000 0045a465 20011744 00000000 20011744 0045a701 Error status: 0x00 Step timer max interval 0 MCU temperature: min 31.9, current 32.4, max 32.9 Supply voltage: min 0.5, current 0.5, max 0.6, under voltage events: 0, over voltage events: 0, power good: no Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0 Driver 0: position 0, ok, SG min/max not available Driver 1: position 0, ok, SG min/max not available Driver 2: position 0, ok, SG min/max not available Driver 3: position 0, ok, SG min/max not available Driver 4: position 0, ok, SG min/max not available Driver 5: position 0, ok, SG min/max not available Driver 6: position 0, ok, SG min/max not available Driver 7: position 0, ok, SG min/max not available Driver 8: position 0, ok, SG min/max not available Driver 9: position 0, ok, SG min/max not available Driver 10: position 0 Driver 11: position 0 Date/time: 1970-01-01 00:00:00 Cache data hit count 2530716960 Slowest loop: 4.10ms; fastest: 0.13ms I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 === Storage === Free file entries: 10 SD card 0 detected, interface speed: 20.0MBytes/sec SD card longest read time 0.4ms, write time 0.0ms, 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 -1 -1, chamberHeaters = -1 -1 -1 -1 === 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 ready with "M122" 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. === DueX === Read count 1, 0.94 reads/min === Network === Slowest loop: 0.22ms; fastest: 0.00ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions HTTP sessions: 0 of 8 Interface state disabled, link down ok