Skip to the content
PCBKitNew board
4 layers76.2 × 53.3 mm0025 8085 UNO Board W65C22 v2, the printed circuit board in 3D

0025 8085 UNO Board W65C22 v2

MarkD833/RetroDuino-8085

8085 Microprocessor system on an Arduino UNO'ish footprint

Size
76.2 × 53.3 mm
Copper layers
4
Thickness
1.6 mm
Parts
42
Nets
100
Pads
339
Tracks, vias
1,309, 64
Pours
1
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
18 Jan 2024
Updated
27 Feb 2024

Overview

0025 8085 UNO Board W65C22 v2 is an open-source printed circuit board by MarkD833, from the MarkD833/RetroDuino-8085 repository on GitHub, published under the GPL-3.0 licence. It is a 4-layer board of 76.2 × 53.3 mm with 42 parts on 100 nets, routed with 1,309 tracks and 64 vias.

It is built around the 74LS573PC, AMS1117-3.3 and DS1233-10+T&R, with the W27C512-45Z among its other parts. Its parts include 16 capacitors, 10 ICs, 7 resistors, 3 connectors and 2 diodes. It belongs with the AVR (ATmega, ATtiny) and FPGA and CPLD boards of this library.

Main components

4

README

README.md

RetroDuino-8085

I've been toying with the idea of creating an 8085 based microprocessor board around the size of an Arduino UNO ever since I came across the 65uino board on the hackaday website.

Table of contents

The basics of the design

I started off with some basics:

ItemNotes
Microprocessoran 8085 device but which one and what clock speed
ROMAt least 8K maybe 16K - but do I need that much?
RAM32K would be good to aim for
Serial1 serial port but bit bang or hardware?
I/OBit programmable i/o
Analogue InA multi channel ADC if there's room
LEDsAt least 1 user LED

Oh, and one other requirement - no surface mount chips or hard to solder parts!

That's quite a lot to cram into the footprint on an Arduino UNO!

After a lot of playing around with an Arduino UNO prototyping board and various chip sockets I came up with a basic design and layout.

The Microprocessor

The 8085 is mostly seen in a 40-pin DIL package. That's a huge amount of real estate on a footprint the size of an Arduino UNO. I discovered that OKI Semiconductor manufactured an 80C85 in a 44-pin PLCC package (MSM80C85AHGS-2K). After a quick bit of digging I located the datasheet and also a source on ebay that was selling some of the chips as NOS (New Old Stock).

Additional board space is consumed as the 8085 has a multiplexed address and data bus. The lower 8-bits are shared between D0..D7 and A0..A7 and an 8-bit latch (74LS573) is used to capture A0..A7.

Another design challenge is that the 8085 interrupts (if I were to use them) are active high rather than active low!

The 8085 is clocked from an 11.0592MHz crystal, which gives an actual clock of 5.5296MHz (the 8085 divides the crystal frequency by 2). I've yet to experiment to see the effects of a higher frequency even though I'm exceeding the manufacturers 10MHz clock by 10% already.

ROM

There are quite a few ROM devices available in a PLCC package as well, but I decided to go with a Winbond W27C512 64K x 8 EEPROM in a 28-pin DIL package. There's plenty for sale on ebay too. The reason for going the DIL package route will become clear with the choice of RAM device.

RAM

I couldn't find any suitable RAM devices in PLCC format so the project success was looking rather bleak. Then I discovered that there were some SRAM devices available in DIL packages that were only 0.3in wide (called Skinny-DIP if I recall correctly). I then got lucky and sourced some UMC UM61512AK 64K x 8 SRAMs in a skinny 32-pin DIL package.

The RAM chip could sit underneath the ROM chip and I would save a lot of board space.

Serial

I thought about bit banging the serial port using the SID and SOD pins of the 8085 but decided to try and go with real hardware. Again board space was at a premium so the hunt was on for a small UART device. A lot of serial chips have a large number of pins dedicated to various handshaking signals as well as synchronous data transfer - although some devices allow repurposing of these signals as discrete inputs or outputs. They are all still quite large chips in either PLCC or 0.6in DIL packages.

I then discovered a Philips SCC2691 UART (SCC2691AC1N24) that was available in a 0.3in wide 24-pin DIL package. It had an internal baud rate generator and a single 16-bit timer/counter as well.

Digital Input Output

I really wanted the I/O chip to have pin programmable direction control. That ruled out the 8155 and 8255 chips. It took a lot of searching but I then discovered a Zilog Z85C36. It had 2x 8-bit bit programmable I/O ports as well as 3x 16-bit timer/counters. That would be perfect!

