Feed on
Posts
Comments

John Deere 328 woes

Off to the dealer

I haven’t ranted about the 328 skid steer I also inherited from dad. On the surface this thing should be great for clearing brush, fencerows, moving stuff around; it has a heater, A/C, solid cab. We have several shear and grapple attachments for just that. This thing has been a giant, multi-year pain in my ass. I think it worked precisely for two weeks, then sat for a few months and fell apart. This is the first piece of heavy equipment I’ve ever been responsible for, and I’m learning as I go along. And oh what a learning experience it has been. It’s a pretty pricey piece of kit so I’d like to keep it working for the day we do sell it when I’m done with it.

Battery replacement saga

The first issue was that over one winter two years ago the battery had completely died, would not hold a charge at all. The problem here is that in order to physically remove the battery, the boom must be raised to create enough clearance. Without being able to start the engine there’s no way to raise the boom, and there was no conveniently located tree to winch from. Being a hefty diesel engine, I learned you can’t just throw a battery charger with a 100 amp boost on it nor can you use one of those lithium ion boosters. Neither delivers enough juice when the main battery is dead-dead (in fact it probably works as a short and consumes load).

This leads us to an external booster battery. I got the new battery, wheeled it over, disconnected the old battery, and used some “heavy duty” 1 AWG jumper cables to from the battery cables to the new battery. This didn’t work either, and in fact the current draw nearly melted the jumper cables. Looking at the arc burns on the battery posts, it’s clear the jumper cables weren’t actually making much surface contact, just a few points where the teeth were biting. Further it was clear very little cable was actually making contact with the clamps and only one set of teeth were actually connected to the cables. It’s all a sham.

Homemade 1000 amp jumper cables

Because I only have so much time to devote to issues during trips, I was going to solve this once and for all on the next trip. I used some leftover 1/0 cable from truck amplifier work, ordered some expensive, mega-sized 1000 amp battery clamps from a outfit in Alaska, and built my own booster cables. It was shorter, larger gauge wire, both sides of the jaw carried load, and had much more grippy surface. I put some old terminals on the new battery posts to provide more surface area for the clamps to bite, and clamped the other end to the loader’s battery terminals.

328 started from external booster battery

It worked!  I was able to start the skid steer completely off the new battery using the new mega booster cable as it sat on the ground next to it. I was finally able to raise the boom and put the new battery in its rightful place.

It was super frustrating how many people told me “why can’t you just use a battery booster” and “why can’t you just use starter ether”.

The thing definitely now has a battery tender hooked to it all the time, I’m not going through this again.

Stuck boom

The next problem was the electro-hydraulic controls. At some point (I think before battery change) it developed a HCU 91.03 “throttle sensor out of range high” code. I could drive the unit around all day no problem, I could curl the bucket/forks up and down all day long no problem. I could raise the boom up … but could not lower it. As soon as I commanded the joystick to lower the boom the status board would immediately beep and display “Check service code”. I could raise the boom up even more, but still not lower it.

Video of control failure:

John Deere 328 boom goes up, does not lower

The fact that the curling worked and there was no jerky behavior lead me to believe this was probably not hydraulic related. In fact, there for a while if I cleared the codes and ever so gently nudged the joystick down, I could occasionally lower the boom, some times slowly, sometimes bit by bit; go too fast and the code warning would pop up. My hunch was the boom control was software linked to the throttle sensor, without a good reading it wouldn’t work.

Because the boom was stuck in the air I was hesitant to call somebody to come get the thing to work on as it might be too high on a trailer, and didn’t know of any mobile mechanics that could look at it.

I did eventually learn that in my particular 2009 328 unit the manual boom release was under the seat, buried under some leaves and dust. Prior to that everything I’ve seen showed a T-handle over by the left footwell which mine did not have.

328 manual boom release under seat

I also learned the boom lock is not some sort of hydraulic lockout, but an actual 2″ pin that slides out of the side of the cab that the boom rests on. This makes it safe to work on the unit when the boom is in a raised position, so there’s not a chance of pressure bleeding off and it coming down unexpectedly. Of course somebody had monkeyed around on this before I did and the boom lock lever inside the cab wasn’t even attached to the boom lock. I had to get in the back and carefully thread on washers and cotter pins to finally get it working like it should.

So this problem went on for over a year. I actually bought a bootleg copy of the 4″ thick John Deere 325-328 TM2191 “Operation & Test Technical Manual” to try to learn what the real problem even was and diagnose it myself. By the book, to get at the throttle sensor or even its cabling, required removing the A/C compressor and alternator, since the sensor was behind the alternator.

John Deere TM2191 manual

On one trip I had poked around at the throttle sensor cabling and actually had cleared the code for a while and the boom was working .. until it didn’t. I actually used it like this a couple days to move some stuff around, I could still tilt the forks to pick stuff up and shove it into the dumpster without needing to raise the boom.

Giving up

Eventually last fall I gave up, I just didn’t have time to tear into the unit any more and needed to get it working. My trips to Oklahoma can only last about a week and if I burn 1-2 days taking off the alternator, poking around, anticipating god knows what else comes up, that is quite expensive. I called around and found a John Deere dealer an hour away that could either send a mobile mechanic or come pick it up at a quite reasonable rate. What I thought might be a $600-$1000 job turned into something else.

First they sat out diagnosing the joystick. They said the joystick was intermittent, had to be replaced, and it would be around $4200 all said and done to replace it. Fuck that. I told them I couldn’t do it, just fix the throttle sensor issue, betting that’s probably the problem.

Then they said the throttle sensor problem was due to a sticky foot throttle pedal, and the hand throttle and foot throttle are linked together. Because it was sticking, the sensor couldn’t properly reset and would need a new foot throttle for $1200 parts+labor. Because I don’t use the foot throttle I asked if they could just disconnect it, they said it wouldn’t work that way. Fine, replace the pedal.

Between all the diagnosing labor and parts, the bill came out to $4700. $3200 of that was labor of diagnosing the joystick and then the throttle sensor. And it still didn’t fix the damn problem that started it all, not being able to lower the boom. I had asked if fixing the throttle sensor fixed the boom issue and they said it did, but I didn’t believe them until I saw it myself. Funny enough the transport fee was only $50 which felt like a bargain.

After three months they finally brought it back to me. On my last trip to Oklahoma last week the first thing I did was started it up to check it out. HCU 91.03 code is indeed gone now, but now I have new JSR 2660.14 and 2661.14 joystick codes that weren’t there before and the fucking boom still doesn’t work. Now even curling the bucket is hit and miss.

SIGH.

