Stop adding transpose to every string and AutoBand tone. Each degree now uses the C-major source fret from the sheet, with +1 only where the sheet marks it.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep the last 1/2/3 fill on screen, and leave neck lights all green in normal and expert unless the app is guiding them.
Co-authored-by: Cursor <cursoragent@cursor.com>
A protected pack only trickle-charges, so Dream, the 12V rail, and the amp stay off until the pack is above 6.8V. Firmware is 0.2.51.
Co-authored-by: Cursor <cursoragent@cursor.com>
Dream power-up now overlaps the boot light show. Mode keys, the pick, and side keys stay ignored until MIDI config has been sent, so a fast tap cannot play before the board is ready.
Co-authored-by: Cursor <cursoragent@cursor.com>
Boot and song changes use the universal and rhythm BPM tables, with style 20 at 91. Factory restore and power-on now follow the persistence sheet, and the firmware version is 0.2.49.
Co-authored-by: Cursor <cursoragent@cursor.com>
TM1629 drops display-on when the board loses power, while key reads still work. Re-enable the display and rewrite the current pattern when the board is seen again.
Co-authored-by: Cursor <cursoragent@cursor.com>
Bump firmware to 0.2.44 so slot 1 stays Bank1 program 24 and slot 2 stays program 25. Rhythm presets no longer replace the string voice on channel 0.
Co-authored-by: Cursor <cursoragent@cursor.com>
Drop in the 2026-10-06 AutoBand module_ab patch so Stop advances the
timeline and settles to_stop before the next Start, enabling immediate pick.
Co-authored-by: Cursor <cursoragent@cursor.com>
The captured sample curves made the tone uneven. Rewrite the datasheet bypass values at boot because a software reset leaves the old coefficients in RAM.
Co-authored-by: Cursor <cursoragent@cursor.com>
Hold master mute from shortly after the boost turns on through EQ setup, then let the chip fade in so boot does not pop.
Co-authored-by: Cursor <cursoragent@cursor.com>
Bring up 12V and Dream together after the boot lights, then configure the amp a single time so the string tone stays intact and the unmute write is not lost.
Co-authored-by: Cursor <cursoragent@cursor.com>
Write the captured AD85050 channel EQ into coefficient RAM before unmute so boot matches the prototype instead of the chip bypass defaults.
Co-authored-by: Cursor <cursoragent@cursor.com>
The charging glyph kept a fixed yellow bar. Clear that bar from the icon and paint the cavity from the current percent, in the same yellow as the bolt.
Co-authored-by: Cursor <cursoragent@cursor.com>
The source picture painted the glyphs in the page background color, so the screen stayed black. Draw those strokes in white when the external image has no light pixels.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep the NVM sector out of the application image and arm a backup register that survives reset, so confirm stays in flash mode even when round key 4 is not held.
Co-authored-by: Cursor <cursoragent@cursor.com>
Match the requirement screen using the settings-hub method, and keep the glyphs 1-bit so the image still fits in application flash.
Co-authored-by: Cursor <cursoragent@cursor.com>
Show the real battery percent, shut down at 6.8V even while Type-C is connected, and leave the charge screen dark so it does not drain the pack. Initialize the amplifier only after the 12V rail has settled.
Co-authored-by: Cursor <cursoragent@cursor.com>
Bump firmware to 0.2.31. Skip the color LED sequence on USB power-on so a depleted pack can leave the logo screen and charge normally.
Co-authored-by: Cursor <cursoragent@cursor.com>
Bump firmware to 0.2.30. The 11px font now has the update glyphs, and the flashed boot image stays in USB programming when that mode is saved.
Co-authored-by: Cursor <cursoragent@cursor.com>
Match the card box to the reference, put the value on the same center line as the arrow and plus-minus chips, and use MiSans for the 16px digits.
Co-authored-by: Cursor <cursoragent@cursor.com>