Using NAND-AID to repair a broken eMMC (fix 160-0103 system memory error)

Warning

This tutorial is only for advanced users and has a serious risk of bricking the console. Make sure you read it completely before executing any step and that you understand every step and its implications.

While not strictly required, it is still recommended to install ISFShax, before soldering NAND-AID. In case something goes wrong, this then gives more options to troubleshoot the problem.

What is this for?

If you are encountering Error Code 160-0103 "There is a Problem with the system memory" or your Wii U is freezing at bootup it is likely that the eMMC Chip is failing.
This tutorial goes into fixing this Error 160-0103, by cloning your MLC to a SD card and fixing corruptions while doing so. This can become useful if the MLC (eMMC) chip is hardware damaged.

Please note: There are other possible causes for the 160-0103 error (like a CBHC brick).
Also we found other ways to fix this problem. To find the the procedure which is right for you follow the Ultimate Wii U Troubleshooting Guide
In short the other options are:

1690709917882.png


NOTE: In case you can't boot the recovery menu anymore, there is the option of dumping the eMMC using a Cardreader connected to the big pads on the NAND-AID. Else you can use defuse to rebuild a completely fresh MLC instead, so head over to https://gbatemp.net/threads/how-to-upgrading-rebuilding-wii-u-internal-memory-mlc.636309/

NOTE²: In case you get a purple LED but no screen output you might still be able to use the recovery menu blindly. TODO: Give exact steps for this.

Prerequisites

Use this fork of the recovery menu.
Use this fork of wupclient.

1692774079735.png


Before beginning use the recovery menu to dump the syslogs, then search all the .log files for MEDIA ERROR and DATA CORRUPTION.

Only errors concerning the dev:mlc01 are relevant. Here the example for such an error:
Code:
10:48:16:325: FSA: ### MEDIA ERROR ###, dev:mlc01, err:-2228230, cmd:11, path:(null)
Errors concerning the optical disc drive (dev:odd01) can be ignored. Here is such an example, that can be ignored:
Code:
10:48:16:325: FSA: ### MEDIA ERROR ###, dev:odd01, err:-2228230, cmd:11, path:(null)

A media error on mlc01 means the eMMC itself noticed it can no longer retrieve the data error free and indicates a failure of the eMMC.

In case you find a MEDIA ERROR show us the log file, please, so we can add it to https://hackmd.io/d12Fq9g-QlCjN2HJp7Yvew. It's fine to DM the log to @SDIO, @Lazr1026 or me in case you're concerned about the serial number.

In case you find DATA CORRUPTION only this might or might not be a damaged eMMC. It's recommended to show us the logs, too, so we can analyze them more deep. DATA CORRUPTION means the file system of the Wii U detected that a file is corrupted. That could be caused by either a bad eMMC chip or if a write got interrupted (e. g. power loss during save)

Required Knowledge

WARNING: Before you begin, doing anything to mlc/emmc, you need to understand a few core concepts. Make sure to read carfully and be aware of the implications, or you can seriously mess things up, loosing all data. If that happens you need defuse as descibed here.

The Wii U has not just one internal storage, but it has 3:
  • SLCCMPT: Holds all the vWii stuff, the system, the saves, the WiiWare tiles, we don't care for it in this tutorial.
  • MLC: Is where all your userdata goes, like games, saves, your accounts and it also hold the system applications. It's also called eMMC and what this tutorial is about.
  • SLC: Holds the second stage bootloader (boot1), the core Operating Systems (IOSU and CafeOS), the tickets for the installed titles (eShop and system apps), and some config files. Besides that it holds a file "scfm.img".
    This file is used as a block level write cache for the MLC. This means part of the MLC state resides in this file. They need always to be treated as one, if you restore one, you need also to restore the other. If they don't match, because you restored an older version of the mlc for example, the filesystem on top of them will become inconsistent and there will be no way of fixing that. You would either have to restore an older backup of both the SLC and the MLC or you would need to format the MLC. Both are things we try to avoid here.
You always have to carry the current state of the MLC forward.

What you can do: Read the dying eMMC to an Image, then clone it to a SD card and then use the SD card in place of the eMMC, without turning the console on in between.
You could then also read back the state of the current state of the SD card and flash it back to the eMMC and then run off the eMMC again. But only if you don't turn on the Wii U between the read and the swap.

