Now that we're post-MGC, the rest of ya'll can see the build process. I didn't want any spoilers so I'd have something special to show everyone, so I kept things here to a minimum. But now I'll walk you through how it all went down.
As with any portable, the design starts from an initial dream. Naturally most of us go for "screen between controls" but what I really wanted was to see how close I could get to having a 3.5" as close to the controls as I could get it. I also had a lot of things about the WaveRider that I didn't love having to deal with, such as painting and sanding a controller a million times. So I also wanted to see if I could do a design that was a singular centerpiece with some OEM plastic stickin' out the sides. Can't beat that OG feel plus no paint would ever rub off on my hands or get stained with my Extreme Gamer Sweat and Dorito Dust.
So the measuring, test prints and mock-ups began:
I managed to get a nice pressure fit, and tried out the screen position and how the controls felt at this width, and it wasn't too jarring of a difference. Broad stroke mock-ups are one thing, internals are another:
The motherboard I tore out of the WaveRider still had some use during this stage. I knew I'd have it in this configuration pretty early, with the Wii's ram sticking into the controller area a bit. What was most important to me here was that the vent was on top, with the fan blowing up from the very bottom. If I could stick the screen out a bit and get everything to "fit" in the front half of the shell like this, I'd have lots of space in the back for battery cells. I had some interesting ideas at the start:
But ultimately settled on keeping things aligned, since it only required minor adjustments:
The batteries themselves are cradled by some outcroppings, with two of them actually snapping into place.
Now, let's talk about heatsinks. I'm obsessed with the notion of making this very custom, and I wanted to get as much out of the case as I could. So once I'd nailed down the shape and rough layout, I went ahead and cut a thin copper plate to size, then use a blowtorch to solder a trimmed M.2 heatsink I grabbed online to it. The idea was I'd have a large passive spreader, with a main mass to run air through:
I liked the results I was feeling, although it would be some time before I could run any actual thermal tests. You'll notice that presently this just sits in the case, there aren't any screwposts or other methods of keeping it in place. We'll get to that later. For now, we'll bounce back to handling misc parts of the design. Here we can see how the front tact switches are kind of embedded into the main foundations of the screwposts. The inserts are short enough that this is okay, but a little tight in practice:
I've also trimmed down the laser engraved emblem from the original WaveRider. No room for the whole thing, so we'll settle for just the center.
I had much bigger ambitions for the start button. I wish this wasn't a nightmare to do with just the original plastic. This is one advantage that 3D printing the shells has over the OEM plastic, I could've easily just mirrored this part and been done lmao. Fortunately the work I did to solder the tact switch into the board wasn't a waste.
Soldering WiFi back onto the Wii Mini was the easy part. Most of the installers weren't friendly towards me messing with the system menu. I wanted to set up a Wiiload example for the convention but my laptop's card wouldn't act as a slow enough hotspot; no 802.11g for me without a USB donger.
This is like the 30th print of the front case. I thought about how Hackerbilly build a tribute unit to the GCP2, and how glossy it was, and decided to ball.
So this unit's rockin' a Thundervolt. I haven't actually done any undervolting yet, but I'm quite pleased with the results. Despite knowing how small the OMEGA actually is, I'm still impressed with the size of this thing:
(btw, thanks for the pizza loopj)
I wanted to post this pic just to show that I had to trim the bluetooth module because of where it sits in the case. The range of the controller is noticeably shorter as a direct result, but honestly having a wireless controller on hand for 90% of the testing phase and system menu configuration was so worth it. How the fuck do I boot into the system menu with AureliOS so I can GC2Wiimote my WiFi settings??? He won't answer my phone calls...
Speaking of software, now we move onto what I consider the most interesting part of this project. When development started, I knew what I wanted out of a power board; your standard issue PD charge and play, regulation, etc. So I tagged in El Hermano who was willing to do the EE part as long as I did the software; this was going to be necessary for the relatively short timeframe anyways, plus with software being what I
do now, I wanted to try my hand at writing drivers blind. Beyond the standard stuff, I also wanted to do thermals/fan control, slap on an RGB LED, etc. So we went with an RP2040 as the MCU, since I already had one to play with in advance since I used it to program the FujiFlex, and liked how the whole drag-and-drop firmware thing worked. Amusingly I only did that for the initial programming of the board.
It's a little funny to use a Wii's SD card slot here. The final unit doesn't have an SD card wired up to the SPI lines for the long-term logging, but it could. I also have an EEPROM wired up here, since that also needed to be programmed in advance for the PD controller.
The way I approached this was to write a diagnostic app in Python, using Dear PyGUI as a frontend, and pyserial to communicate with the board. I started with a little console and eventually added more and more windows for each system. This one was a lot of fun:
Back to being a goon, you'd think after 20 years I'd know how to paint things properly, but for some reason I totally dropped the ball on the first paint of the back half:
This was a 2 day print at this layer height and I just decided I'd print another one and try again. But fear not, the goonery doesn't end here.
See, I posted that status about nailing portables together once I had determined what I wanted to do to add some physical stability to the case. The main design has nice curves and angles in order to pressure fit the controller flanks into it, but for both working on the unit and just adding some general stability, I decided to add some "nails" to some key positions between the main assembly and the controller halves:
These are from thumbtacks. I snipped the plastic off of them, then after hot gluing everything in place, pushed them into the plastic using the base of my iron at a lower temp, so that they wouldn't liquefy everything. Shortly after, I added epoxy and superglue in a few places; this is largely just to have some material filling any gaps. The "additive stability" approach here is not something I would recommend, but in this case it has produced an incredibly solid result. Because I have chosen insanity in my late-stage portablizing career, I did try both slapping and twisting the fully assembled case, and I didn't detect any breaks.
I did have to dremel this epoxy a little bit in order to get the cells to snap back in nicely. You can also see the insert for the single screwpost that holds the power board in place, as well as the outcroppings it sits against. Speaking of screwposts, here's what I came up for to hold the heatsink assembly in place:
The design was meticulously aligned so that the main plate was flush with the insides of the controller, so I hastily popped a screw hole in this section and cut out some washers. There's one on the other side as well. It'll do.
I also found this clearance to be amusing:
Eventually, the assembled power board arrived. We only built one, and not every component could be thrown on by the fab. Naturally, we hid Chunks on the bottom of it, who was also somehow on the last powerboard before he even came to exist in real life:
Part of the assembly of this was hastily done in a dark room with a headlamp due to our unfortunate time constraints, so once it arrived I cleaned it up a bit before it went into the unit. At this point it was time to see if I could call myself a real programmer, and...
...almost everything worked! The app gave us full access to the registers, so we were able to validate and verify that the PD controller was configuring the charger chip correctly, and we directly monitored the voltage so we knew it was being negotiated correctly, and charging because the SoC was accurate. Everything is on a plug too so the back half of the unit plugs into the front. If you look closely in the pic, you'll see a pig holding Ginger's shoulder button. Taking it away from him was the hardest part of the whole trip...
All that was left at this point was the final assembly. This unit features an absolutely massive internal 32GB drive, which we can connect to either the main USB-C port hub or the Wii via software. I went with it because I really only plan to use this unit to play with the Wind Waker pigs and that big one at the end of TP, since I have better devices for everything else. This drive also happens to be my "most stable" USB drive, which I figured might be a valuable advantage considering all the extra hardware/wires between it and the Wii itself.
You can just put things wherever it don matta
In a similar vein to how the heatsink was screwed into the case, the other last last-minute trick I used to attach the Wii to the heatsink was some garden wire, which runs between the fins of the main chunk of copper. I'm also still using the thermal pad that came with the M.2 heatsink. I would not recommend this method, but this is how we do things at minimum space when screwposts aren't really an option.
Don't look at my awesome wad of left controller wiring. I think I stuffed a little foam under the key points just for some added pressure but don't seem to have any pics. It's unlikely that it'll come off, but both the power board and the Thundervolt are monitoring temperatures and have thermal shutoffs, so if the board ever comes loose those'll keep it from burnin' up, but with how many wires are also holding it in place I'm certain something else would go wrong first.
I wasted no time with the first real close:
This is also probably the best pic I got of how the jewel lights up. Now it was time to move on to the supplementary stuff. After installing the two rumble motors, I sat down and in one session designed a dock, but before I could test print it, my extruder yeeted and so I had to reach out to a very special pig up in my biz for help with printing it. I lucked out and everything actually fit perfectly, and was even nice and level, which is important to me for the reason of "the bubble says I did a good job

"
After that, I tackled a few minor programming tasks. The RGB LED displays the current battery SoC by slowly fading in hue between green and red, and when completely full will cycle through the spectrum. Critical battery will flash red, and there's also a little lightning animation on power up, which then fades to the current SoC color. The raw button is also connected to GPIO, so a quick tap can be used to enable/disable the LED if it ever gets distracting. Here's a video of the animations:
I also have some overrides for when the thermals start to get close to the danger zone, which hopefully will remain unseen.
In preparation for MGC, I tested out the milk crate laptop display meta, and took a shot to cut out for the poster:
And thus, the WaveWider was reborn.
People seemed to like it. I had the advantage of being the closest unit to the doorway, so a lot of people were immediately interested in picking it up and trying it out. It ran for the duration without any problems, and made it there and back again in one piece, which rectifies the failings of its predecessor. Maybe now I'll have time to play with it. ( ͡° ͜ʖ ͡°)
This concludes our journey. I enjoyed this process and getting to see everyone again at MGC. You'd think after nearly 20 years I'd be bored of portablizing, but there was still a ton of magic to be found in developing this unit. Now, I must return to developing Ordinary Pig, but I do so with renewed strength and a stronger sense of purpose.
Still got it.