
CPU 6809 board
roberto314/Unicomp2
A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.
CPU6502 6802 is an open-source printed circuit board by roberto314, from the roberto314/Unicomp2 repository on GitHub. It is a 2-layer board of 100 × 100 mm with 69 parts on 502 nets, routed with 1,671 tracks and 88 vias.
It is built around the SN74LVC245ANSR, SN74LVC125AD and SN74LVCC3245ANSR. Its parts include 24 connectors, 12 resistors, 8 capacitors and 8 ICs. It belongs with the retro computing and games boards and the FPGA and CPLD boards of this library.
A modular 8-bit Computer able to recreate (nearly) every microcomputer of the mid 70s to early 80s in Hardware without FPGAs (although an FPGA can be added). Can also be used as a teaching tool for:
It is different from other designs because of these points:
Version 2.00
Unicomp plus Logic Analyzer:

Input board:
CPU board:
6502 Board:

Multi Serial Board:

Multi Parallel boaŕd:
RAMROM board:
Prototype board:
MAX-II (EPM240) board:
self made module:
The configuration is done with 128kx8 fast ram on the peripheral boards. These will be configured from the STM32F401. One bit is for one Output (of which there are two) and for two addresses (resolution for chipselect is 2 bytes). The cs = 15 is for writing the main RAM, cs = 14 is the chip select for the RAMROM board. The rest is free. With two chip select lines per board these are 28 lines. One byte in the mapping ram has the following format:
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Bits |
|---|---|---|---|---|---|---|---|---|
| 7,6 | 5,4 | 3,2 | 1,0 | 7,6 | 5,4 | 3,2 | 1,0 | Address |
| /CS0 | /CS0 | /CS0 | /CS0 | /CS1 | /CS1 | /CS1 | /CS1 | Peripheral |
| /CS | /CS | /CS | /CS | WP | WP | WP | WP | RAMROM |
So 128k are good for 128kx8 Bytes of Addressspace (=1MByte) The data gets transferred to the STM32 in compact form. Only the Start address, the chipselect and the bitmask (which is Low-active) for every addresses where someting changes are transferred. A 0xFE for a bitmask means Peripheral chipselect /CS1 is active for two addresses. If the board is the RAMROM board the low nibble is Writeprotect (Hi-active).
A simple configuration block looks líke this:
(RAM: 0-9FFF, ACIA0: A000-A001, ACIA1: A010-A011, ROM: C000-FFFF)
00 00 00 0E 00 : RAM
00 A0 00 00 EF : ACIA0
00 A0 02 FF FF : HOLE
00 A0 10 00 FE : ACIA1
00 A0 12 FF FF : HOLE
00 C0 00 0E 0F : ROM
01 00 00 FF FF : END
00 00 00 : noting further| Name | prim. IO | chips used | os | weblink |
|---|---|---|---|---|
| Grant Searle 6502 board | serial | MOS6502, MC6850 | OSI Basic | Link: http://searle.x10host.com/6502/Simple6502.html |
| Daryl Rictor 6502 board | serial | MOS6502, R6551 | SBC-2 (monitor only) | Link: https://sbc.rictor.org/info2.html |
| Daryl Rictor 6502 board | serial | MOS6502, MC6850 | SBC-2 (monitor only) | Link: https://sbc.rictor.org/info2.html |
| SYM1 | serial | MOS6502, UM6532 | SYM1 ( +BASIC +RAE) | Link: http://retro.hansotten.nl/6502-sbc/synertek-sym-ktm/sym-1/ |
| KIM1 | serial | MOS6502, UM6532 | KIM1 | Link: http://retro.hansotten.nl/6502-sbc/kim-1-manuals-and-software/ |
| Apple I | serial | MOS6502, MĆ6821 (plus Arduino) | Wozmon + BASIC | Link: http://retro.hansotten.nl/6502-sbc/apple-1/ |
| Motorola MEK D2 | serial | MC6802, MĆ6850 | newbug, xswtbug, mondeb | Link: https://www.retrotechnology.com/restore/smithbug.html |
| Motorola MEK D1 | serial | MC6802, MĆ6821 (plus Arduino) | Mikbug | Link: https://www.retrotechnology.com/restore/smithbug.html |
| Heathkit ET3400 | serial | MC6802, MĆ6850 | MITS BASIC, TSC MicroBASIC,... | Link: https://github.com/jefftranter |
| SWTPC 6800 | serial | MC6802, MĆ6821 (plus Arduino) | Mikbug | Link: https://deramp.com/swtpc.com/ |
| SWTPC 6800 | serial | MC6802, MĆ6850 | SWTBUG, SWTBUGA, Mondeb, xSWTBUG | Link: https://deramp.com/swtpc.com/ |
| DREAM 6800 | BAS (Video) | MC6802, MAX-II | DREAM operating System (Chip8) | Link: http://www.mjbauer.biz/DREAM6800.htm |
| HD6303 Board (Eric Klaus) | serial | HD6303 | Monitor +BASIC | Link: https://sites.google.com/site/ericmklaus/projects-1/hd6303cpuboard |
| MC3 Computer | serial | HD6303 | Monitor | Link: https://www.waveguide.se/?article=mc3-a-diy-8-bit-computer |
| Psion Organizer I | LCD | HD6303 | Psion OS | Link: https://www.jaapsch.net/psion/index.htm |
I uses an olimex A20 SBC (olinuxino A20) which has a lot of peripherals (4x UART, 2x SPI, 2x I2C, a lot of GPIOs, SATA, 2x SDCARD, VGA, HDMI, LAN,...) and it is open hardware. The board is connected with three 40 pin cables (like old IDE cables) plus two 10 pin cables to the input board.
To access all the peripherals i use python with the pyA20 library here: https://pypi.org/project/pyA20/
The debian image (bullseye minimal) can be found at: http://images.olimex.com/release/a20/
To configure the image after downloading there are helper scripts in the unicomp folder under: olimex Board/config
I use fbterm and tmux for a nice terminal output. Here are some pictures:
tmux main window:

