Nintendo Switch EMMC nand upgrade guide

Originally written by Nathan Bunn
http://www.nathanbunn.com/NandUpgradeSteps/

archived version:

https://web.archive.org/web/20190310080832/http://www.nathanbunn.com/NandUpgradeSteps/

Nintendo Switch EMMC nand upgrade guide​

First, Thanks to Paul for all his help and patience and the guide this is based and thanks to bnstemp from duowan for his additional work.
Paul’s guide did a great job on the hardware side, and in fact I ended up sending off to a pro to get the EMMC chipped switched over, so I wont go over that here. I will start this guide presuming you have a 256 EMMC already soldered onto your replacement daughter board.
The 256GB chip I used is a sandisk model,sold as SDINBDA4-256G This was the only one I could find in stock, in single chip amounts.

1671196948722.png


I will also presume you understand switch CFM, RCM, payload sending etc, and have a working hekate SD card. There are great switch CFW setup guides out there already if not so I suggest you read them. I will also assume basic Linux Knowledge, I won’t go over making a Ubuntu Live USB, etc, but trust Google to help if anyone gets stuck.

Preparation​

The first thing you need to do is make a full backup of your current EMMC. Boot into Hekate, and under tools - backup boot0/1 and raw nand onto your micro SD card. I recommend a 64GB+ micro SD here, so you get a nice single backup file, with plenty of space. You will also need to get your bis_key_03. This is a console specific key which you can get use lockpick, or biskeydump.bin from RCM mode and then opening the prod.keys file or similar on your PC. You need this to read the switch user partition from windows later on.

Hardware​

Open your switch, i followed the iFixit guide. Remove the back, then the SD card reader, and then the shiny metal shield under it, then you need simply need to use a plastic prying tool to lift up the EMMC board, careful as there is double sided tape holding it down, and replace it with your new board. I replaced the double sided tape too just incase.
Then put your switch back together again, following the iFixit guide in reverse.

Software​

Once you have it all back together, then boot Johns custom version of hakate, linked in the above guide, and under show hardware, check that EMMC is detected. This makes sure your soldering was good and the EMMC is working.
Now remove your SD card and put it in your PC, copy boot0,1 and rawnand.bin into the backup/xxxx/restore folder. where xxxx is a random folder name for your switch.

The put the SD card back into the switch, and go to tools, restore, and restore boot0/1 and then restore rawnand.bin. This will take a while to copy over and then verify, get a cup of tea and come back later.

Once this process is finished, you can shutdown your switch, then try booting normally.

You should be able to load into the switch system, and all your data should be there, however the disk will still only show 26GB, like before, we need to expand the partition to fill the new drive. However since the drive is encrypted, we cannot just wipe it and remake it, we need to both expand the partition, and then format the partition inside the encryption to get the switch to see the new extended size.

For this process you need a linux PC/linux USB bootdisk (ubuntu recommended), and then a windows PC to open the encrypted partition and format it to FAT32.

You will also need the memloader payload, to make the switch emmc be seen over USB by the PC, and also later on hacdiskmount from the same site for windows.

First send the memloader payload to your switch as you normally would, the switch will show some text and offer options of what to mount.


On a Linux Machine.​

Now boot into Linux, and open a root terminal. At the terminal type


to list all connected hardrives and storage media. Make a note of the letters available, /dev/sda, /dev/sdb etc.
Next connect your switch to the linux PC via USB, and using the volume keys on the switch highlight the EMMC option and press the power button to select and mount the EMMC partition on the linux machine.
Now run fdisk -l again to show all the hardrives connected to your PC, and notice which one of the same size as your new drive, was not there before. This is the drive you are working on, be very careful to get this right, as any mistake here can cause irreparable damage to your windows install. You are looking for the drive with 11 partitions, the first 9 being small, then one 2.5GB, then the final 11th being 26GB. All of type unknown. See a copy of my partition layout for the switch EMMC below.

Disk /dev/sdb: 233 GiB, 250148290560 bytes, 488570880 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
Disklabel type: gpt
Disk identifier: EDD7049E-B2D3-4067-B3D9-E5A8F398258F

Device Start End Sectors Size Type
/dev/sdb1 34 8191 8158 4M unknown
/dev/sdb2 8192 16383 8192 4M unknown
/dev/sdb3 16384 32767 16384 8M unknown
/dev/sdb4 32768 49151 16384 8M unknown
/dev/sdb5 49152 65535 16384 8M unknown
/dev/sdb6 65536 81919 16384 8M unknown
/dev/sdb7 81920 98303 16384 8M unknown
/dev/sdb8 98304 114687 16384 8M unknown
/dev/sdb9 114688 245759 131072 64M unknown
/dev/sdb10 245760 5488639 5242880 2.5G unknown
/dev/sdb11 5488640 60014591 54525952 26G unknown

