Matrix-1000 sensation: Rare bug spotted in the wild after 30-odd years!

An option for setting voice allocation in the Matrix simply does not work – never has – and nobody seems to have noticed up to now. But there’s a fix for that.

A cute golden bug akin to a cricket looking above the edge of a circuit board

“Hey, I want that update! Especially as I already own V1.20!” — PLEASE READ HERE

A couple of days ago, Bob Grieb – the engineer behind the Matrix-1000 update I am selling here – got a email from a Matrix owner using the updated V1.20. The mail politely noted that the “Reassign/Rob” setting wasn’t working, and inquired whether there might be a problem with the V1.20 firmware. Bob, who does no longer own a Matrix-1000, fired up a Verilog simulation he had created for testing, and found that the Matrix owner indeed was right – the “Reassign/Rob” setting of Parameter 48 (0x030h) wasn’t working, and it wasn’t working in firmware V1.13 either – a very early patch of the last factory firmware by Oberheim itself.

So it was a bug that had always been there, and nobody seems to have noticed. Or, at least, have cared enough to look for a fix.

What “Reassign/Rob” is supposed to do – and why you never noticed

The Matrix-1000 has six voices. When your Matrix is playing six notes at once, it won’t accept any new notes unless you release one of the notes being played. This is the default setting, and it comes in two flavours, “Rotate”, and “Reassign”. They are set with values 0 and 1 of parameter 48, and the Matrix-1000 manual also has two more settings, Unison (all voices playing at once), and “Reassign/Rob”.

The Matrix-1000 manual is a bit cryptic about the meaning of all this; quoting from the Matrix-6 manual instead:

  • ROTATE: When playing notes on the Keyboard, this polyphonic mode loops through the six Voices assigning each new note to next available voice.
  • REASGN: Abbreviation for “Reassign”, this polyphonic mode is similar to ROTATE but notes that have the same pitch (otherwise known as “note value”) are reassigned to the same voice. For example, if you play Middle C it will be assigned to a certain voice. Every time thereafter when Middle C is played on the Keyboard, that voice will play. “Reassign”, by the way, is the KEYBOARD MODE enabled in the Basic Patch.
  • UNISON: This mode takes the MATRIX-6 out of polyphonic mode and makes the synthesizer monophonic.
    (…)
  • REAROB “Reassign Rob”: When in Reassign (REASGN) mode, voices will be robbed from keys held in the same way as ROTROB.

So what the “Reassign/Rob” value actually is supposed to do, is to enable voice stealing — notes being played suddenly go missing, making it painfully obvious that your synth is running out of resources. It is infuriating when we notice, and we seem to notice the limitations of a 6-voice synth a lot more when notes suddenly vanish than when they never appear in the first place.

So to be honest, I never noticed that this doesn’t work. Did you?

Bob, however, found the reason: The code for the note-stealing setting is 3, but there is a safety check that limits the parameter to entries from 0-2 instead of 0-3, so that the correct value can never be received. It’s only one byte that has to be changed – no, one bit, actually: Look for 0x81 0x02 0x22 0x02 in the ROM and change it to 0x81 0x03 0x22 0x02; changing one lousy bit. It’s that simple. And this is what we decided to call V1.21.

A rack with a controller, a Matrix-1000 synthesizer, and a Lexicon digital reverb; the Matrix showing

V1.21 is displayed on powering up

So how do I get it?

Unfortunately, this means that we will have to throw all V1.20s away, we cannot correct them. The one bit we have to change cannot be reprogrammed, so to upgrade from V1.20 to V1.21, you have to create a new chip, send it, and swap it.

And this is the main reason we don’t give the update away – this needs chips, and this takes work, so we charge you what is basically just the price of the chip and a fiver for programming it, and one Euro for Bob. We had a similar deal for Matrix-6 V2.14 owners when Bob discovered another bug that had always been hiding in the Matrix-6 firmware — and I hope you think that this is fair, because it is: after all, the bug wasn’t Bob’s fault, so he is in no obligation to fix it for free.

