Close
0%
0%

Tetrinsic [gd0041]

A continuous, motorised fader that is force sensitive, haptic, UV self-sterilising and water resistant.

Public Chat
Similar projects worth following
To get the most bandwidth out of my dual hands, I'm designing an input element that can obtain more data than a standard keyboard switch.

Tetrinsic is designed to be used for input devices such as Tetent [gd0090].

Media

Inspiration and/or examples of working principle

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.

Navigation

The title tag system is explained here, and the table is updated when a change occurs. Notable logs have bold L# text.

L1
[M] Test log 1
L2
[P] Printed concept in resin
L3
[M] Wider and shorter
L4
[R] Redesign options
L5
[A][R] Motorized Switches
L6
[T] Force sensor instead of magnets?!
L7
[M] Switch mounting hardware
L8
[P][M][R] Sensors and drivers
L9
[R] Sourcing chips
L10
[T] Other uses of Tetrinsic
L11
[M][T] PCB concept (and project name)
L12
[M] PCB Schematic
L13
[T] PCB schematic... fails.
L14
[M] I/O Expander
L15
[M] Direct ADC connection
L16
[T] Using a microcontroller
L17
[T] Tetrinsic as master control
L18
[M] Starting the PCB
L19
[M] Populated MCU
L20
[M] PCB Rerouting
L21
[M] 1000 Pages
L22
[M] Motor Pad
L23
[M] 40mm Long
L24
[M] PCB slowly being rerouted
L25
[P] Micro Motor and Belt
L26
[M] Updated CAD issues
L27
[T] Thinner solution idea
L28
[T] Ball chains?
L29
[T] To LED or not to LED...
L30
[T] TFT, angle sensor and 16MB flash
L31
[M] The All New Tetrinsic 2.0: Initial concept
L32
[M] Load Cell Simulations
L33
[T] USB Connection?
L34
[R] Looking at the start of Plover
L35
[P] Chain in a channel
L36
[A] Mining for a solution... ends, in 30 days.
L37
[T] Even thinner? Solution required.
L38
[T] Current Tetent layout
L39
[T] Focus on obtaining TestCut?
L40
[M][R] CAD redesign... started.
L41
[B][M] Initial BOM made
L42
[M] Tetrinsic Gen 3X1 Concept
L43
[M] Drawing a theoretical layout
L44
[T] Bolt reinforcement under LCD?
L45
[T] Sloped Tetrinsics?
L46
[T] Space for an off-the-shelf load cell?
L47
[T] Mounting options
L48
[M] Sculpting a look
L49
[M] Mining for a flat-top solution
L50
[T] Joysticks for thumbs?
L51
[R] Taking load cells out of pocket scales
L52
[A] A solution... failed, in the time provided.
L53
[T] Cutting the load cell
L54
[P] LCD and Steel Tubes
L55
[T] LCD-down mounting
L56
[P] Small 500g Precision Scale Teardown
L57
[M] Load cell update
L58
[M] Detailed modelling started: LCD Holder
L59
[M][T] ESP32-S3 MINI and other changes
L60
[R][T] Plans going forward
L61
[M] Slow foundations
L62
[M] Chain Pathway
L63
[M] Chain aligned
L64
[M] PCB on side?
L65
[L] First symbol in Fusion360 Electronics
L66
[L] ADC schematic entry
L67
[L] Created BMI160 footprint
L68
[T] Tetrinsic Taic: Solar panel variant
L69
[L] BMI160
L70
[M] Solar Cells
L71
[M] Photovoltaic cell implemented
L72
[R] Solar Cells: Polycrystaline and Amorphous
L73
[L] MP6543 BLDC Controller
L74
[L] ESP32-S3-MINI-1U component
L75
[L] Pins and the GPIO Matrix
L76
[L] LBS147TC-IG01 (1.47" LCD) Pad
L77
[L] 580KV Motor Pad
L78
[L] Tetrinsic Pad
L79
[L] MIP LCD and Not Enough Pins
L80
[L] BMI160 3D package and 74HC595 output extension
L81
[L] Expansion Pins
L82
[T] Looking ahead: USB Type-C system
L83
[R] Are better components now available?
L84
[L] DRV8311P Motor Controller Component
L85
[T] Eliminate interconnects?
L86
[L] Updated Schematic with New Components
L87
[L] The start of the PCB
L88
[L] Component alignment and solar pads
L89
[L] Vias (and other DRC things)
L90
[L] The Magic of QuickRoute Airwire
L91
[L] Milestone: PCB Fully Connected
L92
[L] 3DPCB
L93
[L][R] Trace Polishing, USB and the AAT101 capacitor
L94
[L][T] PCB pre-assembled with passives?
L95
[L] Increased vias to 0.3 : 0.45mm
L96
[L] Silkscreen Issues
L97
[M] Single Path 3.2mm Edition
L98
[B][M] Pulley, sprocket, slider mount and BOM
L99
[R] LT6911C HDMI to MIPI in a QFN Package?
L100
[P] 3.2mm Ball Chain (and 100th log)
L101
[P][T] Scribe Tool,...
Read more »

  • [E2][T] Spin-off motor, PCB and UV LED?

    kelvinA4 days ago 0 comments

    • Looking at my options, i think the best thing to do now is make a prototype that doesn't include a motor.
      • This would also make it easier to implement if someone just wants to have an LED lit, force sensitive but otherwise basic slider, similar in nature to the encoders installed in some hobbyist keyboards.
      • At least if literally everything else about the current concept works, it would be easier to justify £50 and up for a prototype motor or spending days making my own.
      • [E2] The proposal... fails. I need a haptic source, where the lack of which was partially responsible for the non-use of #AirBerries and SpaceExplorer 
    • I've created project #Tetrinsic Toroid [gd0152] which would contain the BLDC + PCB.
      • [E2: May 1] - Renamed to a trendier "Tetoroidiv" to keep with the coincidental tradition of an ever so slightly longer name on each subproject;
    • Move the UV LED out of Tetrinsic's domain
      • I've computed a new Tetent solution, and started on an Itinervate one too, and it seems that the LED would be better mounted on the enclosure or PCB mounted with Tetrinsic, and not something to bundle along with it.
      • The above is the potential Tetent solution side profile. The top/right orange part is the belt, and the left orange is an LED that just lines up with the ones on Tetrinsic to give the illusion that it's continuous. In actuality, this curve has the 21700 cell.. The grey lines is supposed to be a 3D texture of diamond squares.
      • [E1] Cleaner, 1:1 sketch:
      • I'm calling this Concept Solution Epsilon, named after the Overlord character, because it's a potential solution and I wrongly thought ' Σ ' was capital epsilon until I looked it up right now.
    • Additionally, water resistance becomes mandatory.
      • I need to get "that 99.9% uptime". What I mean by this is that I want to be able to use it in 99.9% of reasonable situations. Thinking through thoughts during a shower or while running in the rain between locations is what I'd call a reasonable situation.
      • I think there's a notable and valuable gain from the difference between a 90%, 99% and 99.9% solution.
      • [E1] Unfortunately, the COB strip is IP20, so not off to a good start. 

  • [E1][T] More accurate power estimates

    kelvinA4 days ago 0 comments

    So I've added torque radius into the equation, which essentially is the effective radius of the force if  there was no gearing or reductions. This paints a very different picture now that there is a 2.6 : 1 reduction for getting the power from the motor and into the belt. 

    Additionally, my current understanding that, all else being equal, the proportionality of rotor radius, rotor length and number-of-turns is quadratic, linear and linear respectively. Thus, I've calculated the expected torque constant difference from the motor mentioned in the paper with a 40mm long rotor and 78 turns. There is barely enough space for a 50mm rotor and that would increase the torque constant to 43.5. This calculation assumes that a 4-pole rotor can be obtained. I'd expect less torque if using the 2-pole magnet I found on aliexpress.

    The $32 1656-18W motor also now has more favourable power consumption now.

    I'll have to see what the torque numbers are when at the new max expected speed of approximately 1200RPM.

    [Apr30] So I can see the amp-turns in action. I can fit 36 turns at 0.25mm diameter, 78 at 0.18 and 106 at 0.15mm, and with a 50mm rotor, they all get essentially 0.6W peak when putting in the resistances and compensating the amp. The only thing that changes is the minimum drive voltage, dropping down to 1.29V for the 36 turns configuration.

    Thus, I think the strategy needs to optimised from other perspectives. For example, If I aim for a minimum drive just under 3V, such as the 78 turns configuration, I could use the battery voltage directly. I'm already planning to read the currents drawn by the motor, thus I'd save on voltage conversion losses. With this in mind, the 18V version of the 1656 makes more sense:

    I've shuffled the order and added in the 1659RB motor mentioned in a 4th edit a few logs back.

  • [R] 9.6mm V-Belt

    kelvinA5 days ago 0 comments

    From the sketch I showed in the previous log, Fusion says that the belt length I need is 237.98mm... essentially 238mm. So I just searched "238mm belt" and coincidentally enough, such belts exist:

    I've seen these belts before. I just didn't know that they specifically came in 238mm loops.

    The black ones come with a thick looking groove on the underside, which is probably good for the sliding straights but not exactly ideal for the gear-teeth pulley.

    The orange ones are slightly cheaper, and because they transmit more light, it's much harder to guage if the underside profile is the same as the black, but it's probably safe to assume so. What I do know is that the black one is rubber and the orange is polyuetherane.

    The one standing almost looks like an optical illusion.

    Unfortunately, both of these are 3.2-3.3mm thick, which is almost double the thickness that I'm looking for.

    It looks flexible enough:

    Looking at what this belt attaches to, the minimum turn radius might be OK if the smaller pulley is 19.5mm:

    It also seems self-centering, meaning that I wouldn't need the flange and so I could probably tweak the gears to use something like this:
    20T crown -> 10T+20T -> 26T+pulley

    12T+24T keeps ratios in nice integer values, though I can't find a tight-fit variant:

    The final height is 24.5mm, which isn't ideal but doesn't fail any downstream solutions.

  • [M] Sketch around Tetrinsic Toroid

    kelvinA5 days ago 0 comments

    So 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

    kelvinA6 days ago 0 comments

    I 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.

    This only has 0.21 ohms MOSFET resistance.

  • [E1][B][M][R] Custom 16mm Slotless?

    kelvinA6 days ago 0 comments

    From 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?

    You might be wondering what this is. This is the approximation of 3mm copper foil stacked on itself. Since copper smaller than the magnet width does not provide any torque (so I've heard), it makes more sense for the tape to hug the edges.

    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...

    Read more »

  • [E4][R] Frameless VS Slotless BLDC

    kelvinA04/26/2024 at 06:34 0 comments

    2806 Frameless BLDC
    1656 Slotless Motor

    Introduction

    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...

    Read more »

  • [R] Coil All Around belt linear motor?

    kelvinA04/23/2024 at 07:33 0 comments

    The 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:

    Source

    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:

    Source

    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...

    Read more »

  • [A] Details page before 14 Jan 2024

    kelvinA01/14/2024 at 12:46 0 comments

    Details

    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:

    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,...

    Read more »

  • [E2][X] Plotting finger movements

    kelvinA12/23/2023 at 20:56 0 comments

    So 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:

    The code "s1" stands for the first space option, and "bc" stands for "CTRL+Backspace".
    This typo simulates accidentally pushing too hard on Finger4.

    [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.

    This is the first time I'm even realising there's a "Formulas" tab in Excel, let alone that you can name selections just like in Fusion360.

    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.

    Then I needed another run. I decided to go with a quote this time, and despite it being 5am without having slept yet, I managed to 100-accuracy it.

    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...

    Read more »

View all 141 project logs

Enjoy this project?

Share

Discussions

RunnerPack wrote 02/06/2023 at 18:22 point

(EDIT: This was supposed to be a reply to the other thread; I don't know what happened)

Well, I love blinkenlichten as much as the next guy, but if I ever made any of these, that would likely be omitted entirely or perhaps replaced by a single WS2812 LED. My ideal input device is something I never have to look at, anyway.

I didn't use the term "voice coils" but that's what a PCB motor (or, really, any electromagnetic motor) boils down to. The whole point of the magnets and (PCB) coils is to eliminate the BLDC motor for haptic/tactile feedback. As I stated, I think the hall-effect sensors would offer good enough position sensing for both motor feedback and reporting motion to the host device.

Absolute position would be easy enough to keep track of in software, and I don't see why you would need absolute positioning across power cycles in this application (although I admit I only vaguely understand the concept beyond "one slider per finger that are also analog buttons" at this point). As the "belt motor" would be coreless, I don't think cogging would be an issue.

"Are there any specific optimisations you're trying to achieve with your idea, such as footprint / price / ease of manufacturability?"

It's just a gut feeling, but I think eliminating the rotary motor & mechanics would positively affect all of these, and maybe even improve user experience. (Although I've never tried it, I'm not enthusiastic about trying to drag bead chains across an OLED with my fingertips for any length of time, with or without a 240g opposing force).

Anyway, I was just brainstorming possible alternative ways of achieving the basic idea, not trying to upend the entire project.

  Are you sure? yes | no

kelvinA wrote 02/06/2023 at 23:49 point

When I was talking about the voice coils, I intended to mean a vibration originating from underneath the entire sliding surface and not just the (PCB) motor position.

The Ahmsville Dial sounds to be the type of encoding closest to what you're describing, but it seems to also require an analog comparator chip for interrupt signals. I'd have to see if the 24-bit ADC (which I need for the load cell) has any interrupt features I could use.

The main issue I have with the idea is the non-automated manufacture of 10 magnet-infused belts at even basic mouse resolution of 800dpi, or 31 dots per millimeter. I'll calculate it now:
For a 10mm diameter, one "dot" of distance is 0.03226mm, the chord angle is 0.369672 and thus the minimum required steps per revolution is 974. Hm... that sounds kind of manageable actually. I'll assume 1.5x1.5x1.5mm square magnets since they'd be stronger than the 1mm^3 ones and I'd need less of them to cover the approx 130mm length. Assuming a 1.5mm gap between magnets, I'd need 43 magnets in the belt, where about 5 would fit in the motor semicircle and the equivalent full circle encoder would have 10 magnets. Going off the Ahmsville provided formulae [https://youtu.be/_1tGosBLRB0?t=147], base resolution would be 20, but the hall effect sensors can detect a range of values. Practical resolution was found to be 25% of the theoretical resolution taking this range into account, for a 64.5X multiplier. Thus the resolution in this system is 1290. It might work, but I've only really used mice with >=2000 DPI.
Still not a fan of accurately positioning and casting 430 tiny magnets though, and it still requires the stator to be able to somehow generate 240gf. The magnets also have a higher mass -- and as such, inertia -- which would have to be overcome for any haptics to be felt.

  Are you sure? yes | no

RunnerPack wrote 02/07/2023 at 15:33 point

Yes, the assembly process has always been my greatest concern.  My first thought was a plastic fixture to hold the ring of magnets while the outside of the belt is cast, then transferring that to another mold to do the inside of the belt.

It's too bad one can't get the raw, sintered, plated NdFeB pills and magnetize them in-situ, but I think they have to be magnetized before sintering.

Oh, well, probably not worth pursuing, then.  Thanks for entertaining the idea.

  Are you sure? yes | no

kelvinA wrote 02/07/2023 at 17:38 point

I've been scanning the interwebs for concept ideas, so of course I'm going to explore any idea I just get given.

A 3D printer like the SecSavr Suspense would be able to print the belt (in a silicone-like material) and pick+place the magnets into place mid-print, as well as a good-enough-for-me chance of being able to print the stator too, but I'm making Tetrinsic to use in Tetent to create the Suspense much faster than I'd otherwise be able to; that's a circular dependency.

A jig could be used that accepts 2 magnet stacks (where one is the opposite polarity as the other) and it pushes 2 magnets into mid-print voids at a time. 

  Are you sure? yes | no

kelvinA wrote 08/29/2023 at 15:53 point

I think I might need to look further into this potential solution, now that the motor I've been designing around has disappeared from AliExpress and the SmartKnob project still has trouble sourcing low-cogging motors.

  Are you sure? yes | no

RunnerPack wrote 02/01/2023 at 20:26 point

Idea: cast a belt from clear silicone/polyurethane with embedded magnets. Wrap it around a stack consisting of the screen and a PCB with printed coils (a PCB motor). Making it slide smoothly over all the internal surfaces might be an issue. Bearings + PTFE, perhaps?

If the coils aren't enough for position sensing, you could add hall-effect sensors. You could use a pair of simple hall switches, mounted such that you get a quadrature output as the magnets go by (one lined up with a magnet, the other half way between two magnets). This might be a good idea, anyway, as brushless motors are easier to control at low speeds with feedback.

  Are you sure? yes | no

kelvinA wrote 02/01/2023 at 21:14 point

I ran a mental simulation using the assumption of 1x1x1mm magnetic cubes of alternating polarity orientation cast into a 1.5x1.5mm (square cross section) silicone belt.

The proposed solution... failed, due to:
- PCB motor unlikely to generate 240g of opposing force
- Silicone likely to absorb haptic vibrations
- Friction of silicone against screen surface
- Additional circuitry needed for hall effect sensors, providing less resolution than what [magnetoresistive sensor -> 24-bit ADC] can provide 
- Hall effect sensors do not offer absolute encoding of rotor position

  Are you sure? yes | no

RunnerPack wrote 02/02/2023 at 15:36 point

- Since you wouldn't want to obscure the screen, I was thinking two rings of magnets; one on each rim of the belt, rather than a single ring. This would double the force metric in your mental simulation. To double it again, a second PCB on the underside of the belt could be used (i.e. belt, screen, PCB, belt, PCB).

- I disagree with your vibration damping theory; both silicones and urethanes come in a range of hardnesses. If nothing suitable can be found, perhaps the magnets could be linked using e.g. nylon belts, which are then over-molded with the silicone/PU.

- The friction of the belt is still an issue, but I don't think it's insurmountable.

- I didn't know absolute position sensing was a requirement. I thought this was essentially a flat scroll-wheel with a screen inside (and, in any case, I question the utility of having a screen under your fingers on a chording keyer).

  Are you sure? yes | no

kelvinA wrote 02/02/2023 at 21:57 point

- The screen is not a fundamental requirement and more of an aesthetic Quality Of Life feature. It's easy for a maker to omit the screen in favour of another flat material, but difficult to go the other way around. For this application, think of it more as a thin, uniformally lit RGB led backlight in the exact size I need that just happens to be able to show visual animations instead of block colours. 
- I was simulating a belt that's flexible enough to take a 5mm radius pulley turn. You haven't mentioned the use of voice coils or a vibration motor, so I simulated the haptic events originating from the main motor.
- UWMPE tape is the best candidate I know of for friction reduction. It wasn't mentioned so I didn't simulate it.
- Absolute encoding is used for BLDC current control and analog alternate modes for Tetent. Ideally, it could also be used to mitigate natural cogging in the motor with software.

Are there any specific optimisations you're trying to achieve with your idea, such as footprint / price / ease of manufacturability? 

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates