Worklog Project M

Joined
Sep 27, 2016
Messages
404
Likes
865
So I guess we're all redesigning motherboards now lol.

With the current 3 or so worklogs of reverse engineering of the Wii/PS2 motherboards, I felt inspired. After completing a few portables of my own now, I wanted a challenge for myself to push my growth as a hobbyist. I'm an Eagle user with a hobbyist license (meaning I'm limited to 2 layer designs only), so I'll have to use kicad for this project. I've never worked with kicad, 4 layer board designs, or BGA designs but I'm very familiar with board designs and BGAs in general so shouldn't be too difficult.

Not too much to show as of now, but creating a worklog to hold myself accountable to complete this as well as share the process along the way.

I started off with reviewing the compendium as well as removing the CPU, GPU, and RAM from a 4 layer Wii board I had to confirm various traces under the microscope. I mapped out what every single pad does for all 3 BGAs. Tedious job... over 1200 pads on the motherboard of just those 3 chips.

1655439932623.png


The compendium was a great start as a lot is already mapped out for you however a lot is also not marked (which didn't need to be marked for the original intent of trimming the board), but I'll need to know what every pad is for my purposes.

I would love for this build to feature an OLED panel, but it's not quite a simple solution.

I experimented with 2 different MIPI AMOLED screens, both slightly disappoint.

1st screen is a 5.5" 1080P panel who's driver board actually accepts 480P natively but looks fuzzy/soft as you would expect a 480P signal to look scaled on a 1080p panel. So I did some research and found the smallest HDMI upscaler money can buy, the Mclassic. The image was only slightly improved but the Mclassic algorithm softens the edges to clean up jagged edges and ultimately it just wasn't a crispy image. This combo was way too expensive for the sub-par image quality, so that option is out.

2nd screen is a 5" odd resolution (960x540, it's a Vita OLED with a MIPI driver) but will not accept any signal less than 720P. So once again forced to hook up the Mclassic to upscale and the image quality is much better than the first due to the driver boards menu options being able to sharpen the image which ended up looking great. But, this is a messy/bulky setup. I thought about reverse engineering the MIPI driver board + the Mclassic into just one board, but is more effort than it's worth with the Mclassic being 6 layers and MIPI board 4 layers... and the slight glitchy-ness from my testing proved this method to be unreliable.

For now, I'm sticking with either 4.3" or 5" IPS 800x480 via HDMI using the gcvideo FPGA (which will most likely be integrated into this board redesign instead of the original AVE). This method is proven to be the most reliable, cleanest, and crispiest video solution currently available. Direct Drive would be nice though...

The regs I will be using are the most efficient I have found that are readily available with efficiency being around 92% under load. I'm using a buck/boost reg for the 3.3v line (to squeeze out a little extra battery life) that automatically switches from a buck reg to a boost when the battery falls below 3.3v.
 
Last edited:
Joined
Apr 29, 2020
Messages
89
Likes
108
Good luck on your endeavor! 3 Wii motherboard recreations for portables, this is definitely the best timeline!
I really like your approach using GCVideo and HDMI, it offers plenty of options for customization directly at the source I’m sure it’ll look great.
 
Joined
Sep 27, 2016
Messages
404
Likes
865
Small update:

Screenshot (1).png

Screenshot (2).png


The project is starting to take shape. Doesn't look like much but I've put in about 10 more hours since the last post just mapping out the pins and figuring out how I want to create the schematics. I made different boxes per BGA package of the CPU/GPU/RAM in the schematic for groups of certain connections (GND pins, Voltage pins, etc.) to make it easier for me to read since we are dealing with quite a bit of connections here.

Next is to finish the schematic and rename all BGA pads in the PCB editor to correspond with the names of the pads in the schematic. Then we route the traces to match the original motherboard.

For now, I won't be adding anything more to the board other than the boot essentials of the Wii just make make sure the main system is working properly before adding the additional features.
 
Last edited:
Joined
Sep 27, 2016
Messages
404
Likes
865
I was trying to figure out how to insert an image of the Wii motherboard to trace over in kicad, but found there is no such feature. However, @YveltalGriffin had a genius idea as usual and recommended a little program called "Peek Through" where I can make whatever program I have open transparent so I could see the Wii motherboard if I have it open in the background. Works like a charm!

Now I'm almost done with the routing of the top layer, but them data high speed traces had me testing my patience... but this has been a great leaning curve with kicad. Honestly I'm finding it easier and better than eagle.

Screenshot (3).png


Screenshot (4).png

As you can see above, I'm trying to replicate the data traces as closely as possible, one by one... they're not perfectly identical, but I'd say at least about 98% identical, which hopefully is enough accuracy to avoid boot issues.

Screenshot (6).png


The benefit of tracing the motherboard is to not only match everything as closely as possible therefore higher chance of this board redesign booting, but to also verify my schematic is correct and making sure all traces go where I have specified in the schematic. I have already found a few flaws that I may have possibly overlooked had I not been tracing the board.




So here's a wild idea if anybody is interested in further research:

Something recently peeked my interest with the Wii motherboard, specifically the Wii Mini.

I was going through Shank's Wii Super Thread to get the values of the small components essential for the Wii motherboard when I discovered a post that shows an undocumented GPU on the Wii Mini that has "Hollywood-2" engraved on it rather than the usual "Hollywood-1" and this new GPU variant seems to feature a die shrink.

Hollywod-2 GPU seems to be somewhat uncommon from the immediate research I've gathered and can be found sometimes and sometimes not on the RVO-CPU-01 revision motherboards. There is an RVO-CPU-10 motherboard revision that may be more consistent. I found a bare motherboard listed "as is for parts" with a vague description but has the Hollywood-2 GPU that I purchased and plan on further investigating. I'm also assuming it gets way less hot than the current 4 layer motherboards we have all been using as the heatsink is much smaller in the Wii Mini, but is simply just a theory. I want to get some concrete numbers and see if it makes sense to track these down for future builds since the Wii Mini is hackable now and double the price as a regular 4 layer Wii. Unfortunately, the Wii Mini lacks Gamecube controller connections on the motherboard with no via to solder to, but since I'm redesigning the motherboard anyway and decide Hollywood-2 is worth it, I can just remap the gc data line from the GPU to have access to a Gamecube controller IF the footprint and pinout is the same as Hollywood-1. Hmm, there does appear to be vias and the required 750 ohm on board resistor array for GC controllers on my CPU 10 revision... online resources were incorrect then. Will need to test this further.

I'm thinking of swapping Hollywood-1 from a regular 4 layer Wii board with a Hollywood-2 and the NAND paired with the Holywood-2 as well just to see if it boots. I plan on also comparing the motherboards to see if there is any obvious immediate differences in the GPU pinouts. I'll report my findings in this thread or a separate thread if the results are significant enough.
 
Last edited:
Joined
Apr 29, 2020
Messages
89
Likes
108
Great progress and super interesting info on the Hollywood-2 GPU, looking forward to learning more from your findings!
 
Joined
Feb 19, 2021
Messages
49
Likes
13
Location
Germany
I think Aurelio did something similar, but never posted about it. I don't know if he has successful
 
Joined
Sep 27, 2016
Messages
404
Likes
865
I received the Wii Mini with the Hollywood-2 GPU. The seller informed me he bought it at a thrift store, found it had no video, took it apart and couldn't figure it out so sold just the motherboard which I snagged for $15. Turns out, he just didn't have the bluetooth plugged in lol. Unfortunately, he threw away the housing which would have been useful to get the serial number to find these Hollywood-2 GPUs.

The board revision I have is a RVO-CPU-10.

I measured the amp draw using a multimeter and custom regs (LDO removed and powered by a switching reg instead) on the Wii menu screen with 1 wiimote connected. Each voltage line I measure independently and I let the Wii run for 2 minutes for each of these voltage lines and gathered the average consumption. These are rough numbers as they are not in game, and I'm sure my multimeter is not 100% accurate but you get the idea.

1V - 1.1A (1.1 Watts)
1.15V - 1.5A (1.725 Watts)
1.8V - 0.41A (0.738 Watts)
3.3V 0.17A (0.561 Watts)

Total power consumption: 4.124 Watts


I couldn't test a regular 4 layer Wii as I do not have one at the moment, but we do have information already available for those from this thread:
Wii Working Currents

A regular 4 layer Wii with a Hollywood 1 GPU draws around 5.74 Watts.

Now we know.
 
Last edited:

dababy

.
Joined
Nov 7, 2021
Messages
110
Likes
40
Wow that is definitely worth looking into and super interesting lol i didn’t know those revisions, Hollywood 2 existed
 
Joined
Sep 27, 2016
Messages
404
Likes
865
There's a lot going on here and maybe could be cleaned up a bit, but finally finished the schematic for the essential system to run.

Screenshot (10).png


Still have to rename a couple caps and add some test pads, but it's basically done. This schematic so far has the Wii system and gcvideo using the XC3S200A fpga. I'll have to experiment with programming the external flash memory ic for the gcvideo, but read a few posts somewhere that a raspberry pi can be used and should be pretty simple.

I thought about adding the everything now on board so I can just power it up without extra wiring, but I think I may be getting ahead of myself. Lets just make sure the main system actually works before going the extra mile haha.

I sanded down the 4 layer bluetooth module and am tinkering with the idea of reverse engineering it as well and adding it on board. We'll see if I even decide to add bluetooth at all or not.

Next up is to finish routing the board. It's about 40% routed, but many more hours to go...
 
Last edited:
Joined
Apr 29, 2020
Messages
89
Likes
108
Very impressive work! I like that you decided to natively support GCVideo, works well for regular Wii as well as a portable Wii with a drive board supporting HDMI. Keep up the great work!!
 
Joined
Sep 27, 2016
Messages
404
Likes
865
Very impressive work! I like that you decided to natively support GCVideo, works well for regular Wii as well as a portable Wii with a drive board supporting HDMI. Keep up the great work!!
Thank you. VGA does look nice, but compared to the gcvideo HDMI, it looks a lot softer. The black bars are a bit annoying with HDMI, but it's not too bad. Plus, you can scale the image via software in Nintendont and remove the black bars. Unfortunately there's no solution with Wii games though. I still think it's worth the sharper image.
 
Joined
Apr 29, 2020
Messages
89
Likes
108
For the black bars you would need to have a custom GCVideo firmware that properly scales horizontally, but that requires knowing FPGA coding. I am wondering if some of the RVL_DD code could be back ported to GCVideo?
Also, will you be testing with the Hollywood-2 chip directly? I am asking because since you are testing many things (custom pcb, reballing chips, gcvideo…) I am wondering if using the Hollywood-2 chip might not give you false negative results whereas the board would work fine with a Hollywood-1 GPU.
 
Joined
Sep 27, 2016
Messages
404
Likes
865
Hmm, I believe @Aurelio mentioned he has plans to open source the Direct Drive at some point actually. I could be wrong.

I ordered another Wii mini today for further research, and hopefully it is a Hollywood-2... The goal is to use the Hollywood-2 in the end if possible, just to get that little extra battery life, but still have a lot of research to do/testing with it to see what makes more sense to use. But initially, I will be installing the regular Hollywood-1 for the first couple board revisions.

One test I'd like to try is to install the Hollywood-2 GPU on a regular 4 layer Wii board as well as swap the NAND chips since they are paired, and see if it even boots. I don't think the RAM and CPU are also paired with the NAND as the pinout for the NAND is only to the GPU. If Nintendo changed the pinout of the Hollywood-2 GPU, which I still have to look into, then I won't even bother.

I'll keep this worklog updated with my further research for Hollywood-2.
 
Joined
Sep 27, 2016
Messages
404
Likes
865
Was messing around last night with reballing and such. I recommend 0.5mm solder balls for the reball of the GPU even though stencils have them labeled as 0.6mm. Also, a heat pad or hot plate I strongly recommend as well. I have a fancy one at work, but a cheap one at home that I paid $10 for or something but it does the job. Having that board preheated really helps take a lot of stress off direct heat to the chips themselves.

408E3D71-9578-41DD-8758-C69DBC394157.jpeg

BF137AF2-7BF1-47AB-BC07-450B18E1E610.jpeg


Unfortunately, this came from a water damaged board that was working until I removed it. Maybe was more sensitive or something since there is a short on the 1V8 line directly on the GPU… but still good practice. I have 1 Hollywood-2 left I’m planning on trying to transfer to a regular 4 layer board today at some point. Killed that one too... solder mask peeled from under the actual GPU chip when removing... Didn't have that issue with the other 4 GPUs I've removed but I'll have to be more careful. I'm -$60 between the two of these... don't know how much I'm willing to lose for research purposes...

Hollywood-1 vs Hollywood-2 just for kicks:

73E91A6B-5EAC-4D78-8826-083249C420A6.jpeg

BD624721-33E0-45A3-9E48-540D36AF45DB.jpeg


Nice little die shrink right there.
 
Last edited:
Joined
Sep 27, 2016
Messages
404
Likes
865
I've learned quite a bit throughout this process, especially being a new KiCad user. I wanted to challenge myself and oh boy, this was a challenge for a hobbyist. But we are far from done with this journey. I'm just happy to be done with the core of the motherboard which was the biggest hurdle. Time to send off to the fab once I double check everything and finish a couple other boards for other projects so I can submit the order to JLC all at once.

You'll notice there is no AVE or video processor of any kind. I'm using an FFC connector and matched the length to all the i2s and digital video data traces for timing reasons just in case. I will have gcvideo digital HDMI on the other end of the FPC connector or may just incorporate it on a custom driver board.


Screenshot (2).png


Screenshot (3).png


Screenshot (4).png


Silkscreen on the bottom is a little bit of a hot mess, but made everything visible enough to where I know what components go where. May just get rid of the silkscreen component names altogether if Rev 1 of the PCB looks too messy. I'm thinking maybe a yellow PCB just for kicks for Rev 1 of this board.

Next, I will start the assembly with the GPU. That's the toughest BGA to tackle which I'd like to get out of the way first. I have swapped RAM and CPU between Wii boards successfully with no boot problem, meaning the GPU and NAND are the only things paired on the whole board.
 
Last edited:
Joined
Sep 27, 2016
Messages
404
Likes
865
So close... yet so far...
sounds appropriate for this update.

Warning, many Wii's were sacrificed for research purposes. More details later.

PCBs came in from JLC and as stated previously, I wanted to tackle the biggest hurdle first being the GPU.

IMG_0793.jpg

IMG_0798.jpg


But sure enough, shorts on all voltage lines. I repeated this process 3 different times, RIP 3 Wiis, with shorts every time. My reball and assembly went perfectly every time, how can this be??? I removed all GPUs and checked the pads on the BGAs of the GPU itself and sure enough the GPUs themselves are shorted without even being installed. I removed 2 GPUs from fresh boards (just to conclude my findings) and immediately checked the pads again on the GPU itself right after removal and... shorted. These GPUs are internally cracking it seems and can't take the heat of the removal, dying in the process.

In case you're wondering how I removed these GPUs: I use a bottom board heater that heats between 160C-200C and I started with 380C on the hot air station, no budge of the GPU so bumped up to 400C, still no budge, and finally found 420C to be about the sweet spot. So these were all removed at the lowest heat possible to get past that factory solder.

Here's the conclusion: The CPU and RAM can take the heat without damage and can even be swapped to other boards as only the GPU and NAND are paired. I tested this by swapping a couple different RAMs and CPUs to other boards with no boot issues. But the GPU is too heat sensitive and we need to find other ways of removal. For now, I have been cutting the GPU off the motherboard and sanding it down to remove it from the PCB.

IMG_0799.jpg

IMG_0800.jpg


Using the method mentioned above of cutting away the GPU, I have no shorts across the board and good resistance values as well. Chips get warm when powered on like normal, but I do not get any video currently. Just to verify I didn't mess up the assembly on this board and that is wasn't an incompatibility with Hollywood-2 as you can see installed in the photo, I put together another board identical to this one with the regular Hollywood 1 that I felt confident about as the assembly went smoothly, but same issue: no shorts, good resistance values, chips heat up normally, but again no video. So close... I am using a gcvideo board I verified working on an unmodified Wii board, so something else is up somewhere... The only issue I ran into during assembly was the NAND footprint spacing is slightly off, which is why I broke off the unnecessary pins and slightly bent the NAND pins to fit. Might sound alarming but confirmed continuity and no shorts. Currently I'm not sure where to go from here as I literally traced over the Wii motherboard in KiCad to avoid issues/inconcistencies, yet still doesn't work.



We are learning more about this process as we go, one of us will figure this out sometime soon I'm sure.
 
Last edited:
Joined
Aug 19, 2017
Messages
17
Likes
3
I've been currently doing my own board design so this does not bode well....

Sorry if I'm incorrect here, it's difficult to tell from the Kicad pictures, but I would double check this plane here as it looks like it might be a voltage plane instead of GND where the vias are connected too (light green instead of the standard dark green fill across those traces).

Out of interest what stackup did you use with JLC? What was the prepreg thickness? Did you try changing out the terminator resistor for different value on the ram?
Screenshot (3) (1).png
 
Joined
Jan 11, 2022
Messages
103
Likes
174
Location
Italy
So close... yet so far...
sounds appropriate for this update.

Warning, many Wii's were sacrificed for research purposes. More details later.

PCBs came in from JLC and as stated previously, I wanted to tackle the biggest hurdle first being the GPU.

View attachment 26186
View attachment 26187

But sure enough, shorts on all voltage lines. I repeated this process 3 different times, RIP 3 Wiis, with shorts every time. My reball and assembly went perfectly every time, how can this be??? I removed all GPUs and checked the pads on the BGAs of the GPU itself and sure enough the GPUs themselves are shorted without even being installed. I removed 2 GPUs from fresh boards (just to conclude my findings) and immediately checked the pads again on the GPU itself right after removal and... shorted. These GPUs are internally cracking it seems and can't take the heat of the removal, dying in the process.

In case you're wondering how I removed these GPUs: I use a bottom board heater that heats between 160C-200C and I started with 380C on the hot air station, no budge of the GPU so bumped up to 400C, still no budge, and finally found 420C to be about the sweet spot. So these were all removed at the lowest heat possible to get past that factory solder.

Here's the conclusion: The CPU and RAM can take the heat without damage and can even be swapped to other boards as only the GPU and NAND are paired. I tested this by swapping a couple different RAMs and CPUs to other boards with no boot issues. But the GPU is too heat sensitive and we need to find other ways of removal. For now, I have been cutting the GPU off the motherboard and sanding it down to remove it from the PCB.

View attachment 26188
View attachment 26189

Using the method mentioned above of cutting away the GPU, I have no shorts across the board and good resistance values as well. Chips get warm when powered on like normal, but I do not get any video currently. Just to verify I didn't mess up the assembly on this board and that is wasn't an incompatibility with Hollywood-2 as you can see installed in the photo, I put together another board identical to this one with the regular Hollywood 1 that I felt confident about as the assembly went smoothly, but same issue: no shorts, good resistance values, chips heat up normally, but again no video. So close... I am using a gcvideo board I verified working on an unmodified Wii board, so something else is up somewhere... The only issue I ran into during assembly was the NAND footprint spacing is slightly off, which is why I broke off the unnecessary pins and slightly bent the NAND pins to fit. Might sound alarming but confirmed continuity and no shorts. Currently I'm not sure where to go from here as I literally traced over the Wii motherboard in KiCad to avoid issues/inconcistencies, yet still doesn't work.



We are learning more about this process as we go, one of us will figure this out sometime soon I'm sure.
WHAT?????? 420C to desolder the components!?!?!
Man you are literally cooking the components. All the shorts that you find after removing them is because the temperatures you're using are too high. I had the same problem on my first try but it was because I attempted to reball each component at least 20 times. To remove the main components I usually set the heater to 190C and the hot air station at 235C and it's more than enough.
To help the solder balls to melt I usually use a very thin piece of metal (the thickness is similar to an esacto knife blade but more bendy). With this I touch the solder balls while heating with the hot air, and this "stick" basically transfers direct heat to the balls like a soldering iron.
 
Last edited:

Aurelio

ᕕ( ᐛ )ᕗ
Staff member
.
.
.
.
.
Joined
Mar 3, 2016
Messages
2,219
Likes
2,937
Portables
2
I've been currently doing my own board design so this does not bode well....

Sorry if I'm incorrect here, it's difficult to tell from the Kicad pictures, but I would double check this plane here as it looks like it might be a voltage plane instead of GND where the vias are connected too (light green instead of the standard dark green fill across those traces).

Out of interest what stackup did you use with JLC? What was the prepreg thickness? Did you try changing out the terminator resistor for different value on the ram?View attachment 26191
That signal is GND
 
Top