

Isolator
A galvanic isolator dongle between the Kelly KLS7218M SM-4P port (floating, traction-pack referenced) and the OBD-powered RejsaCAN.
- Size
- 50 × 32 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 19
- Nets
- 10
- Pads
- 33
- Tracks, vias
- 39, 2
- Routed
- Yes
- KiCad
- KiCad 7 (file 20221018)
- Created
- 9 May 2026
- Updated
- 6 Nov 2026
Overview
Isolator is an open-source printed circuit board by schmmd, from the schmmd/soleCAN repository on GitHub, published under the Apache-2.0 licence. It is a 2-layer board of 50 × 32 mm with 19 parts on 10 nets, routed with 39 tracks and 2 vias.
Its parts include 8 connectors, 3 capacitors, 2 ICs, 1 resistor and 1 diode. It belongs with the interfaces and adapters boards of this library.
README
kelly/isolator-pcb/README.mdKelly UART isolator PCB
A galvanic isolator dongle between the Kelly KLS7218M SM-4P port (floating,
traction-pack referenced) and the OBD-powered RejsaCAN. Electrical design
rationale, part choices, and behavior notes live in ../ISOLATOR.md; this
directory only adds the board.
Files
generate_board.py— writesisolator.kicad_pcbfrom scratch. The script is the source of truth; edit it and re-run rather than editing the board in KiCad (or fork the.kicad_pcbif you prefer the GUI from here on). Output is deterministic — tstamp UUIDs are derived from the element each one belongs to, so re-running with no changes produces a byte-identical file and a real edit shows up in the diff as itself, not as 187 churned UUIDs.isolator.kicad_pcb— generated KiCad board (opens in KiCad 7+).gerbers/— fab outputs (RS-274X + Excellon), exported with KiCad 10kicad-cli. Zip the directory (command below) and upload to JLCPCB/PCBWay/ OSH Park. 2-layer, 50 x 32 mm, 1.6 mm, any finish; no special options.render_top.png/render_bottom.png— 3D renders for a quick look.
Regenerate everything:
python3 generate_board.py
KICLI=/Applications/KiCad/KiCad.app/Contents/MacOS/kicad-cli
$KICLI pcb drc --severity-error isolator.kicad_pcb
$KICLI pcb export gerbers --layers F.Cu,B.Cu,F.Mask,B.Mask,F.SilkS,B.SilkS,Edge.Cuts -o gerbers/ isolator.kicad_pcb
$KICLI pcb export drill --format excellon --excellon-units mm --generate-map --map-format gerberx2 -o gerbers/ isolator.kicad_pcb
(cd gerbers && zip -q ../isolator-gerbers.zip isolator-*.gb* isolator-*.gt* isolator.drl)
$KICLI pcb render --side top --zoom 1.0 --width 1400 --height 950 --quality high -o render_top.png isolator.kicad_pcb
$KICLI pcb render --side bottom --zoom 1.0 --width 1400 --height 950 --quality high -o render_bottom.png isolator.kicad_pcbGenerate-time checks
generate_board.py asserts these on every run, against the emitted board
rather than its own variables:
- U1 pads match the ADuM1201 pinout (
ADUM1201, transcribed from datasheet Rev. L Fig. 5). - Package shape: supplies on pins 1/8, grounds on 4/5, signals on 2/3/6/7. This is a different statement than "Fig. 5 says X", so it still fires if the transcription itself is wrong — which is the hole rev A fell through. Rev A's pinout fails it.
- Isolation barrier: no copper of a Kelly-domain net may reach the chassis-domain side or vice versa. Measures the gap and requires ≥ 3.5 mm; currently 3.80 mm.
- Nothing dangling: every net lands on at least two pads.
What none of them catch: a wrong fact that is wrong everywhere. If the
datasheet transcription and the package-shape rule were both wrong in the
same direction, the board would still be wrong. The defence against that is
a meter on a physical board: the GND1-to-GND2 open check in
../ISOLATOR.md "Power-up check".
Parts
19| Qty | Value | Footprint | References |
|---|---|---|---|
| 8 | solecan:WirePad_3.6mm | J1, J2, J3, J4, J5, J6, J7, J8 | |
| 4 | solecan:Hole_3.2_NPTH | H1, H2, H3, H4 | |
| 3 | solecan:C_disc_2.54 | C1, C2, C3 | |
| 1 | solecan:TO-92_78L05 | U2 | |
| 1 | solecan:LED_5mm | D1 | |
| 1 | solecan:R_axial_7.62 | R1 | |
| 1 | solecan:SOIC-8_ADuM1201 | U1 |
Questions
How big is the Isolator PCB?
It measures 50 × 32 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Isolator use?
19 parts. 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 Isolator KiCad files?
From the schmmd/soleCAN repository on GitHub, at the commit this page was made from: the board is kelly/isolator-pcb/isolator.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the Isolator design in my own project?
Its repository publishes it under the Apache-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
- 2 layers43.9 × 27.7 mm

- 2 layers50 × 60 mm

Debate Device
hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!
19 parts915 - 2 layers102.9 × 96.7 mm

ISA adapter
polpo/picogus
Emulation of ISA sound cards and CD-ROM on Raspberry Pi Pico (GUS, SB/Adlib, MPU-401, Tandy, CMS, Panasonic CD-ROM) with USB mouse/joystick support
19 parts805 - 2 layers60 × 39 mm

- 2 layers70.1 × 43.2 mm

Iaq device
nkitanov/iaq_board
IAQ Board is a DIY (Do-It-Yourself) device for measuring internal air quality
19 parts396 - 2 layers80 × 80 mm

- 2 layers25.4 × 25.4 mm

Ina169
Ardumower/ardumower
Develop an open source robotic lawn mower (HW+SW reference platform)
19 parts282 - 2 layers58.4 × 28.6 mm

New rele
zmaker/arduino_cookbook
gli sketch del nuovo progetto Arduino Cookbook e dei video di YouTube
19 parts269