Setting up the Stenomod

Tue 16 May 2017

Humans have been using specialized systems of shorthand to record speech in real-time since antiquity. Starting in the late 1800s, automated stenotypes have offered an alternative to written shorthand. Typically, stenography has been reserved for settings where the precise recording of speech was important. One obvious modern example is in the courtroom. Stenography is also important for making spoken word accessible to the deaf, as it allows for real-time captioning. In order to generate an accurate transcript and keep up with human speech, a stenographer must be capable of speeds greater than 200 words per minute. The qwerty keyboard, and indeed, all touch-typing keyboards, are not designed for this speed. For one, the qwerty layout was designed to prevent typewriters from jamming by placing letters that are commonly typed next to each other as far apart as possible. Thus, qwerty maximizes the distance that your fingers have to travel. Even more optimized layouts such as dvorak allow an above average typist to enter around 100 words per minute (the fastest typists exert great effort to go faster than 150). If you’re curious, you can test your own speed at http://play.typeracer.com/. The inherent limitation with touch-typing is that every character must be entered individually. This is in contrast to the way that humans combine phonemes/syllables to form words while speaking.

A modern stenotype has an entirely different layout from a touch-typing keyboard. It has two sets of consonant sound keys grouped on either side, with four vowel keys in a row below them. When you enter text on a steno keyboard, you combine multiple keys into “chords”. The set of keys you press simultaneously determines the text that is entered. This is much closer to the way that human speech works. The chords are based around phonetics, which makes it easier to learn and keep track of the chords that represent the words you want. This also explains why writing at the pace of human speech is easier than on a touch-typing keyboard – you only have to complete about one “key press” per word. This is especially important for professional stenographers, who need to be able to type at that speed for many hours at a time without a break.

Historically, stenography equipment and training has come at a steep price. Older closer-source software and hardware systems were patented and access to them was controlled. For a licensed stenographer, a professional grade steno keyboard and software license sells for thousands of dollars new. The companies that sell the closed-source software also run the schools that teach steno, and charge a vast amount of tuition, artificially limiting the supply of stenographers. However, the situation has started to change recently, in part due to the work of the Open Steno Project and their open source steno software called Plover. In response to the success of Plover, DIY and homemade steno keyboards have begun to appear on the market, including the Stenomod, which retails for only $200 (about 1/4 of the price of the cheapest professional-grade steno keyboard). If you’d like, you can also use certain models of touch-typing keyboards for steno with Plover.

A few of us found out about steno via Mirabai Knight, who provided open captioning for !!Con this year (and in years past). We decided to purchase a Stenomod to experiment with. Our hypothesis was that, assuming the learning curve isn’t too steep, stenography might in fact be a fundamentally better way to input text. Although all of us are programmers, I’m not sure that we’ll actually use the Stenomod for programming. Typically, the bottleneck for throughput with programming is the speed of thought, not the speed of typing. However, programmers and other knowledge workers spend large amounts of time responding to email and writing text associated with their code, including design documents and technical documentation. If steno allows you to write prose at closer to the speed at which you think, it might truly be worth learning.

Stenomod Setup Instructions

Now, the practical part of this post: our Stenomod arrived the other day and at first we had some trouble setting it up with MacOS. I thought I’d document the process, since we couldn’t find a complete set of instructions that explained our problem. First, a bit of background information. The Stenomod connects to your computer using a microUSB cable, which it uses both for power and to transmit data. When a normal USB keyboard transmits data as you type, it uses a universal protocol that the USB hid (human input device) driver in your kernel (operating system) can understand and decode. The Stenomod sends its data using serial-over-USB. This means that the USB port is actually being used to simulate an old-style serial port, where information is sent as a stream of raw binary data (1s and 0s), and it is the application’s job to decode it. Depending on your OS you’ll probably have to install a device driver to allow your computer to handle serial-over-USB. MacOS comes with a serial-over-USB driver preinstalled starting with 10.9, but it isn’t the correct one for the current version of the Stenomod. You’ll also have to install Plover, whose job it will be to listen to the raw bytes the Stenomod is sending, decode them, and translate them into text that will then appear on your screen.

The first step is to download and install the most recent stable version of Plover, which is available at https://github.com/openstenoproject/plover/releases/latest for MacOS, Windows, and Linux. Next, you’ll ( have to install the correct serial-over-USB driver. Our Stenomod (shipped in May 2017) was built with a “Silicon Labs CP2103 USB to UART bridge”. The drivers are available at https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers. On MacOS, you can double check that your Stenomod still uses the same component by plugging in the MicroUSB cable and opening the System Information app. Viewing the correct entry under Hardware/USB will show you information about the device including the manufacturer and model number. After the driver is installed, open Plover with the Stenomod connected. Click “Configure” and change the “Stenotype Machine:” to “TX Bolt”, which is the name of the serial protocol that the Stenomod uses. Click “Configure…” next to “TX Bolt”. In the “Port” dropdown, you should see the option for something like “/dev/cu.SLAB_USBtoUART” if the driver install was successful. Select that option. The rest of the defaults are correct: “Baudrate: 9600, Data bits: 8, Stop bits: 1, Parity: N, Use Timeout: True/2.0 seconds, RTS/CTS: False, Xon/Xoff: False”. “Ok” and “Save” the two menus, and “Enable” output in Plover. You should be able to start typing on the Stenomod now.

I’ll probably post more about our adventures fooling with the Stenomod in the future. At the moment it seems like an exciting time for stenography. A historical barrier to entry is in the process of being broken down, and we’re still in the early days of open access to steno keyboards and software. If demand continues to grow, more direct to consumer options will appear, and hopefully prices will continue to decline, making steno accessible to greater numbers of people. Currently, there is massive demand for qualified stenographers, particularly for accessibility-related work. There is also great potential for improved software solutions for learning steno quickly. If an experienced touch-typer can grow to match their qwerty typing speed over say, three months, then there is real potential for steno to expand beyond captioning and transcripts. I’m not sure that steno will “replace” touch-typing in any meaningful sense. But, employees in a significant portion of the economy spend their entire day either writing text or in meetings. If steno can provide a large enough increase in input speed for them while facilitating easier and more fluid communication, that could be incentive enough to make the switch.