Code Monkey home page Code Monkey logo

qmk_firmware's Introduction

Quantum Mechanical Keyboard Firmware

Current Version 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.

qmk_firmware's People

Contributors

333fred avatar algernon avatar balzguenat avatar callum-oakley avatar didierloiseau avatar drashna avatar ezuk avatar fauxpark avatar fredizzimo avatar ibnobody avatar jackhumbert avatar jpetermans avatar mazinbokhari avatar mechmerlin avatar mtei avatar nooges avatar noroadsleft avatar priyadi avatar replicajunction avatar sboesebeck avatar sekigon-gonnoc avatar skullydazed avatar talljoe avatar tmk avatar vomindoraan avatar xscorpion2 avatar xyverz avatar xyxjj avatar yashikno avatar zvecr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qmk_firmware's Issues

[Feature Request] Quantizer mini - AM AFA R2

Hello,

When I try to use the quantizer with my Angry Miao AFA R2, I've a message on OSX:

unplug the accessory using too much power to re-enable usb devices

  • The dongle works well with other devices
  • The keyboard works well without the dongle

Feature Request Type

  • Core functionality
  • Add-on hardware support (eg. audio, RGB, OLED screen, etc.)
  • Alteration (enhancement/optimization) of existing feature(s)
  • New behavior

[Feature Request] keyboard quantizer on Ultimate Hacking Keyboard (Trackpoint)

Feature Request Type

  • Core functionality
  • Add-on hardware support (eg. audio, RGB, OLED screen, etc.)
  • Alteration (enhancement/optimization) of existing feature(s)
  • New behavior

Description

Right now the quantizer works well with the ultimate hacking keyboard. But the extra modules like the Trackpoint Module does not work.
Do you think it's something can be implemented?

Here the source code:
https://github.com/UltimateHackingKeyboard

Setup help for dev/ble_micro_pro Branch

Is there a tutorial available how to setup the build environment for the dev/ble_micro_pro Branch under Windows?

Unfortunately all the instruction I found are neither outdated, or are about the new "official" way of using QMK MSYS. Which is incompatible with this Branch.

[Bug] Compile error when RGBLIGHT_ENABLE = no

Compile error when I set RGBLIGHT_ENABLE = no in rules.mk
Here is my quick patch. Thanks,

diff --git a/tmk_core/protocol/nrf/bmp.c b/tmk_core/protocol/nrf/bmp.c
index 71ef1d45..8f182d74 100644
--- a/tmk_core/protocol/nrf/bmp.c
+++ b/tmk_core/protocol/nrf/bmp.c
@@ -287,10 +287,12 @@ MATRIX_LOOP_END:
 
 bmp_error_t nus_rcv_callback(const uint8_t* dat, uint32_t len)
 {
+#ifdef RGBLIGHT_ENABLE
     if (len == sizeof(rgblight_syncinfo_t))
     {
         rgblight_update_sync((rgblight_syncinfo_t*)dat, false);
     }
+#endif
     return BMP_OK;
 }
 
diff --git a/tmk_core/protocol/nrf/main_master.c b/tmk_core/protocol/nrf/main_master.c
index 97a1da77..1b206a04 100644
--- a/tmk_core/protocol/nrf/main_master.c
+++ b/tmk_core/protocol/nrf/main_master.c
@@ -85,7 +85,9 @@ host_driver_t nrf_ble_driver = {
   send_system,
   send_consumer
 };
+#ifdef RGBLIGHT_ENABLE
 rgblight_syncinfo_t rgblight_sync;
+#endif
 
 #ifdef VIRTSER_ENABLE
 void virtser_task(void);
@@ -225,8 +227,10 @@ int main(void) {
 
   const bmp_api_config_t * config = BMPAPI->app.get_config();
 
+#ifdef RGBLIGHT_ENABLE
   rgblight_set_clipping_range(0, config->led.num);
   rgblight_set_effect_range(0, config->led.num);
+#endif
 
   bmp_indicator_init(config->reserved[1]);
 
diff --git a/tmk_core/protocol/nrf/sdk15/cli.c b/tmk_core/protocol/nrf/sdk15/cli.c
index 929fc528..82be36e2 100644
--- a/tmk_core/protocol/nrf/sdk15/cli.c
+++ b/tmk_core/protocol/nrf/sdk15/cli.c
@@ -10,7 +10,9 @@
 #include "debug.h"
 #include "print.h"
 #include "quantum.h"
+#ifdef RGBLIGHT_ENABLE
 #include "rgblight.h"
+#endif
 #include "eeprom.h"
 
 #include "bmp.h"
@@ -437,12 +439,14 @@ static MSCMD_USER_RESULT usrcmd_led_control(MSOPT *msopt, MSCMD_USER_OBJECT usro
         msopt_get_argv(msopt, 1, arg, sizeof(arg));
         uint32_t mode = (uint32_t)atoi(arg);
         dprintf("set led mode:%d\r\n", mode);
+#ifdef RGBLIGHT_ENABLE
         if (mode == 0) {
             rgblight_disable();
         } else {
             rgblight_enable();
         }
         rgblight_mode(mode);
+#endif
     }
     return 0;
 }

is Debug working well at rp2040?

I'm trying to debyg the rp2040's adc,I got nothing at qmk toolbox.

CONSOLE_ENABLE = yes

keymap.c

#include "print.h"
void keyboard_post_init_user(void) {
print("hello from debug");
}

If the qmk debug not work,how can i debug it.

Cannot compile slave side of split keyboards

Describe the Bug

As of merging #32 we can no longer compile the slave side of split keyboards, e.g:

