A ESP32 based handheld gaming system, games go on cartridges with option for external periphery, low-res greyscale OLED, pretty good audio.

Similar projects worth following
A handheld game console i've been working on for a while. The reason i started working on this project is that i want to make games but operating systems are complicated and annoying to work within, i can't draw very well and handheld consoles are cool but i hate how all mainstream consoles are user and hacker hostile. i also don't like how sub pixels become a lot more visible at lower resolutions so i decided to have a clean grey scale instead of millions of kind of odd looking colors.

The display is a 1,5" 128x128 OLED with a 4 bit greyscale and a maximum refresh rate of 120 fps(or at least that's what i remember the datasheet from the panel manufacturer said something about 105 fps, i think the 120fps are from the controller manufacturer though the 105fps might just be the default).

The external flash memory of the esp goes on a cartridge. the cartridge also has an unused spi bus/jtag interface, the spi bus also used by the screen and 3 gpio pins.

The standard cartridge has a second larger flash chip in addition to the bootable attached to the display spi bus and a gpio pin for chip select which i intend to use mostly to store sounds and music.

The music is being played over a WM8524 i2s dac and amplified by a CMOY amplifyer circut powered by a high frequency +-15v boost converter/inverter.

the controls consist of a low profile joystick(no part number the adafriut/aliexpress one for though-hole mounting) and 5 buttons.

the headphonjack can also output composite video.

the console has an integrated usb serial converter for on the go development.

the battery is user replaceable with a screwdriver and the console uses np-bx1 sony camera batteries for long availability.

  • initial log

    Eris06/12/2020 at 00:04 0 comments

    So this is where im at:

    I've built a couple of prototypes, one of which i got working at some point. intend to upload pictures of the pcbs at least considering i've either scrapped or misplaced the assembled versions.

    At first i tried to have the games on sd cards and have the esp update itself and i got it somewhat working but never reliably. There were also some reliability concerns with constantly overwriting the internal memory over and over and it considerably stretched boot times so i switched to the current model of just having the bootable flash itself on the cartridge. this version used a simple laser cut case out of acrylic and wood.

    The first working prototype used a lot of external pcbs, taking up a lot of space and causing problems with wires tearing and possibly pcbs shorting each other but it proves the trace length required to put the flash on cartridges and dual layer pcbs aren't a problem. for this version i used a 3d printed case made in blender which was a huge pain in the ass because slicers (both cura and slic3r though predominantly cura) constantly misinterpreted the geometry.

    The current version is pretty far but i still need to populate the BOM to be able to get the pcb manufactured, it has all the logic on one pcb with a small daughter bord only serving as a battery holder.

    I ran into a bit of a problem with component sourcing because the display i want usually gets sold with a flat flex cable there are no connectors for, most manufacturers using this display simply solder the flat flex directly to the pcb but because i don't want that there is only one vendor i've found so far i can source the panel from.

    Another component i have had some trouble finding a source for is the coaxial n.fl cable connecting the esp to the board antenna, i think the standard for this sort of application is the u.fl connector, however because i have to optimize component height to fit the length of the flat flex from the display this is too tall and because to the best of my knowledge only hirose makes n.fl cables and because they have renewed they're lineup it'll take until some time in august for me to obtain it.

    On this version i also switched to openscad to design the case which while initially a bit more complicated to work with makes it a lot easier to make slight revisions and have all the parts automatically adapt to the change and spits out clean stl files that i've never had trouble slicing.

    PCB wise i'm done except for two points:

    1. I'm not sure the speakers(CMT-7525-80-SMT-TR) are going to work with negative voltages given they're datasheet oddly mentions polarity and no voltages below GND.

    2. Though i kind of want to stop adding features im trying to come up with a circuit to make the console work on 5v usb without battery because phones not being able to do this always annoys me.

    To populate the BOM i intend to write helper programs for KiCAD to pick parts faster and more comfortably edit all instances of a part because while this might take more time than doing it by hand now if i keep designing pcbs like that that will get tedious and id much rather work on that a bit longer than populate 65 BOM lines by hand.

View project log

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates