What's new

Worklog G-Boy Omega: The Ultimate Modular Wii Build

Joined
Nov 14, 2020
Messages
13
Likes
56
One thing I've always wanted when building a Wii portable is for a system with zero wires going between PCBs where possible. A system designed so that everything just plugs in via ribbon connectors, where all the relocations are done via flex PCBs. Ultimate modularity, replicability, and tidiness.

So that's what I'm making.

Introducing the G-Boy Omega: a build that I'm hoping will streamline portabilising by bringing together the work of so many amazing people and building on it with my own haphazard learning process lmao. More importantly though, it aims to add in a LOT of different features, including WiFi, undervolting, HDMI output, BlueRetro and more.
image-1.png

The above photo is where I got to with my mainboard PCB, months ago. Sadly, my PC broke, so I've not been able to work on the project at all. A lot has also changed in these months, including @YveltalGriffin and @loopj releasing Thundervolt! When I get a working PC, I will be redoing everything so that I can include it and Mjolnir, reducing a lot of the space utilised by the PMS2 and PD3 to allow for tidiness, integration, and more features.

As you can see, everything connects to external PCBs using FFC connectors. One thing that enables such sorcery is the InfinityFlex, a PCB I'm designing that utilises the work of @supertazon , @YveltalGriffin , @VoxelTek and @Omega47 , namely the FujiFlex, WiFiFlex, MXHound and OmegaFlex.
image-2.png

This flex allows for full relocation of everything you'd need, including WiFi, U10, NAND, and MX. It sends the raw AV data to the mainboard PCB, where it can be then be passed through the DirectDrive, U-Amp and GCVideo output for maximal video and audio quality.

Here's the logo on the board, thanks to @supertazon for letting me send him way too many variants:
image-3.png


I did consider a wraparound flex incorporating @loopj 's periphlex, but decided to keep it seperate to make for an easier-to-assemble flex. The wrap-around aspect could put undue stress on both sides, after all.

The build will utilise a dock, which will enable the following:
- BlueRetro integration (still figuring out whether to include this in the build itself or in the dock)
- Sensor bar
- Wired GCC passthrough
- HDMI out
- Auto muting of the internal speakers when docked (the screen won't do this as it would require reflashing the DD every time it's unplugged)

I did think about including remote on/off with this build, but decided against it as I want to utilise a power switch for powering the build on, and this would overcomplicate things for me. If I make a revision with a power button however, I'll include this feature.

The other features of this build will be:
- 4 battery cells, for maximal battery life
- (Hopefully) analogue triggers, probably based off the Wii Classic Controller's
- Most likely an OMEGA trim, although if I can somehow fit an OMGWTF in there for accessibility I will*
- Undervolting through Thundervolt, enabling even higher battery life and lower temps
- Laminated IPS screen driven through direct drive for peak picture quality
- Bluetooth audio (?)
- Volume slider for (imo) the optimal volume control style
- Rumble
- Spicy memes
- DMG-styled details like my previous builds
- All open-sourced, naturally

*I don't think this is likely because this photo of @Gman 's WiiBoy that had 4 cells utilised an omega (EDIT: an LMAO trim)too:
IMG_20160720_225234856_HDR_zpsq6eoym4w.jpg


The photos of this project are all outdated and I've since made changes anyway, but as I don't have a PC I can't access them. When I can, I'll update this worklog and then get obsessing into burnout to ensure this project is done by the end of the year if we're lucky Many changes already in my brain, looking forward to seeing it come to fruition!

I'll also make a "G-Boy Alpha" build available that is more beginner-friendly, but I'm not sure what the nature of that will be yet. I'm thinking it'll probably still utilise the PD3 and PMS2, and will work with a regular OMGWTF trim, just without the extra "console" features. This should mean it's a much simpler build at the cost of features, but that might be some people's jam.

Anyway, that's me signing off. See you next time!
 
Last edited:

Xenii

.
Joined
Feb 16, 2024
Messages
56
Likes
202
Location
Switzerland
Portables
Xii-Boy Original, Xii-Boy Pocket
This is so cool !
 

Stitches

