Skip to the content
4 layers23 × 54 mmXiao c3-ir rf, the printed circuit board in 3D

Xiao c3-ir rf

gjcourt/lab

A curated list of 140 multidisciplinary engineering and skill-building projects

Size
23 × 54 mm
Copper layers
4
Thickness
1.6 mm
Parts
15
Nets
15
Pads
63
Tracks, vias
35, 11
Pours
3
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
22 Feb 2026
Updated
7 Nov 2026

Overview

Xiao c3-ir rf is an open-source printed circuit board by gjcourt, from the gjcourt/lab repository on GitHub. It is a 4-layer board of 23 × 54 mm with 15 parts on 15 nets, routed with 35 tracks and 11 vias.

It is built around the E07-M1101D-TH, AO3400A and XIAO ESP32C3. Its parts include 5 resistors, 4 capacitors, 3 diodes and 1 transistor. It belongs with the radio and wireless boards and the ESP32 and RISC-V boards of this library.

Main components

3

README

06-coffee-espresso/_reference/flow-tap-pcb/README.md

flow-tap interposer — KiCad project

Buffers the stock GICAR flow-meter pulse into ito, in-line and reversible. Design rationale + install steps are in the project doc: 06-015. Topology picture: flow-interposer.svg.

Status (2026-07-13): routed + DRC-clean, fab-ready. The board is generated headlessly (generate_pcb.py, kiutils) and validated with kicad-cli (DRC: 0 violations, 0 unconnected). Gerbers/drill are exported in flow-tap-gerbers.zip; a top render is flow-tap-top.png. Board size ≈ 23.1 × 19.8 mm, 2-layer.

Open flow-tap.kicad_pcb in KiCad for a final eyeball before ordering (mains-adjacent signal). The placement is functional but roomy — you may want to compact it and/or swap the vertical XH headers for right-angle (S…-XH-A) so the cables exit the board edges.

Connectors (resolved)

All three ports are JST XH, 2.5 mm (the GICAR board connector measures 2.0 mm between pins → 2.5 mm pitch; ito's IMPULSE side is XH too).

RefFootprintPinout
J1JST_XH_B4B-XH-A_1x04_P2.50mm_Vertical1 key/blank · 2 +14.3 V (red) · 3 GND (black) · 4 signal (white)
J2JST_XH_B4B-XH-A_1x04_P2.50mm_Verticalmirrors J1 (to Vivaldi, pass-through)
J3JST_XH_B3B-XH-A_1x03_P2.50mm_Vertical1 GND · 2 OUT (buffered) · 3 +5 V — matches ito IMPULSE

The +14.3 V (J1.2/J2.2) passes J1→J2 only and never reaches J3. J3 taps J1.4/J2.4 (signal) buffered through U1, referenced to the shared GND.

Components

RefValue / PartFootprintNotes
U174LVC1G17 (SN74LVC1G17DBVR, TI)SOT-23-5single Schmitt buffer, non-inverting. JLC SMT.
C10.1 µF X7R 50 VC_0603_1608Metricdecoupling at U1 VCC/GND. JLC SMT.
J1GICAR meter (in)JST_XH_B4B-XH-A_1x04 verticalhand-solder.
J2to VivaldiJST_XH_B4B-XH-A_1x04 verticalhand-solder.
J3to itoJST_XH_B3B-XH-A_1x03 verticalhand-solder.

U1 (SN74LVC1G17, DBV/SOT-23-5) pins: 1 NC · 2 A(in) · 3 GND · 4 Y(out) · 5 VCC (per the TI datasheet).

Nets

text
  N_PLUS (14.3 V) : J1.2 — J2.2                              [pass-through ONLY]
  GND             : J1.3 — J2.3 — J3.1 — U1.3 — C1.2         [B.Cu network]
  N_O    (pulse)  : J1.4 — J2.4 — U1.2 (A input)
  V5     (ito 5V) : J3.3 — U1.5 (VCC) — C1.1
  N_OUT  (buffer) : U1.4 (Y) — J3.2

Signals route on F.Cu; GND routes on B.Cu (own layer → never crosses a signal). No copper pour is used, so there is no zone-fill step.

Regenerate / validate / fab (headless)

sh
# 1. generate the board (native, no KiCad needed)
python3 generate_pcb.py footprints flow-tap.kicad_pcb

# 2. validate + export with kicad-cli (KiCad 9; on Apple Silicon use the amd64 image)
docker run --rm --platform linux/amd64 -v "$PWD:/w" -w /w kicad/kicad:9.0 sh -c '
  kicad-cli pcb drc flow-tap.kicad_pcb
  kicad-cli pcb export gerbers -o gerbers/ flow-tap.kicad_pcb
  kicad-cli pcb export drill   -o gerbers/ flow-tap.kicad_pcb
  kicad-cli pcb render --side top -o flow-tap-top.png flow-tap.kicad_pcb'

footprints/ holds the four KiCad-9 footprints the generator places (so it runs without a local KiCad install).

Note: pcbnew Python scripting crashes under amd64 emulation on Apple Silicon (malloc(): unaligned tcache chunk), so this project generates with kiutils (pure Python, native) and only uses the compiled kicad-cli for DRC/export/render.

Order (JLC)

  1. Upload flow-tap-gerbers.zip. Select 2-layer.
  2. Enable SMT assembly (top only) and upload the BOM + CPL:
  3. Hand-solder the three JST-XH connectors (J1/J2/J3) — they're not in the BOM/CPL.
  4. Piggyback on the plumb-in bracket order.

Assembly BOM (2 parts)

DesignatorValuePackageLCSCJLC library
U174LVC1G17SOT-23-5C7836Extended (~$3 one-time)
C1100 nF0603C14663Basic

U1 (TI SN74LVC1G17DBVR) is an Extended part — the ~$3 one-time loading fee is worth it over hand-soldering a SOT-23-5. (If you'd rather avoid the fee, both parts are trivial to hand-solder; the 0603 is easy, the SOT-23-5 wants hot air or a steady hand — leave SMT assembly off and populate them yourself.)

⚠ Verify rotations in JLC's CPL preview before ordering. The CPL carries KiCad's rotations; the 0603 maps 1:1, but U1 (SOT-23-5) commonly needs a rotation offset to line pin 1 up with JLC's part orientation. JLC's online viewer overlays each part on its footprint — spin it there if it looks wrong.

Parts

15
QtyValueFootprintReferences
315RR_0805_2012MetricR1, R2, R3
3940nmLED_D5.0mmD1, D2, D3
2100nFC_0603_1608MetricC1, C3
1100RR_0603_1608MetricR4
110kR_0603_1608MetricR5
110uFC_0805_2012MetricC4
122uFC_0805_2012MetricC2
1AO3400ASOT-23Q1
1E07-M1101DPinSocket_2x04_P2.54mm_VerticalM1
1XIAO_ESP32C3XIAO-ESP32-C3-DIPA1

More from gjcourt/lab

1
  • 2 layers23.2 × 21 mmFlow tap, the printed circuit board in 3D

    Flow tap

    gjcourt/lab

    A curated list of 140 multidisciplinary engineering and skill-building projects

    5 parts

Similar boards

  • 2 layers58.4 × 53.3 mmRf cc1101, the printed circuit board in 3D

    Rf cc1101

    josevas72/rf-cc1101-esp32

    Emisor/receptor RF 433 MHz con ESP32 + CC1101 para Home Assistant (PCB KiCad, ESPHome, caja 3D)

    8 parts3MIT
  • 2 layers58 × 93 mmRF WiFi Bridge, the printed circuit board in 3D

    RF WiFi Bridge

    KHit6/RF-WiFi-Bridge

    A simple hardware design to bridge between 433 MHz devices and WiFi

    20 partsCERN-OHL-W-2.0
  • 2 layers20.3 × 20.3 mmKropelka, the printed circuit board in 3D

    Kropelka

    majkrzak/kropelka

    Fluid level ISM band radio sensor.

    4 parts
  • 2 layers52 × 32 mmSar pager, the printed circuit board in 3D

    Sar pager

    KingCountySAR/iot-beepers

    Bringing back our favorite pager alarms for those late night callouts

    17 parts
  • 4 layers50 × 64 mmMinidrone fc, the printed circuit board in 3D

    Minidrone fc

    yisikawa/minidrone_fc

    KiCADによるdrone基板作成

    45 parts
  • 2 layers40 × 30 mmEsphome xiao base, the printed circuit board in 3D

    Esphome xiao base

    0rax/esphome-xiao-base

    XIAO base board PCB & configuration for ESPHome based sensors.

    10 parts5CERN-OHL-S-2.0
  • 2 layers148 × 61 mmIrrigation controller, the printed circuit board in 3D

    Irrigation controller

    adriencarbonaro/irrigation-controller

    Irrigation System Controller

    40 parts2
  • 2 layers82.7 × 51.9 mmHollow Alarm, the printed circuit board in 3D

    Hollow Alarm

    NLEVEL-GIT/Hollow-Alarm

    An Alarm with Hollow Knight features

    11 parts1

Questions

How big is the Xiao c3-ir rf PCB?

It measures 23 × 54 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Xiao c3-ir rf use?

15 parts, built around the E07-M1101D-TH, AO3400A and XIAO ESP32C3. 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 Xiao c3-ir rf KiCad files?

From the gjcourt/lab repository on GitHub, at the commit this page was made from: the board is 03-homelab-automation/_reference/ir-rf-blaster-pcb/xiao-c3-ir-rf.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Xiao c3-ir rf design in my own project?

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