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:
- Input element: #Tetrinsic [gd0041]
- For Teti: #Tetent [gd0090]
- Wearable: #Tetent TimerSpy [gd0136]
- x86 PC Handheld: #Tetent UMPC [gd0149]
- Desktop: #Tetent TestCut [gd0139]
- Solar Powered: #Tetrescent [gd0150]
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"
- My keyboard
- My WPM is 60 and it seems like it'll take many years of continued effort to double that. Even if I got to 120WPM, it still would be too slow. After thinking of the R.O.I. of the continued practice, it just doesn't make any "time-finacial" sense.
- My mouse
- I'm almost never on a hard, flat surface anyway.
- Even if I was looking for a new mouse, there's no ambidextrous 12-side-button "gaming" mice.
- The 3D mouse that doesn't exist yet
- I'd like to be able to select UI elements that are behind other elements, such as shapes in PowerPoint or edges in Fusion 360.
- Likely more suited for Mixed Reality experiences.
- My Spacemouse / 6-axis mouse
- I've got an old Space Explorer and it takes up my limited desk/table/lap/reachable-floor space and I constantly have to be switching between it and the keyboard.
- I've also tried to use this as a 2D mouse, and wrote about my experience here.
- The touch input of my touchscreens
- I really like touchscreens but the issue with them is the lack of precision, occlusion and the abundance of fingerprints.
- The lack of precision means that I need to spend more time retrying to press a UI element.
- My drawing tablet I rarely use
- I mainly got it as a touchscreen input alternative for Teti for when in triple monitor mode and for writing digital maths notes.
- Being able to sketch out design ideas with pen pressure is also ideal.
- My MIDI keyboard I rarely use
- It's even larger than my keyboard, and I didn't like the key travel distance.
- I'd like to be able to capture melody ideas wherever inspiration may strike.
- The XBox controller I rarely use / PS5 controller I never had
- I think it'll be nice to bring over some of those DualSense controller haptics over to Tetent.
- It's unlikely to be as sensory as haptics across the entire palm, but it's likely better than 0 haptics at all.
- Ideally, Tetent will be able to control some racing game or Minecraft ergonomically. Additionally, whilst I don't play any FPS games, being able to quickly and accurately click on GUI elements seems similar.
- I think it'll be nice to bring over some of those DualSense controller haptics over to Tetent.
- The finger massager I never had
- Every slider is motorised; might as well also use them to try and mitigate any fatigue while typing.
- The ASUS laptop dial / Surface Studio dial I thought was really cool but have never used.
- The high bandwidth VR controller that doesn't seem to exist on the market (as of 2023) for working in virtual reality.
- I've got to be ready for when a Pimax 24K or similar headset finally drops.
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:
- a.key
- a.keyboard.
- a.keyboard.readCh
- a.keyboard.readChar()
- a.keyboard.readChar() {
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.
- Tetent-L: CTRL | A | CTRL
- Tetent-R: C | ALT | TAB
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:
- Finger positions
- Due to ergonomics, the user likely won't be able to see see finger placement.
- Even with mirrors, the distance the fingers actually move is rather small and so isn't really all that obvious that they're in a specific location.
- A force list of characters at the last moved finger position
- For example, if you moved Finger2 and only Finger2, you'd see all the "keys" mapped underneath Finger2's current position.
- Search results for looking for a specific key / macro.
- I had a "Let's Split" ortho. I couldn't remember where anything was in my keymap.
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
- "I know [insert character here] is [x] detents from [character E] and [y] haptic clicks down"
instead of
- "Ok my finger is at column [w] which was [z] detents from [character E] so I've got to move [a] amount to be at colum [b]..."
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:
- Easy to learn
- Research revealed that stenography and CharaChorder is slow to learn to a speed of >150wpm.
- Small enough for use with a smartphone
- So that I didn't have to learn a mini and regular layout.
- Theoretical speed ceiling of over 240wpm, ideally 320wpm
- 1 handed typing at speed (>100wpm)
- Wireless and wired connectivity
- Usable with fingernails (5mm length)
- Screens for knowing what character/command will be input
- Higher bass speaker than what is available in Teti's (EQ-tuned) portable monitors
- Ideally LED backlit.
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
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.