It is possible to verify functionality without building using QMK Toolbox.
- Verify that an atmega32u4 is detected
- Download any of the firmwares below which suits the options selected, and open it in QMK Toolbox
- No options: helix_rev2_default.hex
- 5-row OLED and backlight: helix_rev2_default_oled_backlight.hex
- 5-row OLED and underglow: helix_rev2_default_oled_underglow.hex
- 4-row OLED and backlight: helix_rev2_default_4rows_oled_backlight.hex
- 4-row OLED and underglow: helix_rev2_default_4rows_oled_underglow.hex
- Press the reset button on helix, and verify that it shows as "connected"
- Immediately press flash
If a message similar to this appears, flashing has succeeded.
Please verify that typing is possible using these firmwares.
To change the layout, use the build guide below.
Download QMK Firmware from the following:
https://github.com/qmk/qmk_firmware/
(Press the green "Clone or download" button, and then "Download ZIP" to obtain a ZIP file.)
Extract after download.
If familiar with git, a git clone
may be more suitable.
homebrew will be used in this guide.
- Launch terminal
- Install homebrew if not installed yet.
- Run the following commands:
brew tap osx-cross/avr
brew tap PX4/homebrew-px4
brew update
brew install avr-gcc@7
brew install dfu-programmer
brew install gcc-arm-none-eabi
brew install avrdude
msys2 will be used.
- Visit the msys2 website, and download the installer suited for your PC:
- 32bit: msys2-i686-xxxxxxx.exe
- 64bit: msys2-x86_64-xxxxxxxx.exe
- Launch msys2.
- Move the QMK firmware folder to the folder (This guide assumes msys2 installed to the C drive):
cd /c/qmk_firmware/
- Run
util/msys2_install.sh
- The installer will ask you which packages to install (When in doubt, respond
Y
to install) - When complete, restart msys2.
Run the following at the root directory of the QMK folder:
make helix:default
To flash at the same time, attach :avrdude
to the command:
make helix:default:avrdude
For flashing via GUI, use QMK Toolbox as described earlier.
Both halves must be flashed.
Copy and rename the default
folder in /keyboards/helix/rev2/keymaps/
.
This new folder will be used from now on.
For building this new keymap, the following command will be used:
make helix:<new keymap folder name>
The default keymap is stored in keymap.c. It can be edited to modify the keymap freely.
Please see this page for a keycode reference.
Within the folder, change the field HELIX_ROWS rules.mk from 5 to 4.
HELIX_ROWS = 4
In the same file, change the LED_BACK_ENABLE from no to yes.
LED_BACK_ENABLE = yes
Again in the same file, change LED_UNDERGLOW_ENABLE from no to yes.
LED_UNDERGLOW_ENABLE = yes
Again in the same file, change OLED_ENABLE from no to yes.
OLED_ENABLE = yes
The font data is stored in helix/common/glcdfont.c. This data can be edited in the following ways for modifying OLED content.
The web tool created by @teri_yakichan can be used to modify the file easily.
To use an image editor, do the following to convert text to image.
- Take the image data from glcdfont.c and move it to a text file. 0x00, 0x00 ... 0x00
- Use the script to convert to image
- Edit the image
- Use the script to convert back to text
- Insert to glcdfont.c
An example image being edited:
The following script is used for conversion. https://github.com/MakotoKurauchi/helix/tree/master/FontConverter
Converting text to image
$ python3 hex2img.py inHex.txt outImage
Converting image to text
$ python3 img2hex.py inImage.bmp > outHex.txt
Editing helix/common/glcdfont.c affects all keymaps. To make a font data unique to a keymap, edit the LOCAL_GLCDFONT field in rules.mk:
LOCAL_GLCDFONT = yes
Then, rename glcdfont.c to helixfont.h and place it in the same directory as keymap.c.
QMK has many features. See the docs and others' customizations to build your own unique helix.