What is it?
A educational tool for working with and learning assembly language and machine code, and learning a bit about computer architecture at the "bare-metal" level. It fits in your hand, is programmed with a set of push buttons, has an LCD display for examining memory and registers, and even has a built-in disassembler for showing you the assembly language corresponding to memory contents. This provides a relatively gentle introduction to low-level programming, but is also fun for those already familiar with assembly language and machine code. The board is self-contained -- no way to interface it to anything outside of itself -- but for working with the software (including playing with interrupts!) it's a handy platform :)
Status
Currently shipping through Lectronz :) You can follow more project updates on About Page.
Video updates and other related videos available on YouTube.
Documentation
The main website is touchmetal.org. The instruction manual is available as a free download.
Why did I make it?
Computer Science is increasingly detached from the low-level aspects of the underlying CPU/memory system. With vibe-coding, this detachment is absolute: **you don't even need to understand much about the *higher-level* aspects of the system**. This board is an attempt to help people re-connect with those lower-level aspects. With the Touch Metal board, you examine and modify memory one byte at a time, by typing in addresses and data in octal (using 8 push buttons). After entering your code, you can single-step the CPU, examine registers and memory, and really see what the CPU is doing as it executes your code.
I'm hoping this will be a fun, entertaining and educational toy for people who want to know more about how computers work: a chance to "touch metal."
What makes it special?
This is a custom CPU architecture, designed for education. It has a simple instruction set; relatively few addressing modes (it favors direct memory access, though it also has internal registers and supports memory-indirect addressing); and the coding of instructions in machine code is very clean, breaking on octal-digit boundaries, which makes it feasible to assemble code in your head (especially with the handy assembly-to-machine code map on the back).
Other features:
- It's powered by a USB-C cable (included with every board!)
- It fits in your hand.
- The display is small (but can be made a bit larger to be easier to see).
- It allows you to store 4 programs in non-volatile memory, so you can re-run your favorite programs without having to toggle them in each time.
- The website has various resources available, including an assembler (when you want a break from assembling by hand!), as well as an emulated version (if you suddenly get the urge to do some machine-code programming but forgot your board at home).
- The hardware and software are open-source (CC-BY-SA)
AI Notice
No AI (including auto-correct, grammar suggesting software, AI-assisted search, vibe-coding, AI overviews, etc.) was used in the creation of any aspect of the Touch Metal project. All bugs, mistakes, typos, oversights or "hallucinations" are entirely my own! https://real-i.org
Nick
Nicola Cimmino
rogerdipaolo
chmod775