Gameboy macro RGB Light bar

tl;dr

Ive always wanted to do a Gameboy macro with a RGB (ws2812) LED light bar. I have built one in the past but I had no way to control it so I wanted to fix that. I like the idea of the Gameboy mods that are controlled via capacitive touch and wanted to get in on the action. Join me below as I got over the pitfalls in my journey.

Hardware

Bad touch

I had to use the Attiny85 for this build because it was going to be really tight on space inside the macro and I already knew that the FastLED library working on it. My first thought with how to control this mod with touch came from working on the Gameboy camera flash build that used a TTP223-BA6 chip, My thinking was use this chip to turn it on and off then use CapacitiveSensor library to toggle the different colours. So I designed and send out a board, that came back but I couldn’t get the CapacitiveSensor library to work, I think my copper pads were too small and I couldn’t increase the size ether.

I did some more testing and found that if i started the colour strip on black I wouldn’t need a touch chip to turn it ON/OFF also I found that you can hook up the TTP223 chip to a Arduino pin and it acts as a button press. You had to use the TTP223 in non latching mode for this.

Now I had all this sorted that out I need somewhere to place the touch sensor, I was going to put it above the D-pad but then I seen there was a nice gap in the left hand side of the light bar where the top screen ribbon cable used to go, It worked a treat and wouldn’t get accidentally triggered ether.

The strip

As I said before I had already made a macro but It wasn’t controller-able like this one is, I found some 2020 ws2812 LED strip that were small enough to fit in the light bar. I designed a 3d printed light bar that had a slot to slide the strip into and hold it in place. I connected the strip to the PCB with some 0.25mm/30AWG solid core enamel wire this is just to save space because it needs to go under the battery and then under the DS cart slot. Solder it to the pads on the PCB.

Position

Originally I was going to have 2 touch points, One for on/off and another to change the colour. I did think to put them ether side of the screen just below the hinge bar but when I moved to just using one I knew I had to put it in the hinge bar where the ribbon cable normally went and it was out the way of accidental touches.

Code

I asked ChatGPT for some help on this project, It did spit out some code but I had to wrangle it to get it to work but it was a good start. I’m using the FastLED library because it runs on the limited resources of the attiny85 and there are loads of example code out there to pull from. I could only get it to display solid colours. I couldn’t get any animation to work, I’m hoping to sort that in the future.

Files

https://github.com/facelesstech/attiny85_ws2812_touch

Video

One response to “Gameboy macro RGB Light bar”

Leave a comment