Wii U Defuse Guide (Work in Progress)

Started by tzirf, Nov 22, 2024, 04:47 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

tzirf

This is a work in progress guide. I want to demystify using Defuse as there appears to be much confusion out there and my aim is to have a guide to provide enough information that others who want to use Defuse will be able to do so even if they are not necessarily tech savvy.

What is Defuse?

In a nut shell Defuse or rather (de_fuse) and sometimes referred to as Pico Defuse is a Wii U modchip that allows advanced diagnosing and recovery of the Wii U system. You can find the github page for defuse here and the original more in depth write up of its original work/discovery of this method here

How to Setup Defuse on a Wii U Console Video Guide

Using Defuse to Diagnose/Repair a Wii U Console

For those who prefer a written guide, you can find it below. The written guide is not complete yet.

What you will need to have to use Defuse? 

Components:
-Raspberry Pi Pico
- 1GB or 2GB SD Card (Cannot use SDHC card), must be an original SD. Size cannot be larger than 2GB. Smaller sizes may work. For those who don't want to rely on getting lucky, purchase a 1GB or 2GB SD Card that was officially licensed by Nintendo for the Wii Console. If you plan on rebuilding the MLC or dumping the SLC you will need a 2GB Card. A picture of one is below for example.
IMG_9122.JPG

-Wii U Console (A given, but I thought I would mention it)
-Computer (Windows, Mac or Linux) Although this guide uses Windows since I assume most people will have access to a windows computer. 

