Go to file
Ben Blazak dacc54fa1a layout/qwerty -> layout/qwerty-kinesis-mod
- NOT TESTED YET. still need to do that
- also, got an idea for layer masking...

possible future changes:
- i'd like to make the layer matrices just '_kb_layout_values', and
  '_kb_layout_functions'.
- i'd like to make layer masks implemented with a special function
  'kbfun_layermask_transparent' or something similar.  a function that
  looks up what would have been pressed if that layer wasn't active.
  they could be chainable, i.e. a lookup for such a function could end
  up calling the same function (if two layermasks were active on top of
  on another), which would then call a real key.  these wouldn't be
  allowed on the base layer, of course...  and then, all i'd have to do
  to keep track of layers would be keep a variable length array (or
  not...  maybe an array of length 10 or something) of which layer is
  active... :)
- i'd like to have a thing (this isn't a very complete thought yet)
  where keypresses are looked up first in the EEPROM, to see if there's
  a definition there.  if there isn't (which should usually be the case)
  then the standard definition for that key from the matrices would be
  used.  this would allow macros (and redefinitions) without reflashing.
  this would also be convenient, once the mechanism was implemented, for
  assigning keys multiple decomposable actions...  dunno exactly how
  it'll work out yet though.  layer stuff comes first.
2012-10-16 16:54:03 -07:00
build-scripts layout/qwerty -> layout/qwerty-kinesis-mod 2012-10-16 16:54:03 -07:00
contrib created a contrib folder 2012-06-06 12:26:36 -07:00
src layout/qwerty -> layout/qwerty-kinesis-mod 2012-10-16 16:54:03 -07:00
license.md updated toplevel license and readme 2012-07-15 17:45:58 -07:00
makefile (minor) 2012-10-08 20:12:39 -07:00
readme.md updated toplevel license and readme 2012-07-15 17:45:58 -07:00
references.md misc; now compiling in os x 2012-10-07 00:18:59 -07:00

readme.md

ergodox-firmware: Firmware for the ErgoDox keyboard

Also see the [geekhack] (http://geekhack.org/showthread.php?22780-Interest-Check-Custom-split-ergo-keyboard) and [deskthority] (http://deskthority.net/workshop-f7/split-ergonomic-keyboard-project-t1753.html) discussion threads.

About this File

If you're viewing this on github, please note that directory links will only work if you're viewing this from the directory, and file links will only work if you're viewing this as a file. This is true for all the '.md' files here. The limitation is due to the way github addresses directories and files, and the fact that Markdown doesn't have any way (that I know of) to rewrite the URLs as would be required.

About this Project

This project is definitely in beta, but I'll do my best to keep the 'master' branch working. Please see the source (and especially the accompanying '.md' files) for documentation. And [references.md] (references.md) contains lots of good links, along with descriptions.

If you're just trying to compile, jump to the bottom of the file and read the [Dependencies] (#dependencies-for-building-from-source) section. Once that's taken care of, navigate to the [src] (src) directory, compile using Make, and fire up your teensy loader to transfer the '.hex' file. Just to be safe, you should also check the '.eep' file. If it's larger than 0 bytes, you need to load it too.

If you're looking to hack on the source, or just feel like reading it, you probably don't need much direction for a small project like this. I'll try to write more later (for people who are new to AVR programming, like I was when I started this project), but for now:

  • [src/lib] (src/lib) is for generally useful stuff. The TWI and USB libraries are in there, along with the file containing basic key press and release functions.
  • [src/keyboard] (src/keyboard) is for keyboard specific stuff. All the chip initialization code is there, along with the layout files, the software matrix to hardware matrix mapping, and hardware specific documentation.
  • [src/main.c] (src/main.c) ties it all together.

Open issues, feature requests, and such are tracked [on github] (/benblazak/ergodox-firmware/issues).

Notes

Features as of 2012-04-11 : first major release on branch 'main'

  • 6KRO
  • Teensy 2.0, MCP23018 I/O expander
  • ~167 Hz scan rate (most of which is spent communicating via I²C)
  • firmware level layers

Dependencies (for building from source)


Copyright © 2012 Ben Blazak benblazak.dev@gmail.com
Released under The MIT License (MIT) (see "license.md")
Project located at https://github.com/benblazak/ergodox-firmware