Jump to content

Hempstick, always WIP


Hempstead

Recommended Posts

1 hour ago, No1sonuk said:

Have you considered a Bodnar board for the USB interface?  32 buttons (in a matrix 🤪) + 4-way hat + 8 12-bit analogue (which I know can read analogue Hall sensors).

It may well be that I have in the past. The thing is I didn't take notes and got out of touch with the subject. Not to hijack the thread, I'm going to do another round of research on my own.

Link to comment
Share on other sites

2 hours ago, Bucic said:

It may well be that I have in the past. The thing is I didn't take notes and got out of touch with the subject. Not to hijack the thread, I'm going to do another round of research on my own.

TBH, my comment was originally aimed at Hempstead, but I noticed after posting that it had jumped to a new page AND kind of answered your question as well.

 

 

 

 

 

 

 

 

  • Like 1
Link to comment
Share on other sites

11 hours ago, No1sonuk said:

TBH, my comment was originally aimed at Hempstead, but I noticed after posting that it had jumped to a new page AND kind of answered your question as well.

 

 

 

 

 

 

 

 

Well, in that case. I will answer both.

Yes. I bought a Bodnar board years ago. I found it….. average.

1. 12 bit ADC. Pretty much every MCU made after 2010 have 12bit ADC(s), if it has one at all. So, unless you are using already outdated MCU when Arduino was first designed…. You’d have 12bit. So stay away from those Arduino boards using AT90xxx or ATMegaxxx MCUs.

2. Not a clue what the sampling rate is, advertised or real.

3. no provision to do MLX hall sensors, or anything like that. You can only do analog ADC at your native ADC resolution.

4. no possibility to do force sensor…. my way.

The last two are the killer that drove me to write my own. Arguably, I never achieve #3 fully with the original Hempstick, but I did the configurable oversampling to go up to 16 bit. I did have a partial MLX90333 digital mode code, but lost that in an HDD crash. #4… I never started. Not that I had a design to test on at that time. But, now I have 2, rudder, and stick.

 

Hence, the idea of Hempstick Pico to do it all.

 

Also, Bodnar board is a general purpose joystick board. It’s market is in general purpose joysticks. It does not do anything special like, read a TI Delta-Sigma ADC, which is hooked up to two force sensors for toe brakes. Even though it later tried to be a bit more modular and expands its market to load cell boards, it’s still a general purpose load cell module. I chose that TI chip to drive the specific force sensor I chose. It’s not possible for Bodnar to anticipate. That is, if you want to go off the beaten paths, you have no choice but to do it yourself. But, if you are staying on the trodden paths others have already gone before, Bodnar board is a good choice. It works for what it’s designed for, general purpose joystick, and it works well for that. It’s just that I am not doing any run of the mill thing at all!

 

Now, look at what I have shown you from the RudderCore, to the stick base 2, to the faux F-16 stick, to the optical sensors, to the Hall Mini Stick, which one is on the beaten path? Which joystick firmware is capable of using force generation to create force curve (think electronically programmable CAM, instead of mechanical CAM pioneered by Milan; and I have ideas that go beyond just simple CAMs). There is just no such thing in existent…. I have no choice but to write it myself.

Ask yourself this question, do you design something that a Bodnar board can’t do? If not, then use a Bodnar board. If yes, consider modifying an Arduino joystick firmware. Suck as they are from a software engineering PoV, they do work! The question is how well do they work? Well, if you don’t know how well “what” work, then it doesn’t matter to you anyway. No offense, if you want to use an external ADC to get higher resolution, which Bodnar board can’t do. Then you got one question and one solution you can ask that dreadful question. If you care about stable sampling rate, then ask how an Arduino busy loop can satisfy that.

 

Don’t wait for the Hempstick Pico. Even I have no idea when. Could be years.

 


Edited by Hempstead
  • Like 1
Link to comment
Share on other sites

In case you have never seen it. This is my RudderCore prototype. Please note that I no longer use the central pivot bar (requiring CNC milling, but could be made by hand if you are very skillful).

The pedals are bronze casting. I made it myself with the tried and true Lost Wax process. Why bronze? Well... I took some bronze casting class at a local arts institute. Artists do bronze... they don't do aluminum. Since this thing will fly at exactly 0 agl... weight isn't a consideration at all.

