Skip to the content
PCBKitNew board
2 layers100 × 100 mmCarrier, the printed circuit board in 3D

Carrier PCB for the protocol-emulator demo bench: Icepi Zero, two Picos and every part the demos use

Size
100 × 100 mm
Copper layers
2
Thickness
1.6 mm
Parts
65
Nets
47
Pads
275
Tracks, vias
665, 224
Pours
2
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
15 Oct 2026
Updated
15 Oct 2026

Overview

Carrier is an open-source printed circuit board by MarcosAsh, from the MarcosAsh/protocol-emulator-bench repository on GitHub, published under the CERN-OHL-P-2.0 licence. It is a 2-layer board of 100 × 100 mm with 65 parts on 47 nets, routed with 665 tracks and 224 vias.

It is built around the 74AHCT125D, DS18B20 and M2.5. Its parts include 19 resistors, 17 connectors, 5 capacitors, 3 ICs and 3 diodes. It belongs with the RP2040 boards of this library.

Main components

3

README

README.md

protocol-emulator bench

The carrier board for the protocol-emulator demo bench. An Icepi Zero (ECP5) plays the chip and two Raspberry Pi Picos drive and check it. The board wires them to every outside part the demos use: two CAN transceivers, an I2C EEPROM, a DS18B20, SPI flash, a NeoPixel stick, SWD into the second Pico, 10BASE-T and two logic analysers.

top of the board

v1.2, 100 x 100 mm, two layers, all through-hole, 47 nets, DRC clean. JLCPCB made and assembled it in October 2026. The main repo's demo/carrier_check.sh tests every net it can reach on an assembled board.

Files

PathWhat
carrier/gen.pybuilds the whole board from its parts and nets tables, then routes, checks and plots it
carrier/carrier.kicad_pcbthe board, KiCad 9
carrier/netlist.csv, carrier/bom.csvnets by pad, and the parts list with what you plug in yourself
carrier/carrier_jlcpcb_gerbers.zipgerbers and drills, as ordered
carrier/jlcpcb/JLC assembly BOM and placement files as ordered, and the note on what you fit after delivery
carrier/renders/top and bottom renders and each layer

Ordering one

Upload carrier_jlcpcb_gerbers.zip to JLCPCB, then jlcpcb/jlc_bom.csv and jlcpcb/jlc_cpl.csv for through-hole assembly. Check pin 1 of J1, J13-J16, U3, U4 and U5 in their placement preview. jlcpcb/assembly_note.txt lists the boards and parts that plug in afterwards.

Rebuilding

Needs KiCad 9 and its Python module on Linux. From carrier/, python3 gen.py rebuilds everything and keeps the saved routing while placement and nets are unchanged. python3 gen.py --reroute routes again with Freerouting, which it expects at tools/freerouting.jar.

Licence

CERN-OHL-P v2, see LICENSE.

Parts

