Hi fellows,
After going through pretty much all forum posts on various wifi issues, I've landed here as none of the suggestions helped in sorting out my problem.
Yesterday I unpacked my new duet 3 mini 5+ and since then I haven't been able to generate an IP address that makes sense to access DWC. After a whirlwind of working around relevant suggestions on the forum, the closest I got to any success is having generated IP address 255.255.255.255 on Serial Tools (using Macbook Air) and clearly this is no success. Learning from prior posts, I'll try to save time by sharing as much info as possible.
First of all, I'm using my previous SD card with all the updated firmware 3.4.6 and system files cause guess what, the wifi on my previous duet mini 5+ stopped working out of nowhere a week ago not responding to any of the M552 prompts, hence the brand new duet I received yesterday and started playing around with. Anyways, below are a set of details and commands on Serial Tools hoping that it will help someone see something I'm not able to:
Everything is running at 9.4V FYI
M115
FIRMWARE_NAME: RepRapFirmware for Duet 3 Mini 5+ FIRMWARE_VERSION: 3.4.6 ELECTRONICS: Duet 3 Mini5plus WiFi FIRMWARE_DATE: 2023-07-21 14:09:13
ok
And here's my config.g:
; Configuration file for Duet 3 Mini 5+ (firmware version 3.4)
; executed by the firmware on start-up
; General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Morphotonics" ; set printer name
M669 K1 ; select CoreXY mode
; Network
M552 S1 ; enable network
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet
; Drives
M569 P0.0 S0 ; physical drive 0.0 goes backwards
M569 P0.1 S0 ; physical drive 0.1 goes backwards
M569 P0.2 S1 ; physical drive 0.2 goes 0 to -
M569 P0.3 S1 ; physical drive 0.3 goes 0 to -
M569 P0.4 S0 ; physical drive 0.4 goes 0 to -
M569 P0.5 S0 ; physical drive 0.5 goes forwards
M569 P0.6 S0 ; physical drive 0.5 goes forwards
;For direct Ink Write (DIW)
M584 X0.0 Y0.1 Z0.2:0.3:0.4 V0.5 E0.6 ; set drive mapping
M350 X16 Y16 Z16 V16 I1 E16 ; configure microstepping with interpolation
M92 X80.00 Y80.00 Z80.00 V100.00 E80.00 ; set steps per mm
M566 X900.00 Y900.00 Z900.00 V24.00 E24.00 ; set maximum instantaneous speed changes (mm/min)
; M203 X9000.00 Y9000.00 Z9000.00 V5000.00 E80.00 ; set maximum speeds (mm/min)
M203 X9000.00 Y9000.00 Z9000.00 V9000.00 E9000.00 ; set maximum speeds (mm/min)
M201 X250.00 Y250.00 Z250.00 V50.00 E50.00 ; set accelerations (mm/s^2)
M906 X800 Y800 Z800 V670 I50 E800 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout
; Axis Limits
M208 X0 Y0 Z-15 V0 E0 S1 ; set axis minima
M208 X250 Y188 Z240 V10000000 E10000000 S0 ; set axis maxima
; For Fiber Extrusion
; M584 X0.0 E0.1 Z0.2:0.3:0.4 V0.5 U0.6 ; set drive mapping
; M350 X16 Y16 E16 V16 I1 U16 ; configure microstepping with interpolation
; M92 X80.00 Y80.00 Z80.00 E80.00 V80.00 U80.00 ; set steps per mm
; M566 X900.00 Y900.00 Z24.00 E24.00 V24.00 U24.00 ; set maximum instantaneous speed changes (mm/min)
; M203 X9000.00 Y9000.00 Z600 E600.00 V2000.00 U80.00 ; set maximum speeds (mm/min)
; M201 X250.00 Y250.00 Z50 E50.00 V50.00 U50.00 ; set accelerations (mm/s^2)
; M906 X800 Y800 Z800 E800 V670 I50 U800 ; set motor currents (mA) and motor idle factor in per cent
; M84 S30 ; Set idle timeout
; Axis Limits
; M208 X0 Y0 Z0 E0 V0 U0 S1 ; set axis minima
; M208 X250 Y188 Z240 E240 V10000000 U10000000 S0 ; set axis maxima
; Endstops
M574 X1 S1 P"io0.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io0.in
M574 Y2 S1 P"io1.in" ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin io1.in
M564 U6 H0
;M574 Z1 S1 P"io2.in" ; configure switch-type (e.g. microswitch) endstop for low end on Z via pin io2.in
; Z-Probe
M950 S0 C"io3.out" ; Duet 3 Mini 5+
M558 P9 C"io3.in" H5 F1200 T6000 ; Duet 3 Mini 5+
G31 X-20 Y0 Z0 P25 ; trigger height 0 (change it later when recalibrating with nozzle in place)
M671 X20:140:220 Y0:188:0
; Heaters
M308 S1 P"spi.cs1" Y"thermocouple-max31856" K"J" ; configure sensor 1 as J-type thermocouple via CS pin spi.cs1
M950 H1 C"out2" T1 ; heater 1 uses the out2 pin, sensor 1
;M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M307 H1 R0.825 K1.899:0.000 D8.42 E1.35 S1.00 B0 V23.9
; M303 H1 P1 S50 ; tune heater 1 using 100% PWM, target temperature 50C
M143 H1 S90 ; set temperature limit for heater 1 to 60C, switch off temporarily if it exceeds 50C
M308 S2 P"spi.cs2" Y"thermocouple-max31856" K"J" ; configure sensor 1 as J-type thermocouple via CS pin spi.cs1
M950 H2 C"out1" T2 ; heater 2 uses the out1 pin, sensor 2
; M950 H0 C"nil" ; disable heater 0 and free up the associated pin
;M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
; M307 H2 R1.701 K0.374:0.000 D38.26 E1.35 S1.00 B0 V23.9
M307 H2 R0.796 K2.056:0.000 D11.87 E1.35 S1.00 B0 V23.9
; M303 H2 P1 S50 ; tune heater 1 using 100% PWM, target temperature 50C
M143 H2 S90 ; set temperature limit for heater 2 to 60C, switch off temporarily if it exceeds 50C
; Servo
M950 S2 C"io2.out"; assign GPIO port 2 to io2.out (Servo header), servo mode
;M950 S3 C"out6_buff"; assign GPIO port 2 to io2.out (Servo header), servo mode
; Fans
; 2-wire fans, normally controlled and thermostatic
M950 F0 C"out5" Q10000 ; create fan 0 on pin out5 and set its frequency
M950 F1 C"out6" Q10000 ; create fan 1 on pin out6 and set its frequency
M950 F2 C"out3" Q20000 ; create fan 2 on pin out3 and set its frequency
M950 F3 C"out4" Q20000 ; create fan 3 on pin out3 and set its frequency
; Tools
M563 P1 S"Syringe Pump" D0 H1:2 F0:1:2:3 ; define tool 0
G10 P1 X0 Y0 Z0 ; set tool 0 axis offsets
G10 P1 R50 S50 ; set initial tool 50 active and standby temperatures to 50C
; Global Variables
global feedRate = 1000
global ledLeft = 5
global ledRight = 5
global ledStrip = 125
global ledBottom = 100
- I'm connected to 2.4Ghz router at home
- I tried all of these steps with 3 other routers at work before coming home as last resort
- I flashed the wifi firmware a good 5 times using M997 S1 and each time with 100% upload success at 115200 baud rate.
- I went through the M552 S-1, S0 and S1 cycles multiple times. The wifi led (green) responds to the commands which is good I guess.
- However each time the IP address is generated as 255.255.255.255 after hundreds of:
WiFi module is idle
Error: WiFi module reported: network scan failed
WiFi module is idle
Error: WiFi module reported: network scan failed
WiFi module is idle
Error: WiFi module reported: network scan failed
WiFi module is idle
Error: WiFi module reported: network scan failed
WiFi module is idle
Error: WiFi module reported: network scan failed
WiFi module is idle
Error: WiFi module reported: network scan failed
WiFi module is idle
Error: WiFi module reported: network scan failed
WiFi module is idle
Error: WiFi module reported: network scan failed
WiFi module is idle
WiFi module is connected to access point , IP address 255.255.255.255
So, I ran M122:
M122
=== Diagnostics ===
RepRapFirmware for Duet 3 Mini 5+ version 3.4.6 (2023-07-21 14:09:13) running on Duet 3 Mini5plus WiFi (standalone mode)
Board ID: UYRYU-1Q6KL-K65J0-409NW-1HW1Z-HR2SD
Used output buffers: 1 of 40 (40 max)
=== RTOS ===
Static ram: 103712
Dynamic ram: 109960 of which 104 recycled
Never used RAM 27936, free system stack 160 words
Tasks: NETWORK(ready,15.2%,137) LASER(notifyWait,0.0%,72) HEAT(notifyWait,0.0%,374) Move(notifyWait,0.0%,363) CanReceiv(notifyWait,0.0%,941) CanSender(notifyWait,0.0%,335) CanClock(delaying,0.0%,342) TMC(notifyWait,0.0%,124) MAIN(running,83.9%,503) IDLE(ready,0.0%,30) AIN(delaying,0.8%,272), total 100.0%
Owned mutexes: WiFi(NETWORK) USB(MAIN)
=== Platform ===
Last reset 00:16:04 ago, cause: power up
Last software reset details not available
Error status: 0x04
MCU revision 3, ADC conversions started 965119, completed 965118, timed out 0, errs 0
Step timer max interval 1488
MCU temperature: min 29.4, current 33.2, max 33.9
Supply voltage: min 0.8, current 1.0, max 1.0, 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
Events: 0 queued, 0 completed
Driver 0: ok, SG min n/a, read errors 0, write errors 0, ifcnt 0, reads 0, writes 0, timeouts 0, DMA errors 0, CC errors 0
Driver 1: ok, SG min n/a, read errors 0, write errors 0, ifcnt 0, reads 0, writes 0, timeouts 0, DMA errors 0, CC errors 0
Driver 2: ok, SG min n/a, read errors 0, write errors 0, ifcnt 0, reads 0, writes 0, timeouts 0, DMA errors 0, CC errors 0
Driver 3: ok, SG min n/a, read errors 0, write errors 0, ifcnt 0, reads 0, writes 0, timeouts 0, DMA errors 0, CC errors 0
Driver 4: ok, SG min n/a, read errors 0, write errors 0, ifcnt 0, reads 0, writes 0, timeouts 0, DMA errors 0, CC errors 0
Driver 5: ok, SG min n/a, read errors 0, write errors 0, ifcnt 0, reads 0, writes 0, timeouts 0, DMA errors 0, CC errors 0
Driver 6: ok, SG min n/a, read errors 0, write errors 0, ifcnt 0, reads 0, writes 0, timeouts 0, DMA errors 0, CC errors 0
Date/time: 1970-01-01 00:00:00
Cache data hit count 1954408847
Slowest loop: 14.08ms; fastest: 0.12ms
=== Storage ===
Free file entries: 10
SD card 0 detected, interface speed: 22.5MBytes/sec
SD card longest read time 3.9ms, write time 0.0ms, max retries 0
=== Move ===
DMs created 83, segments created 0, maxWait 0ms, bed compensation in use: none, comp offset 0.000
=== MainDDARing ===
Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== AuxDDARing ===
Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== Heat ===
Bed heaters -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 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 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
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 4825, received 0, lost 0, boc 0
Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 18 (min 18), ts 4825/0/0
Tx timeouts 0,0,4824,0,0,0 last cancelled message type 30 dest 127
=== Network ===
Slowest loop: 1984.29ms; fastest: 0.00ms
Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
HTTP sessions: 0 of 8
= WiFi =
Interface state: active
Module is connected to access point
Failed messages: pending 0, notready 0, noresp 0
WiFi firmware version 1.26
WiFi MAC address e8:68:e7:e1:51:ca
WiFi Vcc 3.33, reset reason Power up
WiFi flash size 2097152, free heap 23928
WiFi IP address 255.255.255.255
WiFi signal strength 31dBm, mode 802.11n, reconnections 0, sleep mode modem
Clock register 00002002
Socket states: 0 0 0 0 0 0 0 0
ok
- Wifi version is up to date as can be seen above: WiFi firmware version 1.26
- WiFi IP address shows as bogus 255.255.255.255.
I also ran M111 but not sure what to make out of it?
M111
Debugging enabled for modules:
Debugging disabled for modules: Platform(0) Network(1) 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) SbcInterface(16) CAN(17)
Then I decided to run the M587:
M587
Remembered networks:
TNCAPF2FD81 IP=192.168.1.14 GW=0.0.0.0 NM=0.0.0.0
ok
...which also doesn't seem right at all. This is definitely not the IP of any network I connected to. Seems bogus to me as I've seen several posts with similar "remembered networks".
Now the weirdest part comes. I took its word and assumed that there was a remembered network, so I tried sending the M588 S"*" absolutely using correct straight quotations (not curved). This is what I get:
M588 S"*"
.. yeah, so, nothing. And M587 still gives me:
M587
Remembered networks:
TNCAPF2FD81 IP=192.168.1.14 GW=0.0.0.0 NM=0.0.0.0
ok
So, as the last step, I reflashed with M997 S1, then got the wifi in idle mode with m552 s0, and confirmed with M552. Finally I tried adding the SSID and Password of my 2.4Ghz home network, which I do not have any non-alphanumerical characters in either.
M587 S”mynetworkssid" P”mypassword”
And I got no response to this either, after a long long wait.
I ran M552 S1, and M552:
M552 S1
ok
M552
WiFi module is connected to access point , IP address 255.255.255.255
ok
FINAL NOTES:
- Seeing other users having issues with their SDs and replacing the SD helping solve their issue in a few instances, I also tested with two other SD cards from my colleagues' duet mini 5+ which work perfectly on their machine, unfortunately results are similar.
- My final thought was the 802.11w Management Frame Protection settings on my macbook air (since it's a fairly new computer and I've also read people having issues with their macs due to to some network/firewall settings). However I couldn't find anything on my system related to this so this is still an open question.
- I tried replicating errors on Windows, other macs but all in all, no luck with all the debugging across various hardware.
I find it hard to say but perhaps I had a bad seed off the package? I purchased my duet mini 5+ from Filastruder. And sad to say that a lot of other posts mentioned the same vendor. I am still hoping for some north star to come and suggest another approach but otherwise perhaps I'm looking at a replacement?
Thanks for reading my lengthy post & any help is much appreciated!