About Brad

All-around tough guy.

KitchenAid 2199840 O-ring Rebuild

While cleaning our KitchenAid KSCS25FJSS01 evaporator tray, I noticed that our water filter inlet line was weeping water and, fortunately, it was dripping directly into the tray. If the weep increased in flow, it may have started dripping on to the floor. I looked up the water filter housing, which had part number 2199840 that has since been replaced by WP2199840; however, local parts houses want about $150 plus tax for the darn thing. I figured the housing inlet and outlet quick-connects had failed and fortunately 97ktmduke shows how to repair/rebuild the existing housing.

I found a similar SharkBite adapter at Menards and, this evening, I’ll be using it to replace the existing o-rings at least than an order of magnitude of the price.

** UPDATE 8-7-2024 **
Worked like a charm, the KitchenAid’s water filter and ice machine are back in business!

** Update 8-17-2024 **
Fix is still working great and helped avoid purchasing most or all of these parts:

2199840 – filter housing
2209707 – tubing, filter inlet
2203127 – tubing, filter outlet

Pest-a-cator rubbish, at Menards!

I heard some scratching behind a corner in the basement ceiling, so I figured I’d check to see what Menards sells. They had a silly Pest-A-Cator 2000 Electronic Rodent Repeller in-stock, so I grabbed one. I was curious what was inside the box and what guarantees the manufacturer made.

The manual inside appeared to be some word salad that the device is a phase shifter for the electricity in your house. Seemed like a fancy phenomenon to me, so I decided to research it and see if there was any truth to it.

Brief enforcement history…

From 1985 through 1997, FTC brought law enforcement actions against six companies that manufacture devices like the Pest-A-Cator 2000. In 2003, the Pest-A-Cator was part of a docket launched by FTC; however, the ensuing consent order shows the sales restrictions only last for 20 years, which have now lapsed, hence why I was able to find a Pest-A-Cator on a Menards shelf. More FTC info on Charles Patterson, here.

Science, please help me!

Seems EPA (Publication No. EPA 340102-80-001) and USDA have done some research on these devices and the results are anything but favorable.

I found more along the way that was also not favorable toward these products, but the links above are the highlights. Why a company like Menards carries products like this is frustrating. Maybe I’ll ask them more about it later and this post might be a spring-board for bullet points. For now, I am returning the Pest-A-Cator 2000 and will start to look into cameras to figure where the little critters are getting in.

VirtualBox and Changing Drive UUID

Occasionally I test software in a Windows XP virtualization environment and if the software goes bad with an environment, I need a quick way to recover by purging the environment’s drive and replacing it with a copy: probably the quickest way is to duplicate a virtualized environment’s .vdi file and, should testing go awry, replace the compromised .vdi with the pre-compromised original copy.

Sometimes I simultaneously test two environments or .vdi files. Since the .vdi are copies of each other, VirtualBox sees them with the same UUID and doesn’t allow you to set up the second environment until the .vdi files have differing UUID. To get around this use Terminal.app to change your copied .vdi’s UUID, before you attempt to set up the new/second environment. To change the UUID, use the following steps:

  1. Open Terminal.app
  2. Navigate to the folder where you have a .vdi file you’d like to change the UUID on
  3. Execute the following command in Terminal.app while replacing “WinXP_2.vdi” with the name of your second .vdi file:

    VBoxManage internalcommands sethduuid WinXP_2.vdi

After changing the UUID, you can now continue setting up a second virtualized environment that is linked to the .vdi changed above.

Corrupted iPhone Backup Repair and Recovery!

My iPhone XS Max 64 GB has been running out of storage space for a year-plus. My ghetto workaround is to erase and restore the iPhone from a backup – this process recovers ~5 GB of storage space post-restore. This is not a permanent fix as the iPhone slowly recaptures the saved space over the next few months – my own stupid fault for being a cheap bastard with storage space when I bought the XS Max 4 years ago… This morning while restoring my iPhone from a local backup saved on on my Mac, an alert erupted: “Could not restore the iPhone because the backup was corrupt.” Ay. Sadly, I had no current iCloud backup and, saved locally, only much older iPhone backups. I know Apple software throws up similar, somewhat bogus, messages for Time Capsule errors that I’ve fixed in the past, so I began searching the web for potential fixes to my iPhone’s backup. My search discovered lots of apps that propose extricating backup data for a fee, but few seem to actually repair a locally saved iPhone backup. At least until I found the macOS software application “Decipher Backup Repair“, reviewed below.

