Thursday, April 18, 2024

My Adventures in Replacing the Left Joystick on a PS5 DualSense Controller

I don't recommend this for a beginner at soldering, and yes, it involves soldering.  And yes, I'm a beginner.

I didn't think it required soldering to install when I ordered the part.  I thought maybe it snapped in or something.  Most controller analog joystick modules come with a bit of board and a ribbon cable.  You plug it in, screw or snap it in, and you're done.  What really fooled me was that this came with tools to disassemble the PS5 controller: a screwdriver, a couple of pry tools, and hefty tweezers.  

Once I realized I would need to solder, I scoured the listing page for any mention of it, and at the bottom of the description, it says, "The PS5 controller analog stick replacement to replace need to weld".  So there you go.

The analog stick kit I bought [Link]

As kits go, this is a good one.  It comes with four joystick modules: three more than I needed, but there were similarly-priced kits with 8 or a dozen modules.  Again, I only needed one and the tools were nice to have, though I already had what I needed to take apart a DualSense, since a few months earlier I had replaced the battery.

Anyway, I get the part, I open up the controller, and I find out it's soldered to the board.  No problem, I think, soldering is perfectly doable.

The joystick modules

Each joystick has 14 solder points, not counting the red and black wires in the middle that go to the haptic motors

I do some Google searching, and read some articles. I open up YouTube and watch some videos.  Everyone says that soldering is great and I should try it.  I should try it!  It's definitely a skill that I would like to have, and it'd be great to have some equipment for it... for future tinkering.

The soldering kit I bought [Link]

So I fire up Amazon and buy this kit.  It's cheap, but not the cheapest.  It comes with most of the essentials, and even includes a multimeter so you can verify voltages across your welds (not that that will be helpful for this project, but again... future).

I also posted about my project on social media and did some more reading, and one thing people recommend is Flux.  I watch some videos about flux specifically, and indeed it seems to be very important to dissolve the oxidation layer on the surfaces of metals so they can actually mix. So, I additionally order a tube of the stuff.  The kit, as it turns out, does come with some flux, but it's very gelatinous, stored in an open-ended tiny box.  What I ordered comes in a syringe for easy and precise application.  I was glad that I got this.  I could have managed without it by scooping it on from the little box using tweezers, but it was pretty convenient to use, and not very expensive.

Flux tube [Link]

Finally, everything arrives (I used next-day shipping, so it was pretty fast).  I set myself up outdoors in the carport for good ventilation, plug in my shiny new soldering iron, and settle in to work.  The first thing to come off are those wires for the haptic motors.  They're definitely in the way of accessing all of the other welds, and removing all four wires allows me to work on just the board, without the rest of the controller tagging along.

My soldering setup

I touch my soldering iron to the welds, and they melt like butter.  I take the wires out, and the board is free.  That was so easy.  Now for those welds that hold the joystick module in place.  I liberally apply the flux to all of the welds.  

I touch my soldering iron to one of them, and wait.  And wait.  Nothing is happening.  The flux is vaporizing, but the metal is not melting.  At all.  I turn my soldering iron up to its maximum setting, 450 degrees.  Something is happening, but not much.  I use the solder wick to soak up the melted metal... barely.  The YouTube videos I had watched of people removing this specific component had used a heat gun and melted another metal onto the solder welds.  I don't have a heat gun, but I try melting some of my kit solder onto the welds.  It helps, a little.  I am able to soak up the spare solder with the solder wick, but it is hardly making a difference, especially down below the surface of the board, and after a while I can see that I'm not making much progress.

My progress after the first day

I had read something about Sony using non-lead solder for these components, so I once again did some searching around.  It turns out that for a job like this, you need to melt in a special alloy that lowers the melting point of the existing solder.  

Great, yet another thing to buy.  Would this end up costing more than if I had simply bought a new controller?  I don't want to do the math yet, but it seems to be approaching that point.  It's a sunk cost, though, and the only way out is through.


Removal Alloy [Link]