The motor on top is an industrial servo motor serving as my "force generator." That motor itself is something like USD$400+, and there is a USD $150+ power supply (not shown). Except the pedals, all of the parts can be bought or made at home with just some simple hand tools and some basic machinery, like an el cheapo drill press.... but some would benefit with a milling machine (for instance, the central bar with motor mount... you could made it one piece by jig saw for hours, or you can mill it, or you can make it out of two pieces and bolt them together). The anti-torque rail mount... there is one part that would be a bit difficult to make by hand, but if you are patient, you can just use a hand file instead of a milling machine (maybe 10 minutes filing apiece would do it; you need two).

What's missing are:

1. the Hempstick Pico to read the hall sensor and then drive the motor accordingly.

2. My design of force sensor... for the toe brakes. I have the design, and some prototype parts, but not completely done yet... some modifications still needed.

Why force sensors on toe brakes? Well... to simulate the feel of hydraulic, of course... kinda... I bought some hydraulic brake assembly for motorcycles... didn't like the heavy heavy sticktion at all.

 

image.png


Edited by Hempstead
Swap the picture for one that has more depth of field.
  • Like 2
Link to comment
Share on other sites

@Hempstead
Normally I just sit through it and be like "go ahead, burn the money"... You do realize that the majority of the "feel" of a hydraulic brake is the static F(x) characteristic (Force, x-displacement), right? And that is perfectly doable with a regular a$$ spring. I can even pinpoint the source of that marketing infestation. It's simracing.

The direct drive path is something I'm going to explore in the future myself.

 

I'll read through your previous posts on simple controller sometime later.

Link to comment
Share on other sites

2 hours ago, Bucic said:

@Hempstead
Normally I just sit through it and be like "go ahead, burn the money"... You do realize that the majority of the "feel" of a hydraulic brake is the static F(x) characteristic (Force, x-displacement), right? And that is perfectly doable with a regular a$$ spring. I can even pinpoint the source of that marketing infestation. It's simracing.

The direct drive path is something I'm going to explore in the future myself.

 

I'll read through your previous posts on simple controller sometime later.

Nah... the hydraulic feel is slightly different from simple spring. The first part is the simple spring... then, when it hits, i.e. the brake pads contact the rotor, it then becomes similar to force sensor, but not quite. A pure force sensor would be like hitting a hard surface... abrupt stop. But it's really like it gradually switching to a very short stroke strong spring, like the hydraulic hoses would expand slightly, so the piston will go slightly in a tiny bit. Now, this tiny bit then gets amplified by the level length of the brake pedal... so, it's not exactly a strong spring, nor is it a straight force sensor / load cell... So, I plan to simulate it with a force sensor, but with a strong 40lbs 1" spring (paid an arm and a leg for the low volume to Lee Springs). Then, perhaps I will add a longer stroke, but much weaker spring to simulate the "before" stroke.

It's not a high priority task... because DCS's F-16 brake is a bit crappy... does it even have differential brake? I couldn't tell. Plus.... the toe brake part of F-16 is a low priority thing to begin with... so, it has a low priority of low priority ranking on my job list.

Link to comment
Share on other sites

One thing to mention so people don't get the wrong expectation.

The Hempstick Pico will be designed only for high speed, low latency operations, like the control stick, throttle, and rudder. Unlike the original Hempstick, which was designed for high speed, low latency, but with an eye toward expandability toward all instruments in the cockpit.

Hempstick Pico will NOT be designed for general purpose cockpit instrument controls. For instance, most likely it will mandate that all the switches/buttons used require no software debouncer, or have hardware debouncer. That is, if you hook up a toggle switch to be the missile fire button... it might fire 5 missiles at one press instead of just one. I most likely will not implement software debouncer that degrades the latency.

For general cockpit controls, like caution panel, steam gauge altimeter, ICP etc.... I am working on something else, like the following video. They will run regular RPis, with full Linux, and something else that I am not telling yet. It may not be RPi4, it most likely will be a fleet of RPi Zero 2 Ws, plus a few RPi 4s (ICP and the two MFDs use one RPi4, but the caution panel can just do fine with a $15 RPi Zero 2 W.).

 

