How to repair micro sd 16gb card? It shows 31mb

The problem may be that the electronic device you’re using, it may not support the capacity of the card. For example, I have a digital camcorder that’s from 2001 and a camera from 2008. Here is the information displayed using fdisk under Linux for a 2GB SD card:

When the card is in the camera:

Disk /dev/sdd: 2021 MB, 2021654528 bytes
2 heads, 24 sectors/track, 82261 cylinders, total 3948544 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1            2048     3948543     1973248    6  FAT16

When the card is in the camcorder:

Disk /dev/sdd: 1010 MB, 1010827264 bytes
2 heads, 24 sectors/track, 41130 cylinders, total 1974272 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1            2048     3948543     1973248    6  FAT16

As you can see here the camera reports the correct capacity, 2021MB, the camcorder on the other hand reports only 1010MB. In the user manual for the camcorder is says it supports 8,16,32,64MB SD cards so it appears that the camcorder firmware only supports SD cards up to 1GB. The problem might actually be in the firmware of the electronic device being used and might be fixed with a firmware update from the manufacturer if one exists.