Steam controller is a nice controller, but discontinued and they will begin to fail!
My analog joystick module had just became too worn. It started drifting down sometimes and extreme inputs (100%) was no longer possible. I also looked at an analog scope and noticed the signals are very, very noisy!
Cleaning the module (the actual potentiometers) did reduce the noisyness, but extreme inputs were even more difficult to do.
It is difficult to source analog modules. The ones I got had huge deadzones and looked terrible on hardwaretester.com/gamepad .
So, I ordered a bunch of (possibly better quality?) analog modules from konsolowo along with PS4 Hall Effect modules. I just decided I wanted to try how the Steam Controller handles them.
I had already determined the pinout of the Steam controller. It doesn’t use any of the common pinouts, it’s a cross breed between PS4 and Xbox =). You need the black sensors on both sides, in other words, ground is always furthest away from the button (pin 3). It’s the black sensor if you order the modules with black and yellow (orange) sensors =). By combining sensors from 2x PS4 (or Xbox) you should be left with one suitable for the Steam Controller and one suitable for Xbox PS5 (for reference https://www.reddit.com/r/ConsoleRepairUK/comments/18i6al8/ps5_ps4_xbox_hall_effect_analog_stick_pinout/).
Now, when changing the sensor I loosened a magnet. You might not need to calibrate if you don’t, but I was forced to. These sensors can and should be calibrated to get the centerpoint right. However, I’ve noticed (when playing with the dirty analog module) that the Steam Controller uses some kind of auto-calibration; it’s “calibrate” option does nothing in Steam and there is no manual calibration option at all. The centerpoint is calibrated automatically!
But if the magnets are not aligned, you might either bottom out on the 0v (minimum, obviously) or 2.8V (maximum). Also, if the “center” value is way out of range, the Steam Controller (Firmware!) might not be able to auto-calibrate the center.
There is something to be improved on the maximum range. See the attached screnshot - this is about as good as it can get. I was once able to get an even better result, but it’s a bit inconsistend.
Also, I suspect that sometimes the calibration might get corrupted during play. I’m not sure what is going on, but I suspect it’s because when pressing the thumbstick button, the values might overshoot because of how the hall sensors work. I’ve seen this problem with an 8bitdo controller (Pro2 Hall Edition), but it has a manual calibration option, too. And, the Steam Controller calibration algorithm is meant for analog potentiometers.
WARNING: Some actual long-term testing to make sure these modules are actually useful, and to determine if the above problem is a real one and how severe!
ABOUT CALIBRATION:
It’s a bit more difficult to calibrate the module on a Steam Controller because of the auto-centering feature on the controller. It’s still worthwhile since the circularity test will be totally out-of-whack if you are bottoming out the sensors. A multimeter and an oscilloscope can become handy to help to see if you are bottoming out. A good rule of thumb is to measure the neutral (center) raw value from the controller, it should be around 1.4 - 1.5V. If you can not measure during calibration, then if the circularity test is “lopsided” vertically or horizontally, then the input needs to be moved away from that direction. When calibrating, and the firmware somehow determining the maximum range, a lot of rebooting is needed (since the situation is changing all the time)!
If you try this replacement/mod/upgrade, be wary OF THE FLEXCABLES TO THE TOUCHPADS. The Steam Controller will not boot if they are not connected. The flexcables are delicate. I had best ergonomic results by unscrewing the modules and carefully having the controller on a table with the modules resting on the PCB. Don’t try to do calibration in some un-ergonomic way trough some narrow space, you’ll just get bad results, get frustrated and possibly damage the flex cables.
TL;DR:
Is it worth to put in Hall Effect modules? Maybe. If your analog pots are really end-of-life, then they sure are usable replacement. But if you can find good quality analog joystick modules, with matching potentiometers with no deadzone, you are probably better off with them. Calibration might be even more tiresome than on some other controllers, but results might actually be better because of the intelligence in Steam Controller. I hope the controller was properly software-calibrateable (no auto-calibration). A possibly remedy: opensteamcontroller and open firmware?
I might make a comparison to proper analog modules, but it’s a bit tiresome changing the sensor modules. I’ve never tested the Steam Controller with intact, original analog pots on hardwaretester.com, and I could not find any previous screenshots/test. It’s possible the firmware never calibrated the analog pots any better; I don’t know what the reference functionality was.
Pictures might be coming online later. If you have any questions, please do ask!
Hall effect sensors may be slightly temperature sensitive and if that is the case, that information would be in the sensors datasheet. (This wouldn’t be an issue on a hall effect counter where the sensor would be connected to a Schmitt trigger and the signal is either on or off.)
For a precision application like yours, there could be a few problems stacking up from a possible software issue combined with temperature drift.
If there are software issues, it could be as simple as a min/max issue with the buffer that stores the stick position. (It’s fairly easy to get rounding errors that stack up after a while.)
Obviously, I am spitballing some theories to why your calibration gets corrupted, so take them with a grain of salt. My limited experience with hall effect sensors has been that they are hyper-sensitve and I have usually had to code around any kind of drift or sporadic readings. Hell, anything that has a magnetic field (just about everything) can upset the readings on those things.
Gots any datasheets or specific part numbers for the hall effect sensors you are using? (I believe you listed some module types, but actual part numbers could change from module to module.)
There is very little information on the Hall Effect sensors on these modules!
https://www.youtube.com/@UberMicroRepairs is one good (excellent!) source on installing these modules (problems and correct ways on installing them).
I forgot to say the exact modules in my post. They are the Ubituitous Ginfull sensors. These ones have L-8L (yellow) or R-8L (black) on the PCB, which is red and black text on it. Early Ginfull modules have problems with jitter (a non-issue, really), which was fixed in later batches but at the same time introducing an even worse problem, huge lag (presumably because of the filtering they’ve used to counteract the jitter). But these [LR]-8L’s should be better in terms of lag again.
The chips itself have markings “93L35”, they are 6-bin chips and tiny. I could not find their datasheets.
The well-known problem with these Hall Effect modules is that they only allow adjusting centering. So they will “work” in practically any controller out there, but more often than not there will be huge lopsided deadzone(s) caused by the H/W in combination with the previous calibration data. The SC is not that bad since it has some intelligence (I’ve deduced by test) but this can bring it’s own problems.
I’m not aware of any of the problems you’ve mentioned (but haven’t personally used DIY Hall Effect sensors in any controllers before).
There are calibration boards out there, which add a calibration mode between the controller and the module to also get the full range of movement in use. But Steam Controller has no room for those (the shell already has indentations for soldering spots and a mechanism for the back button, so this is feasible only if one is willing to sacrifice a back button or mod around it). Asides from centering and calibration (which needs to be manual!) there is no large issues AFAIK. They are widely installed in modern console controllers. PS4 and PS5 contorllers can even be calibrated (by undocumented USB commands), so they don’t need the boards.
Thanks for the additional info as it gave me a little more clarity on what kind of undertaking this is. I know electronics, but I really didn’t know the specifics of controllers. It didn’t take me long to get caught up, TBH.
That sucks. Before I was finished reading your full comment, I was already thinking of a way to intercept the signal for calibration. It seems that is already quite common and not easily possible for you.
My next thought was to 3D scan and print out a modified shell with a bit more room for electronics. Based on your description, that sounds tricky as well.
Whelp! I am effectively useless here and was hoping I could’ve helped a little. Doing extensive modifications to things is something I really enjoy, too.