From a practical standpoint, [John] may be correct that his recent creation is the “world’s worst digital dash”, but we’re still oddly enamored with the idea of using a Nintendo Game Boy as a digital speedometer. Pulling it off meant interfacing the handheld with the vehicle’s CAN bus system, so whether you’re into retro gaming or car hacking, this project has something to offer.
Showing real-time vehicle speed on the Game Boy sounds like it should be relatively easy, but the iconic game system wasn’t exactly built for such a task. Its 2 MHz CPU and 160×144 pixel dot-matrix screen were every kid’s dream in 1989, but using it as a car dashboard is pushing it. To bridge that gap, [John] designed two custom circuit boards. One interfaces with the Game Boy, intercepting its memory requests and feeding it data from a microcontroller. The other processes the CAN bus signals, translating speed information into a form the Game Boy can display. [John] used inexpensive tools and software to read the CAN bus data, and used GBDK-2020 to write the software in C. His video goes in great detail on how to do this.
Months of work have gone into decoding the Game Boy’s data bus and creating a schematic for the interface board. Tricking the Game Boy into thinking it was loading a game, while actually displaying incoming speed data. The screen’s low resolution and slow refresh rate rendered it barely readable in a moving vehicle. But [John]’s goal wasn’t practicality — it was just proving it could be done.
Want to dive deep into the Game Boy? Have you seen the Ultimate Game Boy talk?
Much easier with a GPS module.
Which is sad because Z80 is perfectly capable of reading ABS sensors in a car and there would be plenty of CPU time left to drive the LCD.
You could at least interface the GPS module with the gameboy? That does sound like fun. I think the biggest issue will be the ceramic patch antenna. It’s been a long time since I held a GB cart but I think the antenna + PCB will be too thick? Not too mention pointing in the wrong direction…
Plenty of carts had “extras” hanging out, from rumble packs, batteries, to cameras
Well, the cartridge port is just a memory bus at a few MHz, might be non-trivial to connect to the GPS.
But the link port, that’s just an SPI bus, so that’s trivial to connect to other things.
I was thinking about possibilities for the link port as soon as I saw this project.
Not that I’m criticizing the approach this project took – it’s great! As an exercise in learning and hardware hacking, it’s cleverly done, and the video does a really nice job of actually explaining everything rather than being like “look i made a thing”.
But – I do wonder if you could dramatically simplify the hardware side by using the link port and an SPI-to-CAN module – something like the Microchip MCP2515, which seems to offer a fairly ideal set of features for talking to a gameboy (5v logic, programmable masks and filtering to select only the CAN messages you need, and built in send and receive buffers).
I’m not sure whether it would actually work – the gameboy’s serial link is very slow, the MCP2515’s buffers are tiny, and there are probably all kinds of other factors to consider – but you could use a very simple microcontroller as an intermediary buffer, or of course just use a CAN-speaking microcontroller to talk to both ends.
Or, as you say, it’d probably be quite simple to use a GPS module that speaks SPI. Or anything that can convert a pulse counter or other rotation sensor to SPI – that would even work with a “period appropriate” car from the late 80’s/early 90’s.
You would, of course, still need a cartridge ROM or flash cart to interpret and display the serial data, but those are off-the-shelf things.
Or you could cheat and use a gameboy advance, which supports much faster communication and can even receive and run simple programs via its link port – sure, it’s way more modern and powerful hardware, but the screen is still terrible, so maybe it counts?
What about GPS mice? An GPS mouse runs their serial port at 4800 Baud 8N1 (NMEA 0183 protocol).
Many older PDAs running on Windows CE or Palm OS interfaced with GPS module over serial connection.
Sure Link Port is very primitive compared to RS-232/COM-Port,
but maybe a soft-RS232 can be implemented or an external circuit can do the conversion?
The C64 had a soft-RS232 in kernal, too.
Could it be used to hunt Pokemon?
The pokemon hunt needs a camera overlay that the GB is far to slow to handle.
I bet he lives in New Jersey, and fights villains from afar.