Sabriena’s Speakers: In Surgery

I don’t appear to have written about it, but nearly ten years ago when I bought my 7700k desktop parts, Sabriena got a nice set of speakers as well. They’re AudioEngine 2+, what’s now known as the A2+, but there have been several iterations since she got hers, and they’re basically “budget-friendly audiophile” grade gear, though they were still what I considered shockingly expensive at the time. Still, my wife let me spend a stupid amount of money on a desktop PC build, I wasn’t about to quibble over a set of speakers.

Truthfully? They’re pretty fucken nice. I’m aspirationally audiophile - I like gear, I like things that sound good, but honestly my ears aren’t good enough to tell things apart in a lot of cases, unless something is truly dreadful (that perhaps makes me about the only audiophile on the planet honest about my capabilities though?), but they sound pretty good to my ears. The most common conclusion drawn by anyone talking about these speakers is “amazing vocals, not enough bass extension” but for the sort of stuff I listen to I find the vast majority of stuff has way too much bass anyway, so these sound pretty damn stellar to me, particularly for the money.

Not enough for me to have sprung for a set over the years mind, but yeah… nice enough speakers, have lasted fairly well, drivers are still in great shape. However

Over the years, they started developing some nasty habits. When we moved into this house, Duncan and Sabriena’s desktops were in what can really be described as a sunroom - basically half windows and half open space, the only place to put their desktops was against the windows. This meant that lots of her stuff baked in the sun, the speakers included.

After being left on for too long, they’d begin to buzz. Not the general background hiss you’ll get from basically any amplifier, but an irritating roar audible from across the room. This progressed, until just before Christmas when she’d get about 10 minutes out of them, and so most of her gaming would be done with headphones, which she hates. She replaced them with the same cheap-shit ali-express tier speakers I’m running, and I can tell she’s not super happy with it. There’s also the issue of the volume control knob being scratchy as all get out.

But I’m a fiddlefingers with just enough electronics knowledge to make me dangerous to myself, we should be able to fix this right?

Crack them open, and from a cursory inspection everything looks nice enough. No caps leaking, everything looks in reasonable shape. A lot of it is globbed in either hot glue or epoxy, making service a bit more difficult, but a hypothesis began forming… the amplifier IC (a TDA7265) is bolted an alloy heatsink, which sits in the path between the woofer and the bass reflex port. The heatsink is then coupled to the metal back plate of the active speaker, though there’s no fins or anything on the exterior. But surrounding it is a bunch of globbed up thermal compound (I’m sad I did not take a photo before cleaning it), so I theorized that over time the thermal compound had marched out due to thermal cycling, and the IC was overheating, causing the buzz. This idea was reinforced by the fact I’d been beating the shit out of these things with 90s alt rock and shitty punk for two full days with the back cover off and it had not made any untoward noise once.

So after a long week at work on Thursday, I cleaned it all off with some rubbing alcohol. At this point I noticed plastic between the heatsink and the IC, and memories of people cooking their CPUs because they neglected to remove the plastic cover from the heatsink face came back. I peeled the plastic off, cleaned up the surfaces, smeared some of Jaycar’s finest transistor thermal compound it, screwed the IC back to the heatsink and let it have it again… cool as a cucumber this time!

Satisfied, I began to reassemble it, while still playing because I’m a neanderthal and whatever song was on was good, when it shot fire at me. Big sparks. Huh, that’s weird. I looked around for me having pinched a wire or something, when I simultaneously remembered two things: first, a line that my subconscious had clearly absorbed from the datasheet: “tab connected to pin 6”, and those fucking bits of plastic. Heading back to the datasheet for the amplifier, and yeah, pin 6 is -Vs, or -17.5VDC or whatever it is after any power conditioning in the circuit. Whoops, that’ll do it.

Sheepishly, I cleaned off the rest of the thermal compound from the plastic slices (there are actually two, so it’s heatsink->compound->plastic->compound->plastic->compound->IC), gooped the lot of it up, reassembled, and off we go.

At this point I’m starting to feel pretty good about myself as Mr Fixitman, when I went to adjust the volume and the noise came back. That’s weird, it’s never done that before. Sure enough, yes, the noise appears to be related to the fucking scratchy pot, I misdiagnosed the shit out of this thing, the thermals were probably fine. Well, not fine, it was definitely hotter when it’s making the noise, but I think the heat is a symptom rather than the cause.

Peering at the volume pot under a magnifier, the only markings I can make out appear to be B503, but by poking around on electronics sites and comparing specs, I’m fairly sure it is a Bourns PTR902-2015K-B503. It’s sealed up good, but in my desperation I gently drilled a tiny hole in the casing and fed contact cleaner into it, exercising the thing back and forth… not sure if I just can’t get it in the right place or what, but I think the pot is too far gone for my skills to salvage. It’s better, but still scratchy as fuck and still does the noisy thing.