For me this was /dev/sdb, for the rest of the guide i will write /dev/sdX to remind you to substitute whichever drive letter your switch was assigned.

gdisk /dev/sdX

this opens the gdisk application, and points it at your switch emmc. If you are offered the chance to correct the start position of the drive or the partition table, press y to accept.


Type i, enter, then 11 to show the information for the 11th partition on the drive. Including the GUID, and the unique GUID, we need to mirror all these fields exactly later. Copy all this information into a text editor for easier copy and pasting later.
Mine looked like this:

Partition number (1-11): 11
Partition GUID code: 2B777F63-E842-47AF-94C4-25A7F18B2280 (Unknown)
Partition unique GUID: 5561E2C3-9B40-4D90-A546-20EB6C0151FC
First sector: 5488640 (at 2.6 GiB)
Last sector: 60014591 (at 28.6 GiB)
Partition size: 54525952 sectors (26.0 GiB)
Attribute flags: 0000000000000001
Partition name: 'USER'

Next we need to delete the 11th partition, the user partition, don’t worry, this wont delete the data underneath (although remember you also have the backup of your nand anyway incase something goes wrong). In gdisk with your switch nand selected type:


to delete the partition. Then write these changes to the disk with


you will see the following warning: “Warning! Secondary header is placed too early on the disk! Do you want to correct this problem? (Y/N):” Enter y, then y again on the final check to write those changes to the disk.
We now need to refresh the partition layout with kpartx, so enter

kpartx /dev/sdX

*if you don't have kpartx you can install it by typing sudo apt install kpartx

which will refresh the partition layout, updating it with the new changes in size and layout.
Now re-enter gdisk, making sure to specify the switch emmc from before.

gdisk /dev/sdX

Now create a new partition, in the exact same place as the one we just deleted,

Command (? for help):


the tool will automatically use partition 11, and accept the default for start and end location, noting that the end location is now your new disk size, 6xxxxxx for 64gb, 11xxxxx for 128gb and 24xxxxxx for 240GB.
When prompted for the partition type, copy and paste the partition GUID we made a note of earlier. (not the one labeled unique GUID). The one that ends in (UNKNOWN). For me that was Partition GUID code: 2B777F63-E842-47AF-94C4-25A7F18B2280 (Unknown)
Now the new partition is created, we need to change the partitions unique GUID code back to the same as it was before, so the switch knows which partition to use. We do this by typing


x, to enter advanced mode, c for change partition GUID, and 11 for the USER partition we are working with. The prompt will change to

Enter the partition's new unique GUID ('R' to randomize):

and here we enter the unique GUID for the partition that we made a note of before. ( for me it is ‘Partition unique GUID: 5561E2C3-9B40-4D90-A546-20EB6C0151FC’)

*your actual number will be different, but in this example, it would be just 5561E2C3-9B40-4D90-A546-20EB6C0151FC

We also need to set the partition name, so press m for the main menu


then c for change partition name, 11 for the partition to change, and then set the name to USER in capital letters.

c
11
USER

Finally we need to set the attributes for the partition, to set it back to system so that the switch won’t notice we were here. x for advanced, then a for attributes, and 11 to chose the partition, and then toggle attribute 0 to set the partition to system.

Expert command (? for help): a
Partition number (1-11): 11
Known attributes are:
0: system partition
1: hide from EFI
2: legacy BIOS bootable
60: read-only
62: hidden
63: do not automount

Attribute value is 0000000000000000. Set fields are:
No fields set

Toggle which attribute field (0-63, 64 or <Enter> to exit): 0
Have enabled the 'system partition' attribute.
Attribute value is 0000000000000001. Set fields are:
0 (system partition)

Toggle which attribute field (0-63, 64 or <Enter> to exit):

press enter to exit.

We are all done here, but finally we can print the partition information again with


and compare this with the values we saw originally, it should be identical except for the lat sector and partition size fields, which should represent the new size. If any of these are different go back now and double check your work until they match exactly. Once you are done enter w to write, and y that you are sure.


Now you can unplug your switch, press the power button for 5 seconds to exit memloader and then press the power button to boot your switch. It should boot normally into the switch OS, with all your saves and content preserved from before. ##If at this point you have any errors, or the switch won’t boot, go back and try the steps again right from restore your rawnand.bin, as if it wont boot correctly now, the next steps won’t fix that.

Now we need access to a windows PC with HacDiskMount and fat32format.exe.

On a windows PC.​

Shutdown your switch and reboot to RCM mode. Push the memloader payload again, connect the cable to your windows PC, and using volume and power mount the EMMC partition over USB.

In windows open HacDiskMount as administrator, click file and open physical drive.

