# Hacking with my hackable Launch Keyboard > **Code name**: `launch_1` > **Homepage**: https://system76.com/accessories/launch > **Open source design** (OSHWA certified): https://github.com/system76/launch 下訂日期:2021/9/7 到貨日期:2021/11/6 ## 規格簡記 尺寸:TKL,但 Home/End/PgUp/PgDn 這四顆鍵在右側直排,故寬度略小於一般 80%。 軸體:Kailh BOX Royal (凱華紫軸,實際上要在 NovelKeys 官網上才查得到:<https://novelkeys.com/products/kailh-box-switches>),[路邊撿來的受力曲線圖](https://chart-studio.plotly.com/~haata/506)。 鍵帽:PBT 鍵帽,XDA profile (等高),到手用了幾個星期才想到這是為了方便替換不同排的鍵帽的關係。 技術文件:https://tech-docs.system76.com/models/launch_1/README.html 沒講什麼東西,拆解的時候可能會有點幫助 下文主要內容為筆者用這把鍵盤摸索 QMK 的過程 XD # Keymap Configurable through its [keyboard configurator](https://github.com/pop-os/keyboard-configurator) without reflashing firmware. The information is persisted in EEPROM (this feature is called dynamic keymapping in QMK). The original bottom-row layout: (|| for 2U space x2) <kbd>Ctrl</kbd> - <kbd>Alt</kbd> - <kbd>Fn</kbd> - <kbd>Super</kbd> || <kbd>Ctrl</kbd> - <kbd>Alt</kbd> - <kbd>Fn</kbd> (2U) Somehow weird. I changed them to: <kbd>Ctrl</kbd> - <kbd>Fn</kbd> - <kbd>Super</kbd> - <kbd>Alt</kbd> || <kbd>Alt</kbd> - <kbd>Ctrl</kbd> - <kbd>Fn</kbd> Also, by default, the rightmost column is (up to bottom) <kbd>Home</kbd> - <kbd>PgUp</kbd> - <kbd>PgDn</kbd> - <kbd>End</kbd>. I tend to group Home and End together, but I haven't made the change. # QMK System76's official open source firmware: https://github.com/system76/qmk_firmware. The upgrade process is integrated into Pop!_OS, and its firmware can be upgraded with [fwupd](https://github.com/fwupd/fwupd), as shown below: <figure> ![](https://i.imgur.com/ng2hB72.png) <figcaption style="text-align: center; color: #999">(Sorry for Simplified Chinese characters)</figcaption> </figure> The first thing to try is to reflash the "stock" firmware. Compile at commit [a497202](https://github.com/system76/qmk_firmware/commit/a4972028d2f0c9bb36e268ad7f69ce8cd32ff44f), QMK version is v0.7.103 (2019/12/18). The final size is 25276 bytes (88%), which is pretty tight, as we have only 28 KiB available. The stock firmware is very outdated. There is ongoing efforts to add it to the QMK repo and get updates with it (see below), but I came over a working fork/PR until 2023. Notes: * More about the PCB: * MCU is **atmega32u4**. * Bootloader is **Atmel DFU**. * RGB matrix controller is **WS2812**. Actually it is a strand. * System76's EC (embedded controller) code is at `keyboard/system76/system76_ec.c`. * RGB is handled manually through `process_record_kb`, so there is `RGB_MATRIX_DISABLE_KEYCODES`. Only supported keycodes are on/off or inc/dec brightness, and other ones are simply not handled. :( * There are many unused RGB effects (not selectable even from the configurator; the configurator simply keeps an identical list and looks up by indices). Disabling them with `DISABLE_*` reduces ~2 KB. Removing all non-essential effects further reduces ~2 KB. * Not knowing why `LOCKING_SUPPORT_ENABLE` is enabled, as there is no mechanical lock present on this keyboard. Reduces ~200 bytes after commenting them out. * The lighting state (on/off/v-value) is not persisted. It is always on whenever it powers on, at max light (176). * What is `launch_2`? # My fork Then I made my fork: https://github.com/andy0130tw/qmk_firmware, updated to upstream latest tagged version, v0.14.29, as the time of writing. **The issue: LED not working at all.** > **2022/1/11 Update**: Someone has managed to upgrade the QMK: https://github.com/qmk/qmk_firmware/pull/15395 (**merged**). Will test it when I have time. > **2022/6/27 Update**: Someone made a PR to rebase system76's fork: https://github.com/system76/qmk_firmware/pull/25, but seems to be a WIP. This is in the reverse direction of the above PR. > **2022/10/18 Update**: There is a new PR in upstream: https://github.com/qmk/qmk_firmware/pull/17916. > **2022/10/29 Update**: The RGB lighting is always the start-up mode when first connected, even if a custom is set in the configurator. That is, all up-to-date QMK forks I can find are not working properly :( > **2022/12/1 Update**: Yet another PR :( https://github.com/system76/qmk_firmware/pull/31 > **2023/3/21 Update**: This is **the first working PR**, rebasing all the works to **v0.19.12**: https://github.com/system76/qmk_firmware/pull/34. # Random code snippets (Currently none) # References https://www.reddit.com/r/System76/comments/pfa3a2/using_qmk_with_the_launch/