Show HN: I built a handheld CHIP-8 game console to teach myself embedded systems
github.comA while back I wrote a CHIP-8 emulator (which is considered the Hello, World! of emulators and is more accurately a virtual machine since historically CHIP-8 was an interpreted language running on top of the COSMAC VIP to make game programming easier).
But a few months ago I got really interested in embedded software, so decided it would be neat to port my emulator to a STM32 MCU and design a console around it as a learning experience, since CHIP-8 never existed as a physical system.
I didn't know much about embedded software when I began, and even less about electronics, but I managed to write all the firmware from scratch and even designed my first PCB, resulting in a finished (though not very polished) handheld CHIP-8 console.
For those curious, the GitHub repo also has links to my dev blog about the project as well as a build guide.
Thanks for looking! The project was awesome, but please continue blogging about your future projects. The best thing about the write up was that it was refreshingly honest and forthright (about the stuff you knew and the stuff you didn't know) - which makes it very approachable! You might consider making a YouTube series on this ala Ben Eater's videos. I for one would definitely follow! I appreciate that! I'll admit I was hesitant to publish the blog series at first because I was embarrassed by how much my limited knowledge influenced my design decisions, but I'm glad to hear it might make embedded development seem a little less intimidating. I'll definitely consider turning it into a YouTube series when I get the time. CHIP-8 is splendid for anyone who wants to implement a simple emulator. Highly recommend it. I did it in one weekend as an exercise. Also, it is impressive how users/programmers on the home computer era got to great lengths to achieve compatibility and make the most use of the limited hardware available: AFAIK, one of the goals of CHIP-8 was to improve code density and so waste as little memory as possible. Another invention from the same era also worth taking a look is tiny-basic which I think you can even run on the Arduino and use its serial port with a terminal to get a fully functional basic computer. This is so awesome. CHIP-8 was my first big boy program and I have super fond memories of writing it, and Ben Eater has really convinced me to start learning the hardware stuff. Maybe I'll do this some day. Thank you! Yeah hardware is tricky (and I still have so much to learn) but there's something really satisfying about holding a thing you designed in your hands that pure software just doesn't quite give. This looks excellent! I'll definitely try to learn a bit of what you've done I'm making a similar project; a handheld Pico-8 console: https://github.com/DavidVentura/PicoPico/ although currently I'm stuck in the process of writing a half-working Lua-to-C++ compiler Nice work. You should check out electrical engineering and embedded tech. I hear that's a good field to get into around here. Thanks, and yep that's the plan! Just finished my freshman year studying computer engineering and hope to work in the embedded field when I graduate. Are you sure? Yes, if that's what you love doing, then you can easily find some good, well paid embedded jobs in the US that will give you a more than comfortable life, earning better than 90% of the nation. However, if your life revolves around chasing the next greatest TC, then embedded development probably isn't for you. Very impressive. It is awesome how accessible PCB manufacturing is nowadays. If only you could buy those fabled STM32s. :/ I've got about ten STM32F103 "bluepill" boards. I wish I'd bought more and kept them in their original packaging, when they were less than the price of a cup of coffee. Yeah I actually couldn't find any legitimate blue pills, I made this project using a clone blue pill which fortunately for the most part behaves exactly like a real one.