Choose your switch drive, ignore the error that it does not seem like a full emmc dump.

You should see the 11 partitions listed here, click the USER partition we just remade, and you will see a prompt for encryption keys.

Take the bis_key_03 value from your prod.keys that you dumped earlier, and enter the left half on the top line, and the right half on the line below, then click test.

You should see a message that the was successful and the encryption was opened.

If you do not get a success message stop now, and double check/redump your prod.keys.

If you continue without opening the encryption you lose all your switch data.

Once the keys are verified, install the driver, and mount the drive to an empty drive letter.

In this example i will use the G: drive.

Open windows explorer and copy all the files from the G drive onto your local machine, this is a backup of your saves and settings, do not lose this.

Now we need to go to the location where fat32format.exe is located, run an administrator prompt and enter

fat32format.exe G

This will wipe your switch user partition and reformat it, using the new partition data we created to give us the full size of the new USER partition.

Once this finished we now should see the new EMMC size in windows explorer for the G drive, and we can copy back our backup of the saves and settings we made before the format.

This copy is slow, and if it fails I recommend deleting all the files and re-copying folder by folder until it completes successfully.

Wait 30 seconds for any background file transfers to complete, then in HacDiskMount unmount the drive, and after a few seconds disconnect your switch.

Hold the power button on your switch for 5 seconds to exit memloader, then cross your fingers and press the power button, the switch should boot up normally, but in the settings menu, show your new EMMC size. Success!

If you get a black nintendo error screen, go back to the rawnand.bin stage and start the whole process again, it may take a couple of tries for the stars to align and every step to go flawlessly.

Enjoy your new switch storage space!

Originally Written on January 31, 2019
 
Last edited by binkinator,

binkinator

Garfield’s Fitness Coach
OP
Member
GBAtemp Patron
Joined
Mar 29, 2021
Messages
6,511
Trophies
2
XP
6,158
Country
United States
I've been thinking about doing a 2tb upgrade on my OLED with a Kingston EMMC256-IY29-5B101. Do you know if this is a good idea? I have no idea what the cache size on this thing is and I'm pretty tempted to roll the dice on it. I'd link to a digikey listing, but I can't really do that right now.

e: holy crap. That’s 2TB for $60? They probably use additional pins to address all that extra space. Not sure if Switch knows how to do that being that it typically uses only 32 (64 in the case of OLED). That’s a pretty significant jump, but for $60 it’s almost cheap enough to take the chance to find out.

Are you talking about this guy?

https://www.digikey.com/en/products/detail/kingston/EMMC256-IY29-5B101/16644094

Most folks get the Samsung or SanDisk from what I’ve seen.

Here‘s a list from @evil_santa He may or may not have more info on the Kingston.

Hynix
H26T99001MCR 256gb
H26T87001CMR 128gb

SanDisk
SDINBDA6-256G
SDINBDA6-128G
SDINBDA4-256G
SDINBDD4-256G crap firmware!!! Don't buy!!!

Samsung
KLMEG8UCTA-B041 256gb new generation
KLMEG8UERM-C041 256gb old generation
KLMDG4UCTA-B041 128GB
KLMDG4UCTB-B041 128GB

Toshiba/Kioxia
THGAMRT0T43BAIR 128GB

FORESEE
FEMDNN256G-A3A44
 
Last edited by binkinator,

ChrisPowers

New Member
Newbie
Joined
Jan 23, 2023
Messages
4
Trophies
0
Age
28
XP
45
Country
United States
e: holy crap. That’s 2TB for $60? They probably use additional pins to address all that extra space. Not sure if Switch knows how to do that being that it typically uses only 32 (64 in the case of OLED). That’s a pretty significant jump, but for $60 it’s almost cheap enough to take the chance to find out.

Are you talking about this guy?



Most folks get the Samsung or SanDisk from what I’ve seen.

Here‘s a list from @evil_santa He may or may not have more info on the Kingston.

Hynix
H26T99001MCR 256gb
H26T87001CMR 128gb

SanDisk
SDINBDA6-256G
SDINBDA6-128G
SDINBDA4-256G
SDINBDD4-256G crap firmware!!! Don't buy!!!

Samsung
KLMEG8UCTA-B041 256gb new generation
KLMEG8UERM-C041 256gb old generation
KLMDG4UCTA-B041 128GB
KLMDG4UCTB-B041 128GB

Toshiba/Kioxia
THGAMRT0T43BAIR 128GB

FORESEE
FEMDNN256G-A3A44
Yup, that's the one. My thought process is that BGA 153 is standardized, so there really shouldn't be any extra pins or else it wouldn't meet JEDEC specifications for eMMC 5.1. My only worry is that I might be taking a hit to performance if the cache size is smaller. But on the other hand, it wouldn't make sense to have a small cache for a 2tb storage medium. But man, that price is really tempting.
 