One last thought: ask yourself whether voice stealing is really worth the hassle. I know perfectly well that it’s quite possible to go GASsing for a software update, but: If you haven’t noticed the bug before, you probably won’t need the patch.

M1000 V1.20->V1.21 Update

Matrix-1000 V1.21 Firmware Update ROM for V1.20 ownders

Item number: 0002
Item price: 12,00 EUR
(incl. 19,00% sales tax and plus Shipping cost)
ROM chip with re-engineered firmware for the Oberheim Matrix-1000 synthesizer

Firmware chip for the Oberheim Matrix-1000, V1.21 (Update for V1.20 owners)

V1.21 fixes a bug that prevented using voice stealing in all former firmware versions and assumes that you own a V1.20 license, i.e. bought the chip from me, Alpes Machines, or Bob Grieb. Price covers the chip and the burning of the firmware but not the license for the update - if you don't have an updated synth yet, you will have to buy a V1.21 new. Firmware update engineered by Bob Grieb/tauntek.com. Sold with permission, please prove ownership of a V1.20 license. (That doesn't cover anything you bought from some guy on the internet, I'm afraid.)
   

Some love for the Playstation 3

The PS3 is amazing – I got it 16 years ago, and it’s still running, working as a Blu-Ray player, and for the occasional round of Little Big Planet with the kids. And Sony still sends updates! But I noticed the fan has been getting rather loud, so I guessed it was time to clean the cooling paths.

Playstation 3 in black shiny surface, fat body

In the end, it took me about 30 minutes to take it apart and put it back together again, due to Sony’s service-friendly design. And it wasn’t quite as bady in need of some cleaning as I feared.

Continue reading

OMG OMG I actually played that thing!

Looking at the analytics, I have noted that my reminiscence to/analysis of the Keytek CTS-2000 synth has been found by a number of people that surprises me, given that it is an article about a truly horrible, obscure late-80s hybrid synth in a rather niche blog. Given that, I would like to share some proof that I actually played that thing, and on stage, too. And though it is hard to date the old photographs, I would estimate that I held onto it for quite some time.

So I guess at least the CTS-2000’s keyboard was really decent.

5-piece band: female bass player, percussion player, guitarist, keyboardist with guitar.

The band, by the way, was named “Voice of the Alien”. You won’t find anything Googling it.

I added another photo to the original article.

Upgrading those little LED reading lamps

Those rechargeable reading lamps are really nice, a pity they don’t last longer. But you can make them. It’s super simple – just add a second rechargeable battery.

These lamps are being sold by a couple of different Chinese manufacturers. Some have only one type of LED, some have two – for different lighting colours – and they all have a touch-sensitive top as power switch, charge via USB-C port, and are 40cm high. 

And they seem to have one other thing in common: they have room for a second battery. At least the three different types I opened did.

It doesn’t get any easier: Order battery, solder connector, insert…

Some of them even have a second battery charger terminal, like the one I modified in the video. Others don’t; there you can just add the second battery in parallel or, if you are less adventurous concerning the charging circuitry, remove the first battery.

The battery type used is a standard single18650 Li-Ion cell; rechargeable, with 3.7V voltage. The lamps usually hold one of those, offering 2400mAh of charge, but there are also affordable types that last longer, like this Samsung INR18650 with soldering pads (no affiliate link, order them wherever you like.) Just ordered a couple, as I am also planning to upgrade my new Digitakt.

Battery holder with second battery next to it, connector and cable soldered to it

So this is about as simple as it gets: open lamp, unpack battery, solder connector to the battery without overheating it – this is where the solder pads come in handy – remove first battery, plug in connector, test lamp, plug in second connector, test again, reassemble lamp, make wife happy.

…and I hadn’t realized that you can dim them!

It is a bit embarrassing but it took a hint from my daughter for me to realize that these lamps also have a dimmer function. If you keep your finger on the touch-sensitive switch, the brightness will decrease, then increase.

Explaining how to use the Digitakt is the one thing AI is actually good at