Tools: 
Soldering Iron (To Solder wires to Wii U/Raspberry Pi Pico)
Screw driver (Phillips head (#00 size)/Triwing (Y0 Size)
Scissors (to cut wire)
Microscope/Magnifying glass (optional)

Supplies:
Flux
Solder
Kapton Tape(To insulate wires/Raspberry Pi Pico to prevent shorts) 
Isopropyl Alcohol 90% or higher
Q-Tip/Cotton Swab for cleaning up flux


Step 1: Installing Defuse firmware on Raspberry Pi Pico... 

Before soldering anything, I recommend you flash the pico defuse firmware to the Raspberry Pi Pico. This can be done by copying the file to the USB Mass Storage Device that appears when you plug the Pico into your computer. If you do not see a storage device, unplug the Pico from your computer, hold the white button on it and plug it in again. You can download the firmware from the github page. It is the file named "pico_defuse.uf2" in the zip that you download.

unzip the zip file using 7zip on Windows/Linux or The unarchiver on a Mac.

Inside the zip file you should find the following files/folders:
Foldertree.JPG

As stated above plug your Raspberry Pi Pico into your computer, when the USB Mass Storage shows up open it and drag and drop the "pico_defuse.uf2" file to it. The Raspberry Pi Pico should then automatically disconnect from the computer, indicating that the firmware has been flashed successfully. 


Step 2: Soldering to connect Raspberry Pi Pico to the Wii U board... 

First off Defuse requires advanced soldering, where wires must be soldered to 14 specific points on the Wii U console and then those wires must be connected to the correct pins on the Raspberry Pi Pico. The diagram that showcases the correct pinout is below:

Picopinout.JPG

Additionally here is a wiring diagram. This can be found on the github page and credit for it goes to JadeStrike.

wiring.png

Below is a video I made showing where to solder on the Wii U Board for those who prefer to see it done rather than read a tutorial. My original post for this can be found here should anyone need to reference it.

As a reminder: It should be noted that TP122 on the Wii U can be ignored if you are powering the Raspberry Pi Pico from a computer and plan on using a serial console aka Putty on Windows for example. If you are not sure about this my recommendation is to skip solder point TP122 and plug the Pico into a computer.

A couple things to note:
-If your Wii U consoles doesn't output a display you should use a serial console on the computer so that you can view and control the menu. This is extremely handy instead of blindly trying to diagnose/repair the Wii U. So if you are in this boat you can skip Solder Point TP122 as you will be plugging the Raspberry Pi Pico into a computer and it will get its power from there.

-If your Wii U console does output to a display, then you can power the Raspberry Pi Pico using the Wii U console by soldering the wire to TP122. This means you will probably just be using a TV and the power/eject button to navigate menus. The advantage to this method is you do not need a computer or usb cable to power the Raspberry Pi Pico
.   

Following the diagram above and make sure to double check that all wires are soldered to the correct pins on the Raspberry Pi Pico. You can choose to either solder short wires or longer wires depending on where you want to store the Raspberry Pi Pico. I chose to do longer wires so I could wrap it around to be able to easily plug it into a computer to use the serial console.

My console looks like this:

Note: You can view a much higher resolution image by right clicking the image below and selecting "Open in new tab" from your browser

IMG_8877.JPG


Step 3: Setting up Memory Card (to be inserted into the front of the Wii U) 

After downloading the zip file from the github page and extracting it you should see the following files:

Foldertree.JPG

The first thing you will need to do is flash boot1.img to your 1GB or 2GB SD Card. As a reminder it must be a standard SD Card SDHC or SDHX will not work. Since the boot1.img has a MBR header you may need to format as FAT32 after flashing. I recommend using balenaEtcher to do this. Also I recommend checking out my video on this section to help clarify any confusion. The link to that specific part of my video is here

After flashing boot1.img you will need to use Disk management in Windows to format the SD Card as a FAT system. This will allow the SD Card to show up in Windows so that we can move to the next step of transferring the necessary files that are required for Defuse to work. If there are multiple partitions on the drive, make sure you delete the partition first and format as a single partition so either 1GB or 2GB depending on which memory card you chose to use. 

Again grab the files from the zip you downloaded earlier and transfer the following files/folders to the SD Card. Additionally you should download and transfer the 52 titles & 5 SLC Titles for rebuilding/updating the MLC/SLC. The memory card should look this this with all the necessary files. The directory tree can be seen below. Kindly note that my SD Card is drive D, so the root directory is listed as D. Your SD Card could be another letter, it doesn't matter what the letter is, as long as those files are in the root of the SD Card. 

D:.
│   fw.img
│   ios.img
│   superblock.img.sha
│   superblock.img
│   tree.txt
│  
├───wiiu
│   │   .DS_Store
│   │  
│   └───ios_plugins
│           .DS_Store
│           wafel_core.ipx
│           wafel_debug_exts.ipx
│           fw.img
│          
└───wafel_install
    ├───0005001010004000
    │      
    │      
    ├───0005001010004001
    │      
    │      
    ├───0005001010004009
    │      
    │      
    ├───000500101000400a
    │      
    │      
    ├───00050010100040ff
    │      
    ├───0005001010040100
    │      
    │      
    ├───0005001010041100
    │      
    │      
    ├───0005001010043100
    │      
    │      
    ├───0005001010044100
    │      
    │      
    ├───0005001010045100
    │      
    │      
    ├───0005001010047100
    │      
    │      
    ├───0005001010048100
    │      
    │      
    ├───0005001010049100
    │      
    │      
    ├───000500101004a100
    │     
    ├───000500101004b100
    │      
    │      
    ├───000500101004c100
    │      
    │      
    ├───000500101004d100
    │      
    │      
    ├───000500101004e100
    │      
    │      
    ├───000500101005a100
    │      
    │      
    ├───0005001010062100
    │      
    │      
    ├───0005001010066000
    │      
    │      
    ├───0005001b10042300
    │      
    │      
    ├───0005001b10042400
    │      
    │      
    ├───0005001b1004f000
    │      
    │      
    ├───0005001b10050000
    │     
    │      
    ├───0005001b10051000
    │      
    │      
    ├───0005001b10052000
    │      
    │      
    ├───0005001b10053000
    │      
    │      
    ├───0005001b10054000
    │      
    │      
    ├───0005001b10056000
    │    
    │      
    ├───0005001b10057000
    │     
    │      
    ├───0005001b10058000
    │      
    │      
    ├───0005001b10059100
    │      
    │      
    ├───0005001b1005c000
    │      
    │      
    ├───0005001b1005f000
    │      
    │      
    ├───0005001b10063000
    │     
    │      
    ├───0005001b10065000
    │      
    │      
    ├───0005001b10067100
    │      
    │      
    ├───0005001b10068000
    │      
    │      
    ├───0005001b10069100
    │      
    │      
    ├───0005001b1006c000
    │      
    │      
    ├───0005003010010109
    │      
    │      
    ├───000500301001010a
    │      
    │      
    ├───0005003010011109
    │      
    │      
    ├───000500301001110a
    │      
    │      
    ├───00050030100111ff
    │      
    │      
    ├───000500301001210a
    │      
    │      
    ├───000500301001310a
    │      
    │      
    ├───000500301001410a
    │      
    │      
    ├───000500301001510a
    │     
    │      
    ├───000500301001610a
    │      
    │      
    ├───0005003010017109
    │     
    │      
    ├───000500301001710a
    │      
    │      
    ├───000500301001810a
    │     
    │      
    ├───000500301001910a
    │      
    │      
    ├───000500301001a10a
    │     
    │      
    └───000500301006d10a
          
           


At this point the memory card should be setup correctly and if you have followed all the other steps in this guide Defuse should be ready to use on the Wii Console.


Step 4: Starting Defuse

If you have followed this guide, you will need too plug the Raspberry Pi Pico into a USB Cable and then plug that into  your computer so that it powers on. Then take the SD Card we created and insert it into the front of the Wii U console. After that power on the Wii U console.

If everything is working properly the power LED on the Wii U console will flash and turn purple. A few seconds later you should see the minute menu appear on the serial console and/or TV depending on how you have the Wii U hooked up.




 



tzirf

#1
Using Defuse to rebuild an SLC with corruption

Some Wii U consoles will fail to launch into the Wii U menu after what appears to be a successful rebuild of the MLC. However when looking at the logs or if you are using defuse with the serial console you will see the output FSA: ### DATA CORRUPTION ERROR ###, dev:slc01, err:-524315, cmd:2, path:(null)
iosPanic(): Thread 91, owned by IOS-FS(5), has corrupted stack 0x115e9d08 of size 2048!

This indicates that the SLC has corruption. Sometimes this corruption requires the OSv10 fw.img to be replaced, which means you will have to use the JNUSTool to download title 000500101000400A. JNUStool was created by Maschell with the original post here

In order to use JNUSTool you will need to have Java installed. You can download the latest version of it here.
In order to make sure you have Java installed open a command prompt (Win + R key, type CMD and hit Enter)
In the command prompt type
java -version If Java is installed and working you should get the following output:
javaversion.JPG

If you don't download and install Java.

Now you need to navigate to the folder where you downloaded JNUSTool and extract the contents from the zip file. Then open the directory where JNUSTool is located. Once there hold "shift" on your keyboard and right click inside the directory and select "Open powershell window here" This will launch a powershell window from the directory where the JNUSTool exists.
powershell.JPG


Now before you proceed with the command to download the correct title for OSv10, you need to edit the config file using a text editor like Notepad and provide a common key. If done correctly the config file should look like this:

http://ccs.cdn.wup.shop.nintendo.net/ccs/download
D7B00402659BA2ABD2CB0DB27FA2B656
updatetitles.csv
https://tagaya.wup.shop.nintendo.net/tagaya/versionlist/EUR/EU/latest_version
https://tagaya-wup.cdn.nintendo.net/tagaya/versionlist/EUR/EU/list/%d.versionlist

Click file, save and close Notepad.

If you leave the brackets around the common key or do not provide a common key, JNUSTool will throw an error saying the CommonKey length is wrong.error.JPG 
 
Now we can use JNUSTool to download OSv10 by using the command below in the powershell window. The command to do this is 

java -jar JNUSTool.jar 000500101000400AWhen used correctly you should get an output like this:
command.JPG

And a new window should open that looks like this:
downloadwin.JPG

Put a checkmark in the "code" box and click download and it should create a folder named "000500101000400A" inside the directory where JNUSTool is located. Open the folder and inside will be another folder named "code" open that folder and you will see a bunch of files.
folder.JPG

Find the one named "fw.img" rename this to "ios_orig.img" and put it in the root directory of your SD Card.

Now launch defuse and select "Patch (sd) and boot sdmc:/ios_orig.img"