geekhack

geekhack Projects => Making Stuff Together! => Topic started by: taako on Tue, 29 May 2018, 18:46:24

Title: How does QMK implement N Key Rollover over USB
Post by: taako on Tue, 29 May 2018, 18:46:24
I am designing my own keyboard PCB and ideally i'd like it to have N key rollover.

I think i will use QMK as the firmware for my keyboard because it has a lot of community around it and i don't want to write my own firmware if QMK has everything i need.

I am curious how QMK implements n key rollover over usb. does it pretend to be a usb hub with many keyboards attached? i tried searching the github repo and couldnt find anything except a short text document (https://github.com/qmk/qmk_firmware/blob/995c3141a674a0311786cc713ea96d39330a9b48/docs/usb_nkro.txt) of what is possible but no links to the actual code for how its truly done. It contains some links to geekhack but they all redirect to the index page.

Also will the NKRO on the qmk firmware work on an ARM chip or only atmel/AVR?
Title: Re: How does QMK implement N Key Rollover over USB
Post by: Tactile on Tue, 29 May 2018, 20:07:26
QMK is based on TMK so what you're asking about is probably in the TMK code. Have a look at "report.c" and "report.h" in /tmk_core/common/