Close
0%
0%

Synapse-191

Breadboard implementation of a Brainf*ck computer.

Similar projects worth following
Inspired by Ben Eater's 8 bit processor, I have designed and implemented a breadboard computer capable of executing Brainf*ck natively. The computer is based on 7400 series logic chips, 8K program ROM (for a maximum of 16K instructions) and 64K of RAM. See the project's Github page for extensive documentation and supporting software.

Goals

The main goal of this project was to build a computer that can actually run Brainfuck (BF) code natively. The computer was to be implemented entirely on breadboards, inspired by Ben Eater’s 8-bit breadboard computer. It should be able to run any compliant BF program directly, as long as it fits in the program ROM and does not exhaust the available amount of memory or stack-space. The computer should be capable of exectuting each of the eight BF instructions without any preprocessing steps like pre-calculating jump-addresses.

Results

  • Supports up to 16K Brainf*ck instructions in program memory. Multiple BF programs can be stored on the same EEPROM chip; the desired slot can be selected at runtime.
  • 64K-cell data tape (8 bits per cell) with 256-cell stack (16 bits per cell) for loop-address storage.
  • Advanced I/O system supporting:
    • 4x20 character LCD display
    • PS/2 Keyboard input
    • Random number generation
    • Multiple output and input modes (ASCII, hexadecimal, etc)
    • Program slot selection.
  • Adjustable clock frequency from single-step to ~250 kHz.
  • Live frequency display showing both clock rate and executed BF instructions per second.

Full Report

Extensive documentation is available through the project's Github page. 

Demo's

The video's below were filmed in an earlier stage of the process and show a bit outdated version of the computer.


  • Power On Reset

    Joren Heit11/19/2025 at 17:44 0 comments

    A small but useful addition was implemented today. I used to have to reset the system after powering it on to bring it into a valid starting state. Now, the system is automatically reset when powering on. A short pulse is generated by an RC-circuit connected to the input of a Schmitt-Trigger. When the capacitor charges up, the trigger is pulled low for a short while, emitting a high signal to the reset line (through an OR with the manual reset signal). When the capacitor has charged sufficiently, the trigger goes low again.

    The documentation on github has been updated.

  • Upgrade: Program Slots

    Joren Heit11/17/2025 at 09:37 0 comments

    Previously, only a single program could be loaded into the program ROM. A recent upgrade allows the user to write multiple BF programs to the same chip. The IO module's menu-system can then be used to select the desired program-slot. From a user perspective:

    1. Rather than providing the assembler with a single BF-file, you can now provided multiple files. You need to keep track of the order in which you provide the files: the first program will be stored in slot 0 and so on. The resulting binary can be flashed onto the program EEPROM and be inserted into the system.
    2. You power on (and reset) the system.
    3. From the IO-module's menu, you select the program-slot and reset the system again.
    4. After initializing its memory, the system will skip to the start of the program that you previously selected.

    Details on its implementation will soon be available in the full documentation on Github.

View all 2 project logs

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