Skip to the content
2 layers103.6 × 74.9 mmIo i2c, the printed circuit board in 3D

Debugger/Monitor for small "computers"

Size
103.6 × 74.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
60
Nets
91
Pads
290
Tracks, vias
639, 65
Pours
1
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
15 Mar 2016
Updated
31 Oct 2026

Overview

Io i2c is an open-source printed circuit board by palazzol, from the palazzol/demon repository on GitHub. It is a 2-layer board of 103.6 × 74.9 mm with 60 parts on 91 nets, routed with 639 tracks and 65 vias.

It is built around the 74HCT125PW, 74HCT138D and 74HCT74D. Its parts include 19 diodes, 13 connectors, 9 resistors, 6 ICs and 5 capacitors. It belongs with the interfaces and adapters boards and the AVR (ATmega, ATtiny) boards of this library.

Main components

3

README

README.md

Demon Debugger system - 2.0 coming soon!

Debugger/Monitor for small "computers"

RevD Photo

Vintage Computer Festival Midwest 17 - 2022

Important Note

We would like to port this to more systems, and/or help others fix their old things. Please let us know if you need any help getting this system going, should you choose to give it a try!

Newly added

  • 68HC11 Reference Target - used for Chuck E Cheese Cyberamics computer

New in version 2.0

  • No EPROM programmer needed, reflash through USB serial
  • New CPUs supported
    • 6800, 6809
  • New targets supported
    • MicroProfessor-1 (Z80 trainer)
    • Heathkit ET-3400(A) (6800 trainer)
    • Heathkit ET-3404 (ET-3400(A) + 6809 adapter) (6809 trainer)
  • GUI client
  • Python API (alpha) for automating control of targets
  • Modularized target code, less work for supporting new targets

Description

Demon Debugger is a tool that can be used to repair and reverse-engineer devices with 8 and 16 bit CPUs, such as arcade machines, console games, embedded computers, single board computers, etc. It provides a debugging console, and so is especially useful for systems that lack a working one.

It has been ported to Z80-based, 6502-based, 6800-based, 6809-based, and CP1610-based systems. There are ports underway to other CPU architectures.

Unfortunately, Demon Debugger can't be used on a totally broken system. The target system must have a working CPU, and at least a small amount of ROM and RAM. However, we have found that for most hardware, it's really not too hard to get a system to this point.

How it Works

In ROM I/O mode, The Demon Debugger board cable plugs into a socket on the target system, in place of a standard JEDEC ROM/EPROM chip. Then, your PC can communicate with the target over serial, using a standard USB connection.

If your target system is already supported, there will be a target image already built, which you can upload onto your target.

To support a totally new target system, a small amount of tweaking may need to be done to the assembly code for your target. Generally, if you know the memory map for your system, this is really easy to do.

More Details

The Demon Debugger system has evolved over time. If you have a Demon Debugger board, you can use ROM I/O mode with prebuilt target code, and get started right away, without any other tools. If you need to support a new target, you can still use ROM I/O mode, once you build a new target code.

Rom I/O mode diagram

If you don't have a Demon Debugger board, you can still use the Demon Debugger system in Tethered mode, provided you have a few other capabilities. It requires only an Arduino Nano/Uno, a single transistor, and the ability to program an EPROM chip. You need to identify points on your target which can be used (2 outputs, 1 input, and a ground), wire up your modified Arduino accordingly, and modify the communication routines in the target to use those points. There are a few examples in the repo of doing this.

Tethered mode diagram

Currently Supported Targets

6502

  • Generic 6502 (Works on most targets) - Atari Asteroids, VCFMW Badge!
  • Atari Asteroids Arcade, tethered mode
  • Atari Starship 1 Arcade

6800

  • Heathkit ET-3400(A) (6800 trainer)

6809

  • Heathkit ET-3404 (ET-3400(A) + 6809 adapter) (6809 trainer)
  • Radio Shack Color Computer - Cartridge (6809)

6811

  • (Chuck E. Cheese Cyberamics Computer) (6811 reference)

Z80

  • Z80 reference code (Tweakable to work on most targets)
  • Sega Star Trek Arcade
  • Sega Star Trek Arcade, tethered mode
  • Bally Midway Gorf Arcade
  • Bally Astrocade, cartridge
  • Colecovision/Bit90, cartridge
  • Universal Space Raider Arcade
  • MicroProfessor-1 (Z80 trainer)

CP1610

  • Mattel Intellivision - via LTO Flash cartridge*

Other - coming soon

  • Mattel Intellivision, via T-Card cartridge (CP1610 target)
  • 8080/8085 targets
  • Atari 2600 (6502)
  • RCA1802 targets
  • OS816 SBC (65C816 target)
  • TI 99/4A cartridge (TMS9900 target)

Command Line Client

Command Line Screenshot

GUI Client (WIP)

GUI Screenshot

API

For now, please see the file demonapi.py

Old Videos

Tethered Mode - Sega Sound Board test Quality is not very good, but the Arduino module is next to the laptop

Intellivision Demo Better quality, no Arduino needed using native serialport on the LTO Flash cart.

3D Rendering from KiCad

Rev D Rendering

Parts