What you can not do: Read the eMMC to an image, then use the console and then replace the eMMC by an SD card with that older image. Because then the SD won't have the current state.
You also can't flash an Image to the SD, use it for a while and then flash the image back a second time.

Where to get a NAND-AID from?

It's always a good idea to ask if someone near you has one. They might be willing to sell it for cheap.
Else here are some available for 3 € : https://gbatemp.net/threads/637225/

If that doesn't work for you you can also go to some PCB manufacturer like https://jlcpcb.com and let them do the printing. This is around $30 for 5 PCBs, so you could resell 4 to other users. The gerber file is available here and the important options are a thickness of 0.6 mm and castellated holes.

Dumping old MLC

Now that you confirmed it's really a hardware damaged MLC it's time to replace and fix it:
  1. Use the recovery menu to dump OTP + SEEPROM.

  2. Dump MLC + SLC from within the recovery menu. Turn your Wii U off by pulling the power cable and don't turn it back on until you replaced the eMMC with the SD card.
    1690709969015.png

    Note: Errors while dumping SLC are harmless and I would be surprised if you get no errors on MLC as it's hardware damages after all.

  3. Merge the dump on the PC, for Windows use copy /b mlc.bin.part01 + mlc.bin.part02 + (...) + mlc.bin.part15 mlc.bin. For linux or mac os x use cat mlc.bin.part* > mlc.bin
  4. Write the MLC dump onto a SD card with the same size of your MLC. So for a 8 GB unit use a 8 GB card and for a 32 GB console use a 32GB card (64GB won't work). 8 GB units can also use 16GB cards, but only 8GB will be usable.
    We currently recommend SanDisk Max Endurance cards for this but other cards have been used, too. Choice is yours.
    On Windows you can use Win32DiskImager or Etcher to write the mlc.bin to the SD card.
    On Linux you can use: dd if=mlc.bin of=/dev/XXX bs=1M status=progress Replace XXX with the name of the block device if the sdcard. You can use lsblk to figure out the name. Also make sure the sd card isn't mounted. Optionally to improve the performance, you can try to run blkdiscard -f first (before the dd) on the SD and then add the conv=sparse option to the dd command.
Soldering NAND-AID

  1. Cut the CLK line (R26) - using a scalpel or an x-acto knife - to disable the eMMC.
    1690709997093.png

  2. Install the NAND-AID and insert the SD. For soldering the NAND-AID it's recommend to first solder the big GND VIA. Since v3.0 you'll see a uncovered VIA on the Wii Us motherboard through this GND hole. This VIA is GND, too, so it doesn't matter if you short with it. Also since v3.0 there's a GND arm right nex to the hole in case you want to solder an alternative GND connection instead.

    The board will suck lots of the heat away, so you need some patience and really need to make sure the solder properly flows. Check that the connections really holds, before you move on to the rest. To make soldering easier, you should first tin the GND pad on the board, so it has fresh solder and preheating the board also helps.

    After GND solder the data connections to the pads/resistors on the board.

    Add the wire for 3V3. Then add the SD slot and after that the capacitor. Also short the DSB pads, which shorts the eMMC CLK to GND. If you ever want to access the eMMC again, you need to open the DSB jumper again.
    1690710029169.png
    1690360176330.png


    NOTE: On some old board revisions there's a capacitor in the way. It's save to just remove it.
    1690710054698.png

    1690710070025.png

    1690710084431.png


    NOTE²: In case you're kind of a patchwork person you can also use a microSD to SD adapter and a capacitor instead of the NAND-AID. How to do this is out of scope of this tutorial through, so you are a bit on your own. See this post for more details: https://gbatemp.net/threads/using-n...0103-system-memory-error.636361/post-10213230
    IMG_20230401_174716.jpg

    1690359335313.png

    TODO: Show adapter installed into a Wii U.
Repairing the corruption

  1. Boot to the recovery menu again, then start the network and wupserver.
    1690710121340.png

    TODO: Add how to add network config to the SD card

  2. Run MLC Checker from recovery and inspect your mlcchecker.txt log.
    • For corrupted files inside of /vol/storage_mlc01/usr/title/ use wupservers delete_title() option, so for example delete_title("/vol/storage_mlc01/usr/title/00050000/1010ED00").
    • For corrupted files inside of /vol/storage_mlc01/sys/title/ use the Install WUP option to reinstall the corresponding system title. It's recommended to do this as a last step. Also some titles might not interrupt the boot, so you could even reinstall them with NUSspli as a very last step.
    • For corrupted folders: These can't be deleted but we have to move them. Even if moved, these still crash a factory reset (so don't do one) The only way to get rid of them is a reformat (see https://gbatemp.net/threads/how-to-upgrading-rebuilding-wii-u-internal-memory-mlc.636309/ ) TODO: Add how to move them while keeping quotas in mind. In case these folders where in /vol/storage_mlc01/sys/ the corresponding title needs to get reinstalled afterwards.
    • For corrupted files at other subfolders in /vol/storage_mlc01/usr/ it should be save to delete the files (with wupclients w.rm()], so for example w.rm("/vol/storage_mlc01/usr/save/00050000/1010ed00/user/80000002/userdata.dat"). This might damage savefiles and stuff through, so always make sure that you know what you're deleting and how to fix the result then (for example by deleting the games save from data management). In case you are unsure ask before doing something stupid!
    • For other corrupted files in /vol/storage_mlc01/sys/ ask us what to do!
    Lastly run flush_mlc() in wupclient.

  3. Run the MLC Checker again to see if you missed anything.
Your Wii U should now work normally again.

Bonus: Work around factory reset crash loop

There are some rare cases where users tried a factory reset while having corrupted folders. This results in a crash loop.

To break out of this loop you first have to install NAND-AID and fix the corruptions as told above. After that use wupclients delete_title() function to remove all titles from /vol/storage_mlc01/usr/title/. Lastly select Set Initial Launch from the recovery menu and then select 0 - Initial Setup.

See also

https://gbatemp.net/threads/how-i-fixed-160-0103-system-memory-error.626448/
https://www.boards.ie/discussion/2058305084/my-wii-u-it-met-with-a-terrible-fate
https://gbatemp.net/threads/how-to-upgrading-rebuilding-wii-u-internal-memory-mlc.636309/

Thanks

@SDIO For figuring anything out, doing all of the hard puzzling and coding night and day to make this possible
@GaryOderNichts For the recovery menu
@Nandster For the pictures as well as for documenting the whole process over at boards.ie
@Voultar For the NAND-AID PCB design
@skawo For providing an earlier Tutorial, we take some passages from
 
Last edited by SDIO,

SDIO

Well-Known Member
Member
Joined
Feb 13, 2023
Messages
2,283
Trophies
0
Age
28
XP
1,398
Country
Germany
I would first fix the errors. The OSv255 Error Applet has some corruption. OSv255 is used for Updates...
 

viper_2k2009

Member
Newcomer
Joined
Feb 14, 2019
Messages
20
Trophies
0
Age
36
XP
85
Country
United Kingdom
I am slightly worried on doing this kind of blindly as I may be confusing myself here but to be able to FTP into the console I would need to run cfw which would require me to create a new NAND backup? would this be safe enough as it would be one that is a fully booting img?
 

SDIO

Well-Known Member
Member
Joined
Feb 13, 2023
Messages
2,283
Trophies
0
Age
28
XP
1,398
Country
Germany
it won't hurt to do the nand backup. But you can also skip the nand backup if you want. I would still recommend the NAND backup, as it will give you a better SLC dump, in case something goes wrong
 

viper_2k2009

Member
Newcomer
Joined
Feb 14, 2019
Messages
20
Trophies
0
Age
36
XP
85
Country
United Kingdom
So just to summarise so I know that I get this correctly, I would want to:

1. Run homebrew on current version 5.5.2
2. Fix current errors
3. Remove homebrew
4. Update as normal
5. Reinstall homebrew on updated version

Honestly thank you so much for your help with this and sorry again if I am wasting your time
 

SDIO

Well-Known Member
Member
Joined
Feb 13, 2023
Messages
2,283
Trophies
0
Age
28
XP
1,398
Country
Germany
if you are using tiramisu or aroma, it should be safe to keep the homebrew. In the worst case it will be overwritten
 

Xrider

Member
Newcomer
Joined
Jul 31, 2023
Messages
15
Trophies
0
XP
92
Country
France
Hello,

The tutorial in french is done (a little different), it's available on Delta-island.com/forum (of course, google translate will be your friend) :
https://www.delta-island.com/forum/viewtopic.php?t=4634

mario-maker-delta.png


Special thanks to:
- GaryOderNichts, skawo, Voultar, V10lator, SDIO and Serjio193 (is mentioned in the Delta tutorial)
 
Last edited by Xrider,
  • Like
Reactions: lufeig and V10lator

SDIO

Well-Known Member
Member
Joined
Feb 13, 2023
Messages
2,283
Trophies
0
Age
28
XP
1,398
Country
Germany
@Xrider a few minor points to yur tutorial:
I am maintaining a fork of Garys recovery with my and V10lators additions (Dumper/Cloner, File Checker, Batch install, SetInitialLaunch, antifreez). Thanks to gary again for helping me with these things.
You can find that fork here: https://github.com/jan-hofmeier/recovery_menu/releases/
Also I reduced the verbosity of the MLCChecker, so when using this recovery.
I would appreciate if you could link to the github, instead of hosting an outdated and possible bugged version on that post. But feel free to mention the release you explain in the tutorial.

For the SD card size, there is basically no upper limit (ok 2TB it is) for the size of the SD card you are dumping to. For 32GB consoles you can actually use a 32GB sdcard for the dump (using the dump slc + clone mlc option). This will write the mlc raw to the sdcard, so it can be directly used in the NAND-AID. But I suggest you make an Image of the SD card on the PC before putting it in the NAND aid, so you have a complete backup on the PC. But using the normal dump option is still prefered, as it wil also produce a log.
Also you should be able to use a 16GB SD card as replacement in a 8GB Wii U, as IOSU doesn't have a 16GB bin.

For soldering I would recommend: Preheat the PCB (but not so much that solder melts), every degree helps here, even a hairdryer can make it easier. Then add new solder to the GND pad and make sure it properly flows, use enough heat and flux for that. Then solder the GND pad of the NAND AID first, add fresh solder (not just the one thats already on the pad). And you should notice when the solder on the Pad begins to flow. This helps making a good gnd connection. And after cooling down, check if the GND connection really holds. If you made sure it holds and the other contacts are properly aligned solder the other connections.

And just out of interest, where did you order your NAND-AIDs and how much did they cost?
 

Xrider

Member
Newcomer
Joined
Jul 31, 2023
Messages
15
Trophies
0
XP
92
Country
France

V10lator

@Xrider a few minor points to yur tutorial:
I am maintaining a fork of Garys recovery with my and V10lators additions (Dumper/Cloner, File Checker, Batch install, SetInitialLaunch, antifreez). Thanks to gary again for helping me with these things.
You can find that fork here: https://github.com/jan-hofmeier/recovery_menu/releases/
Also I reduced the verbosity of the MLCChecker, so when using this recovery.
I would appreciate if you could link to the github, instead of hosting an outdated and possible bugged version on that post. But feel free to mention the release you explain in the tutorial.

For the SD card size, there is basically no upper limit (ok 2TB it is) for the size of the SD card you are dumping to. For 32GB consoles you can actually use a 32GB sdcard for the dump (using the dump slc + clone mlc option). This will write the mlc raw to the sdcard, so it can be directly used in the NAND-AID. But I suggest you make an Image of the SD card on the PC before putting it in the NAND aid, so you have a complete backup on the PC. But using the normal dump option is still prefered, as it wil also produce a log.
Also you should be able to use a 16GB SD card as replacement in a 8GB Wii U, as IOSU doesn't have a 16GB bin.

For soldering I would recommend: Preheat the PCB (but not so much that solder melts), every degree helps here, even a hairdryer can make it easier. Then add new solder to the GND pad and make sure it properly flows, use enough heat and flux for that. Then solder the GND pad of the NAND AID first, add fresh solder (not just the one thats already on the pad). And you should notice when the solder on the Pad begins to flow. This helps making a good gnd connection. And after cooling down, check if the GND connection really holds. If you made sure it holds and the other contacts are properly aligned solder the other connections.

And just out of interest, where did you order your NAND-AIDs and how much did they cost?
Hello SDIO, Thank you for your thoughtful suggestion. I will update the Delta tutorial soon according to your recommendations, thank you again.

PCB: Jlcpcb, 34 euros for 5 units (will add shipping cost, taxe and MicroSD slot)

Capture-d-e-cran-2023-08-17-a-23-47-13.png


But... I think a can make a new design of the PCB, with more feature ;)
Is not the first one :
https://www.delta-island.com/forum/viewtopic.php?t=4354
 
