1. Do not share user accounts! Any account that is shared by another person will be blocked and closed. This means: we will close not only the account that is shared, but also the main account of the user who uses another person's account. We have the ability to detect account sharing, so please do not try to cheat the system. This action will take place on 04/18/2023. Read all forum rules.
    Dismiss Notice
  2. For downloading SimTools plugins you need a Download Package. Get it with virtual coins that you receive for forum activity or Buy Download Package - We have a zero Spam tolerance so read our forum rules first.

    Buy Now a Download Plan!
  3. Do not try to cheat our system and do not post an unnecessary amount of useless posts only to earn credits here. We have a zero spam tolerance policy and this will cause a ban of your user account. Otherwise we wish you a pleasant stay here! Read the forum rules
  4. We have a few rules which you need to read and accept before posting anything here! Following these rules will keep the forum clean and your stay pleasant. Do not follow these rules can lead to permanent exclusion from this website: Read the forum rules.
    Are you a company? Read our company rules

DIY Joystick. Load Cell design + Pseudo Force Feedback.

Discussion in 'DIY peripherals' started by stil550, Sep 3, 2022.

  1. stil550

    stil550 New Member

    Joined:
    Aug 28, 2021
    Messages:
    29
    Location:
    USA
    Balance:
    268Coins
    Ratings:
    +21 / 0 / -0
    My Motion Simulator:
    3DOF, Arduino
    Hello everyone,

    I was suggested to start a new topic on this project, so here I am.

    A quick preface to this. I'm a complete beginner to electronics and Arduino. My main goal is to build my own true force feedback joystick and I've been following a few threads out there on the home-grown solutions.

    Given that I'm a complete beginner, I'm not comfortable spending the money on the hardware (motors, controllers, etc) right from the get-go and figured I'll start with the baby steps.

    At this point, I've built an interesting (to me at least) concept of a joystick that relies on the load cells, rather than potentiometers or hall effect sensors.

    I've been reading a little bit on the perceived heaviness of the flight controls in the real planes, be that GA or military, and the overall conclusion I'm gathering is that they are a lot stiffer and a lot heavier than what we have with our desktop joysticks.

    It appears that the feel of the force in pounds, that you have to exert on the controller is a lot more, I guess "intuitive", than just relying on the movement/deflection of that controller. I can definitely second this, as coming from the sim-racing side of things, the brake pedal with the load cell is a much better feeling and easier to modulate, than the one that solely relies on the degree of rotation, rather than pressure.

    As you can see this is a very rough prototype at the moment. I don't know how far I will take in refining it, but will definitely print out a grip, attach buttons to it and put all the Arduino guts into a project box.

    Also this is a floor standing joystick to be mounted in my motion rig, hence the length of the control column.

    So the concept is to use two load cells, 20Kg for each axis of the joystick. The ones I'm using can deflect back and forth, resulting in positive and negative values.
    Since the whole concept is relying on me exerting the force on the joystick itself to get the reading, I didn't feel comfortable with the 3D printed parts and opted for the 2020 extrusion construction, hence the monstrosity you are seeing in the video. I also do not know the longevity of these load cells, I may very well snap one in half relatively quickly.

    I do have a working gimbal in it, it's just the deflection is minimal. The joystick does move, but only millimeters, at most a couple of centimeters. I've wrapped the load cell with a rubber cushion and it provides that additional motion, without which it feels too stiff and creaky.

    Now the really neat part is being able to connect this joystick's Arduino to the sim's telemetry and control the mapping of the load cell forces, to the window's joystick's deflection, based on the speed of the aircraft.

    Essentially being able to control how hard I have to pull on the joystick, based on how fast the aircraft is flying. This is where this whole "pseudo force-feedback" thing is coming in.

    I'm using FlyPt for the telemetry as I use it for my Motion Rig and its very customizable.

    So far the feeling is pretty good. I can't say that it is completely blowing my mind, but the feel of the joystick is A LOT better than your regular desktop controller.

    Prior to this, I've even built another joystick, based on the hall effect sensors, and used dampening rods to control the motion, so it wasn't springy and was very fluid. But I think I prefer this load-cell version to the other one.

    I'll keep this post updated as best as I can with the progress, but I don't know how far I can push this idea beyond just more clean-up and refinement.

    Hope someone finds this entertaining and maybe even useful.

    I've created a GitHub account to have the code posted. Still figuring it out so its pretty janky at the moment.

    https://github.com/Stil550/LoadCell-Joystick-with-FlyPT-feedback./blob/main/JoyLoadCell001

    • Like Like x 2
    • Creative Creative x 1
  2. Sieben

    Sieben Active Member

    Joined:
    Nov 6, 2018
    Messages:
    391
    Balance:
    2,216Coins
    Ratings:
    +115 / 2 / -0
    So, you have one Arduino and both positive and negative readings from one cell? Was looking for the code solution of this.

    I made mine like that though then. Two controllers, two cells.(one cell for it's own controller) and mechanical preloading-centering of the cell.)

    2.jpg.9247e7b8dc67d5dde43be9db553155c9 (1).jpg 3.jpg.5bd4489cacba69f6f8fdfa46fe254f1d.jpg 2.jpg.9247e7b8dc67d5dde43be9db553155c9.jpg



    Last edited: Sep 6, 2022
  3. stil550

    stil550 New Member

    Joined:
    Aug 28, 2021
    Messages:
    29
    Location:
    USA
    Balance:
    268Coins
    Ratings:
    +21 / 0 / -0
    My Motion Simulator:
    3DOF, Arduino
    I'm guessing it is the HX711 library. I didn't have to do anything special with mine and I'm getting positive and negative readings from the get-go. I'm using the GyverHX711 library as some of the others acted weird with my code and introduced lag or broke entirely and didn't deliver any meaningful values for me to use.

    Here is a quick test that shows both positive and negative values on my end:

    #include <GyverHX711.h>
    GyverHX711 scale(A0,A1, HX_GAIN64_A);

    void setup() {
    Serial.begin(9600);
    }

    void loop() {
    long test;
    if(scale.available()) {test=scale.read();}
    Serial.print("Raw Input: ");Serial.println(test);
    }

    I'm re-writing my code from scratch. I'll post once I have it fully working. I'm still getting a weird behavior/lag from FlyPT and I think I nailed down what is causing it, but no idea how to fix it or why it is happening in the first place....
    • Like Like x 1
    • Winner Winner x 1
    • Useful Useful x 1
  4. Sieben

    Sieben Active Member

    Joined:
    Nov 6, 2018
    Messages:
    391
    Balance:
    2,216Coins
    Ratings:
    +115 / 2 / -0