Repository navigation
First non-rc release of the v0.3 coaster hardware. The board is identical to
v0.3.0-rc3 (the package the first batch was ordered from); what's new is the
v0.3.1 enclosure — a print-tested rework of the donut-piston lid and tray — and a
firmware/tooling addition for hands-free batch programming. Supersedes the v0.3.0 rcs.
Changes since v0.3.0-rc3
- Enclosure lid (Top): anti-stick drainage, v0.3.1. A printed test showed a sweating
glass capillary-bonds to the smooth lid and lifts the coaster with the glass; a recessed
bump field made it worse (floods and seals into a suction cup). The fix is drainage:
12 radial channels (2.0 mm wide at the glass face, 0.8 mm uniform depth, ~40°
self-supporting tapered walls) run from the center out to r42, stopping ~3 mm short of
the rim so the face-down print keeps a clean first-layer edge. The channels cross the
outer flexure hinge over 12 discrete underside backing bars, so the press click is
preserved. The plain flat lid is kept in-tree asenclosure/coaster-v0.3.FCStd. - Enclosure shell: thinned and snap arms reworked. The shell is 1 mm thinner
(assembled height 8.1 mm), with a reworked snap-arm ring and a 1.6 mm snap-arm beam. - Enclosure tray (Bottom): 0.6 mm board-seat floor. The seat floor is now three full
print layers (was an awkward 2.5) via a 0.1 mm shallower recess; board seat and overall
height are effectively unchanged. - Firmware: post-flash confirm blink. The flashing station arms a one-shot EEPROM
flag as the last verified programming step; the next boot plays a distinct rapid
blink and clears it. A good flash shows on the board itself, once, and never in the
field. 540 bytes (was 422). - Tooling: hands-free flashing station.
make flash-loopflashes + fuses + verifies
each board as it's plugged onto the UPDI jig, edge-triggered on insertion — flash a
stack of boards without watching the screen. - No PCB change. Board, BOM, CPL, and gerbers are identical to rc3/rc2 (KT-0603W
LEDs, 100 Ω).
Reproducibility
Regenerated (content) from the tagged source with the pinned, digest-locked toolchains:
| Toolchain | Pin |
|---|---|
| Commit | b9e46ef822af68df23c23ea734fe0f7638f931bd |
| KiCad (board, fab bundle) | kicad/kicad@sha256:165c81785b2df23a09892f4cc53bc0095a83b469bfbbe07989670d64049677a7 (10.0.2) |
| avr-gcc (firmware) | debian@sha256:1275c5673a6135ff07b289ddafe4e2270dceb08eda14c0c69bb1b93ee25a9416 (trixie, gcc-avr 14.2.0) |
| FreeCAD (enclosure) | FreeCAD 1.1.1 headless on the same trixie base |
Verify downloads with sha256sum -c SHA256SUMS.
Assets
| Asset | What it is |
|---|---|
…-gerbers.zip, …-bom.csv, …-cpl.csv |
The three JLCPCB uploads (identical to rc3) |
…-board.png, …-1to1.pdf, …-board.step |
Fab review: render, 1:1 paper fit-check, 3D model |
…-firmware.hex |
ATtiny202, 540 bytes. Fuse bodcfg=0x06 (1.8V BOD, sampled) |
…-{top,bottom}.{step,stl} |
3D-printed shell: v0.3.1 drainage-channel lid + base tray |
SHA256SUMS |
Checksums over every asset above |
Ordering (JLCPCB)
Qty 30, Economic SMT, top side, white soldermask. ≈ $0.74 USD parts/board;
≈ $100–105 AUD shipped. Boards arrive blank — flash over UPDI (make fuses once, then
make flash, or make flash-loop for a batch) and drop in a CR2016.
Carried-over caveat from rc3: ROTATION_CORRECTION is still empty (raw KiCad angles).
On a fresh order, verify orientations on the assembly preview — BT1's mouth faces
WEST and LED cathodes (pad 1) face board center — before paying; a fix is
CPL-only, gerbers don't change.