Archive for the 'General' Category

MacOS Homebrew FFMPEG no longer has an all options. Here is how to install with all options

Sunday, January 12th, 2020
$ brew install ffmpeg $(brew options ffmpeg | grep -vE '\s' | grep -- '--with-' | tr '\n' ' ')

Update 2021-10-20: I found that the method above did not work for me in the Monterey beta. There was an older version
I believe to be less reliable (in ensuring that you have all the options, since they are hard-coded) 
that I've found elsewhere:
$ brew install nasm pkg-config texi2html aom fontconfig freetype frei0r gnutls lame libass libbluray libsoxr libvorbis libvpx opencore-amr openjpeg opus rtmpdump rubberband sdl2 snappy speex tesseract theora x264 x265 xvid xz ffmpeg

I've seen this new method posted online (2024/5/17). It gave an error when run about not finding a formula, but does work.
$ brew install homebrew-ffmpeg/ffmpeg/ffmpeg $(brew options homebrew-ffmpeg/ffmpeg/ffmpeg --compact)



Compiling GoldenCheetah on Raspberry Pi 4 with Raspbian Buster – free bicycle trainer/analysis software

Saturday, January 4th, 2020

Ok, I’m still testing, but I have instructions to get GoldenCheetah to compile and run on a Raspberry Pi 4. Please share if you have anything to add/improve. Hopefully this will start the process of getting official Rpi4 instructions added to the project…

If you are not familiar, GoldenCheetah is open source software that will control a smart trainer (wahoo kickr, tacx, etc…) via Ant+ or bluetooth. It will sync rides to/from strava and others. It has amazing (way beyond my ability or interest) performance analysis functions! It can download ride profiles from the free ERG repository. It really does too much to list here. I highly recommend it. Warts and all it still a great piece of software that some great people work hard to support, and it does most everything I need trainer software to do. Oh… and it doesn’t cost me $10 a month in subscription fees. So If I can build a dedicated computer out of a Rpi4 that will run GoldenCheetah for less than $100, then I’m a happy lad!


The main website is The project code is on github. Discussion is on Google Groups.

GoldenCheetah install on Raspberry pi 4 with – Raspbian Buster. I consider this the preferred way to do it. 

I used the 2019-09-26 version from – the middle size software ~ 1.1gigs.

You will need to follow the generic instructions to create a clean Raspbian boot SD card.

IMPORTANT NOTE: This only works for the current release version of GoldenCheetah V3.5.0. The newer betas require some modules that have not been added to the repository for the pi. I will update this article when the modules are available and I can get the pi to compile the current code.

Then let’s get the software up to date:

     $ sudo apt update     {if you have never run apt update it may fail saying library date is in future, just run it again}
     $ sudo apt -yf full-upgrade
     $ sudo apt-get -y --purge autoremove  {that is two dashes in front of purge "--purge"}
     $ sudo apt-get autoclean

     $ sudo timedatectl set-timezone America/Chicago {pick your own time zone, see them all by typing $ timedatectl list-timezones}
     $ sudo reboot now

Install QT sdk and libraries
     $ sudo apt-get install qt5-default qtcreator libqt5svg5-dev libqt5serialport5-dev libqt5charts5-dev qtmultimedia5-dev qtconnectivity5-dev

     $ sudo apt-get install libqt5webkit5-dev libusb-1.0-0-dev libical-dev libvlc-dev libvlccore-dev bison flex

Modify the USB device so you can use your ANT+ USB stick {no need if you are only going to use bluetooth}

     $ cd /etc/udev/rules.d

     $ sudo nano 52-garmin-usb.rules

  • Add (copy/paste) the following six lines to the file:  {there are no spaces before the lines
  • # Garmin ANT+ – USB1
    ATTRS{idVendor}==”0fcf”, ATTRS{idProduct}==”1004″, MODE=”0666″
    # Garmin ANT+ – USB2
    ATTRS{idVendor}==”0fcf”, ATTRS{idProduct}==”1008″, MODE=”0666″
    # hLine USB2 ANT2
    ATTRS{idVendor}==”0fcf”, ATTRS{idProduct}==”1009″, MODE=”0666″
  • exit and save the file

     $ sudo reboot now

Now download the code, make a few changes and start compiling!

     Git should already be installed if not ‘$ sudo apt-get install git’
     $ cd ~
     $ mkdir projects
     $ cd projects
     $ git clone git://
     $ git clone git:// --branch release_3.5.0

     $ cd GoldenCheetah
     $ cd src
     $ cp gcconfig.pri
     $ nano gcconfig.pri    

  • uncomment line #CONFIG += release
  • uncomment line #QMAKE_LRELEASE = /usr/bin/lrelease
  • uncomment line #QMAKE_CXXFLAGS += -03
  • comment out the line QMAKE_CXXFLAGS_X86_64 = $$QMAKE_CFLAGS_X86_64 by added a ‘#’ in front of it
  • uncomment line #ICAL_INSTALL =
  • Change the value Of the ICAL_INSTALL = (line above this one) to “ICAL_INSTALL = /usr/lib”
  • uncomment line #LIBUSB_INSTALL = /usr/local
  • Change the value Of the LIBUSB_INSTALL (line above this one) to “= /usr/lib” instead of “= /usr/local”
  • uncomment line #LIB_USE_V_1
  • uncomment line #LIBZ_LIBS = -lz

     $ cd ~/projects/GoldenCheetah/qwt

     $ cp qwtconfig.pri

     $ cd ~/projects/GoldenCheetah
     $ qmake -recursive  {if you see a bunch (22 or so) of translation language and missing file errors… you can ignore them}

     $ make

Now just sit back and wait. Should take about 1.5 hours with a good heat sink on a 2 gig Rpi4 :)
When it is all done you will have a GoldenCheetah executable file in your projects/GoldenCheetah/src directory. You can copy it wherever you like, if you want to run it from the command line here just type:

     $ ~/projects/GoldenCheetah/src/GoldenCheetah

