Error: Failed to initialise WiFi module, code -10 on 2.05
After a few months (since march due to covid), I am back at my university working on a 3d printer with duet2 wifi. After I turned the board on, it all went fine, but after about 2 minutes it disconnected. No matter how many times I have reset the board, it still won't connect. The Wifi module light flashes once very briefly. When I try M552 S0, it throws the error shown on the title. I tried updating from 2.02 to 2.05, and everything went correctly but I still get the same error. What does error -10 mean? I will revert to my previous install, but I still don't know what happened.
I tried updating from 2.02 to 2.05,
try updating (or re-flashing) the wifi firmware? see this post to get some more details if that fails
How did you update from 2.02 to 2.05?
Download these two files and place them on the SD card in the /sys folder with your PC.
Rename DuetWiFiServer-1.23.bin to DuetWiFiServer.bin
Extract this zip file to the /www folder.
Now put the SD card back in the duet and power up via USB and send M997 S0:1 in the console to install the main and wifi firmwares.
Then send M122 again after it reboots and post the result.
Wifi worked perfectly until yesterday, where mid-homing it just disconnected. Every time I send M552 S0 or S1, it gives the error Error: Failed to initialize WiFi module, code -10.
Since I saw there were some updates to the firmware, I tried installing them to see if that fixed it. However, the issue persisted.
I had the problem before I updated, so I don't think the update was the issue. However, I don't know enough so I will try reinstalling it and check again. Thanks!
@Phaedrux Here is the result after doing exactly what you asked:
M552 S-1 ok M552 S0 ok WiFi module started Error: Failed to initialise WiFi module, code -10 M997 S0:1 Trying to connect at 230400 baud: success Erasing 4096 bytes... Erasing 212992 bytes... Uploading file... 5% complete 10% complete 15% complete 20% complete 25% complete 30% complete 35% complete 40% complete 45% complete 50% complete 55% complete 60% complete 65% complete 70% complete 75% complete 80% complete 85% complete 90% complete 95% complete Upload successful M552 S0 ok WiFi module started Error: Failed to initialise WiFi module, code -10 M122 === Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 2.05.1 running on Duet WiFi 1.02 or later Board ID: 08DGM-917NK-F2MS4-7JTDL-3S86K-TWTJF Used output buffers: 1 of 24 (1 max) === RTOS === Static ram: 25712 Dynamic ram: 93552 of which 0 recycled Exception stack ram used: 256 Never used ram: 11552 Tasks: NETWORK(ready,1408) HEAT(blocked,1256) MAIN(running,3816) IDLE(ready,160) Owned mutexes: === Platform === Last reset 00:00:25 ago, cause: power up Last software reset time unknown, reason: User, spinning module GCodes, available RAM 11488 bytes (slot 1) Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x04433000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d Error status: 0 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 101.3, current 110.0, max 110.2 Supply voltage: min 35.9, current 35.9, max 35.9, 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 Date/time: 1970-01-01 00:00:00 Cache data hit count 38785090 Slowest loop: 99.45ms; fastest: 0.05ms I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 === Move === Hiccups: 0, FreeDm: 160, MinFreeDm: 160, MaxWait: 0ms Bed compensation in use: none, comp offset 0.000 === DDARing === Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 === Heat === Bed heaters = 0 -1 -1 -1, chamberHeaters = 3 -1 === GCodes === Segments left: 0 Stack records: 1 allocated, 0 in use 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 serial is ready with "M122" in state(s) 0 aux is idle in state(s) 0 daemon is idle in state(s) 0 queue is idle in state(s) 0 autopause is idle in state(s) 0 Code queue is empty. === Network === Slowest loop: 1.03ms; fastest: 0.00ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) HTTP sessions: 0 of 8 - WiFi - Network state is disabled WiFi module is disabled Failed messages: pending 0, notready 0, noresp 0 Socket states: 0 0 0 0 0 0 0 0 ok
How old is the Duet and where was it purchased?
It is about one year old. I would need to contact the sales department for the exact payment date, but I can confirm we received the package on October 18th, 2019. Judging from some emails, it was probably purchased on September 27th, 2019. It was purchased from Filastruder. However, it has been in storage since March, when the pandemic hit. Do you think it got damaged while unused? That would suck, I really hoped it was a software issue.
Well it does seem to be a fault in the module. Reflashing the wifi server firmware appears to work correctly, but the error persists.
Unfortunately you're outside of the 6 month warranty, but we may be able to provide an exchange at reduced cost. Please contact email@example.com and explain the situation and include a link to this forum thread.
Alternatively, if you're in a situation where you have access to PCB soldering tools you may be able to replace the wifi module yourself, or have someone do it. The modules themselves can be obtained rather cheaply.
Well, that is unfortunate. I will send an email to that address as you suggested, thank you for the help.
I do have access to soldering tools. Haven't worked with SMD before, but I have other scrap boards I can practice with before I replace this, or I can ask someone else perhaps. Are there any instructions on how to replace this? As in, specific to the duet? Or do I just find the module itself and solder it back on and then run M122 and that's it?
Thank you for the help!
Are there any instructions on how to replace this? As in, specific to the duet?
That should give you an idea of what's involved to decide if it's a worthwhile option.
You might be able to replace the wifi function with a raspberry pi as well, but the required firmware RRF3.2 isn't released yet so it might be a bumpy road.
You'd likely not need to remove the Wifi to use the same signals for the SBC interface (depending a little on how the wifi module has failed) lots of details here https://forum.duet3d.com/topic/17203/duet-2-ethernet-and-sbc/
This post shows a no-solder approach for the wifi board (albeit a few crimps are needed): https://forum.duet3d.com/post/163005
Is the DuetWiFiserver.bin file that you uploaded to the WiFi module definitely the DuetWiFiServer.bin file version 1.23 from a recent release?
It's worth trying to install the WiFi firmware again. The firmware upload protocol defined by the manufacturer of the WiFi module does not include error detection, and I have known it to appear to succeed but to leave the WiFi module running corrupt firmware.
@Phaedrux that looks great! thanks. I have access to ESP-12E, does that work or does it have to be ESP-12S? I guess I can get an Adafruit HUZZAH or maybe a NodeMCU with the ESP-12S and salvage the module from that board, but if the E version is compatible that would be ideal.
12E will be fine if the certifications on the module is acceptable for you (fcc/ce/ul etc)
@dc42 I am as sure as I think I can be, for what it's worth. I flashed for myself at first from github, then from the link provided by Phaedrux and then again from github, making sure it was indeed version 1.23. After running M997 S1, it completes no problem but the issue comes up.
Is there a way to make sure it is the hardware side?
@bearer Excellent, thank you