

EC60-nRF52840
Yet another EC Topre Input, 60% layout
- Size
- 289.4 × 94.6 mm
- Copper layers
- 4
- Thickness
- 1.61 mm
- Parts
- 178
- Nets
- 98
- Pads
- 633
- Tracks, vias
- 6,105, 816
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 26 Oct 2026
- Updated
- 7 Nov 2026
Overview
EC60-nRF52840 is an open-source printed circuit board by wZuck, from the wZuck/YETI60 repository on GitHub. It is a 4-layer board of 289.4 × 94.6 mm with 178 parts on 98 nets, routed with 6,105 tracks and 816 vias.
It is built around the 74HC4051 and BQ24074RGTR. Its parts include 43 resistors, 17 capacitors, 15 switches, 3 ICs and 1 inductor. It belongs with the keyboards and input boards and the nRF52 and nRF5x boards of this library.
Main components
274HC4051
SOP-16-40℃~+85℃ 1 170MHz 28ns 29ns 3V~9V 5ns 5pF 80Ω 8:1 SOP-16 Analog Switches, Multiplexers ROHSWuxi I-core ElecAnalog Switches, MultiplexersBQ24074RGTR
QFN-16-EP(3x3)-40℃~+125℃ 1 1.5A 4.2V 4.35V~10.2V 6.5uA Charging IC Lithium Battery Not supported Support QFN-16-EP(3x3) Battery Management ROHSTexas InstrumentsBattery Management
README
variants/raytac/hardware/ec60-nrf52840/README.mdEnglish | Chinese
YETI60 single-nRF52840 PCB
One Raytac MDBT50Q-1MV2 handles the intended EC scan, native USB and BLE roles. OPA350, muxes, charger and regulator are peripherals, not additional controllers. STM32 and onboard USB1 are removed; a rear Type-C daughterboard connects to J1. Original EC60 sensing geometry, outline, mounting locations and four-layer structure are retained.
Strict CAD DRC has 0 errors and 0 opens with 270 physical pin pairs connected. Local power paths use ordinary through-via routing; hardware measurements remain pending. See the comprehensive review.
Electrical contract
Power retains BQ24074 charger/PowerPath and TPS63031 3.3 V buck-boost. Default P2 uses a custom 1600 mAh, 85×43×4.8 mm pack; J2 is positive/negative/NTC. R40=2.21k, R55=69.8k and R56=1.69k, all 1%, program 402.71 mA nominal / 445.63 mA maximum. Charging is enabled only after the host accepts the 500 mA USB configuration; preconfiguration remains USB100 and suspend disables charging. Independent pack thermal interruption and third-wire 10k NTC are mandatory; supplier approval is pending. See power and charging.
Module VDD/VDDH connect to 3.3 V, VBUS to USB 5 V and DCCH is unconnected. R30/R31 are 0 Ω links because the nRF PHY contains termination. An internal low-frequency RC clock is intended; target configuration must match. J3 is a custom six-contact SWD pinout, not a standard ARM connector.
U8 switches the analog front end and U7 switches the 1M:1M battery divider with 10 nF filtering. GPIOs must not back-power an unpowered AFE. Enable, settle and calibrate before scanning; battery sampling waits at least 50 ms. The portable nRF control core is host-tested, and now integrated into buildable USB/BLE target applications.
Local I/O uses 0.127 mm tracks / 0.15 mm clearance / 0.50 mm via copper with 0.30 mm drill; ordinary routing is based on 0.2 mm tracks. Inductor-side straight tracks are 0.35 mm. SW60/SW62 ground guards were narrowed from 0.4 to 0.394 mm in the earlier clearance repair; sensing copper/locations remain retained. Order ordinary 1.6 mm JLC four-layer PCB; the CAD envelope is 1.6062 mm including modeled mask.
The former nine blind vias were removed. All vias are ordinary mechanically drilled through holes, minimum 0.50/0.30 mm. Module vias-in-pad are removed; no fill/capping is required. See ordinary fabrication requirements.
Source and rebuild
The current KiCad PCB, project and schematics are the editable design sources. pinmap.json, the partial redesigned-component contract components.json, exported netlist.xml and per-reference frozen footprints must stay consistent. Existing YAECKB library IDs remain for compatibility.
After schematic changes, export netlist.xml with KiCad CLI, update explicit contracts and regenerate firmware/yeti60/board_pins.h when needed. Run python3 scripts/run_audit.py. Fresh schematic parity, native DRC, PCB contracts and physical connectivity regression are checked separately. Historical builders and routing snapshots have been removed.
Current PCB renders and conditional assembly renders are source-linked visualizations. Final power-loop layout, component ratings, ordinary-fabrication acceptance, resin inserts, switch/dome/fastener stack, daughterboard/plug/cables, actual firmware/calibration and later SI/RF remain unqualified.
Parts
178| Qty | Value | Footprint | References |
|---|---|---|---|
| 1 | 0 | YAECKB:R_0402_1005Metric__R30 | R30 |
| 1 | 0 | YAECKB:R_0402_1005Metric__R31 | R31 |
| 1 | 1.5uH_74438336015 | YAECKB:L_Wuerth_MAPI-3015__L1 | L1 |
| 1 | 1.69k/1% | YAECKB:R_0402_1005Metric__R56 | R56 |
| 1 | 100 | YAECKB:R_0402_1005Metric__R6 | R6 |
| 1 | 100 | YAECKB:R_0402_1005Metric__R47 | R47 |
| 1 | 100 | YAECKB:R_0402_1005Metric__R7 | R7 |
| 1 | 100 | YAECKB:R_0402_1005Metric__R4 | R4 |
| 1 | 100 | YAECKB:R_0402_1005Metric__R54 | R54 |
| 1 | 100 | YAECKB:R_0402_1005Metric__R53 | R53 |
| 1 | 100 | YAECKB:R_0402_1005Metric__R5 | R5 |
| 1 | 100 | YAECKB:R_0402_1005Metric__R3 | R3 |
| 1 | 100k | YAECKB:R_0402_1005Metric__R48 | R48 |
| 1 | 100k | YAECKB:R_0402_1005Metric__R23 | R23 |
| 1 | 100k | YAECKB:R_0402_1005Metric__R16 | R16 |
| 1 | 100k | YAECKB:R_0402_1005Metric__R13 | R13 |
| 1 | 100k | YAECKB:R_0402_1005Metric__R11 | R11 |
| 1 | 100k | YAECKB:R_0402_1005Metric__R20 | R20 |
| 1 | 100k | YAECKB:R_0402_1005Metric__R19 | R19 |
| 1 | 100k | YAECKB:R_0402_1005Metric__R42 | R42 |
| 1 | 100k | YAECKB:R_0402_1005Metric__R10 | R10 |
| 1 | 100k | YAECKB:R_0402_1005Metric__R8 | R8 |
| 1 | 100k | YAECKB:R_0402_1005Metric__R50 | R50 |
| 1 | 100k | YAECKB:R_0402_1005Metric__R24 | R24 |
| 1 | 100k | YAECKB:R_0402_1005Metric__R49 | R49 |
| 1 | 100k | YAECKB:R_0402_1005Metric__R9 | R9 |
| 1 | 100k | YAECKB:R_0402_1005Metric__R44 | R44 |
| 1 | 100k | YAECKB:R_0402_1005Metric__R12 | R12 |
| 1 | 100k | YAECKB:R_0402_1005Metric__R43 | R43 |
| 1 | 100k | YAECKB:R_0402_1005Metric__R18 | R18 |
| 1 | 100k | YAECKB:R_0402_1005Metric__R21 | R21 |
| 1 | 100k | YAECKB:R_0402_1005Metric__R25 | R25 |
| 1 | 100k | YAECKB:R_0402_1005Metric__R14 | R14 |
| 1 | 100k | YAECKB:R_0402_1005Metric__R15 | R15 |
| 1 | 100k | YAECKB:R_0402_1005Metric__R46 | R46 |
| 1 | 100k | YAECKB:R_0402_1005Metric__R45 | R45 |
| 1 | 100n | YAECKB:C_0402_1005Metric__C9 | C9 |
| 1 | 100n | YAECKB:C_0402_1005Metric__C12 | C12 |
| 1 | 100n | YAECKB:C_0402_1005Metric__C11 | C11 |
| 1 | 100n/16V | YAECKB:C_0402_1005Metric__C31 | C31 |
| 1 | 100n/16V | YAECKB:C_0603_1608Metric__C44 | C44 |
| 1 | 10k | YAECKB:R_0402_1005Metric__R26 | R26 |
| 1 | 10n | YAECKB:C_0402_1005Metric__C47 | C47 |
| 1 | 10u/10V | YAECKB:C_0603_1608Metric__C45 | C45 |
| 1 | 10u/10V | YAECKB:C_0603_1608Metric__C46 | C46 |
| 1 | 10u/10V | YAECKB:C_0603_1608Metric__C30 | C30 |
| 1 | 10u/10V | YAECKB:C_0603_1608Metric__C42 | C42 |
| 1 | 10u/10V | YAECKB:C_0603_1608Metric__C43 | C43 |
| 1 | 10u/10V | YAECKB:C_0603_1608Metric__C41 | C41 |
| 1 | 1M/1% | YAECKB:R_0402_1005Metric__R52 | R52 |
| 1 | 1M/1% | YAECKB:R_0402_1005Metric__R51 | R51 |
| 1 | 1k | YAECKB:R_0402_1005Metric__R17 | R17 |
| 1 | 1u | YAECKB:C_0402_1005Metric__C13 | C13 |
| 1 | 1u/10V | YAECKB:C_0603_1608Metric__C40 | C40 |
| 1 | 1u/10V | YAECKB:C_0402_1005Metric__C48 | C48 |
| 1 | 2.21k/1% | YAECKB:R_0402_1005Metric__R40 | R40 |
| 1 | 2.2k | YAECKB:R_0402_1005Metric__R32 | R32 |
| 1 | 220p | YAECKB:C_0402_1005Metric__C10 | C10 |
| 1 | 4.7u/10V | YAECKB:C_0603_1608Metric__C32 | C32 |
| 1 | 500mA | YAECKB:Fuse_1206_3216Metric__F1 | F1 |
| 1 | 69.8k/1% | YAECKB:R_0402_1005Metric__R55 | R55 |
| 1 | 7.50k/1% | YAECKB:R_0402_1005Metric__R41 | R41 |
| 1 | 74HC4051 | YAECKB:TSSOP16__U2 | U2 |
| 1 | 74HC4051 | YAECKB:TSSOP16__U4 | U4 |
| 1 | ANSI_Enter | YAECKB:ecs_pad_no_ring__SW46 | SW46 |
| 1 | ANSI_\ | YAECKB:ecs_pad_no_ring__SW31 | SW31 |
| 1 | BQ24074RGT | YAECKB:VQFN-16-1EP_3x3mm_P0.5mm_EP1.6x1.6mm__U5 | U5 |
| 1 | EC_SW | YAECKB:ecs_pad_no_ring__SW42 | SW42 |
| 1 | EC_SW | YAECKB:ecs_pad_no_ring__SW23 | SW23 |
| 1 | EC_SW | YAECKB:ecs_pad_no_ring__SW65 | SW65 |
| 1 | EC_SW | YAECKB:ecs_pad_no_ring_stepped&normal__SW68 | SW68 |
| 1 | EC_SW | YAECKB:ecs_pad_no_ring__SW20 | SW20 |
| 1 | EC_SW | YAECKB:ecs_pad_no_ring__SW55 | SW55 |
| 1 | EC_SW | YAECKB:ecs_pad_no_ring__SW2 | SW2 |
| 1 | EC_SW | YAECKB:ecs_pad_no_ring__SW34 | SW34 |
| 1 | EC_SW | YAECKB:ecs_pad_no_ring__SW26 | SW26 |
| 1 | EC_SW | YAECKB:ecs_pad_no_ring__SW41 | SW41 |
| 1 | EC_SW | YAECKB:ecs_pad_no_ring_stepped&normal__SW33 | SW33 |
| 1 | EC_SW | YAECKB:ecs_pad_no_ring__SW59 | SW59 |
| 1 | EC_SW | YAECKB:ecs_pad_no_ring__SW4 | SW4 |
The 80 most common of 178 parts.
Questions
How big is the EC60-nRF52840 PCB?
It measures 289.4 × 94.6 mm and has 4 copper layers, 1.61 mm thick.
What parts does the EC60-nRF52840 use?
178 parts, built around the 74HC4051 and BQ24074RGTR. 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 EC60-nRF52840 KiCad files?
From the wZuck/YETI60 repository on GitHub, at the commit this page was made from: the board is variants/raytac/hardware/ec60-nrf52840/EC60-nRF52840.kicad_pcb and its schematic hardware/ec60-nrf52840/EC60-nRF52840.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the EC60-nRF52840 design in my own project?
Its repository states no licence, so its author keeps all rights: ask wZuck before reusing the design.
Similar boards
- 2 layers69.4 × 113 mm

- 2 layers76 × 63.5 mm

PicoTracker
xiphonics/picoTracker-pcb
Buy the official kit at xiphonics store # Trademark Notice
98 parts36CC0-1.0 - 4 layers150 × 95 mm

Skysweep32 rev c
bobberdolle1/SkySweep32
Open-source passive multi-band RF monitoring system | 855–925 MHz, 2.4 GHz, 5.8 GHz | Rev C first prototype
103 parts33GPL-3.0 - 4 layers89.5 × 29 mm

- 2 layers79.2 × 68.8 mm

Environment slave
pcbcupid/Lora-Wireless-Sensor-Network
A wireless sensor network based on Lora and esp32C3. This repo will help you build a complete product from scratch to finish!
72 parts30MIT - 4 layers41.4 × 108 mm

- 2 layers65 × 95 mm

CassetteCat RevA
samyyy2311/CassetteCat
A music player for Android. Plays your own files, Jellyfin and Navidrome/Subsonic servers, and internet radio, with synced lyrics, an equalizer, Android Auto and a Listening Record. No account or tracking.
52 parts23GPL-3.0 - 4 layers39 × 92 mm

Chaac ng
alvarop/chaac
This is a work in progress for a wireless weather station project.
82 parts21MIT