Close

[A] Details page before 12 Jan 2024

A project log for Tetent [gd0090]

An input device for quickly entering text and equations, gaming, drawing and cursor/6DoF movement.

kelvinakelvinA 01/11/2024 at 11:300 Comments
I'm finally starting to revamp and equalize all my details pages so that the projects can be better understood and information hidden within the depths of logs can be more easily found. The below is the old Details page.

Notable Tetent projects, sorted by project log count:

Tetent is primarily for #Teti [gd0022], and it's a good idea to think of Tetent as an input device for Teti similar to how the PS5 Dualsense Controller is an input device for the PS5. 

I'm looking to control my PC from the perspective of a console. Most games designed for a specific console can be fully controlled using the standard controller. Playing Forza with a steering wheel controller feels more suited to the game, but the game can still be fully played with the standard controller.

Input devices I'm trying to consolidate into a "PC controller"

Fast typing method

I like to think of Tetent's default layout as the next Pokemon evolution of chording keyboards: "parallel entry". 

For a normal keyboard, which would be "serial entry", you'd have to make sure all fingers are perfectly timed so that the characters appear in the correct locations of the word/sentence. Failure to do this causes a few typos ("hte", "ot", "wit hthe", etc) and also makes it somewhat difficult to increase speed. For "chorded entry", pressing more than one specific set of keys results in a new character, dictionary phrase or action. 

For parallel entry, the same layout exists under each finger (except one of them for modifiers / layers). For Tetent, different characters are selected by changing the position and force of a finger. Therefore, while "eee" or "..." might have to be some custom, seemingly arbritrary chord on stenography or CharaChorder, on Tetent it'll be the same position and force on 3 fingers. 

Any gaps (eg "e" was pressed Finger2 and 4) will be merged (to produce "ee")  and the same can be said about the left and right Tetents ("hom" on Tetent-L and "e" on Tetent-R will result in "home" being sent to the host device). 

Note: The thumb = "Thumb1" / "Finger1" and the smallest finger is "Finger5".

Example

To write "a.keyboard.readChar() {", this is what will be seen on the host device, entering 4 - 6 characters per chord:

I've also put modifier keys (ctrl, alt...) in the default layout, so if you know you're going to be doing multiple keyboard shortcuts at once (for example, ctrl+a, ctrl+c, alt+tab), you can just do that as 1 chord. 

To get a better look at how entire sentences are written and the motions of fingers, I recommend to see this Tetrinsic log.

Flattening the learning curve

From researching stenography and CharaChorder, I've learned that a fast layout is near useless if the learning time is very slow, so I've had learn-ability as the top requirement. 

If you're a person that only uses 1 finger and 1 thumb, Tetent is still perfectly usable. More fingers just means more speed, but they are optional additions.

Moving on, the dual reflective LCDs (with backlights) are used to show:

I think that the feature that's really going to cut down the learning curve are the motors in each #Tetrinsic [gd0041] that will be able to move a users fingers to the correct position, as well as send haptic feedback that the user should expect to feel when pressing the virtual key. I also hope to implement things like Simon Says and typing ghost games/features.

The layout could be a bit like a rotary phone, where the Tetrinsics exert a spring-back force to the "home row" so that the user only has to concentrate on the haptic events leading up to the virtual key press. To put it another way, the user can think 

instead of 

where [character E] is the equivalent "home row" position.

You can start practicing by pressing "426" and then "153" simultaneously on the numberpad to get used to the finger motions, though I'd imagine Taipo to be a more accurate representation.

Tetent's initial requirements

Even before writing all these Hackaday logs, I knew my future was going to be full of typing. What I needed was a new character input solution that satisfied most or all of the requirements:

Conceptually and hypothetically, I've addressed or exceeded the requirements. 

Tetent can be used single-handedly or dual-wielded. It is also ambidexterous and reversible (like USBC). It uses #Tetrinsic [gd0041] slide encoders which allows for software adjustable actuation force, haptic feedback and appearance. For the mechanical keyboard enthusiasts reading, it means the look, weight and tactile feel can be changed when desired for each finger, though I should mention that the travel distance is measured in microns. 

The Tetrinsics also physically move your fingers to ease the learning process, as well as allowing for a handful of different behaviors like momentum, detents, free scroll and spring to center. Due to the stainless steel ball chain, there should be less slippage than flat, plastic keycaps, further reducing typos. Also, the finger doesn't need to be lifted at all, unlike traditional keyboards.

I only need to perform at least 1 chord per second to equal my QWERTY typing speed of 65 - 80wpm. If I can get a consistent 3 chords per second, I could be typing at up to 260wpm for a good amount of time and not the <15 second bursts I've seen on YouTube. I consider 4 chords / second as "full speed", typing in sync with 120/240bpm music, for an estimated average of 312wpm (max is 32 characters per second (384wpm), or 24 without a single space (288wpm)).

Now I just need to make Tetent a reality.

Discussions