-
[M] Sketch around Tetrinsic Toroid
04/28/2024 at 14:27 • 0 commentsSo this is the wireframe sketch of the proposed Tetrinsic strategy. The belt has just been approximated, but the actual belt path would go though both rectangles in the centre plane (which represent the cross section).
The plan is for the belt to roll on SLS printed, flanged 30T spur gears, and then connected to a crown gear (which I've never heard of until today) via an 18T gear. All gears are 0.5M.
Additionally, addressable LEDs exist in a 2.7mm COB strip which has 160 pixels per meter. The plan is to have one strip on each side of the belt. I'd consider this a "side-lit" approach.
I've been able to find an Alibaba supplier of a 4-pole, 50mm long, N35 magnet which is $7/ea for 10pcs, along with $64 UPS shipping to the United Kingdom. Thus, the magnet is about £12.30/ea after VAT. For now, I'm going to try the 2x40mm N42 magnet approach.
I also believe that I should be using the line / terminal resistance for calculating the minimum drive voltage and 0RPM wattages, as at least 2 coils will always need to be powered in a 3-wire BLDC to complete the circuit. The power numbers look steep but also more believable.
VMOT = 5V seems like a good value as the LEDs also need this voltage.
-
[R] 1656 18W BLDC and controller considerations
04/28/2024 at 04:08 • 0 commentsI asked to see the datasheet of the $32 motor and this is what I received:
The phase resistance is 1 / 2 of the terminal resistance (the resistance between two terminals, I presume), so it's 9 ohms.
At this point in time, I'm also asking around for the rotor magnet and it's sounding like 1 pole pair is much easier to make than 2 pole pair:
It seems that Sinbad Motors has also gone with the 1 pole pair approach.
Additionally, the STSPIN32G4 is only a gate driver. Basically, I'd need to provide 6 MOSFETS to actually drive the motor, and that's a lot of traces:
It seems that the TLE9879 is similar in this regard:
I thought that all that would be integrated, like this HT32F65C40F:
Thus, it does seem that I'll just stick with the original controller plan of using tSPI, which would only need 3 pins since it'll likely be the only SPI chip on the PCB.
-
[E1][B][M][R] Custom 16mm Slotless?
04/27/2024 at 11:33 • 0 commentsFrom the centre outwards, you've got:
- 2.5mm shaft
- 2 pole pair magnet of 8mm diameter
- 0.4mm air gap
- 0.4mm spiral vase mode housing print (in PBT ideally, but ABS should be OK)
- The space for the copper (1.805mm)
- Coincidentally similar to the 1.85mm copper height in the 580KV motor.
- Tolerance gap of 0.2mm
- Outer lamination yoke that is 1.2mm.
- I opened up the 580KV motor I got to find out what size was used.
Copper foil?
Assuming
- a 0.06mm thick tape, of which 0.03mm is copper
- 90mm stator / rotor length
- 11mm on each end to connect the straights together
I got a copper tape length of 6060mm (6m) and a resistance of 12.1 ohms., which isn't great but kind of tracks compared to the 8.2ohm, $32 motor that looks like it's probably 55mm in total length and thus probably has a 45mm long stator. It obviously doesn't help that less than 50% of the CSA is conductive.
Copper wire
For the more traditional approach, it looks like there will be at least 15 * 8 = 120 turns (or 60 if I decide to double-up) using 0.2mm (32AWG) wire. Estimating for the extra space filling, it's probably going to be at or close to the 130 turns in the paper. It would also seem that a 3-pole-pair rotor would be ideal for this design.
Assuming that the average length to connect the straights is 9.4mm and that 138 turns are used, I get 27434.4mm (27.4m) per coil, which corresponds I get 14.7 ohms.
Is that high? Maybe? However, if this design -- with rotor of length 90mm and diameter 8mm -- can match the 75mN.m obtained with the paper's motor (rotor of length 25mm and diameter 11.5mm), The minimum driving voltage and power consumption would suffice:
If anything, I worry that the Kt would be too high and the minimum drive voltage would be lower than 6V. Additionally, manually winding dozens of coils for over 100 turns each sounds like it would be laborious. I could always double up the 0.2mm wire, but it seems that it would just be easier to work with 0.25mm wire:
Here, it seems that at least 80 turns would be present, probably something like 82. If my tolerances are good, I could probably fit a 7th row and perhaps get to 90 turns. For 82, the total wire length is 16301.6m and the resistance is 5.4 ohms.
Quick finger tests
So, just to make sure I'm on the correct page, I put my scale against the wall and pushed my fingernail for Finger2-4 (see below) and the max reading across the tests were about 300g, thus I'm correct in aiming for 30mN virtual-endstop force.
Secondly, I played some music, slowed down so that 1/8th of a beat corresponded to the time it took my finger to move 50mm. This is because 16 x PI = 50.3mm. Then, I used an online BPM tapper to get 1/4th, which was 220BPM. Thus, the top RPM I expect to see on the motor is >= 440.
Tube instead of laminations?
The reason I want to know the top RPM specifically is because eddy current losses are a result of how fast the magnetic flux is changing. Considering that, unlike 99.9% of motor applications, this motor is working at no / low speeds of essentially 500RPM max (unlike the 10K that the authors of the paper called "low speed"), I'm wondering if the eddy current losses will be low enough to use a tube of magnet-permeable material.
Stainless Steel 304 could be a good choice, as it's readily available and, unlike things like mild steel, doesn't corrode in contact with water. I don't know if magnetic PLA is more or less magnetically permeable, but stainless steel probably would do a better job of dissipating heat.
The paper says that the magnetic "air-gap" is essentially from the rotor magnet to the outer yoke and thus should be minimised, and that it's a balancing act between that and winding resistance. For this reason, and the assumption that stainless steel 304 is probably less permeable than the sheet steel used for traditional cores and thus needs more CSA to contain all the flux, OD16x1D13 seems like a good choice. It looks like I'd be able to get 75 - 78 turns:
Assuming that (due to the thicker wire, and the fact that there would probably be a curve and not a straight line like I assumed further above) that the average length between the straights is 13mm, I get 15450mm of wire for 75 turns, corresponding to 5.3 ohms.
Sketching in 3D
Thus, the rotor length drops to 50mm, thus 9450mm wire length and 3.2ohms. Additionally, this custom motor could potentially be directly compared with the $32 motor, similar to how the authors of the slotless paper compared their motor against a reference. It thus may make sense to use a 3mm shaft over a 2.5mm one (chosen for the smaller bevel gear variant) so that they're otherwise interchangeable.
I've create an RFQ on Alibaba for the rotor magnet, and on AliExpress, I've coincidentally found multiple sellers of 8*3.05*20mm diametric (2 pole) magnets:
I looked into eddy currents, and it doesn't look good for the solid steel strategy:
Additionally, I'd have to cut the tube down to size. On the other hand, because of the overmould, it would be possible to instead stack multiple ferric rings/toroids to get the length desired. This stuff is used for things like transformers and inductors, and thus probably has the magnetic permeability and saturation thickness required for the job.
With 0.18mm wire, it's possible to have a phase resistance of 7.5 ohms from 78 turns and an assumed average straight-to-straight wire length of 13mm:
This is good, because the minimum drive voltage is 3.08V, meaning that I hypothetically should be able to use a 3.3V source for everything.
I think the Tetrinsic Toroid is a fitting name for this motor:
As you can see, I'm barely within the maximum target limits of 17mm x 21.8mm, considering that the FSR is 0.25mm and the UHMW tape is probably similar. I'd need a 1.8mm thick belt to stay within limits. As mentioned previously, these limits are so that a finger spacing of 18mm and a body height of 25.4mm can be obtained.
I'd also like to see if I can fit the hall sensors directly inside the motor, since the rotor is a 1pp diametric magnet and all, and so it makes little sense to then stick another one just so that I can get a Sin/Cos readout.
N52 is only about £3 more (so £1.50 more per motor), so I believe it makes sense to go with that. On the other hand, the video below states that magnet strengths come in a range and N52 is the hardest to get consistent, so it might be better to go with N42 since this rotor would be comprised of 3 magnets.
BOM
Thus the incl-VAT cost is already in the ballpark of £15.50 for the magnet, yoke and coils, and a solution will likely converge at under £15/each for the shaft, bearings, printed parts and hall effect sensors. I might also need glue to keep the ferrite toroids together and/or seal from liquids.
Depending on length considerations and the space needed to terminate each end of the motor, I might have to go down to a 40mm stator, which has the benefit of reducing the BOM by £3.84.
More modelling
Surprisingly, it didn't take much effort to model in the pseudo-coils:
-
[E4][R] Frameless VS Slotless BLDC
04/26/2024 at 06:34 • 0 commentsIntroduction
So I went over to the SmartKnob View discord to try and find some answers on motor options. The user K(at)B (the one behind the Ratchet H1) noted the potential implications of airlines likely not wanting to take belts that emit magnetic fields. I also had the concern that these magnetic fields are likely to interfere, especially if a Tentrinsic for the thumb is used.
He then suggested this:
In practice, I'd expect to need 4 gears, not the two shown in the 3D sketch; 2 plastic 0.5M bevel gears and then 2 more gears that transfer the load to the pulley for the belt. He also suggested FSRs, and there happen to be long ones for an ok price, especially since an MCU ADC would be able to read it instead of requiring a fast but expensive 24-bit ADC.
This video shows that scissors can be used to cut the FSR to the required length if needed:
[Apr 27: Edit 3]
It seems that there's an even more ideal sensor, that works in the 20 - 500g range and is 10mm wide, which are both attributes that I'm looking for. There's also a schematic which essentially says that I can put this in a voltage divider along with a 10kOhm resistor and feed the output voltage to an MCU.
[End of Edit 3]
Thus, this was the start of searching for my motor options. Since 18mm Tetrinsic spacing seems more like "the standard value", and many motors seemed to be 16mm diameter, it makes sense to set the new maximum width of a solution to about 16-17mm.
Things I learned about motors
I think it's best if I fist provide some reference material that better helped me understand what to be thinking about when looking for a motor:
- Lower KV motors are designed to be run at lower speeds and more likely to have minimal cogging.
- KV seems almost irrelevant for coreless / slotless motors that have 0 cogging.
- Torque for this application needs to provide 100 - 150gf continuously and over 300gf peak.
- This is because the former is needed when emulating an analog stick. This site suggests that 75g is "standard", 100g is "hard" and 150g is "strong". Due to potential frictional losses, it's probably better to slightly overspec the standard torque, and that's why I'm aiming for 100gf minimum.
- The latter is to emulate physical limit stops, and isn't expected that the motor will need to produce this torque for more than about 500ms.
- Torque is proportional to current. That's it. Just current.
- It was a bit surprising when I found this out, hence the emphasis.
- The voltage determines the maximum RPM of the motor. This is due to back-EMF generated when the motor is spinning. If it's not spinning, there's no back EMF.
- The voltage and phase resistance determines the max current that can be sent to the motor. It seems that the aim is to get a low PR as that means lower voltage, which results in exponentially less power used.
- It seems that the torque constant (Kt), mN.m/A, is more important than the voltage constant (Kv).
- Smaller wire = more coils = lower Kv, but less current can go though said wire so the effect is cancelled out and thus Kv has no real connection to Kt.
Frameless
I noticed that, from looking at motors found for the Smartknob View, there were a few motors that were shorter than 15mm. The 2204 260KV motor, for example, is 13mm. However, looking at images inside the motor, it seemed that there was a notable amount of unused space inside. Some time later, I came across frameless motors, where just the stator and rotor magnets are sold:
Long story short, these are the only options available, but the good news is that I just need the 1 solution and the WK2806 seems to provide!
- Phase resistance: 5 Ohms
- Kv: 121
- Nominal current: 0.81A
- Nominal torque: 600nM.m
- Stall current: 1.22A
- Stall torque: 900mN.m
Now, you may be wondering "Those seem to exceed what you need. Why not go for the 2205?". Well the issue is that the ball chain has a minimum turning radius, and even if it didn't, the physical motor has it's own radius. This means that the chain is closer 2cm away instead of 1cm from the pivot. Hence, for 150gf, I need 300gf.cm.
The magnet rings for the 2205 and 2208 are 25mm and 34mm respectively and #Tetent [gd0090] will still pass whether its thickness is 31mm or 40mm.
I am in contact with a different seller of the same frameless motor on Alibaba and, currently, the deal seems to be $6/pc and $50 shipping, which after tax works out to be cheaper for 10pcs than through Aliexpress. I feel like the shipping is a bit steep and I should ask if there are slower but cheaper options. The seller did offer to offer to add 2 spare magnetic rings as it's brittle.
I asked about the cogging performance and I got a video of the fully-assembled motor (PM2806), which uses the "magnetic disk" version:
The disk has slightly more torque and the ring is smoother, so i've been told.
It's expected that the ring magnet would have even lower cogging.
Doing some quick maths, it seems that this motor has a torque constant of 75mN.m/A. When generating 20mN.m of torque (to produce approximately the same force on the belt as the coreless motors below), it's expected that this solution will use 0.356W.
Slotless / Coreless
It doesn't have to be coreless/slotless, but it does seem that all the motors I saw were one of these types. It's beneficial though, since there's inherently no cogging for these types of motors.
I've seen motors as long as 59mm and as short as 36mm, and I believe that longer motors have a tendency to have better torque numbers. This is where those more-realistic torque requirements come in, as there isn't a motor that just happens to have 30nM.m of continuous torque.
For #Itinervate [gd0151], I believe that the enclosure thickness needs to be 24mm or less, which includes a 1.2mm top and bottom wall and 1.2mm of tolerance. Thus, the Tetrinsic to solve for this soluion needs to be 20.4mm or less, which might barely be possible with a 16mm diameter motor and double-sided belt. I think it's probably easier to aim for a round 1 inch (25.4mm), thus Tetrinsic would need to be 21.8mm or less.
An ideal candidate I've found is this 1656 motor:
I asked, since the page also specified 2.67 ohms as a resistance, and they said that the phase resistance was up to 2.9 ohms.
Something to note is that the rotor inertia is 0.86 g.cm2, compared to 51 g.cm2 for the WK2806. Many other 16mm diameter motors had similar values, suggesting that it would be a lot easier for this form factor to produce haptic vibrations.
The above motor has the highest torque constant I've seen in my research, at 20.8 mN.m/A, suggesting that I'd need 480mA to get 10mN.m, resulting in only requiring 0.668W. On the other hand, if I provide 5V to the motor, a maximum of 1.72A will flow though the coils, producing 35.7mN.m of torque and consuming 8.6W. Other motors I'm finding can't seem to get that kind of power consumption when generating 10mN.m. For example, the 165603 BLDC uses 3.5W and it's shorter 164603 uses 5.9W.
Unfortunately, I asked about the price and the seller said it's $50/ea with "cheap encoder", and $34/ea without. It also has a brass screw which I don't need.
When I asked if there was a motor without the screw and with a high torque constant, the seller suggested another motor that is $48 with / $32 without the encoder.
- Diameter: 16mm
- Torque constant: 28.43 mN.m/A
- Peak torque: 27.86 mN.m
- Phase resistance: 8.19Ω
I predict it would consume 1.01W at 10mN.m. Its stall torque is 28mN.m and stall current is 0.98A, which is a beneficial factor if driven with the STSPIN32G4 (mentioned further below) that has a 1A peak current.
On AliExpress, there was a 58mm motor but it's unfortunately OOS:
[Apr30: Edit 4] It seems that this is the 1659RB from kegumotor, which is $65/ea when ordering in quantities under 100pcs:
[End of Edit 4]
Other motors I've found on Alibaba seem to all share a 3mm diameter shaft too, so I could use the S163A if geometry allows:
Speaking of gear's, I imagine that there's probably enough space for a 1:2 gear reduction between the bevel and output pulley, which further helps and means that I likely just need to look for a motor that has 50gf.cm continuous and >=150gf.cm stall. The output "pulley" might actually just be a large spur gear.
Making a slotless BLDC?
I've also found the paper titled Low-cost slotless BLDC motor designed for mass production, published in 2021, where it describes how to go about making a 19.4mm diameter slotless motor. 3 phases are wound on a plastic housing using 0.21mm wire:
A notable thing the mentioned is that overmoulding is not needed to prevent liquids from touching the coils. This is important in their application because this motor is for a fuel pump. It's important for Tetrinsic as it means that water resistance could still be on the cards.
One slight drawback they mention is that their motor needed to be slightly longer than the reference slotted motor, but that's not an issue in this application. I'm planning for a motor around 100mm in length.
STSPIN32G4, the chip that could do it all?
K(at)B had also suggested the STSPIN32G4, a 128KB flash chip that could potentially run everything from hall and FSR A/D conversions to BLDC FOC output in a 9x9mm package. As I've learned from creating the first Tetrinsic PCB, traces and vias are far from negligible in size, and thus multiple chips will take up more area than one larger chip.
I thought that the min supply voltage was a bit low, but I forgot that any BLDC controller would have its own resistance, and it seems it's in the range of entire ohms. Since power = voltage * current, and the max available is 1A, it means the power is directly proportional to the lowest voltage the motor can run with. If I aim for a 6V motor with a 1A peak, I'd need the phase resistance to be sub 4.4 ohms. The $32 motor would be driven at 10V (9.6V plus unaccounted-for resistive losses).
Conclusions
At the moment, the frameless motor solution is almost a solved problem, but the 16mm motor situation seems a bit shakier. However, I also have to keep in mind that the frameless motor would have cogging to an extent that some kind of algorithmic nullification would be needed.
For Tetent, the idea using the frameless motor is to go back to the tightrope design, but this time CNC-mill a track (instead of trying to deal with tubes, printed parts and the flexible nature that arises from them) and then stick these nifty 160pixel/m LED strips on the underside:
Then, a LS032B7DD02, 3.16" MIP LCD would be used so that I get the cool animations whilst not sacrificing power (thus it's more likely to actually be kept on), especially in office-lit, window-lit or outdoor environments. The active area of the LCD is a bit shorter than I'd like, but I can just slope the inner walls so that the active length of the Tetrinsics (which is about 50 - 60mm) isn't reduced because of it.
I expect that a custom Tetrinsic would have to be designed for the thumb. If using the slotless strategy, the motor would be in the same orientation as the finger Tetrinsics (so no bevel gears needed), allowing for a hollow interior so that they can fit though. Because of this, it might make sense to try and keep any gear-train as close to 1:1 as possible.
For reading the motor orientation, I'm likey going to use a diametric magnet on the shaft and 2 hall effect sensors oriented 90 degrees, which seems to be the way it's done on 6V brushed motors with encoders:
At the moment, I can only imagine a solution for using the FSR for the slotless strategy since it can be placed directly under the belt and held in place with double-sided tape. Unlike the frameless strategy, I wouldn't need to counteract the force due to the weight of the track with a BMI160 accelerometer, nor would I need the 24-bit ADC. If the flash size isn't an issue, this whole project could potentially run out of the STSPIN32G4.
For these reasons, as well as more likely to allow for a solution for more projects ( #Tetent [gd0090], #Tetent UMPC [gd0149], #Itinervate [gd0151] ) and not just Tetent and #Tetrescent [gd0150], the slotless strategy feels more favourable than the frameless strategy.
In terms of commercial offerings, that one $32 motor is the most fine-tuned for this strategy. However, if I want to try for lower costs and power consumption (and thus heat dissipation), I'm going to need to research into iron laminations and rotor magnets to see if those are available at low cost. If they are, I may go down the path of a custom BLDC motor. I'm slightly more concerned about the iron laminations, as I probably could just stack shorter polepair magnets into a longer one. On the other hand, it seems that the reason why the iron is laminated is to reduce current losses. Perhaps it's possible to use a material where iron is suspended so that it increases magnetic permeability without being conductive, such as the "magnetic iron PLA" used in this 3D printed motor.
Power consumption with the 1.6ohms of the MOSFETs inside the STSPIN32G4, is expected to be the following:
-
[R] Coil All Around belt linear motor?
04/23/2024 at 07:33 • 0 commentsThe title is a play-on-words of GAAFET, standing for Gate All Around, Field Effect Transistor.
Now that the #Coaxial8or [gd0144] is in a bit of a break period as I wait for the new heatblock design to be fabricated and arrive, I have been looking into Tetrinsic again. I still feel like if I had to choose 1 single project to "get past the post" (i.e. design, manufacture and implement into my daily life), this is it; unlike 3D printers and XR glasses, I unfortunatley haven't found enough information on the internet that suggests that some company would come out of "stealth mode" with a sufficient offering, and even if one did come out today, they'd most likely say it will start shipping "in months" but implications would mean that "in years" would be more accurate. On the other hand, I haven't been able to indirectly find this project through my search queries, so there could still be similar projects and solutions that I haven't come across yet.
Anyway, I came across this video about linear shaft engineering:
My strategy I thought up back in September 2023 was the U-shaped linear motor, just with the coils and magnets swapped around. This aleviates the cooling drawback they mentioned, but understandably still has the drawback they mentioned where only half the magnetic flux generated by the coils used (the other half is in the opposite direction).
The video states:
Force (N) = Current (A) x Magnetic Flux Density (T)
Thus, for a fixed current, more force is generated with a higher density. This also suggests that, for this application, it's better to drive the system with as low a voltage as possible.
Looking into the DRV8311, they're just simple H bridges at the end of the day so it's not like the chip is doing anything fancy with the input voltage. Additionally, I found these answers on stackexchange. While doubling the voltage will double the torque, it would quadruple the power required. Thus, since the power for each Tetrinsic is limited to prolong battery life, and I mainly need the torque in very low - low speed situations (e.g. sub 300Hz haptics) higher voltages are actually worse, as are very thin (0.1mm) wires used to make the coil. Instead of 12V, it now sounds like it would make more sense to run everything on 3.3V, which would still allow for up to 16.5W per Tetrinsic.
Additionally, I've read bits and pieces that should lead to improved performance, but this answer brings everything together. For example, it did seem that a thicker magnet would increase strength when reading Doubled Forces, which the user "cinaral" confirms. They also say that the thickness of wire -- thus its current carrying capacity -- roughly balance out with the amount of turns that can physically fit in the space, which sounds like a foil coil is still the more ideal strategy from a heat dissipation and manufacturing standpoint.
As mentioned in the video, magnets emit their field in all directions. What wasn't mentioned, but probably just as important, is that the coil has it's highest flux density in its centre:
The video proposes a shaft where like-poles are pressed together with no airgap inbetween:
This configuration is probably to force the flux outwards from the magnets:
It likely is also so that the shaft doesn't just act as one massive magnet. With this in mind, the plan is to move from a 10x3x2 to a 10x3x3 magnet so that I can place them in this configuration.
Manufacture
I already knew about linear shaft motors (but not their benefits over U-shaped ones), but the issue is that I still need to actually make a belt or a motor or both. With the U-shape solution, both of these can be made separately, wheras with a coil-all-around solution, one would have to be made in-situ.
Additionally, I need to consider how individual magnets will come together to form a belt in the first place. Since the magnets are relatively small and the belt also needs to slide across the stainless steel tubes with as low friction as possible, a potential idea is to stick the magnets to UHMW tape which acts as the belt, which seems to have all the features I would need.
The main concern is that, due to the repulsion forces of the magnets, the flat sections of the belt are expected to inflate outwards like this:
Each magnet will also be trying to push away at each other with up to 700g of force, though that number is likely to be closer to 500gf, which likely will increase the fabrication difficulty. The benefit is that the minimum turning radius can likely be small.
Another solution is to tape both sides so that the living hinge is in the middle:
The benefits are that the straights are flatter and the gaps and the potential to use a grippy outer tape will reduce finger slippage. The drawback is that the magnets are spaced further apart (potentially reducing max torque) and the minimum turning radius is more limited (both due to geometric limits and because the repulsion force will be much stronger on the side closest to the pulley.
It's likely still possible to go with the 3D printed vase-mode strategy, whereby a case for the magnets is printed in TPU. In this case, the coils will have to be wound around the belt (thus I won't be able to outsource them).
-
[A] Details page before 14 Jan 2024
01/14/2024 at 12:46 • 0 commentsDetails
This project is intended for #Tetent [gd0090], #Tetrescent [gd0150] and #Leti [gd0149]. Tetrinsic is the "input element" and in the same category as a keyboard switch or controller joystick.
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]
Examples of Similar Products
I found this video which shows how the slider would ideally perform, just that you can press down on it and it can be set to allow movement "infinitely" in either direction.
Tetrinsic is the merge of the above motorized sliding potentiometer and the SmartKnob View:
The visible area is designed to be as minimalist as possible, so that things like an LCD backlight can be used for designs:
The cool thing about Tetrinsic is that you don't have to remove a magnetic top layer (as seen in Flux) or hotswap out the switches (on a more traditional keyboard) if you want to change tactility. Just tune it to your precise tastes in software.
Concept History
Tetrinsic Concept3.2X2 (interwoven, dual BLDC motors)
Unfortunately, Concept3.2 had a turning radius that was too ambitious. Thus, on August 10th 2023, it was decided that a redesigned Tetrinsic with dual motors and the ability to weave the Thumb Tetrinsic around the FingerN Tetrinsics would be the best strategy forward. This also allowed anything to be placed inside through the loop.
From Aug 25th, the focus has been on designing for #Tetrescent [gd0150], where a solar cell is placed inside said loop.
Tetrinsic Concept3.2 (single 3.2mm chain, dual TFT displays)
After creating the new Tetrinsic PCB that uses the ESP32-S3-MINI-1U, on June 30th 2023 I eventually decided to increase the size of the ball chain to 3.2mm, make it so that there is only one path that is exposed and, to increase the usable length : body ratio, doubled the screens. This is the first concept CAD model that was electromechanically complete, made on July 18th 2023.
Tetrinsic Gen 2X2 (smooth top wedge shape)
Development started on Jan 12 2023 and moves the components so that the load cell is parallel with the LCD and that the motor does not protrude the top surface. The aesthetic is further improved whilst improving the ability to slide into a pocket (for TimerSpy). This was first called Tetrinsic Concept4.
I then spent subsequent weeks turning this concept into a more fully-designed prototype, and added a photovoltaic solar cell variant. This concept was using 2.4mm ball-chain that slid on 1mm diameter stainless steel tubes. The above is more-or-less as far as I got before I started work on the PCB. Unfortunately, the design got a bit too large such that I couldn't come up with a solution for #Tetent TimerSpy [gd0136].
Tetrinsic Gen 3X1 (wedge shape)
The shape is to allow Tetrinsic to be mouned on the back of my hands and slide into pockets for TimerSpy and fit into the square prism shape of TestCut. A notable improvement is that an off-the-shelf load cell can be used, saving on build time, increasing precision and reducing displacement.
Development started from Jan 4 2023.
Tetrinsic 2.0 (LCD backlit, dual 2mm ball chain)
Tetrinsic 2.0 is an internal name to refer to the redesigned version I started developing from Dec 26 2022. It's not actually the second version of Tetrinsic, since I haven't actually made a first one yet. Think of it as Tetrinsic 2.0mm.
This redesign should bring advantages such as lower sliding resistance, shorter allowable finger offset distance, shorter height, a full-bridge-configuration pressure sensor instead of an iffy half-bridge, a much more popular microcontroller (RP2040 vs M032) (thus, better software support) with more RAM and FLASH memory and, most excitingly, a background display.
I should mention though that you're unlikely to see the tops of the Tetrinsics during use.
Tetrinsic (2GT belt, single BLDC motor)
When I started #Tetent Timespy [gd0136], I came to the realisation that the 5 seperate buttons per finger row solution I was trying to obtain was suboptimal.
On Sep 14 2022, I changed the design to center around a mini BLDC motor connected to a 2GT belt that also acts as the keycap surface. This was inspired by various open source projects (namely the SmartKnob View) and uses the motor and force sensors to simulate different sliders and tactility, as well as make the weight and amount of actuation points software adjustable.
The motor is also used to reduce the learning curve as much as practically possible, as my main question I thought of when learning to touch-type was "Where is the key? What finger do I use to press it?"
Tetwin (double-action switches)
Finding out about hall effect switches and their potential double-action feature, I started researching double-action switches.
Small tactile switches (0.6N, 1.6N) do exist, but from pressing my camera's shutter button, their second actuation force is too high for all but the thumb. I discovered Riskable's Void switches and how the design could allow for adjustable actuation force without the need for an electrical connection to the keyboard PCB. Magnets seemed to be quite cheaper than buying 0.8N and 0.5N tactile switches, and allows for LED backlighting because the components needed are smaller.
-
[E2][X] Plotting finger movements
12/23/2023 at 20:56 • 0 commentsSo I spent maybe 2 hours setting up the groundwork of this excel spreadsheet and then maybe 15 minutes actually puttinging in some values. This spreadsheet assumes I'm using #Tetrescent [gd0150] and in a mirrored (aka vertical) mode where for both sides, the placement of characters is Finger1->Finger4.
I've tried plotting the position and force level in the black chart, and the change in position and force level in the white chart. For the most part, I can't really gather any insights so far. Perhaps it's just because I've only input the first sentence to see if I should continue or not.
The fanciest part of the spreadsheet is the use of a lookup table, but the command LOOKUP didn't work. The good news is that we now live in the advent of AI:
In this spreadsheet, I assume that a blank field for the char columns means no input, i.e. 0 force from fingers. Thus, my equations are:
For position X: If the char field is blank, use the previous position (I'm just lifting my fingers), else find the corresponding position for the char: =IF(ISBLANK(E4), B3, INDEX($AS$2:$AS$56,MATCH(E4,$AR$2:$AR$56,0))) For force F: If the char field is blank, the force is 0, else find the corresponding force for the char: =IF(ISBLANK(E4), 0, INDEX($AT$2:$AT$56,MATCH(E4,$AR$2:$AR$56,0)))
for the fingers, and
For position X: If char is blank and the previous position was 1, go to 2, else if char is blank, do the same as the fingers. =IF(AND(R3=1,ISBLANK((U4))), 2, IF(ISBLANK(U4), R3, INDEX($AS$57:$AS$70,MATCH(U4,$AR$57:$AR$70,0)))) For force F: (similar thing to the position calc and finger force calc: =IF(AND(R3=1,ISBLANK((U4))), 2, IF(ISBLANK(U4), 0, INDEX($AT$57:$AT$70,MATCH(U4,$AR$57:$AR$70,0))))
for the dynamic spacebar thing (which could be the Thumb or Finger5). This is because the finger (in this case, Finger5) rests in the below white box of the layout:
The user pulls back to column 1 -- similar to a trigger or that sliding, on-off toggle thing on the PSP -- and then the motor exerts a force to push the finger back to column 2. This allows me to have a virtual button without having to push down on the Tetrinsic. It's similar to how I envision the datahand-inspired layout to function.
Now, the reason why I typed the phrase out first is so that I could also get pseudorandom typos integrated into it. For this monkeytype test, I had 2 errors. The first one has been recreated here, taking the Tetrinsic layout into account:
[24 Dec: 20:00]
So I've spent a while learning things like the =OFFSET command, so that I could have a dynamic start-end point for the charts without having to laboriously edit tens of values. BingChat initially generated code for =INDIRECT, but then I started moving colums around to make the spreadsheet more readable and the positions didn't update in the charts.
I've moved things around so that everything is a lot more readable. Hopefully, this gives those finding out about this project a better understanding on how the typing system works.
For both of these, I've assumed I'm proficient enough to realise when I can reduce finger travel, such as being able to keep Finger2 on "O" between rows 76 - 78.
From doing this, I was able to make some slight optimisations to the layout, which can be seen below:
It's still kind of tough to gather many insights from the charts, but at least it shows what I'm interested in for this study. The ideal layout solution is one where the distance-force chart is as close to what Right Finger5 currently is:
[21:30] I've done the next quote, which was a bit longer:
This is how it chords out:
As I was doing the chording, characters 'Y' and 'W' stuck out, as well as the fact that 'X' is in a prime real-estate location yet was completely avoided. Since 'W' is only force level 1 as well as being one of the only characters I need to reach on position 5, I left it in place; I thought it'll at least be a nice hop to break up the monotonity or something. I've swapped 'Y' and 'X'. Thanks to that, the distances travelled between steps is mostly constrained to 2 or less. I've also swapped columns 3 and 4 for Finger5 so that there is a lower penalty for backspaces:
Here are the charts:
I found some use of the black charts as a heat-map of sorts.
Another insight I've had from this is that the finger utilisation is comparable, except the thumbs which can be explained; the persona I'm emulating is a user that mainly uses Finger2, 3 and 4, only using Finger1 to fit 4-letter syllables and words into a single chord. I thought Finger5 wouldn't be doing much, but I have been proven wrong.
-
[T] Linear hall sensors and water resistance
12/09/2023 at 17:04 • 0 commentsHall effect sensors
Firstly, I want to mention that @dekutree64 commented in this log from #DIY Mech/Exoskeleton suit. about his experiments on using 2 hall effect sensors in this form thread. The original poster (OP) of the thread mentioned a drawback was a "computational intensive trig operation" but deku responded with a link describing an approximation that is correct to 0.28 degrees. Now, deku's been able to get the below results, with 3.3V circuitry:
Thus, I belive I'm going to go ahead with using 2 linear hall effect sensors for positional tracking.
Waterproofing Tetrinsic?
Secondly, I want to add water resistance to the list of supported features of Tetrinsic.
I've been mulling over going the extra mile to obtain a higher solution coverage. Just as I aprieciated water resistance on full-android smartwatches, I believe water resistance would further open up the applications that Tetrinsic could be used in (for example, writing a novel in a bath or jotting down sudden ideas in the shower), as well as increase resilience against day-to-day life.
The idea is simple, which is to encase the coils and UVC components in a resin transparent to UVC wavelengths if it exists. Something thermally conductive would be ideal.
For the load cell, a solution may be to coat the strain guages in nail varnish or a coating specifically designed for this application.
-
[T] Face-worn input device?
12/04/2023 at 22:53 • 1 commentI was writing this log and then something happened and poof it went, so I have to write it all again. I must embrace the saltiness I feel.
Moving on, I haven't been able to get around to learning how to set up and simulate electromagnetic coils for use in Tetrinsic. I just lack the time (and time security). This entire situation is a cyclic redundancy, as I want to use a Tetrinsic powered input device to research/design/document Tetrinsic.
Conceptually, the plans I've got for #Tetrescent [gd0150] meet or exceed my needs and wants for an input device, but there is one thing that is still missing and is one of the important ones: wearability. #Tetent TimerSpy [gd0136] was when I tried to solve this with a wrist or hand mounted solution, but that had its own challenges -- namely a) that I couldn't easily take my coat on/off and b) coming up with a solution where I could enter data with both hands was difficult. Now, it seems that Tetrinsic would be too large for such a solution anyway.
After starting my new Head Mounted Display (HMD) project, #Itinervate [gd0151], I started considering a head-mounted input device to complement it, specifically one where the active area is against the cheeks. The benefits I thought of were:
- My hands usually rest on my cheeks when I'm thinking.
- Each hand can reach both sides of the cheeks, as well as I can use both hands simultaneously.
- I could increase the scope of the project to include the idea of spacial audio headphones via multiple physical speaker drivers that I had a few months ago.
- I really want to be able to recreate the feeling of working under the speakers of a restaurant/store.
- I've paid close attention to the aesthetics of Tetrinsic when implemented into a potential design, which is important for something that would be easily visible.
- I'm not going to target for something "discrete" or "unnoticeable" because unless it's a pair of glasses or a mask, any item worn on the head is going to be noticed.
This is a roughly-scale sketch of what I was able to create in PowerPoint:
I intend for those diagonal bends to actually be a smooth curve, so the above is more like a low-poly rendition. I'm also expecting the trailing edge to get smaller (kind of like a comet). The grey lines are Tetrinsics that have at least 90mm of stroke length (to make sure that there's enough space for both my fingers and the electromagnetic coils). Since the middle white part curves downwards and becomes shorter than this distance, I've decided to make 2 of the Tetrinsics longer and terminate those at the top of the part that covers the ear. Then there are 2 dark grey lines which represent imitation Tetrinsics (similar to fake speaker grills).
I haven't yet considered how this is all to be mounted to the head as I want it to complement Itinervate, which I haven't yet made a concept for. All I know is that there are going to be 2 screens above natural eye level that come out from the centre.
-
[R] Electromagnetic simulators
09/20/2023 at 22:55 • 0 comments[20 Sep]
I've more-or-less have the mental 3D model of the new Tetrinsic concept, but I'm not modelling any of it until I've first set up and simulated some coils. I've got at least 360 of these I need to either create or buy from a manufacturer in China (since the MOQ is likely high enough for one to take the order). I'd like to know the performance of both a foil and wire coil before I continue further.
Ideally, I'd also like to simulate so that I can find the optimal location for the hall-effect sensors.
All this means that I need to find and learn how to use a new simulator, as Fusion 360 doesn't do this.
EMWorks
The first thing I found was a webinar on linear motors:
It seems that the force exerted on the mover is what I ultimately want to find out.
The price of this software is "Contact Us" though.
FEMM
Looking into the free options, I found this forum post from 2010 that asked the community to pool together any finds on this kind of software. FEMM was mentioned, and it already looks like the kind of program I'm looking for.
They also seem to have a lot of tutorials. Hopefully, one of those is how to get force data.
Elmer FEM
I then found this resource that is a list of electromagnetic simulators. In addition to coils, it seems there are simulators for PCBs and antennas that are also in this list.
One program I found was Elmer, which seems more recent than FEMM, and I started watching this webinar:
This part is interesting because it shows that it can support the "stranded" and "foil" types of coils. It also sounds like this programs is rather large, so it's most likely going to take a while to learn how to use it.