Giter VIP home page Giter VIP logo

keyer7's Introduction

Keyer7

Ever since I first saw the microwriter, I have been fascinated by chorded keyboards: single handed keyboards with a handful (literally) of keys where instead of pressing one key at a time, you press a "chord" (several keys) to select each letter.

Now that low cost Bluetooth LE devices like the Adafruit NRF52 are cheap and easy to program, there really was no excuse not to build one.

Keymap

The keymap is based on the "modified NASA" keymap as described in the following tables.

Alphabet

Keys Thumb
-RMI -C- a
P--I --- b
--M- -C- c
--MI --- d
-RMI --- e
P--- -C- f
-R-- -C- g
-RM- --- h
---I --- i
-R-I -C- j
-R-I --- k
---I -C- l
--MI -C- m
PRM- -C- n
PRMI -C- o
-RM- -C- p
PR-I -C- q
--M- --- r
PRM- --- s
PRMI --- t
PR-- --- u
PR-- -C- v
P--- --- w
P--I -C- x
-R-- --- y
PR-I --- z
---- -C- spc

With N key

Keys Thumb
PR-- N-- ; :
--M- N-- , <
-RM- N-- . >
-RMI N-- ' "
-R-- N-- esc
PRM- N-- alt
PR-I N-- ctrl
P--- N-- fnc
PRMI N-- numl
P--I N-- ins
---- NCF qwerty
---- N-F dvorak

With N-prefix

Keys Thumb F hint
---- -C- 1 !
---I --- 2 @
--M- --- 3 #
-R-- --- 4 $
P--- --- 5 %
---I -C- 6 ^
--M- -C- 7 *
-R-- -C- 8 *
P--- -C- 9 (
PRMI -C- 0 )
-RMI -C- + a
P--I --- \ | b
--MI --- / ? d
-RMI --- = + e
-R-I --- $ k
--MI -C- * m
PRM- -C- [ { n
PR-- -C- ] } v
-RM- -C- % p
PR-I -C- ? q
PRM- --- - _ s
P--I -C- & x
PR-I --- ` ~ z

With F key

Keys Thumb F>CF
PRMI NC- kpl
P--- --F ret kp ret
---- --F lshf kp +
PRMI --F caps kp ins
-R-I --F tab kp -
--M- --F bksp kp beg
-RM- --F del kp del
P-MI --F sclk kp /
P-M- --F ptsc kp *
-R-- --F rght kp rght
PR-- --F down kp down
PRM- --F pgdn kp pgdn
---I --F left kp left
--MI --F up kp up
-RMI --F pgup kp pgup
PR-I --F home kp home
P--I --F end kp end
---- N-F brk
---- NCF rst

Building

Install the tool and Adafruit library as follows

wget https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2017q4/gcc-arm-none-eabi-7-2017-q4-major-mac.tar.bz2
tar jxf gcc-arm-none-eabi-7-2017-q4-major-mac.tar.bz2

git submodule init
git submodule update

pushd Adafruit_nRF52_Arduino/tools/nrfutil-0.5.2
# to install the packages, you might need to disable virtualenv
# (or you might want to select an appropriate virtualenv)
export PIP_REQUIRE_VIRTUALENV=false

pip install --user -r requirements.txt
python setup.py install
popd

# download and install driver for CP2104 USB-to-Serial (the chip on the NRF52 board)
wget https://www.silabs.com/documents/public/software/Mac_OSX_VCP_Driver.zip
unzip Mac_OSX_VCP_Driver.zip
open SiLabsUSBDriverDisk.dmg
# install the driver
# confirm install (if NRF board is connected over USB at the moment)
ls /dev/*USB*
# Should show: /dev/cu.SLAB_USBtoUART /dev/tty.SLAB_USBtoUART

Build the Adafruit library as follows. This will generate a lot of warning messages --- hold your nose and ignore them.

make nrf52_cores.a

Build as follows

make main.elf

Upload as follows

make upload

You should be able to pair your phone or laptop with the keyer. Open up an editor and try typing some sentences.

keyer7's People

Contributors

alastairreid avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.