Skip to the content
PCBKitNew board
2 layers98 × 77.2 mmPiCoCo, the printed circuit board in 3D

CoCo cartridge interface with the Pi Pico

Size
98 × 77.2 mm
Copper layers
2
Thickness
1.6 mm
Parts
65
Nets
104
Pads
351
Tracks, vias
1,332, 215
Pours
8
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
3 Dec 2023
Updated
28 Oct 2026

Overview

PiCoCo is an open-source printed circuit board by cognitivegears, from the cognitivegears/PiCoCo repository on GitHub. It is a 2-layer board of 98 × 77.2 mm with 65 parts on 104 nets, routed with 1,332 tracks and 215 vias.

It is built around the SN74LVC245AN, AMS1117-3.3 and SN74LVC00AD, with the SS14 among its other parts. Its parts include 21 resistors, 14 capacitors, 7 ICs, 4 connectors and 3 transistors. It belongs with the interfaces and adapters and retro computing and games boards and the RP2040 and RP2350 boards of this library.

Main components

4

README

breakout/README.md

PiCoCo Cartridge Breakout v1.0

A dumb adapter: the 40 fingers of a Tandy Color Computer cartridge slot brought out 1:1 to a 2x20 0.1" header, so the PiCoCo bus interface can be breadboarded. It carried the breadboard phase before the main board existed; docs/breadboard-plan.md points to the results.

text
CoCo slot ──[this board]──40-way IDC ribbon──[2x20-to-breadboard adapter]──breadboard