I made a Desktop icon on Raspbian by doing the following:

     $ cd ~/Desktop

     $ nano GoldenCheetah.desktop

  • Add (copy/paste) the following ten lines to the file:
  • [Desktop Entry]
    Comment=Built for suffering
  • exit and save

Every time you use the desktop icon it will ask what you want to do with it. Select execute. You can disable this in Raspbian config files, but that is beyond the scope of this howto…..

Enjoy!  :)


Compiling GoldenCheetah on Raspberry Pi 4 with Ubuntu server 19.10.1- free bicycle trainer/analysis software

Friday, January 3rd, 2020

Ok, I’m leaving this here as an example if I need it in the future, but the Ubuntu desktops were too bulky to be quick on the pi4 as of the time of this writing. Since I got this to work on stock Raspbian, I would use that walkthrough/howto instead of trying it with Ubuntu. You can mostly follow the Raspbian walkthrough/howto for Ubuntu as it is more current. I did not include these required steps in this walkthrough.

If you are not familiar, GoldenCheetah is open source software that will control a smart trainer (wahoo kickr, tacx, etc…) via Ant+ or bluetooth. It will sync rides to/from strava and others. It has amazing (way beyond my ability or interest) performance analysis functions! It can download ride profiles from the free ERG repository. It really does too much to list here. I highly recommend it. Warts and all it still a great piece of software that some great people work hard to support, and it does most everything I need trainer software to do. Oh… and it doesn’t cost me $10 a month in subscription fees. ;) So If I can build a dedicated computer out of a Rpi4 that will run GoldenCheetah for less than $100, then I’m a happy lad!


The main website is The project code is on github. Discussion is on Google Groups.

GoldenCheetah install on Raspberry pi 4

Ubuntu Server version

first install ubuntu server 64bit 19.10.1 {I used ubuntu-19.10.1-preinstalled-server-arm64+raspi3.img from the ubuntu website}

$ sudo apt update
$ sudo apt -yf full-upgrade
$ sudo apt-get -y –purge autoremove
$ sudo apt-get autoclean

$ sudo timedatectl set-timezone America/Chicago {pick your own time zone, see them all with $timedatectl list-timezones}
$ sudo apt-get install xubuntu-desktop {note to self: this is still a pretty heavy desktop – I should try installing a lighter one or using the instructions below on raspbian lite}
pick gdm3 for the desktop manager
$ sudo reboot now

First install qt sdk and libraries
$ sudo apt-get install qt5-default qtcreator
$ sudo apt install libqt5svg5-dev
$ sudo apt install libqt5serialport5-dev
$ sudo apt install libqt5charts5-dev
$ sudo apt install qtmultimedia5-dev
$ sudo apt install qtconnectivity5-dev
$ sudo apt install libqt5webkit5-dev

git should already be installed if not ‘$ sudo apt-get install git’
$ sudo apt-get install libusb-1.0-0-dev
$ sudo apt-get install bison
$ sudo apt-get install flex
$ cd ~
$ mkdir projects
$ cd projects
$ git clone git://
$ cd GoldenCheetah
$ cd src
$ cp gcconfig.pri
$ nano gcconfig.pri
-> uncomment line #CONFIG += release

-> uncomment line #QMAKE_LRELEASE = /usr/bin/lrelease {note: make sure you have a /usr/bin/lrelease, it should have been installed above}
-> uncomment line #QMAKE_CXXFLAGS += -03

-> uncomment line #LIBUSB_INSTALL = and change the value to LIBUSB_INSTALL = /usr/lib in instead of LIBUSB_INSTALL = /usr/local
-> uncomment line #LIB_USE_V_1
-> uncomment line #LIBS += -lz

$ cd ~/projects/GoldenCheetah/qwt

$ cp qwtconfig.pri

$ cd ~/projects/GoldenCheetah
$ qmake -recursive

{note: if you see a bunch of translation language errors… just ignore for now}
$ make

-> sit back and wait an hour or two :)
when it is all done you will have a GoldenCheetah executable file in your projects directory

notes: This failed after exhausting memory on a 2 gig raspberry pi 4. Ran like a champ on a 4 gig raspberry pi 4
If you get the error (g++: internal compiler error: Killed (program cc1plus)). It means you ran out of memory, you can try one of the following:
___1. Make a swap file___________
Run these

$ sudo dd if=/dev/zero of=/swapfile bs=64M count=16
$ sudo mkswap /swapfile
$ sudo swapon /swapfile

That should let you compile your code. But make sure you then revert the swap after compilation, with these:

$ sudo swapoff /swapfile
$ sudo rm /swapfile

___2. Try fewer parallel jobs (will take longer to compile)___________
Try running:
$ make j #
where # is the number of parallel jobs
$ make j 4
$ make j 2

Updating Raspberry Pi PiHole Servers

Saturday, July 6th, 2019

Hopefully you were on top of things and have already changed the default login mire that is associated with the Pi. Also hopefully you have enabled telnet on the Pi.

If all these criteria are met, every few weeks I login with telnet and run the following commands:

sudo apt update
sudo apt -yf dist-upgrade
sudo apt-get -y –purge autoremove
sudo apt-get autoclean
pihole -g -up
pihole -up

Adding AdGuard to Home Assistant on Hassio on Ubuntu 18.04

Saturday, July 6th, 2019

So you will run into a bit of a problem where the Ubuntu 18.04 underneath Hassio is already listening to port 53, so you cannot have a Hassio plugin also listening to port 53. The error I saw in the AdGuard log was:

[fatal] Couldn’t start forwarding DNS server, cause: couldn’t listen to UDP socket, cause: listen udp bind: address already in use

This method I found seems to work…

Disable and stop system-resolved service:
sudo systemctl disable systemd-resolved.service
sudo systemctl stop systemd-resolved

Then put the following line in the [main] section of /etc/NetworkManager/NetworkManager.conf:

Delete the symlink /etc/resolv.conf:
rm /etc/resolv.conf

Restart network-manager:
sudo service network-manager restart

This may break VPN for some users.

Battery Replacement for CyberPower UPS 1350 and 850

Saturday, June 22nd, 2019

As far as I can tell the CyberPower batteries HR1234w and bp8-12 are the exact same size batteries, and both have F2 terminals. So I’m not sure why you would need to buy more than one type of battery. Next time I will try buying the biggest AH rated 12 volt battery that is the same size. The size of the batteries was (by my micrometer, and body only no terminals): 3.68 inches high, 2.54 inches deep, and 5.94 inches wide.

When I purchased the CyberPower replacement battery for the 850AVR (with lcd) it was stated to be a 12v 9ah battery, and the CyberPower replacement for the 1350AVR (with lcd) was a pair of 12v 8ah. There is definitely no need to do anything more than buy a pair of the 12v 8ah batteries off Amazon for $30 instead of paying $76 for CyberPower’s new assembly. Just make sure you plug the cable in correctly on the new set or you may have a very unfortunate incident. Next time I plan to just use some packing tape to put the new batteries together. The CyberPower part number for the 1350 was RB1280X2A. The CyberPower part number for the 850 was RB1280A. Based on the part numbers it is easy to believe they they are both 12v 8Ah batteries.

In case you didn’t know lead-acid batteries should not be put in the garbage. Lowes and Home Depot accept non-automotive sealed led-acid batteries for free. So, just drop them off there.

1350AVR Battery Pack assembled
Cyberpower 1350 Battery Pack Disassembled
After taking it apart.
AVR850 original battery
This is the original battery that came with the 850AVR. It is exactly the same size as the BP8-12 batteries above.

How to call Amazon

Monday, April 8th, 2019

So you have been hunting for hours for Amazon’s customer support phone number on their web site. Well in the US it is 866-216-1072. Their people are usually super nice and very helpful. I highly recommend that you call them whenever you have an issue.

I have posted the phone number before, but could not find it, so here it is again… :)

Parallels desktop VM .hdd file is way larger than the guest disk size

Thursday, December 6th, 2018

So your machine shows no snapshots, but you have multiple .hds files inside your .hdd files. According to Parallels support you do still have snapshots, even though the snapshot manager shows no snapshots. The command to merge the snapshots is as follows:
prl_disk_tool merge –hdd /{path and filename of the .hdd file you want to merge}

Rice Cooker Gluten Free pancake and the Zojirushi 5.5 Cup Neuro Fuzzy (updated)

Thursday, November 22nd, 2018

OK, I will keep updating this post as I am still experimenting.

I decided to move my recipe recommendation to the top so I don’t have to read through the whole thing to remember the method. So I do not use the normal mix instructions for any of the mixes anymore. Pretty much the instructions are: 1 egg, 1 cup of milk, 1 cup of mix, 2 melted tablespoons of butter. The batter will be very thin, but it doesn’t matter in the rice cooker bowl :) Then I just hit the porridge setting and let it cook. I have found this recipe works for all of the mixes I’ve tried…