Except that it wasn't! In my v1.0 design, I couldn't get the Z85C36 to respond at all. I don't know quite what the issue was as I was sure that I was meeting the timing requirements - but clearly something wasn't right.

In order to salvage the situation, I changed the I/O chip to a WDC W65C22S device. The chip still gave me 2x 8-bit bit programmable I/O ports, but only 2x 16-bit timer/counters.

Analogue to Digital Converter

If I could fit it in, then an a National Semiconductor ADC0844 might work out - it's a 4 channel ADC in a 20-pin DIL package.

The board layout

There was quite a bit of massaging to get everything to fit as I also used a GAL16V8 to handle address decoding and interrupt inversion. The result was a board slightly longer than an Arduino UNO (but the same width).

This is an annotated 3D view of the board generated by Kicad as it stands at v1.2.

The thick white lines on the silkscreen just to the right of the FTDI serial port connector and the ADC0844 chip show the outline of an actual Arduino UNO board.

Assembly Instructions

Assembly of the board is pretty straightforward with a few things of note.

  1. Solder all the small SMD resistors and capacitors first - especially on the top of the board as there is very little room once the IC sockets are fitted.
  2. Solder the microprocessor crystal and Reset device before fitting the 44-pin PLCC sockets otherwise you may find that the crystal will not fit down between the 44-pin PLCC sockets.
  3. Depending on the particular DIL socket(s) used for the SCC2691 UART, you may need to remove some of the plastic from the socket so that the 3.6864MHz crystal fits. I used 2 turned-pin sockets, an 8-pin and a 16-pin, to create the 24-pin socket needed. I found that the turned pin socket was less bulky than a regular socket.
  4. The 28-pin DIL socket for the W27C512 ROM needs modifying. As the RAM chip will be sitting underneath the ROM chip, I removed the 3 pieces of plastic between the 2 rows of pins - effectively creating two separate 14-pin SIL sockets.
  5. Lastly, solder the 4 SIL sockets. These pretty much seal off the top of the board for any further access with a soldering iron, so make sure that the board works before fitting thse.

This is a photo of the RetroDuino-8085 board showing the location of the 3.6864MHz UART crystal and the modified 28-pin DIL socket.

The 16V8 GAL

There's so little space on this board that a GAL seemed the logical choice to handle the usual discrete logic. The GAL does address and i/o decoding as follows:

  • Memory space
    • 0x0000 - 0x3FFF selects the ROM
    • 0x4000 - 0xFFFF selets the RAM
  • I/O space
    • 0x00 - 0x3F selects the SCC2692 UART
    • 0x40 - 0x7F selects the W65C22S digital i/o chip
    • 0x80 - 0xBF selects the ADC0844 ADC chip

In addition, the GAL inverts the SCC2692 and W65C22S interrupt signals.

Finally, the GAL has the ability to completely switch out the ROM to give access to the full 64K or RAM. The 8085 SOD pin is used to control this feature.

The GAL files are in the code folder.

Pinout

Below is an image of the pinout I'm using - laid out in a similar way to the Arduino pinout diagrams found on the web. Note that the I2C and SPI signals will hopefully be generated by a software implementation of a hardware interface.

Software

Please see the readme in the Code folder for more details on the software.

The board design files

The board folder holds the gerber files that were sent to JLCPCB to make the board. It's a 4 layer board but small enough to get it made very cheaply.

The design was done using Kicad 7.0. I'm not sure exactly which files I need to share for the schematic and board layout so I've put the .kicad_pro, .kicad_sch & .kicad_sch files into the board folder. There's also the BOM as a CSV file showing the components used.

Known errors

Yep, there are errors with v1.2. So far:

  • LED D2 wrong way round
  • LED D3 wrong way round

History

  • v1.2
    • Used ALE to clock the GAL rather than SYSCLK.
    • Removed the CompactFlash socket and associated passives.
    • Used 8085 SOD discrete to switch out the ROM.
    • Addition of 2nd user LED.
    • Repositioning of the FTDI connector.
  • v1.1
    • Updated design using the W65C22 PIA chip.
  • v1.0
    • Initial design using the Z85C36 CIO chip.

Parts

