Fresh off his PhD dissertation, Andrew Henderson decided turn his Beagle Entertainment System (BES) into a tiny SNES cartridge console!
I started with a design using some Adafruit component boards I had sitting around: the ILI9340 320×240 TFT LCD, a four-channel BSS138 FET line-level converter, and a DS1307 RTC breakout board. I spent some time breadboarding the setup, using Fritzing for planning. The plan was to provide a status screen for the console using the LCD, native SNES gamepad interfacing with GPIOs running through the BSS138 board, and a battery-backed RTC for games that had one in their original carts.
Featured Adafruit Products!
2.2″ 18-bit color TFT LCD display with microSD card breakout; This lovely little display breakout is the best way to add a small, colorful and bright display to any project. Since the display uses 4-wire SPI to communicate and has its own pixel-addressable frame buffer, it can be used with every kind of microcontroller. Even a very small one with low memory and few pins available! Read more!
4-channel I2C-safe Bi-directional Logic Level Converter – BSS138;Because the Arduino (and Basic Stamp) are 5V devices, and most modern sensors, displays, flash cards and modes are 3.3V-only, many makers find that they need to perform level shifting/conversion to protect the 3.3V device from 5V.
We do have some other handy level shifters in the shop, from the DIP 74LVC245 to the fancy bi-directional TXB0108. However, neither of these are happy to work with I2C, which uses a funky pull-up system to transfer data back and forth. This level shifter board combines the ease-of-use of the bi-directional TXB0108 with an I2C-compatible FET design following NXP’s app note.
This breakout has 4 BSS138 FETs with 10K pullups. It works down to 1.8V on the low side, and up to 10V on the high side. The 10K’s do make the interface a little more sluggish than using a TXB0108 or 74LVC245 so we suggest checking those out if you need high-speed transfer.