Giving it another go and adding Bluetooth magic?

A project log for Game Link Online

Play your good old multiplayer Gameboy games over the internet!

Arno MoonenArno Moonen 02/15/2021 at 07:490 Comments

It's been a long time since I worked on this project. In the end I got a more or less working board (the hardware was okay, but the software still needed some tweaking), based around an STM32F042F6P6. However, along the way I realised a few things. First of all, I didn't really like the STM32 SDK. It was nice to get a quick prototype working, but when you had to get to the nitty gritty, then I felt it was getting more in my way than helping me. Secondly and more importantly, I didn't feel that a USB adapter would be the right way to go, looking at the devices I usually interact with. I also noticed that I had to take another close look at the signals produced by different types of GameBoys (and known clones, like the GB Boy), to make sure the hardware could handle it all. Finally, I realised (as I often do) I have way to many personal/side projects going on to give them the attention they need.

Top: monitor/sniffer to analyze the data between consoles; Bottom: last PCB I made for this project a while ago

To analyze the signals, I made the board on the top of the pictures. It's simply a board that can be placed between two consoles or my adapter and a console. It has some loops to hook up a logic analyzer or oscilloscope to and a third EXT port to hook up my USB adapter. The third port was meant so I could dump the data in real time to the computer (by running a special firmware on the USB adapter), so that I could analyze the communication of other GameBoy games in the future.

The board on the bottom shows the latest revision I made of the board. As you can tell, it could have been quite a bit smaller, but I had an existing plastic case that would fit around it, so I stuck to these dimensions. You'll also notice some tape and wire on the left, because I swapped the data lines accidentally in the schematic around the isolator.

As mentioned earlier, I don't feel USB is the way to go. I actually want to make a board that supports Bluetooth Low Energy, given that this is relatively easy to use in smartphone apps and more and more browsers are also supporting Web Bluetooth now.

Anyway, the reason I'm posting this log, is because I'm thinking about picking this project up from the shelve again. There's a couple of reasons for this: several people have asked me about the project in the meantime; I've been playing some Gameboy games again recently; Espressif announced some new, cheaper chips/modules that also support Bluetooth Low Energy, which I'd like to play with.

Unfortunately, I still have other projects going on as well, so don't get your hopes up just yet. This project is still kinda on the shelve, but I'll be sure to post another log if/when I find the time to actually start designing a new board around the new ESP32 modules.