/qmk_firmware

Open-source keyboard firmware for Atmel AVR and Arm USB families

Primary LanguageCGNU General Public License v2.0GPL-2.0

Great Mountain Lizard

Note that on new GCC versions you will need to make the following changes to chibios/os/common/ext/CMSIS/include/cmsis_gcc.h - lines 164 and 190, remove the characters "sp" on each line, e.g.:

  __ASM volatile ("MSR psp, %0\n" : : "r" (topOfProcStack) : );

See this issue for details.

Development of GML keyboards.

  1. If you clone this without cloning submodules (e.g. using Github Desktop) then you need to run make git-submodule before making anything else.
  2. To pull from upstream, see Syncing a fork. If Github desktop was used to clone, upstream is already configured. Essentially, use:
    git fetch upstream
    git checkout master
    git merge upstream/master
    
    Then push the commit that has been created to update the fork to upstream.
  3. You just need the arm stuff from install instructions, plus openocd to flash:
    brew tap osx-cross/avr
    brew tap PX4/homebrew-px4
    brew update
    brew install gcc-arm-none-eabi
    brew install openocd
    
  4. make gml1
  5. To flash with openocd, use the .elf file in .build dir in root of project, with openocd -f ~/Documents/GitHub/brew/share/openocd/scripts/board/stm32f4discovery.cfg -c "program .build/gml1_default.elf verify reset exit"
  6. Update .vscode/c_cpp_properies.json with your brew installation path if necessary.

If you make changes to a submodule, e/g/ lib/chibios, you can revert these when finished with:

git submodule deinit -f .
git submodule update --init

To flash two boards with dfu, distinguish by serial - find this with dfu-util --list and then something like

dfu-util -a 0 -S 207F36A9424D --dfuse-address 0x08000000 -D .build/gml1_default.bin; dfu-util -a 0 -S 2073368F424D --dfuse-address 0x08000000 -D .build/gml1_default.bin

Quantum Mechanical Keyboard Firmware

Current Version Build Status Discord Docs Status GitHub contributors GitHub forks

This is a keyboard firmware based on the tmk_keyboard firmware with some useful features for Atmel AVR and ARM controllers, and more specifically, the OLKB product line, the ErgoDox EZ keyboard, and the Clueboard product line.

Documentation

The docs are powered by Docsify and hosted on GitHub. They are also viewable offline; see Previewing the Documentation for more details.

You can request changes by making a fork and opening a pull request, or by clicking the "Edit this page" link at the bottom of any page.

Supported Keyboards

The project also includes community support for lots of other keyboards.

Maintainers

QMK is developed and maintained by Jack Humbert of OLKB with contributions from the community, and of course, Hasu. The OLKB product firmwares are maintained by Jack Humbert, the Ergodox EZ by ZSA Technology Labs, the Clueboard by Zach White, and the Atreus by Phil Hagelberg.

Official Website

qmk.fm is the official website of QMK, where you can find links to this page, the documentation, and the keyboards supported by QMK.