Close
0%
0%

Bare Metal Microprocessor Board

A small 8-bit microprocessor for education/fun, with front-panel controls and an LCD display.

Similar projects worth following
154 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 (see https://zarasawa.org ).

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

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

mainBOM.csv

Bill of Materials

Comma-Separated Values - 662.00 bytes - 05/31/2026 at 18:30

Download

View all 10 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 project log

  • 1
    Building Your Own

    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