What's new

Worklog Summer Contest 2025 - GB Adwiince v3: Revenge!

RoseDagger

.
.
2021 2nd Place Winner
Joined
Jan 15, 2021
Messages
49
Likes
112
Location
Not quite socialist North Europe
Portables
GB Adwiince v2
Hi all! Back in 2021, I joined the BitBuilt community and tried my hand at portabilization with the GameBoy Adwiince v2. It even snagged 2nd place in the summer competition, despite the fact that the project crashed and burned on the very last day. I shorted the power supply during final assembly, and it never booted again.

Reminder for v2. I'll do a little retro in a next post.
GBAWii v2.jpg

Still, that project was what got me into electronics. I learned a ton, and even switched career from game development to now being a second-year electronics engineering student. I've worked on other projects, kept learning, designing my own PCBs, and yet I kept thinking back to the build that started it all. And I thought...
Revenge!
I want revenge!
I want to try again, with all the new skills I’ve picked up, and see how far I can push it this time.



The goal is still the same: cram a Wii into a GBA form factor with a 5" screen. Last time, I tried frankencasing, and while that was fun, constantly measuring, sanding, measuring, sanding, measuring, gluing, desparing when it didn't fit XP Final assembly was a nightmare no proper screw holes, nothing aligned, and everything needed copious amounts of glue which left a residue and was not strong enough, and it took up a lot of time I should probably have used on the electroincs side of things.

This time, I’m doing it simple: fully 3D modelled and printed. I can get it to look like I wanted to begin with, can prototype more, and can model in stronger better mounting solutions. Though I will not give up the colored translucent shell look from the original build, that 2000s GBA feel. So I'll probably ask a friend, or send it off to a company, to resin print the final version.



Where I really want to focus is on PCB design. Last time I just dipped a toe in, designing a simple backplane to make wiring easier. This time, I’m going deeper: I want to move as much onto custom PCBs as I can. Power supply, USB PD, BMS, you name it. I’ll be referencing open-source designs, modifying them, and soldering everything up myself.

It’s a big project, and I’ll be balancing it with work over the summer. But I think it’s going to be a really fun challenge, and if all goes well, I’ll finally get my revenge... and a working handheld this time. ^^

Wish me luck!
BitBuilt Entry Note.jpg
 
Last edited:

RoseDagger

.
.
2021 2nd Place Winner
Joined
Jan 15, 2021
Messages
49
Likes
112
Location
Not quite socialist North Europe
Portables
GB Adwiince v2
Retro on v2

Alright, time to revive a project that’s been marinating in a box for four years. Here's where I left off, what broke, and how I plan to actually make it work this time.

First off, it’s not in great shape. The back split open because the glue didn’t hold, I’m missing the shoulder buttons, some of the wiring has come loose... and yeah, it didn’t actually work. XP

1747423008923.jpeg

1747422949402.jpeg

1747422987340.jpeg

I’ll be tearing it apart to recover some components: USB PD, BMS, audio, and the GameCube controller PCBs. I’ll use those for prototyping, and maybe reuse them in the final version - unless I decide to make custom PCBs for those features, which is the current plan.

The goal is to design my own USB PD and BMS/power supply PCBs. I need to do that for another project anyway, so this is a great excuse to start. I’ll be relying on open-source designs and poking around a bit more before diving in. For audio and controller stuff, I’ll use open-source repos and look into how best to integrating them into my board.

Back to v2.

I put a ton of time into the case - rough cuts, sanding, fitting parts in by hand. I wanted it as small as possible, so I even carved into the corners to fit the screen. Next time, I’ll 3D print the shell and make the screen sit properly inside the case, but still keep it snug and within the GBA form factor.

I also hated the “double chin” at the bottom. I thought about grafting parts from a third GBA shell to smooth it out but ran out of time. This time, I’ll model it so the bottom either continues the curve or just flattens. Might print both and see what looks better.

1747423113220.png
1747423134719.png

Since the original GBA shell only had two buttons (A and B), I had to cut a hole and add another set for X and Y. I chamfered the opening to make a lip, so pressure transferred into the plastic instead of the glue. That actually worked decently.

1747423158511.png

But the buttons didn’t feel good. The GBA uses rubber domes on PCB pads, but I had to trim the rubber to make it fit, and that made them too soft. The PCB mounting didn’t hold the rubber down properly either, which made everything mushy. Plus, the whole d-pad and rubber setup was chunky and ate a lot of space.