Last edited by Xrider,
  • Like
Reactions: SDIO

MasterGR

New Member
Newbie
Joined
Mar 21, 2021
Messages
2
Trophies
0
Age
42
XP
43
Country
United States
Thanks to Voultar who made all of this possible. Sad that none of you realize he did all of this work.
Post automatically merged:

Way to ruin a good thing. Yuck. Shame.
 
  • Haha
Reactions: SDIO

skawo

Well-Known Member
Member
Joined
Aug 18, 2015
Messages
543
Trophies
0
Age
34
XP
2,732
Country
Voultar designed the PCB, but literally everything else was contributed by other people.

The initial idea of replacing the NAND with an SD card, mapping out the connections, testing it out, finding all the caveats and pitfalls, making all of the tools to diagnose, dump and repair your NAND, creating UDPIH, creating a modchip that makes it possible to remake the NAND image even if yours is too corrupt - that's all work of other people.

The PCB makes the install easier, yes, but not "possible" - you can do the modification without it, using just an SD card adapter. Everyone is very thankful for his contribution, but it would be useless without all of the other tools and knowledge, and ignoring all of that is deeply disrespectful to the others involved.

Do not be a sycophant.
 
Last edited by skawo,

Valery0p

Well-Known Member
Member
Joined
Jan 16, 2017
Messages
560
Trophies
0
XP
1,646
Country
Italy
Maybe. There's been several people posting stuff of this ilk lately, though.
Yeah I noticed, probably someone from his youtube channel behaving like cultists...

