3D Printer not Reading Micro SD Card

It looks like some 3D printers can not read GPT microSD cards. Or SD cards formatted as exFat. You can fix the problem by converting the SD card to MBR and create a FAT32 partition on it.

Comment
byu/Extra-Load from discussion
in3Dprinting

These steps are for windows, but the idea is the same on Linux and macOS

  1. Delete the partition on the card
  2. Change to MBR
  3. Create new Fat32 Partition
  4. Use in 3D printer

Insert the Micro SD card into your computer

Next open an Administrator Command Prompt. Search for cmd, right click, and run as Administrator.

Launch the WIndows Disk Part utility with

diskpart

List the disk.

list disk

Select the Micro SD card with the following command. Replace 1 with the proper disk from the above command.

select disk 1

Now lets clean the disk. Warning! This will delete all data on the SD Card

clean

We now have a clean SD card.

Convert the SD card to MBR

convert mbr

Create a new partition to use

create partition primary size=1024

You should be able to finish this using the Disk Management utility in Windows.

Format new partition and assign drive letter.

format fs=FAT32 label="3D" quick
assign letter=E

You should be able to put your gcode files on the sdcard now.

Finding a Drives Name in Linux From the Command Line

There are a few different ways to find out a drives(sdcard, usb drive, external hard drive) name.

dmesg command

One way to do it is to look at dmesg. Insert your drive and then run the command. It displays a lot of info, what we are interested in is the end which should say something about your drive.

dmesg
[ 4443.109976] mmc0: new high speed SDHC card at address aaaa
[ 4443.111857] mmcblk0: mmc0:aaaa SU04G 3.69 GiB 
[ 4443.120836]  mmcblk0: p1 p2
[ 4453.045338] EXT4-fs (mmcblk0p2): recovery complete
[ 4453.086165] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[ 4453.086184] SELinux: initialized (dev mmcblk0p2, type ext4), uses xattr

This tells us that the device is mmcblk0. The “p2” at the end is the partition number.

df Command

Another way to do it is to run the df command.
Run the below command without your drive plugged in.

df -h

it’ll return something like this

Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/fedora-root   50G   12G   36G  24% /
devtmpfs                 1.9G     0  1.9G   0% /dev
tmpfs                    1.9G  600K  1.9G   1% /dev/shm
tmpfs                    1.9G  1.0M  1.9G   1% /run
tmpfs                    1.9G     0  1.9G   0% /sys/fs/cgroup
tmpfs                    1.9G   28K  1.9G   1% /tmp
/dev/sdb1                477M  115M  333M  26% /boot
/dev/mapper/fedora-home   76G   45G   23G  87% /home

The above command returns all the partitions that are mounted on your computer.
Now mount your drive and run the command again, it should show your drive at the bottom.

[me@fedora ~]$ df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/fedora-root   50G   12G   36G  24% /
devtmpfs                 1.9G     0  1.9G   0% /dev
tmpfs                    1.9G  600K  1.9G   1% /dev/shm
tmpfs                    1.9G  1.1M  1.9G   1% /run
tmpfs                    1.9G     0  1.9G   0% /sys/fs/cgroup
tmpfs                    1.9G   28K  1.9G   1% /tmp
/dev/sdb1                477M  115M  333M  26% /boot
/dev/mapper/fedora-home   76G   45G   23G  87% /home
/dev/mmcblk0p2           3.6G  2.3G  1.1G  69% /run/media/me/fc522c75-9sws

You can see that the bottom one “/dev/mmcblk0p2 ” is the partition of the drive you just plugged in.

Using fdisk

You can also use fdisk.

sudo fdisk -l

It will return something similar to the following.

Disk /dev/mapper/fedora-home: 78.8 GiB, 191931351040 bytes, 374865920 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Disk /dev/mmcblk0: 3.7 GiB, 3965190144 bytes, 7744512 sectors

The bottom section is the drive “mmcblk0”.

Using lsblk

lsblk is another cool tool to list drives and partions. When run with the -p option it shows the path to the drive and partition.

Example output of what you may get with “lsblk -p”

admin@localhost:~$ lsblk -p
NAME                              MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
/dev/nvme1n1                      259:0    0   450G  0 disk  
├─/dev/nvme1n1p1                  259:1    0   499M  0 part  
├─/dev/nvme1n1p2                  259:2    0   100M  0 part  
├─/dev/nvme1n1p3                  259:3    0    16M  0 part  
└─/dev/nvme1n1p4                  259:4    0 449.3G  0 part  
/dev/nvme0n1                      259:5    0   477G  0 disk  
 ├─/dev/nvme0n1p1                  259:6    0   512M  0 part  /boot/efi
 ├─/dev/nvme0n1p2                  259:7    0   732M  0 part  /boot
 └─/dev/nvme0n1p3                  259:8    0   400G  0 part  
   └─/dev/mapper/vg-root           253:1    0   391G  0 lvm   /
   └─/dev/mapper/vg-swap_1         253:2    0   7.9G  0 lvm   [SWAP]
admin@localhost:~$