III-VII shapes use the C-major sequence column with the same fixed-key offset as the strings. Chord tones follow the decimal column. Bump firmware to 0.2.57.
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>
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>
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>
Centralize idle-timer reset on touch/volume/tap/transpose in UI task, and on pick, fretboard, side keys, round keys, and string NoteOn. Pause auto power-off countdown while accompaniment is playing.
Co-authored-by: Cursor <cursoragent@cursor.com>
Restore hard AutoBandTop1_Stop and drop eaten-start/followup tick-gate.
Keep API stubs for callers. Block TM1617 round keys and reinforce side-key/BLE gates while InModeFlag is false.
Co-authored-by: Cursor <cursoragent@cursor.com>
Universal TM1629 path dropped keys 0-21 before BP_Transpose. Route pick-hold neck keys to transpose, add RTT pick hold inject and a HIL script.
Co-authored-by: Cursor <cursoragent@cursor.com>
TM1617 keys injected fake touches at y=255 which slammed mixer sliders to 1. Lock the pressed fader until release and shrink overlapping hit boxes.
Co-authored-by: Cursor <cursoragent@cursor.com>
Stop all sound, show UI0902 LOWBAT_TIP fullscreen, then soft-off after 10s. Skip while charging; speed up ADC sampling near empty. Pack new tip bitmap into ExtFlash UI0902 map.
Co-authored-by: Cursor <cursoragent@cursor.com>
Include Type-C charging battery icon and BLE timbre/style UI sync fix already on develop; add RTT midi/string inject helpers for mic pitch calibration. Tone pack remains 0916_bank.
Co-authored-by: Cursor <cursoragent@cursor.com>
Apply Accomp_ApplyDefaultIChord before SyncStart on preamble, on soft power-on/mode enter/nav switch, and on pick fallback. Reset TM1629 key edge state so soft-off residual key_last cannot stick a prior fret.
Co-authored-by: Cursor <cursoragent@cursor.com>
Consume the same power-key hold used for soft-off charge boot before setting powon, and ignore stale POWOFF_CHARG after power-on so mode select stays on screen.
Co-authored-by: Cursor <cursoragent@cursor.com>
Require fretboard in normal mode per manual; use SetPiecePlayMode for 1.bin. ACK ui boot/charge before full-screen draw, add RTT flash all and tone pick free, and skip soft-off while ExtFlash transfer is busy.
Co-authored-by: Cursor <cursoragent@cursor.com>
TMR7 high-prio watchdog and fault-loop emergency cut/reset so soft-off still works if the main loop or AutoBand ISR dies; skip start when preset load fails.
Co-authored-by: Cursor <cursoragent@cursor.com>
tools/k1_harness: one CLI over existing COM/BLE/RTT scripts covering
App SysEx 01-06, BLE smoke, TM1629/TM1617 key inject, 1/2/3.bin pack
checks with pick/outro regression, and UI nav (log status/TAP/DUMP).
Unified PASS/FAIL/SKIP/SENT markdown report to Doc/reports.
firmware hooks in app_log.c: 'tm1617 key N', 'adc key N on|off',
'tone bin2 [idx]', 'chord key N hold' (sticky inject survives physical
idle scan so normal-mode pick tests can hold a chord).
Co-authored-by: Cursor <cursoragent@cursor.com>
AutoBand ignores input octave, so shift engine MIDI output by -12 for those chords (except drums) to keep the range from low #IV up to natural IV.
Co-authored-by: Cursor <cursoragent@cursor.com>
Enlarge BT recv stack, move large handlers/log buffers off the stack, clamp key indexes, and yield in W25Q busy-wait so BLE protocol tests stay stable.
Co-authored-by: Cursor <cursoragent@cursor.com>
Log Flash magic on load failure, expose RTT flash bin3, and document the 0903 pack offset for the universal bank.
Co-authored-by: Cursor <cursoragent@cursor.com>
Always Send_volume in MainTask, re-apply after DSP settle, and sync vol_last so UI bar matches Dream gain.
Co-authored-by: Cursor <cursoragent@cursor.com>
Pick fires on downstroke; #IV drops an octave; local songs use 2.bin; transpose updates notes without restart; intro starts on key I; boot string volume/PC corrected.
Co-authored-by: Cursor <cursoragent@cursor.com>
Harden reset/recover when RTT is missing, and stream touch/UI events only on press for field debugging.
Co-authored-by: Cursor <cursoragent@cursor.com>
Preserve focus across redraws, improve XPT2046 sampling, and log touch coords via RTT for ongoing debug.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace the old volume bars with 5 rounded-top bars using a left-to-right brightness gradient, synced from the ADC volume pot.
Co-authored-by: Cursor <cursoragent@cursor.com>