feat: consolidate validated Solstice ZMK 0.4 support - #4
Conversation
|
Hardware update (2026-08-23): flashed Solstice_L_US to the left XIAO. The central booted successfully with the custom dongle display and 6144-byte display thread stack. USB CDC/RPC ports enumerated, and COM74 emitted the Zephyr 10ba6d0cb38b boot log plus analog input and CDC trigger initialization. Visual confirmation of the peripheral battery value is still pending. |
|
Added two hardware findings: remove the SSD1306 inversion-on flag to correct the custom-screen background polarity, and restore the dedicated Solstice_R_Offset snippet (col-offset 8) because the former CONFIG_SHIELD_SOLSTICE_R overlay conditional does not apply reliably on the ZMK 0.4 build. ./just.sh build-fast Solstice_ --pristine=always passed 4/4 US/JIS targets. Hardware reflash pending. |
|
Reflash update: wrote the 87dbabb US artifacts to both halves. Left central returned with CDC/RPC ports after the OLED polarity fix. Right peripheral returned with COM50/COM49 after applying the dedicated col-offset 8 snippet. Visual OLED polarity, peripheral battery display, and right-hand key-position confirmation are pending. |
|
Right-hand key offset is hardware-verified OK. The OLED remains white-background, so the root cause is the LVGL 9 custom screen style rather than the SSD1306 inversion flag. Pinned zmk-dongle-display@f706f291cf440c6e95f9a7c59cf65ae59b9fd8be (module PR #4), which explicitly sets a black screen, white text, and transparent widget containers. ./just.sh build-fast Solstice_L_US --pristine=always passed; hardware reflash pending. |
|
Second OLED color iteration: the prior explicit styles did not change the hardware display because the custom-screen build had CONFIG_LV_USE_THEME_MONO disabled. zmk-dongle-display@1055be9 now selects the mono theme and defaults ZMK_DISPLAY_INVERT=y, while also applying local black/white styles. The built Solstice_L_US .config confirms both options enabled. just.sh pristine build passed and the firmware was flashed via COM74/H:. Visual confirmation pending. |
|
Third OLED polarity iteration: verified the previous artifact already had LV_USE_THEME_MONO=y and ZMK_DISPLAY_INVERT=y, but hardware remained white. Re-enabled the SSD1306 inversion-on command while retaining the dark mono theme; this is the first build testing both together. The pristine just.sh build confirms both Kconfig options plus inversion-on in the final DTS, and b373ba2 was flashed via COM74/H:. Visual confirmation pending. |
|
Switched from the te9no LVGL migration fork to upstream englmaxi/zmk-dongle-display@2bb333f. Upstream explicitly renders a white logical background with black text; Solstice retains SSD1306 inversion-on to produce the intended physical black background. The current upstream also includes display-event throttling and ZMK API fixes. just.sh pristine Solstice_L_US build passed and e5911bd was flashed via COM74/H:. Visual confirmation pending. |
|
The upstream Bongo Cat is 50x26 and aligned bottom-right, which overlaps battery/layer text on the Solstice 128x32 panel. Added an opt-in compact 32px layout proposal at englmaxi/zmk-dongle-display#37, pinned its upstream-based commit b724f0a, centered the cat, and disabled the conflicting layer widget on Solstice while retaining peripheral battery display. just.sh pristine Solstice_L_US build passed; hardware reflash pending. |
|
128x32 OLEDでBongo Cat(50x26)が右端の文字と重なる実機報告に対応。上流ベースのcompact 32px中央配置(englmaxi/zmk-dongle-display#37 / b724f0a)を有効化し、レイヤーwidgetを無効化した 8738367 を追加。./just.sh build-fast Solstice_L_US --pristine=always は成功。現在DYA StudioがCOM74を占有しており、CDC書き込みと実機目視確認は保留。 |
|
DYA Studio終了後、COM73/74/443の解放を確認。8738367のSolstice_L_US compact版をCOM74 CDC boot経由で左Centralへ書き込み、再起動後に3ポート復帰と通常debugログを確認。DYA Studio再接続とcompact表示の目視確認待ち。 |
|
実機確認: DYA Studio再接続、compact 32px OLED配置、背景極性はいずれも合格。Peripheral電池残量表示のみ別確認として継続。 |
|
訂正: 直前の実機OKはOLEDのみ。DYA Studio再接続は未合格。USB複合デバイスの対応はCOM73=board CDC、COM74=debug、COM443=Studio RPCのため、DYA StudioではSolstice COM443を明示選択して再検証する。 |
|
DYA Studio USB timeoutの原因を切り分け、修正を追加しました(676e7a9)。Solsticeだけ board CDC + CDC Debug + Studio RPC の3 CDC構成になっており、Studio COM443は列挙/openできてもRPC OUTを受信しませんでした。未使用board CDCを無効化して2 CDC構成へ揃えた後、左US実機で COM73=CDC Debug/CDC Boot、COM74=Studio RPC として再列挙し、COM74へのGetDeviceInfoが30-byte応答(name=Solstice)を返すことを確認しています。just.sh build-fast Solstice_ --pristine=always はUS/JIS左右4/4成功。DYA Studio UIではSolstice (COM74)を選択して最終確認待ちです。PRは実機確認完了までDraftのまま維持します。 |
|
Runtime Macro/ComboとPMW3610 split RPCの追試を追加しました(12d870e)。MKB基準のruntime-combo@d9490e7 / runtime-macro@3853096を固定して有効化し、just.sh pristineでUS/JIS左右4/4成功。左右USへ書き込み後、COM74のcustom subsystem一覧でruntime_combo=index 2、runtime_macro=index 3を確認しました。PMW3610 GetInfo(source=ALL)も直接検証し、右Peripheral source=1からready=true、PID=0x3e、rev=0x01、CPI=800、settings-id=solsticeの応答を取得しています。localhost:5173はPR #168対応DYA Studio branchで稼働しているため、UI再接続後の最終確認待ちです。 |
Summary
Hardware validation
Build validation
./just.sh build-fast Solstice_ --pristine=always: US/JIS left/right 4/4 passedStable
mainis intentionally unchanged; this PR targetszmk-0.4.