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>
Remove divider lines, add language and USB-update confirm pages, and store both in NVM so boot can enter IAP.
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>
Boot color sequence last frame was cyan; use mode-select green instead.
Mixer fader drag returned before ResetAutoPowerCount, so sliding volume could still hit auto power-off.
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>
G-major III was collapsing B3 onto B2 after register -12 plus transpose -12.
Keep single register drop for III/IV; stack xpose only from V upward.
Co-authored-by: Cursor <cursoragent@cursor.com>
NavBar no longer forces I after stop; remember context before leave and prefer saved fret chord on no-fret pick.
Co-authored-by: Cursor <cursoragent@cursor.com>
Normal-mode pick with no fret held applies the last expert stop transpose, starts on I, and arms even-beat stop if idle.
Co-authored-by: Cursor <cursoragent@cursor.com>
Init TM1629 before POWER_ON and run the color sequence during the logo dwell instead of after mode select.
Co-authored-by: Cursor <cursoragent@cursor.com>
On POWER_ON, fret-side LEDs follow the sample-unit '开机彩灯' sequence instead of jumping straight to solid green.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace the old 11x17 glyph and gray slash with dedicated on 13x20 and off 19x20 assets from the 0923 pack.
Co-authored-by: Cursor <cursoragent@cursor.com>
Normal and expert modes no longer wait for the next bar before preamble, interlude, outro, and ending. Universal mode ignores those keys. Bump firmware to 0.2.22.
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>
Loop_Light_Handle was hardcoding red for every measure; map L1-L7 to the same R/G/B/yellow/purple/cyan/white table as App guide LEDs.
Co-authored-by: Cursor <cursoragent@cursor.com>
Hit area on mode/home/settings hub; off state uses gray icon + slash until a disabled asset is ready. Syncs system setting and NVM.
Co-authored-by: Cursor <cursoragent@cursor.com>
Problem2: in song mode UI shows 6m(Am) but MIDI played AM7
(E2 A2 E3 G#3 C#4 E4). Root cause: BL_Set_led wrote the LED frame's
chord code into chord_type_index_map of the group middle key
(LED_L6 -> key17), so a guidance frame carrying 0x02 (M7) turned the
Am key into AM7. Remapping on the chord page only helped until the
next LED frame.
- BL_Set_led: light LED only, drop all chord_type_index_map writes;
chord quality is owned by map page 02 03/02 04 (BT_Chord_offset_map)
- handleReadRhythmMap / Return_Light_buff: fix type->protocol read-back
encoding (m7->0x0A, M7->0x02, ad9->0x04, m7-5->0x0B, sus2->0x1F,
sus4->0x1E), re-landing the 0917 verified fix
- BT_Chord_offset_map: accept dominant-7 doc code 0x0D (legacy 0x13 kept)
- tests: test_chord_map_fix.py (16/16 PASS on device),
test_fret_positions.py, test_problem2_song_am.py (7/7 PASS:
post-LED strum stays E2 A2 E3 A3 C4 E4)
Co-authored-by: Cursor <cursoragent@cursor.com>
Low-battery shutdown below 6.2V with tip screen and 10s soft power-off; UI0902 includes LOWBAT_TIP fullscreen asset.
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>
Disable LOOP_LIGHT rhythm chasing in free mode so LEDs stay solid green instead of moving with the beat.
Co-authored-by: Cursor <cursoragent@cursor.com>
Match 转调说明 table: C~F keep normal register; #F~B lower bass/chord by one octave for all fret degrees. III+ register fix unchanged. RTT pitch test covers I/II+#F.
Co-authored-by: Cursor <cursoragent@cursor.com>
Free-mode even-beat release stop; keep fret KEY_ID during wind-down so register octave does not jump up before stop. Also includes universal outro all-green LED and expert local-song continue after section+fret.
Co-authored-by: Cursor <cursoragent@cursor.com>
In normal mode, releasing the fretboard now finishes the current beat-pair (beat 1→end of 2, beat 3→end of 4) instead of cutting immediately.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep fretboard LEDs all green during outro, and for expert local songs treat section-key + fret changes as continuous chord updates like rhythm mode (no mid-session Stop).
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>
App writes for timbre/BPM/transpose/style were refreshing LCD and
reloading tone packs on the 768B BLE recv stack, causing overflow and
crashes. Route heavy work through MSG_ID_BLE_* into the UI task, and
notify App when the device changes rhythm style.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace the status-bar outline+fill with the 0918 lightning battery bitmap while charging, and fix Pre-Build git version script UTF-8 decoding on Chinese Windows.
Co-authored-by: Cursor <cursoragent@cursor.com>