# BCORNE firmware (DH747 / STM32F401) Keyboard target: `sh01/m36:via` ## Prerequisites 1. Install [QMK CLI 1.2.0](https://docs.qmk.fm/#/cli) (or QMK MSYS on Windows). 2. Use **Python 3.11 or 3.12** for the build. Python 3.14 breaks the pinned vial-qmk commit unless patched (see Troubleshooting). 3. Clone vial-qmk at the IFKB-pinned commit: ```bash 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: ```bash 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: ```bash cd /path/to/vial-qmk patch -p1 < /path/to/kb-layouts/corne/firmware/patches/vial-qmk-math-py.patch ``` ## Build ```bash make sh01/m36:via ``` Output: `sh01_m36_via.uf2` in the vial-qmk root. ## Flash Flash **both halves** with the same UF2 file: 1. Connect the half to USB (left half is the normal USB host side). 2. Double-tap the reset button (not single tap). 3. A drive named `IFKB` should appear. 4. Drag the `.uf2` file onto the drive. 5. 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: 1. **Recommended:** build with Python 3.11 or 3.12 (`python3.12 -m venv .venv && source .venv/bin/activate && pip install qmk`). 2. **Alternative:** apply `patches/vial-qmk-math-py.patch` inside 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`.