Depending how you look at it, it’s in worse shape now than before I had it worked on. The TM2191 says the 2660 codes are “joystick redundancy” like there are dual X/Y axis signals it expects and if they’re mismatched it doesn’t work. It says the only solution is to replace the joystick, that’s it. Now to find a joystick. Apparently they’re sealed units, not a whole lot to be fiddled with. I am super curious to crack mine open and take a look, is it a dodgy connector, a solder joint that needs to be re-flowed, or what.

There’s not much on the internet about the joysticks. Going by FB group posts it seems the joysticks can be replaced and recalibrated without a dealer. I did find one video by Paul’s Equipment Repair that actually covers some real electrical diagnostics that I need to re-watch.

 

The IH 484 runs again

Diesel supply line with new flare nut

My last trip to Oklahoma was a mild disaster. Nothing going right, skid steer still not fixed after $4700 at the shop, multiple 2+ hour trips fetching parts, aggravating oil and filter changes, and more house plumbing issues. But at least I got the IH 484 tractor up and running again. Between this tractor with the front-end loader and the skid steer, I need at least one of them working to lift things into a dumpster and start seriously cleaning up around the house. Last trip I was draining the diesel tank and broke the flare nut on the fuel line while putting it all back together. The fuel line had enough play that I was able to cut off the end, put on a new flare nut and re-flare the line this trip. After I did this the tractor was up and running again, drove it around 30-40 minutes, no power issues at all! So it seems years of water/dirt/trash in the diesel tank was the problem.

All not without its problems though. I noticed not only was my new flare nut leaking but also the tank valve was leaking. I think I need to re-flare the line so it sits better, and not sure if there’s a packing in the valve I can fiddle with. I had a couple of starter issues, apparently my battery tender did not keep up over the last four months so the battery didn’t have enough charge to start the engine. It was a combination of turning over and clicking that made me wonder if the solenoid was going bad now. After a whole day on a real battery charger, letting it run through a desulfation cycle all day seems to have fixed it.

Bent neutral safety switch

At some point the tractor went from struggling to start to flat out not even attempting to start. This is when I discovered the positive battery lead has been dangling from the side of the tractor for who knows how long and was actually being pinched between the clutch pedal and the neutral safety switch. It had been there for so long that the neutral switch was actually bent backwards and no longer made contact with the pedal after I got the cable out of the way.

Then I noticed a wire had been disconnected from the starter. I sure didn’t do this, and can’t fathom how it somehow just popped off the terminal on its own. Once I put it back in place the tractor was able to start cranking again. Today looking at manuals and old photos this appears to be the neutral safety switch and it doesn’t look like it was disconnected last trip. idk.

The amusing part was the wire jacket was cut on the neutral safety leads so somebody was clearly overriding it with a jumper at some point.

Neutral safety switch disconnected

New problem!

Which leads us to the new April 2026 problem: the engine now won’t shut off when the fuel shutoff is set to STOP.

It chokes and sputters and puffs black smoke, but will keep on running, even with the throttle set to idle. It shouldn’t do that. I even tried popping the clutch to stall it. Finally I had to shut off the diesel at the tank and let it starve itself. Current idea is that the cable leading to the fuel injector got some slack somehow and is not pulling the fuel valve lever all the way to kill the flow. There’s a set screw so this should be pretty easy to fiddle with next time, I had other things to do and didn’t get back to this. I’m happy the thing at least starts and runs now. RiverValley Farm over on YouTube had a similar issue, so I think its fixable.

Fuel run/stop lever not killing engine

I have several Raspberry Pi 3 and 4 out in the field running Raspbian/Raspberry Pi OS/Debian 9/12/13, and like everything else have Chef running on them. These are 32-bit armv7l and 64-bit aarch64 platforms and installers normally aren’t built for them, so you gotta do it yourself. I’m not a fan of just spewing files or gems onto a filesystem, I want my stuff in proper Debian packages. mattray’s build instructions and parts of the DEB-chef-cinc.sh script have got me through the switchover to building Debian packages for Cinc 15/16/17 on my own, but I started having problems on Cinc 18.

I have practically no expertise with Ruby bundler and Omnibus so I’ve just been using whatever big hammer that works for now, so there are surely proper ways to fix my problems I haven’t spent time on yet. I do Cinc builds for these maybe twice a year, so for me it’s not worth the effort to make it perfect. These are my notes for what I’ve been doing that may help others and in case I lose my Raspberry Pi used for builds. Apologies for the clowntown.

omnibus-toolchain and libatomic.so.1

Omnibus-toolchain is an intermediate step to get working omnibus tools to start building the real Chef/Cinc installer. It’s installed as a Debian package to /opt/omnibus-toolchain/. This doesn’t have to be built every single time a new minor release of Chef comes out, but needs to be periodically rebuilt. Which is a good thing because on a RPi 3 this takes several hours to build as it builds ruby, openssl, and a ton of everything else. Building Chef isn’t nearly as bad but still takes a couple of hours.

In particular on Raspberry Pi 3 (armv7l) I had a problem with omnibus-toolchain and binaries being linked against libatomic.so.1 but that library not being bundled in:

           [HealthCheck] E | 2025-08-30T17:48:15-05:00 | The following libraries have unsafe or unmet dependencies:
    --> /opt/omnibus-toolchain/embedded/libexec/git-core/git-remote-http
    --> /opt/omnibus-toolchain/embedded/libexec/git-core/git-http-fetch
    --> /opt/omnibus-toolchain/embedded/libexec/git-core/git-http-push
    --> /opt/omnibus-toolchain/embedded/libexec/git-core/git-imap-send
    --> /opt/omnibus-toolchain/embedded/lib/ruby/3.1.0/armv7l-linux-eabihf/openssl.so
    --> /opt/omnibus-toolchain/embedded/lib/libcrypto.so.3
    --> /opt/omnibus-toolchain/embedded/lib/engines-3/padlock.so
    --> /opt/omnibus-toolchain/embedded/lib/engines-3/afalg.so
    --> /opt/omnibus-toolchain/embedded/lib/engines-3/capi.so
    --> /opt/omnibus-toolchain/embedded/lib/engines-3/loader_attic.so
    --> /opt/omnibus-toolchain/embedded/lib/libcurl.so.4.8.0
    --> /opt/omnibus-toolchain/embedded/lib/ossl-modules/legacy.so
    --> /opt/omnibus-toolchain/embedded/lib/libssl.so.3

            [HealthCheck] E | 2025-08-30T17:48:15-05:00 | The following binaries have unsafe or unmet dependencies:
    --> /opt/omnibus-toolchain/embedded/bin/openssl
    --> /opt/omnibus-toolchain/embedded/bin/curl

            [HealthCheck] E | 2025-08-30T17:48:15-05:00 | The following libraries cannot be guaranteed to be on target systems:
    --> /usr/lib/arm-linux-gnueabihf/libatomic.so.1 (0x766e8000)
    --> /usr/lib/arm-linux-gnueabihf/libatomic.so.1 (0x767fc000)