In other words, Hempstick Pico will not be a pig that does everything badly. The other one will be the pig.

 

 

 

  • Like 1
Link to comment
Share on other sites

From my new 3D scanner. Imported into Solidworks, decimated from something like 5.6 million triangles to about 100,000, then converted to mesh model. I still yet to convert it (manually, instead of automated) into a solid. And yes, I do have the other 3 pieces.
 

DEAFA82A-EEF3-4D93-B6C5-C74EF31EB2B2.jpeg

Link to comment
Share on other sites

On 1/10/2023 at 4:56 PM, Hempstead said:

Nah... the hydraulic feel is slightly different from simple spring. The first part is the simple spring... then, when it hits, i.e. the brake pads contact the rotor, it then becomes similar to force sensor, but not quite. A pure force sensor would be like hitting a hard surface... abrupt stop. But it's really like it gradually switching to a very short stroke strong spring, like the hydraulic hoses would expand slightly, so the piston will go slightly in a tiny bit. Now, this tiny bit then gets amplified by the level length of the brake pedal... so, it's not exactly a strong spring, nor is it a straight force sensor / load cell... So, I plan to simulate it with a force sensor, but with a strong 40lbs 1" spring (paid an arm and a leg for the low volume to Lee Springs). Then, perhaps I will add a longer stroke, but much weaker spring to simulate the "before" stroke.

It's not a high priority task... because DCS's F-16 brake is a bit crappy... does it even have differential brake? I couldn't tell. Plus.... the toe brake part of F-16 is a low priority thing to begin with... so, it has a low priority of low priority ranking on my job list.

Test, yes, but it can all be achieved by spring stacking. Sure, it's a higher level od mechanical design but it's not clockwork. I do understand that it's often, despite being far more expensive, far  easier to "replicate the feel" using big chunks. So, sure it can be done this way. I only oppose the idea that it can't be achieved using more economic means. I'd like to stress that what I'm saying is directed more to people reading this rather than toward you specifically.

On Hempstick PICO:

What would be the estimated cost difference? I assume it's going to require a simpler controller.


Edited by Bucic
Link to comment
Share on other sites

2 hours ago, Bucic said:

Test, yes, but it can all be achieved by spring stacking. Sure, it's a higher level od mechanical design but it's not clockwork. I do understand that it's often, despite being far more expensive, far  easier to "replicate the feel" using big chunks. So, sure it can be done this way. I only oppose the idea that it can't be achieved using more economic means. I'd like to stress that what I'm saying is directed more to people reading this rather than toward you specifically.

On Hempstick PICO:

What would be the estimated cost difference? I assume it's going to require a simpler controller.

 

Pico is going to use Raspberry Pi Pico board, just USD$4, Pico W $6. And they are dual core, 133MHz.

Most likely I will force it to be Pico W, so it has network ability for configuration, and perhaps communicate with other non-real-time controllers and form a cockpit mgmt system (I have already chosen which system to use, but not telling yet.)
 

The force sensor I chose is about USD$30 apiece. Other parts are mostly 3D printed and off the shelf stuff, like a couple of screws, nuts, etc. The right sized spring is a different story… expensive for quantity of 2. But essentially, it's using springs and force sensors to simulate hydraulic feel. I may ditch the 1st stage spring to simulate the “before contact” spring feel. Total cost, still way cheaper than a motorcycle hydraulic brake assembly I bought for testing.

  • Like 1
Link to comment
Share on other sites

The following is a screenshot of decimated first with scanner vendor supplied software, then used Solidworks' ScanTo3D to import. I want the high resolution of the coordinates, not the high resolution of more mesh triangles. Probably could use Blender to decimate and fix the mesh as the in between processing step. Blender is designed to deal with meshes from the start. Solidworks... nope, although it has improved tremendously in the last 10+ years, it's not what it's good at.

 

50K should be plenty enough (actually way too many already) to use as the basis for reconstruction in solid.

Desktop Screenshot 2023.01.12 - 12.37.06.50.png

  • Like 1
Link to comment
Share on other sites

