
Rgb to hdmi
hoglet67/RGBtoHDMI
Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

Track your own things through Apple's Find My network and see them on your own map, with hardware you can build yourself.
Fonek is an open-source printed circuit board by lodjim, from the lodjim/fonek repository on GitHub. It is a 2-layer board of 50 × 50 mm with 36 parts on 19 nets, routed with 276 tracks and 18 vias.
Its parts include 11 resistors, 6 capacitors, 3 ICs, 3 diodes and 1 transistor. It belongs with the ESP32 boards of this library.
Track your own things through Apple's Find My network and see them on your own map, with hardware you can build yourself.
fonek is three parts that work together:
fonek/): an open KiCad design for a rechargeable ESP32 BLE
tag with USB-C charging, plus the firmware instructions to turn any
ESP32 dev board into a beacon.backend/): a FastAPI service that fetches the encrypted
location reports from Apple with FindMy.py,
decrypts them with the tag's private key and stores them in SQLite. No Mac required.web/): a Next.js + Leaflet dashboard showing each tag's latest
position and history.
Status: prototype. The software runs today with an ESP32 dev board. The rev A PCB passes KiCad ERC/DRC but has not been built and tested yet; see its release checks. fonek is not an Apple-certified Find My accessory and relies on an unofficial Apple API.
flowchart LR
TAG["Tag<br>ESP32 + OpenHaystack firmware"] -- "BLE advertisement<br>(public key)" --> PHONE[Nearby iPhones]
PHONE -- "encrypted location report" --> APPLE[(Apple Find My)]
APPLE -- "reports for our keys" --> BACKEND["backend<br>FastAPI + FindMy.py"]
BACKEND --> DB[(data/fonek.db)]
WEB["web<br>Next.js + Leaflet"] -- "/api" --> BACKENDEach tag has a key pair. The tag broadcasts the public key over Bluetooth. Any iPhone that passes by encrypts its own location with that key and uploads it to Apple. Only the holder of the private key can decrypt the report, and that key never leaves your backend. docs/architecture.md goes into the details.
You need Docker, an ESP32 with Bluetooth LE, and an Apple ID with two-factor authentication. Use a dedicated Apple ID, not your personal one (see Things to know).
git clone https://github.com/lodjim/fonek.git && cd fonek
docker compose up -d --build
docker compose run --rm backend python -m app.cli login # Apple ID + 2FA, onceThen:
docs/setup.md covers configuration, backups, updating and troubleshooting.
data/ holds secrets. It contains every tag's private key and the Apple session,
unencrypted. Back it up and keep it private.| Path | What it is |
|---|---|
backend/ | FastAPI service, poller and CLI (Python 3.11+) |
web/ | Next.js dashboard |
firmware/ | How to build and flash the OpenHaystack ESP32 firmware |
fonek/ | Rev A tag hardware: KiCad project, Gerbers, BOM, design docs |
docs/ | Architecture, setup guide and API reference |
docker-compose.yml | Runs backend and web together |
data/ | Created at runtime: database, Apple session (git-ignored) |
# backend
cd backend && python3 -m venv .venv && .venv/bin/pip install -e '.[dev]'
FONEK_DATA_DIR=../data .venv/bin/uvicorn app.main:app --reload
FONEK_DATA_DIR=../data .venv/bin/python -m app.cli seed # demo device with a fake track
.venv/bin/pytest
# web (proxies /api to http://localhost:8000)
cd web && npm install && npm run devMore in CONTRIBUTING.md.
fonek stands on other people's work:
fonek is an independent project. It is not affiliated with or endorsed by Apple. Find My and AirTag are trademarks of Apple Inc.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 1 | 100k | FonekRevA:R7 | R7 |
| 1 | 100k | FonekRevA:R5 | R5 |
| 1 | 100nF X7R 6.3V | FonekRevA:C5 | C5 |
| 1 | 10k | FonekRevA:R8 | R8 |
| 1 | 10k | FonekRevA:R9 | R9 |
| 1 | 10uF X5R 6.3V | FonekRevA:C4 | C4 |
| 1 | 1M | FonekRevA:R6 | R6 |
| 1 | 1S 400mAh LiPo | FonekRevA:BAT1 | BAT1 |
| 1 | 1S LiPo charger with TS | FonekRevA:U2 | U2 |
| 1 | 1uF X7R 10V | FonekRevA:C1 | C1 |
| 1 | 1uF X7R 10V | FonekRevA:C3 | C3 |
| 1 | 1uF X7R 6.3V | FonekRevA:C6 | C6 |
| 1 | 2.2k | FonekRevA:R4 | R4 |
| 1 | 237k 1% | FonekRevA:R11 | R11 |
| 1 | 3.3 V 500 mA LDO | FonekRevA:U3 | U3 |
| 1 | 3V3 | FonekRevA:TP1 | TP1 |
| 1 | 4.7uF X5R 10V | FonekRevA:C2 | C2 |
| 1 | 5 V bidirectional ESD diode | FonekRevA:D3 | D3 |
| 1 | 5.1k 1% | FonekRevA:R1 | R1 |
| 1 | 5.1k 1% | FonekRevA:R2 | R2 |
| 1 | 500 mA hold PTC | FonekRevA:F1 | F1 |
| 1 | 6.8k | FonekRevA:R10 | R10 |
| 1 | 6.8k 1% | FonekRevA:R3 | R3 |
| 1 | BOOT | FonekRevA:TP6 | TP6 |
| 1 | ESP32 BLE module, 4 MB flash | FonekRevA:U1 | U1 |
| 1 | ESP_EN | FonekRevA:TP5 | TP5 |
| 1 | GND | FonekRevA:TP2 | TP2 |
| 1 | N-MOSFET | FonekRevA:Q1 | Q1 |
| 1 | SPDT slide, one throw unused | FonekRevA:SW1 | SW1 |
| 1 | UART_RX | FonekRevA:TP4 | TP4 |
| 1 | UART_TX | FonekRevA:TP3 | TP3 |
| 1 | USB-C power-only | FonekRevA:J1 | J1 |
| 1 | VBAT | FonekRevA:TP7 | TP7 |
| 1 | VBUS | FonekRevA:TP8 | TP8 |
| 1 | green LED | FonekRevA:D1 | D1 |
| 1 | red LED | FonekRevA:D2 | D2 |

hoglet67/RGBtoHDMI
Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!


tardate/LittleArduinoProjects
a collection of "Little Electronic & Arduino Projects", most involving electronics or an Arduino in one way or another!


Neumi/open_echo
Open Source echo sounder / depth sounder / SONAR for bathymetry and research. Arduino based and compatible.


It measures 50 × 50 mm and has 2 copper layers, 1 mm thick.
36 parts. 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 lodjim/fonek repository on GitHub, at the commit this page was made from: the board is fonek/kicad/fonek.kicad_pcb and its schematic fonek/kicad/fonek.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 lodjim before reusing the design.