Duet Maestro taking forever to establish Ethernet Link
-
For some reason, my new Duet Maestro is taking forever to establish a network link. I've tired newer firmware versions and older firmware versions. I ended up putting 2.03 back on it after an erase to see if that helped since it came with 2.03 out of the box.
21:41:01.400 -> RepRapFirmware for Duet 2 Maestro Version 2.03 dated 2019-06-13b2 21:41:01.400 -> 21:41:01.400 -> Executing config.g...HTTP is enabled on port 80 21:41:01.400 -> FTP is disabled 21:41:01.400 -> TELNET is disabled 21:41:01.400 -> 21:41:01.400 -> Done! 21:41:01.400 -> RepRapFirmware for Duet 2 Maestro is up and running. 21:42:55.637 -> === Diagnostics === 21:42:55.637 -> RepRapFirmware for Duet 2 Maestro version 2.03 running on Duet Maestro 1.0 21:42:55.637 -> Board ID: 08DAM-9F9DA-MWNS8-6J1D2-3SJ6L-1P0UX 21:42:55.637 -> Used output buffers: 1 of 24 (2 max) 21:42:55.637 -> === RTOS === 21:42:55.637 -> Static ram: 19664 21:42:55.637 -> Dynamic ram: 87696 of which 0 recycled 21:42:55.637 -> Exception stack ram used: 212 21:42:55.637 -> Never used ram: 23500 21:42:55.637 -> Tasks: NETWORK(ready,1972) HEAT(blocked,1276) MAIN(running,3908) IDLE(ready,160) 21:42:55.637 -> Owned mutexes: 21:42:55.637 -> === Platform === 21:42:55.637 -> Last reset 00:01:56 ago, cause: power up 21:42:55.637 -> Last software reset at 2020-05-30 19:52, reason: User, spinning module GCodes, available RAM 23756 bytes (slot 2) 21:42:55.637 -> Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0400f000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d 21:42:55.637 -> Error status: 0 21:42:55.637 -> Free file entries: 10 21:42:55.637 -> SD card 0 detected, interface speed: 15.0MBytes/sec 21:42:55.637 -> SD card longest block write time: 0.0ms, max retries 0 21:42:55.637 -> MCU temperature: min 24.1, current 29.8, max 30.0 21:42:55.637 -> Supply voltage: min 0.0, current 24.4, max 24.4, under voltage events: 0, over voltage events: 0, power good: yes 21:42:55.637 -> Driver 0: standstill, read errors 0, write errors 0, ifcount 6, reads 2161, timeouts 0 21:42:55.637 -> Driver 1: standstill, read errors 0, write errors 0, ifcount 6, reads 2161, timeouts 0 21:42:55.637 -> Driver 2: standstill, read errors 0, write errors 0, ifcount 6, reads 2161, timeouts 0 21:42:55.637 -> Driver 3: standstill, read errors 0, write errors 0, ifcount 6, reads 2161, timeouts 0 21:42:55.637 -> Driver 4: standstill, read errors 0, write errors 0, ifcount 6, reads 2161, timeouts 0 21:42:55.637 -> Driver 5: ok, read errors 0, write errors 0, ifcount 0, reads 0, timeouts 2166 21:42:55.637 -> Driver 6: ok, read errors 0, write errors 0, ifcount 0, reads 0, timeouts 2166 21:42:55.637 -> Date/time: 1970-01-01 00:00:00 21:42:55.637 -> Slowest loop: 3.82ms; fastest: 0.06ms 21:42:55.637 -> I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 21:42:55.637 -> === Move === 21:42:55.637 -> Hiccups: 0, FreeDm: 169, MinFreeDm: 169, MaxWait: 0ms 21:42:55.637 -> Bed compensation in use: none, comp offset 0.000 21:42:55.637 -> === DDARing === 21:42:55.637 -> Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 21:42:55.637 -> === Heat === 21:42:55.637 -> Bed heaters = 0, chamberHeaters = -1 -1 21:42:55.637 -> Heater 1 is on, I-accum = 0.0 21:42:55.637 -> === GCodes === 21:42:55.637 -> Segments left: 0 21:42:55.637 -> Stack records: 1 allocated, 0 in use 21:42:55.637 -> Movement lock held by null 21:42:55.637 -> http is idle in state(s) 0 21:42:55.637 -> telnet is idle in state(s) 0 21:42:55.637 -> file is idle in state(s) 0 21:42:55.637 -> serial is ready with "M122" in state(s) 0 21:42:55.637 -> aux is idle in state(s) 0 21:42:55.637 -> daemon is idle in state(s) 0 21:42:55.637 -> queue is idle in state(s) 0 21:42:55.637 -> lcd is idle in state(s) 0 21:42:55.637 -> autopause is idle in state(s) 0 21:42:55.637 -> Code queue is empty. 21:42:55.637 -> === Network === 21:42:55.637 -> Slowest loop: 0.77ms; fastest: 0.02ms 21:42:55.637 -> Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) 21:42:55.637 -> HTTP sessions: 0 of 8 21:42:55.637 -> Interface state 2, link down 21:42:55.637 -> ok 21:50:46.376 -> Network running, IP address = 192.168.2.239
As you can see, it took it 9 minutes to establish a link. It's directly connected to a standard unmanaged Netgear GS116 switch. This only seems to be an issue when I power cycle the board, as changing config or emergency stop, etc... doesn't make it take this long. Firmware updates do however make it take a long time.
I'll continue some testing to see if its 9 minutes every time, but not sure what else to check.
Edit to include config.g
; Configuration file for Duet Maestro (firmware version 2.03) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v2.1.8 on Mon May 25 2020 19:49:19 GMT-0400 (EDT) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Prusa i3 MK3S" ; set printer name ; Network ;M551 P"its_a_secret" ; set password ;M552 P0.0.0.0 S1 ; enable network and acquire dynamic address via DHCP M552 P192.168.2.239 S1 ; Enable network and set IP address M553 P255.255.255.0 ; Set netmask M554 P192.168.2.254 ; Set gateway M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0 S0 ; physical drive 0 goes reverse M569 P1 S1 ; physical drive 1 goes forwards M569 P2 S0 ; physical drive 2 goes reverse M569 P3 S1 ; physical drive 3 goes forwards M569 P4 S0 ; physical drive 4 goes reverse M584 X0 Y1 Z2:4 E3 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation ;M350 E16 I0 ; configure microstepping without interpolation M92 X100.00 Y100.00 Z400.0 ; set steps per mm M92 E418.00 ; Set extruder steps/mm ; e_steps_per_mm = (motor_steps_per_rev * driver_microstep) * gear_ratio / (hob_effective_diameter * pi) ; (200 * 16) * 3 / (7.77 * 3.14159) = 393.2786 ; (200 * 16) * 3 / (7.3 * 3.14159) = 418.5993 M566 X900.00 Y900.00 Z12.00 E120.00 ; set maximum instantaneous speed changes (mm/min) M203 X12000.00 Y12000.00 Z720.00 E1200.00 ; set maximum speeds (mm/min) M201 X1000.00 Y1000.00 Z200.00 E350.00 ; set accelerations (mm/s^2) M906 X600 Y600 Z600 E600 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X0 Y-4 Z-2 S1 ; set axis minima M208 X240 Y202 Z210 S0 ; set axis maxima ; Endstops M574 X1 Y1 S0 ; set active high endstops M574 Z1 S2 ; set endstops controlled by probe ; Z-Probe M558 P9 H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X-42 Y0 Z0.690 ; set Z probe trigger value, offset and trigger height (0.690 mm) ; add if nozzle too far from bed ; subtract if nozzle too close to bed M557 X15:215 Y15:195 S20 ; define mesh grid ; Heaters M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit M305 P0 T100000 B4138 R2200 ; set thermistor + ADC parameters for heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C ;M305 P1 T98801 B4185 R2200 ; set thermistor + ADC parameters for heater 1 M305 P1 T100000 B4725 R2200 C7.06e-8 ; set thermistor + ADC parameters for heater 1 M143 H1 S285 ; set temperature limit for heater 1 to 285C ; 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 M106 P2 S1 I0 F500 H100:101:102 T45:65 ; set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on ; MCU temperature (virtual heater 100), TMC2660 drivers (virtual heaters 101 and 102) ; Tools M563 P0 D0 H1 F0 ; 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 ; Automatic power saving M911 S21 R23 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss ; Custom settings are not defined ;M912 P0 S-7.25 ; Calibrate MCU temperature (Tr=24.35 - Tc=31.6) ; Pressure Advance ;M572 D0 S0.1 ; Miscellaneous T0 ; select first tool
I am aware my config is not complete, as I'm still in the process of setting everything up including fans, endstops, limits, etc...
-
Does it matter that I have another Duet Maestro on the same network? I know with my multiple Duet 0.8.5 boards, I had to give each one a unique MAC in config.g otherwise they'd fight each other over the network and not talk to anything.
-
Added M111 P1 S1 to my config.g file, but nothing in the diagnostics. It did take a few minutes after that change to restart the Ethernet link.
22:23:20.685 -> RepRapFirmware for Duet 2 Maestro Version 2.03 dated 2019-06-13b2 22:23:20.685 -> 22:23:20.685 -> Executing config.g...Debugging enabled for modules: Network(1) 22:23:20.685 -> Debugging disabled for modules: Platform(0) Webserver(2) GCodes(3) Move(4) Heat(5) DDA(6) Roland(7) Scanner(8) PrintMonitor(9) Storage(10) PortControl(11) DuetExpansion(12) FilamentSensors(13) WiFi(14) Display(15) 22:23:20.685 -> HTTP is enabled on port 80 22:23:20.685 -> FTP is disabled 22:23:20.685 -> TELNET is disabled 22:23:20.685 -> 22:23:20.685 -> Done! 22:23:20.685 -> RepRapFirmware for Duet 2 Maestro is up and running. 22:24:35.932 -> === Diagnostics === 22:24:35.932 -> RepRapFirmware for Duet 2 Maestro version 2.03 running on Duet Maestro 1.0 22:24:35.932 -> Board ID: 08DAM-9F9DA-MWNS8-6J1D2-3SJ6L-1P0UX 22:24:35.932 -> Used output buffers: 1 of 24 (2 max) 22:24:35.932 -> === RTOS === 22:24:35.932 -> Static ram: 19664 22:24:35.932 -> Dynamic ram: 87696 of which 0 recycled 22:24:35.932 -> Exception stack ram used: 264 22:24:35.932 -> Never used ram: 23448 22:24:35.932 -> Tasks: NETWORK(ready,1972) HEAT(blocked,1276) MAIN(running,3908) IDLE(ready,160) 22:24:35.932 -> Owned mutexes: 22:24:35.932 -> === Platform === 22:24:35.932 -> Last reset 00:01:16 ago, cause: power up 22:24:35.932 -> Last software reset at 2020-05-30 22:23, reason: User, spinning module GCodes, available RAM 23432 bytes (slot 1) 22:24:35.932 -> Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x04432000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d 22:24:35.932 -> Error status: 0 22:24:35.932 -> Free file entries: 10 22:24:35.932 -> SD card 0 detected, interface speed: 15.0MBytes/sec 22:24:35.932 -> SD card longest block write time: 0.0ms, max retries 0 22:24:35.932 -> MCU temperature: min 32.6, current 34.3, max 34.7 22:24:35.932 -> Supply voltage: min 0.0, current 24.3, max 24.4, under voltage events: 0, over voltage events: 0, power good: yes 22:24:35.932 -> Driver 0: standstill, read errors 0, write errors 0, ifcount 6, reads 2686, timeouts 0 22:24:35.932 -> Driver 1: standstill, read errors 0, write errors 0, ifcount 6, reads 2686, timeouts 0 22:24:35.932 -> Driver 2: standstill, read errors 0, write errors 0, ifcount 6, reads 2686, timeouts 0 22:24:35.932 -> Driver 3: standstill, read errors 0, write errors 0, ifcount 6, reads 2686, timeouts 0 22:24:35.932 -> Driver 4: standstill, read errors 0, write errors 0, ifcount 6, reads 2686, timeouts 0 22:24:35.932 -> Driver 5: ok, read errors 0, write errors 0, ifcount 0, reads 0, timeouts 2691 22:24:35.932 -> Driver 6: ok, read errors 0, write errors 0, ifcount 0, reads 0, timeouts 2691 22:24:35.932 -> Date/time: 1970-01-01 00:00:00 22:24:35.932 -> Slowest loop: 3.78ms; fastest: 0.06ms 22:24:35.932 -> I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 22:24:35.932 -> === Move === 22:24:35.932 -> Hiccups: 0, FreeDm: 169, MinFreeDm: 169, MaxWait: 0ms 22:24:35.932 -> Bed compensation in use: none, comp offset 0.000 22:24:35.932 -> === DDARing === 22:24:35.932 -> Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 22:24:35.932 -> === Heat === 22:24:35.932 -> Bed heaters = 0, chamberHeaters = -1 -1 22:24:35.932 -> Heater 1 is on, I-accum = 0.0 22:24:35.932 -> === GCodes === 22:24:35.932 -> Segments left: 0 22:24:35.932 -> Stack records: 1 allocated, 0 in use 22:24:35.932 -> Movement lock held by null 22:24:35.932 -> http is idle in state(s) 0 22:24:35.932 -> telnet is idle in state(s) 0 22:24:35.932 -> file is idle in state(s) 0 22:24:35.932 -> serial is ready with "m122" in state(s) 0 22:24:35.932 -> aux is idle in state(s) 0 22:24:35.932 -> daemon is idle in state(s) 0 22:24:35.932 -> queue is idle in state(s) 0 22:24:35.932 -> lcd is idle in state(s) 0 22:24:35.932 -> autopause is idle in state(s) 0 22:24:35.932 -> Code queue is empty. 22:24:35.932 -> === Network === 22:24:35.932 -> Slowest loop: 0.28ms; fastest: 0.02ms 22:24:35.932 -> Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) 22:24:35.932 -> HTTP sessions: 0 of 8 22:24:35.932 -> Interface state 2, link down 22:24:35.932 -> ok 22:26:34.656 -> Network running, IP address = 192.168.2.239 22:26:34.833 -> Received 428 bytes 22:26:34.833 -> Received 395 bytes 22:26:34.870 -> Received 400 bytes22:23:20.685 -> RepRapFirmware for Duet 2 Maestro Version 2.03 dated 2019-06-13b2 22:23:20.685 -> 22:23:20.685 -> Executing config.g...Debugging enabled for modules: Network(1) 22:23:20.685 -> Debugging disabled for modules: Platform(0) Webserver(2) GCodes(3) Move(4) Heat(5) DDA(6) Roland(7) Scanner(8) PrintMonitor(9) Storage(10) PortControl(11) DuetExpansion(12) FilamentSensors(13) WiFi(14) Display(15) 22:23:20.685 -> HTTP is enabled on port 80 22:23:20.685 -> FTP is disabled 22:23:20.685 -> TELNET is disabled 22:23:20.685 -> 22:23:20.685 -> Done! 22:23:20.685 -> RepRapFirmware for Duet 2 Maestro is up and running. 22:24:35.932 -> === Diagnostics === 22:24:35.932 -> RepRapFirmware for Duet 2 Maestro version 2.03 running on Duet Maestro 1.0 22:24:35.932 -> Board ID: 08DAM-9F9DA-MWNS8-6J1D2-3SJ6L-1P0UX 22:24:35.932 -> Used output buffers: 1 of 24 (2 max) 22:24:35.932 -> === RTOS === 22:24:35.932 -> Static ram: 19664 22:24:35.932 -> Dynamic ram: 87696 of which 0 recycled 22:24:35.932 -> Exception stack ram used: 264 22:24:35.932 -> Never used ram: 23448 22:24:35.932 -> Tasks: NETWORK(ready,1972) HEAT(blocked,1276) MAIN(running,3908) IDLE(ready,160) 22:24:35.932 -> Owned mutexes: 22:24:35.932 -> === Platform === 22:24:35.932 -> Last reset 00:01:16 ago, cause: power up 22:24:35.932 -> Last software reset at 2020-05-30 22:23, reason: User, spinning module GCodes, available RAM 23432 bytes (slot 1) 22:24:35.932 -> Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x04432000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d 22:24:35.932 -> Error status: 0 22:24:35.932 -> Free file entries: 10 22:24:35.932 -> SD card 0 detected, interface speed: 15.0MBytes/sec 22:24:35.932 -> SD card longest block write time: 0.0ms, max retries 0 22:24:35.932 -> MCU temperature: min 32.6, current 34.3, max 34.7 22:24:35.932 -> Supply voltage: min 0.0, current 24.3, max 24.4, under voltage events: 0, over voltage events: 0, power good: yes 22:24:35.932 -> Driver 0: standstill, read errors 0, write errors 0, ifcount 6, reads 2686, timeouts 0 22:24:35.932 -> Driver 1: standstill, read errors 0, write errors 0, ifcount 6, reads 2686, timeouts 0 22:24:35.932 -> Driver 2: standstill, read errors 0, write errors 0, ifcount 6, reads 2686, timeouts 0 22:24:35.932 -> Driver 3: standstill, read errors 0, write errors 0, ifcount 6, reads 2686, timeouts 0 22:24:35.932 -> Driver 4: standstill, read errors 0, write errors 0, ifcount 6, reads 2686, timeouts 0 22:24:35.932 -> Driver 5: ok, read errors 0, write errors 0, ifcount 0, reads 0, timeouts 2691 22:24:35.932 -> Driver 6: ok, read errors 0, write errors 0, ifcount 0, reads 0, timeouts 2691 22:24:35.932 -> Date/time: 1970-01-01 00:00:00 22:24:35.932 -> Slowest loop: 3.78ms; fastest: 0.06ms 22:24:35.932 -> I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 22:24:35.932 -> === Move === 22:24:35.932 -> Hiccups: 0, FreeDm: 169, MinFreeDm: 169, MaxWait: 0ms 22:24:35.932 -> Bed compensation in use: none, comp offset 0.000 22:24:35.932 -> === DDARing === 22:24:35.932 -> Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 22:24:35.932 -> === Heat === 22:24:35.932 -> Bed heaters = 0, chamberHeaters = -1 -1 22:24:35.932 -> Heater 1 is on, I-accum = 0.0 22:24:35.932 -> === GCodes === 22:24:35.932 -> Segments left: 0 22:24:35.932 -> Stack records: 1 allocated, 0 in use 22:24:35.932 -> Movement lock held by null 22:24:35.932 -> http is idle in state(s) 0 22:24:35.932 -> telnet is idle in state(s) 0 22:24:35.932 -> file is idle in state(s) 0 22:24:35.932 -> serial is ready with "m122" in state(s) 0 22:24:35.932 -> aux is idle in state(s) 0 22:24:35.932 -> daemon is idle in state(s) 0 22:24:35.932 -> queue is idle in state(s) 0 22:24:35.932 -> lcd is idle in state(s) 0 22:24:35.932 -> autopause is idle in state(s) 0 22:24:35.932 -> Code queue is empty. 22:24:35.932 -> === Network === 22:24:35.932 -> Slowest loop: 0.28ms; fastest: 0.02ms 22:24:35.932 -> Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) 22:24:35.932 -> HTTP sessions: 0 of 8 22:24:35.932 -> Interface state 2, link down 22:24:35.932 -> ok 22:26:34.656 -> Network running, IP address = 192.168.2.239 22:26:34.833 -> Received 428 bytes 22:26:34.833 -> Received 395 bytes 22:26:34.870 -> Received 400 bytes
And all it says is the received xxx bytes scrolls constantly while I have the DWC open.
-
Are you letting the router serve a DHCP address or are you specifying it? Are you sure the address you have in config.g isn't already used?
Ideally you should have the Duet use DHCP to obtain an IP and netmask, gateway, etc, this helps prevent misconfiguration and conflicts.
Does the Duet show up on the router?
-
Letting the DHCP server issue an IP address or statically setting one not in use results in the same time for it to establish a link. Thats why I have both lines in my config.g file so I could easily swap back and forth testing it.
-
Gotcha. Please update to 2.05.1 since that would be the most relevant firmware to test.
Do you have a different cable to test with? Different router? Just to get some things eliminated.
-
So you have another Maestro that doesn't behave the same?
Is it feasible to try the same network cable and switch port on the new Maestro? Some combinations have shown issues with autonegotation, but I'd be surprised to see it succeeding after so long if that was the issue.
-
I suspect I had an issue with the contents of www/.
I've deleted the www folder, and copied it back from the backup I made of the original SD card, and then updated it from the DWC with the 1.22.6 zip, and it seems to be starting a link as soon as its turned on. Which is the behavior I'd expect based on the other Duet Maestro / Duet 0.8.5 boards I have.
Is it possible the web server startup (if it had an issue) could delay the actual detection of the link on the Ethernet module?
-
@PDBeal unlikely, not having the files in /www is a recurring topic here none have have reported similar issues afaik
-
@bearer said in Duet Maestro taking forever to establish Ethernet Link:
@PDBeal unlikely, not having the files in /www is a recurring topic here none have have reported similar issues afaik
What about having partial files, or corrupt files, or improperly unarchived sections, etc... I had files in the www/ folder and it seemed to work, but it didn't seem completely there which is what made me wipe and restore my www/ folder.
I'll continue to monitor this new Duet Maestro board and see if the issue returns.
One a side note, how does one remove the new DWC from an existing machine? I much prefer the 1.22.6 version and would like to remove the new 2.0.7 from my other Duet Maestro.
-
@PDBeal said in Duet Maestro taking forever to establish Ethernet Link:
how does one remove the new DWC from an existing machine?
just delete the contents of /www and extract 1.22.6 into /www after? (if you don't want to remove the SD card you could try enabling FTP and find a supported FTP client to to the operations)
optionally there should be a setting to user DWC1, but i think its based on a cookie so not persistent across devices.
http://192.168.2.239/reprap.htm might give you DWC1 as well.
About potential corrupted files, still doubt it it would affect the link status, the webserver would only react to requests, which it cant until the link is up afaik.