2 and a Half Dollarydoos
Staff member
.
.
Joined
Feb 5, 2017
Messages
4,302
Likes
3,330
Location
Banana Bender Land, Australia
Portables
6
This looks sick!

One correction I can offer tho: The WiiBoy used a variant of the LMAO trim, a step between the traditional OMGWTF trim and the OMEGA trim. It allows for the careful "bending" of the NAND so you only have to rewire one side of it (not recommended anymore, we have flex PCBs now), and retains the AVE.
 
Joined
Nov 14, 2020
Messages
13
Likes
56
This looks sick!

One correction I can offer tho: The WiiBoy used a variant of the LMAO trim, a step between the traditional OMGWTF trim and the OMEGA trim. It allows for the careful "bending" of the NAND so you only have to rewire one side of it (not recommended anymore, we have flex PCBs now), and retains the AVE.
This is true! Thank you for the correction - I wrote this half-asleep just to hold myself accountable to actually finish the project ahaha

I've updated the main post to correct it too :)
 
Joined
Jul 31, 2022
Messages
69
Likes
93
Location
Oregon
It's beautiful a work of art! I also see an ESP32 on the board. It might not be used anymore but it would be cool to see it as a wifi or Bluetooth replacement! Love the work so far!!!
 
Joined
Nov 14, 2020
Messages
13
Likes
56
Welp, it's been a while. Not having a working computer meant that I've only just recently been able to pick this project back up. Since then, I've redone basically everything and have instead made the following changes:

- Soft power button using a MAX16054 IC. I chose this as it's a simple solution to providing power to Thundervolt, and it'll allow me to also integrate remote on/off. This was inspired by Y2K's PSXpress PMS, which I have also taken the base charging circuit from.

For more information on how the Wii does remote on/off, click here for LoopJ's explanation, but the gist is when you press the power button on a Wiimote for more than a second, the Bluetooth module sends a 3.3v pulse to the Wii. I used this and integrated a pulse extender in series with a logic inverter tied to the MAX16054, essentially just spoofing a button press when the Wii remote sends the signal to the bluetooth module.
1742504409263.png
1742504426331.png


- USB C Docking. This means I have forgone GCC passthrough in the dock, and instead have decided that I will rely on the internal BlueRetro ESP32 to be my external Gamecube controller solution. I will achieve USB C docking through YveltalGriffin's MelonHD project, with the video and audio for the external display being driven by GCVideo. The circuitry and schematic for this was ripped from YveltalGriffin's FujiFlex.

- Power Gating and MUXing. MelonHD has a GPIO output pin that indicates whether or not it has negotiated for the PD DisplayPort Alt mode. If this pin is high, the system has been docked, and the following changes occur:
  1. The internal GC+ and U-Amp turn off via power gating.
  2. The MUX switches the signal from the Direct Drive and U-Amp to the GCVideo IC.
  3. The GCVideo FPGA and BlueRetro ESP32 turn on via power gating.
This power gating is achieved through a simple circuit utilising MOSFETs:
1742505200332.png

The ESP32 and GCVideo are powered by HPD1 3V3 and HPD1 1V8, whereas the GC+ and U-Amp are powered by HPD0 3V3 and HPD0 1V8.

- Splitting the boards into bits. I decided to do this as it would work better mechanically within the build. It just makes more sense to have the buttons and screen at different depths in the build for optimal viewing and ergonomics. Likewise, splitting the triggers from the battery board allowed me to mount the Wifi module on the back PCB, as moving the battery board to a different depth than before results in more horizontal room. I have also split the front PCB into three, which I have dubbed the "screen board", "controller board" and "speaker board". This is akin to the original G-Boy, but the two smaller PCBs just connect to the screen PCB using FFC cables.
1742505379912.png
1742505428155.png
1742507979605.png
1742507993542.png

1742508042461.png
1742508062222.png
1742508182910.png

