Skip to the content
2 layersW5500 Board, the printed circuit board in 3D

An automated, programmatically designed, placed, and routed High-Speed Galvanically Isolated Telemetry Node in KiCad 10.0.

Copper layers
2
Thickness
1.6 mm
Parts
39
Nets
34
Pads
182
Tracks, vias
33, 0
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
25 Jun 2026
Updated
25 Jun 2026

Overview

W5500 Board is an open-source printed circuit board by MohammedBACHIRIx, from the MohammedBACHIRIx/code-to-pcb-w5500 repository on GitHub. It is a 2-layer board with 39 parts on 34 nets, routed with 33 tracks and 0 vias.

It is built around the W5500. Its parts include 23 capacitors, 7 resistors, 6 ICs, 2 connectors and 1 crystal.

Main components

1

README

README.md

Programmatic Code-to-PCB: Galvanically Isolated SPI-to-Ethernet Telemetry Node

An automated, programmatically designed, placed, and routed High-Speed Galvanically Isolated Telemetry Node in KiCad 10.0. This repository showcases the "What You See Is What You Code" (WYSIWYC) approach to hardware design, representing schematics and layout designs as clean, version-controlled Python scripts.


🚀 System Architecture & Pipeline

The automated toolchain shifts hardware design from manual GUI layout to versioned, executable code:

LayerEngineImplementation FilePurpose
1. Logic Layercircuit-synth (Python)generate_board.pyProgrammatic schematic definition, pin mapping, and net connection.
2. Verification LayerPython / KiCad CLIverify_board.pyAutomated ERC execution, parsing KiCad's JSON report, and filtering violations.
3. Layout & TranslationKiCad 10.0 pcbnew APIauto_layout.pyNetlist loading, programmatic component placement, and proximity-based decoupling cap clustering.
4. Routing LayerKiCad 10.0 pcbnew APIroute_board.pyProgrammatic point-to-point trace routing for high-speed differential pairs, crystal loops, and power lines.
5. Manufacturing LayerKiCad CLItape_out.pyRun DRC check, export Gerbers, drill files, assembly positions, and zip fabrication package.

⚡ Electrical Diagram

The telemetry node bridges local SPI communications to a Wiznet W5500 Ethernet controller across a galvanically isolated barrier (8mm creepage and clearance gap) with separate power domains and ground planes.

mermaid
graph TD
    subgraph Host Domain ["Host System Domain (Non-Isolated)"]
        J2[2x5 Pin Host Header] -->|VCC_5V| U5[Host LDO: AMS1117-3.3]
        U5 -->|VCC_3V3| U3_A[Si8641 Side A]
        U5 -->|VCC_3V3| U4_A[Si8642 Side A]
        J2 -->|SPI_HOST| U3_A
        J2 -->|RST/INT_HOST| U4_A
        GND[GND Plane]
    end

    subgraph Isolation Barrier ["8mm creepage & clearance gap"]
        U3_A -.-|Galvanic Isolation| U3_B[Si8641 Side B]
        U4_A -.-|Galvanic Isolation| U4_B[Si8642 Side B]
        U1[DC-DC: Mornsun B0505S-1WR3] -.-|Power Isolation| U1_Out[Isolated 5V]
    end

    subgraph Isolated Domain ["Network Domain (Isolated)"]
        U1_Out -->|ISO_5V| U6[Isolated LDO: AMS1117-3.3]
        U6 -->|ISO_3V3| U3_B
        U6 -->|ISO_3V3| U4_B
        U6 -->|ISO_3V3| U2[W5500 Ethernet Controller]
        U3_B -->|SPI_ISO| U2
        U4_B -->|RST/INT_ISO| U2
        U2 -->|Differential PHY| J1[Hanrun HR911105A MagJack]

🛠️ Layout & Placement Rules

Programmatic Bypass Capacitor Proximity (1.5mm Rule):

High-frequency decoupling capacitors are programmatically clustered within 1.5mm of the target IC power pins using the KiCad 10.0 pcbnew Python API:

  • C10, C11, C12, C13, C15, C16: Decouples W5500 supply pins (AVDD / VDD).
  • C6, C7, C8, C9: Decouples the digital isolators' supply pins.
  • C2, C3, C4, C5: Decouples input/output lines of the host and isolated LDOs.

Programmatic Trace Routing Specs:

  1. Differential Ethernet Pairs (F.Cu, 0.3mm / 12 mils): Direct differential traces between W5500 TXP/TXN/RXP/RXN and the Hanrun MagJack.
  2. 25MHz Crystal Oscillator Loop (F.Cu, 0.2mm / 8 mils): Minimized-area loop connecting the W5500 XI/XO pins to the Y1 crystal and C21/C22 load capacitors, returning directly to the nearest digital ground pin.
  3. Power Routing (F.Cu, 0.5mm / 20 mils): Thick power lines routing 5V/3.3V power rails to support peak current demands.