I appreciated a video message from Kelly Wilkerson, one of the app’s co-developer’s; however, I wanted to hear experiences from an independent user and not someone ranting on a Reddit forum, so I’m pitching in my review here. I have no affiliation with the company other than now paying for a license to operate Decipher Backup Restore. From my limited usage, the app is easy to use and effective: it finds backups on your machine and tells you if there are errors within them before anything is repaired. From its initial scan, DBR noted that my locally saved backups had errors going back 3+ years. I gave the app permission to repair my iPhone’s most recent backup, from a couple hours ago. DBR fixed the errors and let me restore my iPhone from a newly created backup archive – sweet! The software is $30 and provided good value for my time, as I didn’t want to spend time setting up my phone from scratch again.

I did notice a couple things that concerned me; however, DBR’s team was super responsive and resolved my concern, spoiler alert: I just needed to be patient and encrypt/password protect backups. My Home Screen and Lock Screen had black backgrounds before restoring with DBR’s repaired archive, but after the restore the backgrounds turned gray – about 10 hours after the restore, I noticed that the black backgrounds had once again returned. Also, my iPhone was running hot right after the restore. DBR’s team told me that I should wait for the iPhone to complete its iCloud/Music/Photo syncing and, sure enough, they were right. After restoring from an Advanced Repair (one of DBR’s routines) later in the evening, I went to bed with the iPhone feeling hot; by morning the iPhone was back to operating at it’s usual comfortable to touch temperature. I also noticed open Safari tabs on my iPhone from before the restore were suddenly missing after restoring. Steve from DBR’s crack team informed me Apple doesn’t include open tabs in backups unless a backup is encrpyted/password protected – darn, this is my fault again, I’ve avoided encryption/password protections as I didn’t want to deal with a corrupted encrypted backup in the case of a disaster, but it seems DBR could help me handle this too. On a related note, maybe I should give in and finally enable FileVault?

Post-restore, data saved on my iPhone shrunk from ~60 GB to about ~56 GB, so it seems I need to get serious about getting a newer iPhone with more data storage or delete more data from my existing device. Either way, my silly strategy of backing up and restoring to free-up space should end – I’m costing myself time and money and others are having to bail me out.

Final thoughts: DBR repaired my local backup, my iPhone was restored with all data that was salvageable, and DBR’s team was super responsive throughout the process. Thanks, Decipher Tools!

Rohloff 8201 Grip Shifter Replacement

My Surly Pugsley’s grip shifter (part of Rohloff 8200 shift assembly) has been difficult to turn since I installed it 3 years ago. I thought the problem was mostly in the gearbox, but after attaching an 8mm wrench to the gearbox I found that the required moment turn the Pugsley wasn’t that much more than what was required to spin my Big Dummy’s Rohloff gearbox, which shifts like butter. I’ve been tolerating the general performance since I installed the grip shifter on the Pugsley, but the last couple months performance declined and more energy was required to turn the shifter until it ultimately failed last week. Seems the blame lies in two areas, the shifter’s design and its cable housing, the latter may be rusting and getting a bit salty.

The grip shifter’s failure seems to be two issues; one was that its internal shifter-stop tore through and the second issue is that the rubber o-ring fighter shifter revolutions and needed lubrication. I called Propel in NYC and Send It Bikes in NV hoping for an extra replacement 8201 grip, but neither has gotten back to me with available stock from Rohloff – Propel quoted $130 to ditch the 8200 and switch over to Rohloff’s newer 8190 shifter and shift assembly. I’m stubborn and don’t want to let go of my existing 8200 just yet, so I paid $7 US for a new part design. The part is designed by an engineer, DEHUUK_DESIGN, who allows end users to print a replacement grip on a 3d printer. Sweet! As my good friend Joe has told me in the past: “Engineers will save the world.”

