While using an SD card to transfer G-code files from your computer to your Ender 3 is usually a straightforward process, an improperly formatted SD card can prevent your 3D printer from detecting the SD card correctly and make it impossible to start the print.
In this guide, we have prepared detailed instructions that will take you through the process of formatting an SD card to be compatible with your Ender 3 for Windows, Linux, and macOS, which will ensure that the SD card works with your printer.
Formatting Ender 3 (Pro & V2 & Neo & S1) SD Card on Windows
Formatting an SD card to work with your Ender 3 on Windows involves two easy-to-use tools that are already parts of the operating system by default, which are Diskpart and Disk Management.
To start, launch the Diskpart utility by bringing up the Run dialog (Win key + R), type diskpart into the input box, and press Enter.
Next up, type list disk into the Diskpart window, which will bring up a list of all the disks currently attached to your computer, including the SD card you want to format.
Afterward, find the disk number that belongs to your SD card from the list, and input the select disk <number> command. For instance, if your SD card is Disk 7, your input should be select disk 7.
If you are having trouble picking out the SD card from the list, you can eject it from the computer, use the list disk command, insert it back, rerun the list disk command, and compare the two outputs to find your SD card easily.
Now, run the detail disk command, which will allow you to see the details of the disk you have selected, including information such as the drive letter and the volume label that you can use to verify you have correctly selected the SD card.
Once you have verified that the disk you have selected is indeed the SD card, run the clean command to completely erase all the data on the disk, including partition and volume information.
Please make absolutely sure that you have selected the correct disk (the SD card) at this point, as this command will irreversibly delete all the data on the selected disk without any warning!
Now, we need to ensure that the SD card is using the MBR partition table and not GPT, which is one of the two essential factors for your Ender 3 to be able to read the SD card without any issues.
To set MBR as the partition table for your SD card, input the convert MBR command. Upon success, you should see the “DiskPart successfully converted the selected disk to MBR format.” output.
After converting the partition table, we are done with the Diskpart utility, meaning it’s time to switch to Disk Management.
For this step, open the Run dialog again (Win key + R), type compmgmt.msc into the input box, and press Enter.
Afterward, expand the Storage section on the left pane, and click on the Disk Management entry.
Next, locate your SD card in the bottom pane of the Disk Management window by using the disk number you have utilized earlier in Diskpart, right-click the Unallocated space, and click the New Simple Volume button.
Click the Next button, and ensure the input box labeled as Simple volume size in MB is equal to Maximum disk space in MB.
Click the Next button again, and ensure that the Assign the following drive letter option is selected.
Click Next yet again, and click the Format this volume with the following settings radio button.
Choose FAT32 as the file system (the second essential factor for the SD card to work with your Ender 3), check the Perform a quick format box, and leave everything else in its default state.
Finally, click the Next button one last time and the Finish button afterward to conclude the formatting process.
Congratulations! You have successfully formatted your SD card to be compatible with your Ender 3.
Formatting Ender 3 (Pro & V2 & Neo & S1) SD Card on Linux
To format an SD card to be compatible with your Ender 3 on Linux, you will need the fdisk, gdisk, and mkfs.vfat tools, which should be installed by default on popular distros such as Ubuntu.
To start, open a Terminal window, and input the command fdisk -l to see the paths of all the disks that are currently connected to your computer.
Afterward, locate the drive path corresponding to the SD card you want to format from the list and note it down, as we will need it for the upcoming steps of the formatting process.
If you are having trouble picking out the SD card from the list, you can eject it from the computer, use the fdisk -l command, insert it back, rerun the fdisk -l command, and compare the two outputs to find your SD card easily.
Next up, run the gdisk command, enter the drive path you noted down earlier when prompted, and press the Enter key.
Now, input the commands: x, n, and z in order, which will switch to Expert mode in gdisk, create a protective MBR partition, and remove any GPT data structures from your SD card.
As an SD card using the GPT partition table won’t work with your Ender 3, even if it’s correctly formatted with the FAT32 file system, this is an essential part of the process.
Moving forward, press the Y key and Enter to confirm the deletion of GPT data structures from the SD card, then press Y and Enter again for the Blank out MBR prompt.
Please make absolutely sure that you are modifying the correct disk (the SD card) at this point, as this command will irreversibly delete data from the disk.
Next, enter the fdisk <drivepath> command to launch the fdisk utility. For instance, if the drive path you noted earlier (and used with gdisk) was /dev/sdb, you should input fdisk /dev/sdb.
Input the command n, and press the Enter key for all the prompts until the fdisk command line is back, which will create a new partition on the SD card.
Press Y and Enter if you get prompted whether you would like to remove the vfat signature.
Input the commands t, b, and w respectively, which will change the type of the partition you created earlier to FAT32.
Now, run fdisk -l once again, and note down the path of the newly created partition under your SD card.
For instance, if the drive path of your SD card is /dev/sdb, you should see a partition named /dev/sdb1.
Finally, format the partition you have created with the FAT32 filesystem by running mkfs.vfat -F 32 -n <name> <path_to_partition>.
For instance, if your partition is /dev/sdb, and the name you have selected for the partition is EnderSD, the command would be mkfs.vfat -F 32 -n EnderSD /dev/sdb1.
Congratulations! Your SD card should now be ready to use with your Ender 3.
Formatting Ender 3 (Pro & V2 & Neo & S1) SD Card on macOS
In this section, you can find three different methods that you can utilize to format an SD card to be compatible with your Ender 3 on macOS.
While the methods are ordered in terms of increasing complexity, the easier ones may not work for everyone due to differences in macOS versions.
Disk Utility Method (GUI)
Using the built-in Disk Utility application on your Mac is the easiest way of formatting a SD card to be compatible with your Ender 3, as the entire process takes place within a graphical interface.
Start by opening the Disk Utility application through Spotlight (Command + Space).
Next, choose your SD card from the left pane of the Disk Utility application. Make sure that you have selected the correct disk, as the next step will be erasing the data on it irrecoverably.
Now, click the Erase button on the top-right corner of the Disk Utility application.
Finally, choose MS-DOS (FAT) from the Format list, choose Master Boot Record from the Scheme list, and click the Erase button.
Congratulations, your SD card is ready to use with your Ender 3!
Diskutil Method (Terminal)
The diskutil method for formatting your SD card uses the built-in diskutil utility on your Mac, but does not feature a graphical interface like the Disk Utility application from the previous section.
Start by opening a Terminal window, and input the diskutil list command.
This command will allow you to see all the currently active disks on your Mac and their drive paths, which you will need to use to find the drive path of the SD card you intend to format.
If you are having trouble picking out the SD card from the list, you can eject it from the computer, use the diskutil list command, insert it back, rerun the diskutil list command, and compare the two outputs to find your SD card easily.
At this point, it’s absolutely crucial that you have picked out the correct drive path, as the next step will irreversably erase all the data on the disk that you have chosen.
Once you have verified that the drive path is indeed correct, run the diskutil eraseDisk FAT32 <NAME> MBRFormat <drivepath> command.
For instance, if your drive path is /dev/disk4, and the name you have chosen for the volume is ENDERSD, the command will be diskutil eraseDisk FAT32 ENDERSD MBRFormat /dev/disk4.
When inputting the command, the two things to be careful about are that everything is case-sensitive, and that the NAME has to be in all caps.
Once that’s done, your SD card should be ready to use with your Ender 3!
Gdisk & Mkfs.Vfat Method (Terminal)
For this method, you will need the diskutil and fdisk tools which are pre-installed, and the mkfs.vfat and gdisk tools, which we will install through brew.
Start by opening a Terminal window and inputting the brew install dosfstools command, which will install the dosfstools package that contains the mkfs.vfat utility.
Next up, input the brew install gdisk command to install the gdisk utility.
Now that we have gathered everything we need, we can start the actual formatting process, which will start with the diskutil list command once again to find the drive path that belongs to the SD card you will be formatting.
Next, input the gdisk command, enter the drive path that belongs to your SD card when prompted, and press Enter.
In gdisk, input the commands x, n, and z to create a protective MBR and erase all the GPT data structures we don’t need from the SD card.
When prompted, confirm that you would like to wipe out the GPT partitions and that you would like to blank out the MBR by inputting Y and pressing Enter twice a row.
Please make absolutely sure that you are modifying the correct disk (the SD card) at this point, as this command will irreversibly delete data from the disk.
Now, input the command fdisk -i <drivepath> to initialize a new MBR partition table on your SD card, and confirm the action by pressing Y and Enter when prompted.
For instance, if the drive path of your SD card is /dev/disk4, use the command fdisk -i /dev/disk4.
Next up, use the command fdisk -e <drivepath> to go into interactive mode, where we will create a new DOS partition.
While in the fdisk interactive mode, input the command auto dos to create the partition, followed by write and quit to finalize the changes and exit fdisk.
Now, rerun the diskutil list command, locate the identifier that points to the new partition we have created on the SD card and write it down.
Under normal circumstances, this should be “s1” followed by the drive path, such as /dev/disk4s1 for a disk with the /dev/disk4 drive path.
Finally, run the mkfs.vfat -F 32 -n <name> <path_to_partition> command to format your SD card with the FAT32 filesystem and make it ready for usage.
For instance, if the name you have chosen for the SD card is EnderSD, and the partition path is /dev/disk4s1, the command would be mkfs.vfat -F 32 -n EnderSD /dev/disk4s1
With that, your SD card is ready for use with your Ender 3!
Conclusion
Now that you have formatted your SD card in a way that is compatible with your Ender 3, you can go ahead and enjoy printing the 3D models of your choice without any problems that can prevent your printer from accessing the files.
While your SD card should remain compatible with your Ender 3 for the rest of its lifetime (unless you manually format it with a different filesystem or convert the partition table), you can always come back to this guide if you would like to apply the same process for a new card!
As a software developer by profession, David has been particularly interested in how 3D printing works even before he picked up his first 3D printer, and completely fell in love with the hobby once he got his hands on a Prusa i3 MK2 for the first time back in 2017. Due to him enjoying both the functional and the non-functional sides of 3D printing equally, you’ll rarely see David’s 3D printer in an idle state.