Please note that installing QMK is for more advanced users!
However, do not worry, if QMK installation fails or you no longer want to use QMK on your keyboard, you can always revert to the default factory firmware by using the firmware flasher here: Horizon Default Firmware Flasher.
Note: QMK currently does not work with the bluetooth functionality of the keyboard, so if you do load QMK onto the Horizon Z, it will only work in wired mode with a USB-C cable plugged in.

If you are new to QMK, you should read up on what it is and how it is used here: QMK Docs
To summarize, QMK allows you to make custom firmware for your keyboard with your own chosen keyboard layout(s) and lighting settings.
In particular, the Horizon Z keyboard uses SonixQMK, which is a version of QMK made for the particular kind of microcontroller that the Horizon Z uses.
At this time, GUI such as QMK configurator cannot be used to create firmware for the Horizon Z. You must compile from source.

For more information and the latest updates about SonixQMK, you can join its Discord Server here: SonixQMK Discord

Flashing QMK firmware into the Horizon Z For the First Time


To get started, first flash your keyboard with a preliminary QMK firmware so that it can be easily put into bootloader mode later on. This firmware uses the “alternative” keymap for the Horizon Z in SonixQMK.

1. Download the QMK flasher: Horizon Z QMK Flasher
2. With your keyboard plugged in, click on the blue button after opening the flashing software. Sometimes the flasher may have trouble detecting the keyboard. If this happens, you can try unplugging and replugging the USB cable. Certain USB ports have trouble being detected, so switching to another USB port may also fix the issue as well.
3. After the flasher has finished flashing the firmware, the board will be running QMK on it. The function key for this particular keymap layout in the firmware is located in what would normally be the “Right Alt” key. The reset button to easily put the keyboard in bootloader mode is located under the function layer in the location that is normally “Left Ctrl.” So, to put the keyboard in bootloader mode, you press “Right Alt” and “Left Ctrl” together. In bootloader mode, the keyboard’s LEDs will shut off and the keyboard will not respond to keypresses. You can unplug and re-plug the USB cable to resume normal functionality.
4. You can use the QMK firmware that was loaded onto your keyboard as is. If you wish to create your own keymaps to set custom functionality for the keys, keep reading below.

Creating custom keymaps for QMK on the Horizon Z

Click the link for the operating system you are working on:

Windows
Linux

Install QMK on Windows

  1. Download SonixQMK and click the green button at the top right that says “Code” and then click “Download ZIP.” Unzip the folder into the your Windows User folder so that the filepath looks like this: C:/Users/user_name/qmk_firmware.
  2. Download QMK MSYS and then after installing and opening it, type qmk setup and press enter. This will set up the build environment for compiling QMK firmware.
  3. Navigate to the Horizon Z directory in QMK which should be under C:/Users/user_name/qmk_firmware/keyboards/flashquark/horizon_z
  4. To edit the keymap, navigate into keymaps/default. You can also make a copy of the default directory and choose your own name for it and place it inside the keymaps folder if you wish to make another keymap and keep the default one. You will need to specify your new keymap name when you compile the firmware later.
  5. Edit the keymap.c file with any text editor. You will need to refer to the QMK Docs to understand how keymaps are made.
  6. Once you have finished making your edits, save the file and close it. In QMK MSYS, input command
    qmk compile -kb flashquark/horizon_z -km default
    This will compile the QMK firmware with the keymap that you made earlier into a hex file that can be loaded onto the keyboard,
  7. The hex file that will be loaded onto your keyboard is located in the .build folder in the root of the qmk_firmware directory. There will be several files, but the one you will use will be called something like “flashquark_horizon_z_default.hex”
  8. Download: Sonix USB Firmware Flasher
  9. After opening the Sonix flasher, leave all the fields the way they are except for PID. Under PID, type 7040 in the textbox.
  10. Click the “Load File” button and then under the Chip List, choose “SN32F24xB” (third from last choice). Navigate to the location where the hex file was created and select it.
  11. Put your keyboard in bootloader mode. This may vary depending on where the reset button was placed in a custom keymap, but if you are using the default keymap, you can place the keyboard in bootloader mode by pressing “Right Alt” and “Left Ctrl” together. The LED lights will turn off and the keyboard will stop responding to keypresses.
  12. Click the Start button and the firmware you selected will begin loading onto your keyboard.
  13. Once that has finished, the new QMK firmware will now be running on the keyboard.

    Note: You should always remember to put a reset key somewhere in a keymap that you are making. In case you forgot to do so and flashed a firmware without a reset key to your keyboard, you will need to remove all the screws from the plate of the keyboard and carefully remove the plate. Keep in mind that the PCB is attached to the plate, but the battery is attached to the bottom part of the case. There is a cable that runs from the battery and is plugged into the PCB. There cable is long enough that you can easily remove the Plate/PCB from the case, but care should be taken so that the cable isn’t accidentally ripped off. To put the keyboard into bootloader mode, there are two points located on the back of the PCB near the microcontroller labelled “boot” and “gnd.” Use something metal like a pair of tweezer to short those two pins to put the keyboard into bootloader mode.

Install QMK on Linux

  1. Open up a terminal window and download SonixQMK:
git clone --recurse-submodules https://github.com/SonixQMK/qmk_firmware.git

2. Setup the QMK build environment

qmk setup

3. Navigate to the Horizon Z directory in QMK which should be under: qmk_firmware/keyboards/flashquark/horizon_z

cd qmk_firmware/keyboards/flashquark/horizon_z

4. To edit the keymap, navigate into keymaps/default. You can also make a copy of the default directory and choose your own name for it and place it inside the keymaps folder if you wish to make another keymap and keep the default one. You will need to specify your new keymap name when you compile the firmware later.

5. Edit the keymap.c file with any text editor. You will need to refer to the QMK Docs to understand how keymaps are made.

6. Once you have finished making your edits, save the file and close it. In QMK MSYS, input command

qmk compile -kb flashquark/horizon_z -km default


This will compile the QMK firmware with the keymap that you made earlier into a hex file that can be loaded onto the keyboard,

7. The hex file that will be loaded onto your keyboard is located in the .build folder in the root of the qmk_firmware directory. There will be several files, but the one you will use will be called something like “flashquark_horizon_z_default.hex”

8. To flash the hex file onto the keyboard, use the Sonix Flasher here: Sonix Flasher