Skip to content

Coaster v0.3.1

Latest

Choose a tag to compare

@owahltinez owahltinez released this 07 Jul 01:06

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 as enclosure/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-loop flashes + 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.