This time, I’m thinking Joy-Con buttons. They’re low profile, need less support plastic, and are already meant for four-button layouts.

Now for the shoulder buttons - ugh. They were a pain. The design relied on the case fitting together perfectly to hold them in place, but the frankencase didn’t align well and the shoulder buttons needed more clamping force than the fragile case could give them. The buttons popped out early and disappeared during one of my moves.

1747423190286.png

1747423214504.png

I tried doing three-stage buttons to simulate analog input - unpressed, half, full. But getting the big GBA buttons to trigger tiny SMD switches was rough. Sometimes it didn’t register a full press, other times it got stuck. The actuation distance was just too short.

For ZL and ZR, I added extra buttons with long stems poking out of the case... not elegant. For v2, I’m stealing the Joy-Con shoulder design. Way easier, and now that I’m doing full 3D modelling, I can actually integrate them instead of glue-and-hope.

1747423235776.png

1747423265893.png

Thermals? I cut fan holes in the back, around the battery lid, and used the cartridge slot as exhaust. I’ll probably do the same again, but make the cutouts look cleaner and symmetrical this time.

1747423283767.png

Ports were kind of a mess. They didn’t line up well because I had to put them wherever the PCBs allowed. I had USB-C for power and a bunch of mini-jacks for GameCube controller output, component video, and audio. I thought about using the GBA-to-GameCube link adapter to combine stuff into one port, but ran out of time and just went with mini-jacks.

1747423594216.png

For this version, I might go with dedicated ports or try consolidating them into a single multi-port setup with a breakout add-on to reduce case holes.

I also slapped infrared LEDs on the bottom so it could act as its own Wii lightbar. Just for fun, really - but I’ll probably do that again. It’s cool and functional.

1747423725254.png
1747423744810.png

Let’s talk internals.

I made two main PCBs, one per side, connected by a ribbon cable. That let me mount buttons to each board on both the right and left, with the Wii motherboard sandwiched in the middle. One side had USB PD, BMS, and audio; the other had the GameCube controller PCB and the MX chip. Each PCB acted as both backplane and button contacts.

1747423788876.png

1747423887189.png

1747423822647.png

It was my first PCB design, and I’ve learned a lot since then. I’ll make new boards for this version - probably still two boards and a ribbon cable. One thing I liked was how they followed the shell shape and had cutouts for tall components like the display controller.

Now that I’m doing full 3D modelling, I can make stuff actually fit instead of measuring and eyeballing everything IRL.

One big screw-up on the old boards: I didn’t leave enough clearance between components. Pads were too tight, and spacing was bad. Worst offender? The BMS sat too close to the Z shoulder button and caused a short - ground from the button ended up connected to the BMS. This time, I’m being way more careful with spacing.

1747423934732.png

For the Wii, I didn’t go for the hardcore NAND relocation cut because I was depth-limited and didn’t want it pressing into the back shell. Still trimmed it a decent bit to free up space.

1747424007293.png

This time, I’m thinking of going full Omega cut - give up some depth, gain more room for the PCBs. We’ll see.

Main takeaway?

Proper 3D modelling, smart component layout, and clean mounting are going to be the biggest upgrades over v2. Last time, I was boxed in by the frankencase approach - stuck with whatever fit into two glued GBA shells, and couldn’t mount hardware well because I had to cut out the posts.

Now I can expand the shell where needed, use better buttons (hi Joy-Cons), and design proper mounts. I’ve got way more experience with electronics, soldering, and PCB design now, and that’s where I want to focus: making a custom power solution, trying out undervolting, and seeing how far I can push a fully custom PCB.

What comes next?

First up: sourcing a new Wii that I can cut.

Then comes figuring out components and specs. I found a 5.5” OLED display with thin bezels that I think could be really neat to use. It’s a phone display that runs over MIPI, but it comes with an HDMI driver board.
1747422354376.png

I’m also thinking of using Fujiflex by YveltalGriffin. It lets me ditch the AVE and do a more aggressive cut. I’ve even considered modifying it and adding an option to drive the MIPI connection directly from the FPGA using something like an SN65DSI83 or LT8912 bridge. That would let me drop the chunky driver board and all its ribbon cables and adapters. Still need to do more research there. Edit: MIPI is under NDA that I don't have access to. And the bridges I was looking at want FROM MIPI to flatlink. Not TO MIPI which the the display needs. It was an interesing investigation, but in the end I was just following a ChatGPT hallucination that seemed plausable before inverstigating it further.

