Skip to the content
PCBKitNew board
2 layers304.8 × 165.1 mmComix-35, the printed circuit board in 3D

The COMIX-35 is an improved clone of the COMX-35 1802 home computer

Size
304.8 × 165.1 mm
Copper layers
2
Thickness
1.6 mm
Parts
173
Nets
169
Pads
968
Tracks, vias
4,691, 399
Pours
4
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
26 Jul 2020
Updated
6 Aug 2020

Overview

Comix-35 is an open-source printed circuit board by schlae, from the schlae/comix-35 repository on GitHub. It is a 2-layer board of 304.8 × 165.1 mm with 173 parts on 169 nets, routed with 4,691 tracks and 399 vias.

It is built around the 74LS245SC, 74LS74PC and 74HC04D, with the 74LS10PC, 74LS14PC and 74LS574N among its other parts. Its parts include 36 capacitors, 32 resistors, 30 switches, 16 ICs and 5 diodes.

Main components

7

README

README.md

COMIX-35 Home Computer

The COMIX-35 is an open-source clone of the 1980s COMX-35 8-bit home computer. It uses the RCA 1802 microprocessor which is strange and slow but holds the distinction of being the first CMOS microprocessor. The "35" is because the original computer has 32K of main memory + 3K of video RAM.

photo

There are a number of differences between the COMIX-35 and the original:

  • Single +5V power supply
  • Uses SRAM; no stolen cycles for DRAM refresh
  • Configurable PAL or NTSC by changing three jumpers and swapping a crystal
  • Additional CPU crystal for a new turbo mode
  • Mechanical key switches for your typing comfort
  • Cassette input data light indicates incoming information

Design files

Here are the design files. The BOM includes Mouser part numbers for everything except the CDP1802, CDP1869, CDP1870, CDP1871, the trimmer capacitor (optional), and the expansion slot header (also optional). I recommend you purchase IC sockets for the four CDP parts, as well as for the ROM chip U15.

Schematic

Bill of Materials

Fab Files

The board is rather large, at 12 x 6.5 inches (304.8 x 165.1 mm), but it does include the keyboard. It is a 2-layer design so it should be relatively cheap to manufacture. A word of advice: pick out your keycap set first, then choose the PCB color to match it.

The keyboard keyswitches are easily substituted for lower-cost ones from other vendors. I recommend you purchase DSA-profile keycaps since some of the keys are located in rows that are not typical. I ended up buying the YMDK 125 DSA Dye Sub 9009 Retro PBT Full Keyset for MX. You can choose whatever you want, but make sure there is a 1 unit control key and a 1.25 unit shift key. The enter key needs to be 1.5 unit, so I just used the tab key for that instead. If you have any doubt, check the PCB layout which has the key cap unit sizes marked below each key.

I have not included part numbers for the 0.1" headers which usually come as a long strip that you break into the appropriately-sized sections.

Most other components may be safely substituted. U4 is a little tricky. It should be a 74HCU04 in order for the oscillators to operate, but in a pinch, a 74HC04 will also work. A 74LS04 or a part from another logic family will not work.

Assembly notes

Since the standard COMX-35 ROM configures the CDP1869 to use extra-tall characters, you need to tie CDP1869 pin 25 to CMA3. Do this by soldering a jumper wire from pin 1-2 on JP6. If you wish to write your own code to deal with short characters and more text pages, then install a 0.1" header and jumper instead.

The default configuration for PAL is as follows:

LocationPALNTSC
JP12-31-2
JP22-31-2
JP32-31-2
Y117.734 MHz14.318MHz

The trimmer capacitor, C12, is optional. It allows you to adjust the color image for best clarity. If you don't use it, then just stuff C13 with a 22pF capacitor.

You can also configure your COMIX-35 for turbo mode which allows the CPU to run at much higher frequencies than the original computer, limited only by the maximum frequency of your particular CDP1802. Check the datasheet for the variation you have, or experiment. Turbo mode is enabled by jumpering JP4 to position 1-2. This enables the clock oscillator installed at Y3. To run at the standard speed, set JP4 to 2-3.

If you use a 28C256 or 27C256 ROM, jumper JP5 will allow you to select between the upper and lower 16K of ROM. This is useful if you want to use store two different ROM binaries, such as the standard COMX-35 ROM and your own custom program.

The COMX-35 ROM image is relatively easy to find so I will not provide it here.

Video adjustments

There are two trimmer resistors that adjust the video:

  • RV3 adjusts the sync pulse amplitude
  • RV4 sets the overall video amplitude

The simplest way to get it working is to use an oscilloscope to set the sync pulse amplitude to about 300mV and the video amplitude to about 700mV. If you don't have an oscilloscope, set RV4 to the maximum, set RV3 to the minimum, and then slowly increase RV3 until you get a stable picture. If the colors are not saturated enough, you can decrease RV4.