If we had a good RedNand implementation we wouldn't need custom components that are not off the shelf, even if it's just something as simple as that adapter.
 

kyleb

New Member
Newbie
Joined
Sep 6, 2023
Messages
3
Trophies
0
Age
35
XP
7
Country
United States
Could someone help me identify how to fix my corrupt file system? Attaching the extract logs here. Titles are:

Wii U Menu
User Settings
Account Settings
Wii U Chat
Software/Data Transfer
Miiverse Post All
Nintendo Land
SUPER MARIO 3D WORLD
 

Attachments

  • wiiu_extraction_logs_20230906.txt
    9 KB · Views: 20

kyleb

New Member
Newbie
Joined
Sep 6, 2023
Messages
3
Trophies
0
Age
35
XP
7
Country
United States
What did you already do? Did you replace the eMMC?
I'm planning on it. What I've done so far:

1. Dumped syslog and found several ### MEDIA ERROR ###, dev:mlc01 errors.
2. Dumped MLC + SLC and shut off the WiiU.
3. I'll write MLC.bin to a SD card.
4. Nand-aid is in the mail.

My question was around fixing the corruption. I've done more research and it looks like I need to boot the WiiU up in recovery once I have the Nand-aid mod installed, and start fixing the corrupt titles.
 

SDIO

