Sotto: A Silent One-Handed Modular Keyset

The essential input you never knew you needed. Sotto is a portable, wearable, more subtle way for you to text and type on the go.

Similar projects worth following
When Douglas Engelbart introduced the keyboard and mouse in his Mother of All Demos, he also showed a third tool: the chorded keyset. Engelbart considered this tool essential for speedy interactions, with one hand on the mouse and the other relaying typed input to the machine.

With a modern world full of multitasking and inadequate mobile input devices, the concept of rapid, one-handed input is more important than ever. Sotto revives the chorded keyset with new technology- tiny accelerometers sense the movement of your fingers as you "type," allowing for subtle and soundless input for notetaking and texting. Plus, Sotto provides an output channel through haptic feedback- read with your fingers as Sotto vibrates back letters in the form of chords.

Sotto is designed to be used naturally, without vision, by anyone. We especially hope that Sotto will help those with visual impairments read and write on the go more easily.

We believe in human augmentation. Sotto can help.

We are living in a world of screen overload. Smooth smartphones and modular screens seem convenient, but are tremendously difficult for an increasing number of people. Over-illumination from screens commonly causes migraines and headaches. For those with certain temporary or permanent brain injuries, extended screen time is not an option.

Plus, we have increasing need for easy, on-the-go input, where visual attention is not required. Texting is awkward, and texting one-handed is worse. Looking at a phone to text while driving causes 1.6 million accidents per year. Diverting visual attention to notepads or phones to take notes while in projects is sometimes impossible, doing so during a conversation is often rude.

The solution? Sotto, a one-handed chorded keyset designed for subtle use while on-the-go.

Chorded keysets have a long history with stenographers, telegraph operators, and technologists. Keysets were popular in Douglas Engelbart's research group and at Xerox PARC, but Steve Jobs decided against a keyset product in the 1980s. As consumers increasingly relied on the mouse and keyboard, chorded keysets fell by the wayside.

Which is a shame, because keysets are shockingly easy to learn and use. Engelbart found that adults and children alike mastered the keyset in less than two hours no matter what method of training was used. (In comparison, learning to type on a keyboard takes about 10 hours.) Modern braille writers-- keyboards with a braille output-- use a two-handed chorded keyset with 6 buttons and a space bar.

Although one-handed keyboards have been attempted in the past, they generally rely on direct button presses and need to be gripped in one hand. They are often designed to be on-the-go, but only provide an option for input and not for output. Sotto is a gripless one-handed keyboard with a silent input and option for vibrating output, allowing you to write and read silently using haptics.