42
QtyValueFootprintReferences
9100nCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC1, C2, C3, C4, C5, C6, C7, C9, C14
422pCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC10, C11, C12, C13
310KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R2, R12
21KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR9, R10
24K7Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR7, R8
2LEDLED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderD2, D3
110uCapacitor_Tantalum_SMD:CP_EIA-3216-18_Kemet-AC8
110uCapacitor_Tantalum_SMD:CP_EIA-3216-18_Kemet-A_Pad1.58x1.35mm_HandSolderC15
114.7456MHzCrystal:Crystal_HC49-U_VerticalY1
122uCapacitor_Tantalum_SMD:CP_EIA-6032-28_Kemet-CC16
13.6864MHzCrystal:Crystal_HC49-U_VerticalY2
174LS573Package_DIP:DIP-20_W7.62mmU2
1ADC0844Package_DIP:DIP-20_W7.62mmU8
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U10
1Arduino_Uno_R3_ShieldMyLibrary2023:Arduino_Uno_8085_Base_1A1
1Conn_01x04Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ1
1DS1233-10Package_TO_SOT_THT:TO-92L_InlineU9
1GAL16V8Package_DIP:DIP-20_W7.62mmU3
1MSM80C85AHPackage_LCC:PLCC-44_THT-SocketU1
1SCC2691AC1N24Package_DIP:DIP-24_W7.62mmU5
1SW_PushMyLibrary2023:TACTILE_SWITCH_SMD_6.0X3.5MMSW1
1UM61512AKPackage_DIP:DIP-32_W7.62mmU6
1W27C512Package_DIP:DIP-28_W15.24mmU7
1W65C22x6TPLPackage_LCC:PLCC-44_THT-SocketU4
1~Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ3
1~Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ2

Questions

How big is the 0025 8085 UNO Board W65C22 v2 PCB?

It measures 76.2 × 53.3 mm and has 4 copper layers, 1.6 mm thick.

What parts does the 0025 8085 UNO Board W65C22 v2 use?

42 parts, built around the 74LS573PC, AMS1117-3.3, DS1233-10+T&R and W27C512-45Z. 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 0025 8085 UNO Board W65C22 v2 KiCad files?

From the MarkD833/RetroDuino-8085 repository on GitHub, at the commit this page was made from: the board is board/0025_8085_UNO_Board_W65C22_v2.kicad_pcb and its schematic board/0025_8085_UNO_Board_W65C22_v2.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the 0025 8085 UNO Board W65C22 v2 design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers188 × 102.9 mmRC200-Dev Backplane, the printed circuit board in 3D

    RC200-Dev Backplane

    MarkD833/RCBUS-68xxx

    My Motorola 68000 & 68302 processors (+ SIO, PIO & MFP boards) for the RCBus ecosystem.

    102 parts8GPL-3.0
  • 2 layers218 × 125 mmEVA1 v2, the printed circuit board in 3D

    EVA1 v2

    roberto314/EVA-1_Reproduction

    Recreation of the very rare K-K Systems EVA-1 Display Adapter for the Epson HX-20 Computer

    160 parts
  • 2 layers20.5 × 37.7 mm82S1xx W27C512 Adapter, the printed circuit board in 3D

    82S1xx W27C512 Adapter

    SukkoPera/OldPromAdapter

    Replace 82s126/82s129/82s131 PROMs with (E)EPROMs

    5 parts18
  • 2 layers254 × 160 mmDeck65, the printed circuit board in 3D

    Deck65

    and3rson/deck65

    Simple SBC based on 65c02s

    183 parts16GPL-3.0
  • 2 layers99.1 × 99.1 mmQL Qsound10x10, the printed circuit board in 3D

    QL Qsound10x10

    alvaroalea/QL_QsoundQprint_clone

    A clone board of the Sound card for the Sinclair QL Computer.

    23 parts11
  • 2 layers99.7 × 149.9 mmBeta128 r0.3, the printed circuit board in 3D

    Beta128 r0.3

    alvaroalea/betadisk-clone

    Clone of the Beta 128 Disk Interface for ZX Spectrum

    89 parts7
  • 2 layers40.6 × 44.5 mmQL Minerva MK2, the printed circuit board in 3D

    QL Minerva MK2

    alvaroalea/QL_Minerva_MK2

    Clone of the Board of ROM + RTC for Sinclair QL Computer

    16 parts6
  • 2 layers101.6 × 65.3 mmMsx eprom cartridge 3.1, the printed circuit board in 3D

    Msx eprom cartridge 3.1

    msx-solis/MSX-EEPROM-Cartridge-64k-v3

    Simple MSX ROM cartridge up to 64k

    10 parts6