Game Boy (SameBoy) Emulator

The Game Boy and Game Boy Color sold over 118,000,000 units during their decade-and-a-half reign, but in case that weren’t enough, emulators like SameBoy allow you to play games like Tetris and Pokémon Gold and Silver on your Linux, Windows, or macOS device too.

Emulating a several-MHz 8088/Z80 hybrid on several-GHz computer with gigabytes of RAM is one thing, but what about on a microcontroller? Could the Teensy 4.1’s 600 MHz Cortex-M7 and 8MB PSRAM handle this task? That’s what Ryzee119 aimed to find out with their SameBoyT4 port of the highly portable SameBoy code.

The hardware consists simply of a breadboarded PSRAM’d 4.1 with USB Host Cable and an inexpensive 320×240 ILI9341 TFT LCD display. This simple hardware stack affords support for many (but not all) SameBoy features, including loading ROMs and saves from the SD card, use of Xbox 360-style controllers, and audio. Performance is described by the developer as “not quite perfect, but pretty good in some less demanding games!” Grab the code from GitHub and the handful of parts required to make your own, and let us know what you think, as well as which games you play!

MCL65-Fast Apple II Accelerator

We love Ted Fried  drop-in CPU replacements for retro systems. MCL65-Fast is a little different, however, in that rather than simply emulating the Apple II’s 6502 CPU.  Arduino code runs directly on Teensy 4.1 at 800MHz+, with access to all of the device’s peripherals and slots.

In order to interact with the Apple’s video and keyboard, Ted implemented custom printf(), and scanf() functions, effectively abstracting away the legacy hardware to work like “normal” C. In the video below, a demonstration of a countdown program is shown first in cycle-accurate mode, taking around ten seconds, and then running directly on the Teensy, outputting the sequence to the Apple II’s display almost instantly. What would you do with an 800MHz Apple II? Check out the source on GitHub and find out more about the project on Ted’s blog.

Linear CCD Suite

DrM is a prolific creator of charge-coupled device (CCD) digital imaging projects, and the latest is a full-featured linear CCD suite with an $80 BOM cost that provides capabilities comparable to commercial instruments that might cost thousands of dollars.

On the hardware side, the Teensy 4.0’s 12-bit ADC is paired with the Toshiba TCD1304 linear image sensor, with a full-featured firmware sketch including trigger, gate, and clocking functions.

A companion Python Class library provides a command line interface for control and data collection, as well as real-time graphics. KiCad files, firmware source code, and the Python controller can all be found on GitHub, along with examples of using it as a spectrometer and for measurement of spectral-spatial-dynamics in an OLED. The output of using the sensor to record the time evolution of the spatial distribution of light produced by an OLED is displayed below.

CTR2 – Ham Radio Human-Machine Interface

Lynovation picked the Teensy 4.1 and Audio Adaptor Board as the basis for their CTR2 (“Control The Radio Too”) Human-Machine Interface for controlling up to 16 ham radios and eight antennae.

CTR2 is a standalone remote touchscreen display, with built-in DSP audio processing, FFT display, a rotary encoder for input, as well as USB audio, mouse, and keyboard support. More information can be found at lynovation.com, or in the ARRL’s September/October 2021 QEX magazine.

Conway’s Game of Life Note Generator

Expensive Notes has been using Novation Launchpad USB Ableton controllers in a novel way, connected to a Teensy 4.1 via USB Host rather than using the intended DAW.

The Launchpad becomes a large 8×8 RGB LED “screen” for the Teensy, as well as an input device, while the Teensy can interface with other devices over MIDI. And in this particular example, rather than sequencing or performing with the Launchpad, notes are controlled by Conway’s Game of Life cellular automata simulation algorithm.

The connected Korg Volca Bass and FM receive notes based on cells dying and being born respectively. The game can also be re-seeded with new cells in order to alter the pattern. MIDI clock is sent to all connected devices to keep everything in sync, including a Volca Drum. Hear the automata in action in the video below!

DIY VR Controllers

Shiny Quagsire (Max Thomas) chose an extremely ambitious project for his high school final project: rather than creating something using the many VR hardware solutions out there, he decided to create his own VR controllers from the ground up.

The eventual solution utilized a Teensy 3.2 with TDK MPU-9250 nine-axis gyro/accelerometer/compass sensors, in a PlayStation Move-like form factor, but using infrared.

The initial attempt used pure IMU data, which proved infeasible due to poor sample rates and accuracy. Switching to a camera and LEDs whose position could be triangulated improved things, but what proved superior to this was diffusing IR LEDs via styrofoam spheres and using the resultant 2d circle to determine X/Y position, and its size to approximate Z. The entire journey can be relived in detail on Shiny Quagsire’s Tumblr, and the source code and STLs can be found on GitHub.