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
|
2019-07-06 02:53:04 +00:00
|
|
|
* ~250 lines of code
|
2019-07-03 04:43:13 +00:00
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
2019-07-06 02:53:04 +00:00
|
|
|
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
|
2019-07-06 02:53:04 +00:00
|
|
|
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-03 04:56:25 +00:00
|
|
|
Currently only the "multidvorak" layout is included.
|
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
|
2019-07-06 02:53:04 +00:00
|
|
|
racket test.rkt
|
|
|
|
..........................
|
2019-07-03 04:43:13 +00:00
|
|
|
|
2019-07-03 04:56:25 +00:00
|
|
|
## Known bugs
|
|
|
|
|
2019-07-06 02:53:04 +00:00
|
|
|
If you hold down two keys which contain a modifier (for instance,
|
|
|
|
shift and !) and release one of them, it will count as if both are released.
|
2019-07-03 04:56:25 +00:00
|
|
|
|
2014-12-04 04:00:25 +00:00
|
|
|
## License
|
|
|
|
|
2019-07-02 02:59:42 +00:00
|
|
|
Copyright © 2014-2019 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.
|