
Metronome
Bindless-Chicken/Metronome
:musical_keyboard: Tiny logic only metronome for when you are on the move

Point-to-point wiring for hand-built KiCad boards (wire wrap, fly wires): curved, non-overlapping wires and an interactive HTML back view
Chaser is an open-source printed circuit board by existedinnettw, from the existedinnettw/flywire repository on GitHub, published under the MPL-2.0 licence. It is a 2-layer board of 73.7 × 38.1 mm with 16 parts on 15 nets.
It is built around the CD4017BE and NE555. Its parts include 6 resistors, 4 diodes, 3 capacitors, 2 ICs and 1 connector.
Point-to-point wiring for building a KiCad board by hand: wire wrap, fly wires on a
perfboard, or a carrier without copper. flywire reads the placed .kicad_pcb, joins every
net's through-hole pins with one wire per pair of pins, bends the wires so they keep off
other pads and off each other, and writes:
wiring.html: one self-contained interactive page (no network needed, like
InteractiveHtmlBom): the board
seen from the back with the wires as curves, and the wire list beside it;wiring.txt: the same wire list as text, with pin positions, lengths, cut lengths and
the wires per pin (which to wrap first);wiring.json: the wiring, in the form the page exports and --edits reads back.Copper tracks and zones are ignored; SMD pads are too (they do not reach the back).
Demo: existedinnettw.github.io/flywire, the
page for examples/chaser (a 555 clocking a CD4017 that walks four LEDs),
rebuilt by the pages workflow on every push to main
(wiring.txt,
wiring.json,
chaser.kicad_pcb).
uv tool install git+https://github.com/existedinnettw/flywire # or: uvx --from ... flywire
flywire board.kicad_pcb # build/wiring.html, .txt, .json
flywire board.kicad_pcb --max-per-pin 3 # trees instead of chains
flywire board.kicad_pcb --edits wiring.json # with what you changed on the page| option | |
|---|---|
-o DIR, --name STEM | where the files go (build/wiring.*) |
--max-per-pin N | wires one pin may take. 2 (default): every net is the shortest chain through its pins; more: the shortest tree whose pins take at most N |
--slack MM | added to every wire's cut length (10) |
--edits FILE | a JSON export from the page: replaces the wires of every net it names, keeping its bends |
--straight | do not bend the wires |
The exit status is 1 when the wiring has problems (a net in pieces, a pin over the limit);
they are listed at the end of wiring.txt.
F) flips the view (the
back, where the wires are, is the default: x is mirrored).↑ ↓ step through the list,
Space ticks a wire done (kept in the browser, per board), Hide done hides them.E):
Del deletes, A bends automatically, S straightens, Ctrl+Z undoes;wiring.json; flywire board.kicad_pcb --edits wiring.json rebuilds
the text list and the page with your changes, so they can be committed with the board.Each wire is a quadratic Bézier from pin to pin, given by the point half way along it. For
every wire a set of such midpoints, pushed sideways and along the chord, is priced: samples
of the curve inside a foreign pad's clearance, near another wire (a crossing costs little, a
wire lying along another a lot, except near a pin both end at), outside the board, and the
extra length. The longest wires go first, then every wire is placed again against all the
others until nothing changes. src/flywire/bend.py is the reference;
src/flywire/web/bend.js is the same algorithm for the page, and the tests check that the
two agree.
uv sync
uv run pytest # needs node for the Python / JS bender comparison
uv run ruff format src tests && uv run ruff check src tests
uv run flywire examples/chaser/chaser.kicad_pcb # the demo, in build/examples/chaser/chaser.kicad_pcb is written by examples/chaser/make_board.py from
KiCad's stock footprints; it needs KiCad's pcbnew module, so run it with the Python KiCad
installs (/usr/bin/python3 examples/chaser/make_board.py).
The page is src/flywire/web/ (index.html, style.css, bend.js, app.js), inlined
into one file with the board data by report.html(); it uses no libraries.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | 470 | R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R4, R5, R6, R7 |
| 4 | red | LED_D3.0mm | D1, D2, D3, D4 |
| 1 | 100n | C_Disc_D3.0mm_W1.6mm_P2.50mm | C3 |
| 1 | 10n | C_Disc_D3.0mm_W1.6mm_P2.50mm | C2 |
| 1 | 10u | CP_Radial_D5.0mm_P2.50mm | C1 |
| 1 | 1k | R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R1 |
| 1 | 5V in | PinHeader_1x02_P2.54mm_Vertical | J1 |
| 1 | 68k | R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R2 |
| 1 | CD4017 | DIP-16_W7.62mm | U2 |
| 1 | NE555 | DIP-8_W7.62mm | U1 |
It measures 73.7 × 38.1 mm and has 2 copper layers, 1.6 mm thick.
16 parts, built around the CD4017BE and NE555. 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 existedinnettw/flywire repository on GitHub, at the commit this page was made from: the board is examples/chaser/chaser.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the MPL-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Bindless-Chicken/Metronome
:musical_keyboard: Tiny logic only metronome for when you are on the move





tebl/BulkyMIDI-32
A HW build of the MT32-PI project, allowing you to emulate a Roland MT-32 using a Raspberry Pi. Includes enough additional modules to build a MIDI-mountain as well as adapters for connecting to most things retro.

lambdaBoost/MC6205-graphical-display
graphical display on old neon plasma screen

Ismael034/ulp_daughterboard
KiCad project files for a hardware CTF challenge used during the 2026 ULP CTF. The board is meant to be used with the ch32v203-dev development board.