This document explains all of the user functionality of the threeboard. See the examples section at the bottom of this document for usage examples.
The threeboard uses three keys to select keycodes to send over USB, and also provides three programmable layers to store and retrieve key combinations. The state of the keyboard is visualised using the 22 onboard LED lights, and can only be modified using the three keys. The image below highlights the different features of the device:
The user-facing functionality is split into layers. A layer changes the functionality of each key on the threeboard, similar to a shift or function key on a traditional keyboard. The threeboard has four different layers: a default DFLT
layer, and three programmable layers:
DFLT
: The default layer of the threeboard. This is the layer that the threeboard starts in when it boots. No layer LEDs are lit in this layer. This is a single character input layer, where characters and modifiers in this layer are identified by their USB key codes.R
: The character reprogramming layer of the threeboard. This layer allows users to reassign a keycode to a character. This allows faster input of common characters.G
: The word shortcut layer. This layer allows users to program frequently used words into the threeboard. These words can then be accessed and sent over USB.B
: The blob shortcut layer. This allows users to program arbitrary text blobs (including mod codes), and access them later.The three programmable layers each have two modes: DFLT
and PROG
:
DFLT
: This is the default mode of the programmable layers. It is used to retrieve shortcuts that were programmed in the PROG
mode, and send them over USB.PROG
: This mode is used for programming the shortcuts used in the DFLT mode of the layer.Each layer and mode defines its own actions based on the input keypresses. Since there are many possible states, the full mapping of layers, modes, key combinations and actions is quite large, and is defined in the threeboard usage table section below. However most layers share some common actions for some keypresses:
X
: Increment bank 0.Y
: Increment bank 1.Z
: Send keypress(es) over USB (in DFLT
mode), or store shortcut in PROG
mode.X
+Z
(a.k.a. XZ
): Clear bank 0.YZ
: Clear bank 1.XYZ
: Go to next layer (when in DFLT
mode), or exit PROG
mode otherwise.XY
: Enter PROG
mode (when in DFLT
mode).Brief examples of scenarios in each layer and mode configuration are visualised below:
DFLT
layer
In the DFLT
layer, the byte in bank 0 represents the raw USB keycode value to be sent to the host computer, and bank 1 represents the USB modifier code. This layer has no PROG
mode.
R
- The character shortcut layer
Layer R
is used for character reprogramming, which allows re-assigning a value of bank 0 to a different USB keycode than it represents in the DFLT
layer. When this layer is being used in DFLT
mode, bank 0 is used to identify the shortcut ID, and bank 1 is used as it is in the DFLT
layer, to specify the USB modifier code.
In PROG
mode, the current shortcut value at the specified shortcut ID is displayed in bank 0. The shortcut ID is instead displayed in bank 0.
G
- The word shortcut layer
Layer G
is used for word shortcut programming. Words up to 15 characters long can be stored per shortcut ID, and modifier codes are used to apply USB modifier codes to the word shortcut (such as capitalizing the first letter). In DFLT
mode, bank 1 is split into two 4-bit indicators to display two different values; the 4 high bits are used to display the length of the current shortcut, and the 4 low bits display the word modification code. Word modification codes cause the following modifications:
.
) is appended to the end of the word.,
) is appended to the end of the word.-
) is appended to the end of the word.
In PROG
mode, the current USB keycode to be appended to the word shortcut is displayed in bank 0. The 4 high bits of bank 1 continues to display the length of the word shortcut, but the 4 low bits are unused and always set to 0.
B
- The blob shortcut layer
Layer B
allows for freeform blob shortcut programming. Blobs of up to 255 keycode and modcode pairs can be stored. In DFLT
mode, bank 0 displays the current shortcut ID, and bank 1 displays the length of the shortcut stored there.
In PROG
mode, bank 0 displays the USB keycode being programmed, and bank 1 displays the modcode.
This table defines the full list of key combinations and their associated actions on each layer:
This section contains a list of verbose examples to help understand how the key combinations can be used in practice.
DFLT
layerTyping Hello
from the DFLT
layer:
DFLT
layer. This is the layer the threeboard boots into, identified by none of the R
, G
or B
LEDs being lit.h
keycode in Bank 0 by pressing key X
11 times.shift
modcode (to capitalise h
) in Bank 1 by pressing key Y
twice.H
to the computer over USB by pressing Z
.XZ
, and reset Bank 1 by pressing YZ
.e
in Bank 0 by pressing X
8 times, then send it by pressing Z
.l
in Bank 0 by pressing X
an additional 7 times.l
over USB twice by pressing Z
twice.o
by pressing X
another 3 times, and send it by pressing Z
.R
Programming a
, b
, and c
into shortcuts 0, 1 and 2 of layer R
:
R
by pressing XYZ
from the DFLT
layer. The R
LED should now be lit.PROG
mode by pressing XY
, the PROG
LED should light up.a
by pressing X
4 times.Y
.b
by pressing X
5 times.Y
.c
by pressing X
6 times.G
Programming hello
into shortcut 0 of layer G
:
G
by pressing XYZ
twice from the DFLT
layer. The G
LED should be lit now.PROG
mode by pressing XY
.h
keycode in Bank 0 by pressing key X
11 times.h
to shortcut 0 by pressing Z
.XZ
.e
in Bank 0 by pressing X
8 times, and append it to shortcut 0 by pressing Z
.X
another 7 times to select l
, and append it twice to shortcut 0 by pressing Z
twice.o
by pressing X
an additional 3 times, and append it by pressing Z
.Send Hello
over USB from stored hello
in shortcut 0:
G
, shortcut 0.Y
.Z
to send Hello
(with first letter capitalised) over USB.B
Programming Hi!
into shortcut 0 of layer B
:
B
by pressing XYZ
three times from the DFLT
layer, lighting the B
LED.PROG
mode by pressing XY
.H
to shortcut 0 by setting Bank 0 to h
(pressing X
11 times) and Bank 1 to shift (pressing Y
twice), and append by pressing Z
.YZ
.i
in Bank 0 by pressing X
, and append it to shortcut 0 by pressing Z
.1
in Bank 0 by pressing X
another 18 times.Y
twice), and append by pressing Z
.