Ninemu NUCube

The Nintendo GameCube was my first ever games console, and to pay tribute to the nostalgia and joy this iconic console brings me, I wanted to build a PC inside one.


One of the main goals of this project is to make it look and feel as much like an original GameCube as possible. This means re-routing the power-on and reset buttons, minimal cuts to the case and reusing GC components where possible.


I started the project by buying a transparent purple replacement GameCube shell, so I wouldn't have to butcher a perfectly intact original GameCube shell:

From here I started my research into small form factor PCs. Originally, I wanted to see if I could fit a mini-ITX form factor motherboard inside, but once I realised this would require extending the entire length of the case and making a whole bunch of cuts inside I decided that was non-negotiable. 


This lead me into the world of mini PC's and NUCs. I had no intention of building an extremely capable and powerful setup that could completely replace a desktop computer, as this will likely just sit inside my TV unit and be used for light emulation and some gaming and media streaming. I eventually settled on the Intel NUC8i7BEH. This PC uses the Coffee Lake i7-8559U processor which has a 2.7GHz clock speed and uses Iris Plus Graphics. Coupled with an Integral M.2 500Gb NVME SSD (Read: 3450 MB/s, write: 2400MB/s) and a single stick of Crucial 16GB 3200MHz DDR4 SODIMM RAM, this little machine should pack quite the punch for its size.


I brought an old GameCube listed as not working for spares and repairs so I could gut it for the jewel, a black handle, all of the original screws, and anything else I could salvage. A small part of my heart broke, tearing down this old GameCube to take the most useless components and discard the rest. But it had to be done. I then fitted some pieces into the new shell, transferred over the OG stickers (an essential step!) and made a cardboard cutout to represent the NUC motherboard so I could start planning where it would go:


Once the NUC arrived, I proceeded to tear it down and figure out exactly where it would go. With a steady hand, I carefully cut away parts of the shell using a hacksaw, making as few modifications as possible to position the NUC exactly where I wanted it. By some miraculous coincidence, two of the holes on the NUC line up perfectly with standoffs inside the shell which allowed me to mount the board as follows:

I then hacked away at the rear panel just enough to make the ports and motherboard fit. At some point I will design an insert that will be 3D printed to tidy this up, so I'm not worried about how it looks.

I intend on using the original GameCube power-on button to turn the PC on, however there is a slight problem. The documentation for the NUC states that the power on header must be pulled to ground for at least 50ms via a momentary SPST switch to turn the PC on/off. The GameCube switch is latching.

I needed to find a way to detect when the switch state changes, and use this to generate a pulse that will allow pin 6 to be pulled to ground (pin 8) for a defined time period.

To begin with I considered a more "analogue" solution. From my research, I learned that a resistor-capacitor network can be used as a dual edge detector. This can then be fed into monostable multivibrator (such as with a 555 timer) which can then drive a relay, optocoupler or other transistor to enable current to pass. After a bit of experimenting and not much luck, I posted my question on a forum where I received some great responses and help. I can't take much of the credit here, but this appeared to be one of the most promising solutions from my simulation:

Here is a breakdown of how it works:

  1. When the switch is closed, 5V is pulled down to GND via R1 and the upper capacitor/resistor/optocoupler network (C2, R3, R4, T2).
  2. When the switch opens, the current goes through T1 instead. Because of diode D1, the current is forced to travel through the lower capacitor/resistor/optocoupler network (R2, C1, R5, R6, T3) instead. 
  3. When the switch state changes, the capacitors discharge enough current to power the optocouplers. When they finish discharging, the voltage isn't sufficient to bypass R7 so it goes back to the steady-state pathway (the upper/lower networks on the left hand side) instead. 
  4. When either optocoupler is powered, current flows through R7 which powers T4. This then allows current to pass through R9 to relay SW2. The LED and 5V connection on the relay signify pins 6 and 8 on the NUC. 
  5. It is worth noting that the size of C1 and C2 have the most impact on the pulse length. R3, R4, R5 and R6 have some effect on the shape of the pulse. 

But, truth be told, I have no idea what I'm doing here and I'm well out of my depth. I decided to search for alternative solutions.

It was then that I learned about the infamous ATTiny85. I put together this in TinkerCAD:

And, surprisingly, it works! Here's the breakdown:

  1. The ATTiny85 is powered by 5V from pin 9. The switch is connected between any one of the GPIOs (pulled up via a 10k resistor, in this case PB5 is used) and GND.
  2. A second GPIO (here it is PB3) is connected to a 4N35 optocoupler. When the switch state changes, a pulse is sent by the MCU to the optocoupler. This allows current to pass from header pin 6 (illustrated here as a red LED) to GND. 
  3. The capacitors are for some basic filtering. Ideally, a 0.1uF cap will be placed close to the MCU's VCC and GND pins, and a 1uF cap close to the power supply.
  4. The ATTiny85 is programmed to do the following:
  5. The initial state of PB5 is recorded in a variable "lastSwitchState". PB5 is constantly monitored on a loop.
  6. When the state of PB5 is low and lastSwitchState is high or vice versa, a pulse is sent to PB3 for a set amount of time, then after this is done lastSwitchState changes.
  7. There is also a delay to programmatically debounce the switch.

I ordered some parts on Amazon, and with the wonders of 21st century next day delivery, began prototyping. I almost squealed like a little girl when this worked:

As long as I don't try to bring this to an airport, I should be okay right? 

I had some issues with my jumper wires disconnecting so I prettied things up a bit:

Now that the circuit appears to work, I began working on the PCB. I have never designed a PCB in my life. The thought of it was quite intimidating. A few painstaking days of working out how to design a PCB later, I had revision 0:

At first I decided to use an 8 pin IC socket to hold the ATTiny85 so I could program on the breadboard then transfer it across. But in hindsight this is a massive waste of space and adds no value. So I made some revisions:

With the addition of the lower left hand side female headers, I am able to program the ATTiny85 directly on the PCB. I'm not sure how I feel about using circular pins though, I'm more of a square pin guy myself. I have ordered a couple of these PCBs to start testing.


Regarding some of the other functions, I am going to be designing a custom USB hub PCB to replace the controller ports on the front panel with 4x USB 3.0 ports. The hub controller IC I will be using is the Texas Instruments TUSB8041. Power will be delivered to the board via the 1.5A USB port on the front of the NUC, and the other USB port on the front of the NUC will be used for data transmission. This is going to be extremely challenging and will require multiple revisions I expect, which will become very costly very quickly. I am a student, so as you can imagine, my income isn't exactly earth-shattering.


This project is a great opportunity for me to develop my skills as an engineer and become more well-rounded. Being able to work on mechatronic systems, combining electronics and programming with my existing mechanical engineering knowledge, will be extremely valuable to my future. I would greatly appreciate if this project could be sponsored so I can continue to develop my skills and see this project through to fruition. I would be more than happy to post a review or article about PCBWay to demonstrate how you have helped my project grow.


I look forward to hearing back from you!

Kind regards,

Jamie

Apply for sponsorship >>
13800+ Projects Sponsored
Apr 14,2024
1,120 viewsReport item
  • Comments(0)
  • Likes(0)
You can only upload 1 files in total. Each file cannot exceed 2MB. Supports JPG, JPEG, GIF, PNG, BMP
0 / 10000