For NAND relocation, I’m probably going to use something like nandFlex (also by YveltalGriffin), which is based on OmegaFlex by Omega47. That way I can go full omega cut.

Power-wise, I’m planning to design a supply based on ThunderVolt (YveltalGriffin again!) and handle battery management with a system based on RVL-PMS by Gman. I’ll also need to dig a bit into how best to handle USB-C PD.

For GameCube controller support, I’ll be borrowing from GC+ 2.0 by Aurelio92. Audio will be handled through Scampi, once again courtesy of YveltalGriffin.

Finally, I’ll start CAD work: finding files for the GBA shell and Joy-Cons, then modifying them so I can print a draft case and get a feel for the design in hand.

Massive thanks to @YveltalGriffin (mackieks on github) for the absolute goldmine of open-source projects, and especially for the reference list that helped me find so many of these. Also big shoutouts to @Gman, @Aurelio, ikorb (for GCVideo), and all the other amazing modders who’ve released open-source versions of their work. Being able to build on what they’ve done makes it possible for me to design my own PCBs that combine all of these features into what will hopefully be a pretty epic console.

Edit: MIPI is under NDA that I don't have access to. And the bridges I was looking at want FROM MIPI to flatlink. Not TO MIPI which the the display needs. It was an interesing investigation, but in the end I was just following a ChatGPT hallucination that seemed plausable before inverstigating it further.
 

Attachments

Last edited:
Joined
Jul 1, 2024
Messages
53
Likes
143
Location
https://maps.app.goo.gl/vCaAZtp5vGEjMX469
Portables
3
Very good, I love both doing and seeing crafts being done, I think there is no better feeling than taking something and building everything from scratch, especially the body, and before I forget Good luck! :)
 

RoseDagger

.
.
2021 2nd Place Winner
Joined
Jan 15, 2021
Messages
49
Likes
112
Location
Not quite socialist North Europe
Portables
GB Adwiince v2
Time for a little update. Highlights this round are trimming, and jumping into the PCB rabbit hole.

Wii and trimming

First off, got a new Wii, it was super cheap as the case was rather banged up.

1749766662785.png

1749766699103.png
1749766639791.png

Naturally, I quickly jailbroke it, and installed RVLoader.

Then the fun part of tear it down and sketching out the outline for doing a Omega trim. I also desoldered the components which might be in the way, including the NAND for NAND relocation, and the AVE. Though I’ll be using Fujiflex for HDMI instead of the original AVE and component video.

1749766767924.png

1749766790840.png

1749766816929.png

Rough cut time! Tried to be careful, cutting way outside my lines so that I could cut and sand inwards later. But… the Dremel accidentally hit some of the GPU traces. It seems like it was only the solder mask that got scuffed and exposed some of the copper. I don’t see any damage on the actual copper traces, but I will investigate closer with a microscope later. And potentially add some solder on the exposed copper to bridge any micro breaks if it turns out to be a problem.

1749766879333.png

1749766917179.png

1749766963288.png

Used to Dremel to sand in closer to the final outline. Another tiny scuff, but only on the grounding around on of the screw holes. Did the final sanding by hand before measuring the resistances, which were pretty much all spot on. Except 3.3v which was more erratic jumping around, but generally stayed about 10k~20k higher than the listed values for OMGWTF / LMAO. But seeing from other posts it seems like that should be fine.

1749767035583.png

1749767067325.png

1749767102032.png

1749767132346.png

1749767151060.png

Some comparison pictures to my previous OMGWTF trim. Damn it quite a bit smaller than I expected.

1749767214985.png

1749767339964.png

1749767359398.png

1749767403171.png

1749767425148.png

Display

The display also arrived! It’s a phone display with an HDMI driver board. It’s slightly larger than my previous EYOYO component screen, at 5.5” vs 5”. But at the same time it’s ultra-thin, with almost no bezels (It feels like it will snap if I look at it wrong, lol). And the picture looks decent so far, though I have not tested it with the Wii, or with games in general.

Display test. Only ran it for a short time to check that it worked.
1749767592950.png

1749767615857.png
1749767468551.png

1749767493522.png

1749767516104.png

Though the display comes with a really dumb adapter to go from the display connector to the FCC connector on the driver board. It has a weird 90-degree rotation, and makes it not fit at all which is really annoying. So, I might look at making my own adapter PCB, following the traces on the existing PCB, and reusing the components from it.