Well yes, the Digitakt II. A beautiful drum machine and sequencer but it takes you some time and effort to learn how to use it. But you may ask an AI, and this actually helps.

A black, square computer device very much like the original Digitakt but with a lot of knobs and buttons with illegible writing

Fantasy drum machine generated by Midjourney from a Digitakt image

It’s fairly straightforward: I gave the Digitakt II manual to a “GPTs”, ChatGPT’s way of building user-configurable assistants with an RAG. What that means is that the AI is actually trying to find the segments in the manual dealing with the user’s question, and using them to answer it.

A pixelated black/amber display showing a stylized brain, some buttons and knobs around it, illegible writing; the machine is named

A fantasy drum computer’s display, created by Midjourney

Wiring up the Digitakt, I needed information on how to play an expander via a synth keyboard attached to the Digitakt’s MIDI In. Given that the answer includes setting “Auto Channel”, and not anything associated with “MIDI Thru”, I am actually quite glad I had the AI to help.

You can find the Digitakt II Manual GPTs here – not sure whether you actually need a GPT-Plus paid account to use it, but you can use any RAG implementation for that. Prompt is straightforward:

# Role
You are “Digitakt II Bot”, an AI advisor helping to explain how to use the Electron Digitakt II drum computer and sequencer.

# Actions
– Use Retrieval to look for answers in the manual document
– Answer quoting the manual
– As a reference, name the chapter in the manual
– If possible, name the page number
– Explain step for step

# Rules and Limitations
– You are multilingual. If the user asks a question in a language like German or French, answer in German or French, translating the manual for her.
– Be concise and thorough.
– Always use examples to explain.
– Always check against the Digitakt II manual.
– Check whether your answer actually applies to the Digitakt II, rather than to its predecessor, the original Digitakt machine. The original Digitakt had a mono sampler engine and offered 8 instrument and 8 MIDI tracks, Digitakt II has a stereo sampler engine, and offers 16 tracks that may be assigned freely.

Some code to rescue your Diigo bookmarks

Sometimes, you notice you have some digital housekeeping to do, so you think: easy, I’ll just write a couple of lines of code to do the job. Bad idea – this will give you another project to abandon in no time, and take lots of time as part of the bargain. But it may have been worth it – here are some Python routines to manage your bookmarks on diigo.com and in your Nextcloud.

Continue reading

In case your Canon TR8550 (etc.) printer does no longer connect to the WLAN

I’ll just put this on the Internet in case somebody else is searching for a solution to this problem which I couldn’t find anywhere, although it’s fairly easy:

If your WLAN access point has activated WPA3 security along with the WPA2 standard, the Canon printer refuses to connect to the WLAN network and stops without asking for a password.

Drucker-Bildschirm:

Canon did not help me very much: The interactive manual promises a solution that never comes. It offered a download page for software where I could not download anything. The name of the program that was supposed to fix the problem had changed – and guess what the software to fix the printer’s networking problem needs? Right – a network connection to the printer. USB does not work.

Changing or updating your router might disappear the Canon printer from the network

What had started this: I had to do some maintenance work in my home network; updating and resetting the OpenWRT firmware of my main WLAN router. And suddenly, the printer was gone. It refused any attempt at reconnection. It told me wireless encryption was off, but offered no option of reactivating it.

Strangely enough, I had the very same problem when trying to connect to my secondary AP, a Fritzbox managed by the ISP. So it couldn’t be the router update, then?

Well, yes, it could. I never noticed with the Fritzbox, but both routers now offer WPA3, a more modern and presumably better wireless security standard. (German Erklärartikel for AVM Fritzbox.) Which overwhelms the firmware of the four-year-old printer. Most recent update, of course.

Interface des OpenWRT-WLAN-Routers: Einstellungen für Wireless, unter

So what you will have to do is to limit wireless security. Meh. Like, maybe, a firmware update would be nice?

Honorable Mention: My Sony-Playstation 3 has been getting updates for over 15 years now, and continues to do so. Which is really, really rare in home electronics.

Thermomix TM21 electronics: Speed knob maintenance