📦 Manufacturing Packaging & DFM

Running tape_out.py executes the full post-routing workflow:

  • Runs Design Rule Checks (DRC).
  • Generates Gerber copper/solder mask/silkscreen layers.
  • Generates Excellon NC drill files.
  • Produces SMD Assembly Placement CSV (positions.csv).
  • Packs all deliverables into W5500_Board_Tapeout.zip.

⚡ Quick Start

1. Requirements

  • KiCad 10.0.x
  • Python 3.10+ with circuit-synth and reportlab (installed inside virtual env)

2. Run the Toolchain

Use KiCad's Python environment to execute the steps:

powershell
# 1. Generate schematic and netlist
python generate_board.py

# 2. Run ERC verification and compile reports
python verify_board.py

# 3. Perform component auto-layout and pad matching
python auto_layout.py

# 4. Route differential signals, crystal loops, and power tracks
python route_board.py

# 5. Perform DFM check and generate manufacturing package
python tape_out.py

Parts

39
QtyValueFootprintReferences
140.1uFC_0603_1608MetricC6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C18, C23, C24
510uFC_0805_2012MetricC2, C3, C4, C5, C17
310kR_0603_1608MetricR3, R4, R5
218pFC_0603_1608MetricC21, C22
2330RR_0603_1608MetricR6, R7
110nFC_0603_1608MetricC19
112.4k 1%R_0603_1608MetricR1
11MR_0603_1608MetricR2
11uFC_0603_1608MetricC20
125MHzCrystal_SMD_3225-4Pin_3.2x2.5mmY1
1Hanrun_HR911105ARJ45_Hanrun_HR911105A_HorizontalJ1
1Host_InterfacePinHeader_2x05_P2.54mm_VerticalJ2
1Mornsun_B0505S-1WR3Converter_DCDC_TRACO_TMA-05xxS_12xxS_Single_THTU1
1Si8641SOIC-16W_7.5x10.3mm_P1.27mmU3
1Si8642SOIC-16W_7.5x10.3mm_P1.27mmU4
1TLV1117LV33_HostSOT-223-3_TabPin2U5
1TLV1117LV33_IsolatedSOT-223-3_TabPin2U6
1W5500LQFP-48_7x7mm_P0.5mmU2

Similar boards

  • 2 layers79 × 38 mmEthersweep, the printed circuit board in 3D

    Ethersweep

    Neumi/ethersweep

    Open Source, easy to use Ethernet connected stepper motor controller. Built in FreeCAD, KiCAD and Arduino.

    111 parts587
  • 4 layers119 × 79 mmLuxdmx, the printed circuit board in 3D

    Luxdmx

    tombueng/LuxDMX

    Open-source Art-Net / sACN (E1.31) → DMX512 gateway for ESP32 / ESP32-S3 / Ethernet. Live web UI shows all 512 channels in real time, flags console conflicts, and drives galvanically-isolated DMX.

    97 parts97
  • 2 layers52.3 × 21.8 mmW5500, the printed circuit board in 3D

    W5500

    multigcs/riocore

    riocore

    38 parts91GPL-2.0
  • 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
  • 4 layers100 × 75 mmFreedo radio, the printed circuit board in 3D

    Freedo radio

    CappyT/freedo

    Local coordinator for tado V3+ heating devices, with a Home Assistant integration and add-on

    135 parts33Apache-2.0
  • 2 layers123 × 87.5 mmFastLOGIC, the printed circuit board in 3D

    FastLOGIC

    Neumi/fastLOGIC

    An affordable Arduino-based board designed for straightforward (industrial) logic control, ideal for building small-scale automation and control solutions.

    180 parts23MIT
  • 2 layers67 × 100 mmNpr revB, the printed circuit board in 3D

    Npr revB

    slintak/NPR70

    The New Packet Radio on 70 cm band. Based on the project NPR from F4HDK.

    136 parts23GPL-3.0
  • 4 layers190 × 100 mmRioctrl controller, the printed circuit board in 3D

    Rioctrl controller

    festlv/rioctrl-hw

    Hardware design for modular CNC controller

    281 parts16CERN-OHL-S-2.0

Questions

What parts does the W5500 Board use?

39 parts, built around the W5500. 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 W5500 Board KiCad files?

From the MohammedBACHIRIx/code-to-pcb-w5500 repository on GitHub, at the commit this page was made from: the board is W5500_Board/W5500_Board.kicad_pcb and its schematic W5500_Board/W5500_Board.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the W5500 Board design in my own project?

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