SD Card Error 1 DUET3 M6HC
-
I have an SD card breakout board connected to the temp daughter board connector of a DUET3 M6HC. SD card mounts and I can see and simulate the files on the auxiliary SD card. If I try to the run a file from the card the job is immediately canceled with "Error: Cannot read file, error code 1".
Files on sd card are intact. Loaded the test files onto the onboard SD and they run fine.
I tried 3.4.0 and 3.4.1 RC1.
M122 results immediately after the error
6/20/2022, 4:00:42 PM m122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.4.0 (2022-03-15 18:57:24) running on Duet 3 MB6HC v1.01 or later (standalone mode) Board ID: 08DJM-9P63L-DJ3S0-7J9DA-3S46L-KVKR8 Used output buffers: 3 of 40 (28 max) === RTOS === Static ram: 151000 Dynamic ram: 95168 of which 0 recycled Never used RAM 104264, free system stack 144 words Tasks: NETWORK(ready,25.3%,183) ETHERNET(notifyWait,0.1%,168) HEAT(notifyWait,0.0%,373) Move(notifyWait,2.9%,248) CanReceiv(notifyWait,0.0%,944) CanSender(notifyWait,0.0%,356) CanClock(delaying,0.0%,333) TMC(notifyWait,8.4%,58) MAIN(running,63.0%,925) IDLE(ready,0.3%,30), total 100.0% Owned mutexes: === Platform === Last reset 00:03:29 ago, cause: reset button Last software reset time unknown, reason: MemoryProtectionFault mmarValid daccViol, Platform spinning, available RAM 104720, slot 2 Software reset code 0x4960 HFSR 0x00000000 CFSR 0x00000082 ICSR 0x0044a804 BFAR 0x00000190 SP 0x2041b640 Task MAIN Freestk 1750 ok Stack: 00000000 00000000 00000000 00000000 ffffffef 00414cc3 0040b50e 610f0000 0209d233 00000000 00000000 2043004c 00000000 00470b37 0000b1bc 204283a0 204293a0 00000001 0000b21d 00413829 00000000 00000000 00000000 00000000 00000000 00000000 00000000 Error status: 0x00 Aux0 errors 0,0,0 Step timer max interval 562 MCU temperature: min 41.8, current 43.8, max 51.9 Supply voltage: min 23.3, current 23.9, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.0, current 12.1, max 12.2, under voltage events: 0 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 0, mspos 744, reads 36732, writes 23 timeouts 0 Driver 1: standstill, SG min 0, mspos 712, reads 36733, writes 23 timeouts 0 Driver 2: standstill, SG min 0, mspos 952, reads 36733, writes 23 timeouts 0 Driver 3: standstill, SG min 0, mspos 8, reads 36745, writes 11 timeouts 0 Driver 4: standstill, SG min 0, mspos 8, reads 36742, writes 14 timeouts 0 Driver 5: standstill, SG min 0, mspos 8, reads 36745, writes 11 timeouts 0 Date/time: 2022-06-20 16:00:41 Slowest loop: 1333.10ms; fastest: 0.05ms === Storage === Free file entries: 10 SD card 0 detected, interface speed: 25.0MBytes/sec SD card longest read time 8.0ms, write time 575.6ms, max retries 3 === Move === DMs created 125, segments created 10, maxWait 55407ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 403, completed 403, 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 -1 -1 -1 -1 -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 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 Code queue is empty === CAN === Messages queued 1046, received 0, lost 0, boc 0 Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 50 (min 50), ts 1046/0/0 Tx timeouts 0,0,1045,0,0,0 last cancelled message type 30 dest 127 === Network === Slowest loop: 701.72ms; fastest: 0.02ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions HTTP sessions: 1 of 8 - Ethernet - State: active Error counts: 0 0 1 0 0 Socket states: 5 2 2 2 2 0 0 0
-
I've probably misunderstood the directive, but I thought the only place the SD card should be is in the MB6HC microSD slot, and not using a connector?
-
with 3.4.0 you were able to add an auxilary SD card to the temp daughter board.
-
@that-guy-e please share your config.g file.
PS - also please share how you have connected the external SD card to the daughterboard connector.
-
For some reason I'm having issue imbedding images or including attachment.
Break out board is wired as such. The 5V and ground are coming off of a 5V power supply which is also power the logic side of the Duet3
Duet3 Temp Daughter Board SD Breakout Card CS0 pin3 -> CS pin1 SCLK pin4 -> SCK pin2 MOSI pin5 -> MOSI pin3 MISO pin6 -> MISO pin4 +5V VCC pin5 GND GND pin6
I also installed a jumper between I07.in pin and ground of that connector. I've also tried with out the i07.in jumper and excluded it from the M950. Did not change results.
Config
; General preferences G90 ; Send absolute coordinates... M555 P1 ; Set firmware compatibility to look like RepRapFirmare ;M575 P1 B57600 S1 ; set baud rate for panel due M575 P1 B115200 S1 ; set baud rate for panel due G4 S1 M118 P2 S"{""controlCommand"":""reset""}" ;reset display ;DEVICE NAME M550 P"Carver" ; SET DEVICE NAME ; Network ;WAP M552 S0 G4 S1 ;WAIT 1 SECOND M552 S1 ;ENABLE NETWORK AS CLIENT ;Define Kinematics M669 K0 S100 T0.001 ;set as cartesion M584 Z1:2 ;define Z drives M584 U4 R1 S1 ;define U drives M584 X0 ;define X drives ; Drives M569 P0 S0 ;D3 ; Drive 0 goes backwards M569 P1 S0 ;D3 ; Drive 1 goes Backwards M569 P2 S0 ;D3 ; Drive 2 goes Backward M569 P3 S1 ;D3 ; Drive 3 goes forwards M569 P4 S1 ;D3 ; DRIVE 4 GOES forwards M350 X16 U16 Z16 I1 ; Configure microstepping with interpolation M92 Z800 U177.77777 X320 ; Set steps per mm M566 Z400 U1200 X600 ;DEFINE JERK M203 Z4500 U10800 X7500 ;DEFINE MAX SPEED (MM/MIN) M201 Z4000 U3000 X4000 ; Set max accelerations (mm/s^2)' M906 Z5500 U5500 X5500 I10 ; Set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X0 Z-60 U-9999999999 S1 ; Set axis minima M208 Z240 X685 U9999999999 S0 ; Set axis maxima ; Endstops M574 Z2 P"^!io4.in+^!io5.in" S1 M574 X2 P"^!io3.in" S1 ;DEFINE SPINDLE M453 ;SET CNC MODE M950 R0 C"out9+OUT5" L60:10000 ;DEFINE SPINDLEINDEX 0 WITH out9 as pwm OUT5 as on/off M563 P1 S"SPINDLE 1" R0 ;CREATE TOOL 1 WITh SPINDLE 0 AND CALL IT SPINDLE 1 ;VFD Error Check M950 J2 C"IO6.IN" ;create pin3 M581 P2 T2 C0 S1 M582 T2 ;SD CARD M950 D1 C"spi.cs0+io7.in"
-
@that-guy-e thanks.
Are you certain that the SD card adapter needs 5V on VCC, not 3.3V? It would only need 5V if it includes a 3.3V regulator.
How long are the wires to the SD card adapter? Do they run anywhere near stepper motor wires? The only reason I can think of why the card reader would work when simulating and not when printing is if when printing there is electrical noise affecting the wires.
-
Cable length is 400mm.
No motor cable near by.
SD Card has is 5V VCC with a 3.3 step down on board. We've been running the same board with the 5V SD card pins on a duet2 without issues.
I'll do some more testing with another Duet3 and SD card reader and the same cable. I was at a users facility when I discovered this. I unfortunately did not have an extra reader board with me.
-
@that-guy-e another possibility is that because you have a separate PSU providing 5V, the way you have connected the ground causes stepper motor ground noise on the SD card wires. Try not connecting SD card 5V and ground directly to the 5V PSU. Instead connect SD card GND to the temperature daughterboard connector, and take 5V for the SD card adapter from the IO7 connector.
-
I will give that a shot now.
Using my previous setup I was able to reproduce the issue on another duet3 with 2 different card readers and 2 cable sets. Card readers work as expect them if I connect them to a duet 2.
-
Connecting ground to the daughter board and the VCC to the io.7 appears to have solved the problem.
I'll continue to monitor and test on another controller.
You've been helpful as always