I found numerous articles on the web showing ways to make a loaf of bread from pancake mix in a rice cooker (here is one). Some articles said that it was a piece of cake (pardon the pun), while others claimed that the product was unusable. None of the articles I found mentioned the type of rice cooker I had (Zojirushi Neuro Fuzzy) or had any advise on making the recipe gluten free. I can tell you now that I have had good success, and to help anyone else out there here is a running log of my observations.


  • So far I have used the porridge setting on everything I have tried. I have not tried other settings, but probably will later.
  • Only make a single batch. The cooker will not get the center done on a double batch
  • I let the rice cooker run to the end of the cycle and there has been no problem with having to restart or having the loaf burn.
  • For some unknown reason I always add the quantity of oil called for in the waffle recipe, but use the ingredients from the pancake recipe.
  • To extract the loaf I remove the rice cooker bowl from the machine and put a plate on top of the bowl. Then I invert the bowl and the loaf is unceremoniously dumped onto the plate. I’ve never had one crack or break as a result of this.
  • Bob’s Red Mill pancake mix makes a good dark loaf that seems to have a texture and color similar to Soda Bread. I think with a little tweaking there is a good opportunity to make a reasonable facsimile of Irish Soda Bread that is Gluten free
  • Gluten Free Bisquick makes a more moist slightly rubbery loaf, but it is still very much edible and will absorb syrup fairly readily. When you open the rice cooker the top of the loaf looks white and rubbery, but if you touch it, it is cooked through. I’ve let it sit for up to 10 minutes on keep warm and it does not burn the bottom.
  • Hodgson Mill gluten free pancake mix holds a most dubious honor. It is the worst tasting mix I have ever encountered. It made a rubbery loaf that smelled and looked bad. I bought it because I needed mix that day and the store did not have Bob’s or Bisquick. Trust me it was not an acceptable substitute.
  • Kodiak Cakes – gluten free frontier flapjack mix – these were very tasty, but came out very doughy. Also, these are oat based,  if you have gluten issues you may also have issues with oats, so be careful.
  • Pamela’s was pretty good, but you have to be careful with this one if you have tree nut allergies. They include almond flour in their mix.


  • King Arthur gluten free pancake mix – This one was wonderful. The whole kitchen smelled like fresh baking. Taste was excellent. Note that the instructions on the box I had were for a double recipe (used the whole bag). I halved the recipe and it made a standard size rice cooker pancake. As noted above if I had made the full recipe it would have been mostly uncooked.
  • Glutino – Gluten Free Pantry Instant Baking Mix. This one comes in a little single serving bottle. I do NOT recommend trying the bottle. I did and it did not mix and basically made sludge in the bottom that I gave up on trying to get dissolved into the batter. Can’t tell you how it tastes, and I have no plans to buy another one to try…


  • Hungry jack funfetti gluten free pancakes. This mix tastes just like cake. I would probably like it more without the funfetti, but it wasn’t bad. The flavor of the cakes was great! I really liked it… That said I did not follow the instructions on mixing. It is an add water only mix, but the waffle instructions said to add egg and oil. So I decided to follow the base instructions that are used by most of the other mixes. I used 1.25 cups of the dry mix, one large egg, one cup of milk, and a couple of tablespoons of vegetable oil. The texture was as close to a super moist cake of anything I’ve eaten in the gluten free genre.

Trader Joe’s mixes are pretty darned good. The pumpkin mix was only available around October, but it was awesome! Once again I don’t follow the recipe on the box. I use a cup of mix, one egg, two table spoons of butter (of course it is better than vegetable oil), then a cup of milk. If the mix is thick I add more milk to thin it up… It seems to work on just about every mix I’ve used so far

I picked up a tiger brand Induction rice cooker to replace the Zojirushi. I’m still getting used to it. It seems to be more finicky than the Zojirushi. The only setting that consistantly makes good pancakes is “plain”. Of course like almost every other rice cooker out there, there is almost no definition of what the settings are, but I have not found a better one yet.

To rate the mixes I’ve used so far:

Best: Bisquick, King Arthur, Hungry Jack, Trader Joe’s Gluten Free, Trader Joe’s Gluten free Pumpkin

Great with exceptions: If you don’t have issues with oatmeal, Kodiak was very good. If you don’t have issues with tree nuts Pamela’s is very good.

Pretty good: Bob’s Red mill

Avoid: Glutino, Hogsdon Mill

QT Library on MacOS/OSX will not install cannot find old versions of Xcode

Sunday, October 21st, 2018

I could not get the QT installer to work at all on MacOS 10.14 Mojave, It kept giving errors saying that the Xcode 5 (and some other old non-downloadable version of Xcode was missing. As a result it would not give me a list of QT versions/components to install…

Apparently QT is still trying to find Xcode in:


Apple no longer installs Xcode here. The new directory is


sudo /usr/bin/xcode-select -switch /Applications/

Details of this issue can be found as a bug for Qt 5.2 – Qt Bug 31878 description.

Late 2012 Mac Mini Server raid 0 or 1 boot under 10.14 macOS Mojave

Saturday, September 29th, 2018

Just a quick update for anyone who has a Late 2012 Mac Mini server i7 processor with dual internal HD.

I think I’ve tried every permutation to get the system to boot with the two drives in a raid configuration including converting the volumes to APFS. Absolutely no love. Mojave install disk will let you install the OS to the OS to the APFS raid drive, but the drive goes into a never ending reboot cycle.


End of the day. I have still not found a way to use the two drives in the Mac Mini server as a Raid array since Sierra.


Installing OS X or MacOS from old disk image files

Saturday, September 22nd, 2018

What a pain in the tail. You tried to install Ubuntu on an old Mac Mini, then found that it really does not work well with all the devices (wireless) etc in the box. So you try to reinstall OS X on the machine. Well after you figure out how to make the install disks via the ‘createinstallmedia’ command

Inside the you will find in the Contents/Resources/ folder an application called createinstallmedia. This will make a USB drive into an install disk:

command to create the install USB is as follows:

<install file path>/<install>/Contents/Resources/createinstallmedia –volume <path and volume name of USB drive -> /Volumes/Blank> –applicationpath <install file path>/<install>

So if the your put your “Install” in the root and your USB is named “Blank” the command string would be:

/ –volume /Volumes/Blank –applicationpath /

Now comes the annoying part: Every time you create a disk, when you try to use it to reinstall the OS from the USB, that you just booted from because you know how to install the OS from the Recovery prompt….. you get the following “This copy of the Install OS X El Capitan application can’t be verified. It may have been corrupted or tampered with during downloading.”

What I ended up having to do it roll back the system date on the computer. To do this just open up the terminal from the command prompt and change the date with the date command (use a date that was not too far from the original date the OS was released).


To do this type:

$ date MMDDHHmmYY

MM – 2 digit month 01 – 12
DD – 2 digit date 01 – 31
HH – 2 digit hour 01 – 24
mm – 2 digit minute 01 – 59
YY – 2 digit year > 15


I set the date back to 0101111115 (Jan 1st at 11:11 am 2015) and suddenly the install USB is no longer corrupt… :)



