Close
0%
0%

Bare Metal Microprocessor Board

A custom 8-bit microprocessor for education/fun, with front-panel controls and an LCD display for simple analysis of system state

Similar projects worth following
335 views
0 followers
The Touch Metal board is an 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 :) Also available fully-assembled from Lectronz and Tindie (see https://zarasawa.org).

Status

Currently shipping through Lectronz and Tindie  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."

Bare Metal Programming!

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.
  • Though the default display has a very small font, you can cycle through larger display modes that are easier to read.
  • 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

Lessons.pdf

Book of Practice Problems (draft).

Adobe Portable Document Format - 1.72 MB - 06/09/2026 at 03:57

Preview

all.pdf

Main instruction manual

Adobe Portable Document Format - 22.52 MB - 05/31/2026 at 18:32

Preview

Programmers Card Both.svg

Programmer's Quick Reference Card

svg+xml - 8.25 MB - 05/31/2026 at 18:32

Preview

Programmers Card Both.pdf

Programmer's Quick Reference Card

Adobe Portable Document Format - 8.64 MB - 05/31/2026 at 18:32

Preview

gerberfiles.zip

Latest Gerber files for PCB

Zip Archive - 1.49 MB - 05/31/2026 at 18:30

Download

View all 11 files

  • 1 × PCB gerberfiles are in the Files section
  • 1 × SSD1306 0.91" I2C OLDE Display
  • 1 × FT231XS USB Interface - SSOP20
  • 1 × USB-C Socket 12402012E212A_AMP
  • 1 × PIC18F27K42-I/SS PIC Processor - SSOP28

View all 11 components

View all 4 project logs

  • 1
    Building Your Own

    Here's a long video showing my unsophisticated build process for one board:

    This assumes you already have a board and the parts, and can program the PIC chip once it's on the board. I'm considering selling this in kit form, with the PCB and all necessary parts, including a pre-programmed PIC chip. If this might be interesting to you, let me know in a comment for send me a private message.

    It's mostly a very straightforward build: 2 SMT chips, the USB connector, a few 0805 and 0603 pieces. The LCD display is a 4-pin connector. The 16 push buttons are easy to solder; plenty of space between them.

    The hardest part for me is the SSOP-28 PIC chip. I'm used to SOIC layout, which is twice the spacing between pins. I kept munging the soldering and thought I was just out of practice! Solder paste works well; so does a lot of flux and careful solder placement with a hand iron. If the feet of the pins bridge it's not too bad; if the legs bridge, things get bad quickly.

    Programming the PIC chip is likely the most difficult piece unless you already have a PICKit setup. If I sell this in kit form the PICs will be pre-programmed of course. If you're doing this yourself, use can use the 6-hole header to program the PIC.

    From a standard PIC programmer:

    • pin 1 (on the left/labeled) - MCLR
    • pin 2 - Vcc
    • pin 3 - Gnd
    • pin 4 - ICSPCLK
    • pin 5 - ICSPDAT
    • pin 6 - unused

    The MPLAB-X files are available from GitLab

View all instructions

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

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