

Dbfob
Dirt-cheap keyfob noise-level indicator
- Size
- 30 × 52.5 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 17
- Nets
- 24
- Pads
- 70
- Tracks, vias
- 182, 11
- Pours
- 5
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 27 Sep 2026
- Updated
- 3 Nov 2026
Overview
Dbfob is an open-source printed circuit board by mkovero, from the mkovero/dbfob repository on GitHub. It is a 2-layer board of 30 × 52.5 mm with 17 parts on 24 nets, routed with 182 tracks and 11 vias.
It is built around the CH32V003F4P6, CC0603KRX7R9BB104 and CR2032, with the IM69D130V01XTSA1, TS-1187A-B-A-B and KT-0603O among its other parts. Its parts include 4 resistors, 4 diodes, 3 capacitors, 1 IC and 1 connector. It belongs with the RISC-V boards of this library.
Main components
9CH32V003F4P6
TSSOP-20-175milTSSOP-20-175mil Microcontrollers (MCU/MPU/SOC) ROHSWCH (Nanjing Qinheng Microelectronics)Microcontrollers (MCU/MPU/SOC)CC0603KRX7R9BB104
0603100nF 50V X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHSYAGEOMultilayer Ceramic Capacitors MLCC - SMD/SMTCR2032
-- Unclassified goods ROHSMaxellUncategorisedIM69D130V01XTSA1
SMD,4x3mm-36dB 1.2mm 1.8V 3mm 4mm 69dB Omnidirectional SMD,4x3mm MEMS Microphones ROHSInfineon TechnologiesMEMS MicrophonesTS-1187A-B-A-B
SMD-4P,5.1x5.1mm-30℃~+85℃ 1.5mm 1.6N 100,000 cycles 12V 5.1mm 5.1mm 50mA Gold No Round Button SPST Surface Mount,Vertical Without Bracket SMD-4P,5.1x5.1mm Tactile Switches ROHSXKB ConnectionTactile SwitchesKT-0603O
0603LED Indication - DiscreteHubei KENTO ElecKT-0603R
0603-40℃~+85℃ 1.6mm x 0.8mm square LED 1.8V~2.4V 120° 20mA 300mcd 40mW 615nm~630nm 645nm Discrete Diode Red Water Clear 0603 LED Indication - Discrete ROHSHubei KENTO ElecLED Indication - DiscreteKT-0603Y
0603-40℃~+85℃ 120° 175mcd 2.4V 40mW 584nm~594nm 596nm Discrete Diode Water Clear Yellow 0603 LED Indication - Discrete ROHSHubei KENTO ElecLED Indication - DiscreteNCD0603C3
0603-30℃~+85℃ 1.6V~2.6V 130° 25mA 565nm~578nm 575nm 65mW 80mcd Discrete Diode Yellow Green 0603 LED Indication - Discrete ROHSFoshan NationStar OptoelectronicsLED Indication - Discrete
README
hardware/nfc-test/README.mdNFC test board (for rev B / B1)
30 × 38 mm, 2 layers. It answers one question before B1 is trusted: does B1's NFC antenna read on a phone with a CR2032 right behind it, and with what trim? This is experiment 4.

