Fix BCORNE firmware build for vial-qmk on modern Python.
Include m57.c for RGB matrix linking, add Python 3.14 math patch and platform fallback, and keep brightness step in info.json only.
This commit is contained in:
@@ -89,7 +89,6 @@
|
||||
# define WS2812_DMA_CHANNEL 5 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
|
||||
//# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM2_UP // DMAMUX configuration for TIMx_UP -- only required if your MCU has a DMAMUX peripheral, see the respective reference manual for the appropriate values for your MCU.
|
||||
#define RGB_MATRIX_SLEEP
|
||||
#define RGB_MATRIX_VAL_STEP 1
|
||||
|
||||
#define WEAR_LEVELING_LOGICAL_SIZE 2048
|
||||
#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
--- a/lib/python/qmk/math.py
|
||||
+++ b/lib/python/qmk/math.py
|
||||
@@ -23,8 +23,10 @@ def compute(expr):
|
||||
|
||||
|
||||
def _eval(node):
|
||||
- if isinstance(node, ast.Num): # <number>
|
||||
- return node.n
|
||||
+ if isinstance(node, ast.Constant) and isinstance(node.value, (int, float, complex)):
|
||||
+ return node.value
|
||||
+ elif isinstance(node, ast.Num): # <number> (Python <3.14)
|
||||
+ return node.n
|
||||
elif isinstance(node, ast.BinOp): # <left> <operator> <right>
|
||||
return operators[type(node.op)](_eval(node.left), _eval(node.right))
|
||||
elif isinstance(node, ast.UnaryOp): # <operator> <operand> e.g., -1
|
||||
@@ -0,0 +1,3 @@
|
||||
# Fallback when qmk info parsing fails (e.g. Python 3.14+ ast.Num removal).
|
||||
MCU ?= STM32F401
|
||||
PLATFORM_KEY ?= chibios
|
||||
@@ -5,7 +5,8 @@ Keyboard target: `sh01/m36:via`
|
||||
## Prerequisites
|
||||
|
||||
1. Install [QMK CLI 1.2.0](https://docs.qmk.fm/#/cli) (or QMK MSYS on Windows).
|
||||
2. Clone vial-qmk at the IFKB-pinned commit:
|
||||
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
|
||||
@@ -25,6 +26,13 @@ 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
|
||||
@@ -47,11 +55,25 @@ After flashing, load `../corne.vil` in Vial to restore your keymap.
|
||||
|
||||
## RGB brightness dial
|
||||
|
||||
Brightness step size is controlled in `config.h`:
|
||||
Brightness step size is set in `info.json` under `rgb_matrix.val_steps` (currently `1`).
|
||||
|
||||
```c
|
||||
#define RGB_MATRIX_VAL_STEP 1
|
||||
```
|
||||
With `max_brightness: 50`, step `1` gives 51 brightness levels. Increase to `2` or `4` if the dial feels too slow.
|
||||
|
||||
With `max_brightness: 50` in `info.json`, 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`.
|
||||
|
||||
@@ -24,5 +24,6 @@ SRC += rtt_viewer/SEGGER_RTT.c
|
||||
|
||||
CUSTOM_MATRIX = lite
|
||||
SRC += matrix.c
|
||||
SRC += m57.c
|
||||
# SRC += split_util_qf.c
|
||||
ALLOW_WARNINGS = yes
|
||||
|
||||
Reference in New Issue
Block a user