I also got this nifty HDMI to micro-HDMI cable, which is just two boards with HDMI to FCC and back. But I think I can just disconnect the FCC cable and slot in one from the GCVideo HDMI for testing. Though I’ll likely desolder the HDMI port, along with all other ports, and which ever power regulators I can from the driver board. And just solder on the HDMI, and voltages directly for a slimer fit.

1749767730415.png

1749767656281.png

PCB stuff (ThunderKILL)


Beyond that I also started looking at PCB design. First off, in my previous post I said I’d investigate if I could somehow output MIPI from the FPGA from GCVideo, or use a MIPI bridge, so that I could drive the display directly without the driver board/make my own driver board. Well, that seems like a dead end. I followed a hallucination that seemed plausible before I realized that the MIPI standard was under NDA. And that the bridge chips were FROM MIPI, not TO MIPI. So, I’ll be sticking with just using HDMI.

Otherwise, I did a lot of research on power, BMS, USB C PD, and a bunch of other things. Trying to figure out how much stuff can I cram into it. (The schematics in this post are just a draft/first version. I’ve not rechecked all the components or connections.)

1749767800881.jpeg


What do you get if you take the amazing fantastic, well balanced and well planned out Thundervolt, and try to make it overkill by squeezing too many features into one single board?

Introducing the ThunderKILL!
It has I2C regulated regulators like the Thundervolt, but now including 5V boost
Current monitoring on the 4 primary voltages
BMS
USB C PD
RGB led controller
Temperature and fan controller
Power button/switch handling
All in one compact package/Wii hat!
And more BGA chips to solder, yay!

1749767895495.png

1749767915687.png

I’ll have to expand the size of the board just a tiny bit to make it fit. I'm sure this is a great idea, does not require any major sacrifices, and there won't be any thermal issues from cramming this much onto the board. If only there was a warning somewhere by someone smarter than me, and with more experience… Ah well… It’s a fun project regardless of how it turns out.

BMS saga

So I spent a lot of time on the BMS section. I first found one charge controller that I thought, “Wow, this looks amazing, look at all the features, look at how powerful and good it is. Let me spend days figuring this out. Figure of merrit, expected power loss. Scavenging Digikey to find the most optimal components”. Then as I put it all into the schematic I went, “Wait… that a hell of a lot of components” Checked the pcb view… “Damn that would almost double the size of the Thundervolt just due to the BMS. Wait the RVL BMS wasn’t that big…”. Checked the spec sheet for the charge controller used in the RVL BMS…. Aaaaaand…. Realized the obvious. More features, more powerful, does not mean better for the job it is supposed to do. It just makes it more complicated without any useful gain in this case. Nevertheless, I found a much more suitable charge controller and implemented that instead.

My overkill BMS 1S-4S, Vin 3.5-24, 8A charging.
1749768082983.png
1749767989922.png
1749768044127.png

Reasonable 1S, Vin 3.9-18V, 3A charging.
1749768071860.png

1749768138813.png

1749768213390.png

Other pcb bits and bobs

Found this tiny nifty PD sink, I just need to implement a PD policy on the Tiny. Need to do more research to make sure I can do that and don’t need to go for a standalone PD sink.

1749768789603.png

1749768808025.png

1749768838856.png

Also some general bits and bobs from current monitor, temperature/fan controller, and led controller. They are “nice to haves” but are on the list of things getting cut if they don’t pan out during the layout.

Current sensing
1749768907742.png

5V boost
1749768950825.png

LED controller, and fan/temp controller
1749769002801.png

I2C address space
1749769048391.png

Have not started on reworking the Thundervolt layout to fit all the overkill features from the ThunderKILL. I’ll be double, triple, and quadruple checking the schematics to datasheets first. Then I’ll be looking at the layout next. Along with supporting PCBs for the controller portions, audio, hdmi mux switch, MX chip, display adapter board, and whatever else.

No case progress yet beyond downloading scans of the GBA and Joy-Cons to procrastinate plan with.

And that’s the current status of this GBAWii revenge build. Next up: layout time, side boards, and eventually some actual progress on the case, maybe, perhaps, possibly.

Anyway stay tuned, and as always, RIP my free time
 

Attachments

RoseDagger

.
.
2021 2nd Place Winner
Joined
Jan 15, 2021
Messages
49
Likes
112
Location
Not quite socialist North Europe
Portables
GB Adwiince v2
Time for another update!

First off, introducing the ThunderKILL. It's the Thundervolt, but 500% more overKILL.

1751399839427.png

(Do I have enough edge connectors yet?)
1751399851312.png