binkinator

Garfield’s Fitness Coach
OP
Member
GBAtemp Patron
Joined
Mar 29, 2021
Messages
6,511
Trophies
2
XP
6,158
Country
United States
2 tbit guy's
It's a 256gb emmc
That’s why I ping you, man. You keep us grounded. LOL! I guess I need to cancel my order of 20 chips.



Will this work in a Switch or are there other requirements for Switch compatibility?
 
  • Like
Reactions: evil_santa

LogicalMadness

Well-Known Member
Member
Joined
Nov 3, 2014
Messages
287
Trophies
0
Age
41
XP
690
Country
United States
It depends on your budget, it is 80 for used one, it is 159 for new one.

I see now that there is an option for 'new' from that seller, and, for me, it's cheaper than the 159 you mentioned (111.44).

US $80.20 | KLMEG8UCTA-B041 153FBGA EMMC 5.1 256GB FLASH MEMORY KLMEG8UCTA
https://a.aliexpress.com/_mqPlFBY

I'm interested in a cheaper total and\or faster shipping to USA, though, if anyone has any leads. I paid around 80 2 years ago from the same seller, surprised the price hasn't come down.

For instance, the $60 one I mentioned ($68), they only have 1 order and I'm unsure if they're legit.

US $68.00 50%OFF | KLMEG8UCTA-B041 KLMEG8UCTA BGA EMMC 5.1 256GB New Original
https://a.aliexpress.com/_mLcLKiS
 

Alcyoneous

New Member
Newbie
Joined
Apr 10, 2023
Messages
2
Trophies
0
Age
25
XP
66
Country
Spain
Great guide and write up! I purchased an upgraded 256GB eMMC, and followed this guide (with some deviations as I am on a Mac.)

On macOS, you can use gdisk for all the partition changes. Use brew to install it (brew.sh) if you don't have it installed.
In hekate, mount with read protection off, and when macOS prompts that the disk is not readable, have it initialize anyways.
I used diskutil list to list the partition I needed. In my case /dev/disk6

The steps listed in the first post are pretty much the same once within gdisk. Just substitute /dev/sdX with /dev/diskX where X is whatever disk you determined from diskutil. After correcting the secondary header issue, I ejected the disk and then conntected it again to continue. Complete the steps, and you should have a properly re-sized partition. Eject it, and then try booting into HOS. It should boot correctly, if it doesn't something is messed up and try again. If you don't copy in the GUID correctly it will likely boot (it did for me) but the next steps won't work correctly, so be super certain that the label and GUID are correct.

From here, I used a trial of Parallels 18, and NxNandManager. The dokan drivers don't install correctly from HacDiskMount, NxNandManager, or even a manual install, so you have to use the built-in NAND Resize option. I had to run this twice to get it to properly expand the full partition, but in the end it worked!

Now I'm just waiting for Android and then it'll be a party!
 

Flaviocarvalho

Well-Known Member
Member
Joined
Apr 28, 2023
Messages
111
Trophies
0
Age
37
XP
95
Country
Brazil
Hi...is there any tip on how to position the emmc to reball on a switch lite? I cant find que marks to position the emmc and align it..
 

Ivanov

New Member
Newbie
Joined
May 15, 2018
Messages
1
Trophies
0
Age
32
XP
102
Country
Spain
Hi mates!

I followed the guide and now I have 256gb eMMC :)

2023052503524800-57B4628D2267231D57E0FC1078C0596D.jpg


I used a Samsung one (KLMEG8UCTA-B041) and as seen it works perfectly!
I also made some more modules using Sandisk "SDINBDA4-128G" and Kioxia "THGBMHT0C8LBAIG".


Maybe I can provide that service, at least, to Spain (I need to see Europe couriers for expand it) since I have the needed equipment to desolder and solder new modules easily.
 

Smoker1

Well-Known Member
Member
Joined
Feb 17, 2015
Messages
5,074
Trophies
1
Location
California
XP
6,165
Country
United States
Hi mates!

I followed the guide and now I have 256gb eMMC :)

View attachment 373672

I used a Samsung one (KLMEG8UCTA-B041) and as seen it works perfectly!
I also made some more modules using Sandisk "SDINBDA4-128G" and Kioxia "THGBMHT0C8LBAIG".


Maybe I can provide that service, at least, to Spain (I need to see Europe couriers for expand it) since I have the needed equipment to desolder and solder new modules easily.
Would be AWESOME to see that on my Switch. Can have much more Space to work with, and it would be a much better improvement
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    SylverReZ @ SylverReZ: @Psionic Roshambo, Lulllzz +1