John Cronin's STM32-Powered gk Handheld Shows Just How Powerful Modern Microcontrollers Are
STMicroelectronics' STM32H7S7 drives this capable handheld, running native PC games including Doom and Quake and emulating consoles too.
Developer John Cronin has demonstrated just how powerful modern microcontrollers are — by using an STMicroelectronics STM32H7S7 to drive a handheld console capable of running arcade, PC, and eight- and 16-bit console games: the gk Handheld.
"gk is a small, battery powered handheld gaming console running on an MCU [Microcontroller Unit] (STM32H7S7) running at 600MHz coupled to 128MiB of XSPI SDRAM," Cronin explains. "It has a 640×480 pixel 24-bit colour touchscreen, audio output (headphones/built-in speaker), accelerometer/gyrometer for tilt detection, USB interface for provisioning, and Wi-Fi network support."
Looking like a chunky Nintendo Game Boy, albeit one with a full-color screen, both analog and digital movement options, and four fire buttons, the gk Handheld showcases just how far technology has come in only a couple of decades. While STMicro positions the STM32H7S7 powering the gadget as a microcontroller, it's considerably more powerful than the processors powering desktop PCs and games consoles of 20 years back — powerful enough, in fact, to emulate them.
Cronin has tested the device running emulators for the Atari Lynx, Sega Master System, Nintendo Entertainment System (NES) and Super Nintendo Entertainment System (SNES), and even the Nintendo Game Boy from which its housing was inspired — with simpler games running at a full 60 frames per second, and more complex ones running at 20 frames per second at a minimum.
The microcontroller's not just capable of emulation, though: Cronin has tried a range of native game ports for the chip, including arcade titles like Pac-Man and PC games including id Software's Doom and Quake, Descent, and Command & Conquer: Red Alert. All games can be selected using an on-board menu system.
Cronin has released design files and source code for the project on GitHub, under an unspecified license.