The Kaladrius is an orthographic steno keyboard that uses a modified Jackdaw steno theory created by Jennifer Brien. Dictionaries are stored in the firmware and Plover is not needed. The main goal for me is to be able to code with a chorded keyboard. It's still a prototype and hope to use it daily this year (2020) at work. It's a handwired and printable keyboard and use a Teensy 3.2
I'm a C++ programmer and I always wanted to improve my typing speed. I changed several times my keyboard layout in my career : My original layout was Azerty (with a top speed at 86 wpm on 10fastfingers), in 2014 I changed to Dvorak (with a top speed at 98 wpm) and in 2016 I finally changed to Colemak (top speed at 103 wpm).
I discovered Plover and Steno in 2016 too and was blown away by this presentation
I decided to learn Plover but found that it might not suitable for C++ because of the phonetic/mnemonic approach. That's why I got interested in Orthographic Steno Systems and found the "Jackdaw steno theory" on the Learn Plover site
I first implemented an ErgoDox Layout for Jackdaw and learned to type basics words on 10fastfingers.com. After a lot of iterations on the firmware I started to practice more but on April 2018 I injured my left hand after a too long training session. Actually I got a De Quervain tendinitis because of the very bad ErgoDox thumb positions. Note: at this time my top speed on the 200 words test was 140 wpm with Jackdaw.
I had a surgery in October 2018... (just after the surgery)
So I highly don't recommend the ErgoDox or similar keyboards for Jackdaw. I'll delete the ErgoDox firmware soon!
After the surgery I decided to build a specific keyboard for Jackdaw so I can practice safely. The keyboard needs the following :
- Thumbs keys must be closer to the index column to avoid bad wrists movements
- Thumbs layout must be optimized for Jackdaw
- Because of the 2 previous points the keyboard must be 3D Printed and the design must be parametric (that's why I chose OpenSCAD for the conception)
- It's possible to switch to a "normal" keyboard layout
- The keyboard is easy to build even if it takes time. That's why it's not really a splitted keyboard
- The development board must have enough memory for several dictionaries (that's why I chose the Teensy 3.2)
I named it "Kaladrius" because the Keyboard looks like a white bird and in Roman mythology the Caladrius is a white bird that can heal someone...
If you are interested by using Jackdaw and the Kaladrius here are some things to know before continuing :
- First it's an orthographic system, it's slower than steno (but faster than touch typing)
- It appears that by learning Jackdaw you won't loose your touch typing speed
- It's only for the english language
- I made some modifications to the Jackdaw theory and added/removed some features. I'll list them later
- I may add/remove features, change dictionaries and/or change the fingers layout and the keyboard design to improve the keyboard.
- If I change the dictionary or the design you may need to relearn some things (maybe a lots of things for major dictionary changes)
- The build of the keyboard takes time
- The keyboard is designed by default for MBK Choc Keycaps and Kailh Low Profile Choc Switches
- To learn to type with this keyboard there is an application called KaladriusTrainer
To build the Kaladrius you have to :
- 3D print 6 different parts. If you don't have a 3D printer you can print them via an online 3D print service (like https://www.3dhubs.com for example) but it's very expensive.
- Do the electronic by yourself...
You'll need :
- 1x Teensy 3.2 with pins
- 1x (4cm x 6cm) prototype pcb
- 1x 5mm Common Cathode RGB led
- 3x 220 Ohms resistors (for the RGB led)
- 72x 1N4148 Commutation diodes
- 72x Kailh Low Profile Choc Switches - Tactile Brown (Light Linear Blue Switches are not recommended)
- 2x 1u homing MBK Choc keycaps
- 60x 1u MBK Choc Keycaps
- 6x 1.5u MBK Choc Keycaps)
- 4x 2u MBK Choc Keycaps
- Electrical Wires 28 AWG
- 26x M3 nuts
- 18x M3 screws of 12mm
- 8x M3 screws of 10mm
- 4x M2 screws of 6 mm
- 4x M2 rings
- 4x M2 nuts
- 1 micro usb magnetic cable
Tools :
- Soldering iron
- Solder wire
- Electronic tweezers
- Electronic third hand
- 1 Hot Glue gun + Glue Sticks
- 1 mini electric screw driver (very useful for this build)
- A marker
- A ruler
You can find the stl files to print here.
There are 4 files but you'll need to print 6 objects :
- Left Case : use the file LeftCase.stl
- Right Case : use the file LeftCase.stl but in your slicer mirror the object along the X-Axis
- Link Case : use the file Link.stl
- Link Plate : use the file LinkPlate.stl
- Left Plate : use the file RightPlate.stl but in your slicer mirror the object along the X-Axis. Print this object with 2 perimeters
- Right Plate : use the file RightPlate.stl Print this object with 2 perimeters
For all files an infill of 20% is enough. About perimeters, except for 5) and 6), print all objects with 3 perimeters. For the right and left plates I personally print them on a glass surface.
About print times, it depends on your printer and print settings. For my settings I have the following :
- Left Plate : 2h59
- Right Plate : 2h59
- Left Case : 7h01
- Right Case : 7h01
- Link : 7h25
- Link Plate : 58 minutes
After this step you can assemble the case without the plates :
You need :
- 8 M3 screws of 10 mm (8 and 12mm also works)
- 8 M3 nuts
- (optional) 1 M3 ring
Try to put a M3 nut in this slot on the case :
If you can't push the nut by hand use a M3 screw with a ring and use it to insert the nut :
Screw until the nut is fully inserted
Once the nut is fully inserted remove the screw, at the end you should have something like this :
Put the Teensy on the 4cm x 6cm pcb like the image below :
Here the left side of the Teensy is on the 4th column of the pcb
Solder the Teensy and cut the legs :
Here is the schematic of a RGB Led (Common Cathod) :
Put the led on the 7th column like this :
Another view :
Now insert the cathod in the 4th column of the pcb like this :
and push the led down until the top of the led is <= 13mm. If the led is too high you won't be able to put the Link Plate on the Link part :
Solder the RGB led on the pcb, after that it's time to put the 220 Ohm resistors like this :
- 1 resistor is soldered between the Pin 13 of the Teensy and the red leg of the led
- 1 resistor is soldered between the Pin 14 of the Teensy and the green leg of the led
- 1 resistor is soldered between the Pin 15 of the Teensy and the blue leg of the led
As a memo here is the Teensy 3.2 pinout :
Now link the Teensy GND pin and the Led cathod with a wire like this :
Now you can do a basic test :
- Compile and flash the Kaladrius firmware on the Teensy
- After the reboot you should see the RGB led blinking like in this video : Kaladrius boot blinking test
Puth the switches on the plate :
To be sure that they won't pop out glue them with a Hot Glue Gun :
As you can see on the photo you can glue just one side, it's enough. If you have to remove the switches from the plate you can use a Heat Gun
Here we'll work with the Left Plate.
Put the wire like this:
Put marks on the wire:
Strip the wire:
The final result after soldering:
Put diodes on the row like this (pay attention to the black line of the diode):
Solder them like this:
The final result:
Do the same with the Right Plate
Now that the columns and rows are done we can connect them to the Teensy. Here is a recap of columns/rows of the keyboard with the colors I used :
Same for the Teensy :
Use wires with the following lengths and solder them on the Teensy first At the moment don't solder wires on the plate:
- Col 0 and 15 (red) : 25 cm
- Col 1 and 14 (red) : 23 cm
- Col 2 and 13 (red) : 21 cm
- Col 3 and 12 (yellow) : 20 cm
- Col 4 and 11 (yellow) : 19 cm
- Col 5 and 10 (yellow) : 18 cm
- Col 6 and 9 (white) : 17 cm
- Col 7 and 8 (white) : 30 cm
- Row 0 (green) : 20 cm
- Row 1 (blue) : 22 cm
- Row 2 (black) : 24 cm
- Row 3 (red) : 26 cm
- Row 4 (yellow) : 28 cm
Connect and solder the wires to the Teensy :
And here is a closer look of the back of the Teensy, I added some hot glue for the row wires that go to the right side :
When it's done put the Teensy in the case and pass the wires to the left and right sides.
Now you can solder wires to columns and rows on the plate :
You should have something like this :
You can put all plates on the case, you'll need :
- 18 M3 of 12mm screws for left and right plates
- 18 M3 nuts
In your keymap.c file, create a layer for the Jackdaw layout, for example :
[LAYER_JACKDAW] = LAYOUT(
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_LGUI, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
KC_NO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO,
CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO,
CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO,
CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO,
CKC_STENO, CKC_STENO,
CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO, CKC_STENO,
CKC_STENO, CKC_STENO ),
and add also this:
// Steno keymap
const uint32_t PROGMEM g_steno_layout[MATRIX_ROWS][MATRIX_COLS] = LAYOUT(
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, L3, L2, L1, L0, S_ENT, SC_SEP, R0, R1, R2, R3, R4, 0,
0, L4, L_A, L_C, L_W, L_N, SC_STAR, SC_SEP, R_R, R_L, R_C, R_T, RP_E, 0,
0, L5, L_S, L_T, L_H, L_R, R_N, R_G, R_H, R_S, RP_Y, 0,
0, 0, 0, 0, 0, 0, 0, 0,
SC_STAR, SC_SEP,
SC_LPLUS, T_E, T_O, T_Y, T_I, SC_RPLUS,
T_A, T_U );
steno_layout_t* get_steno_layout(void) { return g_steno_layout; }
You'll find an example in my personal keymap here
By default the keyboard is in full NKRO, you can test the keyboard here http://random.xem.us/rollover.html
- Keyboard Maintainer: FromtonRouge
- Hardware Supported: Teensy 3.2
Make example for this keyboard (after setting up your build environment):
make handwired/kaladrius:[your_layout]
See the build environment setup and the make instructions for more information. Brand new to QMK? Start with our Complete Newbs Guide.