
Flight simulators need precision, but ordinary joysticks isolate pilots from the action. Zeroshot, a creator who goes deep into virtual skies, was painfully aware of the gap. Commercial choices for force feedback exist, however they are expensive and difficult to get. Instead of compromising, he designed his own from scratch, integrating 3D printed parts, stepper motors, and ingenious circuitry to create a controller that resists every movement.
The construction process begins with the gimbal, the central component that allows for smooth motion in two axes. Zeroshot created a base in which both the inner and outer frames rotate straight from fixed locations. Eight 608zz bearings ensure smooth rotation at each joint, while 3D printed pieces make up the lightweight structure. Threaded inserts and M3 bolts keep everything together. This mounts two Nema 17 stepper motors directly to the base, reducing weight and making modifications simple.
- Military-grade Space and Flight Sim Precision. Customizable options including all the control surface options required to achieve the exact level of...
- New Mini Analog Stick Control Surfaces: Control pitch, roll, yaw, backwards, forwards, up, down, left and right as well as gimballed weapons that are...
- RGB Backlighting: Many PC peripherals now feature RGB backlighting and the X-56 is no exception. Use the software to set the color of the lighting to...
Belts connect the motors and gimbal to impart force. A GT2 timing belt winds around pulleys: a small 20-tooth pulley on each motor shaft and a huge 120-tooth pulley on the joystick axis. Six motor spins equal one full joystick movement, which multiplies the torque and creates significant resistance. The motors are controlled by TMC2208 stepper drivers, which are coupled to the central brain, an Arduino Micro.

Accuracy is required for position tracking, particularly when using user input. Stepper motors lose count when moved by hand, skipping steps. Zeroshot used AS5600 magnetic encoders with small diametric magnets mounted to the motor shafts. Magnets placed within 3mm of the sensors provide precise angle readings regardless of external pressures. The Arduino reads this data and sends it to the computer as a regular USB HID device, just like any store-bought joystick.

Assembly was not without its challenges, as early tests showed the gimbal binding when moving both axes at once, caused by over constrained pivots. Moving the inner points closer to the center fixed the issue and expanded the range. Belt driven actuators caused frame collisions, fixed by redesigning the bearing mounts. Each iteration got smoother and turned a stiff prototype into a responsive controller.Everything fits inside the base. A 12v 10a power supply powers the system through a DC adapter plug. Solid core 22 AWG wire connects components on a breadboard for easy adjustments. The Arduino Micro drives the motors and emulates USB input, sending axis positions and button presses. A custom 3D printed grip has a micro switch for a trigger, adds firepower to the flight controls.

The Arduino code reads encoder data, uses it to nudge the joystick back into place with some springy feedback, and sends the necessary HID reports to bring everything together. The stick appears in MS flight simulator as if it were designed for the purpose. However, getting the motors to resist your movements is a different issue; turning them requires a lot of power.Zeroshot progressed to the point where they could perform a few difficult landings, struggling against the resistance every step of the way, before programming in certain sequences for auto takeoffs, simply watching the stick go back and forth on its own.

The motors provide excellent, fast movements with just enough strength to make everything feel solid – and a huge advantage is that diagonal inputs move without becoming stuck, as the old one did. The basic feedback is quite simple – just a steady gentle tug back towards the center – but it offers up a plethora of possibilities for more complex effects such as turbulence or stall warnings. To be honest, breaking a few printed pieces throughout the testing process proved to be a blessing in disguise in the end.
[Source]





