
Leomanangka esp32-4-channel relays esp32-4-channel relays
punkfab/pcb-corpus
235 real KiCad boards from open-source hardware repositories, prepared as a placement and routing benchmark

Reload now
Walkeeg v3.0 is an open-source printed circuit board by WalkEEG, from the WalkEEG/WalkEEG repository on GitHub. It is a 2-layer board of 107 × 137 mm with 106 parts on 85 nets, routed with 520 tracks and 69 vias.
It is built around the CH340C, W25Q80DVSSIG and AMS1117-3.3, with the PRTR5V0U2X among its other parts. Its parts include 14 capacitors, 14 connectors, 12 resistors, 5 ICs and 2 diodes.
An open-source wearable biosignal platform for EEG, ECG and EMG.
Schematics, firmware, mobile app, cloud backend — and a 500 Hz live browser dashboard. Built for BCI research, education, and anyone curious about the electrical activity inside their body.
WalkEEG captures electrophysiological signals from the body, streams them wirelessly, and makes them visible in real time — on a phone, in a browser, or in a desktop oscilloscope.
| Signal | Source | Amplitude | Bandwidth |
|---|---|---|---|
| EEG — Electroencephalography | Cortical neurons firing together | 10 – 100 µV | 0.5 – 100 Hz |
| ECG — Electrocardiography | The electrical sequence pacing each heartbeat | 0.5 – 5 mV | 0.05 – 150 Hz |
| EMG — Electromyography | Motor units contracting a muscle | 10 – 1000 µV | 20 – 500 Hz |
These span four orders of magnitude in amplitude. A front end that handles all three rates its noise against the weakest (EEG) while keeping enough headroom for the strongest (EMG) — which is what an 80–120 dB CMRR analog front end delivers.
walkeeg/
├── 01-hardware/ KiCad schematics — analog front end, power, connectors
├── 02-firmware/ nRF52840 firmware (Zephyr / Nordic Connect SDK)
├── 03-PC program/ Desktop oscilloscope (LabVIEW, EN + Chinese)
├── 04-MATLAB program/ Analysis scripts (legacy, optional)
├── 05-Flutter program/ iOS + Android app
├── 06-website/ www.walkeeg.com (static, S3 + CloudFront)
├── 07-backend/ AWS SAM — one deployment example, not the platform
├── 08-realtime/ 500 Hz WebSocket relay + live browser dashboard
├── algorithms/ Platform-neutral signal statistics (stdlib Python)
└── docs/ Design notes and interface specs
└── algorithms/ Algorithm contracts + conformance tests| Component | Stack | Status |
|---|---|---|
| Hardware | KiCad 10 · AD8232 + ADS1293 | v3.0 |
| Firmware | nRF52840 · Zephyr · BLE 5.0 (2M PHY, DLE, MTU 498) | working |
| Mobile app | Flutter 3.16+ · Dart 3.3+ | iOS + Android |
| PC software | LabVIEW | released |
| Backend | AWS SAM · Node 20 | deployed |
| Live dashboard | Node · WebSocket · vanilla JS | working |
The firmware targets the nRF52840 and builds with Nordic Connect SDK. A complete, verified toolchain lives at /opt/nordic/ncs/v2.5.99-dev1 on macOS — but any recent NCS works.
# 1. Source the NCS environment (adjust paths to your install)
export ZEPHYR_BASE=/path/to/ncs/zephyr
export ZEPHYR_TOOLCHAIN_VARIANT=zephyr
export ZEPHYR_SDK_INSTALL_DIR=/path/to/ncs/toolchains/*/opt/zephyr-sdk
# 2. Build from inside the NCS west workspace — not from the app dir
west build -b nrf52840dk/nrf52840 -d /tmp/build-walkeeg 02-firmware
# 3. Flash (Nordic boards)
nrfutil device recover --serial-number <SN>
nrfutil device program --serial-number <SN> --firmware /tmp/build-walkeeg/zephyr/zephyr.hex
nrfutil device reset --serial-number <SN>Building with J-Link instead? Older J-Link firmware (e.g. V9) can fail to program the nRF52840 — erase succeeds, writes silently don't stick. Use
nrfutilinstead.
Startup diagnostics. The firmware blinks the run LED N times to report how far it got:
| Blinks | Meaning |
|---|---|
| 1 | bt_enable() OK |
| 2 | NUS service initialised |
| 3 | Analog front end initialised |
| 4 | BLE advertising started |
| 8 | bt_le_adv_start() failed |
cd "05-Flutter program"
cp lib/config/app_config.example.dart lib/config/app_config.dart # then fill in your AWS values
flutter pub get
flutter runRequires Bluetooth permissions. On iOS, add NSBluetoothAlwaysUsageDescription to Info.plist.
cd 08-realtime
npm install
node server.js # http://0.0.0.0:8787
node simulate.js # optional: synthetic 500 Hz sourceOpen http://<your-lan-ip>:8787. The phone relays frames over WebSocket to /ingest; browsers subscribe at /live.
AD8232 nRF52840 Phone / PC
┌──────────┐ analog ┌────────────┐ BLE ┌────────────┐
│ Electrodes│ ────────▶ │ SAADC │ ────────▶ │ Flutter │
│ + AFE │ 10-1000µV│ + NUS GATT│ 2 Mbps │ app │
└──────────┘ └────────────┘ └─────┬──────┘
│ WebSocket
▼
┌──────────────────┐
│ 08-realtime │
│ browser dashboard│
└──────────────────┘magic 'W' (0x57) | version (1) | seq (u16 LE) | t_ms (u64 LE) | n (u8) | ch[8][n] (u16 LE)
└──────────────────────────── 13-byte header ─────────────────────────────┘8 channels, 500 Hz, n = 50 samples per batch → ~10 frames per second.
| Path | What you'll find |
|---|---|
01-hardware/ | KiCad 10 project, AD8232 / ADS1293 front ends, connector pinouts |
02-firmware/ | Zephyr application, board overlays, Kconfig switches |
05-Flutter program/ | Cross-platform app, BLE link, relay service |
06-website/ | Static site source, deployed to S3 + CloudFront |
07-backend/ | AWS SAM deployment example (optional if you're not on AWS) |
08-realtime/ | WebSocket relay and browser charting |
algorithms/ | Reusable signal statistics — stdlib Python, no cloud SDK |
docs/ | Interface specs, migration notes, hardware revisions |
docs/algorithms/ | Platform-neutral signal processing contracts |
Issues and pull requests are welcome. Before opening a PR:
docs/ in the same commit.Signal processing is specified once in docs/algorithms/ and
implemented once in algorithms/. That pair is the only place the
math should exist.
algorithms/. 07-backend/ is just
one way to run them, on one cloud. Swap it for cron, a Kubernetes job, or a
laptop script without touching the math.docs/algorithms/conformance.md against the
same fixtures.Run the contract tests at any time:
python3 algorithms/python/conformance_test.pySee CONTRIBUTING.md for details (coming soon).
MIT — see LICENSE.
Copyright (c) 2026 the WalkEEG team · www.walkeeg.com
| Qty | Value | Footprint | References |
|---|---|---|---|
| 52 | TestPoint | Connector_PinSocket_2.54mm:PinSocket_1x01_P2.54mm_Vertical | TP1, TP2, TP10, TP11, TP12, TP13, TP14, TP15, TP16, TP17, TP18, TP19, TP20, TP21, TP22, TP23 +36 |
| 9 | 100nF | Capacitor_SMD:C_0603_1608Metric | C1, C2, C4, C5, C6, C8, C10, C12, C13 |
| 8 | 10k | Resistor_SMD:R_0603_1608Metric | R1, R2, R3, R4, R5, R11, R12, R13 |
| 8 | AD8232_connector | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J3, J4, J5, J6, J7, J8, J9, J10 |
| 4 | 10uF | Capacitor_SMD:C_0805_2012Metric | C3, C7, C9, C11 |
| 3 | 120R 0.55A | Inductor_SMD:L_0603_1608Metric | FB1, FB2, FB3 |
| 2 | 1k | Resistor_SMD:R_0603_1608Metric | R9, R10 |
| 2 | 220R | Resistor_SMD:R_0603_1608Metric | R7, R8 |
| 2 | Con_2_core | Connector_PinHeader_2.54mm:PinHeader_2x13_P2.54mm_Vertical | J1, J2 |
| 2 | LED | LED_SMD:LED_0805_2012Metric | LED1, LED2 |
| 1 | 10nF | Capacitor_SMD:C_0603_1608Metric | C14 |
| 1 | ADS1293 | Connector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_Vertical | J11 |
| 1 | AMS1117-3.3 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U8 |
| 1 | CH340C | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U7 |
| 1 | Conn_02x05_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_Vertical | J15 |
| 1 | H1 | MountingHole_3.2mm_M3 | H1 |
| 1 | H2 | MountingHole_3.2mm_M3 | H2 |
| 1 | H3 | MountingHole_3.2mm_M3 | H3 |
| 1 | Micro_SD_Card | Connector_Card:microSD_HC_Hirose_DM3AT-SF-PEJM5 | U6 |
| 1 | PRTR5V0U2X | Package_TO_SOT_SMD:SOT-143 | U9 |
| 1 | SW_Push | Button_Switch_SMD:SW_Push_1P1T_NO_CK_KMR2 | SW1 |
| 1 | USB_B_Micro | Connector_USB:USB_Micro-B_Molex-105017-0001 | J13 |
| 1 | USB_B_Micro_UART | Connector_USB:USB_Micro-B_Molex-105017-0001 | J12 |
| 1 | W25Q80DVSSIG | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U5 |
It measures 107 × 137 mm and has 2 copper layers, 1.6 mm thick.
106 parts, built around the CH340C, W25Q80DVSSIG, AMS1117-3.3 and PRTR5V0U2X. 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.
From the WalkEEG/WalkEEG repository on GitHub, at the commit this page was made from: the board is 01-hardware/walkeeg_v3.0/walkeeg_v3.0.kicad_pcb and its schematic 01-hardware/walkeeg_v3.0/walkeeg_v3.0.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask WalkEEG before reusing the design.

punkfab/pcb-corpus
235 real KiCad boards from open-source hardware repositories, prepared as a placement and routing benchmark

Spaceflight-Rocketry-Giessen-e-V/Telemetry
Open-Source Rocket Telemetry System Based On Radiocrafts RC232 Radio Modules

mbed-ce/mbed-ce-ci-shield-v2
New version of the Mbed OS CE CI Shield -- a shield containing a logic analyzer and components to test features like I2C, SPI, and PWM.

Ashley-Ann-Benoy/Digital-Stethoscope
A digital stethoscope that amplifies, filters, and digitally processes heart sounds for enhanced diagnostics and remote monitoring.



