

PiCoCo
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
4SN74LVC245AN
DIP-20UncategorisedTexas InstrumentsAMS1117-3.3
SOT-223-40℃~+125℃ 0.003%Vout 1 1.1V@(800mA) 15V 1A 3.3V 5mA 72dB@(120Hz) Fixed Over Current Protection、Short Circuit Protection、Thermal shutdown Positive SOT-223 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSAdvanced Monolithic SystemsVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsSN74LVC00AD
SOIC-14-40℃~+125℃ 1.65V~3.6V 1.7V~2V 1uA 2 24mA 24mA 2V 4 4.1ns@3.3V,50pF 74LVC Series 800mV 800mV NAND Gate SOIC-14 Logic Gates ROHSTexas InstrumentsLogic GatesSS14
SMA(DO-214AC)-55℃~+150℃ 1A 25A 300uA@40V 40V 550mV@1A Independent SMA(DO-214AC) Schottky Diodes ROHSMDDSchottky Diodes
README
breakout/README.mdPiCoCo 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.
CoCo slot ──[this board]──40-way IDC ribbon──[2x20-to-breadboard adapter]──breadboardEverything 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
| Ref | Part | Purpose |
|---|---|---|
| P1 | 40 gold fingers (PiCoCo:COCO-CART-FINGERS) | mates with the CoCo slot |
| J1 | 2x20 shrouded (keyed) IDC box header, vertical | header pin n = cart pin n; the key stops a reversed ribbon |
| F1 | 0.5 A hold polyfuse, 1812 | in series with +5V so a breadboard slip cannot short the CoCo's 5 V rail |
| C1 | 10 uF 0805 X5R, >= 10 V | +5V bulk after the fuse |
| C2 | 100 nF 0805 | +5V bypass |
| R1 + D1 | 1 kΩ 0805 + 0805 LED | power 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
| Ref | Qty | Value | Example part |
|---|---|---|---|
| J1 | 1 | 2x20 shrouded IDC box header, 2.54 mm, vertical, through-hole | any generic "2x20 box header"; overhangs the board edges, see above |
| F1 | 1 | polyfuse 0.5 A hold / 1 A trip, 1812 | Bourns MF-MSMF050-2, Littelfuse 1812L050 |
| C1 | 1 | 10 uF 0805 X5R 10 V | same as the main PiCoCo BOM |
| C2 | 1 | 100 nF 0805 X7R | same as the main PiCoCo BOM |
| R1 | 1 | 1 kΩ 0805 | |
| D1 | 1 | LED 0805, any colour | cathode (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-Cobblerboard 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:
bash tools/gen_fab.sh breakout/PiCoCo-Breakout.kicad_pcb fab/breakoutUse 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):
| Rule | Requirement | This board |
|---|---|---|
| finger to board edge, 30° bevel, 1.6 mm | JLC bevel depth 1.13 mm (order form); help page says >= 0.6 mm; PCBWay >= 0.5 mm | 1.30 mm |
| copper in the bevel zone | none | none: fingers end at 1.30 mm, pours stop 11 mm up, traces leave pads inward |
| pads / plated holes near fingers | >= 1.0 mm | nearest is J1 at ~38 mm |
| board size after bevel | JLC >= 50 x 50 mm, PCBWay width > 45 mm | 52.8 x 99 mm (inside the 100 x 100 mm price tier) |
| fingers on one edge only | yes | yes |
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.
| Pin | Signal | Dir | Pin | Signal | Dir |
|---|---|---|---|---|---|
| 1 | GND (cart -12 V finger open) | 2 | GND (cart +12 V finger open) | ||
| 3 | /HALT | in, open collector | 4 | /NMI | in |
| 5 | /RESET | out (also driven by reset button) | 6 | E | out |
| 7 | Q | out | 8 | /CART | in (FIRQ) |
| 9 | +5V (after F1) | power | 10 | D0 | bidi |
| 11 | D1 | bidi | 12 | D2 | bidi |
| 13 | D3 | bidi | 14 | D4 | bidi |
| 15 | D5 | bidi | 16 | D6 | bidi |
| 17 | D7 | bidi | 18 | R/W | out |
| 19 | A0 | out | 20 | A1 | out |
| 21 | A2 | out | 22 | A3 | out |
| 23 | A4 | out | 24 | A5 | out |
| 25 | A6 | out | 26 | A7 | out |
| 27 | A8 | out | 28 | A9 | out |
| 29 | A10 | out | 30 | A11 | out |
| 31 | A12 | out | 32 | /CTS | out |
| 33 | GND | 34 | GND | ||
| 35 | SND | in (audio) | 36 | /SCS | out |
| 37 | A13 | out | 38 | A14 | out |
| 39 | A15 | out | 40 | /SLENB | in |
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:
| Pin | Pi label | Pin | Pi label |
|---|---|---|---|
| 1 | 3V3 | 2 | 5V |
| 3 | GPIO2 | 4 | 5V |
| 5 | GPIO3 | 6 | GND |
| 7 | GPIO4 | 8 | GPIO14 |
| 9 | GND | 10 | GPIO15 |
| 11 | GPIO17 | 12 | GPIO18 |
| 13 | GPIO27 | 14 | GND |
| 15 | GPIO22 | 16 | GPIO23 |
| 17 | 3V3 | 18 | GPIO24 |
| 19 | GPIO10 | 20 | GND |
| 21 | GPIO9 | 22 | GPIO25 |
| 23 | GPIO11 | 24 | GPIO8 |
| 25 | GND | 26 | GPIO7 |
| 27 | ID_SD | 28 | ID_SC |
| 29 | GPIO5 | 30 | GND |
| 31 | GPIO6 | 32 | GPIO12 |
| 33 | GPIO13 | 34 | GND |
| 35 | GPIO19 | 36 | GPIO16 |
| 37 | GPIO26 | 38 | GPIO20 |
| 39 | GND | 40 | GPIO21 |
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)
- 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.
- 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).
- Continuity finger 9 to header pin 9 through F1 (a few ohms).
- 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
- Board alone in the slot, ribbon unplugged: CoCo boots to BASIC, D1 lights, +5V reads about 5 V at header pin 9.
- 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$C000PEEK never reaches the cart; use the$FF41PEEK.
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| Qty | Value | Footprint | References |
|---|---|---|---|
| 6 | 100nF | Capacitor_SMD:C_0805_2012Metric | C4, C6, C7, C8, C9, C10 |
| 5 | 10k | Resistor_SMD:R_0805_2012Metric | R4, R7, R10, R23, R25 |
| 4 | 100 | Resistor_SMD:R_0805_2012Metric | R8, R9, R15, R16 |
| 4 | SN74LVC245A | Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm | U10, U11, U12, U13 |
| 3 | 10uF | Capacitor_SMD:C_0805_2012Metric | C1, C2, C16 |
| 3 | 2N7002 | Package_TO_SOT_SMD:SOT-23 | Q2, Q3, Q4 |
| 3 | 4.7k | Resistor_SMD:R_0805_2012Metric | R1, R2, R3 |
| 3 | FID | Fiducial:Fiducial_1mm_Mask2mm | FID1, FID2, FID3 |
| 2 | 100k | Resistor_SMD:R_0805_2012Metric | R17, R18 |
| 2 | 10nF | Capacitor_SMD:C_0805_2012Metric | C13, C14 |
| 2 | 1k | Resistor_SMD:R_0805_2012Metric | R21, R22 |
| 2 | 33 | Resistor_SMD:R_0805_2012Metric | R11, R12 |
| 2 | 470 | Resistor_SMD:R_0805_2012Metric | R19, R20 |
| 1 | +3V3 | TestPoint:TestPoint_Pad_1.0x1.0mm | TP6 |
| 1 | 0 | Resistor_SMD:R_0805_2012Metric | R24 |
| 1 | 1000uF 6.3V | Capacitor_SMD:CP_Elec_8x10 | C12 |
| 1 | 1uF | Capacitor_SMD:C_0805_2012Metric | C15 |
| 1 | 22uF | Capacitor_SMD:C_0805_2012Metric | C3 |
| 1 | AMS1117-3.3 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U14 |
| 1 | CART_TIE | Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm | JP4 |
| 1 | COCO-CART | PiCoCo:COCO-CART-2.1X1.75 | P1 |
| 1 | CTS_BUF | TestPoint:TestPoint_Pad_1.0x1.0mm | TP3 |
| 1 | EXP (Plus-W) | Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Vertical | J1 |
| 1 | E_BUF | TestPoint:TestPoint_Pad_1.0x1.0mm | TP5 |
| 1 | GND | TestPoint:TestPoint_Pad_1.0x1.0mm | TP8 |
| 1 | JP3 hdr | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J2 |
| 1 | JP5 hdr | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J3 |
| 1 | OE_BUS | TestPoint:TestPoint_Pad_1.0x1.0mm | TP1 |
| 1 | P34_DRV | Jumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mm | JP5 |
| 1 | P34_SEL | Jumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mm | JP3 |
| 1 | Pico 2 / RP2350B-Plus-W | PiCoCo:Pico-Carrier | U1 |
| 1 | RW_BUF | TestPoint:TestPoint_Pad_1.0x1.0mm | TP2 |
| 1 | SCS_BUF | TestPoint:TestPoint_Pad_1.0x1.0mm | TP4 |
| 1 | SN74LVC00A | Package_SO:SOIC-14_3.9x8.7mm_P1.27mm | U15 |
| 1 | SND_CART | TestPoint:TestPoint_Pad_1.0x1.0mm | TP7 |
| 1 | SS14 | Diode_SMD:D_SMA | D2 |
| 1 | U10_OE_SEL | Jumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mm | JP2 |
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 mm

- 2 layers62.3 × 23.5 mm

Similar boards
- 4 layers143 × 162.5 mm

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 mm

- 2 layers121.9 × 73.7 mm

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 mm

- 2 layers190.5 × 158.4 mm

- 4 layers119.1 × 99.1 mm

- 4 layers72.6 × 170 mm

OpenJBOD RP2040
OpenJBOD/rp2040
This repository contains the hardware design files OpenJBOD RP2040 Baseboard.
129 parts87CERN-OHL-P-2.0 - 2 layers90.2 × 90 mm

Sra dev board 2026
SRA-VJTI/sra-board-hardware-design
ESP32-based Development Board for Robotics and Embedded Applications
219 parts81MIT