reversebias / mitosis

Firmware for nordic MCUs used in the Mitosis Keyboard
GNU General Public License v3.0
197 stars 126 forks source link

Matrix scan rate #14

Open wormyrocks opened 6 years ago

wormyrocks commented 6 years ago

Has anyone else found that the Mitosis will sometimes miss keys when typing quickly? Is there an alternate firmware for the nRF modules that improves the matrix scan rate and debounce intervals? I understand this comes at the expense of battery life, but I have plenty of coin cells lying around. If there isn't one I'm happy to experient and put one together, I'd just rather not set up the Nordic toolchain if this has already been done by someone else. thanks!

mterhar commented 6 years ago

It doesn't do a matrix scan. Every GPIO gets a key and any time any of them are depressed, it should add it to the signal back to the controller.

I'd be suspicious of the switch itself having an issue rather than the firmware.

cari66ean commented 6 years ago

Actually I'm also having this issue that it's sometimes missing key presses (sometimes I'm missing up to 2-4 letters in a word). At first I thought it's me but after some testing it is clear that this is real. Interestingly enough it's sometimes happening a few times within seconds and then maybe not at all for several minutes. Personally I think it's something with the controller doing something weird like going into sleep mode too aggressively, changing frequency channels, general interference or something of that sorts. It's driving me nuts though.

cari66ean commented 6 years ago

Ok so apparently my issue was caused by poor battery contact and/or interference from other wireless devices leading to the key dropouts. If you're experiencing similar issues I recommend cleaning the battery pads with alcohol and cotton swabs or using a very fine file with little to no pressure to clean the flux off and/or use screws instead of the pins to sandwich the battery in place. Also have a look at /components/properitary_rf/gzll/nrf_gzll_constants.h in the gazell firmware and modify the default channel table to channels that avoid potential interference with other wireless products such as mice etc.