-
[M][A] Refinements to design and layout
03/28/2023 at 20:26 • 1 commentTo my future self. It is safe to upgrade now.
I've written a preliminary log that mentions a few things will cover them in a tad more detail in this log too.
Tetent Layout
The first thing I did was refine and add to the layout. I tweaked it a while ago but it seems that I never wrote a log about it. The previous log about the layout is here. This is the updated layout:
Sketching
A new one I wasn't actually planning on until I started tweaking the layout was Sketchθ. It was a thought I had when I was trying to reassure myself that if the Tetent solution fails, I gave it a top tier go and can restructure my project timescales. I watched some timelapses of people drawing to get an understanding of what commands they usually need to input.
I also watched a woman that drew etch-a-sketches, and I think motorised teaching would really help get users up to speed with drawing in this way.
Tetent X and Y
The X and Y movement layout has been derived from TrueGame, which is an Xbox controller mapped over to Tetent. I think the only input I didn't map over was the joystick push button. Finger3 has X because, wether it's clicking around in a GUI or moving an ingame character around, most of the movement is in the X axis. Finger3 is the least ergonomically constrained of the fingers, and Finger4 is aligned, so that's why those fingers were chosen instead of Finger2 - 3.
6 axis input
Looking at people sketching, CAD drawing and my own experience (of CAD and web browsers), it looks like users quickly but temporarily need to move the page / scene and don't plan on entering any other input, unlike for gaming. Thus, Spaceθ (the 6 axis mouse layout) is just a Finger5 slide away.
Perhaps pressing one of the 6 Tetrinsics will switch the view to one of the 6 main 3D faces, but I haven't thought about that right now.
Other notes
- I thought that having Fn keys under all 3 fingers was overkill.
- I've put C, V, X and Z in the same TrueType column for more intuitive Ctrl shortcuts.
- All axes (except TrueGame) have the option of momentum (a.k.a.) inertia (a.k.a.) ice-hockey mode.
- TrackXYZ could be a 3-dimensional mouse. I'd like to be able to actually grab something behind another object in PowerPoint or a face though others in Fusion 360, for example.
- I'm thinking of having a handwriting tutorial in Tetent Tutor.
- I tried to keep similar symbols in TrueNumba and TrueQuation in similar locations (like always equal or the fraction button).
- I wasn't content with the common string "so I" not being a single chord, so I added a 'Shift 3rd with space' option.
- [29 Mar] I just remembered that Me In The Distant Past wanted to be able to record spontaneous melody ideas. I'm thinking of a MIDI mode where the position of the finger denotes the note.
- There should be the option to map an instrument to one or more Tetrinsics, like those MIDI pads.
- I feel like 6 fingers should be enough for a decent musical input device.
Ergonomic Alignment
So I was looking at my design, thinking "Wow. For a solo project that uses off-the-shelf parts, this is looking quite Indigogo grade. I feel like ergonomic constraints are the only thing that can fail this soluion.".
Finger alignment is unfortunately rather tailor-fit it seems because it's very easy for misalignments of one finger to propogate, so I wanted to validate the solution.
The spacing between Tetrinsics is 0.8mm +/- 0.05, and the chain is going to be between 5 and 6mm, likely 6mm as long as Finger4 doesn't collide with anything.
Aesthetics
From #Tetent TimerSpy [gd0136], I had the idea of having 5 diamond squares for the speaker cutout holes:
If you haven't seen, this is the log where I talk a little more about the speaker I'm planning to use, and videos found on YouTube with it in action.
This face still looked uncomfortably bland. I then looked at #Teti [gd0022] and thought that I could use a 40mm stripe just like it:
The first person perspective looked pretty fresh now, but I wasn't a fan of losing that clean, white rear side.
Tried to preserve the 1st person perspective, but the 3rd person perspective still looked more busy than the standard:
The good news is that the 1st person perspective looked even more mind-clearing now:
I then increased the fillets (because they looked sharper than I'd like) and I think I've finally got a good 1st person perspective view.
I also thought "Hmn. Teti looked quite nice with the RGB top / bottom LEDs, and I think some tiny LEDs in the speaker cutout holes would be very nice. Random passerbys get to feast their eyes on visuals and animations (if the user wants), but the actual user who's using it for hours at a time hasn't got much (optional) eye candy to see.
It turns out that the cheapest addressable RGB LEDs are actually just the kind of thing I want: a 2mm square.
I then thought that I really should finally get a custom background for renders, and I found this image:
It's unfortunately low-res, but conveniently looks fine in renders. I did the same hue-shifting strategy I've done for Tetrinsic to obtain this:
So I (eventually) set up the texture and start the render...
and my reaction was:
and my immediate thought was: "This looks like one of those Apple new-product renders!"
This is the first time I've seen the Tetrinsics with an extended background instead of mirrored/cloned ones, and it really makes Tetent look dynamic and modern. I can already see the background being animated like an Android live wallpaper!
Conclusion
This is a new ergonomic, aesthetic and feature-rich personal best. I think some BCI solution is the only thing that could beat Tetent theoretically, but that could be another 10 years from now till we reach that point.
Due to the importance of obtaining a solution and the time it takes engineering and learning a new input device, I've gone for the careful and calculated approach as opposed to a see-what-sticks approach. Sure, it means that I've mostly been in the concept stage for 14+ months now, but remember that the first Tetent looked like this
The size is currently 215.4 * 30.2 * 83.1mm.
-
[E1][T] Some improvements I'm implementing
03/21/2023 at 23:00 • 0 comments- For Tetrinsic, I'm planning to integrate Bluetooth, which will allow for satisfyingly wireless communication with no extra PCBs, for only a small BOM increase.
- I forgot that #T^2 TyMist [gd0138] is no longer happening due to optical constraints, so audio output is once again required... maybe. Planning to use a mono Samsung speaker (which I mentioned in a TyMist log) for now and potentially add 2 smaller stereo tweeters if the MVP works (and it even makes sense to go stereo).
- Where is that speaker going? Where the 26650 was. It's much better to go with the 10Ah dual battery I sourced for an older TimerSpy concept. Why should Tetent have less capacity than 2 TimerSpys?
- If I don't put a speaker there, Tetent might shrink 26mm, but it does seem like 210mm is ergonomically valid wheras shorter (like 190mm) could be uncomfortable for wrists. Actually, the speaker is only 15mm wide, so I could add it and still go down to a 200mm solution, which is probably the sweet spot between ergonomics and portability.
I've also got to research what I'm going to do about the charging circuity. 10Ah will take half an eon to charge at the typical 0.1A found in development boards. The most ideal solution would be to charge from the 30W SuperDart Realme charger, but I think 15W is a more reasonable goal to aim for. At that wattage, I should have a full charge in 3 hours.
[22 March] Tetent is now down to 204mm long, which makes it shorter than an A5 notebook. I've also determined the main speaker location:
It's here so that it doesn't interfere with the otherwise symmetrical design on the back, and because I imagine that this side would be facing up if the device is momentarily put down on a surface and facing towards the user in 1-handed mode.
There's just enough space for a 357090 5Ah battery on each side, so this controller is going to be a dense fit almost as if I was Apple and managed to get custom components that use all the available area.
I'm expecting Tetent to be 700g or less, assuming that
- Batteries: 130g
- Tetrinsic: 40g x 8 = 320g
- Speaker: approx 100g
- Case and other components: approx 100g
-
[T] More readable UI concept
03/21/2023 at 21:29 • 0 commentsOk the above shows that "Tetent " has been chorded in, where ^ is shift and | is the space location. I'd probably have to go back to vertical if a 4th Tetrinsic is used, but I've recently done a mental simulation and WOW only having to move 3 fingers most of the time is mentally liberating. I think I'll reject a 4th Tetrinsic on the premise of "mental overhead mitigation" instead of seeing if there's a technical, geometrical or ergonomical limitation.
Now, the reason why I've purposefully made the image above small is because the actual screens are small too, so this thing needs to be readable. I'm also trying to take advantage of the black pixels blending into the black bezel, and have moved the character zones towards the center.
-
[E1][P] Tweaks applied
03/19/2023 at 00:51 • 0 commentsSo the print (half, since the DP2 isn't large enough to print the whole thing in one go) failed, but though that rolercoaster I was able to get enough of a print to see where my fingers lined up.
Slightly suprisingly... I actually only had to do a few small tweaks here and there, most notably that Finger3 and 4 are 4mm closer together. It seems I've finally had enough ergonomics experience to know what layouts can and can't work.
The length is also 2mm shorter, and I've also reduced the size of the "Tetent" text.
[19 Mar] I've been thinking all day for a way to make the first person perspective look nicer, and I've come to this simple yet somewhat inescapable solution:
I'm also considering adding a cutout to the sides (brown = skin, purple = sides of device):
This idea comes from the book I was using, where the front and back hardcovers were slightly further forwards than the paper inbetween. The book feels more comfortable and grippier than the flat-walled print. I've modelled it in below:
-
[R] Rear-facing / backwards keyboards
03/18/2023 at 20:27 • 1 commentThis log started as a comment but I think it now should be a log.
About an hour after writing the previous log, I was scrolling Yanko Design and find out about the Grab Shell keyboard. Both the name and the keyboard look like it should've existed in 2003 (and from an anime of that time).
It looks clunky and heavy. I checked the page and it indeed is clunky and heavy, coming in at 220x160x40mm (thinnest) and 0.95kg. Unfortunately it also costs the same expected BOM of Tetent (and looks to be more expensive after the preorder window).
I read their story and I agree with the points mentioned, such as:
- Robots are usually developed and tested where a desk / flat surface is not available.
- CAD designers need specific and variant ways of controlling the software, and a mouse+keyboard alone is not enough.
- Wanting to use multiple devices to write thousands of words a day, even when lying down.
- Play Minecraft and Trackmania (with console level haptics) and have a solution that can be used in VR.
- Not be afraid to Invent Everything Here, even if the solution can be seen as suboptimal.
It also lead me to discover TrewGrip (and now I'm not sure why the Yanko article says it's the "worlds first"), which looks to be the QWERTY equivalent of this Tetent concept. Unfortunately, the kickstarter failed and so "contact us" sounds like the only way to get one. Why couldn't I find this when I was spending months looking for every input device recorded on the internet? No idea. What other products are out there on the internet that I don't know about?
Well I actually went and found out other rear-facing keyboards.
Firstly, there's what seems to be a concept, AlphaUI Twiky:
Microsoft Research had a go with the RearType:
Hackaday also featured a modified keyboard.
What I can tell from all 4 of these is that it seems to be intended that the screen is on the same plane as the keys. For viewing the screen and typing, my wrists do not agree with that assessment (unless my arm is fully extended and straight), and this is the reason why the screens on Tetent Concept3 are placed where they are.
What have I learned from this?
[ breathes in ]
Me to Future Me:
JUST! SEND IT!
Tetent [Concept3] is the most FULLY FEATURED (but ergonomically unverified) keyboard equivalent known on the internet.
IT'S GOOD MA GUY! Just BUILD Tetrinsic and know ONCE AND FOR ALL if the chain slides nicely and the multiple force levels can be actuated without errors, ok?
You've gone though 3 COMPLETELY different concepts spanning over an ENTIRE YEAR.
It's DESIGNED to type faster on ONE hand than practically everything else using TWO.
IT. HAS. LCD. ANIMATABLE. BACKLIGHTS! Can't see 'em [when in use]? DOESN'T MATTER. Alienware laptops and LED phones exist. You can ELECTRONICALLY change how the keys LOOK AND FEEL!
It PHYSICALLY... MOVES YOUR FINGERS... TO TEACH YOU!! Honestly only a direct-to-brain download could beat that.
You don't need to lift your fingers to move to another keyboard-key-equivalent. Just slide over. Remember reading about all those people that hate the idea of touch keyboards because they have to hover their fingers? Well they have to do that with their keyboard anyway or risk a finger getting stuck in the trench between keycaps.
You can type while walking! And hopefully #TaskPercent [gd0140] can be written for it, allowing you to take notes on the go.
-
[M] Concept3 with Tetrinsic Gen 2X2 and basic UI idea
03/18/2023 at 14:39 • 0 commentsALLLLRIGHT!
It took 3 hours to get to this point, and halfway though I was playing the background music of Microsoft's Copilot announcment trailer to get the work done.
Tweaked look
That last one is kinda ok, but I just reverted back to what I started with.
I then decided that I really wanted some symmetry, mainly because I did say "reversible" was a similarity of the goals of Tetent and USB-C and I didn't like the idea of technicalities. Looking at my hand and putting some imaginary tilted lines connecting Finger5:Finger2 and Finger4:Finger3, they're actually close to parallel. I might be able to ergonomically get away with this, as long as I added a gap so that Finger3 could use the bottom chain. If I didn't do this, Finger3 would occupy the top chain and collide with the inside edge of Finger2.
I then spent a while with the fillets to get what can be seen in the top image. Additionally, I started with putting "Tetent" on the back, but I thought it looked much cleaner to go with my original idea (see the TwySize Log drawing pic) of a small logo, moving the "Tetent" text to the bottom of the device.
Main UI interface
So I thought it would also be a good idea to actually design a basic UI, which is the one a user would see the most often.
This was the process:
- I started with my logo and thought that the "white" sections (which will look greenish-beige on the LCD) were too thick, so I hollowed out the diamond squares.
- Then I thought that I could have hollow squares normally and full squares to signify that the shift modifier was being applied, so I went back to full squares.
- Tried that in CAD and didn't like it; I thought it looked too busy.
- Tried again and preferred the typed letters to be as close together as possible and the diamonds to be centred. This gives me the chance to put the list of characters, ordered be weight, that shows what characters are available at a specific Tetrinsic position.
Renders
-
[T] Use gd0040 concept
03/17/2023 at 23:42 • 0 commentsThe Tetent concept hasn't been updated in months, and that's honestly because I usually don't use a desk (I've lived a life of laptops) and so the mounting solution has been unsolved.
But I was thinking and thought "wait, the #Tetent TwySize [gd0040] concept was 220mm and #Teti [gd0022] has 216mm of space (up to 232mm). What if I reduce that concept to 215mm and say it's just the stock standard Tetent?"
While I'm not a fan of the form of the thing from any angle other than the angle for the render image above, it does seem like a rather practical solution. As long as it's ergonomic, and with #Tetent TimerSpy [gd0136] considered the "endgame edition", I think a single slab is fine instead of 2 split halves. It's cheaper too (only need 8 Tetrinsics) and I would no longer have to worry about what interface I'd use to keep the two halves synced until TimerSpy.
I'd like to mention that I am aware of the possibility of "I've already built X so why bother making X Pro Max?" mentality meaning that TimerSpy never actually gets built if another Tetent project is completed first. Unfortunately, it doesn't look like my human-to-computer input requirements are going to fall anytime soon and I could REALLY use a Tetent RIGHT NOW. Tetrinsic's already got enough complexity as is, and the bluetooth and ergonomics hurdles of TimerSpy mean that it's in my best interest to get a proof of concept out of the door before going down that route.
The TwySize concept's main benefit is that a mounting solution isn't needed. The palms hold it in dual hand mode and it seems that it could be used single-handedly either by placing it flat on a surface, or by using the palm to push the other side onto something like a thigh to keep it in place. I tried just now with an A5 hardcover journal and it seems to work. It's also still technically ambidexterous, as both hand sides are just combined together.
This also would serve as a good way to get as many benefits from TimerSpy without as many drawbacks, such as the dual screen reflective LCD (which is much more useful than the OLEDs I planned to use months ago for Tetent) and IMU based gestures, such as tilting one side to go into mouse mode or using the entire thing as an ingame steering wheel.
I was going to leave printing out the concept until later, but perhaps this proposal is reason enough to confirm that it is ergonomically viable.
-
[A] Main project moving to Tetrinsic [gd0040]
01/01/2023 at 20:56 • 0 commentsThis log explains most of it:
https://hackaday.io/project/184180-tetrinsic-gd0041/log/214851-a-the-solution-solve-ends-in-30-days
At the same time, most everything of complexity has already been absorbed into a Tetrinsic requirement, meaning that Tetent is becoming more like a case shell for Tetrinsics.
-
[T] Tetent TestCut and Project Worries
10/06/2022 at 17:31 • 0 commentsRight now, I'm deep into processing the electronics solution of #Tetrinsic [gd0041], but I've also started to worry about the bigger picture, which is Tetent. My concerns are about the wired connection and audio.
I'm thinking that perhaps going from 0 to Tetent might be too much of a step that I don't have the confidence level for. Thus, I'm thinking of this roadmap:
- Tetent TestCut
- Tetent (wireless, no audio)
- Tetent (wireless, USBC audio)
- Tetent (wired+wireless, USBC (headphones) audio)
- Tetent (wired+wireless, USBC audio and speakers)
This is due to the precieved difficulty level:
- Connect 8 Tetrinsics together and have the master Tetrinsic connect to host through USB.
- Yeah it wasn't planned, but having a tiny microcontroller with built in USB functionality is a feature I didn't even know I wanted until it was a valid option. This allows the Tetrinsics to be fully self sufficient
- Connect 5 Tetrinsics to a BLE device, battery charging circuit, LEDs(?). Then get that system to connect to another set, merge the combined input values and send that to the PC.
- 3 to 5 are technically just nice-to-haves
#Tetent TestCut [gd0139]
So this device is basically a non-split, fixed-tent, minimum viable product (MVP)Tetent. Just like I don't need the #Teti [gd0022] case printed to use my PC (yeah it's been over a year and it's still just living on the motherboard box), I don't need a wireless split to benefit from the Tetent layout. Like I've said before, Tetent is supposed to speed up all projects, so it's better to get an MVP and use it to finish itself than use yesterdays tools all the way to the end.
The "test" part of the name is probably self explanitory, but the reason "cut" is in there is because I want it to look a bit like it was cut out of a block of marble/granite with its straight, geometric edges. It will be inspired by the below keyboard I really liked the look of whilst I was doing the "Why hasn't [Tetent] been invented yet?" research rounds.
You could also think of it in terms of "testbed" + "shortcut" merged together.
I haven't specified if there would or would not be audio. Without the split, it sounds straightforward enough to do. It will be wired though. I also might need a capacitor store since there'd be 8 motors on 1 USB port. Hopefully, dedents and virtual stops don't require amps of power.
Even before these concerns/worries, I've been thinking of making TestCut because the tenting part of Tetent is still an unsolved issue. I think the most ergonomic solution are thigh straps so that the arms are in this desk-free state:
The cons of the roadmap
The only real one I can think of is money related, but I really shouldn't be sacrificing months of potential progress on multiple projects just because I wanted to save £10 on my AliExpress order 😂 (If the current GBP:USD convertion rate trend is anything to go by, I might actually save money).
Other than that, the idea that "I've already got something that works, so why should I finish the project?" is a mentality I have to avoid.
-
[A] Details before 5th Oct 2022
10/05/2022 at 00:13 • 1 commentI'm just archiving the text in the "details page" here because I want to refactor it.
Abstract
I needed a new character input method that satisfied most or all of the requirements: - Easy to learn (research unveiled that stenography/charachorder is slow to learn to a usable level), - Small enough for use with a smartphone, so that I didn't have to learn a mini and regular layout, - Max theoretical of over 240wpm, ideally 320, - LED backlit, - 1 handed mode, - Wireless and wired, and - Usable with fingernails. I had doubts that a valid solution could exist, but I soon found out about double-action switches (switches that do 2 things depending on how hard/far down you press them) and a potential solution was found, which could even exceed my requirements. Eventually, I refined the conceptual idea, making it even easier and faster to learn and type. The only thing missing are the backlit LEDs because multi-action, motorised belt switches are just BetterTM.
The input device
Tetent can be used single-handedly or dual-wielded. The secondary (right hand) Tetent appends its characters to the primary (left hand) Tetent. It is also ambidexterous. Tetent uses the Tetrinsic Switches [gd0041] which allows for software determined actuation force and haptic feedback adjustment, meaning that buyers remorse on getting too light/heavy/linear/tactile switches is a thing of the past. They're inspired by the SmartKnob View but I only considered it because of this keyboard.
Learning difficulty
The OLED on the side is used to show finger position, a list of actuation points under the last moved Tetrinsic, train while typing and search for macros, hopefully reducing the gradient of the learning curve.
I think that the feature that's really going to cut down the learning curve are the motors in each #Tetrinsic [gd0041] key that will be able to move a users fingers to the correct position. I hope to implement things like simon says and typing ghosts.
Software adjustable sliders
The keys can also be used as sliders, allowing for easy adjustment of analogue settings like brightness/volume.
- Using 2 sliders controls the XY of the mouse cursor, meaning that an additional mouse is optional. GUI's that rely mainly on straight X and/or Y mouse movement (eg a list of buttons) no longer require extra fine motor skills.
- Because of the BLDC motor, you can simulate
- an etch-a-sketch (infinite slide),
- a trackpoint (spring back to centre),
- stylus (end of X slider = mouse as far right of the screen as possible) or
- an air hockey puck (etch-a-sketch with momentum/inertia).
- Because of the BLDC motor, you can simulate
- 3 sliders are used for 3D translational (useful for webpages) or rotational movement, with the thumb toggling between them.
- Obviously, 6 sliders can be used as a SpaceMouse alternative.
Theory
Old method using 4 zones and 3 actuation levels (my initial idea of Tetrinsic)
For fast English typing, the original idea was that characters "a" to "zz", as well as "0" to "99" have their own chord on the keyboard.
To write "a.keyboard.readChar() {", where the solid bullet point is the start of a chord on the left Tetent and the hollow bullet point is the right one:
- "a."
- "ke"
- "yb"
- "oa"
- "rd"
- "."
- "re"
- "ad"
- "ch" + [shift before] thumb button
- "ar"
- "("
- ")"
- "{" + [space before] thumb button
It'll look like this on screen:
- a.
- a.keyb
- a.keyboard
- a.keyboard.
- a.keyboard.read
- a.keyboard.readChar
- a.keyboard.readChar()
- a.keyboard.readChar() {
Or, for faster speed:
- a.ke
- a.keyboa
- a.keyboard.r
- a.keyboard.readC
- a.keyboard.readChar
- a.keyboard.readChar()
- a.keyboard.readChar() {
The keys have zones set by software. The default was 4 zones, 3 layers for the fingers and 2 zones, 3 layers for the thumbs. 5 zones would allow for 4095 unique chords, and more zones on the thumbs could allow for accents in other latin-based or romanised languages.
It seems that my leisurely simulated chording speed is 3.8 chords per second and focused would be 4.5 (25% increase). This is similar to my leisurely to focused typing speed of 50wpm -> 60 (a 20% increase). I estimate that alphanumerical chording speed at 3.8 chords/second will be 220wpm (182wpm without spaces) and 4.5 chords/second will be 262wpm (216wpm), assuming spaces average 17.6% of all characters in text (value obtained using project logs I've written). Only using 1 hand will halve these numbers.
New method with the pressure sensing in Tetrinsic
I had the idea from the SmartKnob to use force sensors and haptics instead of physically-moving keys to allow for any number of actuation points. This allows for "a" to "zzz" while reducing the amount of keyboard layout a user needs to learn.
The layout uses 6 zones and >=5 actuation points for all alphabet characters and common symbols. The idea is to use the motor to help with finger positioning and weights of 40g to 100g with the actuation points 8g apart.
Using the same example as in the "old method", this is what "chording" would look like:
- a.key
- a.keyboard.
- a.keyboard.readCh
- a.keyboard.readChar ()
- a.keyboard.readChar() {
This new method allows for up to 50% faster chording (and perhaps even more due to the lower mental latency). This means that if I can get a paced 3.8 chords per second, I could be typing at >330wpm for a good amount of time and not the <15 second bursts I've seen on YouTube. I only need to perform 1 chord a second to exceed my QWERTY typing speed (85 > 60).
- Using 2 sliders controls the XY of the mouse cursor, meaning that an additional mouse is optional. GUI's that rely mainly on straight X and/or Y mouse movement (eg a list of buttons) no longer require extra fine motor skills.