60
QtyValueFootprintReferences
171N4148Diode_THT:D_DO-35_SOD27_P2.54mm_Vertical_KathodeUpD3, D4, D5, D6, D7, D8, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19 +1
7Conn_01x01Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalJ6, J7, J8, J12, J13, J14, J15
50.1uFCapacitor_THT:C_Axial_L3.8mm_D2.6mm_P7.50mm_HorizontalC1, C2, C3, C4, C5
54.7kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P2.54mm_VerticalR1, R2, R3, R6, R9
310kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P2.54mm_VerticalR4, R5, R8
21N4004Diode_THT:D_DO-41_SOD81_P2.54mm_Vertical_AnodeUpD1, D2
274HCT138Package_DIP:DIP-16_W7.62mmU4, U7
11kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P2.54mm_VerticalR7
12716Package_DIP:DIP-24_W15.24mm_SocketU1
12N7000Package_TO_SOT_THT:TO-92_WideQ1
174HCT125Package_DIP:DIP-14_W7.62mmU3
174HCT74Package_DIP:DIP-14_W7.62mmU2
1Arduino_Nano_v3.xModule:Arduino_NanoA1
1Jumper BlockConnector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_VerticalJ2
1Jumper BlockConnector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_VerticalJ3
1LOGOEvan's misc parts:Evan LogoG***
1LOGOEvan's misc parts:OSHW gearG***
1MCP23018-E_SPPackage_DIP:DIP-28_W7.62mmU6
1Target Interface, 2716 PinoutConnector_PinHeader_2.54mm:PinHeader_2x12_P2.54mm_VerticalJ4
1Target Interface, 2716 PinoutPackage_DIP:DIP-24_W15.24mm_SocketJ16
1extra CSConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ1
1read regionConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ5

The 56 most common of 60 parts.

More from palazzol/demon

6
  • 2 layers103.6 × 74.9 mmIo i2c, the printed circuit board in 3D

    Io i2c

    palazzol/demon

    Debugger/Monitor for small "computers"

    41 parts7
  • 2 layers85.7 × 76.8 mmIo i2c, the printed circuit board in 3D

    Io i2c

    palazzol/demon

    Debugger/Monitor for small "computers"

    36 parts7
  • 2 layers88.9 × 63.5 mmIo i2c, the printed circuit board in 3D

    Io i2c

    palazzol/demon

    Debugger/Monitor for small "computers"

    15 parts7
  • 2 layers88.9 × 63.5 mmIo i2c, the printed circuit board in 3D

    Io i2c

    palazzol/demon

    Debugger/Monitor for small "computers"

    15 parts7
  • 2 layers24.6 × 76.5 mmDIP28 to TC53257F, the printed circuit board in 3D

    DIP28 to TC53257F

    palazzol/demon

    Debugger/Monitor for small "computers"

    4 parts7

Similar boards

  • 2 layersLM80C R6, the printed circuit board in 3D

    LM80C R6

    leomil72/LM80C

    A Z80-based homebrew computer withTMS9918, AY-3-8910, Z80 CTC, Z80 PIO, and Z80 SIO

    153 parts123GPL-3.0
  • 2 layers368.3 × 215.9 mmTTL 6510 Computer fab, the printed circuit board in 3D

    TTL 6510 Computer fab

    StefansAI/TTL-6510-Computer

    Yet another CPU made from TTL chips

    330 parts1
  • 4 layers292.1 × 88.3 mmSnark barker mca, the printed circuit board in 3D

    Snark barker mca

    schlae/snark-barker-mca

    A Sound Blaster compatible sound card for Micro Channel bus computers

    177 parts69
  • 4 layers100 × 100 mm74HCT6526, the printed circuit board in 3D

    74HCT6526

    dmolinagarcia/74HCT6526

    74HCT6526

    93 parts14
  • 4 layers296 × 220 mmInterposer, the printed circuit board in 3D

    Interposer

    AlexColello/discrete-nes

    A discrete logic implementation of the Nintendo Entertainment System where EVERY single gate output and EVERY memory bit is visible via LED. Watch a complete NES flip every bit in real-time.

    107 parts
  • 2 layers99.1 × 49.9 mmZ80-FDC, the printed circuit board in 3D

    Z80-FDC

    kitspace-test-repos/kicad6-file-collection

    28 partsMIT
  • 2 layers100 × 50 mmRc2014-ym2149, the printed circuit board in 3D

    Rc2014-ym2149

    electrified/rc2014-ym2149

    KiCad schematics and gerbers for a YM sound card for the RC2014. See it in action here: https://www.youtube.com/watch?v=-iLwi9FagFE

    37 parts78
  • 2 layers106 × 95.4 mmHardmpu wt, the printed circuit board in 3D

    Hardmpu wt

    PickledDog/hardmpu-wt

    HardMPU with wavetable module support

    50 parts30Apache-2.0

Questions

How big is the Io i2c PCB?

It measures 103.6 × 74.9 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Io i2c use?

60 parts, built around the 74HCT125PW, 74HCT138D and 74HCT74D. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Io i2c KiCad files?

From the palazzol/demon repository on GitHub, at the commit this page was made from: the board is hardware/io_revD/io_i2c.kicad_pcb and its schematic hardware/DIP28 to TC53257F/DIP28 to TC53257F.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Io i2c design in my own project?

Its repository states no licence, so its author keeps all rights: ask palazzol before reusing the design.