tmux serial window:

-- all scripts have to be executed with sudo bacause of direct hardware access!
set_reset.py [0,1,xx]
UC_check_jtag.sh
UC_write_cpld.sh [0..?] [.jed file]
Prepare new SD-Card:
compiling the vhdl (or verilog) code must be done on a computer with the Xilinx ISE 14.7 toolchain installed. Link: https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vivado-design-tools/archive-ise.html
compiling itself can be done inside ISE or with the supplied makefile (look inside the bord directory in cpld firmware)
a simple make will compile the firmware and a make transfer will transfer the file to the sbc (if you changed the ip address to your address inside the makefile and the path inside project.cfg)
on the sbc in the work folder one can find the .jed file. For programming type: UC_write_cpld [JTAG-position] [filename.jed]
| Qty | Value | Footprint | References |
|---|---|---|---|
| 8 | 100n | Capacitor_SMD:C_1206_3216Metric | C1, C2, C3, C4, C5, C6, C7, C8 |
| 8 | 10k | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R1, R2, R4, R5, R6, R7, R8, R12 |
| 6 | Conn_01x01 | Connector_PinHeader_1.27mm:PinHeader_1x01_P1.27mm_Vertical | J10, J11, J12, J13, J14, J15 |
| 5 | Conn_02x36_Counter_Clockwise | my_own_conn:Proto_2x36 | J22, J23, J24, J25, J26 |
| 4 | 1k | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R3, R9, R10, R11 |
| 4 | BUS | Connector_PinSocket_2.54mm:PinSocket_2x20_P2.54mm_Vertical | J1, J2, J3, J4 |
| 4 | MountingHole | MountingHole:MountingHole_3.2mm_M3 | H1, H2, H3, H4 |
| 3 | SN74LVC245ANSR | Package_SO:SO-20_5.3x12.6mm_P1.27mm | U2, U3, U6 |
| 2 | Conn_01x06 | Connector_PinHeader_1.27mm:PinHeader_1x06_P1.27mm_Vertical | J30, J31 |
| 2 | Conn_01x08 | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical | J6, J7 |
| 2 | Conn_01x09 | Connector_PinHeader_2.54mm:PinHeader_1x09_P2.54mm_Vertical | J5, J8 |
| 2 | Conn_01x12 | Connector_PinHeader_2.54mm:PinHeader_1x12_P2.54mm_Vertical | J20, J21 |
| 2 | SN74LVC125AD | Package_SO:SOIC-14_3.9x8.7mm_P1.27mm | U8, U9 |
| 1 | 6802_GND | Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm | JP3 |
| 1 | 6802_RAM_DIS | Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm | JP1 |
| 1 | CLK | Jumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mm_NumberLabels | JP7 |
| 1 | CLK_In_5/8 | Jumper:SolderJumper-3_P1.3mm_Open_Pad1.0x1.5mm_NumberLabels | JP4 |
| 1 | CLK_Out_5/8 | Jumper:SolderJumper-3_P1.3mm_Open_Pad1.0x1.5mm_NumberLabels | JP5 |
| 1 | Conn_02x05_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_Horizontal | J9 |
| 1 | Jumper_3_Open | Jumper:SolderJumper-3_P1.3mm_Open_Pad1.0x1.5mm_NumberLabels | JP8 |
| 1 | PH2_5/8 | Jumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mm_NumberLabels | JP9 |
| 1 | RD | NetTie:NetTie-2_SMD_Pad0.5mm | NT20 |
| 1 | RW | Jumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mm | JP10 |
| 1 | SN74LVCC3245ANSR | Package_SO:SO-24_5.3x15mm_P1.27mm | U5 |
| 1 | VCC_STBY | Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm | JP2 |
| 1 | Vcc | Jumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mm_NumberLabels | JP29 |
| 1 | W65C02SxP | Package_DIP:DIP-40_W15.24mm_Socket_LongPads | U7 |
| 1 | WDC | Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm | JP6 |
| 1 | WR | NetTie:NetTie-2_SMD_Pad0.5mm | NT21 |
| 1 | XC9572VQ44 | Package_QFP:TQFP-44_10x10mm_P0.8mm | U1 |
It measures 100 × 100 mm and has 2 copper layers, 1.6 mm thick.
69 parts, built around the SN74LVC245ANSR, SN74LVC125AD and SN74LVCC3245ANSR. 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.
From the roberto314/Unicomp2 repository on GitHub, at the commit this page was made from: the board is 6502_6802 Board v2/schematic/CPU6502_6802/CPU6502_6802.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask roberto314 before reusing the design.

