The background and printer

I have an Ender 3 Pro that I have made all sorts of modifications to, the important ones being:

  • Replaced control board with BTT E3 RRF v1.1
  • Flashed BTT's firmware that I compiled (only change I made was to allow my BLTouch to work)

The problem

I keep getting the error message "SD Init Fail". Sometimes it's right away when I plug the SD card in, sometimes its 5 hours into a print. The print will just suddenly stop and that error will pop up.

Things I've tried

I had previously asked this question here and most of the suggestions were to "take it out and plug it back in again" or to get a new sd card. I've tried it with new, name-brand (Sandisk) cards, and it doesn't work any better/worse than the card that came with the Ender. I've seen various suggestions around the internet (like on Marlin's website) that adjusting the SPI speed can possibly help with "Volume Init" errors, which I assume to mean the same thing: enter image description here

I have tried the firmware at both normal speed and half and quarter, haven't tried eighth yet. I didn't notice any different behavior for any of them.

I'm at a loss! Help! I'm eventually probably going to jump to Octoprint via a Raspberry Pi, but given the printers location in an area without wifi, is there anything I can do in the meantime? Any other firmware tips? Or suggestions?


This is happening with multiple SD cards that work in other ports (your computer, for instance): that tells me the problem must be in the mainboard hardware or firmware.

You're using the stock firmware for that board, with the BLTouch enabled but otherwise original -- assuming you only had to change a compiler directive to enable BLTouch, that pretty strongly points to hardware. And the hardware that's likely at fault here is the SD port on the mainboard.

It's hard to verify, hard to repair (aside from simply replacing the board with another of the hardware revision), but not impossible. With the right tools, you could connect a second SD card port parallel to the existing one (hook jumpers from an oscilloscope?), run the board from the external SD card, and reproduce the error by momentarily disconnecting one of the jumpers.

Repairing the problem might only require reflowing solder connections on the board for the SD port wires, or it might require replacing the port itself.

One thing to check before you do all of that, however: clean the contacts in the port. With power off (of course!) slip a utility knife blade or similar with a sheet of printer paper wrapped over it into the port, work it in and out a couple times to scrub the paper over the spring contacts, then pull it out and carefully vacuum the port.

If that fixes it, good to go! If not, all it's cost you is a few minutes before trying the more drastic stuff.

If you do determine that the SD socket is at fault due to connection problems, it may be worth considering installing an off-frame mainboard housing (I've seen these in printable form for Ender 3 class machines, though if this is your only printer you might have to buy one, since they'll be 10-16 hour prints) to insulate the mainboard from movement induced by bed and hot end/extruder motion. This has the downside that it requires additional space near the machine, but the upside is that it may solve your "SD Init Fail" problems.

  • $\begingroup$ Thank you for the extensive answer, I'll examine the board more closely tonight and then most likely accept your answer (unless somebody comes in with a mindblowing answer that must be it or something). My one question is: do you think bad hardware could explain a print that goes for a few hours and then errors? I.e. is it reading the SD card during the course of the entire print (its never done?) and then the connection could fail after a few hours of being good? $\endgroup$ Jun 29 at 15:19
  • 2
    $\begingroup$ What I'm thinking is that movement of the machine frame while printing infill or fine detail may jostle the SD card or port when the firmware is trying to read the next line (or batch of lines) of gcode from it. It might turn out to be the case that moving the mainboard to an off-frame housing could be a solution easier than repairing or replacing the SD socket. $\endgroup$
    – Zeiss Ikon
    Jun 29 at 16:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.