(I wasn’t willing to translate that myself; GPT-4 generated translation. German original here.)

How to Dismantle Electronics and Maintain the Potentiometer for Speed Control Due to Scratching and Stuttering Issues

Just a quick share for those who might need it – I couldn’t find any information on this topic elsewhere. There are instructions for repairing the drive mechanism here at CIHOME and some tips for dealing with “Error 3” at this workshop in Holzgerlingen.

The Thermomix I have is a family heirloom, but it’s been reliably serving me well. It gives off a robust and reasonably maintenance-friendly vibe (looking at you, Jura!). However, the thought of it eventually needing new motor brushes already fills me with dread.

Dismantling the Device…

…I didn’t take pictures of the process, but it’s quite simple: In total, six screws hold the white upper casing – two short ones at the back and four at the bottom. Annoyingly, the one on the front left (as viewed from the front) is shorter, and the one on the back left is inconveniently located in a shaft, so you need a long Torx screwdriver to reach it. I happened to have a T20, which fits reasonably well; a TT20 bit is better.

Next, pry or pull out the knobs from the casing – the time adjuster at the top right, and the knobs for temperature and speed. We don’t need to remove the front plate that’s inserted into the white top part.

Regarding the push buttons: This is one area where things can easily break; more on that later.

Blick unter die entfernte Oberschale; Kabel noch gesteckt

Blick unter die entfernte Oberschale; Kabel noch gesteckt

Unhooking and Folding Away the Upper Casing Shell

Next step is to unhook and fold away the upper casing shell. Disconnect the cables from the electronics – there are three white flat connectors with blue wires in different sizes, one black (with two grey cable cores), and the contact shoe of the green grounding wire. Once these are disconnected, you can remove the entire upper shell from the device.

Buggered those Push Buttons!

These can be tricky. That’s why it’s a good idea to watch a tutorial first.

Understanding the Push Buttons Mechanism

The push buttons are comprised of two main parts: the actual button, which protrudes from the front of the casing with a pin attached to it, and a counterpart that keeps the switch contact closed as long as no one presses the button. To remove the button, you need to detach the top part from the pin. That much is clear.

Unfortunately, the only solution I could think of was to use force, which led to me tearing off the rectangular plate on top. (This plate presses the switch.) It’s flanged to a tube where the pin goes, and at its upper end – visible through the slit below the plate – there are two small arms that hold the pin. You need to spread them apart using two small watchmaker’s screwdrivers, then you might be able to pull out the pin. Maybe.

Or, it might end up looking like this – the part in the middle and the one on the right are actually supposed to be connected; I ended up brutally tearing them apart.

Drei Teile - der Knopf mit dem Stift links, das abgebrochene Fassungs-Teil in der Mitte, und die Oberplatte rechts

I resorted to the reliable two-component adhesive. It worked after reassembling, and I hope it holds permanently, though I’m not very confident. If I can’t find replacement parts, maybe I’ll 3D print them, or else I might just permanently attach the plate to the pin.

Next, unscrew the three screws from the circuit board and unhook the display, which is held in place by two plastic tabs. Then, remove the electronics.

The potentiometers are soldered at three contacts as usual and additionally held by two tabs that are inserted through the housing and bent over. Carefully unbend these, lift the three poles of the potentiometer, and remove it.

It’s a 22k potentiometer from Piher. I couldn’t find a replacement part quickly, so I decided to open it up. (Update: I’m trying with a Pipher PT15NH now; that’s the closest approximation I could find with that through-hole shaft. Piper datasheet here.)

The cover is pressed onto the housing from the bottom and riveted over four plastic pins; you have to cut these slightly with a scalpel, then the cover can be pried open.

With the potentiometer open, do what one does with open potentiometers – clean the wiper and track with isopropanol or mild alcohol, gently bend the wiper contacts back into shape, and – I am grinding my teeth while writing this – apply a little contact oil, if available. Absorb any excess oil, reassemble the potentiometer, solder it back in place, bend the tabs back, and it’s done.

Reassemble everything – and it works.