Skip to the content
PCBKitNew board
2 layers30 × 52.5 mmDbfob, the printed circuit board in 3D

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

9

README

hardware/nfc-test/README.md

NFC 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.

top render

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.
RefWhatNote
U1NT3H2111W0FHKH, C710403VOUT unused
C1, C20603 trim, not fittedC0G, chosen on the bench
C3100 nFVCC decoupling
R1, R24.7 kΩSDA / SCL pull-ups to VCC
R310 kΩFD pull-up to the cell, as B1 will wake the MCU with it
R4, D11 kΩ, redlit while a reader's field is on: FD pulls it low, even with VCC off
JP1solder jumperbridge to run the tag's I2C side from the cell
BT1BS-08-B2AA001 (C964777)hand-fit on the back, so JLC assembly stays one-sided
J11×6 2.54 mm, not fitted+ V D F C G = VBAT, VCC, SDA, FD, SCL, GND

Regenerate

sh
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

  1. 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.
  2. 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.
  3. Fit the cell, no ferrite. Repeat steps 1–2. This shows how much the cell costs.
  4. 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.
  5. 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
QtyValueFootprintReferences
32.2kResistor_SMD:R_0603_1608MetricR5, R6, R7
2100nCapacitor_SMD:C_0603_1608MetricC1, C3
110uCapacitor_SMD:C_0603_1608MetricC2
11kResistor_SMD:R_0603_1608MetricR4
1CH32V003F4P6Package_SO:TSSOP-20_4.4x6.5mm_P0.65mmU1
1CR2032Battery:BatteryHolder_Keystone_3034_1x20mmBT1
1IM69D130Sensor_Audio:Infineon_PG-LLGA-5-1MK1
1PROGConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ1
1keyringMountingHole:MountingHole_3.2mm_M3H1
1measureButton_Switch_SMD:SW_Push_1P1T_XKB_TS-1187ASW1
1orange 605nmLED_SMD:LED_0603_1608MetricD3
1red 625nmLED_SMD:LED_0603_1608MetricD4
1yellow 590nmLED_SMD:LED_0603_1608MetricD2
1yellow-green 575nmLED_SMD:LED_0603_1608MetricD1

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 mmDbfob, the printed circuit board in 3D

    Dbfob

    mkovero/dbfob

    Dirt-cheap keyfob noise-level indicator

    24 parts
  • 2 layers30 × 38 mmNfc test, the printed circuit board in 3D

    Nfc test

    mkovero/dbfob

    Dirt-cheap keyfob noise-level indicator

    13 parts

Similar boards

  • 2 layers63.2 × 85 mmBadge blob, the printed circuit board in 3D

    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 mmHour meter board microfit can handroute, the printed circuit board in 3D

    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 mmInclinationMeter, the printed circuit board in 3D

    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 mmBench stim wing, the printed circuit board in 3D

    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 mmCable bunny, the printed circuit board in 3D

    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 mmPmod microphone array 2x2, the printed circuit board in 3D

    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 mmAi pendant recorder, the printed circuit board in 3D

    Ai pendant recorder

    embedrapp/ai-pendant-recorder

    AI pendant recorder firmware, PCB, and mechanical design

    115 parts1
  • 2 layers69.6 × 66.4 mmPomodoro pal, the printed circuit board in 3D

    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