After more research, I bought some removal alloy.  Was this the last step?  Would I be able to melt away enough to remove all 14 pins at once?  Would I need to use a heat gun, or get some sort of mechanism to clip the board in place?  Time would tell.  Not much time, though, thanks to overnight shipping.

The next day, removal alloy in hand, I jury-rigged a binder clip to a semi-flattened aluminum can to hold the board in place.  This freed my hands so that I had better control over what I was doing, and my fingers could also be further away from the hot tip of the soldering iron.

Board clipped in place, I once again applied the flux, then melted the removal alloy onto the contacts.  It melted readily, and I was able to use the spring-loaded suction tool to get a significant amount of solder out of most of the pins.  There are four big, hefty-looking pins that look like they are for structure rather than connectivity, and these were more stubborn.

It took a few applications of the flux, the alloy, and wicking, but I could see I was making progress.  The smaller pins I could get to wiggle, but the larger structural ones took a bit more work.  I went and got a vice grip to assist in pulling the component free.  Finally I got enough of the solder off that I was able to pull it out.

Yanked out like a tooth.  Not that I've ever used vice grips on a tooth.

The site was pretty gunky with flux, and I wanted to make sure it was clean, and also free of the residue of the removal alloy.  A quick raid in my wife's our medical supplies yielded some 91% isopropyl alcohol and q-tip cotton swabs.  The video I had watched recommended 99%, but I was not about to buy yet another thing if I could avoid it.  The flux gunk and metal residue came off easily enough with a few alcohol soaked q-tips.

All cleaned up

During the desoldering process, I had made a mistake that would later come to bite me:  I nicked the corner of one of the plastic pieces sticking out of the board, and it melted a little bit (the black piece in the center of the right edge in the photo above).