I’m not 100% sure I have the make/model correct, but I couldn’t find anything that matched better. It’s weird that the B503 is a linear curve, I was under the impression that volume knobs normally use a logarithmic curve? But that’s definitely what’s stamped on it so it lines up with what’s on the datasheets.

Alas the PTR902s appear to be unobtanium now. I can find the exact same model number in a PTD, which is the same thing without the rotary switch. TT made a P092 which was similar but is also discontinued and out of stock everywhere. I just can’t find anything in stock that’s the same specs! So the following ideas have come to mind, and I’m not sure I’m good enough at electronics to work out which is the most sensible:

I’m not sure what to do at this point. I wrote AudioEngine’s support folks to pick their brains, and while they’re friendly they’re (justifiably, I suppose) not super forthcoming with information for someone who’s not an authorized tech, but what I can do is buy a replacement back panel, with an updated (USB-C!) amplifier board that’s a drop-in replacement for about $100AUD, so that’s an option too.

Horsham, VIC, Australia fwaggle

Published:


Modified:


Filed under:


Location:

Horsham, VIC, Australia

Navigation: Older Entry

NAS: Disk Upgrades

Almost 8 years ago now we scratched together enough to buy new disks for a shiny new ZFS pool. We were short on both hardware and cash, so we just went with a RAIDZ configuration of three 4TB disks. This gave us approximately 8TB of usable space, and the ability to lose any one of the disks without losing our data.

It’s performed admirably over the years, though we have, several times now, had to bucket out things to make space as it reached the dreaded 85% threshold (which isn’t really a thing any more, technically, but it’s a good spot to think “I’m running out of storage” for sure). Last year, it became clear that there wasn’t much track left in that approach, and I wanted some room to set up snapshots and a 3-2-1 backup regime and didn’t really have the space to start it.

But we weren’t about to drop a few thousand bucks on disks before Christmas, so it had to wait. Come February, I was going to do it, but we had a few vet visits that meant funds were a bit tight… so I basically decided I was going to put it off for another month. Then came the news: Western Digital have sold their capacity of hard drives for 2026 due to the incredibly infuriating AI bubble. Most folks around seemed to think this meant the prices would skyrocket, and they’d already gone up a good $20/drive at this rate, so I wasn’t about to sit around and wait to find out.

This did, unfortunately, mean that I bought all the drives in one order, from the same retailer. This is, according to superstition, less than optimal as they might be all from the same batch and if there’s a defect in the batch, you could lose the pool. I am not superstitious, but I am a little stitious, so this made me uneasy. However… if I waited, and then could not buy any disks (I’m not sure this would have happened, but bear with me) then I’d be running on 8 year old disks that were full anyway. Second, I need to take backups more seriously (the cobbler’s kids are definitely barefoot in this case, I spent so long lecturing my IT clients in the early 2000s about backups and I am straight-up dogshit at it), and if I have decent backups then losing the pool is just downtime rather than data loss. Third, I’m impatient as fuck and I wanted to just spend the cash and be done with it.

The disks arrived on Thursday. 8 of them, all 8TB WD Red Plusses. And yes, most of them are suspiciously close together in serial numbers. Ahh well, maybe the machine spirit will take pity on me.

Anyway, after quite a bit of fucking about (I went with 8 disks because it would fill the storage server’s hot-swap bays, not thinking about how I would put the other three disks in to copy the data across), we now have a RAIDZ2 pool of the 8 disks. This gives us about 48TB usable space, or 6x what we had. It also lets us lose any two disks from the pool without losing data. I thought about going with striped mirrors, but I don’t really need the performance and it’s nice to be able to lose any two disks, whereas with striped mirrors you can lose up to four disks, but only if they’re the right disks, if you lose the wrong two, data is gone.

So today, while I’m at it, I took everything down and did the final copy across, and then reinstalled Ubuntu on the machine… because it’s a continually-upgraded Xenial machine and there’s a lot of cruft on it, a clean slate is always nice. Got it up and running, and with a bit of grief and undoing all the NFS/iSCSI work I did (I’ll set those up again later, maybe, maybe I’ll just use Longhorn for everything not already on the disk box) and most things are up. As I write this, collectd and my Mozilla sync server aren’t up, I’ll probably do that tomorrow.

I did have one issue where one of the disks jumped out of the pool briefly, I am fairly sure that’s cable-related though… I swapped that disk around with another one and the other disk jumped out. So I unplugged and replugged the cables to that part of the backplane and so far so good, but I will definitely keep an eye on it.

I plan on finding a box to put the old disks in and using it as an on-site backup host, and then I’ll set up something like Wasabi or similar using Restic for off-site.

Here’s to - hopefully - 8 more years!

