Commit Graph

92 Commits

Author SHA1 Message Date
yuquanjun 1cc4d400ef fix(usb): show USB update and enter the loader after confirm
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>
2026-09-25 20:33:26 +08:00
yuquanjun 4063bab4b5 fix(ui): align transpose and tempo controls with the 0924 mockup
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>
2026-09-25 11:16:20 +08:00
yuquanjun ea60c1fb62 feat(ui): apply 0924 layout with language and USB mode
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>
2026-09-25 07:39:32 +08:00
yuquanjun 84b6e4f15a chore: bump firmware to 0.2.29 and refresh release pack metadata
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-24 20:12:56 +08:00
yuquanjun 3eba48ece1 fix(auto): stop stacking xpose -12 on III/IV chords
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>
2026-09-24 16:32:18 +08:00
yuquanjun f116e17529 chore: bump firmware to 0.2.28 and refresh release pack metadata
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-24 08:12:26 +08:00
yuquanjun 3c102a918f feat(ui): use 0923 status-bar Bluetooth on/off icons
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>
2026-09-24 06:15:10 +08:00
yuquanjun 3b0f5479ba feat(amp): BLE SysEx R/W for AD85050 CH2 EQ RAM and I2C scan
Expose 0xA0-0xAE via 07 00/01 nibble-coded frames, add RAM helpers, and host scan/test scripts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-24 06:14:56 +08:00
yuquanjun 96fd815ca9 fix(band): cut intro and endings in immediately
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>
2026-09-23 08:39:39 +08:00
yuquanjun 93e633472a fix(xpose): allow neck transpose in universal after pick hold-up
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>
2026-09-23 07:43:46 +08:00
yuquanjun 4716c87b5c release: bump firmware to 0.2.21
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 11:41:05 +08:00
yuquanjun ef41eb30fa fix(chord): song-mode LED no longer overwrites chord map (6m/Am -> AM7)
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>
2026-09-22 11:40:51 +08:00
yuquanjun cd32b4120b release: bump firmware to 0.2.20
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>
2026-09-21 17:53:30 +08:00
yuquanjun 1b1b9b196d feat(power): low-battery tip screen and auto power-off below 6.2V
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>
2026-09-21 17:53:13 +08:00
yuquanjun 878f3b41f1 release: bump firmware to 0.2.19
I/II+#F overall -12 transpose mapping; free-mode keeps all fret LEDs green (no LOOP_LIGHT). Carries 0.2.18 free even-beat stop, KEY_ID wind-down, universal outro, and expert local-song continue.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 17:23:09 +08:00
yuquanjun feb084699c fix(reg): apply overall -12 for transpose >= #F on I/II too
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>
2026-09-21 17:18:30 +08:00
yuquanjun f135027647 release: bump firmware to 0.2.18
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>
2026-09-21 15:52:58 +08:00
yuquanjun 56a5a253ca release: bump firmware version to 0.2.17
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>
2026-09-20 07:18:44 +08:00
yuquanjun fd58637e9d feat(ui): show charging battery icon when Type-C is plugged
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>
2026-09-19 17:58:33 +08:00
yuquanjun e721c8e67c release: bump firmware version to 0.2.16
Stop accompaniment on mode/song switch; restore all-green LEDs when leaving universal; default pick/preamble to current-key I chord after soft boot.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-17 16:18:52 +08:00
yuquanjun ca0244d0d5 release: bump firmware version to 0.2.15
Dual MIDI bank (accomp bank0 / string bank1) + toneRes 0916_bank; keeps local-song mid-play and power-on KEY_ID fixes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-17 14:00:01 +08:00
yuquanjun d11d217b02 release: bump to 0.2.14 with toneRes 0916_bank
Repack ExtFlash from Doc/音色文件/0916_bank; BIN3 stays at 0xA7437 (2.bin length unchanged).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 18:32:13 +08:00
yuquanjun 6fbeaa4881 release: bump firmware version to 0.2.13
Ship expert fretboard continue for local songs and tone resource pack 0915.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 21:01:30 +08:00
yuquanjun 5f41af27e7 fix(expert): 专业模式仅按指板即可续奏下一和弦,无需再拨片
App 连机专业模式下,起奏后按亮灯指板即可继续播放:
- 本地曲目(App 和弦曲目)/段落停止时:指板键投递 MSG_ID_BP_KEY 给主任务,
  走与「指板+拨片」完全相同的 Pick_Handle 起奏路径(扫描线程内直接
  Stop+Start 会无声,主任务上下文正常),Pick_Handle 内 Return_Light_buff
  通知 App 亮下一节
- 节奏库播放中:保持说明书行为,仅 Note_On 换和弦音 + Return_Light_buff
- 去掉 Last_Tm1926D_Key 去重:相邻两节可能是同一和弦键,松手再按必须能续奏
- 新增 Band_TrackPlayTick/Band_IsPlaying:8ms 周期跟踪 AutoBand PlayTick
  判定伴奏是否进行中
- 抽出 Expert_StartWithChord 公共起奏函数,拨片/指板共用
- tools/_test_expert_fret_restart.py: 指板续奏 RTT 回归测试

