joshdholtz / reactor

Reactor is the firmware generator part of Fusion

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool


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:

  1. Add the remote for qmk_firmware

    git remote add -f qmk_firmware

  2. Add the subtree

    git subtree add --prefix lib/firmware qmk_firmware master --squash

If you have the remote and subtree setup:

  1. Fetch the updates

    git fetch qmk_firmware master

  2. Update the subtree

    git subtree pull --prefix lib/firmware qmk_firmware master --squash

Read more about git subtrees here

Compiling firmware


Using the instructions from the teensy loader build environment:

sudo apt-get install gcc-avr binutils-avr avr-libc


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

ezoic increase your site revenue


Reactor is the firmware generator part of Fusion

License:MIT License


Language:C 84.8%Language:C++ 9.6%Language:Assembly 3.5%Language:Python 0.7%Language:HTML 0.6%Language:Makefile 0.4%Language:Arduino 0.2%Language:Objective-C 0.2%Language:SourcePawn 0.0%Language:XSLT 0.0%Language:PHP 0.0%Language:C# 0.0%Language:Logos 0.0%Language:Ruby 0.0%Language:JavaScript 0.0%Language:Liquid 0.0%Language:CSS 0.0%Language:Shell 0.0%