Apparently this is only a Raspberry Pi 3 problem as this library is addressing some shortcomings in the arm7 architecture.

After beating on Claude for a while what I wound up doing was creating a config file for libatomic within the git checkout of omnibus-software (omnibus-toolchain/config/software/libatomic.rb):

name "libatomic"
default_version "1.0"

license :project_license

build do
  command "mkdir -p #{install_dir}/embedded/lib"
  command "cp -L /usr/lib/arm-linux-gnueabihf/libatomic.so.1* #{install_dir}/embedded/lib/ || true"
  command "cp -L /usr/lib/aarch64-linux-gnu/libatomic.so.1* #{install_dir}/embedded/lib/ || true"
end

and adding a dependency line to omnibus-toolchain/config/projects/omnibus-toolchain.rb:

...
dependency "omnibus-toolchain"
dependency "ruby-cleanup"

# XXX: local fix
dependency "libatomic"

exclude '\.git*'
exclude 'bundler\/git'
...

After nuking the caches under /var/cache/omnibus, starting another build, this finally got me a working omnibus-toolchain_3.0.41~20260117203037-1_armhf.deb package.

git 2.11 on Raspbian 9 (Stretch) is too old

The copy of Raspbian 9 I had on my Raspberry Pi 3s included git 2.11. Apparently it did not like doing a --depth 1 fetch and silently errored out.

Fetching https://github.com/chef/omnibus-software.git
Git error: command git fetch --force --quiet /home/omnibus/omnibus-....

[omnibus@canary01 omnibus-software-2799d14cecc5]$ git fetch --force /home/omnibus/omnibus-toolchain/.bundle/ruby/3.1.0/cache/bundler/git/omnibus-software-338444b7bc50110d52bb35857ad8f946482db0ef --depth 1 2799d14cecc59c6a351c5cba3761c01fff9a65a7
[omnibus@canary01 omnibus-software-2799d14cecc5]$ echo $?
1
[omnibus@canary01 omnibus-software-2799d14cecc5]$ ls -l
total 0
[omnibus@canary01 omnibus-software-2799d14cecc5]$

After building git 2.44 and installing it to /usr/local/bin/git, this fixed the problem. This also required installing libcurl4-openssl-dev, libcurl4-gnutls-dev, libexpat1-dev, gettext, and zlib1g-dev in order to have the git build to also make the required git-remote-https too.

license_scout can not detect licensing information

I was hitting this on both my 32-bit and 64-bit builds of Cinc 18, this seems like a new thing. Best I can remember this was trying to fetch a hardcoded URL for a license file on github which no longer existed and would require patching to fix?

          [Builder: chef] I | 2023-10-26T07:46:42-05:00 | Finished build
              [Licensing] W | 2023-10-26T07:46:47-05:00 | Can not automatically detect licensing information for 'chef' using license_scout. Error is: 'Network error
 while fetching 'https://raw.githubusercontent.com/socketry/multipart-post/main/README.md'
404 Not Found'

Encountered error(s) with project's licensing information.
Failing the build because :fatal_licensing_warnings is set in the configuration.
Error(s):

    Can not automatically detect licensing information for 'chef' using license_scout. Error is: 'Network error while fetching 'https://raw.githubusercontent.com/soc
ketry/multipart-post/main/README.md'
404 Not Found'

by now I was pretty frustrated and just wanted the damn thing to build. So I did this in the DEB-cinc-sh instructions:

bundle exec omnibus build cinc -l internal \
  --override fatal_licensing_warnings:false \
  --override fatal_transitive_dependency_licensing_warnings:false

I have no idea what this does, it probably means my packages are missing license files or something and shouldn’t be distributed.

cinc vs cinc-full source tarballs

In the Cinc source code repository, there are two types of source tarballs. One is named cinc-full-X.XX.XX.tar.xz and the other is cinc-X.XX.XX.tar.gz. The full- tarballs contain an additional omnibus-software directory and seem to only be for new minor version releases and not every point release (e.g. 18.1.0 vs 18.8.54). I really don’t know what the difference is and haven’t got around to asking. I’ve been successful building the cinc-full versions, such as 18.1.0, but was having problems with newer point releases. On 18.8.54 I tried copying the cinc-full-18.1.0/omnibus-software directory over and made the two directory trees look similar and if I remember right, my problems went away. So I’m guessing this is the omnibus build config for this particular minor tree and it’s good enough to build successive releases.

Other tips and notes

  • You don’t have to build ruby every single time you run the DEB-cinc-sh script, I have it commented out and only do it when neccessary. For building Cinc 17 I needed to bump up from ruby 2.7.4 to 2.7.8, and then for Cinc 18 I needed to build again to get to Ruby 3.1.4 which would provide the required bundler 2.x.

 

  • If you skip build steps such as Ruby, make sure you still source things like rbenv init - and add $HOME/.rbenv/bin: to your path. This makes sure you’re getting things like the new version of Ruby and bundler, not what’s on your system. If you’re skipping building omnibus-toolchain then make sure /opt/omnibus-toolchain/bin is in your PATH too, it also has its own version of bundle, ruby, and gem there.

e.g.

root@canary01:/home/omnibus# ./.rbenv/versions/3.1.4/bin/ruby --version
ruby 3.1.4p223 (2023-03-30 revision 957bb7cb81) [armv7l-linux-eabihf]
root@canary01:/home/omnibus# ./.rbenv/versions/3.1.4/bin/bundle --version
Bundler version 1.16.0

root@canary01:/home/omnibus# /opt/omnibus-toolchain/embedded/bin/ruby --version
ruby 3.1.6p260 (2024-05-29 revision a777087be6) [armv7l-linux-eabihf]
root@canary01:/home/omnibus# /opt/omnibus-toolchain/embedded/bin/bundle --version
Bundler version 2.3.27