Next I put the joystick component in place, making sure the pins all came through (one of them was bent down, so I gently unbent it with pliers.  First I welded two of the structural pins diagonal from one another, and in doing so I found out why they had been so difficult to desolder:  they are indeed structural, and in heating them up to the melting point of solder, they take quite a bit longer than the other pins.  This is because they are connected to all the other structural metal in the component, which acts as a big heat sink.  I think it was less than 15 seconds, but it was significantly longer than any of the other pins, which heated up to the point of melting my solder in two to three seconds.

My beautiful solder welds

The joystick component in place

Nubs on, reassembling the controller.

Melted ribbon cable plug, fixed enough to work.

Here is where I discovered the gravity of my melting mistake earlier.  This is where one of the ribbon cables plugs in.  My nick with the soldering iron had deformed the opening and the ribbon cable would not insert.  Thankfully, I was able to heat up the tip of the pointy pliers and bend the edge back out enough to make room for the ribbon to go in.  Crisis averted.

Haptic wires re-soldered, board screwed down, and battery compartment in.

With the controller re-assembled, it was time for the testing!  I powered on the PlayStation 5 using the controller, opened Assassin's Creed Mirage, and observed the stick movement, or rather, the lack of controller stick drift.  It worked!  My reticle is no longer constantly pulled to the left, and Basim doesn't dive to the left out of the bush he's squatting in to avoid the guards he's about to murder (seriously, he kills a lot of guards in this game).

The cursor is not moving when I don't move the joystick (yay!)  It also does move when I move it (double yay!)

Basim is now free to move about Baghdad without randomly veering to the left.

So, what have we learned?  How to solder, and various pitfalls thereof.  

I shied away from adding up the cost earlier, but I would like to know how it came out:

  • Joystick kit: 11.99
  • Soldering iron kit: 17.99
  • Extra flux tube: 7.99
  • Removal alloy: 14.95
    • Total price of components: $52.92 + tax
  • Doing it yourself: priceless?

Was it worth spending all of that money, and all of that struggle, and potentially being exposed to dangerous metals and fumes to get a working PS5 controller?

I mean, I could have bought a new DualSense controller for $69 MSRP (less, if it's on sale), and if you include the replacement battery I bought for it a few months ago, if I had just bought a new controller instead, I would have spent the $69 instead of the $67.04 I spent replacing both the battery and the joystick component.  It wasn't drifting that bad in February, at least not so consistently as recently.

But it's not like I got nothing out of the deal.  The next soldering I do I basically have everything I need (except maybe a heat gun--and those heat shield strips to go with it...).  I just don't know when that'll be.  I've made it to the ripe old age of 43 without soldering anything, who knows when the occasion will arise again?  Of course, now I'll be looking for opportunities.

And hey, I do have three more analog stick modules for a PlayStation 5 controller.  Is your controller drifting?

Saturday, June 25, 2016

Moving on from Gentoo to Ubuntu

When I started running Linux, Gentoo was a good fit for me because I wanted to learn what was going on under the covers.  Gentoo (at least, eleven years ago) forced you to edit every config file manually, and the default install had you configuring and compiling your own kernel.

It was a great learning experience, and I'm glad I did it.

But at this point in my life, I have better things to do than to babysit weekly "emerge --avuDN world".  I let my Gentoo box get out of date, I didn't want to bother learning how to set up my own systemd services, and when some update's dependency tree decided I was switching, it stopped booting.

I was able to recover it at the time, but then this week (and I had been putting off rebooting for months) my Linux machine (frodo) took a nose dive and kernel panicked.  When I rebooted it, it was in such a state that I considered my OS installation 'totaled.'

For a while I've been running certain things off of my Linux box.  I've got a couple of RSS feeds which trigger IFTTT events, but I also have @twooshbot now, and any more than a few of hours of downtime results in missed data. (I need to add some functionality to read more tweets at startup, which will help with that.)

Anyway, on Friday evening, I found myself in the position of needing to pick and install a new distro, and fast.

A quick trip to DistroWatch, and I decided on Ubuntu.  It was dead simple, there are spoon-fed answers to almost any question online, and it's based on RedHat, which I am familiar with.

I was able to get @twooshbot back up and running that evening, and I've been slowly adding services and scripts to get back the functionality I'm used to (Dropbox, apache2, samba, vim, screen, etc.)

Anyway, I look forward to LTS support and dead simple updates.

Saturday, January 10, 2015

Gentoo is not ready for systemd

This is mostly just a rant into the aetherwebs, and it won't make a lick of sense to someone who doesn't manage a Gentoo Linux system.

You have been warned.  Move along.

Yeah, I know systemd is optional (for now) on Gentoo.  The thing is, unless you take specific steps to avoid it, it just happens to your system.  This is a bad way to introduce such a fundamental change.

Several months (a year?) ago, my emerges simply stopped working.  There were package conflicts all over the place, and I didn't have time to untangle everything and get to the bottom of it.  So, I just stopped updating.  Obviously, as a Gentoo user, I hated this.

Now, months later, I decided to build up a new system on my newly-obsoleted laptop.  It looks to me like systemd is the future, so I go that route.

Here's what doesn't work, out of the proverbial box:
  • Service configurations usually adjusted in /etc/conf.d/
  • DHCP
  • crons
  • webalizer
  • Dropbox (at least, the way I use it)
I was able to figure out how to get dhcp working via NetworkManager, and that got me to the point of a functional-ish system at boot.  That was the easy part.  Next, I transitioned what system cron jobs would fit into cron.hourly and such.

I still haven't figured out how to set up user-specific timer jobs that run on a schedule (say, every 15 minutes).  The file formats are simple enough for services and timers, but I can't get ssytemctl to recognize the files I place in ~/.local/share/systemd/user/.  In theory, though, that should all work, and it would be worth figuring out and moving forward.

It's also worth noting that the Gentoo Handbook and other documentation has thus far not been updated to support users building with systemd by default.

Here's what is flat-out broken for me, that I had working in my previous system:
  • Dropbox running in the background, launched the first time my user logs in.  Since Gentoo completely disables running anything out of /etc/init.d, I would need to write my own service file, which I'm not prepared to do.
  • Webalizer running just before the apache log gets zipped up by systemd.  This is probably as simple as specifying "run this task just before you rotate the apache log", but I don't know enough about the guts of systemd's log rotation for that.
For now, I think I'm going to revert my new system back to OpenRC.  It's the path of least pain, now that I know how to exorcise systemd from a box.  During this whole process, I got my old system's portage tree untangled.  I basically had to move the world file to a temporary location, untangle the system dependencies, depclean everything, restore the world file, and re-emerge it all. 

See, most of what my Linux system does is act as a web server, and a Dropbox client.  I have several cron jobs that rename files in Dropbox which get uploaded via IFTTT and other automated means, and sometimes these files have characters in their names that aren't valid on Windows.

Suffice to say that right now a systemd-based Gentoo system significantly fails to meet my specific needs.  If it was just a desktop workstation, and I wanted the latest version of Gnome I would probably stick with that.

Hopefully these issues will get resolved in the future.  Maybe I'll even help that to happen.  In the meantime, my main Gentoo system is dropping systemd. I have other priorities.

Saturday, June 15, 2013

Three Weeks with the Helix: My Thoughts on Windows 8 and Hardware

A couple of months ago, my laptop's charger died, and I suddenly found myself in a computer crisis.  (At the time I thought it was the battery (again--this machine has killed 2 batteries so far), hence my frantic search for a new machine, but it turned out to only be the charger--it turns out I have access another one I can use in the meantime.)  I needed a dependable machine; one that was good for every-day tasks such as browsing, e-mail, documents, and of course blogging, but also good for programming and other tweaking I like to do.

I had been keeping my eye on the market for about a year, and so I decided that then was the time (even though I knew Haswell was just around the corner--silly me).  I was very interested in Windows 8's new touchscreen features.  I tested the beta builds of Windows 8 on my laptop, and I found them to be very fast and stable, but I determined that the "Modern" interface (a.k.a. "Metro") was pretty much useless without a touchscreen.

Nevertheless, touchscreen is the future of computing interfaces, but by the same token, keyboards and mice/trackpads are also the present state of computing interfaces in Windows.  I definitely needed both, without compromise.  The Microsoft Surface Pro was too inflexible as a laptop device--the "Touch" keyboard is worthless to me, and even with the "Type" keyboard, the screen is only supported at one angle, and then only when it's on a flat, stable surface.  No, thank you.

I really liked what I saw coming out of Lenovo lately.  The Lenovo Yoga 13 looked pretty awesome (I had tried it at the store), and the Helix looked amazing, but it wasn't out in the U.S. yet--or was it?  It wasn't for sale on Lenovo's website, but I was able to find it from small sellers at Amazon and elsewhere.

After looking around for the best price at a somewhat reputable retailer (as far as I could tell) I found a site with a coupon code that was out of state (no tax), and bought it.

I was very happy with the touchscreen interface, for the apps that were available.  I found the selection of touchscreen apps barely adequate, but that situation will improve with time and consumer adoption.  There were a few kids games that Shoshana in particular loved to play, and the tablet form factor (and tent mode, and stand mode) is a great feature for kids.

In daily use, switching between touchscreen input and keyboard/trackpad input was as natural as switching between mouse/trackpad and keyboard input on a 'traditional' machine: I was able to use whatever seemed appropriate and convenient to the task at hand.  I didn't find myself using trackpad gestures, since the screen itself was a more intuitive place.  Trackpad gestures will probably be more useful to someone with Windows 8 and no touchscreen (which I don't recommend).  Similarly, I completely ignored the "hot corners" functions of Windows 8, since those are built as a way for mouse users with no touchscreen to do tasks built for a touchscreen.

Keyboard replacement (left), and base unit (right)
To make a long story short regarding my ownership of the Helix, I was sent a unit with a French AZERTY keyboard dock.  I opened a support case with the retailer, and with Lenovo.  I was sent the QUERTY keyboard part, but with no way to open up the base unit and install it (without breaking anything), I had no choice but to simply send the keyboard back to the manufacturer, and send the Helix back to the retailer.

I was issued a full refund for my troubles, so I'm not out any money, and I have gained a lot of perspective on what I value in a computer.  Here are my notes from the Helix experience:
The detachable screen form factor was pretty awesome, though I did end up taking the base with me everywhere even if I wasn't using it.
  • "Stand mode" is great for using the touchscreen at an angle on the lap or a table.
  • In laptop mode it seemed top-heavy due to the "behind-the-glass" design, but this was never a real problem.
  • The 1080p screen was simply too small for the Desktop interface at 11 inches.  This is a fault of Windows 8, not the hardware.  DPI settings are simply ignored by too many apps.  The text was too small to read comfortably. The 13" Yoga is looking pretty good in that regard.
  • The stylus was nice to have, but with a trackpad not really necessary.
  • The Windows 8 Modern UI app ecosystem is lacking.  This may improve with time. BlueStacks is too cumbersome to really use for touchscreen apps.
  • Using the mouse buttons on the bottom corners of the rocking touchpad was wonky, and never worked the way I expected.
  • The function keys F1-F12 were toggled to their auxiliary functions by default. I had to hold the function key down to get them to work as themselves.
  • The function key was located where I expected the control key to be and vice versa.
One thing that surprised me was that I didn't like the pixel density.  I have pretty good eyes, and I have always sprung for the highest resolution displays that I can get on my laptops.  I have been very put off by all of the new computers these days with 1366x768 displays.  768 vertical pixels is equivalent to those 1024x768 displays we all had with Windows 95 on our 11" 3x4 monitors.  It's worthless for multitasking, or for reading text, and especially for editing code.  It simply will not do.

I was surprised, then, that 1920x1080 pixels was too small for me to find useful.  Yes, I could see everything, but I had to concentrate to actually read it one line at a time.  This also would not do.  So no longer can I simply say "increase the pixels"; I must find the right balance between screen size and pixel density.

To that end, here are some pixel density data points I have collected:

My Dell Inspiron E1505 has:
  • 1680x1050 at 15.4" 16x10 = 128.645 ppi
  • Equivalent size at 1080p 16x9 128.6 ppi would be 17.1"
Lenovo Yoga 13 has:
  • 1600x900 at 13.3" 16x9 = 138.0 ppi
  • Very similar to my E1505, and quite useable
Lenovo Helix has:
  • 1080p at 11.6" 16x9 = 189.9 ppi
  • Not useable
Dell Precision M4700 (encountered at work) has:
  • 1080p at 15.6" 16x9 = 141.2 ppi
  • Looked usable
The best pixel density per inch seems to be in the 140 range, not the 190 range.  If I want a 1080p screen, I'll need to go with something larger, like the 15.6".  If I want something smaller, I will need to sacrifice some screen real estate.  Suddenly the Yoga 13's screen resolution transforms from a disappointing spec to a sound product design decision.

I definitely like the Yoga 13, but I'm not sold on it.  My current machine is bulky, but it has suited my needs very well for over 6 years.  It's definitely on the way out, and has its problems:
  • Broken charger
  • Broken hinge 
  • Hot
  • If it gets jostled the wrong way, the screen goes dark and everything is unresponsive (ever since the hinge broke).
  • Battery life is down to about 40 minutes on a full charge.
  • Not to mention its 6-year-old specs.
...but I'm hoping it will hang on until I see what the new Haswell chips can do in a transformable laptop in the 15" range.  I don't want to feel like my new computer is a downgrade.  With the Helix's small screen, that was definitely the case, even with the increased pixel count.

Saturday, March 30, 2013

Coming Around to the Kindle Paperwhite

I like to make my buying choices intentionally.  I support the ecosystems that I think are best for the user, usually in terms of user rights and flexibility.  Not just for myself; I want ecosystems that respect the users' interests over centralized control to exist and be well supported.  This is why I initially bought HD DVD over Blu-ray, and refrained from buying iPhone (and every other Apple product).

This is also the reason I chose to avoid the Kindle.  Amazon has their own proprietary format and DRM for e-books; they don't support other vendors' books on their readers, nor their books on other company's readers.  I have found, however, that this restriction is easy to get around, with the right software.  I am free to buy e-books from any vendor and load them on a device from any vendor, Amazon included. 

In the 11 months since I bought my Nook Simple Touch, the market has evolved.  Both Barnes & Noble and Amazon have come out with lighted e-ink readers.  Both companies have tablet-style readers.  Barnes & Noble is spinning off their Nook division to a separate company.  An antitrust lawsuit has resulted in actual price differentiation in the e-book market once again, and Amazon once again clearly has the lower prices and best promotions.  In fact despite my owning a Nook, most of my e-book purchases have been from Amazon.  I have only purchased one (non-free) e-book from the Nook store.  The rest have been from Kobo, StoryBundle, and the Humble Bundle (and also one from Google for 25 cents).

I got a $25 Barnes & Noble gift card for Christmas from my parents.  I have loaded it onto my account, but I haven't spent any of it yet.  Every e-book purchase I want to make, it's never the best price.  I will probably use it to get the next installment in the Game of Thrones series (whenever that eventually comes out), since new releases tend to have the same price in most places.

There is also the issue of Amazon Prime.  Last summer, I switched from Netflix to Amazon Prime for streaming video.  Our Blu-ray player has built-in support for both.  The selection of free streaming movies isn't nearly as good, but they do have an excellent selection of TV shows, including all of Star Trek, Firefly, and several other sci-fi series.  The free two-day shipping from Amazon with no minimum order (which I was able to extend to four additional friends' accounts) makes it an excellent deal.  I'm hooked.