Apple changed the command line from Mojave (10.14) forward. The only difference is that you no longer need the –application path argument. So from the above example:

/ –volume /Volumes/Blank

You may also need to sudo it to run now

GoldenCheetah – Smart Trainer software can be free!

Saturday, September 15th, 2018

Ok, I’ve got a bunch of old (but still Intel) mac hardware that I have been using to run my Wahoo KICKR generation 1 trainer, Wahoo Tickr heart rate monitor, and a Wahoo cadence sensor. For a long time I’ve been having to pay an average of $10 a month for a service to run my trainer. I have either used or tried;  Trainer Road, Zwift, Sufferfest, and Bkool. While they all work well I do not find that any of the services are worth $10 a month. Then I happened on GoldenCheetah. GoldenCheetah did everything I wanted it to do. What I’m really looking for is something that will run my trainer setup, have configurable workouts, have analysis intelligence, link to upload/download from Strava, and be free as in beer. The only issue was that it crashed constantly on all the hardware I tried it on. I tried 3 different Macs; Mac Mini 2,1 core 2 duo, a Mac Mini 6,2 and a Macbook Pro 9,2. I tried a Mac Mini 2,1 that I had converted from MacOS to Ubuntu 16.04. I tried setting up an Ubuntu 16.04 VM on the i7 Mac Mini 6,2. All attempts either crashed or did not see the ANT adapter on the USB port.

I am happy to say that I believe I have figured it out. The one pain in the rear is that you have to spend some time installing libraries, compiler, etc… and compiling the code on your trainer machine.

I’m working on a modified walk-through for installing all the necessary components. I plan to post it here soon, but my main goal is to get the app appropriately updated on their website. So you won’t have to compile it yourself… :)

Remember to never email me at as that is not a real email address…. :)


2020 update. I’ve stopped using the Mac for GoldenCheetah, since the Raspberry Pi is cheaper, but the latest 3.5 build of GoldenCheetah for MacOS fixes the issue with the usb driver library. So you don’t have to compile your own code anymore. :)

Email addresses for spammers to pick up

Sunday, August 12th, 2018

I’m testing to see if adding a number of email addresses to this post will be sufficient to seed the spam mailing lists so these addresses will accumulate unsolicited spam. Everyone who can actually read should ignore this post. If you are a real human, I apologize for this interruption in your EvilTyrant experience, but I have some scraper-bot theories I want to test… :)

I wouldn’t reply to this unless you want to check to see if replies with attached email addresses seed spam too.

For information jobs available at a fictitious company send email to:

To get in touch with our imaginary accounting department send email to:

For more info please sent an email that will never be replied to at:

To buy ethereal spherical widgets created in a vacuum please contact:

If you find all this confusing and wish to send an email that will never be read please send email to:




Time Machine – Complete Restore of Mac High Sierra.

Wednesday, July 4th, 2018

So I had a SSD fail in one of the Mac’s here at the house (first failure so far. 5 years and 2 months old – older SSDs are still running fine). Trying to reinstall from a Time Machine backup was proving to be a bit of a pain. Since there was no boot partition, and there are no OS boot disks anymore, I did the network install of a boot partition. I guess for my machine the default install partition is an older version, because it installed an older version of the OS on the emergency boot partition.

Not sure if it was related to the older version not being able to figure out how to restore, but the install would always hang looking “searching for an install disk” (which it would never find). So I had to go to another mac, pull my archived version of the High Sierra install esd file and create a bootable USB. After booting from the USB, using disk utility to reformat the disk, I started a time machine recovery. Right off the bat the machine finds the new disk and installed right away.

There are many other possibilities as to why this happened, but I thought I would post my steps in the case they help someone out. Of course this all requires you to archive a copy of your ESD file prior to each software upgrade. Instructions on how to archive this are all over the web (MacWorld link) however the jist is always to download the update, then prior to the install process starting, copy the “High Sierra” (or whatever version you have) from the applications folder where the installer downloaded it, to drive space somewhere. Then you can either use the terminal or InstallDiskCreator to build the USB. I’ve used DiskmakerX in the past, but it has become so buggy, I don’t bother anymore… Both utilities are free, so no worries there. I think the MacWorld link above has a link on it to download the file directly without going through the app store.


Just as a side note the drive that failed was a Samsung 840 Pro 256gig. Warranty was 5 years, drive failed at 5 years and 2 months. The machine it failed in was a low use machine that always had trim enabled…

I have many more cheaper/older crucial drives that are still working perfectly. I even have a couple of 60gb SSD drives that are super old that are running a couple of automation systems that have no issues. I’d bet they are nearly 8 years old now…



Harley Davidson TwinCam 88 1999-2006 Oil Filter Cross Reference

Thursday, May 31st, 2018

Replacement oil filters for HARLEY-DAVIDSON 63731-99A:

Brand Model
AC-Delco PF1787
Fram Chrome (I use these) PH6065A
Fram PH6022
HARLEY-DAVIDSON Chrome 63798-99A
K & N KN-171B
NAPA 1215
Purolator ML16822
STP S3614
Wix 51215


My notes below are for a 2003 FXDWG, but should be the same for the rest of the twin cam 88s…

Oh and both primary and engine take 20W50 synthetic oil per the shop manual, however it is very expensive (from what I see about $11 a quart at the major auto parts stores). However, I have been using Mobile one synthetic 15W50 in both for years with no problems at all. And last I checked it was $22 a gallon at WalMart. :)

3 quarts in Engine

1 quart in Primary – 26oz goes in… :)


