Failed update from 3.2 to 3.2.2
-
I upgraded my Duet 2 wifi to Release 3.2 back February 2021 and again to release 3.2.2 yesterday. But something did not work as expected(or it did and I did something incorrectly, more likely.) because now wifi is not coming up.
I downloaded Duet2and3Firmware-3.2.2.zip and did the upload as normal from the system page. I left it and when I got back to it today, there was no WIFI. I can connect vi USB ok. I've tried bringing it up manually from yat:
M552 S-1 ok M552 S1 P"SSID" ok M552 WiFi module is being started ok
What I find interesting is, after doing the above to manually bring up the wifi, M122 says WIFI is disabled:
- WiFi - Network state is starting2 WiFi module is disabled Failed messages: pending 0, notready 0, noresp 0 Socket states: 0 0 0 0 0 0 0 0 ok
Everything was working normally before the attempted update, but I've been tried manually doing the update by copying the firmware files to /Firmware and removing the firmware bin files from /sys but this has not worked. I figured, before I get too far down the rabbit hole, I should probably ask for help as its been about a year since I've played with this stuff.
My config file should bring WIFI up, however, when I issue M552, I get: "WiFi module is being started"
If I issue a M587 I get: "Error: M587: Failed to retrieve network list: another SPI transfer is pending"
My M122 output:
=== Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 3.2.2 running on Duet WiFi 1.02 or later Board ID: 08DGM-917DA-G4MS8-6JKD8-3SJ6T-K8VH8 Used output buffers: 1 of 24 (1 max) === RTOS === Static ram: 23460 Dynamic ram: 73872 of which 36 recycled Never used RAM 14712, free system stack 115 words Tasks: NETWORK(ready,519) HEAT(blocked,308) MAIN(running,449) IDLE(ready,20) Owned mutexes: USB(MAIN) === Platform === Last reset 00:24:34 ago, cause: power up Last software reset at 2021-01-22 00:40, reason: User, GCodes spinning, available RAM 14712, slot 2 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 Aux0 errors 0,0,0 MCU temperature: min 22.4, current 35.6, max 36.0 Supply voltage: min 24.0, current 24.1, max 24.2, under voltage events: 0, over voltage events: 0, power good: yes Driver 0: position 0, standstill, SG min/max 0/132 Driver 1: position 0, standstill, SG min/max 0/179 Driver 2: position 7949, standstill, SG min/max 0/138 Driver 3: position 0, standstill, SG min/max not available Driver 4: position 0, standstill, SG min/max 0/176 Driver 5: position 0 Driver 6: position 0 Driver 7: position 0 Driver 8: position 0 Driver 9: position 0 Driver 10: position 0 Driver 11: position 0 Date/time: 1970-01-01 00:00:00 Cache data hit count 1726413867 Slowest loop: 5.11ms; fastest: 0.23ms 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.6ms, write time 0.0ms, max retries 0 === Move === DMs created 83, maxWait 406ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 10, completed moves 10, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 1], 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 Heater 1 is on, I-accum = 0.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 Daemon is idle in state(s) 0 Autopause is idle in state(s) 0 Code queue is empty. === Network === Slowest loop: 0.47ms; fastest: 0.00ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions HTTP sessions: 0 of 8 - WiFi - Network state is disabled WiFi module is disabled Failed messages: pending 2779096485, notready 2779096485, noresp 2779096485 Socket states: 0 0 0 0 0 0 0 0 ok
My config.g:
; Configuration file for Duet WiFi (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v2.1.5 on Wed Jan 08 2020 16:01:30 GMT-0800 (Pacific Standard Time) ; General preferences ; G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Ender3" ; set printer name ; Network ; M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Motors ; M569 P0 S0 ; physical drive 0 goes backwards M569 P1 S1 ; physical drive 1 goes backwards M569 P2 S1 ; physical drive 2 goes backwards M569 P3 S0 ; physical drive 3 goes forwards M569 P4 S1 ; physical drive 4 goes forwards M584 X0 Y1 Z2:4 E3 ; set drive mapping M671 X-40:265 Y110:110 S0.5 ; leadscrews at left (connected to Z) and right (connected to E1) of X axis ;M92 X80.00 Y80.00 Z397.44 E398.01 ; set steps per mm M92 X80.00 Y80.00 Z397.44 E411 ; set steps per mm M201 X5000.00 Y5000.00 Z95.00 E4000.00 ; set accelerations (mm/s^2) M203 X35000.00 Y35000.00 Z2000.00 E610.00 ; set maximum speeds (mm/min) M204 P1000 T3000 M566 X900.00 Y900.00 Z40.00 E1000.00 ; set maximum instantaneous speed changes (mm/min) (jerk) M906 X1200 Y1200 Z1200 E1200 I800 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout M350 X32 Y32 Z32 E16 I1 ; configure microstepping with interpolation ; Axis Limits ; M208 X-10:220 Y-5:220 ; X carriage moves from 0 to 220, Y bed goes from 0 to 220 ; Endstops - when switching to optical - remember to invert the pin ; M574 X1 S1 P"!xstop" ; configure active-low endstop for low end on X via pin xstop M574 Y1 S1 P"!ystop" ; configure active-low endstop for low end on Y via pin ystop M574 Z1 S2 ; ;M950 H3 C"nil" ; Disable heaters h3-h7 to free up pins ;M950 H4 C"nil" ;M950 H5 C"nil" ;M950 H6 C"nil" ;M950 H7 C"nil" ; Z-Probe ; M558 P9 C"^zprobe.in" H8 F200 T4000 ; set Z probe type to bltouch and the dive height + speeds M950 S0 C"exp.heater3" ; create servo/gpio 0 on heater 3 pin on expansion ; Bed Height Adjustments here ; G31 P500 X-37.00 Y-0.00 Z1.2183 ; set Z probe trigger value, offset and trigger height Z1.2183 ;M557 X45:193 Y30:193 S32 ; S32 = 40 points S20 = 72 points define mesh grid M557 X20:183 Y20:190 S20 ; Configure Heaters & Sensors ; M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 A"Bed_Temp" ; configure sensor 0 as thermistor on pin bedtemp M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0 at 100hz M143 H0 S120 ; set temperature limit for heater 0 to 120C M307 H0 B0 S1.00 ; disable bang-bang mode for the nozzle heater and set PWM limit M307 H0 A129.9 C531.9 D0.3 S1.00 V24.0 B0 ; PID Auto tune values M140 H0 ; Extruder Heater ; M308 S1 P"e0temp" Y"thermistor" T100000 B4138 A"Extrdr" ; configure sensor 1 as thermistor on pin e0temp M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1 M143 H1 S280 ; set temperature limit for heater 1 to 280C M307 H1 B0 S1.00 ; disable bang-bang mode for the nozzle heater and set PWM limit M307 H1 A475.8 C177.7 D5.3 S1.00 V24.1 B0 ; PID Auto tune values ; Sensors for MCU thermal fans ; M308 S3 Y"mcu-temp" A"MCUTemp" ; configure sensor 3 as thermistor on pin mcu-temp for Duet 2 ; Part Fan ; M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency M106 P0 C"Parts Cooler" S0 H-1 ; set fan 0 name and value. Thermostatic control is turned off ; Extruder Fan ; M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency M106 P1 C"Extruder Fan" S1 H1 T60 ; set fan 1 name and value. Thermostatic control is turned on ; Thermal fan on drivers sensor ; M308 S2 Y"drivers" A"Drivers" ; configure sensor 2 as temperature warning and overheat flags on the TMC2660 on Duet 2 M950 F2 C"fan2" Q100 ; create fan 2 on pin fan2 and set its frequency M106 P2 H2:4 L0.0 X0.05 B0.5 T45:55 C"DrvTemp" ; set fan 2 value and connect to sensor 2. Turn on at 50% if Driver temp reaches 45C, increase to full speed gradually as the temp rises to 55C ; Tools ; M563 P0 S"Main Nozzle" 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 ; Miscellaneous ; T0 ; select first tool G28 ; Home on boot G1 Z10 X0 Y0 F7000
-
OK, I figured it out. Reading another post, I discovered the M997 command.
I issued M997 and it reapplied 3.2.2, and then M997 S1 to apply the web update.
Then M552 S1 P"SSID" and it connected.
I have to say it. There is no better way to run a 3d printer than with these boards. The ability to make config changes like this without having to recompile the firmware... priceless
-John
-
Glad you figured it out. Occasionally the wifi server firmware update appears to complete successfully but it actually did not and there's no indication from the module that this happened. Sending M997 S1 again manually to reflash usually solves it by flashing again successfully, but it is annoying when it happens unexpectedly during a firmware update, especially when wifi is your only means of communication with the Duet. USB or PanelDue are the only option to reflash.