The C12 trimmer capacitor, if you installed it, adjusts the frequency of the colorburst by a small amount. Since the colorburst and the pixel clock are not sychronized, you'll get a "shimmering" effect on colored pixels. Adjust C12 until you can't see shimmering anymore.

Loading programs off a computer using the cassette port

The process I've had success with is this:

  • Run the Emma 02 emulator. Turn off SB mode, turn off Turbo LOAD/SAVE. Make sure Auto LOAD/SAVE is turned on.
  • Hit run. Press enter to go past the COMX screen and get to the BASIC prompt.
  • Click the LOAD button and select the program you are interested in.
  • From BASIC, type PSAVE.
  • Name the file (it is actually a raw sound file, not WAV.)
  • It will take a while but it will eventually save the cassette sound.
  • Load the raw file in Audacity using File->Import->Raw Data. Select 22050 as the sampling rate, mono, signed 16 bit little endian.
  • You may wish to save the program as a regular WAV file at this point.
  • Connect an audio cable between the COMIX-35's EAR jack and your computer's speaker output.
  • Make sure your computer has absolutely no audio processing going on at all. No echo, no equalizer, nothing at all. You may have to really crank up the volume.
  • Hit play, and then adjust the input bias control until the data LED flickers.
  • Stop, rewind, hit play, and then (on the COMIX-35) type "PLOAD" and hit enter. If everything works, PLOAD will return you back to the BASIC prompt.
  • Type RUN and hit enter to start the program.

The cassette interface is a bit tricky to work due to various reasons. The input circuit uses a Schmitt-trigger buffer, so the DC bias of the incoming audio signal must be adjusted to the halfway point of that threshold. This is what the INPUT BIAS trimmer does.

You also need enough volume to be able to exceed the rising and falling thresholds.

Tips and tricks if things don't work right the first time:

  • Does your computer really provide clean audio? You've turned off all effects processing? Audio managers, headphone bass boosters--all that must be turned off!
  • Check your cables
  • Check the volume level on the PC. If it is too low, it will not work
  • Connect an oscilloscope to the cathode of D5 and make sure you see a clean waveform

Compatibility

Note that I have not tested the COMIX-35 with real COMX-35 accessories, such as the expansion chassis, RAM boards, disk controllers, etc. It should work with all these accessories except for the RAM expansion because it uses the RAS and CAS lines. Since the COMIX-35 does not have the DRAM refresh circuit, these signals don't exist on the expansion connector.

License

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. See https://creativecommons.org/licenses/by-sa/4.0/.

Parts