The value of Amazon's streaming would definitely be increased if I had a Kindle Fire.  Thus far, Amazon has not released their Instant Video player for Android.  This despite the facts that Kindles are built on Android, and they have a player for iOS.  Their excuse is that Android isn't secure enough, and their video partners wouldn't let them stream their content if they had an Android player.  This doesn't seem to have stopped Netflix, Flixster, RedBox, the Google Play store and several others from offering streaming players on Android. The transparent artificiality of this restriction alone makes me not want to buy a Kindle Fire.  It's simply a bad way to treat your customers, and it makes me want to look elsewhere.  The Kindle Fire devices aren't that good when compared to other tablets.  If I'm going to spend money on a dedicated tablet, I would much prefer a Nexus device.  All things considered, my actual plan for tablet functionality is to get a touchscreen Windows 8 convertible laptop/tablet.  My current laptop is nearing the end of its life, and I'm keeping my eyes open for devices like Lenovo's Yoga and Helix lines, which are full PCs, but also have tablet functionality and form factor, and a tablet app ecosystem that I believe will do well over time.

The other benefit of owning a Kindle device is access to the Kindle Lending Library.  The best way to take advantage of this would be with an e-ink reader, which is definitely my preferred reading medium.  If I were to get a Kindle Fire, I would want to keep my Nook around for most actual reading.  That's another reason I'm not very interested in the Fire.