HIL 验证: pitch reg OK=41 FAIL=0; packs 9/9 PASS

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 19:13:10 +08:00
yuquanjun 61caeb7407 release: bump firmware version to 0.2.12
Include autoclose 关闭 glyph fix and recent normal-pick / HIL / flash-tool work in the release tag.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 22:09:09 +08:00
yuquanjun eed22d4b8c fix(ui): add missing 闭 glyph for autoclose 关闭 label
Settings showed only 关 because GBK 闭 was absent from CHS font tables; append WenQuanYi bitmaps for all sizes and keep the patch helper.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 22:07:57 +08:00
yuquanjun 8ac13ce6e9 tools: add MCU + ExtFlash ALL.res flash helper
Script flashes APP via J-Link then streams ALL.res over RTT flash all; include a minimal loadbin command file for APP-only updates.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 21:49:37 +08:00
yuquanjun cae4eb84a1 test: clearer BLE scan FAIL; RTT reset; longer UI ACK timeouts
Report missing Smart Guitar MIDI as an explicit FAIL instead of parse noise, reset target when opening RTT sessions, and give ui boot/charge more ACK time for LCD draws.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 21:49:37 +08:00
yuquanjun d06e44bcb3 fix: keep power key alive on hang; refuse play when tone pack missing
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>
2026-09-14 20:19:45 +08:00
yuquanjun f8aeb4fb7c release: 0.2.10 — tone pack 0914 (BIN3 after 2.bin), autoclose label 关闭
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 19:37:57 +08:00
yuquanjun 7fa2f5f1c4 release: bump firmware version to 0.2.9
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 16:27:04 +08:00
yuquanjun 6da7d4d627 test: stabilize HIL suites — inter-suite reset, async tm1617 inject, ACK-first
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 16:16:11 +08:00
yuquanjun 28970fddf0 chore: drop committed __pycache__ and ignore Python bytecode
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 15:05:49 +08:00
yuquanjun a495717883 test: unified K1 HIL harness + RTT inject hooks (tm1617/adc/bin2/sticky)
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>
2026-09-14 15:05:17 +08:00
yuquanjun daee47a457 tools: add BLE/RTT/pick test and flash helper scripts
- ble_log_pull.py: pull field logs over BLE (midi/uart transport)
- rtt_flash_log_dump.py / log_decode.py: dump and decode RAM/flash logs via J-Link RTT
- _test_normal_pick.py: semi-automated normal-mode pick regression (RTT + physical pad)
- _ble_channel_matrix.py / _probe_ble_rtt.py / _usb_midi_sysex_probe.py: GATT/BLE/USB-MIDI diagnostics
- build_artist_kit.py: package artist tone kit
- flash_boot_app_v024.py: flash boot+app images

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 14:58:11 +08:00
yuquanjun 1cf6562236 Add bass/chord register mapping with RTT inject and bin1/3 probes.
Intercept AutoBand MIDI by channel (bass ch8, drum ch9), add chord-key RTT cmds, and ship scripts to verify 1.bin/3.bin pitch rules on device.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 21:21:11 +08:00
yuquanjun 05ccf28a4b Release 0.2.8: harden BLE SysEx receive path for app stability.
Bump firmware version after BT recv stack/log fixes and pitch/chord bounds so Phoenix Atelier map/LED traffic no longer stack-smashes the MCU.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-10 07:02:22 +08:00
yuquanjun 24ffe87527 Refresh bottom nav with 0909 enlarged icons and aligned label art.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 20:24:39 +08:00
yuquanjun 5bb403cd11 Add artist self-serve tone pack tool for USB IAP updates of 1/2/3.bin.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 16:37:29 +08:00
yuquanjun bb6d9ae7f9 Release 0.2.7: refresh rhythm 1.bin pack with fixed BIN3 layout checks.
Update pack/publish to enforce 41KB song limit, verify 1/2/3.bin at fixed addresses, and emit .res aliases for the tone and ALL extflash images.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 12:17:42 +08:00
yuquanjun 99f7ed3e5a Pin BIN3 to fixed 0xA71AC and reject packs where 2.bin drift shifts it.
Variable 2.bin length previously moved 3.bin; firmware still read 0xA71AC and saw zeros. Pack now pads to the fixed slot and publish verifies DAB headers before shipping ALL.res.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 11:47:15 +08:00
yuquanjun 92e5e32de3 Diagnose BIN3 LoadPreset failures and add flash bin3 tooling.
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>
2026-09-09 11:32:40 +08:00
yuquanjun f1f9520637 Fix settings BT/restore icons and soft-off BLE protocol plumbing.
Point system-settings rows at the correct Flash icons, keep Main/UI alive across soft-off, and expose git build id for 01 0C with matching BLE tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 07:03:52 +08:00
yuquanjun 57448b3da8 Harden BLE protocol test for Windows pairing and flaky notifies.
Default --unpair on Windows, probe/reconnect on first timeout, resync FrameParser on duplicate F0, and retry query once.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 22:14:18 +08:00
yuquanjun 0aedb45e6e Make BLE SysEx UID and fw-code MIDI-safe for BLE-MIDI.
Encode 01 07 UID as hex ASCII and use 01 0F (keep 01 FF alias) so high-bit bytes are not dropped as timestamps.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 22:02:06 +08:00
yuquanjun 7b08f5e098 Start BLE UART4 App protocol receive on power-on.
TaskBTRecvThread previously started only after mode select, so GATT SysEx never reached the parser until then; verified BLE-MIDI 01 01 now replies with GATT notify.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 21:46:14 +08:00
yuquanjun f762348883 Merge branch 'main' into develop 2026-09-08 18:15:45 +08:00
yuquanjun 7138123201 Release 0.2.6: refresh HKTK 2.bin from Doc/音色文件/0908/2ss_2.bin.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 18:09:15 +08:00
yuquanjun 8febbd7742 Align BLE SysEx style/transpose replies with Doc protocol and add BLE test harness.
Drop ineffective Dream BT rename SysEx; fix 03 04 boot/list/total and 03 07 read length.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 18:05:04 +08:00
yuquanjun 725ac495ba Merge main: bring Release 0.2.5 (2ss.bin tone pack) into develop.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 10:18:06 +08:00