Brand New Duet 3 Mini 5+ - Wifi Issues and Bogus IP
-
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!
-
-
Sometimes the WiFi module has an attitude. I worked with mine for while trying. It's very likely not a flashing issue assuming you have managed to flash with the correct version.
I assume you are connected with the USB port and are using some sort of terminal program?
Can you send M552 S-1 and then send M552s until you get the message about the WiFi module is disabled?
Can you then send M552 S0 then then send M552s until you get the message about the the WiFI module being idle?
Can you then use M587 to add the SSID and password of the network you wish to connect to?
Can you then use M558 to remove any SSIDs that should not be there?
Once M587 is reporting only the SSID you wish to be use can you then send M552 S1 and get the connection?
Sometimes you have to be patient and let the WiFi module "think" about things for a bit.
Mine was being stubborn for a bit and then suddenly it started responding to the commands as it was supposed and all was good.
Be slow and methodical verifying at each step.
Once connected you can then disconnect the USB cable, apply power to the board and see if you can connect using your browser.
Frederick
-
Thank you for your response Frederick!
@fcwilt said in Brand New Duet 3 Mini 5+ - Wifi Issues and Bogus IP:
Sometimes the WiFi module has an attitude. I worked with mine for while trying. It's very likely not a flashing issue assuming you have managed to flash with the correct version.
Yes I believe so, I flashed with the same 3.4.6 release I’m using on my other machine which works all fine.
I assume you are connected with the USB port and are using some sort of terminal program?
Correct, I’m connected via USB. I’m using the suggested program for mac users which is Serial Tools.
Can you send M552 S-1 and then send M552s until you get the message about the WiFi module is disabled?
Yes I did this and your suggestion below several times. The wifi status follows the commands correctly as far as disabling and idle mode goes. However as posted above, M552 S1 gives a series of network errors until it connects, wifi led lights up and gives the IP address 255.255.255.255. This is the main issue
Can you then send M552 S0 then then send M552s until you get the message about the the WiFI module being idle?
Yup, responded in the previous point.
Can you then use M587 to add the SSID and password of the network you wish to connect to?
I tried multiple times but I don’t get a response to this unfortunately, the board doesn’t seem to receive this command even after 10 mins of wait time.
Can you then use M558 to remove any SSIDs that should not be there?
Also this, unfortunately I get no response to this either. And I’m aware of the character-sensitivity of M587 and M588 commands.
Once M587 is reporting only the SSID you wish to be use can you then send M552 S1 and get the connection?
Unfortunately, it is not reporting a “true” IP address.
Sometimes you have to be patient and let the WiFi module "think" about things for a bit.
I will leave my duet and wifi alone for tonight
Mine was being stubborn for a bit and then suddenly it started responding to the commands as it was supposed and all was good.
Happy to hear yours is behaving afterall!
Be slow and methodical verifying at each step.
Once connected you can then disconnect the USB cable, apply power to the board and see if you can connect using your browser.
Frederick
-
Until you get M587 showing the correct SSID you are not going to be able to connect.
Try using M552 to "toggle" the WiFi module from Disabled to Idle until M587 works.
Be sure the only connection to the board is the USB cable.
You could try disconnecting/re-connecting the USB cable from the computer end to re-boot the board to see if that might make a difference.
Frederick
-
@ozgunkilicafsar if you’re using a Mac to connect to your Duet via USB, are you using SerialTools app to connect? SerialTools can be a bit flaky sending commands. I notice there wasn’t an ‘ok’ response to the M558 S"*" command; if a command goes through correctly, you should always get an ‘ok’. I use Coolterm on Mac now, with the options for ‘line mode’ and ‘local echo’ turned on, which is more reliable. It isn’t available through the App Store though.
In this command
M587 S”mynetworkssid" P”mypassword”
you have used curly quotes, not straight quotes. All commands must be sent with straight quotes. Again, there was no ‘ok’ returned.
I suspect that the stored WiFi SSID is the one used for testing at the factory. Delete it with
M588 S"*"
then put in your SSID and password with M587.WiFi firmware 1.27 is the latest release version; you are on 1.26. Update with the ‘DuetWifiServer.bin’ file from the ‘Duet2and3Firmware-3.4.6.zip’ file in the RRF 3.4.6 release here: https://github.com/Duet3D/RepRapFirmware/releases/tag/3.4.6
Download the zip, extract the contents and copy ‘DuetWifiServer.bin’ to the /firmware folder on the SD card, then update withM997 S1
as before.My final thought was the 802.11w Management Frame Protection settings on my macbook air
Are you trying to connect to your MacBook Air as a an access point, or have all the routers you are trying to connect to have extra security enabled? The WiFi module on the Duet can’t connect to Enterprise WiFi on the version you are on. The upcoming RRF 3.5 can, and there is an updated WiFi firmware version that supports this. If the above advice doesn’t work, I can guide you through the beta version.
Ian
-
@droftarts said in Brand New Duet 3 Mini 5+ - Wifi Issues and Bogus IP:
@ozgunkilicafsar if you’re using a Mac to connect to your Duet via USB, are you using SerialTools app to connect? SerialTools can be a bit flaky sending commands. I notice there wasn’t an ‘ok’ response to the M558 S"*" command; if a command goes through correctly, you should always get an ‘ok’. I use Coolterm on Mac now, with the options for ‘line mode’ and ‘local echo’ turned on, which is more reliable. It isn’t available through the App Store though.
Thanks @droftarts this is actually what saved me! It was SerialTools that was the main issue. Thank you so much! And it turns out my old board's wifi is also working just fine! It was again thanks to this that solved the mystery! So happy!
In this command
M587 S”mynetworkssid" P”mypassword”
Yeah this just happened during copy and paste, I confirm that I used straight quotation marks at all times.
you have used curly quotes, not straight quotes. All commands must be sent with straight quotes. Again, there was no ‘ok’ returned.
I suspect that the stored WiFi SSID is the one used for testing at the factory. Delete it with
M588 S"*"
then put in your SSID and password with M587.I guess it was so when I transferred to Coolterm M588 was also received fine so this is also figured and I deleted all the old SSIDs stored.
WiFi firmware 1.27 is the latest release version; you are on 1.26. Update with the ‘DuetWifiServer.bin’ file from the ‘Duet2and3Firmware-3.4.6.zip’ file in the RRF 3.4.6 release here: https://github.com/Duet3D/RepRapFirmware/releases/tag/3.4.6
1.26 worked fine afterall and if I'm not wrong this was what came out of the 3.4.6 zip but I'll double check!
Anyways thanks for all the help and suggestions @droftarts @fcwilt
Final takeaway was that both Coolterm (MAC) as well as YAT (Windows) worked best for me in this process of debugging wifi issues. I personally do not recommend SerialTools anymore with the amount of struggle it caused with wifi setup.