reactor
reactor copied to clipboard
Reactor is the firmware generator part of Fusion
Reactor
Reactor is the firmware generator part of Fusion.
It takes the JSON's exported by the Fusion project and process them in to ready-to-be-downloaded firmware.
Reactor uses the awesome qmk_firmware by Jack Humbert. The firmware is included through a git subtree. To update the firmware, check out updating the firmware.
General process
- Take JSON input
- Generate a .c template file based on the JSON and the liquid template. Name it something unique
- Create a hex file by compiling that c file. Name it something unique too
- Read .hex file and return it
Local development
You can run the tests with be guard - which will watch for changes in ruby files and run whenever they do.
Testing is done in ruby 2.2.2
Updating the firmware
The qmk_firmware is included in this repository as a git subtree. Any changes to qmk_firmware should be made to the qmk_firmware repository not this repository.
To update the subtree from the qmk_firmware repository, pull the updates from qmk_firmware into this repository.
If you don't have the remote and the subtree setup:
-
Add the remote for qmk_firmware
git remote add -f qmk_firmware [email protected]:jackhumbert/qmk_firmware.git -
Add the subtree
git subtree add --prefix lib/firmware qmk_firmware master --squash
If you have the remote and subtree setup:
-
Fetch the updates
git fetch qmk_firmware master -
Update the subtree
git subtree pull --prefix lib/firmware qmk_firmware master --squash
Read more about git subtrees here
Compiling firmware
Linux
Using the instructions from the teensy loader build environment:
sudo apt-get install gcc-avr binutils-avr avr-libc
Mac OSX
Using homebrew it's easy to compile the firmware:
brew tap osx-cross/avr
brew install avr-libc
Next cd into the appropriate folder of the qmk_firmware, say keyboard/ergodox_ez
cd keyboard/ergodox_ez
Then run make for the default keymap, or
make KEYMAP="yourown"
for your own keymap. This requires a files keymap_yourown.c in the subfolder keymaps.
You should end up with a ergodox_ez.hex file, which you can use with the Teensy loader or Teensy GUI