$ make iris_ble/slave
[...]
Compiling: tmk_core/protocol/nrf/nrf52/adc.c                                                        [OK]
Compiling: tmk_core/protocol/nrf/sdk15/usbd.c                                                      tmk_core/protocol/nrf/sdk15/usbd.c: In function 'usbd_process':
tmk_core/protocol/nrf/sdk15/usbd.c:754:33: error: expected expression before ')' token
  754 |           if (!get_usb_enabled()) {
      |                                 ^
tmk_core/protocol/nrf/sdk15/usbd.c:756:30: error: macro "select_usb" passed 1 arguments, but takes just 0
  756 |               select_usb(true);
      |                              ^
In file included from tmk_core/protocol/nrf/sdk15/usbd.c:49:
tmk_core/protocol/nrf/app_ble_func.h:52: note: macro "select_usb" defined here
   52 | #define select_usb()
      |
tmk_core/protocol/nrf/sdk15/usbd.c:756:15: error: 'select_usb' undeclared (first use in this function); did you mean 'select'?
  756 |               select_usb(true);
      |               ^~~~~~~~~~
      |               select
tmk_core/protocol/nrf/sdk15/usbd.c:756:15: note: each undeclared identifier is reported only once for each function it appears in
tmk_core/protocol/nrf/sdk15/usbd.c:759:37: error: expected expression before ')' token
  759 |               if (!get_ble_enabled()) {
      |                                     ^
tmk_core/protocol/nrf/sdk15/usbd.c:766:33: error: expected expression before ')' token
  766 |           if (!get_ble_enabled()) { // USB POWER removed and battery present
      |                                 ^
 [ERRORS]
 |
 |
 |
make[1]: *** [tmk_core/rules.mk:362: .build/obj_iris_ble_slave_default/protocol/nrf/sdk15/usbd.o] Error 1
Make finished with errors
make: *** [Makefile:544: iris_ble/slave] Error 1

@karakum

[Feature Request] Corne EC - update qmk

Feature Request Type

  • Core functionality
  • Add-on hardware support (eg. audio, RGB, OLED screen, etc.)
  • Alteration (enhancement/optimization) of existing feature(s)
  • New behavior

Description

I think I have an issue already resolved by qmk: qmk#17935
I'm just wondering if merge with the qmk master branch is possible.

To reproduce my issue:

Btw, really cool keyboard ;)
image

RGB backlighting doesn't work without USB

Can you please help enabling RGB on battery power (I have a large Li-Po and enough current to keep it running for a while)? Looks like RGB stops working without USB but for gods sake I can't find the culprit, rgblight_task seems to be called normally and there are no RGB disabling calls in the usbd.c. Video:

https://youtu.be/H9Vw5rEFeG4

Firmware in question: https://github.com/joric/qmk/wiki/jorne_ble (mostly taken from helix_ble).

Also there's no sync between halves, slave LED's don't work, even with RGBLIGHT_SPLIT enabled.

[Feature Request] Quantizer mini - config with own forked firmware

Feature Request Type

  • Core functionality
  • Add-on hardware support (eg. audio, RGB, OLED screen, etc.)
  • Alteration (enhancement/optimization) of existing feature(s)
  • New behavior

Description

Be able to use his own Quantizer Mini fork

I've defined custom tap dance, I would want to use them like this, of course it's not possible:

- application:
    keymaps:
      - layer:
          id: 0
          keys:
            KC_CAPS: TD(TD_TAB)

image

Is there an easy way to do this?

Thank you very much.

[Feature Request] NKRO Support for RP2040

Feature Request Type

  • Core functionality
  • Add-on hardware support (eg. audio, RGB, OLED screen, etc.)
  • Alteration (enhancement/optimization) of existing feature(s)
  • New behavior

Description

As the title suggests, I would like NKRO (N-Key Rollover) to be implemented for the rp2040 protocol.

Pico-PIO-USB split questions.

Heyo, ran into your work on the discord, had a few questions about your work.

  1. which gpio pins are turned into USB using this?
  2. if you use the usb pio for split, are both devices visible to the host computer (master and slave halves)?
  3. if the answer to 2 is yes, do you think it would be possible to flash downstream devices while plugged in to upstream ones (instead of directly attached to the computer)

Thank you for your time, this looks very interesting.

Port single processor with IO Expander

First of all thanks for the work on this. I've been dreaming of running QMK on my nrf52840 keyboard for a while so this is awesome.

Would you be able to give me any hints on what to change so that I can make this work with my keyboard which is just a single nrf52 (Adafruit nrf52840 Express), and a MCP23S17 io expander.

Just a few classes/methods I should take a look at would be greatly appreciated.

I took a look at your changes, but unfortunately I've only been using Adafruit's nrf52 lib to date so I'm not too familiar with nordic's SDK.

Also, I saw from the device name, but are you from https://yushakobo.jp/ ?

RGB Matrix with WS2812 on nrf52 branch

Feature Request Type

  • Add-on hardware support (eg. audio, RGB, OLED screen, etc.)

Description

The nrf52 branch contains outdated RGB Matrix functionality. Since I have WS2812 LEDs behind each key, it isn't compatible. It only supports IS31xxxx LED Drivers.

I'm using a nRFMicro, so I can't switch to the main QMK branch.
Any updates planned to bring the current RGB Matrix implementation also to the nrf52?

Lenovo SK-8855 not supported / compatibility list

I once found a compatibility list but cannot find it again, could that be linked in the readme of the quantizer(s)?

I found that my Lenovo SK-8855 does not seem to be working, is this a general thing?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.