Like many of us, [Emily’s Electric Oddities] has had a lot of time for projects over the past year or so, including one that had been kicking around since late 2018. It all started at the Hackaday Superconference, when [Emily] encountered the Adafruit Hallowing board in the swag bag. Since that time, [Emily] has wanted to display the example code eyeball movement on a CRT, but didn’t really know how to go about it. Spoiler alert: it works now.
Eventually, [Emily] learned about the TV out library for Arduino and got everything working properly — the eyeball would move around with the joystick, blink when the button is pressed, and the pupil would respond visually to changes in ambient light. The only problem was that the animation moved at a lousy four frames per second. Well, until she got Hackaday’s own [Roger Cheng] involved.
[Roger] was able to streamline the code to align with [Emily]’s dreams, and then it was on to our favorite part of this build — the cabinet design. Since the TV out library is limited to black and white output without shades of gray, Emily took design cues from the late 70s/early 80s, particularly the yellow and wood of the classic PONG cabinet. We love it!
Both flexure joint designs make use of tetrahedron-shaped elements, allowing an object to pivot around a fixed point in space like a ball-and-socket joint. One of the joints, named Tetra 2, is perfect for printing on a standard FDM printer, and the 3D files were uploaded to Thingiverse by [Jelle_Rommers], one of the researchers. [jicerr] took the design and created a base to mount an HMC5883 3-axis magnetometer a short distance from the focal point, which senses the rotation of a small magnet at the focal point. An Arduino takes the output from the magnetometer, does the necessary calculation, and interfaces to a PC as a joystick. Demonstrates this by using it to rotate and pan the design in Solidworks. One thing to keep in mind with this design is that it needs a fixed base to prevent it from moving around. It should also be possible to integrate the design directly into the housing of a controller.
Another amusing application is to turn it into a pen holder with a chicken head on the front, as demonstrated by [50Pro]. If you have any ideas for other applications, drop them in the comments.
Many a gamer has found that after a few years of racing around the track or sending demons back from whence they came, the analog sticks on their trusty controller can start to drift around. Many times it’s a fairly minor problem, something you might only notice if you were really keeping an eye out for it, but it can definitely be annoying. Those handy with a soldering iron might just swap out the sticks for replacements once it gets to that point, but [Taylor Burley] wondered how difficult it would be to recalibrate the ailing sticks instead.
To be clear, [Taylor] acknowledges this approach is overkill. It would be cheaper and easier to just replace the drifting stick with a new one. Even if you take into account that new sticks might not be as high quality as the originals and could give up the ghost faster, this probably isn’t worth the effort. But that doesn’t mean it’s not an interesting hack.
In the video after the break, [Taylor] starts by explaining how stick drift occurs in the first place. Each axis of the stick is physically connected to the wiper of a potentiometer, so for 10K pots, the stick’s center point should correspond to a resistance of 5K. He then goes on to measure the resistance in a bad joystick, and sure enough, the center resistance is off by several hundred Ohms.
To fix this, he comes up with a simple circuit that places additional potentiometers between the wipers. With two joysticks and two adjustment pots per axis, that makes eight little adjustment wheels that need to be fiddled with to get the center points calibrated properly. In this case [Taylor] uses a controller diagnostic tool for the Xbox to quantify the impact his adjustments are making so he can dial it in perfectly, but the idea is the same no matter who’s logo is on the box.
The mechanical keyboard rabbit hole is a deep one, and can swallow up as much money and time as you want to spend. If you’ve become spoiled on the touch and responsiveness of a Cherry MX or other mechanical switch, you might even start putting them on other user interfaces as well, such as this Logitech joystick that now sports a few very usable mechanical keys for the touch-conscious among us.
The Logitech Extreme 3D Pro that [ErkHal] and friend [HeKeKe] modified to accept the mechanical keys originally had a set of input buttons on the side, but these were unreliable and error-prone with a very long, inconsistent push. Soldering some mechanical switches directly on the existing board was a nice improvement, but the pair decided that they could do even better and rolled out an entire custom PCB to mount the keys more ergonomically. The switches are Kailh Choc V2 Browns and seem to have done a great job of improving the responsiveness of the joystick’s side buttons. If you want to spin up your own version, they’ve made the PCBs available on their GitHub page.
[Tom Stanton] has been playing Microsoft Flight Simulator a lot recently, and decided his old desktop joystick needed an upgrade. Instead of just replacing it with a newer commercial model, he built a complete controller system with a long joystick that pivots at floor level, integrated rudder pedals and a throttle box. You can see it in action after the break.
The throw of the joystick is limited by [Tom]’s legs and chair, with only 12° of travel in either axis, which is too small to allow for high resolution with a potentiometer. Instead, he used hall effect sensors and a square magnet for each axis, which gives good resolution over a small throw angle. The pivot that couples the two rudder pedals also makes use of a hall effect sensor, but needs more travel. To increase the size of the magnetic field, [Tom] mounted two magnets on either side of the sensor with their poles aligned. To center the rudder pedals and joystick, a couple of long tension springs were added.
A normal potentiometer was used in the throttle lever, and [Tom] also added a number of additional toggle switches and buttons for custom functions. The frame of the system is built with T-slot extrusions, so components can quickly moved to fit a specific user, and adjust the preload on the centering springs. All the electronic components are wired to an Arduino Micro, and thanks to a joystick library, the code is very simple.
At a total build cost of £212/$275 it’s certainly not what anyone would call cheap, but it’s less than what you’d pay for a commercial offering. All the design files and build details are linked in the second video if you want to build your own.
[Christofer Hiitti] found himself with the latest Microsoft Flight Simulator on his PC, but the joystick he ordered was still a few weeks out. So he grabbed an Arduino, potentiometers and a button and hacked together what a joke-yoke.
The genius part of this hack is the way [Christopher] used his desk drawer for pitch control. One side of a plastic hinge is attached to a potentiometer inside a drawer, while the other side is taped to the top of the desk. The second pot is taped to the front of the drawer for pitch control and the third pot is the throttle. It works remarkably well, as shown in the demo video below.
The linearity of the drawer mechanism probably isn’t great, but it was good enough for a temporary solution. The Arduino Leonardo he used is based on the ATmega32u4 which has a built-in USB, and with libraries like ArduinoJoystickLibrary the computer interface very simple. When [Christopher]’s real joystick finally arrived he augmented it with a button box built using the joke-yoke components.
[Stevej52] likes to build things you can’t buy, and this Jetson Nano robot falls well within that category. Reading the project details, you might think [Stevej52] drinks too much coffee. But we think he is just excited to have successfully pulled off the Herculean task of integrating over a dozen hardware and software modules. Very briefly, he is running Ubuntu and ROS on the PC and Nano. It is all tied together with Python code, and is using Modbus over IP to solve a problem getting joystick data to the Nano. We like it when existing, standard protocols can be used because it frees the designer to focus more on the application. Modbus has been around for 40 years, has widespread support in many languages and platforms.
This is an ongoing project, and we look forward to seeing more updates and especially more video of it in action like the one found below. With the recent release of a price-reduced Jetson Nano, which we covered last week, this might be an excellent project to take on.