1751399861571.png

1751399871121.png

Specs:
  • I2C controlled voltage regulators for 1V, 1.15V, 1.8V, 3.3V, 5V
  • Current sensing on all of them, cause why not
  • USB-C PD input, into an eFuse for overvoltage, overcurrent, and reverse current protection. Is it overkill? Yes. Is it necessary? Probably not. Am I paranoid enough to add it regardless? Yes absolutely!
  • BQ charge and battery controller, with built in current sensing, cause why not get more current data. And a resettable fuse to the battery, cause again paranoid as fuck.
  • Temperature and fan controller, with a temperature sensor between the CPU and GPU to control the fan. And another sensor next to the charge controller, and a last sensor on the other side of the board between regulators, cause more data is fun.
  • RGB LED controller, cause RGB makes things go faster! And charge/status LED is neat.
  • And power button input, U10, and some jumpers for safe mode, and to set the power button mode.
Any suggestions on anything more I should add to make it more overKILL? I think the PCB is still visible on the left side XP
(Also, do you spot the lucky “easter egg” cat? He’s become a mandatory feature in all my designs.)

Next up: Front shell for the GBAWii3


Current iteration:
1751400130878.png

Comparison to GBAWii2:
1751400235184.png

Earlier iteration with Joycon buttons and D-pad:
1751400327153.png

Did a few iterations to get the rough placement of the display, buttons, and joysticks, and the overall shape of the console.

The original plan was to use Switch Joycon buttons and D-pad. But I hated how they looked and felt. Way too small for the console I was building, and didn’t fit the GBA theme. So I went back to my previous design, using original GBA buttons and D-pad. Placing the buttons on the same slant as the original, and then doubling them on top to get X and Y, creating more of a rhombus shape over the traditional diamond shape of all modern controllers. And so far I like to look and feel of that way more. Though I will adjust the exact positioning as I build out the depth and can get more of a feel for holding it.

Internals part 1: Display driver board

1751401005561.png

1751401107913.png

Option A:
1751401694631.png

Option B:
1751402033738.png

It's annoying how close I'm to placing the Wii and the driver board next to each other, instead of having to layer one on top of the other.

The driver board originally came with an adapter board to change between the connector of the display to FPC. And to add in OLED power. But it's positioned horribly, so I will need to make another solution.
  • Option A: Make a flex PCB which fits what I need it to do. The display connector on one side, fpc pins on the other so it can connect directly in. And the OLED power in the middle. It’s a simple redesign of just the adapter board, so that I can position things correctly. And is the most reasonable option.
  • Option B: The driver board is using a Realtek RTD2513A for HDMI to LVDS, and a POL8903 for LVDS to MIPI. I have the full datasheet for the RTD, and a smaller spec sheet for the POL showing pinout, footprint, and voltage data. That along with the original driver board, means I could reverse engineer it… And then just make my own driver board to fit the GBAWii3 perfectly without the need for the adapter board, and without the need to stack the boards. I’d have to reuse the components from the current board as you can’t buy the POL on its own. But it would give me full control, and I could nix anything on the driver board I don't need, like more power regulators, and audio.
But of course doing this would be a bit overkill, it's a 196 pin BGA chip, needs good impedance control for the LVDS and MIPI lines, and is a lot of work… So see you when I have a draft of that done XP

Internals part 2: Everything else


1751403215363.png

(Aren't my drawing skills amazing XP)

The Wii on the right on top of the back of the display.
The driver board on the left.
A USB C and mini HDMI ports between the wii and the driver board. I’ll put a HDMI mux on there as well to switch between internal and external. And a place to mount the microSD card on top, like a mini cartrage.
Right side controller PCB, for buttons, joystick, volume wheel, mini jack, audio controller.
Left side controller PCB for D-pad, joystick, power switch.
There will be an IR light on both of them to allow for motion controls.

I placed bluetooth, MX, GC+ and GC mini jack rather arbritratily, and they will likely move around as I get to those PCBs. Oh and I need to place the speaker(s) and rumble somewhere…

Final notes
I want the shell to be translucent like the OG GBAs and my previous attempt. I always loved being able to see the insides and the PCBs.
However, with the Wii mostly covered up by the heatsink, and the need for a LiPo battery somewhere, it could limit how much you actually see… Hmm it might be an idea to hide the battery under the driver board and under the middle PCB so that the driver board and middle PCB is still out towards the back. But we will see as I CAD out the design more.

Anyway that's all for now.
 
Top