Update: 2026-03-08: Looking at them again, the disks I bought have already gone up a further $35/disk, meaning that for 8 disks I saved ~$280 by not waiting.

Horsham, VIC, Australia fwaggle

Published:


Modified:


Filed under:


Location:

Horsham, VIC, Australia

Navigation: Older Entry Newer Entry

Vetinari clock: Progress

I’ve had this idea now for ages - there was a kit that someone used to sell, long out of stock, that let you turn any normal clock into a Vetinari clock… a thing from the Discworld series where it audibly ticks erratically but still manages to keep accurate time. What I wanted to do, since discovering Espressif’s ESP8266 chipsets, is build one that speaks Wifi, syncs with NTP, and adjusts itself for daylight savings time while also being maximally irritating.

My personal project sat on hold for some time as my attention wandered… I bought a cheap clock (A$4 or so, if I recall), but turns out I’d bought one without a second-hand. I later bought another, less-cheap one (A$8). I then got stuck on how to appropriately drive it, because I know just enough electronics to doubt myself, and not enough to confidently build anything.

Fast forward to this weekend, when some lovely folks on Mastodon were talking about another project that implements an ESP8266-powered NTP clock in Arduino. That’s not exactly what I want, but crucially they’d done the hard work of solving the circuit problem. Indeed I had most of what I’d need already, I just needed four 1N4001 rectifiers and I’d be away. A quick trip up to our local Jaycar-adjacent store, and they don’t have them… they do have 1N4004 however, which from both of our poring over the spec sheets suggests they’re functionally equivalent they’re just rated to higher voltages, but for A$0.98 for four of them, I was willing to take a punt anyway.

I pushed everything into a breadboard, cracked open the clock, cut the traces and soldered some jumper wires to the coil, and put everything back together. Testing it quickly using 3.3V supply, I got 1-ish volts on the coil (a feature of the specific diodes seems to be the voltage drop across them), I just need to figure out how to flash the ESP8266 and I could start hacking shit together.

Alas, Espressif appear to have all but abandoned the older one… it’s unsupported by the ESP-IDF project, the old one needs things like Python which are outdated, and I’m running on Arch linux so I don’t have a real good way to do anything older. I tried grabbing what purported to be Docker containers of the build environments to no luck. I even tried spinning up the Arduino GUI and building the above-mentioned project, but couldn’t satisfy all the dependencies.

In the end, someone on Discord mentioned using tinygo, which worked after downgrading go and installing my own esptool, but unfortunately that does not support the wifi module so it’s no good permanently.

But I can use this completely dogshit random-ticker to prove the concept:

package main

import (
    "machine"
    "time"
    "math/rand"
)

func main() {
    r := rand.New(rand.NewSource(99))

    coil1 := machine.D4
    coil1.Configure(machine.PinConfig{Mode: machine.PinOutput})
    coil2 := machine.D3
    coil2.Configure(machine.PinConfig{Mode: machine.PinOutput})

    coil1.Low()
    coil2.Low()

    tick_odd := 0


    for {
        if tick_odd == 0 {
            coil1.High()
            time.Sleep(time.Millisecond * 30)
            coil1.Low()
            tick_odd = 1
        } else {
            coil2.High()
            time.Sleep(time.Millisecond * 30)
            coil2.Low()
            tick_odd = 0
        }

        time.Sleep(time.Millisecond * time.Duration(r.Intn(1940) + 30))
    }
}

Flashing it with tinygo flash -target=nodemcu -port=/dev/ttyUSB0 and I can observe that the LED is doing the thing (for some reason the LED logic is inverted though, I had originally inverted the low/high in the code but I think this is wrong… while it does not keep the coil energized I think it needlessly sends voltages across the diodes for no good reason?), and the voltages to the coil look sensible, so… I’ll either fix it or fuck it, hook it up.

And it’s working!

Now I just need to sort out some way to write software for the ESP8266 that can use the wifi (ideally using FreeRTOS, which I enjoyed), or I may have to ditch it and use a more modern ESP32 instead.

I don’t think I’ll bother with the flash memory portion of the ESP8266 project… our power is pretty good here and I will build a “clock adjustment” feature into it. So my planned features are:

This all sounds fairly doable by just standing on the shoulders of others.

Update: 2026-02-28: I switched things around, used the ESP32 board I had laying around, configured tinygo for it, and flashed it. I soldered things up to a protoboard and it’s all permanently in place, all it needs now is software.

But just leaving it run with the tinygo program on my bench, it’s delightfully infuriating. Incredibly annoying. It’s going to be amazing.

Horsham, VIC, Australia fwaggle

Published:


Modified:


Filed under:


Location:

Horsham, VIC, Australia

Navigation: Older Entry Newer Entry

UPS batteries replaced

