Hermetic Modular

Alchemy SDK v0.12.0: USB Diagnostics and Editor Updates

By Luke Pendergrass

alchemy-sdk · alchemy-lab

Capicola in a Eurorack case, with amber LED rings lit beside a Marbles module

Alchemy SDK v0.12.0 is out, with USB diagnostics, live updates to the browser editor, and fixes for selectors, clock timing, and CV. Spagyros 2.1.1 is built on it and fixes the bottom-row button color. This release works through a batch of user reports and requests, alongside updates to the SDK documentation and Web Programmer.

Spagyros 2.1.1

Full notes on the Spagyros patch notes page. Flash it from the Web Programmer.

  • B3 now shows the bottom row's selected effect color and brightens with engagement, matching B1 and B2.
  • Recording still takes over B3 with a red blink. Stop recording and the effect color returns; the recorder fault indicator retains priority.
  • Existing presets remain compatible.

Web Programmer

The programmer now has a Device console for firmware that enables the SDK's diagnostics extension. Log messages and live values travel over the same front USB-C connection used to edit the module. You can filter messages by severity, pause the view, and copy or download the captured text. Firmware can report a changing value, such as tempo or a counter, without filling the log with repeated messages.

The editor also follows more of what the firmware declares:

  • Selector choices use the same boundaries as the physical controls and LED rings.
  • Firmware can hide unused controls from the editor and interactive manual while keeping their stored values.
  • Control names, labels, and visibility can refresh while connected, without reconnecting the module. Preset layout and field identities stay fixed.
  • Button tap and hold help comes directly from the declared gestures.

SDK v0.12.0

Tagged v0.12.0 on GitHub, with the template repository already pinned to it.

  • USB diagnostics: optional logs and typed live values, with browser and command-line viewers. HostLink also works without a preset store, so a small utility firmware can expose diagnostics and reboot support without adding presets. See HostLink.
  • Clock timing: fixed a timer-rollover problem that could interrupt clock analysis for about 50 ms every 21 seconds. Custom clock code should use loop.PollTimeUs() or TickTimebase; the release notes cover the migration.
  • Selectors: corrected disagreements between the selected value, ring display, and browser, including cases where several choices share an LED.
  • Manuals and controls: up to sixteen manual sections, explicit control visibility, and runtime metadata refresh. See control surfaces and firmware-authored manuals.
  • Triggers and CV: more reliable trigger detection on J1/J2, corrected voltage conversion on J9/J10, and stronger validation before calibration data is saved. Ordinary audio output is unchanged.

If something looks off, file an issue on GitHub or come by the Discord. New here? The Alchemy Lab is the module all of this runs on.