65
QtyValueFootprintReferences
4M2.5MountingHole:MountingHole_2.7mm_M2.5H5, H6, H7, H8
4M3MountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
3100nCapacitor_THT:C_Disc_D3.0mm_W1.6mm_P2.50mmC2, C4, C5
31kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR8, R9, R10
31kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P2.54mm_VerticalR17, R18, R19
3GNDTestPoint:TestPoint_Keystone_5000-5004_MiniatureTP1, TP2, TP3
210kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR2, R3
210uCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mmC1, C3
2220RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR11, R12
22k2Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR5, R6
247RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR14, R15
24k7Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR7, R13
2greenLED_THT:LED_D3.0mmD1, D2
1120RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P2.54mm_VerticalR1
1330RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR4
1470RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P2.54mm_VerticalR16
174AHCT125Package_DIP:DIP-14_W7.62mm_SocketU3
1ANALYSER AConnector_PinHeader_2.54mm:PinHeader_1x09_P2.54mm_VerticalJ2
1ANALYSER BConnector_PinHeader_2.54mm:PinHeader_1x09_P2.54mm_VerticalJ3
1CAN AConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ4
1CAN A BUSConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ5
1CAN BConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ6
1CAN B BUSConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ7
1CANHTestPoint:TestPoint_Keystone_5000-5004_MiniatureTP4
1CANLTestPoint:TestPoint_Keystone_5000-5004_MiniatureTP5
1DQTestPoint:TestPoint_Keystone_5000-5004_MiniatureTP6
1DS18B20Package_TO_SOT_THT:TO-92_Inline_WideU5
1EEPROMConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ10
1ETHERNETConnector_PinHeader_2.00mm:PinHeader_2x03_P2.00mm_VerticalJ11
1I2CConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ17
1Icepi Zerocarrier:IcepiZero_Socket_2x20_FaceDownJ1
1NEOPIXELConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ9
1Pico A leftcarrier:PinSocket_1x20_P2.54mm_Vertical_NoSilkJ13
1Pico A rightcarrier:PinSocket_1x20_P2.54mm_Vertical_NoSilkJ14
1Pico B leftcarrier:PinSocket_1x20_P2.54mm_Vertical_NoSilkJ15
1Pico B rightcarrier:PinSocket_1x20_P2.54mm_Vertical_NoSilkJ16
1REPLUGButton_Switch_THT:SW_PUSH_6mmSW1
1SCLTestPoint:TestPoint_Keystone_5000-5004_MiniatureTP8
1SDATestPoint:TestPoint_Keystone_5000-5004_MiniatureTP7
1SPAREConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ12
1SWDConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ8
1TERMConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP1
1W25Q64 breakoutPackage_DIP:DIP-8_W7.62mm_SocketU4
1redLED_THT:LED_D3.0mmD3

Questions

How big is the Carrier PCB?

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

What parts does the Carrier use?

65 parts, built around the 74AHCT125D, DS18B20 and M2.5. 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 Carrier KiCad files?

From the MarcosAsh/protocol-emulator-bench repository on GitHub, at the commit this page was made from: the board is carrier/carrier.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Carrier design in my own project?

Its repository publishes it under the CERN-OHL-P-2.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

  • 4 layers58.3 × 32 mmPhantasm, the printed circuit board in 3D

    Phantasm

    woundedlion/pov

    Spherical Persistence of Vision Display

    36 parts2
  • 2 layers90 × 48.9 mmEsp32 octal wled, the printed circuit board in 3D

    Esp32 octal wled

    klaus-liebler/esp32_octal_wled

    79 partsMIT
  • 2 layers100 × 86.5 mmSensactUp as Hs, the printed circuit board in 3D

    SensactUp as Hs

    klaus-liebler/sensact

    Es gibt vier Namespaces für Nachrichten "REQUEST" und "RESPONSE", "EVENT" und "ACKNOWLEDGE". Dies wird mit den beiden LSB des Versions-Namespace-Bytes erklärt (Somit bleiben 64 Versionierungsmöglichkeiten) Alle vier…

    57 parts4Apache-2.0
  • 2 layers333.4 × 149.9 mmOmega Mainboard, the printed circuit board in 3D

    Omega Mainboard

    skiselev/omega

    Omega Home Computer

    248 parts459GPL-3.0
  • 2 layers45 × 54 mmRusty hangulclock, the printed circuit board in 3D

    Rusty hangulclock

    suapapa/HangulClock

    원조 한글시계. (Rust, Go, Arduino 구현)

    15 parts49
  • 2 layers333.4 × 149.9 mmOmega Mainboard, the printed circuit board in 3D

    Omega Mainboard

    merlinkv/Omega_MSX2

    Update of the Omega Home Computer Project

    265 parts40GPL-3.0
  • 2 layers273.8 × 109 mmTrueStrike42, the printed circuit board in 3D

    TrueStrike42

    byungyoonc/TrueStrike42

    TrueStrike42 is a columnar staggered unibody split keyboard designed to maximize performance and minimize finger fatigue.

    167 parts24
  • 4 layers65.4 × 53.3 mmWaterdrop esphome, the printed circuit board in 3D

    Waterdrop esphome

    twasilczyk/waterdrop-esphome

    Waterdrop RO system smart Wi-Fi module for Home Assistant

    39 parts15MIT