These Chinese made scanners are disturbingly inaccurate! The scanned models might look just right, nothing matches when I tried to reverse engineer them manually in Solidworks! Ha! Automated scan to 3D would have GIGO!

The angles are here 2 degree off, 3 degree there. My guess is that they have local accuracy, but the accumulated errors add up. They either don’t understand the underlying engineering principle, or they don’t care, or these are consumer grade “toys.”

I will have to find some way to inject correct dimensions and angles to “twist” them back to match without introducing too much inaccuracies, i.e. inaccuracies at where it doesn’t matter.

Link to comment
Share on other sites

On 1/14/2023 at 6:37 AM, Hempstead said:

These Chinese made scanners are disturbingly inaccurate! The scanned models might look just right, nothing matches when I tried to reverse engineer them manually in Solidworks! Ha! Automated scan to 3D would have GIGO!

The angles are here 2 degree off, 3 degree there. My guess is that they have local accuracy, but the accumulated errors add up. They either don’t understand the underlying engineering principle, or they don’t care, or these are consumer grade “toys.”

I will have to find some way to inject correct dimensions and angles to “twist” them back to match without introducing too much inaccuracies, i.e. inaccuracies at where it doesn’t matter.

As an avid consumer of videos about Blender I strongly recommend doing a quarterly review of open-source 3D scanning methods 🙂 Speaking of market research - has Autodesk devoured every 3D software company out there and turned into a black hole already?

Link to comment
Share on other sites

6 hours ago, Bucic said:

As an avid consumer of videos about Blender I strongly recommend doing a quarterly review of open-source 3D scanning methods 🙂 Speaking of market research - has Autodesk devoured every 3D software company out there and turned into a black hole already?

Oh… I have Blender… for me, it’s now the new king of mesh based creation, and editing, and much more. I even bought a Wacom tablet specifically for it. Ok, that was my excuse, and I am sticking to it.

I don’t think review of scanning methods would help, I keep taps on them anyway. The troubles I am encountering are just typical of the Maker movement… does it work? Sure. But how well does it work? What do you mean? It works, see? These Chinese cloners basically have a similar mentality - quickly make something work to make profits, but do not go through the time consuming and costly validation process to verify how well their products work. To their defense, these are not industrial products… and never advertised as one. They are toys. Perfect for scanning and printing bubble heads. I just didn’t know they would all be this trashy, even from a “big” company.

The question is, is it possible to make use of these toys in a manner that is useful to my requirements.

No worry, I think I have figured out a way to correct some of distortions and accumulated errors…. theoretically. It’s just that I will have to build a specific scanning rig to help me correct the problems I observed in the manual reverse engineering process. We will see how well that works out, once I received the parts I ordered.

 

There are good reasons why some “real” scanners cost tens of thousands of dollars apiece. But, hey, at least this new scanner finishes the scanning process, unlike my older one which crashed all the time and rarely got me any usable scan.

 

If I succeed in coaxing some accuracy out of the toys, I will let you guys know.

  • Like 1
Link to comment
Share on other sites

While the other half of mold is being printed.... Got a new idea.

The original idea was to print a negative mold of the shaft, then take a woven carbon fiber sleeve, stick it inside (3 layers, I think)... and epoxy up, put on release film, and absorption mat, and outer plastic tube bag through the middle, fold back and wrap around outside of the whole mold...   then vacuum/seal. Sure, theoretically it will work... it's just that... practically, that OD=1" - 0.4mm tube is a bit difficult to apply epoxy from the inside and then do all the other things... so the idea was to pre-apply epoxy resin on the fiber sleeve, fold over twice, and epoxy the mold, and do all the other things.... Sure... still a pain.

So, what if I print the negative tube inside with the Breakaway material? I just have to adjust the negative tube's diameter to compensate for the thickness of the carbon fiber epoxy layers... Well... the OD will not be precise... But so what? Wrap some tennis racket anti-slip tape and then screw it down inside to compress it tight. Or, worse comes to worst, epoxy the whole damned shaft inside the stick body, permanently. Sure, that will make the assembly of other buttons/HAT a big harder... but not impossible.

