Browse Source

updated toplevel license and readme

- new ergodox website
- clarification in licence indicating that parts of the project may not
  be under that license/copyright
  - currently the stuff in src/lib, and soon the stuff in contrib,
    (are|will be) under different copyrights, and possibly different
  - also, just so it's written down somewhere: some of my documentation
    may be considered derivative works of the specs|docs i was taking
    things from, but i hope i'm safe (fair use?).  i tried to make clear
    in each file where i got stuff though.
Ben Blazak 8 years ago
3 changed files with 26 additions and 33 deletions
  1. +6
  2. +14
  3. +6

+ 6
- 2 View File

@ -1,9 +1,13 @@
# The MIT License (MIT)
Taken from <> on 2012-03-10
Retrieved from <> on 2012-03-10
This copyright and licence apply to all files in this project, except where
otherwise noted. If you feel that this infringes on any existing intellectual
property, please email me at the address below.
Copyright &copy; 2012 Ben Blazak
Copyright &copy; 2012 Ben Blazak <>
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in

+ 14
- 29 View File

@ -1,7 +1,13 @@
# [ergodox-firmware][]: Firmware for the [ergoDOX keyboard][]
# [ergodox-firmware][]: Firmware for the [ErgoDox keyboard][]
Also see the [geekhack]
and [deskthority]
discussion threads.
[ergodox keyboard]:
[ergodox keyboard]:
## About this File
@ -40,38 +46,17 @@ started this project), but for now:
matrix to hardware matrix mapping, and hardware specific documentation.
* [src/main.c] (src/main.c) ties it all together.
Open issues and such are tracked [on github]
Open issues, feature requests, and such are tracked [on github]
## Notes
### (2012-04-11) (first major release on branch 'main')
As of now, it looks like we have a working 6-KRO keyboard firmware for a Teensy
2.0 with a MCP23018 I/O expander. It's scanning at ~167 Hz, most of which is
spent communicating over I&sup2;C. This should be fast enough, I think.
Slight improvements might be possible (without finding a microprocessor capable
of > 400 kHz I&sup2;C or using SPI, that is, which I imagine would speed things
up a lot - but it'd also be much less convenient). I'll attempt them if I see
the need.
Also, layers are implemented, but untested, as no keymaps are written to use
them yet. Implementing on-keyboard hardware remapping seems like it'd be very
possible too, but I'd need to try it (and learn how to programmatically store
stuff in program space) to see if it'd work; and I'm not sure of a good way to
do the interface, since different people will likely have different keycap
layouts on the ergoDOX.
Getting to N-KRO is a goal, but I honestly have no idea whether it'll be
accomplished. Ideally, I'd like a variable-KRO, where the keyboard is 6-KRO
till you press the 7th key (so if you're worried about compatibility, just
don't press more than 6 keys at a time). From what I've read, it might be
possible, but I just finished everything else (so I'm slightly tired), and the
USB spec is scary.
Discussions about the project as a whole are going on at the forum page (linked
in the title) so if you have any imput (or want to participate in the group
buy!), please stop by. :) .
### 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&sup2;C)
* firmware level layers
## Dependencies (for building from source)

+ 6
- 2
src/TODO View File

@ -1,11 +1,15 @@
-+ set USB vendor ID = 0x1d50 // Openmoko, Inc.
-+ set USB product ID = 0x6028 // ErgoDox ergonomic keyboard
- link to the [ErgoDox website] ( in toplevel
// -------
- update with "except when otherwise noted" or something similar, to
-+ link to the [ErgoDox website] ( in toplevel
-+ update with "except when otherwise noted" or something similar, to
reflect the fact that i have code (in src/lib, and contrib) under different
licences, with different authors
// -------
- make new branch and update for fredrick's new PCB (pre-prototype)