- Redesigning InfinityFlex. InfinityFlex was originally designed with a 4-layer Hollywood 1 "standard" Wii in mind ie. the typical type used for portable Wiis nowadays. However, with the knowledge that Wiis using Hollywood 2 chips run cooler and consume less energy, I decided I would center my build around this. I utilised board scans that @Lazr posted in the BitBuilt Discord Server in order to design this. I have gone through many iterations of this board, but I decided that it should have integrated FFC connectors on both sides, to serve multiple purposes. Namely, it lets me relocate everything else to different PCBs, and lets me control the impedance of the signals that are going to said PCBs. This is especially important for Bluetooth and USB in order to make them as solid and reliable as possible. With YveltalGriffin's help, I calculated the required trace width and spacing for these differential pairs on PCBWay's 0.13mm Flex Stackup, so in theory these lines should be rock solid.

1742505881261.png
1742505897924.png

I have maintained that there will be no soldered wires between modules, but I have also had a think and decided that this build will have to use 4 magnet wires total: 2 for Bluetooth, and 2 for i2C for Thundervolt. This is because it's simpler and easier to just solder these wires between the front and back of the Wii motherboard than to use an additional flex PCB.

InfinityFlex taps into the power lines of the Wii as well, and delivers said power to the front and back PCBs of the G-Boy Omega. This pairs nicely with Thundervolt, undervolting the entirety of the system (well, aside from the Bluetooth module because that runs off of standby +3V3 in this build). It also passes button inputs through to each side of the build (Z, Z2, L, LT, R, RT, and Power BTN). It effectively is the bridge that would normally just be a heap of other wires.

The only line that InfinityFlex doesn't pass from one half to the other is the VBUS pin for the charger, for this I went with a Pico Lock 1.5mm pitch connector that goes directly from the USB C port to the BQ chip that charges the batteries.
1742506149629.png
1742506207859.png


- Moving port and peripheral locations. I moved the USB C port to the bottom, which is a choice I made with the docking experience in mind. I chose this as, simply put: it's cooler to place the system down on a dock rather than plug the dock into the top, at least in my eyes. Style points gotta earn me something, right? Other changes include the headphone jack now being on the top left of the system, the MicroSD card now being externally accessible, and other small changes. The images you have seen today are anything but final: I haven't finalised placement of the smaller components nor started routing, but it gives an idea on how dense some of this design will have to be.

- Scope. In many ways, this has increased in scope: so much more automation through power gating and MUXing, much more integrated circuitry as opposed to using 4LT modules, USB C docking through one singular port, AND the screen will now auto shut-off when docked (yippee!). In other ways, this has decreased in scope: the 100% wire-free dream is dead (at least it is here: @Xenii has an amazing portable in the works that will deliver that dream) and I probably won't be including analogue triggers and bluetooth audio in this iteration of G-Boy Omega. But, I feel that other improvements will make this system well worth the build: after all, it's basically if a G-Boy had ridiculous battery life and docked like a Switch.

To be honest, I'm just really proud of the development of this project and how it's coming together. There are some special thanks I need to give before concluding though:

@Xenii has provided so much inspiration through the XiiBoy Ultra project, and I've taken some design cues from that and the XiiBoy pocket, namely the battery mounting mechanism and the integrated FFC flex approach.
@YveltalGriffin has been a font of knowledge and advice in this build thus far. I've asked so many questions and he's been patient and understanding and it's genuinely so immensely appreciated. The design of multiple parts of this build have been ripped straight from his designs.
@Y2K has designed multiple boards that have been adapted into this design (the PSXpress PMS being the main one), including also designing footprints for the dual tact switches and showing me his G-Boy remix boards ages ago which gave me a starting point for this design.
@loopj has been incredibly supportive, and helped me with getting my Bambu 3D printer which has been an incredible asset in designing this project.
@supertazon got me started on this whole G-Boy redesign journey to begin with. If not for him asking me to help redesign the G-Boy to include a glass lens all those years ago, idek where this project would be right now.

Finally, here's some shots of the system in my 3D slicer before I do some test prints:
1742507550113.png
1742507564107.png
1742507700574.png


There's a lot I wish I could have done with this worklog, namely going through the processes that took place to get the project to this point. If you have any questions or you've noticed anything you think could be improved, please don't hesitate to ask/let me know! Now, on with routing the 5 rigid PCBs! Wish me luck.

(EDIT: Removed redundant attached images)
 
Top