roberto314/Unicomp2
A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

roberto314/Unicomp2
A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

roberto314/Unicomp2
A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

roberto314/Unicomp2
A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

roberto314/Unicomp2
A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

roberto314/Unicomp2
A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

roberto314/Unicomp2
A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

roberto314/Unicomp2
A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

roberto314/Unicomp2
A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

roberto314/Unicomp2
A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

roberto314/Unicomp2
A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

roberto314/Unicomp2
A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

roberto314/Unicomp3
A modular 8-bit Computer able to recreate (nearly) every Retro computer of the late 70s to mid 80s.

AdLunamUnizar/avionics
Repositorio del departamento de electrónica del equipo de cohetería ALUnizar.


jackw01/scanlight
A better light source for scanning color negative film

Biacco42/Ergo42
7x4 ortho linear split keyboard - The Answer to the Ultimate Question of Life, the Universe, and at least Keyboards

eigenco/frankenpi
This is an experimental project to connect Raspberry Pi with the help of cheap Cyclone IV FPGA board to 8-bit ISA bus to act as multiple different devices.

mattybrad/drumkid
Version 4 was the first successful working design, with full code, schematics, Gerbers, etc available on GitHub.

KaiPereira/Overglade-Badges
NFC hackathon badges for the Overglade game jam in Singapore!