Almost five years ago now, Greg gave me a UPS he didn’t need any more, specifically a 3kVA Eaton 5PX, an absolute unit of a device which he unfortunately doesn’t have the rack mount kit for, and I don’t care enough to pay the exorbitant prices eBay vendors are asking, so it just sits loosely in the bottom of my rack.

The batteries were probably not in great shape when I got it, as it turns out digging back through Grog’s diary they were probably past their reasonable service lifetime when he gave it to me… and when you add in the fact that it’d sat, discharged, in his garage for a couple years after he’d used it for a few years, I was not expecting much lifetime out of it.

But I’m a cheapskate, so I put it off - it kept my modest rack online for about 45 minutes through a couple of different electrical works, which is more than enough time to ride out the typically brief outages we have here. However, last year we had a power outage that lasted several hours, and I noted that the rack UPS only lasted about 10 minutes… time to do something about it, but I wanted to wait until after Christmas.

Well… it’s after Christmas, so once my January payment came through, I set about chasing them up. I pulled them out and had a look. Lachlan, our solar guy, replied back that it’d probably be easy enough to just get the batteries through R&J in Ballarat, as they’ll have them as they’re super common. Indeed, they appear to be just standard burglar alarm style batteries… 12v, 9AH, in a super-common size and really common terminals.

Stuff driving all the way to Ballarat though! I looked briefly on Amazon, and I can get them for about A$40 each plus shipping, but Jeff Bezos has enough of my money and there was a strike on on the day I checked… Australia wasn’t covered by the strike, but I’m sure no scab. I remembered there’s an R&J dealer in town… one of the local auto elecs. So on Saturday morning, in to ask them about it and yep… they can order them, it would take about a week. For the privilege of not buying from Amazon, it would cost me about A$20 more, though they weren’t the CSB brand, I’m quite fond of the various brands R&J sell, having had a really good experience with them any time I’ve used them.

The dealer copped the freight charges for me, so instead of arriving on the usual Friday shipment they actually arrived on Tuesday, which is pretty great. After work I pulled the old ones out, meticulously connected everything up the way they were (they’re all in series, but everything has black heat-shrink… I’m considering replacing one end of each of the jumpers with red heat-shrink instead, though that might backfire if I’m not clever enough to not connect the same wire to the same battery?).

I shoved it back in, and ran the battery test and it reckons I’ve got about an hour and 45 worth of capacity at my current load. Not bad. Unfortunately the “it’s been four years, you should replace your batteries” alarm went off after they were out, and it’s not immediately clear how to dismiss that.

Horsham, VIC, Australia fwaggle

Published:


Modified:


Filed under:


Location:

Horsham, VIC, Australia

Navigation: Older Entry Newer Entry

Commodore: Boot struts replaced

After watching someone with a fancy minivan wave their hand in front of the tailgate and have it magically rise on it’s own, Sabriena said that she’d like something like that on our next car. Why? Because since she hurt her back, she’s found opening the boot of our VE Commodore difficult and at times painful.

It’s hopefully going to be ages before we replace our car, but I figured that it was probably possible to adjust the spring on the boot to make it not so heavy. So when we got home, I looked it up, and no - there are no springs on the boot on this model at all. In fact, they’re just a pair of gas struts that handle the soft-close and weight offset functions, and apparently when they go out you get the exact situation we’re seeing: a heavy boot lid.

Looking it up, they’re not expensive - there are two, and most places had them for about A$40 each. SuperCheap Auto has them, “Ezilift” EL2071 are the ones for the boot on a VE sedan, and they were about A$75 for the pair. That’s cheap enough to gamble on the old ones still being fine, so we picked some up this morning, and when we got home after our errands I set about changing them.

Swapping them out is pretty easy: open the boot all the way, pop off the little metal retention clip (it slides down towards the tip, doesn’t need to come all the way off) on each end, and pop the strut out, and then clean the dusty grease off the nipples the strut sits on. Replacing the new one in took me a bit of figuring out, because I did not read about this beforehand. The strut is ever so slightly too long, and compressing the strut by hand is basically a non-starter.

But what you can do is close the boot lid slightly, and then there’s a plastic bump stop on each side that you can pop off to open it a tiny bit further. Do that, and the struts pop on with a tiny bit of effort. Push the clips back down, close the boot lid slightly and put the bump stops back on, and then test.

And the result? Both Sabriena and I nearly smacked ourselves in the chin with the spoiler when we opened it the first time. So yeah, I would say the old ones were buggered. You now trivially open the boot one handed - and you only lift it an inch or two and it opens itself.

I should have done this years ago, they were likely wore out when we bought it. I’m now side-eyeing the ones on the bonnet as well.

Horsham, VIC, Australia fwaggle

Published:


Modified:


Filed under:


Location:

Horsham, VIC, Australia

Navigation: Older Entry Newer Entry