Worklog Wii Portable #2

jefflongo

Broke BitBuilt
Staff member
.
.
Joined
Dec 15, 2016
Messages
1,017
Likes
1,361
Location
Santa Barbara, CA
Portables
3
Name TBA. This portable is a collaboration @mokus which I believe will be the most ambitious and integrated portable yet. The idea is simple - design a compact portable with no wires. The execution, well, that's another story. Over the last few months, I've assembled many various designs, all of which have been dropped for one reason or another. The work I have so far for this design has taken bits and pieces of all of my previous "experiments" as its foundation and have had them expanded on significantly.

Many of you have seen my PMS and USBC board design from a while back. The first thing I did was completely redesign these boards from scratch (switching to Altium from Eagle for my CAD work). My main two grievances about the original boards were finding a reasonable way to make the boards fit in a compact design, and the number of wires required to be soldered between the two. So I sought out to address both of these concerns. @mokus proposed an excellent idea: if the horizontal plane is the limiting factor, why not use the vertical axis? The idea here being to "stack" the PCBs using standoffs. That addresses concern #1. To address concern #2, the original plan was to connect the two boards together using FFC cables; something I had planned to do in the original design but ended up dropping due to spacial concerns, which is now a non-issue with the stacked-PCB architecture. However, we came up with an even better idea: to use a stacking self-mating connector on each board. This not only solves the problem of finding an FFC of a very specific length but also enables us to route the USB PD power connection through the connectors, as each pin on the Samtec LHSM series connector we chose is rated for up to 2A.

A few other things have changed in the design as well. The connector for WiirdFlex is integrated on the PMS which will supply power, the thermistor connection, and pull a USB connection from the Wii to send to the USBC board. The MCU has been swapped to an STM32G431KB. I chose this MCU based on a couple of factors: hardware USB support, large flash/RAM size, 3 separate i2c controllers, a small 5x5mm footprint, and because I've been becoming increasingly familiar and fond of ARM. I could go on and on about what this board stack will support, but I think its best if I just put the features in a list:
  • Only wires to the board are the two short wires that will connect to the battery clips, no wires necessary between the two boards, or to the Wii
  • Complete power supply for the Wii and battery management unit, with fuel gauge to receive accurate battery percentage on demand, thermistor connection for over-temperature shutdown, and connection for RGB LED (will be using WS2812B or similar) to indicate charging status, etc.
  • Hardware support for i2c connection to the Wii to support features like WiiHUD
  • USB PD fast-charging at voltages between 5-15V, automatic PD negotiation on cable plug-in detection
  • Integrated internal USB port to store games. The drive is accessible via the USB C port while the console is turned off
  • Firmware upgrades via the USB C port; the firmware can be upgraded without ever needing to open the portable
  • USB C port can be used to communicate with the STM32 serially at any time, will primarily be used for debugging, but may have some other uses in the future
  • Integrate power button
  • FFC connection to the rest of the portable
  • Vertical, space-efficient layout
Without further ado, some images. The PMS is a 4 layer board, the USBC board was done in 2 layers.

7h1v8YB.png iAnMKde.png 36SCFdY.png

AIfZP1p.png vEPwNAa.png Mb1pPun.png

And now for some images of the PCB stack assembly. There were a few challenges in realizing this stack. First, the total height of the stack was constrained by the desire to use a thin (~7mm) cooling solution. If the Wii motherboard is to overhang the PCB stack, the total height of the stack needed to be less than around 12mm, including screw posts used to mount the PCB stack into the case. Using a 2mm screwpost, and 0.8mm PCB thickness for both boards, I'm left with just over 8mm of total height. There are also components on the Wii board, which reduces this height further. Additionally, the mating connectors to connect the two boards only come in certain heights. So I picked a 6.5mm mated connection, ever so slightly taller than the USB A port which sits on the bottom of the USB C board. This also constrained me to place no components on the top of the PMS board which sits below the USB A port. Additionally, I placed no components on the top of the USB C board, to reduce maximum height further. You can see from the images how close it will be.

j1YBB7G.png v0Sq9EQ.png kIhVbi0.png oYkBXdZ.png 0Lf15eR.png

That's all for now, I will likely be conducting some more review on the PCBs before I go ahead and order them. Afterward, I will be working on firmware until I finish this school quarter (I've admittedly been putting school on the backburner a bit.. I blame either online classes or senioritis). Thanks for reading!

EDIT: Something I didn't consider was that the connector used for WiirdFlex will need to rise in order to release the FFC cable. Therefore, I rerouted the USBC board to support a larger cutout such that the connector won't be limited by the USBC board above it. Updated the images to reflect the changes.
 
Last edited:

Xerehm

.
Joined
Apr 27, 2020
Messages
13
Likes
6
insane. this sounds incredible and I can't wait to see where it goes from here
 

jefflongo

