Skip to content

Latest commit

 

History

History
470 lines (356 loc) · 18.2 KB

references.md

File metadata and controls

470 lines (356 loc) · 18.2 KB

Electronics Stuff

C Stuff

For the AVR

Protocol Stuff

I²C

USB

Other People's Code

Keyboard Firmware

USB Libraries

TWI Libraries

  • github: [TWI library in C] (https:/arduino/Arduino/tree/master/libraries/Wire/utility) : (arduino / Arduino / libraries / Wire / utility)
    Well done (as far as I can tell) and complete (includes code for interrupt handling). Meant to be used through the Arduino 'Wire' library interface, but you can use it alone as well. The version on github pulls in a whole bunch of Arduino dependencies though, if you're just going to use the library look for an older version that doesn't (like the one included in the version of Arduino in the Ubuntu 11.10 repos).

  • zip: [i2cmaster] (http://homepage.hispeed.ch/peterfleury/i2cmaster.zip) (by Peter Fleury, on [his homepage] (http://homepage.hispeed.ch/peterfleury/))
    Good I2C library. Includes stuff both in assembly and C (though, I didn't look at the assembly code). I still think you're better off writing your own, it's not that hard and you'll understand it better. Also, this library is under the GPL (from what it says on his site; couldn't find a licence in the code).

  • forum: [Interfacing MCP23018 io expander via Arduino] (http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1282150189)
    Contains a quick MCP23017 library in C++. Didn't end up looking at it too hard.

  • github: [maniacbug / Arduino / libraries / MCP23018] (https:/maniacbug/Arduino/tree/master/libraries/MCP23018)
    Library in C++. Don't think I ended up looking through this one at all.

Other

Hardware Documentation

Miscellaneous

Keyboard Testing Tools

Typical Keyboard Information

  • [Keyboard Scan Rates] (http://geekhack.org/showwiki.php?title=Keyboard+scan+rates) list (on http://geekhack.org/)
    Keyboards seem to typically scan at rates from a little below 100Hz to about 300Hz, with the most common values a little below 100Hz. The [PJRC usb_keyboard] (http://pjrc.com/teensy/usb_keyboard.html) example documentation has a limit of 1000 packets (so 500 presses -> releases) per second, but says that even that speed might overwhelm host software, which expects keystrokes to come much more slowly. And, a debounce time of 5ms (which is the spec'ed high value for Cherry MX switches) would give us a max scan rate of 200Hz.

Other Awesome Keyboard Projects

Documentation and Design Tools


Copyright © 2012 Ben Blazak [email protected]
Released under The MIT License (MIT) (see "license.md")
Project located at https:/benblazak/ergodox-firmware