I also use Mobil One 75W90 gear oil in the transmission…

The transmission takes 20-24 oz according to the shop manual.

Quoted Joe Minton tuning for the Stock Harley Keihin CV carb

Sunday, May 6th, 2018

Carb Jetting Simplified
Joe Minton
Rider Report
Tuesday July 22, 2003
From the August 2003 issue of American Rider

I get a steady flow of questions regarding carb jetting and the Dynojet kits, and I’d like to answer them once and for all. Before addressing this, I need to set the stage about fuel mileage. The mileage one records is dependent upon a number of factors. The speed at which you travel is one. Mileage plunges dramatically above 60 mph or so-a bike that gets, say, 45 mpg at 60 might only record 30 at 80 mph.

Another important influence is the size of the hole you and your bike poke in the air. An FLHT touring rig needs about 12.8 horsepower to go 60 mph, while a Sportster gets along at 60 with about 10. Headwinds, climbing and elevation all affect fuel mileage. Total gross weight has little influence at steady speeds; however, carburetor jetting has dramatic effects on fuel mileage.

When I talk with someone about fuel mileage, I find it useful to set a test standard. Here is my standard: a steady 65 mph on a flat, windless road. These are conditions most of us can find and safely use. Using this standard, stock Harleys typically deliver 45 to 55 mpg-the lower for the big touring rigs and the higher for the Sportsters. I have found that properly jetted Evo, Sportster and Twin Cam Harleys deliver mileage between 42 and 51 mpg, using the test standard defined above.

Keep in mind that stock engines are tuned very much on the lean side of correct jetting. When we modify carburetors to get rid of the “lean staggers” during warm-up and to smooth out throttle response during acceleration within the lower throttle settings, we can expect somewhat lower fuel mileage at cruising speeds. However, that loss need only be a couple of mpg, not 10.

I have talked with many (easily more than a hundred) owners who have installed the Dynojet kit and who have been disappointed with the results. From your bike’s mileage I would guess that you have either a Dyna or Softail series motorcycle; 36 mpg is about right for a Dynojet-kitted FX Harley. The big touring machines usually get closer to 32 with the Dynojet kit.

An FXD or FLST that delivers 36 mpg at 65 mph is running too rich. That too-rich condition has consequences. Range is an obvious possible problem, although some riders aren’t too concerned about range as they like to stop more often than the bike needs a fill-up anyway. Climbing ability is a more important concern for those of us who need to go up or over mountains. A 36-mpg bike will probably start misfiring due to its over-rich condition by 4,000 feet, maybe even 3,000. By contrast a stock or correctly jetted engine should get to at least 6,000 feet before getting grossly rich, 7,000 feet is better and achievable.

Stock Harley jetting is very lean from just off idle to about ¼-throttle. This is also true of all road-going bikes sold in America for the last quarter century. However-and this is important-at idle and above ¼-throttle the jetting is pretty good.

Harley’s Keihin CV (constant velocity) carburetor is based on the basic Amal slide carb design from the early post-World War I era. And therefore, it shares similar parts which perform similar functions. Idle and just off-idle air/fuel mixtures are controlled by the idle jet which is fine-tuned with a screw. Both the jet size and screw setting are important.

Off-idle to approximately ¼-throttle mixtures are controlled by the straight-diameter part of the needle together with the inside diameter of the needle jet, in which the needle rides. This is the range that is too lean for best engine performance on stock motorcycles. Either the diameter of the straight part of the needle, or the inside diameter of the needle jet, must be changed to affect mixtures in this most used throttle range. Nearly all riding is done within this off-idle to ¼-throttle range.

From about ¼- to ¾-throttle, the taper of the needle controls the main mixture. One normally raises or lowers the needle to fine-tune mixtures within this range.

The main jet takes over at about ¾ throttle and is virtually unimportant below that opening.

If you would like to learn more about how to diagnose and tune these carb sub-systems, I invite you to download the Mikuni HSR Tuning Manual (; click on the picture of the carb and click on the hot link “Manuals”). I wrote this manual for Mikuni, and although it directly addresses the Mikuni carb, the diagnostic principles apply to the Keihin CV and many other carburetors as well.

To get your Harley’s stock carb right, follow these instructions:
l. Buy and install a stock jet needle for a 1988 or ’89 1200 Sportster (H-D Part No. 27094-88). This needle was developed for the early Sportster Keihin CV carb that was not equipped with an accelerator pump. As such, it is richer in the off-idle to ¼-throttle range and works just right.

2. Remove the soft aluminum plug covering the idle mixture screw. Back the screw out to slightly richen the idle mixture (½ to 1-½ turns will do it).

DO NOT do any of the following:
Do Not change the main jet; the stock one is just right with a free-flowing air cleaner and mufflers. Yep, the stock main jet is rich. If you find this hard to believe, use the main jet test in the Mikuni manual to see for yourself. You see, the main jet size is not controlled by emission testing and the government is not very interested in mixtures at full throttle. The factories are free to use any main jet they want and, for some reason, all the stock bikes I have tuned over the past 25-plus years have had somewhat rich main jets, including Evo and Twin Cam Harleys.

Do Not change the slow jet; the stock one is just right with an open air cleaner and free-flowing mufflers.

And Do Not install straight, open pipes, especially long ones. If you do, forget everything I’ve said. Straight open exhaust-equipped engines run poorly in the 2,000- to 3,500-rpm range and no amount of carb tuning can fix that.

— Joe Minton

Joe Minton Mikuni HSR42 setup/tuning recommendations

Sunday, May 6th, 2018