Below are a few notes on the new part’s design, I’ll update this post later as my experience with it continues:

  1. DEHUUK_DESIGN’s design is Rohloff 8201 grip shifter, which is part of a Rohloff 8200 shifter assembly. I printed the design at the University of Minnesota (thanks, Liam!) using an i3 MK3S that was fed black PLA filament through a 0.4 mm nozzle. The quality looks great after its supports easily peel off and cable races cleaned up with electronics tweezers paired with a gentle prying motion. Water soluble supports may make this process easier, but it’s not terrible as-is.
  2. The DEHUUK_DESIGN replacement grip, between the numbers and the first cable race, is missing a third race that would contain a rubber o-ring I mentioned above. The missing third race is unlikely a deal-breaker, but this is where the parts design begins to diverge from Rohloff’s design. It may be a good divergence, since the lack of an o-ring is one less item to fail; however, dust and dirt may encounter less resistance making it to the grip shifter’s other races. Below is a picture that shows the new grip (top) missing the third race and the old grip (bottom):

  3. The above picture shows DEHUUK_DESIGN’s part a bit shorter than the old grip shifter, this is because someone at the U’s makerspace lab stopped the printer before the job finished, argh… I will try to reprint the grip shifter again later.

I dry installed the shortened part on my Pugsley and it seems to fit great, but I have yet to install the cables and turn it under force. Expect more updates here…

** Update November 17, 2024 **
Liam and I headed to the University of Minnesota’s Mechanical Engineering 3D Printing Lab together, he had a few items he wanted to test and I wanted to see if we could improve upon the previous shifter that came from Walter Library’s lab. We met Hewitt in the lab who recommended two shells to improve the 3D printed grip shifter’s strength. We’ll see how this goes…

** Update April 6, 2025 **
Two updates…

  1. Hewitt’s 11-17-2025 advice was spot on, the latest printed shifter has worked flawless for over 4 months now.
  2. In addition to printing two additional shells on this print, don’t forget to lubricate your new shifter upon installation.

Toro 38170 Powerlite CCR starter recoil rope replacement

To do complete the repair described above take the top cover off the 38170, then take its bottom case off. The right wheel has a bracket mounted to the frame by two bolts, completely remove at least one of these bolts and loosen the other, doing this allows the wheel mount bracket to rotate out of the way while removing the recoil starter cover. Finally, remove four bolts securing the recoil starter’s frame to remove it and its surrounding cover from the motor.

To replace the rope, I fully removed the recoil starter wheel from its spring assembly – this probably isn’t necessary, but I wanted to inspect it and make sure nothing was broken or bent. The spring on mine looked perfect and rewrapping it was easy following these instructions. To wrap new rope around recoil starter wheel, I looked down at the recoil starter wheel and, after inserted a new 5-foot section of rope and tying a couple knots through the hole in the starter wheel, I rotated it clockwise to get the rope on it. I then flipped the starter wheel over and pressed the spring and its metal shell/cup into the bottom side of the plastic recoil wheel. Be sure the spring’s ends are seated into the metal shell/cup, otherwise it won’t later wind up. I also intentionally broke off a piece of plastic from one side of the recoil starter wheel’s outer rim so that I could later insert a screwdriver and easily wind up the wheel when it is reinserted into the metal cover.

I believe I wound the recoil starter wheel 3 times counter-clockwise. After winding the spring up, I used the hole created by the broken plastic to feed the rope through the cover’s rope pull hole and it was tight, I only had a couple inches of slack. If three times winding seems too much for your spring, back off to only 2 times (I may have done wound it twice, I was distracted and forgot to jot down my count).

I’ll bring it out to test later today when I pick up some fresh gas. Surely the spark plug will need cleaning before it wants to fire. So much maintenance!

Update VPN Enabler

Similar to how I updated Cutedge Systems’ php, VPN Enabler for Monterey can also be updated to deprecate SHA1 and add support for SHA256 connections with supported VPN clients – the default is SHA1, which was blocked by most VPN software clients in late-2023.

To update VPN Enabler’s easy-rsa, we must update pkitool through these instructions:

1. Open Terminal.app and enter the following commands:

cd /usr/local/cutedge/openvpn/easy-rsa
sudo pico pkitool
*enter your password when prompted*

2. Press the control key and “w” and type in SHA1, then press the return key.

3. When the pico text editor brings your cursor to SHA1, change it to SHA256.

4.

Find out where /usr/local/cutedge/openvpn/easy-rsa is. When you have its location, run:

*insert file path location* upgrade easy-rsa

Then:

Open the 5.0.1 OpenVPN Enabler app, click the Make Clean : Keys and Certs check-box, Restart the OpenVPN Server, and send the newly generated profile to all the OpenVPN clients.

As described here:
https://cutedgesystems.com/software/OpenVPNEnablerforSonoma/

Cutedge and PHP upgrade

