Skip to content

Releases: TTeuber/pistomp-hal

v0.2.0 — library layout, examples, host tests, CI

Choose a tag to compare

@TTeuber TTeuber released this 11 Jul 01:41

The HAL grows from a code drop into a proper library: conventional layout, runnable examples, host-testable driver logic, and CI that proves both backends on every push.

Breaking

  • Include paths: headers moved to include/pistomp/ and are consumed with a prefix — #include "encoder.h" becomes #include "pistomp/encoder.h". Update your includes when bumping the pin from v0.1.0.

New

  • examples/ — four demos (passthrough, controls, display, mini_pedal), each compiling unchanged for the Pi and the macOS simulator with zero #ifdefs. Build with -DPISTOMP_HAL_BUILD_EXAMPLES=ON.
  • Host-runnable tests — the quadrature decoder and switch debounce/edge logic now live in header-only pistomp/detail/ units, shared by the Linux and sim drivers and covered by 19 Catch2 cases (-DPISTOMP_HAL_BUILD_TESTS=ON, run via ctest). No hardware, no mocks.
  • CI — the simulator backend builds and tests on macOS; the real Pi backend compiles in a debian:bookworm container on an arm64 runner, the same glibc/arch the Pi runs. Examples build in both jobs.

Changed

  • Sources reorganized into src/linux/ (libgpiod/spidev/ALSA drivers) and src/sim/ (SDL2/miniaudio simulator).
  • README overhauled: architecture diagram, simulator key map, example walk-throughs.