Quoted from Joe Minton

(This is an archive, posted to preserve the knowledge and insight of Joe Minton. From my understanding he died long before I posted this article – added 7/2023)


Carburetors work by creating a partial vacuum in the throat (venturi or choke) of the carb body. The difference in air pressure between the throat and the outside air causes fuel to flow into the carburetor through any orifice it can find. Tuning a carburetor consists of controlling the size of those orifices so that the resulting air/fuel mixtures are correct.
The Mikuni HSR is an Amal-pattern carburetor, as is the stock Keihin. Amal-pattern carburetors have three basic air/fuel control element
s: idle, main (mid-throttle) and the main jet. The HSR also has an adjustable accelerator pump, which I consider an important fourth tuning element. All tuning elements are supplied with fuel by the float bowl at the bottom of the carburetor.
The idle system is a separate carburetor built into the main body. There are appropriate connecting passages, a replaceable jet, and an adjustment screw. The screw controls the air/fuel mixture at dead idle. The jet controls mixture as the throttle begins to open. By about 10 percent throttle, the idle system is delivering all the fuel it can. It continues to provide this fuel all the way to full throttle.
The main system operates as the throttle slide is raised above about 5 percent, and it begins to deliver fuel and assumes control of the mixture. Yes, there is an overlap between the idle and main systems. However, it is not difficult to get this overlap area right if one follows the manual’s advice.
The main system consists of the throttle slide, a tapered needle (jet needle), and a needle jet. The needle is mounted in the center of the slide. The needle jet is mounted in the carb body. As the throttle slide rises and falls, the needle moves in the needle jet. The needle is tapered. The relative sizes of the needle and jet determine how much fuel is forced into the carburetor throat at any particular throttle setting. More fuel flows as the slide rises, due to the needle’s taper.
The main jet is mounted to the bottom of the needle jet and limits maximum fuel flow. It assumes control at about 75 percent of the throttle opening and has no effect until then.
The accelerator pump’s purpose is to supply a squirt of fuel when the throttle is suddenly opened and there is too little vacuum for the main system to work properly. It has a replaceable nozzle and can be adjusted for starting and ending points.
Advanced tuning is a bit involved as it is for any carburetor. The individual steps are simple and clear. The great advantage of Amal slide-type carburetors such as the Amals, Bings, Dell’Ortos, Mikunis, and others is that their entire operating range can be adjusted in the field. We have a four-step tuning procedure for these carburetors that has served well for more than 80 years.
First Step
Adjust the idle system. Set the adjustment screw for best idle. Fit the idle jet that gives the smoothest response as the throttle is slightly and slowly opened.
Second Step
Adjust the main system. Accelerate with the throttle between 10-to-25 percent open. If the engine responds cleanly and briskly, the needle diameter is correct or nearly so. If the engine seems lean, a smaller-diameter needle is needed. Too rich needs a larger needle. In practice, needle changes are seldom required.
Third Step
Accelerate in the 25-to-75-percent throttle range. The needle taper controls the mixture strength in this range. There are five needle-height adjustments. If the mixture seems rich, lower the needle; if lean, raise it.
Fourth Step
Accelerate at full throttle. The main jet that makes the most power is the one to use. A dynamometer is not needed for this test. Accelerate between two points on the roadway. The highest speed at the second point defines the correct main jet.
Accelerator Pump:
As I said, the accelerator pump adds fuel when the throttle is first opened. This is to both richen the mixture for maximum throttle response and to compensate for low vacuum over the needle jet. The HSR pump has three adjustments: starting point, end point, and nozzle size. Nozzle size determines the fuel delivery rate and how long the squirt lasts.
The stock settings start the pump at about 1/8th throttle and end its stroke at around 1/2 throttle. The jet is a number 80 (0.80mm in diameter). I use and recommend different settings, which I’ll detail later.
This simple set of procedures works well and can remove most of the mystery from carburetor tuning.
Does Size Matter?
Yes and no. Those people who have worked with true Amal-pattern carburetors, which have round slides, know that the larger carburetors help make more high-rpm power by flowing more air. However, that greater power potential is accompanied by a loss of low-rpm throttle response.
The more recent flat-slide variations, such as the Mikuni HSR, greatly reduce this power/response trade-off. It is now possible to fit a “top end” carburetor and still get good throttle response in the lower rpm and throttle range.
A 42mm HSR42 adds about 3 horsepower to the output of a stock Twin Cam or EVO engine. The 45 adds 7 horsepower with no loss of part-throttle response, fuel mileage or tuning sensitivity.
The performance advantage of the 45mm carb means very little to most of us. Its power advantage only begins to show at well above 5,000 rpm. The HSR42 is easier to mount as it uses the stock manifold while the HSR45 needs the larger Harley Screamin’ Eagle or Mikuni manifold. It’s your choice. If you are chasing maximum power with cams, porting, etc., then your choice is obvious. Otherwise it makes no difference which one you choose.
The HSR48? Don’t bother. Our testing shows that the HSR48 only adds 2 or 3 top-end horsepower to an already powerful (120-plus horsepower) engines.

Tuning Recommendations:

Mikuni’s default jetting and adjustments cover most engine setups, as they should. Tens of thousands have been sold with very few complaints about how well they work. However, the stock settings are fail-safes and are on the fuel rich side of ideal. I have no complaint about the stock tuning, except for the accelerator-pump settings, which I am convinced are just plain wrong.

