Nuphy V2 keyboards are running a version of QMK firmware. QMK is an open-source project and thankfully Nuphy has published changes they made to QMK.
Goal of this doc: provide in-depth explanation of existing QMK repos for Nuphy keyboards and only some high-level QMK info.
Why you might want to use custom firmware:
- Fixes – which haven't made to official firmware just yet
- Very custom mappings (e.g. switch between Win and Mac automatically – based on NumLock state)
Potential downsides: we are not sure if Nuphy published all of their code, so
- Some fixes from official firmware might be missing
- Battery life might be worse
If you're willing to continue, here's the order of actions:
- Get the code from one of the repositories
- (Optional) Change the code
- Compile and flash
Supported Nuphy's keyboards: none
Supported keyboards:
- Air60 v2
- Air75 v2
- Air96 v2
Inside: Nuphy’s official repo for all keyboard
Fork of qmk/qmk_firmware – but as for 2024-02-28 the work of merging the Nuphy's changes back into QMK was quite slow: qmk/qmk_firmware#22751. Hoping one day they will get it merged.
Differences from official Nuphy firmware binaries: fully unknown but smme to be substantional, e.g. "improve bluetooth connection stability" haven't made it to official open source version yet.
Supported keyboards:
- Air75 v2
What's inside:
- Fixes – some were used by Nuphy
- Mods (some are opinionated)
- Latest QMK
- Latest Nuphy
Changes
- Various Nuphy source bug fixes (e.g., F key modifiers not working in wireless).
- Fix misplaced LED matrix configurations
- Refactor RF logic to use a RF driver instead of managing through housekeeping
- Fix for stuck keys in wireless mode
- Make RF connect only for 5 seconds before sleeping again. Don't want the LED blinking for 2 minutes if keys are accidentally pressed on wireless mode without a connection.
Supported keyboards:
- Air75 v2
What's inside:
- Fixes
- Opinionated mods
- Latest QMK
- Latest Nuphy
Fixes
- Send reports twice to try and prevent stuck keys / missed keys
Supported keyboards:
- Air75 v2
Initial attempt to pull latest QMK into latest Nuphy code. As of 2024-01-07 – feel free to skip unless you want their opinionated mod.
Note:
- Branch qmk/nuphy-keyboards : clean state
- Branch edykim/nuphy-keyboards-mod : modded by edykim
Supported keyboards:
- Air75 v2
- Air96 v2
First custom firmware for Air96 v2
Fixes
- New algorithm to prevent unnecessary EEPROM writes when you change light settings
- Pulled fixes from jincao1
- Opinionated mods
Read this section and then use QMK docs as further QMK reference.
QMK provides CLI that helps with common tasks
- Cloning (potentially custom) repo
- Compiling
- Flashing
- Debugging
OS support:
- Linux: yes
- Mac:
- Intel processor: yes
- Apple Silicon: installation takes 2 hours
- Windows: yes
Note: It installs a lot of stuff to your system so maybe use:
Alternatively, people with a bit of programming background will be comfortable using
- Git to clone repo (use
--recurse-submodules
!!!) - Docker to compile code
- QMK Toolbox to flash and debug. (Mac and Windows only!)
QMK can be roughly divided into core and keyboards. We are interested in keyboards.
keyboards are located under ./keyboards/<company>/<model>/<submodel>
, e.g. ./keyboards/nuphy/air75_v2/ansi
will be for Nuphy Air75 V2.
There you have
- Keymaps – define multiple "layers" which can be switched, most commonly via
Fn
key. Every keyboard might have several keymaps, only one can be flashed at the time. E.g. for Air75 v2 two keymaps are provided:via
– supports VIA Configurator for UI-based configdefault
– doesn't support VIA – as of 2024-01-07 the only other difference is that it supports showing battery level usingFn + B
- Keyboard's low-level code – likely you don't want to change it