qmk_firmware/keyboards/contra
Nick Brassel 2b00b846dc
Non-volatile memory data repository pattern (#24356)
* First batch of eeconfig conversions.

* Offset and length for datablocks.

* `via`, `dynamic_keymap`.

* Fix filename.

* Commentary.

* wilba leds

* satisfaction75

* satisfaction75

* more keyboard whack-a-mole

* satisfaction75

* omnikeyish

* more whack-a-mole

* `generic_features.mk` to automatically pick up nvm repositories

* thievery

* deferred variable resolve

* whitespace

* convert api to structs/unions

* convert api to structs/unions

* convert api to structs/unions

* fixups

* code-side docs

* code size fix

* rollback

* nvm_xxxxx_erase

* Updated location of eeconfig magic numbers so non-EEPROM nvm drivers can use them too.

* Fixup build.

* Fixup compilation error with encoders.

* Build fixes.

* Add `via_ci` keymap to onekey to exercise VIA bindings (and thus dynamic keymap et.al.), fixup compilation errors based on preprocessor+sizeof.

* Build failure rectification.
2025-03-21 23:38:34 +11:00
..
keymaps/default Non-volatile memory data repository pattern (#24356) 2025-03-21 23:38:34 +11:00
keyboard.json Migrate build target markers to keyboard.json (#23293) 2024-03-30 11:31:50 +00:00
readme.md [Keyboard] Clean up contra & move to data-driven (#19973) 2023-03-01 10:53:31 -07:00

Contra

Contra is a low cost 40% keyboard.

  • Keyboard Maintainer: The QMK Community
  • Hardware Supported: Contra
  • Hardware Availability: PCB sold by various vendors

Make example for this keyboard (after setting up your build environment):

make contra:default

See the build environment setup and the make instructions for more information. Brand new to QMK? Start with our Complete Newbs Guide.

Bootloader

Enter the bootloader in 3 ways:

  • Keycode in layout: Press the key mapped to QK_BOOT if it is configured.
  • Physical reset button: Briefly press the reset button soldered on the PCB.
  • Bootmagic reset: Hold down the top left key and plug in the controller.