[omnibus@canary01 omnibus]$ echo $PATH
/opt/omnibus-toolchain/bin:/home/omnibus/.rbenv/shims:/home/omnibus/.rbenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
  • When building all this your real Cinc files in /opt/cinc get used, trashed, and overwritten, so you really do need to have a working Cinc in place first and chown it to omnibus:omnibus so the build processes can use it as a build directory (surely this can be avoided). After you’re done building your new package you can install it on your system and it makes it all work again.
  • When building Cinc 18.8.54 I hit an error saying the version of Ruby I had (it was sourcing /opt/cinc/embedded/ruby) wasn’t new enough for some ssl thing, so I had to build Cinc 18.1.0 first, install it, and then I could use it to build 18.8.54.
  • Another occasional issue I had was during omnibus build of chef, it would complain like /opt/cinc/bin/chef-apply existed and it couldn’t handle this (despite having full ownership of the directory). When this would happen I’d just rm /opt/cinc/bin/*, re-run build and that let it go on its merry way.

TL;DR: re-re-patching vintage Turbo Pascal programs so they work in modern times on modern hardware

Wildcat! v4, a MS-DOS based bulletin board system was written in the 1990s in Borland Turbo Pascal and was not completely Y2k compatible. Internally the Wildcat! database understands the four-digit year just fine. (Wildcat! was not the only BBS software with Y2K issues.) The problem specifically is when dropping to an external program such as a door and returning, it reads/writes a session state file called SYSINFO.DAT which contains two-digit years. So when Wildcat! loads back in it sees the caller has been on since, say, 1/21/15, it thinks they’ve been on since 1915, a hundred years beyond their allowed time limit and punts them off. It also affects bulletin read state somehow, prompting you that almost all bulletins have been updated since your last call.

Fortunately there’s fixes for this to make Wildcat! work in the modern age by permanently manipulating the internal epoch year so that everything earlier than say year x/x/26 is really treated as 2026 and not 1926. One such program is called PatchWC! by Joe Martin of Via Software, commonly distributed as PWC300.ZIP (local copy). (See note below about why this doesn’t work in DOSBOX-X)

Another patch for Wildcat! that is almost always needed is to get around the Borland Turbo Pascal “Runtime Error 200” on modern hardware, which is a separate problem than Y2K.

I had actually patched my binaries a couple of times, first with an older version of PatchWC! v2.00 that only worked until Jan 1, 2025, a year ago. I had sworn I had used his v3 tool but didn’t. I re-patched using the v3.0 tool last year to get TuxedoCat Lounge BBS working again, but apparently I didn’t pay attention to the threshold year and things broke again on this week on Jan 1, 2026. The v3 tool has logs from my last run that clearly said “Updated WILDCAT.EXE threshold from 1900 to 1925“.

So, I’ve patched yet again, this time which should handle all the way out to 2040. Normally this would be at the cost of anyone with a birthday before 1940, but I don’t collect birthdays and pretty sure I don’t have any users that old.

The v3.00 utility is a huge improvement over the v2.00 tool. The previous version pretty much ran in your C:\WILDCAT directory, did a bunch of stuff, and returned. The newer version is clearly intended to support multiple types of patches someday, has menus, can tell if individual binaries are fixed, and keeps logs.

PatchWC! v3.00

 

PatchWC! threshold adjustments

 

Once the new threshold is applied, it looks something like this in the log file:

PatchWC! v3.00 log

Here’s what the previous v2.00 tool looked like:

PatchWC v2.00

Of particular note the PatchWC tools may be picky on what versions of Wildcat! they’re run against. I want to say based on some forum posts that maybe v2 only worked on Wildcat! v4.0/v4.1 and v3 only worked on v4.2, but I do not know. Strings I dumped out of v3.00 lead to me to believe it might be aware of a wider set of version numbers.

Once this is done the binaries are ready for the post-Y2K world, but in my case I need the Pascal Runtime 200 patch re-applied. (I’m not sure if PatchWC! reverts the runtime patch or if my backup copy of binaries didn’t have the Pascal patch already applied).

Borland Pascal Runtime Error 200 patch

Runtime error 200 at 2E09:0091

There are at least two tools to patch Borland Pascal .EXE files to fix the runtime 200 problem, one is PATCHCRT.EXE from Kennedy Software. This has been reliable for me, but has the annoying problem of requiring tapping through screens and only operating on a single file at a time. In the case of Wildcat! there are a couple dozen .EXE files that need to have PATCHCRT run on them, so the only option is to just hunker down, keep pecking away, and do them one at a time until you’re finished. Further aggravating matters is that some .EXE files may be PKzip compressed and need UNP.EXE to restore them before PATCHCRT can work. Other info about this problem is on the PC Micro website via the wayback machine.

Normally trying to run an unpatched .EXE file on a fast, modern (allegedly beyond 200 MHz) system results in the program exiting with something like Runtime error 200 at XXXX:XXXX.

I’d recommend copying C:\WILDCAT\*.EXE to somewhere as a backup.

Here’s running PATCHCRT.EXE WILDCAT.EXE:

PATCH-CRT

This is what it looks like after a Wildcat! binary has been patched:

Patch-CRT on WILDCAT.EXE

Now that both the Y2k and runtime error patches have been applied, all the binaries can be copied to your C:\WILDCAT directory, restart everything and you’re good to go.

PatchWC! v3.00 and BTInitIsam error

BTInitIsam message

Why doesn’t PatchWC! v3 work on DOSBOX-X, is it possible to make it work?

It seems reasonable to fire up a DOSBOX-X session to do this patching work. For whatever reason when I try to run PatchWC in DOSBOX or even when booting Windows 95 to a command-prompt only session I get the cryptic error “10310: Unable to initialize filer. (BTInitIsam)“. This does not happen when I run the program while the Windows 95 graphical shell is running and I do it from a command prompt. The number seems to change in “Please correct X restart” but I have’t been paying attention to when it’s a 1 or a 2.

Starting SHARE.EXE support in DOSBOX-X doesn’t help. I haven’t found any suitable answers on Discord nor Facebook for why this happens and I know other people encounter it too. It’s possible this affects other Turbo Pascal programs too. For the sake of learning more how to debug MS-DOS executables I started poking at this more to see why this is happening.

In fact, here’s all the places I’ve tried it out of curiosity to see what is going on:

  • MS-DOS 6.22: PatchWC runs successfully!
  • MS-DOS 6.22 with SHARE.EXE: PatchWC loads successfully!
  • Windows 95, 32-bit GUI loaded, MS-DOS shell: PatchWC loads successfully!
  • Windows 95 DOS (no 32-bit shell loaded): 10310 error
  • Windows 95 DOS (no 32-bit shell loaded) with Netware 4.0 client running: 10310 error
  • DOSBOX-X with SHARE support: 10310 error
  • DOSBOX-X with SHARE, NE2000, and IPX support: 10310 error
  • DOSBOS-X with Windows for Workgroups 3.11, Microsoft Network, IFSHLP.SYS and NET START: 10310 error
  • DOSBOX-X booted into FreeDOS 1.4: 10310 error

PATCHWC.EXE itself is a PKzip-compressed binary, so it takes UNP.EXE to extract the real .EXE file to start poking around. Running strings on this didn’t turn up anything interesting, but strings on the PATCHWC.OVR file. This uncovers some interesting text:

)Unable to initialize filer.  (BTInitIsam)
: 2Unable to create buffer.  (BTSetVariableRecBuffer)U
@RP1
.DAT
Unable to create database!
Unable to open database!U
BTCloseFileBlockU
^L DATABASE :
.  #:
BTREE ERROR ->
Unable to lock database!

Which leads me to believe “BTInitIsam” refers to B-Tree and ISAM.. Last year I spent a bunch of time trying to find this and it lead me to TurboPower B-Tree Filer, but I didn’t bookmark it and Google is utterly useless now. Google will endlessly insist “did you mean British?”

A few hours later

Ok no thanks to Google I found some Pascal notes where I was working on this problem last year.

In the Turbo Pascal B-TreeFiler v5.5 User’s Manual we have the function BTInitIsam:

BTInitIsam function

This is talking about emulating a network. Inside the B-TreeFiler v5.5 source code and docs we have these matches for “10310”:

basic147: tpbtreefiler_5_55 bwann$ fgrep 10310 -R *
doc/errors.txt:10310   4     Network initialization error (BTInitIsam)
doc/errata.txt:Q: What does IsamError 10310 really mean?
doc/Help/filer.hxt:10310  (4)    0202BTInitIsam
source/FILER.INC:      IsamError := 10310;
source/FILER.INC:      IsamError := 10310;
source/ISAMTOOL.PAS:          10310 : IsamErrorMessage := 'Netz-Initialisierungs-Fehler';
source/ISAMTOOL.PAS:          10310 : IsamErrorMessage := 'Network initialization error';

and this

Q: What does IsamError 10310 really mean?
A: BTInitIsam was unable to find the network you specified as the
   first parameter. For Novell this means that proper shell wasn't
   found (either NETX or the VLM Requester) or that a server that has
   been logged in to was not found.

Why Google can’t find that anymore is a sorry state of affairs.

More notes: BTInitIsam calls IsamInitNet in ISNETSUP.INC, which then has a case statement for NoNet, Novell, MsNet. Inside NovellInitNet we have a VLM suppport check and a thing called IsamInstallInt24Handler. MsNetInitNet funnily just seems to do no checking and always returns MSNetInstalled if it’s configured in the FILER.CFG file.

function IsamInitNet(ExpectedNet : NetSupportType) : Boolean;
begin
  case ExpectedNet Of
    NoNet  : IsamInitNet := NoNetInitNet;
    {$IFDEF Novell}
    Novell : IsamInitNet := NovellInitNet;
    {$ENDIF}
    {$IFDEF MsNet}
    MsNet  : IsamInitNet := MsNetInitNet;
    {$ENDIF}
  else
    IsamInitNet := False;
  end; {Case}
end;

From the DOSBOX-X debugger it looks like it’s making a ton of INT 21h calls around this time, so it seems to be getting something here triggering the network detection.

…no luck so far. I wish I knew enough about IDA Free or the DOSBOX-X debugger to poke at this more.

International 484 project

1979 IH 484

I’ve been working my way through fixing up vintage computers and software, so why not get a vintage tractor running?

TL;DR: good news: tractor runs, bad news, a lot of bad things

[photos: flickr – IH 484 tractor]

We inherited this 1979 International 484 from dad and it’s sat here a few years now. I slowly realized it’s no longer “that old tractor out in the field” but “my tractor” now, so I need to take care of it. Besides, the front end loader bucket would be super useful in cleaning the place up. I did not know what kind of condition it was in, if it actually “ran when parked” or not. I recalled there being some sort of problem with either the clutch or brakes. Dad had taken it to somebody to repair and they had either gave up trying to fix it or they sat on it for so long he gave up on them and went and brought it home.

I learned how to drive on this thing long before learning to driving a vehicle, I spent many summers raking hay and many cold winters putting out hay with it for the cattle. I wasn’t old enough to run the brush hog nor cut hay with it. I knew my way around but not in any serious maintenance capacity.

First thing first was seeing what kind of shape the battery was in and if the engine would even turn over. One trip I left a charger on it overnight, it was still dead and the best I could do was get some clicks and buzzes out of the starter. In the summer working on the electrical was a dangerous activity because of how many damned red wasps had nested inside it. At the very least I wanted to get the loader bucket off the ground as it was continually full of water and starting to rust, so I got a floor jack and got the bucket up on a concrete block to keep it drained.

The next trip I came back heavily prepared, I had found on eBay copies of the IH Blue Ribbon service manuals (I didn’t even know those existed prior), parts catalogs, and the operator’s manual. Normally I don’t like giving money to people who probably just printed a .PDF file, but I couldn’t find them otherwise and at the end of the day I still needed the manuals. At least they were nicely printed and bound bootleg copies. Ironically I’d like to have both .PDF and hard copy so I’m not hauling manuals back and forth to Oklahoma.

Theres a surprisingly scant amount of videos about this model on YouTube (other than for-sale videos) for how popular it was, yet old, I don’t know if I’m surprised or not. I at least found one video where somebody was trying to turn theirs by hand to check the starter and if the engine was seized up which gave me ideas what to expect checking mine.

Battery and a diesel mess

Next trip I went by Wal-mart and bought a new battery to stick in it. After putting it in I decided to try to check the filters for water. What I didn’t yet realize that whoever changed the filters last had tightened down on the drain screw to secure the new filter. When I thought I was loosening the bowl drain of the left filter, the entire filter assembly dropped off the head and diesel started pouring out of the line!

Left filter under injector pump

I couldn’t figure out how to get the damn filter re-attached, the bolt wasn’t screwing into anything. It took a good ten minutes if not longer for me to finally see that on top of the filter head was a loose nut that connects to the bolt that goes through the whole filter assembly. The front end loader frame obstructs the side of the tractor around the filters along with the fuel injector pump and I did not see this. It also made it quite difficult to get my hand in there to hold the nut in place while screwing the filter assembly back on. Meanwhile gallons of diesel had spilled out, which most certainly got rid of the water that I initially saw and then some.

This was all before I had fully digested the parts diagrams and manuals and probably could have avoided the mess. Looking at least one YouTube video, somebody else stumbled into this trap before I did.

To my surprise, and with a shot of ether starter fluid, the thing cranked over and actually started! It ran for several minutes just fine, no problems. The tires held air amazingly. The front end hydraulics, three-point hitch hydraulics all worked smoothly, forward and reverse gears worked, brakes worked, and I drove it around in small circles to try it out.

First startup

First start after 4+ years

Test drive

First thing I figured out was there was indeed a problem with the transmission. I could not shift into high-range, with the clutch pedal depressed I was getting a quick grinding feeling that shouldn’t have been there. At least low-range gears 2-3 and reverse worked which is enough for moving around the place.

Previously talking to my BIL, he remembered the PTO wasn’t working, so I gave the brush hog a try. I’ve never used one before so what could go wrong. I figured out the second problem with the tractor, the PTO could be engaged, but it was very difficult to shut it off. It was like the lever couldn’t go back far enough to disengage, it had to be worked around and held back to finally disengage the PTO.

I made a couple of laps around the field with the brush hog. As I was coming back around the engine suddenly started choking and running rough, like I was running out of diesel yet I recalled there being around half a tank.

I parked and could not keep the the thing running for more than a couple of minutes every time. It was hard to start and was running very unevenly, like it was being choked of air or fuel. I actually wondered at one point if I had sucked a wasp nest into the air intake. I had the filter out while running, I was messing with the PTO when out of the corner of my eye I saw something swirling around inside the air canister that looked like a dirt dauber or wasp nest, and by the time I got things stopped it had disappeared. I don’t know if it fell out or got sucked in.

Rough idle – clogged diesel line?

IH 484 rough idle

Fuel dump

During the Christmas trip I decided to dump all the diesel and change the filters. This time I learned the fuel tank has a shutoff valve at the bottom and the manual actually says to shut that valve before changing the filter. Crankcase oil was a bit milky so it needed to be changed, and the radiator core was dry and needed about a half jug of coolant to top it off. I hooked up the air compressor and blew off a bunch of leaves and dust out of everything. I took a bunch of photos and measurements of things so I’d have reference later, particularly the electrical wiring behind the instrument panel.

I tried running my endoscope down the air intake to look for my wasp nest but had an annoying time seeing anything on my phone screen in the sun and getting the camera very deep. Judging by the diameter of the actual hole going into the intake manifold, it seems doubtful a wasp nest got in but who knows.

I tried to fix things up with the filters. I discovered I do indeed have the proper hollow bolt that goes through the filter for draining the water catch, I had feared the shady shade tree mechanic substituted their own part. I worked off the drain nuts that had been tightly screwed on, and cleaned out the inside so draining the bulb would work again like it should. For the life of me I couldn’t get the LH filter mounted again with the top o-ring installed, later looking at photos I saw the old o-ring at the top was still in the filter head. The LH filter had some rust stain which tells me it was sitting in water. A mirror would certainly be helpful for helping replace the O-rings and get the filter on.

The RH fuel filter was much easier to change as the front end loader frame didn’t get in the way nearly as much. Oddly I believe there was some slight differences between the RH and LH fuel bowls and packing rings, which again not sure if by design or shady mechanic. While I had it off I discovered that’s where the chassis(?) serial number plate was. I was beginning to believe it didn’t exist, it’s sure not where websites say it should be. Previously I was only aware of the serial number on the left side next to the clutch, which I believe is the engine serial number.

Interestingly while I had both filters out I had very little diesel running out compared to my first filter misadventure. This lead me to believe I had a blockage upstream somewhere which would explain why the engine was running so rough.

Lots of trash in drained diesel

I unhooked the fuel line from the bottom of the fuel tank and diesel was just dripping out into my funnel, not a strong flow like I was expecting. I whacked the valve with a wrench and just like that what looked like coffee grinds started gushing out! I wanted to take the valve out to completely drain the tank but it seemed like it was in there pretty good so I left it be. I used compressed air to blow into the valve and tank a bit and blew the fuel line out while the filter was off, so pretty sure I got rid of all the rust and crap. If I had a longer transfer pump I’d try sucking out some of the nasty stuff at the bottom of the tank.

Unfortunately while trying to put everything back together, the nut on the end of the fuel line snapped in half.

Sigh.

Broken fuel line nut

The fuel line seems a lot longer than it needs to be so I think I can cut off the end, install a new nut, and re-flare the line. I didn’t have a flare tool so I didn’t do it this trip. I am moderately confident after getting this back together, getting air out of the lines, that the engine will run better next time. Before I left I did completely fill the tank with diesel to avoid any water condensation causing problems before I get back.

Helpful resources

I’m still figuring this all out. Getting the official parts catalog has been a huge help, absolutely worth the money I paid for it. It has tons of diagrams to show how things fit together, it lets me know what the names of parts are actually called rather than “the slidey rod through the hole”. I’ve quickly learned the parts numbers mean everything when trying to find replacements or look up anything online.

Parts Catalog totally worth it

These YouTube channels had several IH 484 videos that I watched and gathered a lot from:

Some new additions to the modem teardown album:

US Robotics Courier 9600 HST connected

US Robotics Auto Dial 212A

 

  • US Robotics Courier 9600 HST (manual, photos), “widebody” FCC ID CJE794FAST. This is similar to the 14400 HST I already have in the album, except this one takes 16 VAC power with a male DIN-5 plug. A PDF of the manual already is online at vtda.org, I wound up scanning my copy too for good measure.
  • US Robotics Auto Dial 212A (manual, photos) – This one is pretty old, from 1982. It has the old USR logo and was the predecessor? to the USR Password modem recently featured by The Serial Port. Mine doesn’t power up and I’m still working on it, so I don’t yet have action shots. I acquired the manual for this one a while back and it’s on Internet ArchiveUpdate: I got it working, see below
  • Apple Modem 1200 (photos), this was around the Apple II era. It has some chips labeled with USR 82-83 copyrights. This has a DE-9 serial connector and I haven’t got around to trying it out.
  • Cardinal V.34 with Voicemail (manual) – This is like the chonkier version of the Cardinal 28.8k I used to run with the ISP. The manual for it is up on Internet Archive.
  • Practical Peripherals PM14400FXSA V.32 bis (photos) – The first Practical modem I’ve got my hands on. Other photos I’ve seen on eBay indicate it uses a 16 VAC barrel plug, when I tried a 9 VAC and 15 VAC, the unit powers up but makes very unhappy speaker noises when I try to call out.

USRSTATS with a 9600 HST connection

Most of these are VCF West finds, I’ve slowed down a bit because I have modems running out of my ears, but will still try to pick up 1994-ish modems to document.

Yes I’m still aware a Flickr album is a lousy way to curate this growing collection. I haven’t got around to vibe coding myself a database gallery yet.

Update: Nov 15: The USR Auto Dial 212 lives!

I think I finally concluded the $4 flea market 9 VAC transformer I have either has a short in the connector or the plug isn’t long enough to properly mate with jack on the modem. It takes a lot of careful fiddling to get it just right where it stays on. Originally I was afraid some component on the board was failing. I’ve ordered some new jacks to try making adapters sometime soon.

Anyways the modem seems to work just fine! The AT commands must be all uppercase to work, and other than S-registers there’s really not many commands. It’s basically, dial, hang up, answer, speaker on/off, and show response codes, that’s it. I made several calls to the BBS over my VoIP connections, about half were good, half were mangled from line noise. There’s some overrun issues with heavy ANSI screens but that feels more like a flow control issue on the BBS side than anything.

Action shot of the Auto Dial 212A dialed up to the BBS at 1200 bps

Testing the Auto Dial 212A

USRSTATS from the BBS

Annie Corene (Farrell) Cox – family history video (YT)

Last year I found an audio cassette that turned out to be my great-grandma Corene Cox (“Granny Cox”) providing a family history from 1987. It covered the Farrell, Raper, and Cox families, growing up in Mississippi and Oklahoma. I had the tape digitized last year. I didn’t want to just throw the audio up online somewhere (it was 24 minutes), I wanted the material to be discoverable so I set off trying to transcribe everything. The tape was noisy and scratchy, AI-based transcriptions fell flat on their face and I realized I would have to do it by hand.

I spent hours listening to the audio on headphones, rewinding over spots over and over to make sure I understood it as I was typing. I had to build out entire swaths of family on the family tree to make sure I heard the names and dates right. Eventually I got the idea to adapt the audio into a video version but instead of some boring waveform visualization, I’d splice in real family photos to go along with the names. After all, I had scanned hundreds of family photos and I could cover most people with something.

This turned into a whole project I worked on and off of for a year. It took a while to find good photos, especially of couples. I did not want to ruin the risk of copyright or photos of questionable origin so I only used photos that I personally scanned.  On top of photos I spliced in screenshots of sections of family trees from Ancestry. I tried to keep it simple, I did not want some gaudy contraption with music jammed in and screams “graphics design is my passion!” to overload the simple narration. Finally I got a rough cut together then spent some time redoing half of it so everything looked consistent.

I posted the raw audio and transcript earlier this year up on my Documents/Genealogy page just to get it out there. Yesterday I finally finished the video (done is better than perfect) and uploaded to YouTube.

Some highlights:

  • Growing up in Guntown, Mississippi
  • Living in Calvin, Lindsay, Fish Creek, Kinta, Oklahoma
  • Henderson Raper and Arminda Kent having four and two children, respectively, from a previous marriage, then having TEN MORE children together (I mean it was a post-war plantation after all).
  • Picking 200 pounds of cotton to pay for her wedding dress, hat, and shoes
  • Getting married to Will Cox (W.R. Cox) in 1916
  • Will Cox delivering the mail in Kinta with carriage driven by a blind horse
  • Losing their son Billy Joe Cox in WWII
  • A sister getting a splinter under her fingernail from floor boards (no carpet) and losing the first digit of her finger
  • 50 years of church attendance
  • Visiting every US capitol, Canada, and Mexico

As I’ve noted a few times, some of her history sounds familiar to an article that came out a couple years later in a book two years later called “History of Haskell County Oklahoma – Indian Territory 1988”. The article cites it all came from an audiotape provided by Corene Cox, but there’s details in the book that aren’t in this version. So, I dunno if there was another version produced or they just supplemented it with additional interviews.

There’s somebody in the audio there helping Corene read material but I don’t recognize who it is. I’m pretty sure it’s not Inez, although she can be heard laughing in the room at the very end of the tape. It could be somebody from the Haskell County Historical Society doing the interview or could be one of her sisters, I have no idea.

Finally cut the cord

I haven’t posted in a while, but the big news I finally cancelled my cable TV service after 20 something years! Thanks to Comcast’s infinite money grabbing ways, they would happily let me stay on a data plan with usage caps forever until I “upgraded” to a new unlimited plan, which finally prompted me to deal with them. For months now I rarely watch actual TV, it’s all been YouTube and Plex videos. I used to keep the news on as background noise but that has long been dominated by politics and yelling, I’ve had enough of it. Between briefly catching up on CNN in the morning and watching the rather good “x That Build America” series in the evenings it’s just not worth the $140/mo I was getting gouged for.

Of course in our AI hellhole world cancelling cable was difficult. “Just use the website” they say. The website only offers ways to add/upgrade cable/internet/mobile plans, no way to subtract. The “Comcast assistant” is utterly useless, it’s not even a chat bot, it’s a bunch of pre-selected prompts to click through. The “live assistant” isn’t any better, when I tried to use it it errored out but at least dropped a phone number to use. Unfortunately it took 6 tries before the number actually worked. It would answer and then immediately disconnect. Fortunately when I did finally get through to a human it was fairly quick work to tell them what I wanted and there was no haggling.

It does feel rather weird turning on the TV out of habit and not having a channel lineup anymore. But at least I’m saving a lot of money and no longer have a data cap! We’ll see how long it lasts before I give in and relapse to TV society.

Update 11/2025: I figured out my LG TV has a bunch of “IP TV” channels. God knows how I’m being sold out to get those for free (I had to tweak my DNS sinkholes a bit to allow them) but now I have some of my local channels, CNN Headline, and CNN en Español, perfect! The CNN Headline channel reminds me of how it used to be way back when, just news for the day in 30 minute chunks over and over. No endless politics or obnoxious holier than thou anchors, just here’s what’s going on in the world right now.

I just finished up being a juror on a weeks long felony criminal case. A good hunk of the case depended on some video evidence from commercial outdoor security cameras in the middle of the day. I was in utter disbelief at how potato quality the video was, how it was mishandled, and the prosecutor wants us to reach beyond a reasonable doubt on some blocky squares that might be somebody’s arm? or leg?

After dealing with people breaking into my dad’s hardware store over the years and using those experiences to constantly refine how I capture video footage to better identify individuals to the sheriff, I have ✨Lots of Opinions✨ about security surveillance video. Video quality has gotten amazing over the last 10 years, going from shitty analog cameras to shitty 640 x 480 motion JPEG cameras, to 1.3 megapixel CCD/CMOS sensor cameras with audio, and now we’re up up to 8 megapixel 4K cameras that capture blades of grass and audio 20 feet away for $99. I am constantly swapping out cameras over time as things get better and what used to be blurry blobs at night are turning into real features. Beyond higher resolutions I’ve always advocated for better framing, lower camera positioning, just like you would taking a photograph. It always makes me sad when I see footage from high up of the top of somebody’s head and can’t tell anything other than their clothing.

To be fair in this case most of the crime was obscured on the other side of a vehicle so even a 4K video wouldn’t have helped much.

First off, the owner of the video system provided to the cops a screen recording of their security DVR system while it was up displaying 11 cameras angles at once, that was it. They testified while the cameras recorded independently they could not provide any source video files because “our system won’t do it, they’re so huge, it will break”. I have no idea what the cameras were but I imagine on a commercial system it was probably a few megapixels each. Because it was a recording of a recording, all those pixels and detail, just utterly thrown away and gone. And because it was an overview screen, all video windows were 1/11th the size of the total screen. What might have been 2560 pixels wide originally might now be 480 pixels wide on screen.

Now imagine this being played for a jury on a 53″ TV on a wall 20 feet away, we can’t see shit for details or people. During jury deliberation we got to view the video all we wanted on a old Thinkpad on the jury room, but still pretty bad. I’m not so sure if this was an improvement over just a cell phone recording of a monitor. Also interesting, the jury room laptop has to be old enough to play CD-ROMs.

Based on differing testimony between the video owner and the detective who collected the video, and general prickliness about the situation, I got the distinct impression the owner did not want to help the police at all due to their personal feelings/politics. Even with a violent crime happening on their property, they just wanted to do the bare minimum. They couldn’t be bothered to even get a screen recording of the individual camera views. The video file provided was panned/zoomed in a lot on the 11 camera view to follow single camera views as the action unfolded and moved around, and sped up/slowed down quite a bit presumably to get past times when not much was happening. It’s not clear who did the editing. The owner claimed the detective directed them (or their staff) how to do the screen recording, the detective claimed the owner just gave him a chair and a computer and left him figure it out on his own.

There was also the issue of video retention. The system owner said their system strictly captured 10 days and deleted everything, with no way to save files, which seems dubious to me. The detective admitted on the stand he had made a mistake at handling the video, he didn’t get around to reviewing the footage he was given until several days later due to workload. By then he realized there were no single-camera views on his USB drive, just this aggregate view, and by then all the original footage was all gone.

I get that the owner might not be a computer person, they’re at the whim of a black box they bought, maybe going by what somebody else told them about the system, and this whole ordeal is taking time out of their day, but still what kind of shitty system was this that it fails at its only job unless it was just to check off a box for insurance or corporate policy.

The original speeding up/slowing down of the video was problematic too. If it was sped up the person looks like they could be running away to flee, whereas normal speed they look like they’re calmly walking. The prosecutor had a video expert try to re-create the original timeline by making the frame rate uniform, and upscale the video to make it larger which helped but it made for jerky, blocky video.

I later told this story to a cop friend who did detective work and he just shook his head. He told me that in a situation like this where the owner couldn’t/wouldn’t provide original footage, especially if the victim was hurt, he “would get a search warrant in a heartbeat, take the system, the hard drives, everything, and get their own people to get that evidence”.

So I guess the lesson of the story is, if you want to use your video footage to prosecute theft, crimes, or whatever on your property make it easier on everyone by providing the best, largest, footage you can as quick as you can, and hang onto the original files. Imagine twelve people trying to look at it from across the room. Not so much tiny windows on a screen. Also maybe not store your video footage on your only NAS in case it gets taken. Much like how I say what you say can wind up in double-spaced transcript in court, be mindful of how your footage plays out for a jury, literally.

166 MHz LED readout

Back in the day when we had x86 IBM PC systems with “turbo mode”, which was really a reverse euphemism for being able to slow down the CPU clock for older applications, snazzier cases had a LED readout on the front to show the current MHz instead of/in addition to just a plain turbo LED.

These weren’t automatic at all, they were just dumb little circuits that displayed one set of numbers if the turbo lead was on and another set if the turbo lead was off. The boring people made their readouts say “HI” or “LO” so they didn’t have to bother knowing actual MHz or didn’t have enough digits. Inside the case was a group of jumpers that had to be set to turn on/off individual segments. This varies from case to case and the information for setting them up is almost lost to time, as the setup instructions are usually on a piece of paper with the case that promptly gets thrown away. Otherwise you’re left to just randomly pulling and setting jumpers to get the readout you want.

Backside of MHz readout board AT-302A

So for future google/AI searches here’s my setup instructions for my particular full tower AT case with casters, I have no better way to identify it by model/manufacturer really than that. The readout PCB is labeled “AT-302A”.

Vintage 386/486 beige full tower AT case, 5x 5.25″ drive bay, 2x 3.5″ drive bay.

This thing just screams back room closet server. You know it’s serious business because it has wheels!

Case MHz readout setup instructions

MHz LED readout power connector

Mine are printed on the box that holds all the accessories such as the wheels, screws, and drive blanks so it’s not as easily toss-able.

The PCB that contains all the LEDs gets power from a Molex drive connector, has connectors for the hard drive activity LED, and then a single negative lead that runs off to the “turbo LED” pin of the motherboard. If the pin is asserted on/off is what tells the readout board which MHz to display.  In my case my motherboard has no turbo mode so I want to connect it in such a way the turbo mode LED is always “on” and speed displays “166” for my Pentium 166 MHz CPU. I have the non-turbo speed set to “50” since that’s technically the bus speed, but this is never seen except for a very brief second when the PC is turned off.

Planning the readout

As recommended I did a quick sketch of what I wanted the LED readout to show, which segments needed to be lit when in turbo mode, not in turbo mode, and which segments stay unchanged between turbo mode on/off.

Here D1, D2, D3 are the individual 7-segment LED digits, and A-G are the seven segments within each LED digit. For example on the rightmost digit, D3, I wanted this to be either a 6 or a 0. When turbo was “on” segments A, C, D, E, F, G were on, and for turbo “off” use segments A, B, C, D, E, F. The common segments between both modes were A, C, D, E, F.

On the back side of the readout where all the jumpers were, this meant A, C, D, E, F need to be set vertically across the “P” pins. B needed to be set horizontally across the “L” jumper to get “0”. and G set horizontally across the “H” jumper to get a “6”.

Repeat for all three digits.

Originally I had the “1” on the left side of the segment display and was told this was aesthetically wrong and it looked like Sid from Ice Age. I agree, so I tweaked it.

Goofy 166 version

Further case identification from the shipping box, item no TP-918D, 75.x x 31 x 55 cm:

AT tower case TP-918D

Older Posts »