Broke BitBuilt
Staff member
.
.
Joined
Dec 15, 2016
Messages
1,017
Likes
1,361
Location
Santa Barbara, CA
Portables
3
After @mokus confirmed that the WiirdFlex connector can handle the sustained current draw of the Wii, I pulled the trigger on the two boards. Ordered the BOM as well. This is my first time actually ordering from JLC, but I've heard nothing but good things about them. I went ahead and added stencils to my order from JLC as well. I really like that they have an option to put the top and bottom assemblies on the same stencil, my alternative was using OSHStencils for the harder sides and hand assembling the easier sides. We'll see how the quality is, but considering I get both sides of stencil for half the price of a single stencil from OSHStencils, I'll take it even if it isn't great. I knew going into this that one of the two Samtec connectors I need to connect the two boards isn't stocked by most suppliers, so my plan was to buy directly from Samtec. I thought, "why not try asking for samples first?" before I placed the order. Asked for 3 samples of each connector, and to my surprise they overnight shipped them to me for free. ;)
 

jefflongo

Broke BitBuilt
Staff member
.
.
Joined
Dec 15, 2016
Messages
1,017
Likes
1,361
Location
Santa Barbara, CA
Portables
3
PCBs and stencils came in today from JLC. Also waiting on the standoffs from eBay. The standoffs were particularly hard to find because m2 6.5mm standoffs are not standard at all. Luckily, I was able to find some m2 6mm standoffs and m2 0.5mm washers on eBay. I got 40 of both for like $3 shipped. In the meantime, I did some test fitting. The bulk caps for 1.8v and 1v might require me to raise the Wii up a mm or two, but overall the whole assembly is looking really promising. Here are some pics.
20200616_134944.jpg20200616_191855.jpg20200616_191905.jpg20200616_191913.jpg
 

jefflongo

Broke BitBuilt
Staff member
.
.
Joined
Dec 15, 2016
Messages
1,017
Likes
1,361
Location
Santa Barbara, CA
Portables
3
Assembled the PCBs and started testing. Stupidly didn't connect 3.3v to the programming header, so had to fix that. So the assembly is working well, I'm still working on testing all the features. I created a new test fixture which integrates some battery clips (and a quick disconnect switch). Here's some pics.
20200702_013528.jpg20200705_210206.jpg
 

jefflongo

Broke BitBuilt
Staff member
.
.
Joined
Dec 15, 2016
Messages
1,017
Likes
1,361
Location
Santa Barbara, CA
Portables
3
Now's a good time for an update. I spent a long time testing the features of the PCBs, and I can happily say everything seems to work. The current test I'm running is doing the following:
- System powers on, USB drive is connected to type-c port, can access from PC.
- Push button, the STM32 is connected to the type-c port (USB drive is connected to the WiirdFlex connector), it repeatedly prints the current battery percentage, regulators are powered on.

I have also been working on developing hardware-independent drivers for the various peripherals on the board. I plan to open source them, they might prove useful for others making a custom PMS. As some of you know, I did this for the STUSB4500 for on-the-fly PD negotiation. I am still working on improving that driver, making it more robust and more hardware-independent. I recently finished my driver for the BQ24292i (battery mangement IC). I abstracted out configuring almost every possible action you might want to configure on the chip. I also finished writing something for the MAX17048 fuel gauge.

On the mechanical/hardware side of things, I've been working on improving my test fixture. Mostly minor adjustments in height/spacing/etc. I finally got the standoffs and washers in from China, to replace my temporary 3d printed ones. I have to say that the result is AWESOME. They fit perfectly, and the 6mm standoff + 0.5mm washer result in the perfect height. Here are some pics of the current setup.

20200711_115306.jpg20200711_114850.jpg20200711_115337.jpg
 

jefflongo

Broke BitBuilt
Staff member
.
.
Joined
Dec 15, 2016
Messages
1,017
Likes
1,361
Location
Santa Barbara, CA
Portables
3
Been working on the firmware the past few days. Pretty much done with everything feature-wise.

- Power button powers the system on, switches to flash drive access when powered off
- Fuel gauge is giving battery percentage and low battery alerts
- DFU firmware updates work via USB, currently holding the button down for 10s to trigger DFU, probably will change that to a button pattern or button + volume button or something like that.
- Still todo: optimize for minimal power consumption

Moving forward with the project, the next step is to begin designing the audio amp + FPC connector board that will both send signals from the Wii that aren't on the WiirdFlex connector back to the PMS, as well as send signals from the Wii and signals from the PMS to the front half of the case. This board should be pretty easy, but is blocking progress on the Wiirdflex board since we need to figure out where to put the second tail of the WiirdFlex board.
 

jefflongo

Broke BitBuilt
Staff member
.
.
Joined
Dec 15, 2016
Messages
1,017
Likes
1,361
Location
Santa Barbara, CA
Portables
3
Some bad news to report, I was replacing a broken connector on the PMS board at way too late an hour and mistakenly soldered the battery clip wires on backwards, damaging the charge chip. No problem, I replaced it and everything on the PMS board works fine now. However, my Wii has completely stopped working. Not getting any video signal out of it at all, despite all voltages looking good, U10 working, etc.

Given that the 1 second of reverse polarity didn't damage any of the downstream components on the PMS board from the charge chip, and that the regulators weren't enabled anyway, I think it's unlikely that that event killed the Wii, but I currently don't have another explanation as to why it's not working. I did replace the flex connector but all the connections look good. So I'm currently at a loss on how to continue debugging this board. If anyone has any suggestions I'm an ears. Otherwise I may have to prepare another Wii at some time in the future.
 
Top