Well-Known Member
Member
Joined
Feb 13, 2023
Messages
2,283
Trophies
0
Age
28
XP
1,398
Country
Germany
I would recommend you wait till the NAND-AID arrives and then boot the SD and run the MLC checke rin the recovery. From there we can then decide.

From the errors we see with wfs-extract, it looks like you don't have corrupted directories, which is great. You should be able to reinstall the damaged system titles, then it should boot again. From there oyu can go to the settings and delete the corrupted games (looks like only the main game, and neither the updates nor the saves got damaged). So you can then just reinstall these games.

But the MLC Checker in the recovery will give the definitive answer what is damaged
 
  • Like
Reactions: kyleb

JIaroJIy4

Member
Newcomer
Joined
Oct 30, 2023
Messages
9
Trophies
0
Age
32
XP
53
Country
Russia
I am a new user and according to the guide I attach my logs. Hopefully this is still useful. Judging by my memory I ran into system memory error (160-0103) back in 2022 (not me personally). Right now I can boot into OS and do minimal stuff. But even Browser throws the error. I have basically just started working on my WiiU.

P.S. In case people are interested - I will be copying MLC to 32 GB uSD and will solder/build my own interposer (don't have access to cheap NAND-AID - I will have to pay up to 20 bucks and wait). And if I don't fail with my hacked together interposer - will start modding it.
 

Attachments

  • logs.7z
    13 KB · Views: 12
Last edited by JIaroJIy4,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    HiradeGirl @ HiradeGirl: https://www.youtube.com/watch?v=ntjkwIXWtrc&ab_channel=Apple I feel uncomfortable from watching...