diff options
Diffstat (limited to 'QMK firmware keychron c1/index.md')
| -rw-r--r-- | QMK firmware keychron c1/index.md | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/QMK firmware keychron c1/index.md b/QMK firmware keychron c1/index.md new file mode 100644 index 0000000..0933cd5 --- /dev/null +++ b/QMK firmware keychron c1/index.md @@ -0,0 +1,93 @@ +--- +description: "Flashing Sonix QMK on Keychron C1 plain mechanical keyboard" +created: 2023-10-21 +--- + + + +Base instructions: [Sonix QMK sn32_master Keychron C1 plain](https://github.com/SonixQMK/qmk_firmware/tree/sn32_master/keyboards/keychron/c1/plain) + +## Keyboard hardware model variants +- [Keychron C1 plain (No LEDs)](https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard?variant=39767302078553) +and +- [Keychron C1 white (White LEDs)](https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard?variant=32321246953561) +use the same board. +- [Keychron C1 RGB (RGB LEDs)](https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard?variant=32321247051865) +uses a different board + +This tutorial / collection of info applies to Keychron C1 plain + +## Building QMK firmware + +The correct [Sonix QMK](https://sonixqmk.github.io/SonixDocs/) +branch to use for this is +[sn32_master_stable](https://github.com/SonixQMK/qmk_firmware/tree/sn32_master) +source: Found a comment on the discord server, generally digging through the +[discord server](https://discord.gg/8XqzfBknfC) reveals the correct way of +doing something +```bash +qmk clone SonixQMK/qmk_firmware -b sn32_master_stable +``` + + +When making the firmware with the QMK command, +specify `via` as the layout +```bash +qmk compile --keyboard keychron/c1/plain --keymap via +``` + +## Build Sonix flasher + +It's important to use the +[Flashing tool](https://github.com/SonixQMK/sonix-flasher) to flash the +jumploader, which is needed on this chip, because it's possible to brick it, +by overwriting the bootloader, the jumploader allows a button combination (ESC) +to be held when plugging in the keyboard to boot into bootloader mode. +Bootloader mode is the mode that allows flashing new software to the chip. + +To build on modern systems, update requirements.txt QT version as per the +instructions [here](https://github.com/cederlys/svive-qmk#flashing) +(I do this with sed in the following code snippet) + +This was tested on Arch 2023-09-21 with the following package versions: + + - [python36](https://aur.archlinux.org/packages/python36) 3.6.15-5 + - [qt5-base](https://archlinux.org/packages/extra/x86_64/qt5-base/) 5.15.10+kde+r155-1 + - [python-pyqt5](https://archlinux.org/packages/extra/x86_64/python-pyqt5) 5.15.9-2 + +```bash +# Install python 3.6 +yay -Sy python36 + +# Don't save the software when rebooting the computer +cd /tmp/ + +# Download release 0.2.5 +wget https://github.com/SonixQMK/sonix-flasher/archive/refs/tags/v0.2.5.zip + +# Extract release +unzip v0.2.5.zip +cd sonix-flasher-0.2.5/ + +# Install these python package versions for this project only +python3.6 -m venv venv +source venv/bin/activate + +# This was needed, else it threw an error +pip3 install --upgrade pip +pip install wheel + +# Use a more modern version of the QT package, +# that's compatible with the version of QT in the repos +sed -i 's/hidapi==0.9.0.post2/hidapi==0.14.0/' requirements.txt +pip install -r requirements.txt + +# Run the program +python src/main/python/main.py +``` + +## VIA +To use via it needs the json keyboard definition loaded + +## Resources +- [C1 White PCB info](https://github.com/IsaacDynamo/keychron_c1_white_info) |
