I recently had the pleasure of learning how to un-brick my Ender 3 Pro, and the usual helpful guides online were not helping me–everything I was trying was not working! In the end, I prevailed, and the magic bullet turned out to be (spoiler alert) COMPLETELY WIPING THE SD CARD.
The first hurdle you have to overcome is to understand which printer you have, so that you can know how the firmware flash/upgrade process works:
Printer | Board | Flash Mechanism |
Ender 3 | v1.1.x | Arduino w/ bootloader |
Ender 3 Pro | v1.1.x | Arduino w/ bootloader |
Ender 3 Pro | v4.2.x | SD Card Flash |
Ender 3 V2 | N/A | SD Card Flash |
This guide will only work for printers that have the capability to flash from an SD card.
I have an Ender 3 Pro with a 4.2.2 board, so the SD card flash mechanism should work for me. However, after trying multiple times using multiple SD cards and multiple firmware files, I was still getting the dreaded “blue screen of death.”
In the end, just before the new SD cards I ordered arrived, I was able to get my printer to flash. First, though, I had tried all the following, which I found as recommendations floating around the web (and reddit.com/r/ender3):
- Deleting all the files from the SD card
- Adding a firmware file
- Renaming the file to something completely unique
- Removing the SD card and rebooting to see if the SD card was causing the boot failure
- Leaving the printer unplugged for an hour
- Leaving the printer on with the SD card for a prolonged time (30m) to see if the firmware flash was taking a long time
- Trying a different firmware file
- Reformatting the SD card with MacOS Disk Utility (GUI)
- Reformatting the SD card with MacOS diskutil (command line)
- Deleting the partitions and recreating them with Linux (command line)
In the end, what worked was completely zeroing out the SD card, then recreating the partition and reformatting. If I were to have the same trouble with an SD card not flashing an Ender 3 today, here is what I would do:
- Zero the SD card
- MacOS:
- Insert the SD card to my computer
- Press Cmd+Space and enter Terminal to open the terminal
- Type
diskutil list
to get a list of disks attached - Locate the disk that is the SD card (e.g.
disk2
) - !! For everything following, replace
disk2
with your actual disk that you found in the previous step !! - Unmount the partitions with
diskutil unmountdisk disk
2 - Zero the disk with
sudo dd if=/dev/zero of=/dev/rdisk2 conv=sync status=progress bs=16m
(note that the leading ‘r’ on the disk name is not a typo)
- Windows
- Use Steve Gibson’s InitDisk
- Linux
- Insert the SD card to my computer
- Open a terminal/command line
- Run
dmesg | tail
and look for the disk name in the recent history, likely something like/dev/sdc
- !! Use the name of the correct disk in place of
/dev/sdc
from here on !! sudo dd if=/dev/zero of=/dev/sdc bs=16M conv=sync status=progress
- MacOS:
- Format the SD card and make the partition
- MacOS
- Format the SD card with
sudo diskutil erasedisk FAT32 Ender3 MBR /dev/disk2
- “Ender3” is the label for the card. You can change that to whatever you want, but keep it simple and short.
- Format the SD card with
- Windows
- If you used Steve Gibson’s InitDisk as stated above, this is already done
- Linux
sudo fdisk /dev/sdc
- ‘n’ for new partition
- ‘p’ for primary
- ‘1’ for first
- Take the default for first sector
- Take the default for last sector
- ‘t’ to change the type
- ‘b’ to set the type to ‘0x0b’ W95 FAT32
- ‘w’ to write the changes
sudo mkfs.vfat /dev/sdc1
- Note that the ‘1’ is not a typo.
/dev/sdc
is the disk,/dev/sdc1
is the first partition on the disk
- Note that the ‘1’ is not a typo.
sudo sync
- MacOS
- Place the firmware file on the SD card
- Eject and re-insert, likely your OS will automatically mount the filesystem
- You don’t need much advice on how to do this, except…
- Only place one file on the card.
- Give the file a random name. Literally. Like
fghdgddyanbnd55.bin
- Change it every time you attempt an upgrade. The printer remembers (at least) the last file name used, and will not re-attempt an upgrade if the filename is the same.
- Upgrade the firmware on the Ender 3
- Power off the machine
- Insert the SD card
- Power on the machine
- If you don’t get a printer status screen or any sort of change in the first fifteen seconds, it didn’t work right.