Everything here is generated by tools/gen_breakout.py (run it with KiCad's bundled Python). Do not hand-edit the .kicad_sch; the .kicad_pcb is also generated, including all routing, and is safe to regenerate.

What is on the board

RefPartPurpose
P140 gold fingers (PiCoCo:COCO-CART-FINGERS)mates with the CoCo slot
J12x20 shrouded (keyed) IDC box header, verticalheader pin n = cart pin n; the key stops a reversed ribbon
F10.5 A hold polyfuse, 1812in series with +5V so a breadboard slip cannot short the CoCo's 5 V rail
C110 uF 0805 X5R, >= 10 V+5V bulk after the fuse
C2100 nF 0805+5V bypass
R1 + D11 kΩ 0805 + 0805 LEDpower indicator

Cart fingers 1 and 2 (-12 V and +12 V on CoCo 1/2, unused on CoCo 3) are left open, so ±12 V can never reach the ribbon. Header pins 1 and 2 are tied to GND instead, which gives the ribbon four ground conductors (1, 2, 33, 34) rather than two.

Board: 52.8 x 99 mm, 2 layer, 1.6 mm. Measured on the CoCo: from the connector face to the outside of the case is about 1 3/4" (44.5 mm), so with the 10 mm finger tab the case surface sits about 55 mm from the finger tip. The header's near row is at 77 mm, its shroud starts at about 74 mm, so there is a 17 mm bare grip zone outside the case below the shroud, and the ribbon plugs in with the case on. A silk line at 55 mm marks the approximate case surface. Both copper layers carry a GND pour that stops 1 mm short of the finger tab.

The shroud of J1 is 58.4 mm long and the board is 52.8 mm wide, so the plastic overhangs each side edge by about 2.8 mm. That is deliberate: a keyed header is worth more than a flush one. (An earlier note here claimed the board could not be wider than the finger tab; measured on 2026-09-18 the CoCo 3 opening is 114.3 x 30.2 mm, so it can.) A reversed ribbon at an unkeyed header would land +5V on /CTS.

Finger geometry versus the original cart footprint

Finger width (1.27 mm), pitch (2.54 mm), x positions, layer assignment (odd on top, even on bottom), and the far end of every pad are identical to COCO-CART-2.1X1.75, the footprint the main PiCoCo board uses. One thing was changed on purpose: the leading edge of the 39 full-length fingers was pulled back from 0.44 mm to 1.30 mm from the board edge. JLCPCB's order form states that a 30° bevel on 1.6 mm stock is 1.13 mm deep (0.53 mm residual thickness at the tip), so any copper closer than that sits on the chamfer and gets ground off, leaving bare copper at the finger tips. 1.30 mm keeps every finger fully on the flat. The contact wipe zone is millimetres further in, so mating is unaffected. The +5V finger (9) was already short at the leading edge (mates last) and is unchanged. The main board's footprint has the same trim.

Bill of materials

RefQtyValueExample part
J112x20 shrouded IDC box header, 2.54 mm, vertical, through-holeany generic "2x20 box header"; overhangs the board edges, see above
F11polyfuse 0.5 A hold / 1 A trip, 1812Bourns MF-MSMF050-2, Littelfuse 1812L050
C1110 uF 0805 X5R 10 Vsame as the main PiCoCo BOM
C21100 nF 0805 X7Rsame as the main PiCoCo BOM
R111 kΩ 0805
D11LED 0805, any colourcathode (pin 1) faces the header

Off-board, for the breadboard end:

  • 40-way IDC ribbon, 15-20 cm, with 2x20 female IDC sockets on both ends (sold as "40-pin Raspberry Pi GPIO ribbon cable"). Keep it short; the CoCo bus is unterminated.
  • The PiCoCo-Cobbler board from this directory plus one 2x20 shrouded box header and two 1x20 pin headers. Do not substitute a Raspberry Pi cobbler; see the note below.

fab/breakout/PiCoCo-Breakout-BOM.csv and -pos.csv are the machine readable versions, if you want JLCPCB to place the five SMD parts.

If you would rather not solder SMD: F1 can be replaced by a wire link (you lose the short-circuit protection), C1/C2/R1/D1 can all be left off (the board still works, you lose the LED and local bypass). Everything else is through-hole.

Ordering

Gerbers, drill and position files are in fab/breakout/; PiCoCo-Breakout-gerbers.zip is the upload. Regenerate with:

text
bash tools/gen_fab.sh breakout/PiCoCo-Breakout.kicad_pcb fab/breakout

Use the JLCPCB settings in fab/READ-BEFORE-ORDERING.txt. The ones that matter for this board, as the JLCPCB form presents them:

  • Layers 2, thickness 1.6 mm (slot fit), 1 oz copper.
  • Surface finish: ENIG. JLCPCB only offers the gold-finger process on an ENIG board; with HASL selected the form warns that the fingers will merely be tinned.
  • Gold Fingers: Yes. Beveling: 30°. The form then shows the bevel depth (1.13 mm) and residual thickness (0.53 mm) the finger geometry was designed around.
  • Confirm Production File: Yes is worth the extra day on a gold-finger board; you get to see how they interpreted the fingers and bevel.
  • Everything else at defaults: outline tolerance ±0.2 mm, flying-probe test, no castellations, no edge plating, no blind slots.
  • Minimum quantity is 5. Keep the spares.

Fab-rule check against the published requirements (JLCPCB help "Gold fingers"; PCBWay "PCB Gold fingers" page):

RuleRequirementThis board
finger to board edge, 30° bevel, 1.6 mmJLC bevel depth 1.13 mm (order form); help page says >= 0.6 mm; PCBWay >= 0.5 mm1.30 mm
copper in the bevel zonenonenone: fingers end at 1.30 mm, pours stop 11 mm up, traces leave pads inward
pads / plated holes near fingers>= 1.0 mmnearest is J1 at ~38 mm
board size after bevelJLC >= 50 x 50 mm, PCBWay width > 45 mm52.8 x 99 mm (inside the 100 x 100 mm price tier)
fingers on one edge onlyyesyes

On PCBWay's order form the equivalents are "Gold fingers: Yes", "Beveling: 30°", surface finish for the fingers is implied by the gold finger option. The cobbler has no fingers and needs no special options.

When the boards arrive, test-fit one into the slot with the CoCo off before soldering anything.

Pin map

Header pin n is cart pin n, except 1 and 2 which are GND on the header and open at the fingers. Odd pins are on the header row nearest the fingers (top copper), even pins on the far row (bottom copper), which is also how the fingers are arranged on the card edge. Signal directions are from the CoCo's point of view.

PinSignalDirPinSignalDir
1GND (cart -12 V finger open)2GND (cart +12 V finger open)
3/HALTin, open collector4/NMIin
5/RESETout (also driven by reset button)6Eout
7Qout8/CARTin (FIRQ)
9+5V (after F1)power10D0bidi
11D1bidi12D2bidi
13D3bidi14D4bidi
15D5bidi16D6bidi
17D7bidi18R/Wout
19A0out20A1out
21A2out22A3out
23A4out24A5out
25A6out26A7out
27A8out28A9out
29A10out30A11out
31A12out32/CTSout
33GND34GND
35SNDin (audio)36/SCSout
37A13out38A14out
39A15out40/SLENBin

The cobbler note (read before buying an adapter)

Raspberry Pi "cobbler" style adapters are the obvious 2x20-IDC-to- breadboard part, and their silkscreen will show Pi names (GPIO2, 5V, GND...) that mean nothing here; ribbon conductor n still lands on breadboard position n. The Pi header pin names, for cross-reference when you are staring at a cobbler:

PinPi labelPinPi label
13V325V
3GPIO245V
5GPIO36GND
7GPIO48GPIO14
9GND10GPIO15
11GPIO1712GPIO18
13GPIO2714GND
15GPIO2216GPIO23
173V318GPIO24
19GPIO1020GND
21GPIO922GPIO25
23GPIO1124GPIO8
25GND26GPIO7
27ID_SD28ID_SC
29GPIO530GND
31GPIO632GPIO12
33GPIO1334GND
35GPIO1936GPIO16
37GPIO2638GPIO20
39GND40GPIO21

The trap, and it is real: Adafruit's T-Cobbler Plus joins all eight GND-labelled pins (6, 9, 14, 20, 25, 30, 34, 39) into one net and both 5V pins (2, 4) into another, on the cobbler PCB itself. That is verified from the Eagle schematic in Adafruit's Adafruit-Pi-Cobber-PCBs GitHub repo. Plugged into this breakout it would short CoCo E, +5V, D4, A1, A6, A11, GND and A15 together the moment the ribbon is seated. Assume every Pi cobbler and Pi GPIO breakout does the same unless you have measured it.

Use PiCoCo-Cobbler instead. It is the second board in this directory: a keyed 2x20 IDC box header on top, two 1x20 pin rows underneath 0.3" apart to straddle the breadboard channel, and forty straight traces. Nothing is bussed. The shroud key means the ribbon can only seat one way at that end. Order it in the same JLCPCB batch (fab/cobbler/PiCoCo-Cobbler-gerbers.zip, plain 2-layer, no gold fingers needed). Parts: one 2x20 shrouded box header, two 1x20 pin headers, soldered with the pin headers on the bottom.

Assembly notes

  • Cobbler: solder the two 1x20 pin headers on the bottom (long pins down) and the box header on top. Trim the box header's pin stubs flush on the bottom; they sit over the breadboard's centre channel, and on breadboards where that channel is not a groove the stubs would rest on the plastic.
  • Cobbler: the two pin rows are 0.3" apart, so they land in rows e and f of a standard breadboard, leaving four free holes per signal on each side.
  • Breakout: orientation is the same as a Program Pak: component side (the side with the "1" finger label and all the parts) faces up in a CoCo 3 side slot, i.e. the way the cartridge label would face.
  • Ribbon: 40-way, female IDC both ends, red stripe to pin 1 at both ends. Shorter is better; 15-20 cm is plenty. The CoCo bus has 5 ns TTL edges and only four ground returns in the ribbon, so a 50 cm cable will ring.

Before the first insertion (five minutes with a meter)

  1. Breakout, nothing plugged in: no continuity between header pin 9 (+5V) and any of pins 33/34/1/2 (GND); no continuity between any two adjacent header pins except 1-2 and 33-34.
  2. Continuity finger 3 to header pin 3, finger 10 to pin 10, finger 39 to pin 39, finger 40 to pin 40 (spot-check both sides and both rows).
  3. Continuity finger 9 to header pin 9 through F1 (a few ohms).
  4. Ribbon plus cobbler plugged in: continuity from finger 9 to the cobbler pin labelled +5V, and from finger 33 to the cobbler GND pin. If +5V lands on /CTS, a ribbon end is reversed.

Bring-up checks

  1. Board alone in the slot, ribbon unplugged: CoCo boots to BASIC, D1 lights, +5V reads about 5 V at header pin 9.
  2. Logic analyzer on E, Q, R/W, /CTS, /SCS at the breadboard: PEEK(&HC000) pulses /CTS, PEEK(&HFF41) pulses /SCS. On a CoCo 3 BASIC runs from RAM and a $C000 PEEK never reaches the cart; use the $FF41 PEEK.

Power the CoCo off before inserting or removing the board. The fuse protects the CoCo's rail from shorts, not the CoCo from hot-plugging.

Parts

65
QtyValueFootprintReferences
6100nFCapacitor_SMD:C_0805_2012MetricC4, C6, C7, C8, C9, C10
510kResistor_SMD:R_0805_2012MetricR4, R7, R10, R23, R25
4100Resistor_SMD:R_0805_2012MetricR8, R9, R15, R16
4SN74LVC245APackage_SO:SOIC-20W_7.5x12.8mm_P1.27mmU10, U11, U12, U13
310uFCapacitor_SMD:C_0805_2012MetricC1, C2, C16
32N7002Package_TO_SOT_SMD:SOT-23Q2, Q3, Q4
34.7kResistor_SMD:R_0805_2012MetricR1, R2, R3
3FIDFiducial:Fiducial_1mm_Mask2mmFID1, FID2, FID3
2100kResistor_SMD:R_0805_2012MetricR17, R18
210nFCapacitor_SMD:C_0805_2012MetricC13, C14
21kResistor_SMD:R_0805_2012MetricR21, R22
233Resistor_SMD:R_0805_2012MetricR11, R12
2470Resistor_SMD:R_0805_2012MetricR19, R20
1+3V3TestPoint:TestPoint_Pad_1.0x1.0mmTP6
10Resistor_SMD:R_0805_2012MetricR24
11000uF 6.3VCapacitor_SMD:CP_Elec_8x10C12
11uFCapacitor_SMD:C_0805_2012MetricC15
122uFCapacitor_SMD:C_0805_2012MetricC3
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U14
1CART_TIEJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP4
1COCO-CARTPiCoCo:COCO-CART-2.1X1.75P1
1CTS_BUFTestPoint:TestPoint_Pad_1.0x1.0mmTP3
1EXP (Plus-W)Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ1
1E_BUFTestPoint:TestPoint_Pad_1.0x1.0mmTP5
1GNDTestPoint:TestPoint_Pad_1.0x1.0mmTP8
1JP3 hdrConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ2
1JP5 hdrConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ3
1OE_BUSTestPoint:TestPoint_Pad_1.0x1.0mmTP1
1P34_DRVJumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mmJP5
1P34_SELJumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mmJP3
1Pico 2 / RP2350B-Plus-WPiCoCo:Pico-CarrierU1
1RW_BUFTestPoint:TestPoint_Pad_1.0x1.0mmTP2
1SCS_BUFTestPoint:TestPoint_Pad_1.0x1.0mmTP4
1SN74LVC00APackage_SO:SOIC-14_3.9x8.7mm_P1.27mmU15
1SND_CARTTestPoint:TestPoint_Pad_1.0x1.0mmTP7
1SS14Diode_SMD:D_SMAD2
1U10_OE_SELJumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mmJP2

Questions

How big is the PiCoCo PCB?

It measures 98 × 77.2 mm and has 2 copper layers, 1.6 mm thick.

What parts does the PiCoCo use?

65 parts, built around the SN74LVC245AN, AMS1117-3.3, SN74LVC00AD and SS14. 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 PiCoCo KiCad files?

From the cognitivegears/PiCoCo repository on GitHub, at the commit this page was made from: the board is PiCoCo/PiCoCo.kicad_pcb and its schematic PiCoCo/PiCoCo.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the PiCoCo design in my own project?

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

More from cognitivegears/PiCoCo

2
  • 2 layers52.8 × 99 mmPiCoCo Breakout, the printed circuit board in 3D

    PiCoCo Breakout

    cognitivegears/PiCoCo

    CoCo cartridge interface with the Pi Pico

    7 parts4
  • 2 layers62.3 × 23.5 mmPiCoCo Cobbler, the printed circuit board in 3D

    PiCoCo Cobbler

    cognitivegears/PiCoCo

    CoCo cartridge interface with the Pi Pico

    3 parts4

Similar boards

  • 4 layers143 × 162.5 mmVERA MODULE RBL, the printed circuit board in 3D

    VERA MODULE RBL

    gianlucarenzi/Vera-Module-RBL-XE

    [WORK IN PROGRESS - NOT WORKING] VERA video/audio module for ATARI XL/XE (PBI / cartridge, ESP32-S3 + iCE40)

    219 partsGPL-3.0
  • 2 layers125 × 89.5 mmLta logic module, the printed circuit board in 3D

    Lta logic module

    kimballa/like-the-art-pcb

    PCB Schematics for Like The Art project

    113 parts
  • 2 layers121.9 × 73.7 mmSmart io module, the printed circuit board in 3D

    Smart io module

    i-melnichenko/8088-homebrew-computer

    An open-source modular computer built around the Intel 8088 CPU.

    45 parts12MIT
  • 2 layers335 × 218.6 mmMSX Goauld, the printed circuit board in 3D

    MSX Goauld

    leomanes/stargate

    Stargate MSX Compatible Computer

    298 parts18GPL-3.0
  • 2 layers190.5 × 158.4 mm68k dev, the printed circuit board in 3D

    68k dev

    maded2/68000

    68000 Retro computer with Amiga Chipset

    84 parts4Apache-2.0
  • 4 layers119.1 × 99.1 mmIo board, the printed circuit board in 3D

    Io board

    svpetry/Mini8086

    A small 8086 computer system.

    87 parts3
  • 4 layers72.6 × 170 mmOpenJBOD RP2040, the printed circuit board in 3D

    OpenJBOD RP2040

    OpenJBOD/rp2040

    This repository contains the hardware design files OpenJBOD RP2040 Baseboard.

    129 parts87CERN-OHL-P-2.0
  • 2 layers90.2 × 90 mmSra dev board 2026, the printed circuit board in 3D

    Sra dev board 2026

    SRA-VJTI/sra-board-hardware-design

    ESP32-based Development Board for Robotics and Embedded Applications

    219 parts81MIT