ergodox-firmware/readme.md

80 lines
3.2 KiB
Markdown
Raw Normal View History

# [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.
[ergodox-firmware]: https://github.com/benblazak/ergodox-firmware
[ergodox keyboard]: http://ergodox.org/
2012-04-29 07:39:23 +02:00
## 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
2012-04-12 07:05:59 +02:00
This project is definitely in beta, but I'll do my best to keep the 'master'
2012-04-29 07:39:23 +02:00
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]
2012-04-29 07:39:23 +02:00
(/benblazak/ergodox-firmware/issues).
2012-04-12 06:05:45 +02:00
## 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
2012-04-12 06:05:45 +02:00
## Dependencies (for building from source)
* See the PJRC [Getting Started] (http://pjrc.com/teensy/first_use.html) page
for instructions on how to set up an AVR programming environment. This
2012-04-29 07:39:23 +02:00
project uses C (not Arduino), and Make. I'm compiling with GNU tools under
Ubuntu, but other environments (especially [WinAVR]
(http://winavr.sourceforge.net/) under Windows) should work too.
* I also assume that you are using [git] (http://git-scm.com/) (for `make
clean`).
2012-04-12 06:05:45 +02:00
-------------------------------------------------------------------------------
Copyright &copy; 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>