Duet 3 mini5+ randomly resets during printing
-
@droftarts Hi Ian. Thanks so much for your quick reply.
I usually keep a log of all the firmware files I've installed over time so I'm quite sure I have this issue with RRF 3.4.6 as well.
To doublecheck I'll downgrade to 3.4.6 and post the result tomorrow. -
@droftarts I downgraded succesfully to RRF 3.4.6.
The first print I ran stopped at layer 4 and the mini5+ reset itself. After trying to run about 20 more prints I notices a few things:- during most prints the duet still resets mid-print.
- the point at which the reset occurs (print file progress) it different each time.
- only prints with a single object alway succeeed.
- prints with mutiple objects are sliced to print 'all at once'
Unfortunately it doesn't make things any clearer to me. Any suggestions?
-
@Maurits I don't remember many/any reports of the 'Hardfault' in RRF 3.4.5. It shipped with a different WiFi firmware, 1.27, so if you haven't reverted that (your M122 report WiFi firmware version 2.1.0), you could try that. Though unlikely to make much difference, it is probably best to revert DWC to 3.4.5 as well, if you haven't.
Ian
-
@droftarts I reverted to RRF 3.4.5, DWC 3.4.5 and WiFi 1.27 as you suggested and the results are not improving.
I dug a little deeper into the forum and found this article about similar symptoms. Although the root cause is very different (and not possible since I don't use an SSR), the direction in which @T3P3Tony was searching might suggest a hardware fault.
Could this be worth having a look at or does that seem too unlikely?Maurits
-
@droftarts We're struggling with this issue since months. Yesterday I tried 3.5.3-rc1 and I have the impression that it is more stable on the Ethernet version. The WiFi version of the board crashed once. After turning off WiFi the print (36h) is running.
Wolfgang
-
I will be looking into this issue again in the near future. Please post M122 reports following any instances of Hard Fault resets on Duet 3 Mini WiFi running firmware 3.5.3.
-
@dc42 Here is a recent M122 with a recent crash. It's a WiFi board. It crashed after about 6h. After that I turned off the WiFi and the 36h print went trough. It also worked fine with the Ethernet version of the board. At the time of the crash it was running 3.5.3-rc1. Today I upgraded to 3.5.3
9/20/2024, 3:47:18 PM M122
=== Diagnostics ===
RepRapFirmware for Duet 3 Mini 5+ version 3.5.3 (2024-09-18 11:25:48) running on Duet 3 Mini5plus WiFi (standalone mode)
Board ID: UF2UK-QQ6KL-K65J0-409NA-L7X1Z-Z1P2J
Used output buffers: 7 of 40 (37 max)
=== RTOS ===
Static ram: 103368
Dynamic ram: 124872 of which 0 recycled
Never used RAM 10272, free system stack 138 words
Tasks: NETWORK(2,nWait 7,13.7%,233) HEAT(3,nWait 6,0.0%,347) Move(4,nWait 6,1.0%,241) CanReceiv(6,nWait 1,0.1%,794) CanSender(5,nWait 7,0.0%,334) CanClock(7,delaying,0.0%,348) TMC(4,nWait 6,0.9%,101) MAIN(1,running,83.3%,665) IDLE(0,ready,0.2%,29) AIN(4,delaying,0.8%,259), total 100.0%
Owned mutexes: WiFi(NETWORK)
=== Platform ===
Last reset 00:11:41 ago, cause: power up
Last software reset at 2024-09-18 17:38, reason: HardFault imprec, Gcodes spinning, available RAM 9992, slot 0
Software reset code 0x4063 HFSR 0x40000000 CFSR 0x00000400 ICSR 0x0047d803 BFAR 0xe000ed38 SP 0x20012008 Task NETW Freestk 482 ok
Stack: 2002c658 00000000 200014e4 0000016e 2003387b 00030345 00034d68 81010000 00030331 00000000 00000000 00000000 200316b4 00000800 200363d8 2002c640 2001882c 2002c496 2001882c 2001ea80 000304cb 00000000 00000000 00000000 200120b8 00000014 b5ddb6d6
Error status: 0x00
Aux0 errors 0,0,0
MCU revision 3, ADC conversions started 526311, completed 526311, timed out 0, errs 0
MCU temperature: min 39.0, current 54.7, max 54.9
Supply voltage: min 23.4, current 23.8, max 23.9, under voltage events: 0, over voltage events: 0, power good: yes
Heap OK, handles allocated/used 99/44, heap memory allocated/used/recyclable 2048/1852/1008, gc cycles 8
Events: 0 queued, 0 completed
Driver 0: ok, SG min 0, read errors 0, write errors 0, ifcnt 18, reads 36882, writes 18, timeouts 0, DMA errors 0, CC errors 0
Driver 1: standstill, SG min 0, read errors 0, write errors 0, ifcnt 23, reads 36877, writes 23, timeouts 0, DMA errors 0, CC errors 0
Driver 2: ok, SG min 0, read errors 0, write errors 0, ifcnt 30, reads 36870, writes 30, timeouts 0, DMA errors 0, CC errors 0
Driver 3: ok, SG min 0, read errors 0, write errors 0, ifcnt 30, reads 36869, writes 30, timeouts 0, DMA errors 0, CC errors 0
Driver 4: ok, SG min 0, read errors 0, write errors 0, ifcnt 18, reads 36882, writes 18, timeouts 0, DMA errors 0, CC errors 0
Driver 5: not present
Driver 6: not present
Date/time: 2024-09-20 15:47:15
Cache data hit count 1268256462
Slowest loop: 219.27ms; fastest: 0.12ms
=== Storage ===
Free file entries: 19
SD card 0 detected, interface speed: 22.5MBytes/sec
SD card longest read time 7.5ms, write time 1.4ms, max retries 0
=== Move ===
DMs created 83, segments created 16, maxWait 138693ms, bed compensation in use: mesh, height map offset 0.000, max steps late 0, min interval 0, bad calcs 0, ebfmin 0.00, ebfmax 0.00
next step interrupt due in 246 ticks, enabled
Moves shaped first try 0, on retry 0, too short 0, wrong shape 0, maybepossible 0
=== DDARing 0 ===
Scheduled moves 2280, completed 2275, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state 3
=== DDARing 1 ===
Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== Heat ===
Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
Heater 0 is on, I-accum = 0.2
Heater 1 is on, I-accum = 0.0
=== GCodes ===
Movement locks held by null, null
HTTP is idle in state(s) 0
Telnet is idle in state(s) 0
File is idle in state(s) 3
USB is idle 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
File2 is idle in state(s) 0
Queue2 is idle in state(s) 0
Q0 segments left 1, axes/extruders owned 0x0000807
Code queue 0 is empty
Q1 segments left 0, axes/extruders owned 0x0000000
Code queue 1 is empty
=== Filament sensors ===
check 0 clear 0
Extruder 1: no data received, errs: frame 0 parity 0 ovrun 0 pol 0 ovdue 0
=== CAN ===
Messages queued 8614, received 29113, lost 0, errs 0, boc 0
Longest wait 3ms for reply type 6013, peak Tx sync delay 194, free buffers 26 (min 25), ts 3508/3507/0
Tx timeouts 0,0,0,0,0,0
=== Network ===
Slowest loop: 171.19ms; fastest: 0.00ms
Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
HTTP sessions: 1 of 8
=== WiFi ===
Interface state: active
Module is connected to access point
Failed messages: pending 0, notrdy 0, noresp 1
Firmware version 2.1.0
MAC address c4:5b:be:46:4f:6c
Module reset reason: Hardware watchdog, Vcc 3.43, flash size 2097152, free heap 42808
WiFi IP address 192.168.3.139
Signal strength -55dBm, channel 1, mode 802.11n, reconnections 0
Clock register 00002001
Socket states: 0 0 0 0 0 0 0 0 -
@dc42 here is the config.g as well
; =========================================================================================================
;
; Configuration file for CaribouIDEX with LGX and Duet 3 Mini 5+ (firmware version 3.4 and higher)
;
; for 0.9° motors on xy, and 0.9° or 1.8° motor on e
;
; for CaribouIDEX220 Duet3Mini5+ LGX Mosquito 0.9° - E3d or SE Thermistor - SuperPINDA
;
; CariboDuetConfiguration Release : "0.1.0"
; Build : 177
;
; Copyright Caribou Research & Development 2023. Licensed under GPL3.
; Source code and release notes are available on github: https://github.com/Caribou3d/CaribouIDEX-Configuration-and-Macros
;
; =========================================================================================================
;
; global variables
;
global IdleCounter = 0 ; counts idle time
global ExtruderTempActive_Old0 = 0 ; stores extruder 0 temperature for idle check
global ExtruderTempActive_Old1 = 0 ; stores extruder 1 temperature for idle check
global BedTempActive_Old = 0 ; stores bed temperature for idle check
global OldStateStatus = 0 ; stores the status of the printer, processing = 1
global ToolSelected = -1 ; stores the selected tool
global HeatStatus1 = -1 ; stores the status of heater 1
global HeatStatus2 = -1 ; stores the status of heater 2
global HeatStatus3 = -1 ; stores the status of tool2
global HeaterActive1 = 0 ; stores the active temperature of heater 1
global HeaterStandby1 = 0 ; stores the standby temperature of heater 1
global HeaterActive2 = 0 ; stores the active temperature of heater 2
global HeaterStandby2 = 0 ; stores the standby temperature of heater 2
global HeaterActive3 = 0 ; stores the active temperature of tool 2
global HeaterStandby3 = 0 ; stores the standby temperature of tool 2
global HeatStatusTr1 = -1 ; stores the status of heater 1
global HeatStatusTr2 = -1 ; stores the status of heater 2
global HeatStatusTr3 = -1 ; stores the status of tool2
global HeaterActiveTr1 = 0 ; stores the active temperature of heater 1
global HeaterStandbyTr1 = 0 ; stores the standby temperature of heater 1
global HeaterActiveTr2 = 0 ; stores the active temperature of heater 2
global HeaterStandbyTr2 = 0 ; stores the standby temperature of heater 2
global HeaterActiveTr3 = 0 ; stores the active temperature of tool 2
global HeaterStandbyTr3 = 0 ; stores the standby temperature of tool 2
global ToolToActOn = -1 ; stores tool for load / unload / change / filament
global zlifted = 0 ; stores status of the z axis
global success = 0 ; stores status of load / unload / change
global purge = 0 ; stores status to purge when autoloading
global AskToChange = 1 ; ask if filament should be changed?
global zLiftDistance = 0 ; stores distance for lifting z axis
global waitForExtruderTemperature0 = false ; beeps when pre-heat temperature is reached
global waitForExtruderTemperature1 = false ; beeps when pre-heat temperature is reached
global waitForExtruderTemperature2 = false ; beeps when pre-heat temperature is reached
global waitForBedTemperature = false ; beeps when pre-heat temperature is reached
global x_accel = 0 ; stores x accelerations (mm/s^2)
global x_jerk = 0 ; stores x maximum instantaneous speed changes (mm/min)
global y_accel = 0 ; stores y accelerations (mm/s^2)
global y_jerk = 0 ; maximum y instantaneous speed changes (mm/min)
global filamentErrorIgnore0 = 0 ; enable / disable execution of filament-error.g
global filamentTriggerIgnore0 = 0 ; enable / disable execution of trigger2.g
global filamentErrorIgnore1 = 0 ; enable / disable execution of filament-error.g
global filamentTriggerIgnore1 = 0 ; enable / disable execution of trigger2.g
global SkipCalibration=0 ; enable / disable claibration at the beginning of a print
;
; general settings
;
M111 S0 ; debugging off
G21 ; work in millimetres
;
; =========================================================================================================
; network settings
; =========================================================================================================
;
M550 P"AM-Xfuse2" ; set printer name
;
M552 S1 ; enable network
M586 P0 S1 ; enable HTTP
M586 P1 S1 ; enable FTP
M586 P2 S0 ; disable Telnet
M575 P1 S1 B57600 ; enable support for PanelDue
;
; =========================================================================================================
; drives
; =========================================================================================================
;
M569 P0.1 S1 D3 V1000 ; physical drive 0.0 goes backwards - x-axis
M569 P0.2 S0 D3 V1000 ; physical drive 0.0 goes forwards - u-axis
M569 P0.3 S0 D3 V1000 ; physical drive 0.1 goes backwards - y-axis
M569 P0.0 S0 D3 V10 ; physical drive 0.2 goes backwards - z-left
M569 P0.4 S0 D3 V10 ; physical drive 0.3 goes backwards - z-right
M569 P20.0 S0 D3 V1000 ; physical drive 0.3 goes forwards - extruder
M569 P21.0 S0 D3 V1000 ; physical drive 0.4 goes forwards - extruder
;
; motor Configuration
;
M584 U0.1 X0.2 Y0.3 Z0.0:0.4 E20.0:21.0 ; set drive mapping
M671 X-125.1:369.9 Y0:0 S1.00 ; leadscrews at left (connected to z) and right (connected to E1) of X axis
;
; set Microsteps and steps / mm
;
M350 X16 U16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
;M92 X200.00 U200.00 Y200.00 Z800.00 E704.00 ; set steps per mm
;M92 X200.00 U200.00 Y200.00 Z800.00 E706.00:706.00 ; set steps per mm
M92 X200.00 U200.00 Y200.00 Z800.00 E575.00:575.00 ; set steps per mm
;
; set motor currents
;
;M906 X1400 U1400 Y1400 Z1200 E650 I40 ; set motor currents (mA) and motor idle factor in percent
M906 X1250 U1250 Y1250 Z1300 E750 I40 ; set motor currents (mA) and motor idle factor in percent;
M84 S60 ; set idle timeout
;
; set speeds
;
M201 X3000 U3000 Y3000 Z500 E500 ; set accelerations (mm/s^2)
M203 X12000 U12000 Y12000 Z1000 E3600 ; set maximum speeds (mm/min)
M204 P2000 T2000 ; set print and travel accelerations (mm(s^2)
M566 X600 U600 Y600 Z48 E300 ; set maximum instantaneous speed changes (mm/min)
;
set global.x_accel = move.axes[0].acceleration ; save accelerations (mm/s^2)
set global.x_jerk = move.axes[0].jerk ; save maximum instantaneous speed changes (mm/min)
;
set global.y_accel = move.axes[1].acceleration ; save accelerations (mm/s^2)
set global.y_jerk = move.axes[1].jerk ; save maximum instantaneous speed changes (mm/min)
;
M564 H0 ; allow unhomed movement
;
; =========================================================================================================
; axis limits
; =========================================================================================================
;
M208 X-72.8 U-37 Y-24.0 Z0 S1 ; set axis minima
M208 X251.0 U286.8 Y210.0 Z217.50 S0 ; set axis maxima
;
; =========================================================================================================
; endstops
; =========================================================================================================
;
M574 X1 S1 P"io2.in" ; configure active high endstop switch for low end on x
M574 U2 S1 P"io3.in" ; configure active high endstop switch for low end on u
M574 Y1 S3 ; configure sensorless endstop for low end on y
;
; =========================================================================================================
;
; SuperPINDA
;
M558 P8 C"^20.io2.in" H1.5 F600 T8000 A3 S0.03 ; set z probe to SuperPINDA
M557 X30:230 Y0:200 S30:40 ; define mesh grid
;
; =========================================================================================================
;
; stallguard sensitivy
;
M915 X S2 F0 H400 R0 ; set x axis sensitivity
M915 Y S1 F0 H200 R0 ; set y axis sensitivity
M915 Z S1 F0 H200 R0 ; set z axis sensitivity
M915 U S2 F0 H400 R0 ; set x axis sensitivity
;
; =========================================================================================================
; heaters & fans
; =========================================================================================================
;
; heated bed
; =========================================================================================================
;
M308 S0 P"temp0" Y"thermistor" T100000 B4138 A"Bed" ; configure sensor 0 as thermistor on pin temp0
M950 H0 C"out0" Q50 T0 ; create bed heater output on bedheat and map it to sensor 0
M143 H0 S110 ; set temperature limit for heater 0 to 110°C
M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit
M140 H0 ; map heated bed to heater 0
;
; extruder
; =========================================================================================================
;
; Hotend 1 (Mosquito or Mosquito Magnum with E3d Thermistor)
;
M308 S1 P"20.temp0" Y"thermistor" T100000 B4725 C7.060000e-8 A"Nozzle E0" ; E3d configure sensor 1 as thermistor on pin temp1
;
M950 H1 C"20.out0" T1 ; create nozzle heater output on out1 and map it to sensor 1
M307 H1 B0 S1.00 ; disable bang-bang mode for heater 1 and set PWM limit
M143 H1 S280 ; set temperature limit for heater 1 to 280°C
;
; Hotend 2 (Mosquito or Mosquito Magnum with E3d Thermistor)
;
M308 S2 P"21.temp0" Y"thermistor" T100000 B4725 C7.060000e-8 A"Nozzle E1" ; E3d configure sensor 2 as thermistor on pin temp2
;
M950 H2 C"21.out0" T2 ; create nozzle heater output on out2 and map it to sensor 2
M307 H2 B0 S1.00 ; disable bang-bang mode for heater 2 and set PWM limit
M143 H2 S280 ; set temperature limit for heater 2 to 280°C
;
; =========================================================================================================
;
M308 S4 P"mcu-temp" Y"mcu-temp" A"MCU" ; set virtual heater for MCU
M308 S5 P"drivers" Y"drivers" A"Driver" ; set virtual heater for stepper drivers
;
; =========================================================================================================
; fans
; =========================================================================================================
;
;
; cooling fans
;
M950 F0 C"20.out1" Q500 ; create fan 0 on pin fan1 and set its frequency
;
M950 F1 C"21.out1" Q500 ; create fan 1 on pin fan1 and set its frequency
;
; extruder fans (temperature controlled)
;
M950 F2 C"20.out2" Q500 ; create fan 2 on pin out5 and set its frequency
M106 P2 H1 T50 ; set fan 2 value. Thermostatic control is turned on
;
M950 F3 C"21.out2" Q500 ; create fan 3 on pin out6 and set its frequency
M106 P3 H2 T50 ; set fan 3 value. Thermostatic control is turned on
;
; ========================================================================================================
; tools
; =========================================================================================================
;
M563 P0 D0 H1 ; define tool 0
G10 P0 X0 Y0 Z0 ; set tool 0 axes offsets
M568 P0 S0 R0 A0 ; turn off tool 0, set active and standby temperature to 0°C
;
M563 P1 D1 H2 X3 ; define tool 1 (maps x to u)
G10 P1 X0 Y0 Z0 ; set tool 1 axes offsets
M568 P1 S0 R0 A0 ; turn off tool 1, set active and standby temperature to 0°C
;
M563 P2 D0:1 H1:2 X0:3 F0:1 S"Tool 2 (copy mode)" ; define tool 2 (copies x to u)
G10 P2 X0 Y0 U-110 S0 R0 ; set tool 2 axes offsets
M568 P2 S0 R0 A0 ; turn off tool 2, set active and standby temperature to 0°C
M567 P2 E1:1 ; set mixing
;
M302 S80 R80 ; allow extrusions starting from 80°C and retractions from 80°C
;
; =========================================================================================================
; filament handling
; =========================================================================================================
;
; execute macro that determines the status of the filament sensor
;
;M591 D0 P3 R60:140 C"20.io0.in" L77.75 S1 ; filament monitor connected to E0_stop
M591 D1 P3 R60:140 C"21.io0.in" L77.75 S1 ; filament monitor connected to E1_stop
;M98 P"0:/sys/00-Functions/FilamentsensorStatus"
;
; =========================================================================================================
; other settings
; =========================================================================================================
;
M18 XUY ; release / unlock x, y
M501 ; load config-override (for thermistor parameters and other settings)
G90 ; absolute positioning
M83 ; relative extruder moves
;
; =========================================================================================================
;
; offsets - place off-sets for x and y here. z-offsets are handled in the print sheet macros
;
G31 P1000 X0 Y5
G10 P0 X0 ; set offset for tool 0
;G10 P1 X0 Y-0.53 U34.99 Z0 ; set offset for tool 1
;g10 p1 x0 u34.90 y0.47 z0
;g10 p1 x0 u35.58 y0.37 z0
g10 p1 x0 u35.43 y0.31 z0
; =========================================================================================================
;
T-1 P0 ; deselect tools
;
; =========================================================================================================
; -
@wschadow thanks for your report. Please also post the address of the network receive buffer, which you can obtain like this:
- Send M122 P106. Example response:
m122p106 Platform 2001d138-2001e737 SbcInterface 2001e740-2001ea70 Network 2001ea80-2001eb67 <--------------- GCodes 2001eb70-2001ff6f Move 20023ff8-20024d33 Heat 20025110-20025237 PrintMonitor 20025240-2002544f FansManager 20025458-200254d7 PortControl 200254e0-2002550f Display 20025518-20025533 ExpansionManager 20025540-200282f7
- Send M122 P1007 A{0x########+8} where ######## is the first hex value in the Network line of the previous response. Example response:
m122p1007 a{0x2001ea80+8} 2001ea88: 2002c420
- Send M122 P1007 A{0x########+136} where ######## is the second number in that response. Example response:
m122p1007 a{0x2002c420+136} 2002c4a8: 20032dd0
The second number (0x20032dd0 in this example) is the value I need.
-
@dc42 here is another one
9/20/2024, 8:02:10 PM M122
=== Diagnostics ===
RepRapFirmware for Duet 3 Mini 5+ version 3.5.3 (2024-09-18 11:25:48) running on Duet 3 Mini5plus WiFi (standalone mode)
Board ID: UF2UK-QQ6KL-K65J0-409NA-L7X1Z-Z1P2J
Used output buffers: 11 of 40 (32 max)
=== RTOS ===
Static ram: 103368
Dynamic ram: 124088 of which 0 recycled
Never used RAM 11440, free system stack 190 words
Tasks: NETWORK(2,nWait 7,14.9%,228) HEAT(3,nWait 6,0.0%,350) Move(4,nWait 6,0.0%,355) CanReceiv(6,nWait 1,0.1%,798) CanSender(5,nWait 7,0.0%,336) CanClock(7,delaying,0.0%,348) TMC(4,nWait 6,0.8%,101) MAIN(1,running,83.3%,665) IDLE(0,ready,0.0%,29) AIN(4,delaying,0.8%,259), total 100.0%
Owned mutexes:
=== Platform ===
Last reset 00:16:54 ago, cause: software
Last software reset at 2024-09-20 19:45, reason: HardFault imprec, Platform spinning, available RAM 9808, slot 1
Software reset code 0x4060 HFSR 0x40000000 CFSR 0x00000400 ICSR 0x00000803 BFAR 0xe000ed38 SP 0x20012008 Task NETW Freestk 482 ok
Stack: 2002c658 00000000 200014e4 00000165 20033872 0003039d 00034ddc 810f0000 00030389 00000000 00000000 00000000 200326dc 00000800 200363f0 2002c640 2001882c 2002c496 2001882c 2001ea80 00030523 00000000 00000000 00000000 200120b8 00000014 b5ddb6d6
Error status: 0x00
Aux0 errors 0,0,0
MCU revision 3, ADC conversions started 761086, completed 761085, timed out 0, errs 0
MCU temperature: min 41.8, current 41.8, max 57.1
Supply voltage: min 23.8, current 23.9, max 23.9, under voltage events: 0, over voltage events: 0, power good: yes
Heap OK, handles allocated/used 99/43, heap memory allocated/used/recyclable 2048/1844/1020, gc cycles 16
Events: 0 queued, 0 completed
Driver 0: standstill, SG min 0, read errors 0, write errors 1, ifcnt 30, reads 53382, writes 11, timeouts 0, DMA errors 0, CC errors 0
Driver 1: standstill, SG min 14, read errors 0, write errors 1, ifcnt 35, reads 53382, writes 11, timeouts 0, DMA errors 0, CC errors 0
Driver 2: standstill, SG min 266, read errors 0, write errors 1, ifcnt 42, reads 53381, writes 11, timeouts 0, DMA errors 0, CC errors 0
Driver 3: standstill, SG min 310, read errors 0, write errors 1, ifcnt 41, reads 53382, writes 10, timeouts 0, DMA errors 0, CC errors 0
Driver 4: standstill, SG min 2, read errors 0, write errors 1, ifcnt 30, reads 53382, writes 11, timeouts 0, DMA errors 0, CC errors 0
Driver 5: not present
Driver 6: not present
Date/time: 2024-09-20 20:02:09
Cache data hit count 1957929928
Slowest loop: 9.15ms; fastest: 0.16ms
=== Storage ===
Free file entries: 20
SD card 0 detected, interface speed: 22.5MBytes/sec
SD card longest read time 3.2ms, write time 0.0ms, max retries 0
=== Move ===
DMs created 83, segments created 0, maxWait 0ms, bed compensation in use: none, height map offset 0.000, max steps late 0, min interval 0, bad calcs 0, ebfmin 0.00, ebfmax 0.00
no step interrupt scheduled
Moves shaped first try 0, on retry 0, too short 0, wrong shape 0, maybepossible 0
=== DDARing 0 ===
Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== DDARing 1 ===
Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== Heat ===
Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
=== GCodes ===
Movement locks held by null, null
HTTP is idle in state(s) 0
Telnet is idle in state(s) 0
File is idle in state(s) 0
USB is idle 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
File2 is idle in state(s) 0
Queue2 is idle in state(s) 0
Q0 segments left 0, axes/extruders owned 0x0000000
Code queue 0 is empty
Q1 segments left 0, axes/extruders owned 0x0000000
Code queue 1 is empty
=== Filament sensors ===
check 0 clear 0
Extruder 1: no data received, errs: frame 0 parity 0 ovrun 0 pol 0 ovdue 0
=== CAN ===
Messages queued 9165, received 41127, lost 0, errs 0, boc 0
Longest wait 2ms for reply type 6053, peak Tx sync delay 161, free buffers 26 (min 25), ts 5074/5073/0
Tx timeouts 0,0,0,0,0,0
=== Network ===
Slowest loop: 8.81ms; fastest: 0.00ms
Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
HTTP sessions: 1 of 8
=== WiFi ===
Interface state: active
Module is connected to access point
Failed messages: pending 0, notrdy 0, noresp 0
Firmware version 2.1.0
MAC address c4:5b:be:46:4f:6c
Module reset reason: Power up, Vcc 3.43, flash size 2097152, free heap 39348
WiFi IP address 192.168.3.139
Signal strength -57dBm, channel 1, mode 802.11n, reconnections 0
Clock register 00002001
Socket states: 0 0 0 0 0 0 0 0 -
@dc42 and the output from 122 p106
9/20/2024, 8:04:08 PM M122 p106
Platform 2001d138-2001e737
SbcInterface 2001e740-2001ea70
Network 2001ea80-2001eb67
GCodes 2001eb70-2001ff6f
Move 20023ff8-20024d33
Heat 20025110-20025237
PrintMonitor 20025240-2002544f
FansManager 20025458-200254d7
PortControl 200254e0-2002550f
Display 20025518-20025533
ExpansionManager 20025540-200282f7 -
9/20/2024, 8:07:48 PM
m122p1007 a{0x2001ea80+8}
2001ea88: 2002c4209/20/2024, 8:09:10 PM
m122p1007 a{0x2001eb67+136}
2001ebef: 00000000 -
@dc42 I upgraded to RRF 3.5.3 today. During the 2nd print I experienced a hard reset. Please see the M122 report underneath:
=== Diagnostics === RepRapFirmware for Duet 3 Mini 5+ version 3.5.3 (2024-09-18 11:25:48) running on Duet 3 Mini5plus WiFi (standalone mode) Board ID: 7MPG2-K396U-D65J0-40KMQ-JQ03Z-Z0D1Q Used output buffers: 3 of 40 (18 max) === RTOS === Static ram: 103368 Dynamic ram: 121604 of which 0 recycled Never used RAM 16776, free system stack 198 words Tasks: NETWORK(2,nWait 7,13.5%,217) HEAT(3,nWait 6,0.0%,350) Move(4,nWait 6,0.0%,355) CanReceiv(6,nWait 1,0.0%,939) CanSender(5,nWait 7,0.0%,336) CanClock(7,delaying,0.0%,334) TMC(4,nWait 6,0.8%,110) MAIN(1,running,84.6%,665) IDLE(0,ready,0.2%,29) AIN(4,delaying,0.8%,268), total 100.0% Owned mutexes: === Platform === Last reset 00:05:29 ago, cause: reset button Last software reset time unknown, reason: HardFault invState, Gcodes spinning, available RAM 27292, slot 2 Software reset code 0x4863 HFSR 0x40000000 CFSR 0x00020000 ICSR 0x00000803 BFAR 0xe000ed38 SP 0x20012580 Task TMC Freestk 125 ok Stack: 2001948c 20012334 200014e8 e000e000 00000060 00091d55 00000000 6100f000 00000000 00000000 00000000 cf410005 0041ff05 d7000000 0002ff05 3a130000 00000000 00000000 00000000 00000000 00000053 2003b5d0 20012c24 00000dae 20019494 20012e5c 2001261c Error status: 0x00 Aux0 errors 0,0,0 MCU revision 3, ADC conversions started 247196, completed 247196, timed out 0, errs 0 MCU temperature: min 31.8, current 31.8, max 34.9 Supply voltage: min 23.9, current 24.0, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes 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: standstill, SG min 2, read errors 0, write errors 1, ifcnt 27, reads 17320, writes 10, timeouts 0, DMA errors 0, CC errors 0 Driver 1: standstill, SG min 0, read errors 0, write errors 1, ifcnt 27, reads 17320, writes 10, timeouts 0, DMA errors 0, CC errors 0 Driver 2: standstill, SG min 4, read errors 0, write errors 1, ifcnt 23, reads 17319, writes 10, timeouts 0, DMA errors 0, CC errors 0 Driver 3: standstill, SG min 0, read errors 0, write errors 1, ifcnt 21, reads 17319, writes 10, timeouts 0, DMA errors 0, CC errors 0 Driver 4: standstill, SG min 0, read errors 0, write errors 1, ifcnt 27, reads 17320, writes 10, timeouts 0, DMA errors 0, CC errors 0 Driver 5: not present Driver 6: not present Date/time: 2024-09-21 16:43:50 Cache data hit count 603090100 Slowest loop: 25.74ms; fastest: 0.16ms === Storage === Free file entries: 20 SD card 0 detected, interface speed: 22.5MBytes/sec SD card longest read time 1.3ms, write time 0.0ms, max retries 0 === Move === DMs created 83, segments created 0, maxWait 0ms, bed compensation in use: none, height map offset 0.000, max steps late 0, min interval 0, bad calcs 0, ebfmin 0.00, ebfmax 0.00 no step interrupt scheduled Moves shaped first try 0, on retry 0, too short 0, wrong shape 0, maybepossible 0 === DDARing 0 === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === DDARing 1 === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 === GCodes === Movement locks held by null, null HTTP is idle in state(s) 0 Telnet is idle in state(s) 0 File is idle in state(s) 0 USB is idle 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 File2 is idle in state(s) 0 Queue2 is idle in state(s) 0 Q0 segments left 0, axes/extruders owned 0x0000000 Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === Filament sensors === check 0 clear 1548989 Extruder 0: no data received, errs: frame 0 parity 0 ovrun 0 pol 0 ovdue 0 === CAN === Messages queued 2965, received 0, lost 0, errs 1595525, boc 0 Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 26 (min 26), ts 1648/0/0 Tx timeouts 0,0,1647,0,0,1316 last cancelled message type 4514 dest 127 === Network === Slowest loop: 28.03ms; fastest: 0.00ms Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) HTTP sessions: 1 of 8 === WiFi === Interface state: active Module is connected to access point Failed messages: pending 0, notrdy 0, noresp 0 Firmware version 2.1.0 MAC address d8:bf:c0:15:0a:5c Module reset reason: Power up, Vcc 3.38, flash size 2097152, free heap 42652 WiFi IP address 172.16.0.142 Signal strength -47dBm, channel 5, mode 802.11n, reconnections 0 Clock register 00002001 Socket states: 0 0 0 0 0 0 0 0
-
@Maurits Thanks for the report, sorry this is continuing to be a problem. Can you post the same debug info as the post above? See @dc42's post above, here https://forum.duet3d.com/post/345163, for what is needed.
You asked if this could be a hardware fault. Yes, it's possible; I'm not currently sure if the bug we're trying to chase down here is the same one. I'm not aware of other people having the same 'HardFault' reset in 3.4.5. In the past, this fault has usually been to do with static electricity (created by the filament rubbing on the extruder) discharging causing memory corruption. Our general advice to avoid that is here: https://docs.duet3d.com/en/User_manual/Connecting_hardware/Power_wiring#grounding
Ian
-
@dc42 Today I tried to tun in SBC mode, this is not stable as well. Here is the output of m122, m122 p106
9/23/2024, 1:44:01 PM M122 === Diagnostics === RepRapFirmware for Duet 3 Mini 5+ version 3.5.3 (2024-09-18 11:25:48) running on Duet 3 Mini5plus WiFi (SBC mode) Board ID: UF2UK-QQ6KL-K65J0-409NA-L7X1Z-Z1P2J Used output buffers: 1 of 40 (40 max) === RTOS === Static ram: 103368 Dynamic ram: 111484 of which 0 recycled Never used RAM 23684, free system stack 134 words Tasks: SBC(2,ready,1.8%,813) HEAT(3,nWait 6,0.0%,350) Move(4,nWait 6,0.8%,241) CanReceiv(6,nWait 1,0.1%,773) CanSender(5,nWait 7,0.0%,336) CanClock(7,delaying,0.0%,348) TMC(4,nWait 6,0.8%,101) MAIN(2,running,95.2%,753) IDLE(0,ready,0.4%,29) AIN(4,delaying,0.8%,259), total 100.0% Owned mutexes: HTTP(MAIN) === Platform === Last reset 00:27:46 ago, cause: software Last software reset time unknown, reason: User, Gcodes spinning, available RAM 27616, slot 0 Software reset code 0x6003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00000000 BFAR 0xe000ed38 SP 0x00000000 Task SBC Freestk 0 n/a Error status: 0x04 Aux0 errors 0,0,0 MCU revision 3, ADC conversions started 1250473, completed 1250473, timed out 0, errs 0 MCU temperature: min 34.9, current 46.1, max 55.8 Supply voltage: min 23.4, current 23.9, max 24.0, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 99/43, heap memory allocated/used/recyclable 2048/1448/624, gc cycles 0 Events: 0 queued, 0 completed Driver 0: standstill, SG min 0, read errors 0, write errors 1, ifcnt 44, reads 22122, writes 26, timeouts 0, DMA errors 0, CC errors 0 Driver 1: standstill, SG min 2, read errors 0, write errors 1, ifcnt 56, reads 22111, writes 37, timeouts 0, DMA errors 0, CC errors 0 Driver 2: standstill, SG min 0, read errors 0, write errors 1, ifcnt 63, reads 22099, writes 48, timeouts 0, DMA errors 0, CC errors 0 Driver 3: standstill, SG min 0, read errors 0, write errors 1, ifcnt 60, reads 22099, writes 48, timeouts 0, DMA errors 0, CC errors 0 Driver 4: standstill, SG min 0, read errors 0, write errors 1, ifcnt 37, reads 22122, writes 26, timeouts 0, DMA errors 0, CC errors 0 Driver 5: not present Driver 6: not present Date/time: 2024-09-23 12:44:01 Cache data hit count 2957030106 Slowest loop: 433.46ms; fastest: 0.09ms === Storage === Free file entries: 20 SD card 0 not detected, interface speed: 0.0MBytes/sec SD card longest read time 0.0ms, write time 0.0ms, max retries 0 === Move === DMs created 83, segments created 15, maxWait 132891ms, bed compensation in use: mesh, height map offset 0.000, max steps late 0, min interval 0, bad calcs 0, ebfmin 0.00, ebfmax 0.00 no step interrupt scheduled Moves shaped first try 0, on retry 0, too short 0, wrong shape 0, maybepossible 0 === DDARing 0 === Scheduled moves 2524, completed 2524, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 2], CDDA state -1 === DDARing 1 === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 === GCodes === Movement locks held by null, null HTTP* is doing "M122" in state(s) 0 Telnet is idle in state(s) 0 File* is idle in state(s) 3 USB is idle 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 File2 is idle in state(s) 0 Queue2 is idle in state(s) 0 Q0 segments left 0, axes/extruders owned 0x0000807 Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === Filament sensors === check 0 clear 0 Extruder 1: no data received, errs: frame 0 parity 0 ovrun 0 pol 0 ovdue 0 === CAN === Messages queued 19356, received 68219, lost 0, errs 0, boc 0 Longest wait 4ms for reply type 6013, peak Tx sync delay 272, free buffers 26 (min 24), ts 8333/8332/0 Tx timeouts 0,0,0,0,0,0 === SBC interface === Transfer state: 5, failed transfers: 0, checksum errors: 0 RX/TX seq numbers: 52443/3526 SPI underruns 0, overruns 0 State: 5, disconnects: 1, timeouts: 1 total, 1 by SBC, IAP RAM available 0x0cd38 Buffer RX/TX: 0/0-0, open files: 0 === Duet Control Server === Duet Control Server version 3.5.3 (2024-09-19 12:12:39, 32-bit) HTTP+Executed: > Executing M122 Code buffer space: 4096 Configured SPI speed: 8000000Hz, TfrRdy pin glitches: 0 Full transfers per second: 31.60, max time between full transfers: 278.9ms, max pin wait times: 77.0ms/12.3ms Codes per second: 2.90 Maximum length of RX/TX data transfers: 4476/1220 9/23/2024, 1:45:38 PM PrintMonitor 20025240-2002544f FansManager 20025458-200254d7 PortControl 200254e0-2002550f Display 20025518-20025533 ExpansionManager 20025540-200282f7 9/23/2024, 1:45:38 PM M122 p106 9/23/2024, 1:45:38 PM Platform 2001d138-2001e737 SbcInterface 2001e740-2001ea70 Network 2001ea80-2001eb67 GCodes 2001eb70-2001ff6f Move 20023ff8-20024d33 Heat 20025110-20025237 9/23/2024, 1:51:17 PM m122p1007 a{0x2001ea80+8} 2001ea88: 2002c420 9/23/2024, 1:52:08 PM m122p1007 a{0x2001eb67+136} 2001ebef: 00000000
-
@dc42 and a second one
9/23/2024, 12:43:41 PM M122 === Diagnostics === RepRapFirmware for Duet 3 Mini 5+ version 3.5.3 (2024-09-18 11:25:48) running on Duet 3 Mini5plus WiFi (SBC mode) Board ID: UF2UK-QQ6KL-K65J0-409NA-L7X1Z-Z1P2J Used output buffers: 10 of 40 (40 max) === RTOS === Static ram: 103368 Dynamic ram: 111484 of which 0 recycled Never used RAM 23900, free system stack 140 words Tasks: SBC(2,rWait:,1.8%,805) HEAT(3,nWait 6,0.0%,350) Move(4,nWait 6,0.1%,241) CanReceiv(6,nWait 1,0.1%,794) CanSender(5,nWait 7,0.0%,336) CanClock(7,delaying,0.0%,348) TMC(4,nWait 6,0.8%,101) MAIN(2,running,95.1%,753) IDLE(0,ready,1.2%,29) AIN(4,delaying,0.8%,259), total 100.0% Owned mutexes: HTTP(MAIN) === Platform === Last reset 00:10:31 ago, cause: power up Last software reset at 2024-09-20 19:45, reason: HardFault imprec, Platform spinning, available RAM 9808, slot 1 Software reset code 0x4060 HFSR 0x40000000 CFSR 0x00000400 ICSR 0x00000803 BFAR 0xe000ed38 SP 0x20012008 Task NETW Freestk 482 ok Stack: 2002c658 00000000 200014e4 00000165 20033872 0003039d 00034ddc 810f0000 00030389 00000000 00000000 00000000 200326dc 00000800 200363f0 2002c640 2001882c 2002c496 2001882c 2001ea80 00030523 00000000 00000000 00000000 200120b8 00000014 b5ddb6d6 Error status: 0x04 Aux0 errors 0,0,0 MCU revision 3, ADC conversions started 474054, completed 474052, timed out 0, errs 0 MCU temperature: min 36.2, current 47.6, max 47.6 Supply voltage: min 23.4, current 23.9, max 24.0, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 99/43, heap memory allocated/used/recyclable 2048/1136/312, gc cycles 0 Events: 0 queued, 0 completed Driver 0: standstill, SG min 0, read errors 0, write errors 0, ifcnt 23, reads 33185, writes 23, timeouts 0, DMA errors 0, CC errors 0 Driver 1: standstill, SG min 0, read errors 0, write errors 0, ifcnt 28, reads 33180, writes 28, timeouts 0, DMA errors 0, CC errors 0 Driver 2: standstill, SG min 0, read errors 0, write errors 0, ifcnt 37, reads 33171, writes 37, timeouts 0, DMA errors 0, CC errors 0 Driver 3: standstill, SG min 0, read errors 0, write errors 0, ifcnt 35, reads 33172, writes 35, timeouts 0, DMA errors 0, CC errors 0 Driver 4: standstill, SG min 0, read errors 0, write errors 0, ifcnt 23, reads 33185, writes 23, timeouts 0, DMA errors 0, CC errors 0 Driver 5: not present Driver 6: not present Date/time: 2024-09-23 11:41:50 Cache data hit count 1238108594 Slowest loop: 471.26ms; fastest: 0.09ms === Storage === Free file entries: 20 SD card 0 not detected, interface speed: 0.0MBytes/sec SD card longest read time 0.0ms, write time 0.0ms, max retries 0 === Move === DMs created 83, segments created 6, maxWait 197430ms, bed compensation in use: mesh, height map offset 0.000, max steps late 0, min interval 0, bad calcs 0, ebfmin 0.00, ebfmax 0.00 no step interrupt scheduled Moves shaped first try 0, on retry 0, too short 0, wrong shape 0, maybepossible 0 === DDARing 0 === Scheduled moves 363, completed 363, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 2], CDDA state -1 === DDARing 1 === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 === GCodes === Movement locks held by null, null HTTP* is doing "M122" in state(s) 0 Telnet is idle in state(s) 0 File* is idle in state(s) 0 USB is idle 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 File2 is idle in state(s) 0 Queue2 is idle in state(s) 0 Q0 segments left 0, axes/extruders owned 0x0000807 Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === Filament sensors === check 0 clear 0 Extruder 1: no data received, errs: frame 0 parity 0 ovrun 0 pol 0 ovdue 0 === CAN === Messages queued 6076, received 25517, lost 0, errs 0, boc 0 Longest wait 2ms for reply type 6031, peak Tx sync delay 153, free buffers 26 (min 24), ts 3157/3156/0 Tx timeouts 0,0,0,0,0,0 === SBC interface === Transfer state: 5, failed transfers: 0, checksum errors: 0 RX/TX seq numbers: 22250/968 SPI underruns 0, overruns 0 State: 5, disconnects: 2, timeouts: 2 total, 2 by SBC, IAP RAM available 0x0cd38 Buffer RX/TX: 0/0-0, open files: 0 === Duet Control Server === Duet Control Server version 3.5.3 (2024-09-19 12:12:39, 32-bit) HTTP+Executed: > Executing M122 Code buffer space: 4096 Configured SPI speed: 8000000Hz, TfrRdy pin glitches: 0 Full transfers per second: 30.79, max time between full transfers: 22239.4ms, max pin wait times: 1223.9ms/72.1ms Codes per second: 1.04 Maximum length of RX/TX data transfers: 4408/888 Send M122 P106 9/23/2024, 12:49:37 PM PrintMonitor 20025240-2002544f FansManager 20025458-200254d7 PortControl 200254e0-2002550f Display 20025518-20025533 ExpansionManager 20025540-200282f7 9/23/2024, 12:49:37 PM Platform 2001d138-2001e737 SbcInterface 2001e740-2001ea70 Network 2001ea80-2001eb67 GCodes 2001eb70-2001ff6f Move 20023ff8-20024d33 Heat 20025110-20025237 9/23/2024, 12:51:08 PM m122p1007 a{0x2001ea80+8} 2001ea88: 2002c420 9/23/2024, 12:52:12 PM m122p1007 a{0x2001eb67+136} 2001ebef: 00000000
-
@wschadow whatever issue you are having in SBC mode is not the same problem. Please start a separate thread for it, and include in it description of the problem symptoms.
-
@wschadow said in Duet 3 mini5+ randomly resets during printing:
9/20/2024, 8:07:48 PM
m122p1007 a{0x2001ea80+8}
2001ea88: 2002c4209/20/2024, 8:09:10 PM
m122p1007 a{0x2001eb67+136}
2001ebef: 00000000Unfortunately that's not the info I need. The value reported by the first M122 P1007 commandsneed to be fed into the second one; so the second command should have been:
m122p1007 a{0x2002c420+136}
Note, in SBC mode all the values will be different and so not relevant to this issue.
-
-
All, please see https://forum.duet3d.com/topic/36689/random-hard-fault-resets-on-duet-3-mini-wifi and provide any additional reports there. I am locking this thread.
-