The technology behind Sotto is readily available, easy to use, and highly modular. Sotto relies on a bluetooth-connected microcontroller that sits on the wrist, as well as small "nodes" on each finger. Each node contain an accelerometer and vibration motor, so that it can sense input and relay output. Although Sotto has five nodes by default, you could easily plug in one (for morse code) or four on each hand (for braille writers). Sotto is open-source and hackable, and we encourage you to test the limits of the system with new and interesting features.

  • 1 × Connected Microcontroller currently switching between the particle electron and bluno beetle for prototyping
  • 5 × MPU-6050 Accelerometer / Gyro boards, awesome knockoffs available for cheap
  • 5 × Vibration motors
  • 1 × Pourable Silicone for dampening vibration motors
  • 1 × wires, protoboards etc The usual stuff.

  • A basic sottotype, now on GitHub

    Christine06/11/2017 at 03:43 0 comments

    Ready for a sottotype?? (sotto prototype)

    Using MPU6050 accel/gyros and a Photon, you can now detect 5-finger combinations! It uses the same binary-based input as this chorded keyset emulator.

    Check out the code here!

    Next up: actual typing, glove form-factor, and bluetooth connectivity

  • Sotto and the Internet of Useful Things

    Christine06/08/2017 at 07:40 0 comments

    This contest is called the Internet of Useful Things, and I’m going to take that title to heart. In order to be optimally useful, an Internet of Things Thing must connect to the internet in the best-suited way possible. If you’ve been on HackPretty, you know I like to talk through concepts in case beginners are listening, so feel free to skip this log if you’re already an expert!

    Connected microcontrollers are tools. They come in several shapes and varieties: bluetooth, cellular, Wi-Fi, and more. If you’re prototyping in a hurry, you’re likely to use whatever’s available. (I have like 20 Particle Photons in a drawer, so I'm often using those.) But if you’ve got a little time, you should try to use the tool that is fit to the job at hand. You wouldn’t use a pair of pliers to hammer in a nail, unless you were really in a bind. If you’ve got a choice between Wi-Fi and bluetooth, you want to pick the right one.

    In general, I think of this as:

    • Wi-Fi: Power consumptive, range-restricted to router. (Photon, ESP8266, etc.)
      • Smart Home devices
      • Lamps and Clocks
      • Stuff plugged into the wall
    • Bluetooth/BLE: Power-light, range-restricted to phone. (Bluno Beetle, Redbear Duo, etc.)
      • Wearables
      • Accessories
    • Cellular: Power-light, range-restricted to cell towers (usually very wide range) (Particle Electron, etc.)
      • Asset Trackers
      • Remote data-gathering tools
      • Easy-onboarding devices (while Wi-Fi and bluetooth need to be set up to your router or device, cellular stuff can turn on, connect, and work.)

    Sotto is a chorded keyset for input on the go. So this means we’re either going to want either bluetooth or cellular. I’m a fan of Sotto running on BLE, since I expect that it will always be in range of your phone and sometimes working directly with your phone apps.

    Bluetooth has a bunch of different protocols for communication. Since Sotto is a chorded keyset, I’m going to need one mode to be through an HID (human input device) profile-- the standard profile you see used for bluetooth keyboards. The Adafruit Bluefruit has a built-in keyboard example, which we’re going to hack for the first prototype of Sotto.

    More to be posted soon here. I'll also try to cross-post fundamental basic concepts to HackPretty when they come up-- I have a nice outline for a simple post about gyros I need to get working on!

  • All the gyros ever, forever and ever...

    Christine06/05/2017 at 17:58 0 comments

    The MPU-6050 is an InvenSense sensor with a MEMS accelerometer and a MEMS gyro. It's available as a breakout from SparkFun for ~$40/board, but I needed at least 5 of them. Ebay/amazon/aliexpress was happy to help! These other breakouts were mega cheap and so far I've only had one failure out of 6. Not bad for the price.

    The MPU-6050 communicates over I2C, so we need to be fancy with the addresses if we're going to read 5 at a time. I ran into this issue with the IR temperature sensors for the Starfish Cat, and solved it by manually changing the addresses on the MLX90614 and editing the library to allow for multiple addresses. It's not as easy to reprogram the address on the MPU-6050, but you can shift the address dynamically by writing the ADO pin low (0x68) or high (0x69).

    If you attach ADO to your digital pins and only turn one on at a time, you can scan through the sensors to grab data before switching the address again. This is a recommended trick for the MPU-6050 on the Arduino Playground. Your granularity will leave something to be desired, but if your goal is to read extreme motions like finger strikes, then you’re probably okay. Here’s an example of this method employed with the Particle Photon.

    Stay tuned! More updates soon.

  • A Chorded Keyset Emulator

    Christine05/30/2017 at 15:52 0 comments

    I'm piecing together the hardware for Sotto now, but in the meantime I thought it'd be fun to have a chorded keyset that people could try online, to test out the idea. Hooray for the speedy nature of javascript!

    If you're listening, dear Internet readers, please try out the keyset emulator and let me know what buttons and features you'd like in a portable hardware version! (I'll eventually add lowercase, punctuation, and number settings to both the emulator and hardware versions!)

View all 4 project logs

Enjoy this project?



joelavigueur wrote 08/02/2017 at 07:29 point

I'm really interested in this project and excited to see where it goes. Keep up the good work.

  Are you sure? yes | no

Nick Momrik wrote 07/21/2017 at 20:18 point

Bummer the keyset emulator doesn't have a Dvorak setting.

  Are you sure? yes | no

Neon22 wrote 07/13/2017 at 11:03 point

I guess a smaller cheaper single acclerometer chip would eventually be 'better' than the 6050 but for now you get max experimentation because 3 axis gyro and accel.
Great idea. Looking fwd to this one.

  Are you sure? yes | no

Andrew Nambudripad wrote 07/13/2017 at 00:22 point

You probably want to optimize the keyout by frequency, enabling common letters (R,s,l,e) to be mapped to single character chording. Take a look at phonetic chording (a la Stenotype, based off shorthand), as well as the "Velotype" style syllabic chording. Stenotype gets you up to 300 WPM -- but only for those words commonly 'encoded' into English--, and Velotype gets you up to 200wpm including strange proper nouns. Check out wiki/Chorded_Keyboard has links out to most of those. The dead-since-Don-Draper-days English shorthand  would enable secretaries (my bad, personal assistants) to get ~200 WPM *by hand*, so QWERTY and even DVORAK is a big step back. 

A chordable, encodable (stenostyle), one hand interface with autocomplete (SwiftKey, the old Android style -- which had word auto-suggest.. i.e., if you often typed "what's up", then "w" would bring up the most commonly used words beginning with 'w' (ie. where, what, what's, when); say then you select 'what's', it'll use heuristics to offer say "going | up | your") etc. "Frecency" algorithms do this fairly well (placing each possible completion re: frequency and recency into a weighed matrix)

  Are you sure? yes | no

rmd6502 wrote 07/12/2017 at 22:21 point

You _will_ be making a Kickstarter for this, right?

  Are you sure? yes | no

Arsenijs wrote 06/24/2017 at 22:08 point

Hi! The emulator is great, and I'm thinking of making a ZeroPhone mod board for Sotto - will send you some pics when it's done =)

  Are you sure? yes | no

Christine wrote 06/05/2017 at 17:36 point

Yep! Engelbart's original keyset used a binary system to code for letters and numbers-- set for letters, 1 would be A, 2 would be B, etc. I actually made an emulator for this system, it's over at

  Are you sure? yes | no

Jarrett wrote 06/05/2017 at 16:32 point

Are those binary fingernails?

To count... Digitally?

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates