Tetrinsic [gd0041]

A continuous, motorized fader that is force sensitive, haptic and self-sterilising.

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

Tetrinsic is designed to be used for input devices such as Tetrescent [gd150].


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.


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

[M] Test log 1
[P] Printed concept in resin
[M] Wider and shorter
[R] Redesign options
[A][R] Motorized Switches
[T] Force sensor instead of magnets?!
[M] Switch mounting hardware
[P][M][R] Sensors and drivers
[R] Sourcing chips
[T] Other uses of Tetrinsic
[M][T] PCB concept (and project name)
[M] PCB Schematic
[T] PCB schematic... fails.
[M] I/O Expander
[M] Direct ADC connection
[T] Using a microcontroller
[T] Tetrinsic as master control
[M] Starting the PCB
[M] Populated MCU
[M] PCB Rerouting
[M] 1000 Pages
[M] Motor Pad
[M] 40mm Long
[M] PCB slowly being rerouted
[P] Micro Motor and Belt
[M] Updated CAD issues
[T] Thinner solution idea
[T] Ball chains?
[T] To LED or not to LED...
[T] TFT, angle sensor and 16MB flash
[M] The All New Tetrinsic 2.0: Initial concept
[M] Load Cell Simulations
[T] USB Connection?
[R] Looking at the start of Plover
[P] Chain in a channel
[A] Mining for a solution... ends, in 30 days.
[T] Even thinner? Solution required.
[T] Current Tetent layout
[T] Focus on obtaining TestCut?
[M][R] CAD redesign... started.
[B][M] Initial BOM made
[M] Tetrinsic Gen 3X1 Concept
[M] Drawing a theoretical layout
[T] Bolt reinforcement under LCD?
[T] Sloped Tetrinsics?
[T] Space for an off-the-shelf load cell?
[T] Mounting options
[M] Sculpting a look
[M] Mining for a flat-top solution
[T] Joysticks for thumbs?
[R] Taking load cells out of pocket scales
[A] A solution... failed, in the time provided.
[T] Cutting the load cell
[P] LCD and Steel Tubes
[T] LCD-down mounting
[P] Small 500g Precision Scale Teardown
[M] Load cell update
[M] Detailed modelling started: LCD Holder
[M][T] ESP32-S3 MINI and other changes
[R][T] Plans going forward
[M] Slow foundations
[M] Chain Pathway
[M] Chain aligned
[M] PCB on side?
[L] First symbol in Fusion360 Electronics
[L] ADC schematic entry
[L] Created BMI160 footprint
[T] Tetrinsic Taic: Solar panel variant
[L] BMI160
[M] Solar Cells
[M] Photovoltaic cell implemented
[R] Solar Cells: Polycrystaline and Amorphous
[L] MP6543 BLDC Controller
[L] ESP32-S3-MINI-1U component
[L] Pins and the GPIO Matrix
[L] LBS147TC-IG01 (1.47" LCD) Pad
[L] 580KV Motor Pad
[L] Tetrinsic Pad
[L] MIP LCD and Not Enough Pins
[L] BMI160 3D package and 74HC595 output extension
[L] Expansion Pins
[T] Looking ahead: USB Type-C system
[R] Are better components now available?
[L] DRV8311P Motor Controller Component
[T] Eliminate interconnects?
[L] Updated Schematic with New Components
[L] The start of the PCB
[L] Component alignment and solar pads
[L] Vias (and other DRC things)
[L] The Magic of QuickRoute Airwire
[L] Milestone: PCB Fully Connected
[L][R] Trace Polishing, USB and the AAT101 capacitor
[L][T] PCB pre-assembled with passives?
[L] Increased vias to 0.3 : 0.45mm
[L] Silkscreen Issues
[M] Single Path 3.2mm Edition
[B][M] Pulley, sprocket, slider mount and BOM
[R] LT6911C HDMI to MIPI in a QFN Package?
[P] 3.2mm Ball Chain (and 100th log)
[P][T] Scribe Tool,...
Read more »

  • [A] Details page before 14 Jan 2024

    kelvinA01/14/2024 at 12:46 0 comments


    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 
        =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 »

  • [T] Linear hall sensors and water resistance

    kelvinA12/09/2023 at 17:04 0 comments

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

    kelvinA12/04/2023 at 22:53 1 comment

    I 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 solve this with a wrist or hand mounted solution, but that had its own challenges -- namely that I couldn't easily take my coat on/off and that 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 "unnoticable" 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:

    Image Source

    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

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


    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.


    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.

  • [T][R] Concept Fantastic4

    kelvinA09/03/2023 at 21:05 0 comments

    The next Tetrinsic concept was going to be "Tetrinsic Concept4", but partially because this project needed a hero and partially because I was thinking about the intro music from the 33 second mark of the Fantastic Four: Worlds Greatest Heroes as I was thinking up all the improvements I could make from Concept 3.2X2, the internal code name is "Tetrinsic Concept Fantastic4".

    The idea that forms the basis of this concept was from @RunnerPack all the way back in January, and is something I didn't really want to work on until after I actually had a proof-of-concept to test since it would involve more 3D printed / custom components. I wanted to be able to compare the off-the-shelf hardware solution to the more custom made solution. 

    Now that the 580KV motor is no longer available and I know that cogging should really be 0, I'm going to have to go through with a custom motor solution. While I was at it, I wanted to see if I could increase the stroke : body length ratio.

    Initial thoughts

    I thought about a solution for about an hour, and this is what I envisioned:

    • Tetrinsic becomes a linear BLDC motor with integrated hall effect and pressure sensors.
      • Part of the reason is so that I have more space to make and place coils.
    • I move all the logic back to #Tetent [gd0090] / #Tetrescent [gd0150] like I originally planned at the start of Tetrinsic Concept1
    • The motor controller is already designed to let me bundle 4 motors to one CS pin, so I just need 2 CS pins for all 5 linear motors
    • I can use the 3 hall sensors that are sometimes installed into BLDC motors as the position encoder.
    • I only need 2 bent tubes, and the turning pulley can fit inside the loop instead of outside
      • This assumes I can create a surface that can turn on a 7mm diameter radius
    • Coils will be on the top and bottom of the linear motor section, which makes the magnetic field much more consistent and means that I don't have to worry too much about air gap
    • The belt can be printed as a "Spiralise Outer Contour" (vase mode) of TPU
      • It can also be made from a magnet-band-magnet sandwich, where 2 separate magnets are stuck on each side of a thin loop of material.
      • I later realised that this would mean that the Thumb Tetrinsic would have to be a different height than the Finger Tetrinsics so that the loop could go around them.
    • On the connector board, I can use a 5 input Sigma-Delta, 24bit ADC for the load cells and up to 5x multi-channel 16 bit adc's for the hall effect and current sensing 
      • (I've been hearing multiple times that the ADC on the esp32 isn't great)
    • Encasing the top-down coils in a ferrous material should further increase the field strength between the coils and the magnet embedded belt.

    My idea is to take a linear motor like the one shown below, and swap the coils and electromagnets:

    The design shown above also looks like a scaled up version of a voice coil actuator, which can be used for haptic vibrations.

    Anyway, cogging is eliminated because there's nothing magnetic in the stator. The first time I saw the video about cogging, I didn't fully grasp it, but the thumbnail actually does a good job of showing what's actually going on:

    From the perspective of the magnets, the copper coil may as well not exist. The ferrous stator teeth it's wrapped around is a different story. Because of the gaps between the stator caps, there's actually an imbalance of attractive forces. (remember, magnetic materials are attracted to both north and south poles of magnets). I'd imagine that, to solve it, you'd either need to remove the ferrous stator entirely or design the stator such that the attractive force is equal across the entire perimeter.


    The first reason why Me In The Past didn't think that the embedded magnet idea would work was because I was...

    Read more »

  • [R] Looking for a new brushless motor

    kelvinA08/28/2023 at 08:44 0 comments

    [09:30, 28 Aug

    It first helps to define what Tetrinsic needs to be at this point in time. It needs to:

    1. Be no wider than 18mm.
    2. Use a 45mm load cell or some other precision force sensing technology.
    3. Precisely detect finger position.
    4. Provide a grippable, low resistance, linear sliding medium for the fingers and thumb, ensuring fingernail compatibility.
    5. Have a brushless motor that exerts at least 300gf at point of finger contact.
    6. Allow for the below sliding medium configuration, unless another suitable ergonomic solution is found.

    I've looked around AliExpress and there are a few motors that have a diameter of 16mm and lengths of 23mm and over.

    Of which, the one with the best KV is this 1632 motor:


    Voltage range: DC 8V-18V.
    Speed: 5600RPM-12000RPM.

    Motor length: 32mm.
    Motor diameter: 16mm.
    Shaft diameter: 2mm.
    Shaft length: 7mm.
    Weight: 23g

    Precision 16mm brushless motor with inner rotor, body length 32mm, the appearance of the bulk motor is somewhat scratched by transportation, the motor is relatively good quality, all aluminum alloy shell CNC processing, motor front and rear ball bearings, built-in Hall-type brushless motor.

    The rotor is composed of 4 rare earth neodymium magnets. The magnetic force is very strong. It is obvious that the reluctance of the motor shaft is rotated manually. This motor does not have a drive, so it needs an external brushless drive to run.

    The motor should be nominally used at 12V, and the measured voltage can also be used between DC 8V-18V.

    Test data:
    Voltage: 8V       No-load current: 0.08A       No-load speed: 5600RPM.
    Voltage: 12V       No-load current: 0.13A       No-load speed: 8200RPM.
    Voltage: 18V       No-load current: 0.16A       No-load speed:12000RPM.

    The RPM at 12V is 17% higher than the 580KV motor. The KV range of this inrunner motor is 700 - 667KV. It also sounds like the cogging torque of this motor is notable.

    I then watched the following:

    The summary:

    • Matching KV to the application is the most important
    • Generally, inrunners have a higher KV than outrunners
    • Inrunners can be more efficient as the windings can conduct heat through the case
    • Cogging happens in a slotted but not slotless motor [relevant video]
    • Cogging is stronger on a 6 pole motor.

    Looking in the SmartKnob discord, it seems that for a device which is supposed to dynamically create it's own dedents, cogging is understandably not toleratable. This is what the creator means when he says that a motor has no cogging:

    Even if that 1632 motor didn't sound like it had cogging so strong that the seller thought to mention it, I currently can't imagine a geometric configuration that I find acceptable.

  • [A] Motor. Is. Missing!!!

    kelvinA08/27/2023 at 19:41 0 comments

    Have you ever had that time when you're idly thinking and the thought "I should do something about that one thing before a problem arisises?". Well this morning I remember thinking 

    You know, if those motors go OOS (out of stock) like what happened with SmartKnob, it's game over, right? Like... just saying... we should finalise this design fast or even just buy 20 motors now.

    before replying to my other self

    They've been on the market for like over a year at this point. I think we're fine.

    Well, I was scrolling though this lovely looking website of the Ratchet H1, which is the first commercial haptic knob I've seen, and was thinking "Ok, maybe I was a bit too hard on myself complaining that the £25-or-so Tetrinsics were too expensive, considering this is almost 6X the price."

    Then I remembered that I hadn't updated the BOM spreadsheet since Concept3.2 over a month ago.

    First item: LCD screens.

    Me: Oh, that's no longer in here. Delete that row.

    Second item: 580KV Motor.

    Me: Oh yeah I better go check to see that the price is still the same.

    First link: £1.95

    Me: !

    Second link: £2.54

    Me: ! !

    The message over the basket: Sorry, this item is no longer available!


    [  !  ]

    AliTools search: Nothing remotely like the motors

    The music I'm now playing in the background: Thunderbirds Are Go - Chaos Crew Theme (a fast paced, orchestra boss music track)

    Me: Starts scrolling my wishlist where I certainly saved the motor

    The background music when I manually get to the bottom of the page, seeing nothing: Quiet and ominous [00:47s]

    Vivaldi: 0 search results for "BLDC" or "580KV"

    Bing: Shows 4 results, all of them wrong

    Google: Links me to the £2.54 listing 

    Sigh. And just when I was feeling a bit excited with some "we are so back" energy. I was already kind of worried that these small motors were just old stock from something random. I've also read my fair share of products that have manufacturing or sourcing issues (like almost every hardware Kickstarter, Prusa, even Apple with the Vision Pro).

    If the 580KV motors don't magically come back, or an alternative motor (I somehow missed every time I searched for it over the past 12 months) isn't discovered,

    it is so...


  • [M] 2mm rods instead of 1.5mm tubes

    kelvinA08/27/2023 at 14:35 0 comments

    I first mentioned this in this Tetrescent log, but I've spent 3hrs modelling a new solution. The main reason being that most Aliexpress listings for stainless steel rods start at 2mm:

    Secondly, even though one is probably never going to push down 500gf onto any Tetrinsic when in normal use (my thumb usually hits 420 - 450gf max and 300gf when not putting in the extra effort), the safety rating of 2.0 isn't ideal. 

    It turns out that the solution to the question "Should I have the rods go over or under the collector?" is actually "Both.":

    This is to allow the collector to obtain minimum wall distances of 1.2mm whilst also allowing the ball chain to slide past. I've also added this smooth curve to ease the transition from air to the side of the pressure collector:

    The new assembly has a much nicer looking displacement profile:

    The minimum safety rating is over 3, but it's unexpectedly in the area just under the load cell: 

    Now that I've slept, this could be caused by the rod-ending offsets being too close together, meaning there isn't enough overlap where all 3 rods can bear the force. Increasing this offset to 27mm (from 20mm) reduces displacement to 0.300mm (from 0.324) and increases the safety factor to 3.78 (from 3.20). Reducing it to 10 increases displacement to 0.359mm and reduces the safety to 2.78:

    I'll go with a 29mm offset to leave about 20mm from the last bend:

    I'm now trying to see if I can actually obtain simulations for multiple force points by making the ones that have no force applied "frictionless":

    No, that failed:

    I'll just have the forces without the "frictionless" constraint. I'll assume that the extra bodies have a negligible weight.

    It seems that Fusion does each solve sequentially. At least that means I could be inspecting one study while another one solves on the cloud. Anyway, here are the results:

    I've set the displacement to "Actual" above, but to better see what's happening on a micron level, "Adjusted" is below:

    It seems that the "minimum of minimum safety factors" is 2.94, when the force is applied near the ends of Tetrinsic. The outer force position has a max displacement is only 0.35mm, so it should feel rather solid throughout, even when pushing down at 500gf.

  • [M] 500gf Simulation

    kelvinA08/24/2023 at 17:00 0 comments

    So I'm considering a 125mm solar cell for Tetent, and since this is much longer than my initial assumtion of a 75mm Tetrinsic, I thought I'd actually get a simulation.

    I've modelled the tubes with a 60 degree inwards bend (instead of a 90 degree straight-down bend) so that the ball chain can take a shallower angle from the sprocket to the sides of the "pressure collector" as I call it. 

    I've got a 500gf load exerted from the middle of the area, and it's already not looking so good, acheiving a minimum safety factor under 2. The good news is that, as expected, the load cell has almost no displacement, meaning that the force sensing area is symmetrical when under load.

    The displacement is rather high, at 1.15mm. My goal is to cut that in half somehow.

    This is where the outer tubes have their cutout not in the centre, which aims to have at least 2 tubes providing stiffness across the entire collector. I planned to do this on the 90mm Tetrinsic, but there wasn't enough length on the ends (only 5mm) before it needed to bend. Even still, this solution would be geometrically invalid since the tubes would intersect the countersunk screws.

    Unfortunately, the displacement only improves by 0.1mm and the safety factor is unchanged.

    Returning to the aligned-end tubes and having them made from solid steel (so they're more like 1.5mm thick wires), I get a displacement of 0.86mm and a safety factor of 2.

    Interestingly, the displacement is still 0.86mm when the force is applied directly under another Tetrinsic, but the right side is greener than the left side. Green means over 0.4mm of displacement.

    The displacement is more balanced with the uncentered cutouts. I probably should go with the other solution, whereby the collector is on the "outside" of the loop.

    So this is it. It certainly looks more complex. The main benefit of this strategy is that the finger force pushes the tubes further into the collector, instead of pushing the tubes out of it. 

    The main drawback is that the ball chain will have to slide over plastic to be moved out of the way. At least, that was the drawback I thought of when comparing the two strategies before I started modelling. Due to the way I designed the first collector, the ball-chain would still rub against plastic.

    Another benefit is that, similar to a boat through water, I can print a seperator that splits the dual chain.

    With this, I get a max displacement of 0.77mm and the base has a displacement of 0.34mm.

    Considering print orientation, it's probably best if this face was horizontal instead of perpendicular to the tubes. 

    it seems that a height offset of 5.2 - 5.5mm would be required:

    As will M3x10 countersunk screws:

    So these bolts were actually causing the simulation to fail until I did a combine-cut to eliminate the geometric intersection between them and the load cell.

    Now, for some reason, trying to simulate forces from distances over the 9.3mm set in the above simulation caused the simulation to fail. I tried a few different things and red the error logs, and I've been able to get a 25mm force sim to succeed by reducing the mesh setting to around 7%:

    I simulated 50mm, and for some reason, only the "Displacement" view is glitched:

    45mm worked though:

    It does seem that I should also have a 0.75mm spacing below Tetrinsic to allow for this part to flex uninterrupted.

View all 133 project logs

Enjoy this project?



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 [], 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