Skip to the content
PCBKitNew board
2 layers90 × 48 mmIntercom carrier, the printed circuit board in 3D

Intercom carrier

haarts/intercom

A serverless home intercom system based on an ESP32 P4

Size
90 × 48 mm
Copper layers
2
Thickness
1.6 mm
Parts
38
Nets
49
Pads
122
Tracks, vias
88, 1
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
3 Oct 2026
Updated
26 Oct 2026

Overview

Intercom carrier is an open-source printed circuit board by haarts, from the haarts/intercom repository on GitHub. It is a 2-layer board of 90 × 48 mm with 38 parts on 49 nets, routed with 88 tracks and 1 via.

It is built around the BC547. Its parts include 16 resistors, 8 connectors, 6 capacitors and 4 transistors.

Main components

1

README

README.md

Intercom boerderij

A home intercom built from Waveshare ESP32-P4-WIFI6-POE-ETH wall boxes. There are two routes:

  • Mumble: the boxes run a Mumble client. There is one Mumble server for the house, Mumble channels route audio to rooms, and Home Assistant is integrated.
  • lanicom (lanicom/): serverless. Boxes find each other on the LAN and talk directly, with encrypted unicast. No Mumble server, and Home Assistant is optional (it can join as a peer), so friends can build it too. See lanicom/README.md and the plan with its design review in lanicom/PLAN.md.
PathWhat
lanicom/Serverless intercom: protocol spec, C core, ESPHome component, Python CLI, HA integration
esp32-mumble/dchote/esp32-mumble (git subtree) with ESP32-P4 support and audio fixes. Board config: esp32-mumble/esphome/waveshare-esp32-p4-poe.yaml
esphome/p4-bringup.yamlMinimal bring-up config for the board (Ethernet, codec, mic level)
server/mumble/Docker Compose file for the Mumble server (Murmur)
tools/voicetest/End-to-end voice test: play speech near the board, record it from Mumble, score it with Whisper
PROJECT_NOTES.mdDecisions, measurements and open items

Build and flash

sh
python3 -m venv .venv && .venv/bin/pip install esphome==2026.7.1
cd esp32-mumble/esphome
../../.venv/bin/esphome run waveshare-esp32-p4-poe.yaml   # first flash over USB-C, later OTA

The Mumble server address is filled in automatically with Home Assistant's IP when the device is adopted, or set it under the device's "1. Server" setting.

Voice test

sh
tools/voicetest/run.sh local ptt tools/voicetest/berend-nl-pad.wav nl

Plays the clip on this machine's default audio output, records what the board sends to the Mumble server, and prints Whisper's transcript and word error rate. See the comments in run.sh for the options.

Parts

38
QtyValueFootprintReferences
81kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1, R2, R3, R4, R5, R6, R7, R8
5100nFCapacitor_THT:C_Disc_D3.0mm_W1.6mm_P2.50mmC1, C2, C3, C4, C6
40RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR13, R14, R15, R16
410kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR9, R10, R11, R12
4BC547Package_TO_SOT_THT:TO-92_InlineQ1, Q2, Q3, Q4
4MountingHole_3.2mm_M3MountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
110uFCapacitor_THT:CP_Radial_D5.0mm_P2.00mmC5
1Button 1 (JST-XH)Connector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ2
1Button 2 (JST-XH)Connector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ3
1Button 3 (JST-XH)Connector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ4
1Button 4 (JST-XH)Connector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ5
1Off switch (JST-XH)Connector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ8
1P4 pins 1-20Connector_PinSocket_2.54mm:PinSocket_1x20_P2.54mm_VerticalJ1
1P4 pins 21-40Connector_PinSocket_2.54mm:PinSocket_1x20_P2.54mm_VerticalJ7
1Spare GPIO2/3Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ6

Questions

How big is the Intercom carrier PCB?

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

What parts does the Intercom carrier use?

38 parts, built around the BC547. 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 Intercom carrier KiCad files?

From the haarts/intercom repository on GitHub, at the commit this page was made from: the board is hardware/carrier/intercom-carrier.kicad_pcb and its schematic hardware/carrier/intercom-carrier.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Intercom carrier design in my own project?

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

Similar boards

  • 2 layers83.3 × 65.3 mmSimonShield, the printed circuit board in 3D

    SimonShield

    github-linguist/linguist

    Language Savant. If your repository's language is being reported incorrectly, send us a pull request!

    46 parts14kMIT
  • 2 layers56 × 65 mmSeaTalk1, the printed circuit board in 3D

    SeaTalk1

    dotnet/iot

    This repo includes .NET Core implementations for various IoT boards, chips, displays and PCBs.

    24 parts2.4kMIT
  • 2 layers132.1 × 45.7 mmIPoS, the printed circuit board in 3D

    IPoS

    peterheinrich/InternetOverSpaghetti

    Transmitting IP packages over a pair of spaghetti thus demonstrating how media independent IP really is.

    42 parts342
  • 2 layers99.1 × 99.7 mmRC6502 General Video Adapter, the printed circuit board in 3D

    RC6502 General Video Adapter

    tebl/RC6502-Apple-1-Replica

    An expandable SBC-version of the Apple 1 computer, easy to get started with and lot of cool stuff that can be added to it!

    80 parts193GPL-3.0
  • 2 layers55.9 × 38.6 mmMega Amp, the printed circuit board in 3D

    Mega Amp

    theacodes/genesynth

    A Sega Genesis inspired synthesizer

    40 parts178Apache-2.0
  • 2 layers40 × 100 mmBack pcb, the printed circuit board in 3D

    Back pcb

    ZeroPhone/ZeroPhone-PCBs

    PCB files for ZeroPhone - for gerbers and schematics, go to "Releases" tab!

    118 parts148GPL-3.0
  • 2 layers100 × 100 mmCANBuster, the printed circuit board in 3D

    CANBuster

    GBert/misc

    miscellaneous stuff / unsorted

    182 parts99