I have developed a set of jets and adjustments for the HSR42 and 45 that work better on most properly tuned engines. By properly tuned I mean that the engine is sound, there are no long straight pipes, drag-race cams, or stylish air cleaners that don’t flow much air. Many hundreds of Harley owners have adopted my recommendations and have gotten excellent results. They report that throttle response is improved, fuel mileage is better, and their engines sound and seem “happier.” The changes I recommend include accelerator nozzle size and adjustments, idle jet size, and needle size.

Here is what I change and do:


•17.5 idle jet, leaner than the stock 25 or 20.

•98 needle, leaner than the stock 97.

•50 accelerator pump nozzle way down from the stock 80.

•The main jet is whatever it needs to be and the stock one is generally correct.

These parts are available individually or in kit form from Fox Distributing in St. Charles, Illinois, 630-513-9700.

The kit is called the Mikuni Mileage Kit and there are separate kits for the HSR42 and 45 carburetors because the needles are different. The kits come with simple installation and tuning instructions.

Adjustments (See The Manual For Details):

1. Adjust the accelerator starting point so that the pump starts working immediately. Adjust the end point for maximum travel.

2. Fit the smaller idle jet and adjust the mixture screw for best idle.

3. Fit the leaner needle with the clip in the middle notch.


1. Performance just off-idle is cleaner and more immediate. This is because the idle jet is more correct and the pump delivers fuel sooner but at a lower rate than stock.

2. The engine is more responsive, cleaner and “happier” sounding because of the leaner mixtures in the 10-to-25- percent throttle range, where we do most of our riding.

3. Fuel mileage increases, sometimes dramatically. Don’t be surprised if you record 48-to-49 mpg at 65 mph. Even baggers do better.

4. Midrange throttle response is greatly improved and the engine is much more pleasant to use. Expect bugs in your teeth.


1. Engines with high cranking pressures (high compression) may detonate at low rpm when accelerating. The original 97 needle should fix this.

2. Nothing, not this kit, not this carburetor, nor any carburetor, is going to make an engine suffering with open straight pipes run well.

3. Big cams, those with intake-closing angles of close to 50 degrees ATDC, aren’t going to run well below 4,000 rpm. No Mikuni or any other carburetor can fix this. Either race the thing or install a more appropriate cam for street use.

Harley Davidson Twin Cam 88/96 Spark Plug Cross Reference

Sunday, May 6th, 2018

I have these for my 2003 FXDWG

ACCEL – Y2418P

Autolite – 4164

Autolite Iridium – XS4164

Autolite Platinum – AP4164DP2

Bosch Platinum – YR6DLE

Champion – RA8HC

Denso Iridium – IXU22

H-D Standard – 6R12

H-D Gold – 6R12G

H-D Platinum – 6R12PP


NGK Iridium – DCPR7EIX

Splitfire – SF416D

No known cross refs for AC Delco or NGK Platnium

Hayward Swimpure Plus is a shoddy POS…

Sunday, April 15th, 2018


Ok, every year I have the same problem. The green lights on my Hayward salt generator go off. The display stays on telling me how much salt is in the pool, but the lights will not come on. Usually when I first notice this I can turn off the generator for a little while then the green power light will come back on for a while then when I turn the generator on, the relay will click, then all the led lights go dead again.

This is due to Goldline controls horrible design where a current inrush limiter goes bad and kills the power stage on the primary board.

Here are some links for this issue:



Another user’s site with pics and descr

I’ve stolen a few pics from the last user site (just in case he pulls it down)

ametherm-sl322r025 aquariteboardremoval aquaritevaristorcloseup










Here is my post from a popular pool forum:

First off I’m a little ticked at Hayward/GoldLine for continuing production of a faulty design. From the number of people complaining about this, it is not an isolated issue with my board. The only justification I can think of is that they love to sell those $400 boards as a result of the shoddy design. As a result, I have had to replace my inrush limiter once every year.

It may have something to do with my cell being the biggest the system can handle (T.15 for a 40k pool, I think). It always seems to happen after the first of the year when the pool has been too cold for the generator to run, then I run Super Chlorinate for a full day to catch up. I think this overheats the inrush limiter.

Last year I replaced the original AS32-2R025 (DigiKey 570-1105-ND) with a AS35-2R035 (Digikey 570-1112-ND). The resistance at full current was a little lower, but not far off and the part was built to run 35 amps as opposed to the OEM 25 amp… It seems that the AS35 upgrade did not fix the issue.

Update 2013:

Here we are at the beginning of another year and I’m replacing the inrush limiter again because of the same reasons…

This year I’m going with a MS series part MS32-2R035 (Digikey 570-1027-ND). Just replaced it this morning and everything is back up again.

Update 2014:

So far all is well the generator has been running fine since last year. I have not pulled the board off to see if I find any delamination on the inrush limiter part. But Everything appears normal so far. If I were giving advice I’d say to: Replace the AS32-2R025 (DigiKey 570-1105-ND) with a MS32-2R035 (Digikey 570-1027-ND). However, my decision to modify my unit was entirely my decision. If you choose to modify yours, it will be your decision. You should not take advice from me without performing your own assessment and reaching your own conclusion. Additionally, anyone who decides to do such a thing should have the work done by someone who, at least, knows how to solder…

Update 2017:

So I haven’t updated this for a while, sorry…  The system is still working fine. Where replacing the inrush limiter had become a yearly event, the beefier part has been operating without issue for 4 years now :)

Update 2018:

Still no issues. 5 years and counting.

Update 2020:

I think I’m going to stop updating this as I assume Hayward have changed the circuit design in the last 7 years, but still no issues. My salt generator is still up and running.