It goes in the same order as B1, so it can't steer B1's layout. B1 copies this antenna and its trim pads exactly. Whatever trim value this board finds goes straight onto B1's pads.
What's on it
- Top 30 × 26 mm: B1's outline and B1's antenna block, from ../lib/antenna.py, which both boards import so they can't drift apart:
- a 6-turn PCB coil, 0.25 mm track with a 0.2 mm gap, chamfered to clear the 3 mm corners, about 2.1 µH in air (NXP AN11276 formula);
- its outer end drops to B.Cu at VO, crosses under the turns and comes back up at VI, as on B1, whose edge leaves no room for a tail;
- U1 (NT3H2111, NTAG I2C plus 1k), C3 and the C1/C2 trim pads (not fitted) inside the bottom turns, where they sit on B1.
- Back: B1's CR2032 holder, MYOUNG BS-08-B2AA001. The holder has its own − spring, so the board under the cell is bare. A ferrite sheet can then lie on the holder floor under the cell, with a slot for the spring. Rev A's Keystone 3034 couldn't take a ferrite, because the cell sits directly on a PCB pad.
- Tail, 12 mm: D1 field LED, the pull-ups, JP1 and the J1 host header.
| Ref | What | Note |
|---|---|---|
| U1 | NT3H2111W0FHKH, C710403 | VOUT unused |
| C1, C2 | 0603 trim, not fitted | C0G, chosen on the bench |
| C3 | 100 nF | VCC decoupling |
| R1, R2 | 4.7 kΩ | SDA / SCL pull-ups to VCC |
| R3 | 10 kΩ | FD pull-up to the cell, as B1 will wake the MCU with it |
| R4, D1 | 1 kΩ, red | lit while a reader's field is on: FD pulls it low, even with VCC off |
| JP1 | solder jumper | bridge to run the tag's I2C side from the cell |
| BT1 | BS-08-B2AA001 (C964777) | hand-fit on the back, so JLC assembly stays one-sided |
| J1 | 1×6 2.54 mm, not fitted | + V D F C G = VBAT, VCC, SDA, FD, SCL, GND |
Regenerate
python3 hardware/lib/gen_lib.py # NT3H2111 symbol, XQFN8 + BS-08 footprints
python3 hardware/nfc-test/tools/gen_sch.py # tables -> schematic
python3 hardware/nfc-test/tools/make_pcb.py # coil + placement + hand-drawn LA/LB, the router does the rest
python3 hardware/nfc-test/tools/fab.py # -> production/This follows the same procedure as rev A (../README.md).
How the antenna is drawn. The coil is LA track. Its inner end meets LB through net tie NT1; its outer end crosses under the turns on B.Cu (VO to VI) to reach the tag's LA pin. DRC doesn't check clearance within one net, so antenna.py builds the turns at a fixed pitch and asserts the 0.2 mm gap, and the vias' gap to the turns, itself.
State at commit:
- ERC: clean, apart from the library-table warnings.
- DRC: 0 errors, 0 unconnected, 0 parity issues.
- Repeatability: two runs give byte-identical boards.
- CPL: all 7 placements checked against JLC's EasyEDA footprints.
On the bench
- No cell, no ferrite. Tap with an Android (NXP TagInfo) and an iPhone. Write a URL with NFC Tools. Note the read distance, and the distance at which D1 lights.
- Find the resonance, if a NanoVNA and a small pickup loop are at hand. Couple the loop loosely and read the S11 dip, f0. Then the trim is C = 50 pF × ((f0 / 13.56 MHz)² − 1). Without a VNA, try 0, 4.7, 10, 15 and 22 pF C0G in C1, and keep the value with the longest read distance.
- Fit the cell, no ferrite. Repeat steps 1–2. This shows how much the cell costs.
- Fit the ferrite: WE-FSFS-class, 0.1–0.2 mm, cut to a 20 mm disc with a slot for the − spring, on the holder floor. Repeat steps 1–2.
- Locked iPhone: with the screen on, a tap should open the URL with no app.
Record f0, the trim value, the read distance and the LED distance for each of steps 1, 3 and 4. The step 4 trim value goes on B1's pads.
Why the coil is under 2.75 µH. 13.56 MHz needs 2.75 µH with the tag's 50 pF (44–56 pF). The coil is short of that on purpose: ferrite raises L, the cell lowers it, and a parallel trim cap can only pull the resonance down.
Parts
17| Qty | Value | Footprint | References |
|---|---|---|---|
| 3 | 2.2k | Resistor_SMD:R_0603_1608Metric | R5, R6, R7 |
| 2 | 100n | Capacitor_SMD:C_0603_1608Metric | C1, C3 |
| 1 | 10u | Capacitor_SMD:C_0603_1608Metric | C2 |
| 1 | 1k | Resistor_SMD:R_0603_1608Metric | R4 |
| 1 | CH32V003F4P6 | Package_SO:TSSOP-20_4.4x6.5mm_P0.65mm | U1 |
| 1 | CR2032 | Battery:BatteryHolder_Keystone_3034_1x20mm | BT1 |
| 1 | IM69D130 | Sensor_Audio:Infineon_PG-LLGA-5-1 | MK1 |
| 1 | PROG | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J1 |
| 1 | keyring | MountingHole:MountingHole_3.2mm_M3 | H1 |
| 1 | measure | Button_Switch_SMD:SW_Push_1P1T_XKB_TS-1187A | SW1 |
| 1 | orange 605nm | LED_SMD:LED_0603_1608Metric | D3 |
| 1 | red 625nm | LED_SMD:LED_0603_1608Metric | D4 |
| 1 | yellow 590nm | LED_SMD:LED_0603_1608Metric | D2 |
| 1 | yellow-green 575nm | LED_SMD:LED_0603_1608Metric | D1 |
Questions
How big is the Dbfob PCB?
It measures 30 × 52.5 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Dbfob use?
17 parts, built around the CH32V003F4P6, CC0603KRX7R9BB104, CR2032 and IM69D130V01XTSA1. 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 Dbfob KiCad files?
From the mkovero/dbfob repository on GitHub, at the commit this page was made from: the board is hardware/dbfob.kicad_pcb and its schematic hardware/b1/b1.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Dbfob design in my own project?
Its repository states no licence, so its author keeps all rights: ask mkovero before reusing the design.
More from mkovero/dbfob
2- 2 layers30 × 26 mm

- 2 layers30 × 38 mm

Similar boards
- 2 layers63.2 × 85 mm

Badge blob
HeyPCB/badge-blob
Blob, the social battery badge: The name badge that tells people whether to come say hi. KiCad 10, heypcb.ai merch.
18 partsCERN-OHL-S-2.0 - 2 layers100 × 100 mm

Hour meter board microfit can handroute
ilomon10/embedded-totalizer-hour-meter
ESP32 engine hour meter & totalizer: firmware, SensorFrame protocol, Node host tools, KiCad PCB and a Deno device simulator
152 parts - 4 layers90 × 70 mm

InclinationMeter
soldernerd/InclinationMeter
A battery-powered, Bluetooth-enabled precision electronic level instrument for machine tool geometry inspection and granite surface plate qualification.
118 parts - 4 layers50.8 × 22.9 mm

Bench stim wing
ThatguyCplus/throttleECU
STM32F411CE Throttle ECU — PID position control with AS5048A encoder, H-bridge motor, safety module
114 parts1 - 2 layers40 × 96.1 mm

Cable bunny
HeyPCB/cable-bunny
Cable Bunny: Is it a charge-only cable? Ask the bunny. KiCad 10, heypcb.ai merch.
25 partsCERN-OHL-S-2.0 - 2 layers80 × 80 mm

Pmod microphone array 2x2
MarcinWachowiak/pmod-pdm-microphone-array
Pmod module with multiple PDM microphones to enable array audio signal processing
15 parts9 - 4 layers36 × 76 mm

Ai pendant recorder
embedrapp/ai-pendant-recorder
AI pendant recorder firmware, PCB, and mechanical design
115 parts1 - 2 layers69.6 × 66.4 mm

Pomodoro pal
HeyPCB/pomodoro-pal
Pomodoro Pal: A tomato on your desk that keeps you focused for 25 minutes, without your phone. KiCad 10, heypcb.ai merch.
41 partsCERN-OHL-S-2.0