When I purchased my Nook, I was aware that a GlowLight version was coming down the pike.  I chose not to wait and spend the extra money just for that one extra feature. Looking at the landscape now, the Kindle Paperwhite offers several advantages over my Nook Simple Touch:

  • Higher resolution, higher contrast e-ink screen
  • Built-in illumination - at the time I bought my Nook, I didn't want to be doing a lot of reading in bed.  These days, mostly because of how Shoshana's condition has effected our lives, I have been doing a lot of reading in bed when Elizabeth and I have different sleep schedules, and in darkened hospital rooms while Shoshana sleeps.
  • Access to the Kindle Lending Library
  • Kindle-specific features, such as "X-Ray", Whispersync, Time to Read, and upcoming Goodreads integration (Amazon is buying Goodreads). 
I don't regret buying my Nook.  It was a good decision at the time, and it was fun to root it and customize it. Managing the rooted environment has become somewhat of a chore, and it is a definite drain on battery life.  If I buy the Kindle Paperwhite, I will be able to sell my Nook Simple Touch for at least $50.  Including the skin and case (and the option of root or not) should increase that price.  I have some birthday money still burning a hole in my pocket.

I will miss the Nook's physical page turn buttons and wide grip.  I will miss the ability to supply my own screensaver images.  I will not miss the Nook ecosystem.
My folder of Nook screensavers.  Definitely preferable to Kindle's ads.