173
QtyValueFootprintReferences
200.1uFPassive:CAPAC200C1, C2, C3, C4, C10, C11, C14, C16, C17, C20, C21, C22, C25, C26, C29, C30 +4
1510KPassive:RESA500R1, R3, R6, R14, R15, R16, R18, R19, R20, R21, R22, R26, R27, R31, R32
622pFPassive:CAPAC200C13, C15, C18, C19, C23, C24
41KPassive:RESA500R5, R10, R25, R29
41N4148Passive:DIOA500D1, D2, D3, D5
310KPassive:PIHER_PT10_H01RV2, RV3, RV4
31MPassive:RESA500R4, R9, R23
3220Passive:RESA500R7, R12, R33
3AS6C62256Active:DIP254P1524X635-28U12, U13, U16
3NTSC/PALPin_Headers:Pin_Header_Straight_1x03_Pitch2.54mmJP1, JP2, JP3
210Passive:RESA500R11, R28
210uFPassive:CAPAE250P630X1100C31, C35
274LS74Active:DIP254P762X635-14U3, U5
1*Switch:CHERRY_MXSW50
1+Switch:CHERRY_MXSW48
1,Switch:CHERRY_MXSW16
1-Switch:CHERRY_MXSW49
1.Switch:CHERRY_MXSW15
1/Switch:CHERRY_MXSW51
10Switch:CHERRY_MXSW5
10.047uFPassive:CAPAC200C32
10.33uFPassive:CAPAC200C34
11Switch:CHERRY_MXSW6
1100Passive:RESA500R30
11000pFPassive:CAPAC200C28
1100KPassive:RESA500R2
1100uFPassive:CAPAE200P500X1100C6
110K x 8Pin_Headers:Pin_Header_Straight_1x09_Pitch2.54mmRN1
110MPassive:RESA500R17
111.2896MHzCrystals:Crystal_HC49-4H_VerticalY2
1120pFPassive:CAPAC200C36
114.318MHzCrystals:Crystal_HC49-4H_VerticalY1
11uFPassive:CAPAC200C27
12Switch:CHERRY_MXSW7
1220uFPassive:CAPAE250P630X1100C33
128C256Active:DIP254P1524X635-28U15
12N2222Active:TO92-ILQ1
13Switch:CHERRY_MXSW8
14Switch:CHERRY_MXSW9
147KPassive:PIHER_PT10_H01RV1
15Switch:CHERRY_MXSW10
16Switch:CHERRY_MXSW11
17Switch:CHERRY_MXSW12
174HC04Active:DIP254P762X635-14U4
174LS10Active:DIP254P762X635-14U6
174LS14Active:DIP254P762X635-14U8
174LS245Active:DIP254P762X635-20U11
174LS574Active:DIP254P762X635-20U2
174LS86Active:DIP254P762X635-14U7
175Passive:RESA500R13
18Switch:CHERRY_MXSW13
19Switch:CHERRY_MXSW14
1<Switch:CHERRY_MXSW17
1=Switch:CHERRY_MXSW18
1>Switch:CHERRY_MXSW19
1?Switch:CHERRY_MXSW21
1ASwitch:CHERRY_MXSW22
1BSwitch:CHERRY_MXSW23
1BANKPin_Headers:Pin_Header_Straight_1x03_Pitch2.54mmJP5
1Barrel_Jack_SwitchConn:CUI_PJ-002BJ1
1CSwitch:CHERRY_MXSW24
1CDP1802ACEActive:DIP254P1524X635-40U1
1CDP1869Active:DIP254P1524X635-40U10
1CDP1870Active:DIP254P1524X635-40U14
1CDP1871Active:DIP254P1524X635-40U9
1CHROMAPassive:EW_GKGC12
1CLKSELPin_Headers:Pin_Header_Straight_1x03_Pitch2.54mmJP4
1CONTROLSwitch:CHERRY_MXSW4
1CRSwitch:CHERRY_MX_150SW53
1Conn_01x02Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mmJ5
1Crystal_SmallCrystals:Crystal_HC49-4H_VerticalY3
1DSwitch:CHERRY_MXSW25
1DATALEDs:LED_D5.0mmD6
1DELETESwitch:CHERRY_MXSW59
1DNIPassive:RESA500R24
1DOWNSwitch:CHERRY_MXSW58
1ESwitch:CHERRY_MXSW26
1EARConn:CUI_SJ1-353XNJ4
1ESCSwitch:CHERRY_MXSW54
1EXPANSIONConn:SULLINS_EBC22DRAS_ALTJ2

The 137 most common of 173 parts.

Questions

How big is the Comix-35 PCB?

It measures 304.8 × 165.1 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Comix-35 use?

173 parts, built around the 74LS245SC, 74LS74PC, 74HC04D and 74LS10PC. 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 Comix-35 KiCad files?

From the schlae/comix-35 repository on GitHub, at the commit this page was made from: the board is COMIX-35.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Comix-35 design in my own project?

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

Similar boards

  • 2 layers279.4 × 203.2 mmZ180GDC, the printed circuit board in 3D

    Z180GDC

    lynchaj/rhyophyre

    Single Board Computer featuring Zilog Z180 processor and NEC µPD7220 Graphics Display Controller

    249 parts12
  • 4 layers170 × 181 mm3ric, the printed circuit board in 3D

    3ric

    ebadger/3ric

    3ric homebrew computer repository

    150 parts32
  • 4 layers304.5 × 217.2 mmLatest Full Backplane, the printed circuit board in 3D

    Latest Full Backplane

    Trilobyte-CPU/8-bit-computer

    A DIY 8-bit computer built mostly with discrete logic chips

    478 parts2
  • 2 layersRogelio Pineda part 7-AMLDC-2044B, the printed circuit board in 3D

    Rogelio Pineda part 7-AMLDC-2044B

    ForgottenMachines/Entrex

    The technologies documented here will include all like-kind systems manufactured by Nixdorf, Redifon, ROCC & Mera, all originally designed by Entrex Inc, Burlington, MA USA.

    332 parts1
  • 2 layers190.5 × 77 mmGreengateDS3, the printed circuit board in 3D

    GreengateDS3

    schlae/goodgreat-ds3

    Clone of the Greengate DS3 sampler

    74 parts10
  • 2 layers221.5 × 149.5 mmZX1, the printed circuit board in 3D

    ZX1

    misterblack1/zenith_zt1

    Information gathered on the Zenith ZT-1 / ZT-10 / ZT-11 and ZTX/ZT-x-A variants

    140 parts5
  • 2 layers199.6 × 74.2 mmTC02Mini, the printed circuit board in 3D

    TC02Mini

    Board-Folk/Einstein-TC-01

    Tatung Einstein TC-01

    52 parts4
  • 2 layers244 × 244 mm6809PC-6U, the printed circuit board in 3D

    6809PC-6U

    danwerner21/6809PC

    6809 PC

    167 parts2