Maybe... I can take the breakaway plug, apply release agent, wrap chopped carbon fiber around, epoxy, then apply release agent on the mold, then screw down... making it a forged carbon fiber composite? Or use woven carbon fiber sleeve still? This way, I have best of the both, accurate OD, and still easy to make.

Just have to make sure the infill is not too dense making tear it out a PITA.

image.png

Link to comment
Share on other sites

Nothing new, just reposting what I posted somewhere else about my MonkeyOnTheBack attachment.

 

Here's the BOM for my mod: 

DesTek Quest Pro Sleeve: https://www.amazon.com/dp/B0BGN3XLG4?psc=1&ref=ppx_yo2ov_dt_b_product_details

0.75” quick side release buckle: https://www.amazon.com/gp/product/B09DY14TJ8/ref=ppx_yo_dt_b_asin_title_o05_s00?ie=UTF8&psc=1

polypropylene Webbing: https://www.amazon.com/gp/product/B01KTVCZAM/ref=ppx_yo_dt_b_asin_title_o06_s01?ie=UTF8&psc=1

 

With the sleeves, you don't need to drill holes... but if you don't use sleeves for Quest 2, you'd have to drill two holes on each battery cover... and make a wire loop for the webbing. I use some aviation stainless safety wire for it.

You don't want to use 1" webbing... too wide... cutting into your palm. 1/2" too narrow... wobbling more than 3/4". I tested all of them so you don't have to.

 

Link to comment
Share on other sites

  • 2 weeks later...

This is the concept of trying to coax more accuracy out of "toy grade" 3D scanners.

Ok... how?

First, we must describe what the problem(s) I am trying to solve, then we will describe the conceptual solution.

The main things I am observing is the followings.

1. The scanner sees only a partial view of the whole article to be scanned.

2. It seems to have local precision and accuracy... although they seem to confuse accuracy with precision, let's just say I suspect it has both accuracy and precision at something like sub-mm, be it 0.2mm or 0.5mm. In other words, let's "assume" it has local accuracy and precision with one "view."

3. It runs something similar to SLAM and "localize" its location, most likely with help of on board IMU kinds of sensors but use SLAM to do things similar to pattern recognition to match different views at runtime.... But... either this "localization" has errors or there are accumulated errors from views to views... so I have observed that two parallel surfaces like the two sides of the F16 stick base... depending on the path of your scanner, the two faces could end up not parallel... if I scan from the round cylindrical face direction going from one side wall to another side wall, they could end up like at 30 off.

4. Even if scanning paths is carefully selected to minimize the errors, the end result of faces that are supposed to be perpendicular to each other might be 2 or 3 degree off.

 

The Possible Solution

In the picture, you see the rig is made out of 3x 2'x2' ceramic tiles (just marble pattern). The reason for select ceramic is for its rigidity -- less warping. Then, they are clamped together with wood working corner clamps, forming a corner... hopefully as close to perpendicular to each other.

I am going to stick a lot of 3D scanning dots on these three surfaces... and use them as global locations. So the scanning paths will be carefully selected to have these "global" dots in each view as much as possible. So, once the scan is done... I can go into a mesh program, either in Blender or SolidWorks, and averaging and fine the 3 perpendicular surfaces... and use them as handles to "twist and distort" the whole thing back. That is, the 3x perpendicular surfaces now serve as my Book Endings to limit the errors and they are the reference surface to restore some of the accumulated errors.

Of course, in reality, the 3x surfaces are not going to be 100% perpendicular... but all I need is them to be within an acceptable tolerance. Or, I can measure the angles among them, and "twist" them back in the model accordingly.

 

I wish I could find matte surface tiles... unfortunately, no such luck. So, I will have to paint or spray the surface with something matte, or the permanent AESUB spray I have (not sure how durable that spray is, the white can).

 

Wish me luck!

 

image.png


Edited by Hempstead
Link to comment
Share on other sites

Ha... didn't even need to use global dots. Although the scanner software was complaining about the 3 "walls" need global locating dots (the scanner uses IR, so it needs reflective dots, not just plain black/white dots.)

Instead of standing it up vertically like in the picture I posted a couple of days ago, I am laying it down (propped up inside with a machinist gauge stand) butting against the floor and the far rear wall. This is for two reasons:

1. I know exactly the angle for the left plane and the bottom plane (10 degree). So, from the bottom plane and the rear plane, I can derive the left plane.

2. Most importantly, instead of using the expensive AESUB spray (great product by the way, highly recommended), I am using the much cheaper and messier Gold Bond body powder. 

Gold Bond powder doesn't stick too well on vertical surfaces... it kind of... but easily disturbed, and difficult to dust evenly. So, I bought a baby powder puff for that.... kind of works. But now I have a mess on my hand. Oh well...

Now I just have to figure out a way to make it comply to my will in Blender. I could cheat from here on... like I already know four of the most important clamping planes to constrain the geometry in (the 4th one on the top is just 10 degree off against the bottom, and the right plane is not exactly important, precision wise). So, I could just import it into SolidWorks, construct the 4 planes, and start slicing to get section. contour curves and force the geometry into the clamping planes. Sure, there will be inaccuracies. But how much? I suspect it will be very little. The thing is... for this particular piece, the 4 clamping planes are the "interface" that connects to other pieces, where the accuracy is required. The free form curved surfaces.... Nah... not really, precision without too much off accuracy would be good. However, this scanning project is more of a explorative nature. So I will try coax more accuracy out of it and figure out what tools are needed to do so.

The mesh you see in the following pictures is decimated to about 1,000,000 vertices, in case you are wondering. 500,000 vertices seem a bit "rough." It picked up the brush strokes on the powder as some undulating geometry (wasn't in the pure point cloud, or I couldn't see it in the pure point cloud without the connecting edges). No good. And this decimation, from the scanner software, doesn't seem too bad. It gives more vertices on the bend radius where it's needed, and kind of eventually distributed the vertices across flatter surfaces. So it appears that it does consider the curvature k in the decimation algorithm. Not too bad, not too dumb. But unfortunately it takes a very long time to run the decimation. 10 CPU cores / 20 threads fully 100% engaged took about 20 minutes (compiles Linux kernel arm32 in about 68 seconds with 20 threads!). Thank goodness my CPU is water cooled with an oversized 3 fans radiator; it can do 100% on 20 threads all day long without over heating!

A couple of global locating dots would probably help the walls (quality indicator on the walls are mostly yellow instead of green on the artifact). Nah... I will probably get away with it. Gold Bond powder and reflective dots are not very good bed fellows.

Screenshot 2023-01-29 at 9.47.38 AM.pngScreenshot 2023-01-29 at 9.47.57 AM.pngimage.png


Edited by Hempstead
  • Like 1
Link to comment
Share on other sites

Another scan... this time I put on some dots to help on the scanning of the 3x walls.

This is the textured scan (not a picture). Basically, it's a screenshot of what I see on the scanner software after the texture is applied to it. You can even see my finger wiping the powder away to apply the dots. And you can see I have too much powder. However, now the scan quality indicator on the walls are pretty green!

Next scan. I will have to either watch the powder or switch to AESUB spray.

 

null

image.png

  • Like 1
Link to comment
Share on other sites

2 hours ago, Mapi said:

wouldn't a checkerboard pattern help?

Chessboard_calibration_setup.png

Not really. It’s actually worse b/c it’s too regular.

You see, think of it this way. The scanner only has a limited window of view. That is, it cannot see the whole thing at once. So, it has to run something like a pattern recognition to help it localize it’s position, a SLAM (Simultaneous Localization And Mapping) to match existing data it has in order to locate where the new data is relative to the existing. If you watch those rotating tables or the calibration boards that come with 3D scanners, you might notice those locating dots on them are very irregularly placed. Repeating and regular pattern confuses pattern recognition.

 

Link to comment
Share on other sites

In fact, I think the “pattern” of  “global dots” I have in there is not very good. They are “unique” alright, but not locally unique enough. Ideally, you want every view to be able to see a 3-dot unique combination (3 points defines a 3-space plane). So, I might want to add a second loop, but stagger the dots. That is, draw a larger loop line, put a new dot in between each pair of two old dots, but on the larger loop line. But, put them in at a random manner so that each three-dot form a unique geometric relationship.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...