I’m running Cutedge Systems’ brilliant WebMon, Letsencrypt, and OpenVPN Enabler to turn my Mac mini back into a macOS Server-like machine – thanks, Bernard Teo and Bee Khim! My Apple mini is still on Monterey, I’m not quite ready to upgrade it to Sonoma with OpenCore Legacy Patcher, and I want to eke some more life out of it as-is; however, Cutedgesystems’ latest Letsencrypt for Monterey, version 3.0.4, is bundled with PHP 8.0.12 and WordPress/apache no longer fully works with this PHP version. In attempt to get Letsencrypt’s bundled PHP up to the latest 8.3.3, here’s what I asked brew to do:

1. Open Terminal.app
2. Execute the following command:

/opt/homebrew-cutedge/bin/brew upgrade php

The upgrade ran for over an hour on the aging mini, but eventually it completed and updated the apache webserver to now use 8.3.3. Apache and WordPress seem to be running fine so far and a previous error message I was seeing “the server unexpectedly dropped the connection” is now gone. YES!

Extra notes… Prior to running the upgrade PHP 8.0.12 was installed in these locations:

/opt/homebrew-cutedge/Cellar/php/8.0.12
/opt/homebrew-cutedge/etc/php/8.0

After executing the above command the 8.0.12 directory was replaced with this one:

/opt/homebrew-cutedge/Cellar/php/8.3.3

And, curious, an 8.3 directory now sits beside the 8.0 directory:

/opt/homebrew-cutedge/etc/php/8.3

** Update 8-6-2025 **
The above instructions worked well, except when I re-launched the apache webserver, WebMon would indicate apache was running even though apache was not. I confirmed this by launching top and searching for apache/httpd. Combing further I looked in an error_log file, located at “/private/var/log/apache2/error_log”, and in the second to last line I found:

[Tue Aug 05 18:30:03.934182 2025] [so:error] [pid 6169] AH06663: Unable to find code signature authority on module at /opt/homebrew-cutedge/opt/php/lib/httpd/modules/libphp.so that matches authority name “Developer ID Application: Bernard Teo (FAEEV5252R)” configured on LoadModule directive.

Seems the PHP changes I made the day before require me to re-sign libphp.so file. So be it!

To sign the libphp.so file, make sure the Xcode Command Line Tools package is installed:

xcode-select –install

Next, create a Certificate Authority and a Code Signing Certificate via Keychain Access.
Open Keychain Access (Cmd + Space, then type “Keychain Access”).
Go to Certificate Assistant -> Create a Certificate Authority.
For the name I used “Developer ID Application/ Bernard Teo (FAEEV5252R)” and for the email I inserted “bernard@cutedgesystems.com” though I don’t think the latter matters.
Then created (or checked) a Code Signing Certificate by tapping “Show CA Certificate”, expand “Trust”, and change “Use System Defaults” to “Always Trust”, tap “Ok”. Then tapping “Show Certificate Authority” should take you to the certificates you just made.

I code-signed the .so file with this command:

codesign –sign “Developer ID Application: Bernard Teo (FAEEV5252R)” –force –keychain ~/Library/Keychains/login.keychain-db /opt/homebrew-cutedge/opt/php/lib/httpd/modules/libphp.s

I confirmed the “Authority” name by running:

codesign -dv –verbose=4 /opt/homebrew-cutedge/opt/php/lib/httpd/modules/libphp.so

Finally I opened:

/Applications/WebMon.app/Contents/Resources/Stuff/httpd.conf.default

And removed the “#” symbol to uncomment the following line:

LoadModule php_module /opt/homebrew-cutedge/opt/php/lib/httpd/modules/libphp.so “Developer ID Application/ Bernard Teo (FAEEV5252R)”

And then re-launched WebMon. There I confirmed it was again working and it correctly launched PHP 8.4.11 – success!!!

Adhesives

I’ve relied on a “Perfect Glue” chart for identifying which adhesives are compatible with differing surfaces and it served me well for years, but Perfect Glue products are no longer available and it seems I’m in need of a more generic chart. I happened across this chart recently and will test it out:

AirPort Express/Time Capsule Power Supply Replacement

The above-referenced AirPort Express is known for faulty power supplies. Mine gave up the ghost a couple years ago and the stay-at-home orders gave me some extra time to fix it up. I used a mess of instructions here and here.

Ultimately this repair failed again, but my soldering skills and hot air machine skills have improved since then, I may give it another go at the board level… And a good friend has a Time Capsule that also has a failed internal power supply. If we open his again, we should consider a repair with these instructions. I’ll update this post later if we get it to work.