Devesh36/key-finder

A compact BLE key finder for keys, bags and remotes: replaceable CR2032, piezo alert, status LED and pair button in a 38 mm black keyring enclosure. Includes routed PCB, enclosed/exploded assembly and BOM. Firmware/app and physical qualification remain separate.

Version
0.1.2
License
unset
Stars
0

Files

README.md

# Key Finder

A small, reusable BLE tag for finding keys, bags, remotes or a tool pouch nearby. A future phone app can ask the tag to ring; the button can pair or silence it. This project contains the **hardware and enclosure**, not the firmware or phone app. It does not implement Apple's Find My network.

The enclosure follows the Chipolo ONE reference's round black silhouette and integrated keyring hole. It is **38 mm across and 8.4 mm thick**, rather than claiming the commercial product's 6.4 mm thickness. The replaceable CR2032 holder, 1 mm PCB, piezo and printable walls determine this prototype's thickness. Softly rounded edges, sound vents, a beveled button, a status window and a small blue “tscircuit” front print finish the enclosure. This is an independent design, not Chipolo's circuit or certified performance.

## Open and run

```sh
bun install
bun run typecheck
bun run build
bun run validate
bun run dev
```

- `assembly.circuit.tsx`: enclosed product, the default view.
- `exploded.circuit.tsx`: lid, piezo, PCB, cell and back separated for inspection.
- `index.circuit.tsx`: electrical schematic and PCB.
- `mechanics.tsx`: native tscircuit/JSCAD case geometry.
- `imports/`: real JLCPCB footprints and original manufacturer CAD URLs.
- `docs/BOM.csv`, `docs/DESIGN.md`: parts, pin map, power and assembly notes.

All electronic and mechanical authoring uses the tscircuit ecosystem. No external EDA project or placeholder part imports are required. The piezo is a real wired component: its PCB footprint consists of two explicit solder pads, while its disc is represented in the assembly.

## Parts and package provenance

The project pins tscircuit **0.0.2928**, core **0.0.2169** and jscad-fiber **0.0.89**, checked against npm when this project was started. Real parts were checked before selection. U1, BT1, SW1 and LED1 were freshly imported with `tsci import C-number --jlcpcb --use-exact-footprint` to preserve the source land patterns and CAD models.

| Part | Verified source |
| --- | --- |
| ISP1807-LR-RS, nRF52840 BLE module | JLC C5264268; [Insight SiP DS1807](https://www.insightsip.com/fichiers_insightsip/pdf/ble/ISP1807/isp_ble_DS1807.pdf) |
| MY-2032-16 coin-cell holder | [LCSC C2902340](https://www.lcsc.com/product-detail/C2902340.html) |
| 1TS026A-1600-0553-CT switch | JLC C913784 |
| XL-1608SURC-06 red LED | JLC C965799 |
| AB1541B-LW100-R, wired piezo | [PUI datasheet](https://shoppui.com/Asset/AB1541B-LW100-R.pdf); [DigiKey active part listing](https://www.digikey.com/en/products/detail/pui-audio-inc/AB1541B-LW100-R/4835140) |

Murata 7BB-12-9 was rejected because it is obsolete. The selected PUI part is an active 15 mm, 4.1 kHz, 8 nF disc. Stock quantities are not guaranteed.

## Prototype status

Run `bun run validate` to see the current checks in your terminal. A successful software build does not establish radio range, battery life, loudness, switch feel, enclosure retention or manufacturing yield. The four-layer module area may require capped via-in-pad fabrication; review the generated drill and solder-mask files with the fabricator. Bench, RF and mechanical-fit testing remain necessary before ordering a production run.

The cell is **non-rechargeable**. The five programming pads expose battery reference, ground, SWDIO, SWDCLK and reset. They are not a charger input. Keep the coin cell away from children; a production enclosure needs a positively retained, tool-accessible battery closure.