About Brad

All-around tough guy.

Chamberlain and ratgdo

When our garage was rebuilt in 2017 a Chamberlain 8550WL belt-driven garage door opener was installed. We love how quiet it is, that it has a battery backup, and that it could be paired to a homebridge and operated with HomeKit, at least until September 2023 when Chamberlain closed access to third party plugins.

Enter Paul Whelan and ratgdo. Paul reverse engineered the encryption that Chamberlain has on these openers and made a board that has been open-sourced by others – for a good interview with Paul, check out this video. I bought Paul’s board, coded it with the ratgdo homebridge web installer, wired it to our Chamberlain garage door opener with an external power supply, and it worked flawlessly until I swapped out our Apple TV 4K for the latest Apple TV 4K that does Thread and Matter. Here’s an example of what the wiring looks like when the ratgdo is connected to the Chamberlain opener and here’s an example of pulling 3.3 volts from the 8550WL to power the ratgdo – I haven’t tried the latter, but likely will this spring/summer when it is warmer in the garage.

A few gotchas… Google Chrome or Microsoft Edge are required to transmit the ratgdo’s firmware to its board. Changing the user agent does nothing to help Safari communicate to the ratgdo through the web installer.

macOS and OCR

Infrequently I come across old pdf files with pages that contain text as a single static image and lack searchable text. I’ve wanted an easy and free OCR solution and I’ve now found it, although I’ll keep looking for an open source option that is just as easy to use. For now, my Mac is rocking OwlOCR and it offers right-click contextual menu access to making searchable pdf’s without paying for it (for now), here’s how:

  1. Download OwlOCR through the App Store app on your Mac.
  2. Enable OwlOCR’s Finder Extensions using these instructions beginning with the section “Enabling Finder Extensions in MacOS”

When you have a .pdf in the Finder that you want to make searchable, right-click the .pdf’s icon, choose “Quick Actions->Create Searchable PDF” and wait until a status window indicates that it is done. Thanks OwlOCR team!

Basic Photos Backup

Once a year, we back up Tina’s Photos library to an external hard drive and deliver it to friends who keep it at their house, just in case ours burns down or something terrible. For whatever reason, it seems we can’t just drag her “Photos Library.photoslibrary” to an external hard drive or at least when we do, it seemingly spins forever without a good status updated. In steps rsync.

From Terminal.app, I pasted in the following command on her MacBook Pro while the backup drive is plugged in and this seems to do the trick with a live status update spewing in Terminal’s window.

sudo rsync --archive --stats --human-readable --progress /Users/christinaschwie/Pictures/Photos\ Library.photoslibrary /Volumes/Tina\ Photos/Photos\ Library.photoslibrary

I should’ve published this as a tip for others. And even if you’re not syncing a 250+ GB photo library like this scenario, hopefully it helps you with your large directory transfer needs.

** UPDATE 2-15-2024 **

Resource forks may have been damaged using the above command. Next time, try it with “–hfs-mode=appledouble”, such as:

sudo rsync --archive --stats --hfs-mode=appledouble --human-readable --progress /Users/christinaschwie/Pictures/Photos\ Library.photoslibrary /Volumes/Tina\ Photos/Photos\ Library.photoslibrary

Or install rsync with brew and then add –xattr to the command.

Or sudo rsync -xrlptgoXvHS --progress --delete --fileflags / /Volumes/BackupClone using tips here.

Reducing PDF File Size

I seem to get into this more often than I need to. I was preparing a report this weekend that grew to ~500 pages and 80 MB in size. I wanted to transmit the report as a .pdf via email. Using services like OneDrive work, but they are annoying when they require an external user to verify who they are. I also tried reducing the file size with a few other options, including:

  1. PDFCompress, an old app on my Mac
  2. Preview, using it’s Export option
  3. Others I’m forgetting to list here

None of the options above produced a small enough .pdf file or at least not one that was less than 50 MB. Finally I turned to Ghostscript, but first I had to install and configure it:

1. Open Terminal.app and enter: brew install ghostscript
2. After Ghostscript installs, use Terminal to navigate to the folder containing your .pdf, in my case: ls ~Desktop
3. Insert this command into Terminal, replacing input.pdf and output.pdf with the file names you prefer:

gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile="output.pdf" "input.pdf"

The above-command produced a file about 38 MB and I was able to get it down to 36 MB using the following command:

gs -q -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dEmbedAllFonts=true -dSubsetFonts=true -dColorImageDownsampleType=/Bicubic -dColorImageResolution=144 -dGrayImageDownsampleType=/Bicubic -dGrayImageResolution=144 -dMonoImageDownsampleType=/Bicubic -dMonoImageResolution=144 -sOutputFile="output.pdf" "input.pdf"

I found these references helpful in developing this approach:
https://gist.github.com/ahmed-musallam/27de7d7c5ac68ecbd1ed65b6b48416f9
https://www.cisdem.com/resource/shrink-pdf-file-size-on-mac.html

Dyson DC17 Absolute Animal Repair

Our above-referenced vacuum wasn’t producing as much vacuum and we found that its filter was clogging faster. I figured portions of its cyclone, where air moves upward its path to ultimately reach the motor’s impellers and debris falls downward to the collection canister, had become blocked. While taking apart the cyclone, I published my journey here:

https://www.ifixit.com/Guide/Dyson+DC17+Cyclone+Cleaning/168779

After reassembling the cyclone and putting it back in the DC17 the vacuum cleaner is running like its brand-new again.

Node Upgrade with Brew

One of the Homebridge plugins was whining about “node” being out of date. Sure enough, when running this with Terminal:

node –version

Showed my Mac mini was running “v16….” and it needed to be upgraded to 20. Easy enough with brew:

brew install node@20
brew unlink node@16
brew link node@20 –force –overwrite
nano ~/.zshrc

In nano I edited the following line from:

export PATH=”/usr/local/opt/node@16/bin:$PATH”

to

export PATH=”/usr/local/opt/node@20/bin:$PATH”

Exit and save with:

Control (key) and X
Yes

Next I closed the Terminal window, opened a new Terminal window, and typed in:

node -v

Which now proudly says:

v20.9.0

Yes!

Apple Watch Series 4 Repairs

In February, I swapped the Taptic Engine and then moved the NFC chip from Tina’s old (broken) Apple Watch Series 4 display to a new display. The NFC transfer had me on edge, but Circuit Trama’s instructions and technique were fabulous. One improvement to Circuit Trama’s approach, like this video I placed droplets of alcohol on a razor blade and gradually slid it in, no heat, and it worked so much better and it was much faster. I’ve got some pics I can post later.

Prior to these improvements, the watch entered a recovery mode and I figured I’d make the improvements before restoring it, since it was mostly broken anyway. After the hardware improvements the watch refused to restore, instead erupting with a “Failed to setup Apple Watch” alert. There are several options to get past this:

Option 1: Access the hidden lightning port where the watch band slides in and complete a wired restore. Unfortunately, the adapter fetches $100 or more plus more time, bleh.

Option 2 (failed approach): the trade-in value for the Series 4 is $60 and mine appeared to meet all the requirements, so I decided to take Apple up on the offer and FedEx took it off my hands. I replaced it with an Apple Watch Series 8 in Product Red that was heavily discounted by Amazon Prime Days. I looked at iFixit’s battery replacement guide and it appears battery replacements will be easier in the future and I should have all the tools to do it. Let’s hope the first battery lasts at least 3 years. Unfortunately, several days later, Apple returned the Series 4 to me, because they said they couldn’t restore it! What a joke. They obviously didn’t try Option 3, below.

Option 3 (worked for me): I wished I had learned of this before trying Option 1 and 2. During a hard restore, I put my iPhone on the older 802.11b network in our house and then the Apple Watch Series 4 properly restored! I didn’t record all the steps I used to implement this, as I’m writing this a couple months later, but it ultimately worked and my daughter is now rocking the Apple Watch Series 4.

The only side effect of my NFC transfer, was that I used a bit too much heat during the soldering process and now the side of the screen no longer responds to touch. The portion that doesn’t work isn’t required for most interface tasks and my daughter doesn’t mind – we also enabled Assistive Touch, so she can always get past interface hitches if the screen doesn’t respond to touches. If I have extra time on my hands, I may replace the layers between the screen and the glass to correct this unresponsive touch issue, but for now I’m moving on.

I also still have a bag of parts for one more Apple Watch 4. It needs a new battery connector soldered to the board, a new screen, and its NFC soldered to a new screen. If used parts dip low enough, I may give it a whirl or dump the parts on eBay while they still have value to others.

Ventura and FAT16

My daughter likes her old digital camera, yet Ventura’s Disk Utility doesn’t seem to show FAT16 as a default partitioning format. Never fear, others have already encountered this. First, I verified that the Compact Flash card’s location using this command:

diskutil list

This showed me it was sitting at /dev/disk2. Next, I executed this command to create a single 1 GB partition on the memory card and while leaving the remaining disk capacity as free space:

diskutil partitionDisk /dev/disk2 MBR “MS-DOS FAT16” NONAME 1024M free “” 0B

Finally I executed this command to create 15 2 GB partitions on the memory card while leaving the remaining disk capacity as free space:

diskutil partitionDisk /dev/disk2 MBR “MS-DOS FAT16” NONAME 2048M “MS-DOS FAT16” NONAME2 2048M “MS-DOS FAT16” NONAME3 2048M “MS-DOS FAT16” NONAME4 2048M “MS-DOS FAT16” NONAME5 2048M “MS-DOS FAT16” NONAME6 2048M “MS-DOS FAT16” NONAME7 2048M “MS-DOS FAT16” NONAME8 2048M “MS-DOS FAT16” NONAME9 2048M “MS-DOS FAT16” NONAME10 2048M “MS-DOS FAT16” NONAME11 2048M “MS-DOS FAT16” NONAME12 2048M “MS-DOS FAT16” NONAME13 2048M “MS-DOS FAT16” NONAME14 2048M “MS-DOS FAT16” NONAME15 2048M free “” 0B

All these disk partitions mounted without a hitch on my Mac, but the Kodak EasyShare M530 refused to see any of them. Boo hiss. I must have done something wrong with the formatting type. For now, I’m sending her to Denmark, Sweden and France with a Lightning to USB-B and mini USB-A to micro-USB so that she can use her phone to import all of her photos. I tested it with my XS Max and it works great – she’s going to love it, especially since her 13 Pro has 512 GB of storage.

Along the way, I found this source helpful.