-- Leo's gemini proxy

-- Connecting to caolan.uk:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

Bramley: human input


Posted on 6th October 2020


I don't like touchscreens. That's why my desk is adorned with beautiful keyboards: the affirmation of a mechanical switch. Unfortunately, it's difficult to squeeze a full keyboard into your pocket, and the tiny membrane keys that do fit compromise tactility too far - if the Bramley is going to have nice switches, it'll have to have fewer of them.


I'm inspired by an old telegraph code invented by Émile Baudot in the 1870s. The code contains 5 bits that, before teletypewriters, operators would transmit using five piano-like keys.


Image: Emile Baudot five keys telegraph keyboard


By pressing several keys at once in a chord, the operator had enough combinations to cover the whole alphabet. Baudot clearly had his human operators in mind, too, because the code uses only one hand or a single key-press for the most common characters.


I'm going to reuse these chords for the Bramley's keyboard. But, since not all keys are covered by the Baudot Code, I also want to expand its repertoire.


On smaller keyboards, the key map is often split and layered like a deck of cards. Android does this too with separate layers for numbers, symbols, and emoji. By adding more (virtual) layers, I vastly increase the available input.


I think six buttons is the minimum: one key to swap layers, five more to populate them.


Image: The front and back of the prototype device


I know it's odd, but I decided to place the buttons on the back - three down either side.


To push a button, I need an opposing force: a desk, my lap, the palm of my hand. But if I hold the device like a smartphone, I only have one hand free to play chords - or two thumbs, if I hold it like a joypad. With buttons on the back, however, I can rest it on my fingertips and press all the keys comfortably.


Of course, I still need to write software for chorded input before I can really test the design - but that can wait until I have a working screen.


Further reading:

Wikipedia: Baudot Code


Up: Workshop

Next: Bramley: display

Prev: Bramley: build log (introduction)

-- Response ended

-- Page fetched on Fri May 3 04:14:15 2024