menelaus/README.md

60 lines
1.7 KiB
Markdown
Raw Normal View History

2014-12-04 04:00:25 +00:00
# Menelaus
2014-12-05 02:52:24 +00:00
A firmware for the
[Atreus](http://atreus.technomancy.us) keyboard, written in
2019-07-02 05:07:56 +00:00
[Microscheme](https://ryansuchocki.github.io/microscheme/).
2015-01-07 19:35:56 +00:00
2019-07-03 04:43:13 +00:00
## Features
* 6KRO (6 simultaneous keys, not including modifiers)
* Software debouncing
2019-07-03 04:56:25 +00:00
* Multiple layers, momentary and sticky (limited only by memory)
2019-07-03 04:43:13 +00:00
* Combo keys (a single keystroke can send a modifier and a non-modifier)
2019-07-03 04:56:25 +00:00
* Bind arbitrary Scheme functions to a key
* ~250 lines of code
2019-07-03 04:43:13 +00:00
## Usage
This requires [avrdude](https://www.nongnu.org/avrdude/) for uploading
to the controller on the keyboard; install with your package manager
of choice.
2019-07-03 04:56:25 +00:00
2019-07-03 04:43:13 +00:00
Replace `/dev/ttyACM0` with the path your OS assigns to the USB
bootloader of the microcontroller (on Mac OS X sometimes it is
`/dev/cu.usbmodem1411` or similar):
2019-07-03 04:43:13 +00:00
$ make upload USB=/dev/ttyACM0
2019-07-07 00:18:00 +00:00
By default you get the "multidvorak" layout, but you can also build a
qwerty layout:
$ cp qwerty.scm layout.scm
$ make upload USB=/dev/ttyACM0
Or edit `layout.scm` to your liking; you can see a list of available
keycodes in `keycodes.scm`.
2019-07-03 04:43:13 +00:00
## Development
The firmware can also be run on a PC rather than on the
microcontroller in the keyboard using `test.rkt` which loads it up
into Racket and simulates the GPIO functions with a test harness:
$ make test
racket test.rkt
..........................
2019-07-03 04:43:13 +00:00
2019-07-03 04:56:25 +00:00
## Known bugs
The reset function has no effect; hard-reset must be used to reflash
the firmware.
2014-12-04 04:00:25 +00:00
## License
2020-02-21 16:00:13 +00:00
Copyright © 2014-2020 Phil Hagelberg and contributors
2014-12-04 04:00:25 +00:00
Released under the [GNU GPL version 3](https://www.gnu.org/licenses/gpl.html).
2019-07-03 04:56:25 +00:00
Uses [PJRC USB Keyboard library](http://www.pjrc.com/teensy/usb_keyboard.html)
which is Copyright © 2009 PJRC.COM, LLC and released under the MIT/X11 license.