Settings

Theme

Show HN: I built a handheld CHIP-8 game console to teach myself embedded systems

github.com

128 points by kurtjd 3 years ago · 13 comments · 1 min read

Reader

A 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!

marai2 3 years ago

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!

  • kurtjdOP 3 years ago

    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.

marcodiego 3 years ago

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.

koromak 3 years ago

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.

  • kurtjdOP 3 years ago

    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.

deivid 3 years ago

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

formerkrogemp 3 years ago

Nice work. You should check out electrical engineering and embedded tech. I hear that's a good field to get into around here.

  • kurtjdOP 3 years ago

    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.

  • amelius 3 years ago
    • ChuckNorris89 3 years ago

      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.

unwind 3 years ago

Very impressive. It is awesome how accessible PCB manufacturing is nowadays.

If only you could buy those fabled STM32s. :/

  • Gordonjcp 3 years ago

    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.

  • kurtjdOP 3 years ago

    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.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection