I have finally managed to build the gimbal, and even tried flying with it on Aerobatics Online Caucasus sever in DCS =)
I can say it’s great! For now, I’ve used rubber bands for stick centering, and they work pretty well. I noticed that I haven’t been using the software force trim function much during this flight. A lot of heli pilots were online, so I’ve had a great opportunity to put both the gimbal and pneumatic mod for the collective to a good test 😀
I am waiting for 50mm MAL16-50 pneumatic cylinders to arrive, hopefully with them installed the stick will feel perfect. The collective pneumatic mod still holds together, I am beginning to think it’s really safe to use. A couple more weeks will show if I am wrong =) The new gimbal will be released tomorrow, if time permits, I will also be making a couple of videos about the new stuff soon.
After finally getting some long enough sleep I thought again on my failed attempts with a Melexis sensor. The sensor itself is quite precise and has some DSP onboard, so I tried it again with a spherical gimbal and noticed that depending on how close a magnet is to the sensor, it outputs not a circle, but a square, inclined to 45 degrees. I thought, “- what if I simply cut excess values and make it a square?”, and did just that. The idea behind it was that jitter of the point in a joystick tester sketch seemed minimal, so the physical precision of the sensor looked like being enough to work well. As long as we have a 15 bit external ADC that powers our gimbal, we should still have something like 4096 points per axis even with this reduced range, which is plenty.
Now, if we use a disk magnet instead of a square one, unarrested twist axis is not an issue anymore, it doesn’t affect X and Y positions in a big way. So this design seems to be perfectly fine for vertical sticks, or sidesticks, and I think with a pneumatic mod it can be as good for everything else. Its beauty lies in its mechanical simplicity, only a few parts are needed, it can be quite small in size.
I think I will make, test and publish both versions so everyone will be able to choose something for himself =) There’s also a third version, the 608 and MLX based one, its fate will depend on a degree of success of the spherical bearing based one =)
Meanwhile, some progress on the 608 and SS495A based version:
I’ve printed and assembled both versions I was talking about in the previous post, and sadly, I had to revert to using SS495A sensors. That’s because the MLX sensor is not so good at displaying values at the angles of the square, like x:1000,y:1000 or x:10,y:10. It also has quite a high jitter near edges of axes. If someone has some experience with these MLX sensors (I am probably doing smth wrong) plz share it with me =)
Meanwhile, I’ve redesigned the new gimbal for use with trusty old SS495A sensors. I am pretty sure it still needs some adjustments, but it uses the same distance from sensor to the magnet, and same 6x6x4 magnets (5x5x5 mod will be available as usual) as well, so I think we will see it in action soon enough.
I am now working on two reinforced gimbal variants. One of them is based on an ordinary 608 skateboard bearings, another one – GE25 ES-2RS spherical bearing. Both of them will be able to handle springs, rubber bands, pneumatic cylinders, etc. A CJMCU-93 module (MLX90333) is used as a magnetic field sensor.
The fate of GE25 ES-2RS one depends on whether I will be able to prevent it from twisting or not (i have an idea involving _| shaped bracket, 2 pneumatic cylinders, and 2 spherical heads now). If you have some ideas about how to lock “twist axis” of a spherical bearing, please share them in comments =) Here are some pictures of the GE25 testbed and 608-based design.
After adjusting some tolerances and strengthening some parts, I am releasing pneumatic actuator mod for public testing. I will need a month or so to tell if additional load affects the lever in a bad way. Meanwhile, I can say it feels strong enough and is great in flight. If you have printed and assembled the lever by yourself, and are able to reprint some parts should unforeseen problems occur, it definitely worths a try!
I have also reorganized files for collective lever mods and merged them into “Collective levers” folder.
I finally got my MAL16-150 pneumatic actuator from Aliexpress, and here’s what I’ve been able to do with it so far =) This will be a long post, I will try to describe my experience of designing and testing these upgrades so far.
In short, how does it feel in flight? I’d say it’s the best version so far. Moves buttery-smooth, yet boldly holds its position in all of the lever range, a smooth resistance of an actuator is a completely new feeling that adds to your virtual “seat of the pants” sence. More below =)
I’ve made a few adjustments to collective levers building process recently, and after some testing, I think they are good enough to be used =)
When you attach throttle grips, turn resistors fully to the left and then just a bit to the right to avoid its physical deadzones (before it was “fully to the right”, so not much of an axis was left for past idle stop detent movement). In theory, this will allow for more precise throttle movements below idle-stop detent in DCS. In practice, it’s not that important right now, but may be useful for future updates.
I have adjusted master controller firmware for a larger axis range and added a new parameter to make it configurable:
#define COLL_HEAD_DCS_HUEY_COMPAT_MODE_BUTTON_HOLD 50 // how long to hold throttle up/down buttons, adjusted depending on idle stop axis range (smaller range- bigger hold time and vice versa)
I’ve also changed the default Huey head switch modes configuration so you will be able to assign DCS Huey switches in a scale way without reconfiguring them.
An important update to master controller sketch is here! It’s now split into multiple small files.
This approach helps to keep your preferred configuration when updating software: all user configurable settings are now stored in a separate file – a_configuration.ino, just update your old file with new parameters if needed and replace the one from the repo with it! Having multiple files instead of one huge file simplifies navigation through source code as well. All these files will open as tabs in your Arduino IDE (it will actually concatenate them in alphabetical order while compiling, that’s why file names start with letters). If you want to know more about how Arduino IDE handles multiple files stuff, please look at this page.
Let’s look at the new file structure:
master_controller.ino // this file contains joystick and object definitions, all external libraries should be included there
a_configuration.ino // all user-configurable parameters are there
b_main.ino // global variables definitions, main subroutines are there.