Replace the vendor interleaved g_led_config mapping with sequential left-then-right rows so per-key lighting matches the physical layout.
BCORNE firmware (DH747 / STM32F401)
Keyboard target: sh01/m36:via
Prerequisites
- Install QMK CLI 1.2.0 (or QMK MSYS on Windows).
- Use Python 3.11 or 3.12 for the build. Python 3.14 breaks the pinned vial-qmk commit unless patched (see Troubleshooting).
- Clone vial-qmk at the IFKB-pinned commit:
git clone https://github.com/vial-kb/vial-qmk.git
cd vial-qmk
git checkout fcd56b119ea8c60142c9a03e997be5a7acba52b7
make git-submodule
Install this keyboard port
Copy the contents of this folder into vial-qmk:
mkdir -p keyboards/sh01/m36
cp -r /path/to/kb-layouts/corne/firmware/* keyboards/sh01/m36/
The make target comes from that path: keyboards/sh01/m36 → sh01/m36:via.
If you are on Python 3.14+, apply the QMK math patch from inside your vial-qmk checkout:
cd /path/to/vial-qmk
patch -p1 < /path/to/kb-layouts/corne/firmware/patches/vial-qmk-math-py.patch
Build
make sh01/m36:via
Output: sh01_m36_via.uf2 in the vial-qmk root.
Flash
Flash both halves with the same UF2 file:
- Connect the half to USB (left half is the normal USB host side).
- Double-tap the reset button (not single tap).
- A drive named
IFKBshould appear. - Drag the
.uf2file onto the drive. - Repeat for the other half.
After flashing, load ../corne.vil in Vial to restore your keymap.
RGB brightness dial
Brightness step size is set in info.json under rgb_matrix.val_steps (currently 1).
With max_brightness: 50, step 1 gives 51 brightness levels. Increase to 2 or 4 if the dial feels too slow.
Do not also define RGB_MATRIX_VAL_STEP in config.h — QMK warns when both are set.
Troubleshooting
AttributeError: module 'ast' has no attribute 'Num'
The pinned vial-qmk commit uses ast.Num, which was removed in Python 3.14. Fix options:
- Recommended: build with Python 3.11 or 3.12 (
python3.12 -m venv .venv && source .venv/bin/activate && pip install qmk). - Alternative: apply
patches/vial-qmk-math-py.patchinside your vial-qmk checkout (see Install step above).
Platform not defined
Usually a follow-on error from the ast.Num failure — QMK never parses processor: STM32F401 from info.json. Fixing the Python issue should resolve this. post_rules.mk also provides a fallback (PLATFORM_KEY = chibios, MCU = STM32F401).
RGB_MATRIX_VAL_STEP in config.h is overwriting rgb_matrix.val_steps in info.json
Keep the step size in one place only — use val_steps in info.json, not #define RGB_MATRIX_VAL_STEP in config.h.