Oberheim Matrix-6 and Matrix-1000 firmware update on eBay

Bob Grieb’s brilliant firmware rewrite for the Matrix-6 and Matrix-1000 machines has been in testing for some time. The code seems to be running fine and is definitely a huge improvement: Matrix-6 owners will gain a machine that is much more responsive, and has been ridded of a couple of nasty bugs. And even for Matrix-1000 owners that have been using GliGli’s v1.16 patches, the new software offers, in my humble and slightly biased opinion, great advantages.

Matrix-6/R Firmware V2.14 in box

Bob has started shipping EPROM chips containing the new code to people who do not have an EPROMMER available, and I’ve agreed to doing the same thing over in Europe. The price for the update is €25 plus shipping,this contains a payment to Bob as a recognition of the endless hours he spent in analysing and rewriting the code.

You can find a first batch of Matrix-1000 update PROMs on eBay, as well as update PROMS for the Matrix-6 and 6R – if they are gone, just follow one of the links below – there are order forms at the end of those pages.

 

Resetting a Matrix-1000 with a new battery

Happy days! Bob Grieb just sent the newest iteration of his brilliant firmware rewrite for the Oberheim Matrix-1000 for testing – a firmware that breathes new life into the old 8-bit hardware by optimising critical routines for a couple of crucial parameters. Smooth real-time control, very musical; in my opinion, even better than GliGli’s great v1.16 hackI’ve described the differences in this Gearslutz post –  and, in the last couple of iterations, displaying the value of edited parameters.

(I used Modstep as a drum machine/sequencer on the iPad, and my Matrix-1000 control panel for TB Midi Stuffother than the new iPad editor, it does produce smooth parameter sweeps.)

Well, to change the firmware, you have to open the Matrix and exchange the firmware EPROM for a new one, and doing that, I’ve noticed that this machine was still equipped with its original battery. By lucky chance, I am the proud owner of two Matrixes, and the battery in this one has been doing fine – what kind of super battery did they use in these days, has been in service ever since 1989, and still producing fine 3.0 Volts of power – but I decided to exchange it anyway for a new CR-2032.

As you might know, the battery in the Matrix-1000 is soldered in with most machines, as it was customary with most synths from these days. I guess they never thought that they were building for the anoraks of the future. No problem, I came across battery holders with the same 20.5mm raster used in the Matrix – so no need for drilling, just a simple solder-and-replace job. While soldering, I bridged the backup battery voltage with an external power supply, and I even thought of desoldering the GND terminal first – the rationale behind this being that soldering pens are earthed, so by soldering the positive terminal first you might short out the battery. (Actually bollocks, but I did it anyway.) So I saved my precious memory settings while soldering in the battery holder.

Only to slide in the new battery the wrong way round.

You might not have realised – well, I never do – but the pad connector of a CR2032 is actually the GND terminal, and the housing is Vcc. And is labeled with a clearly visible „+“ sign. Well, I put the battery in the wrong way round anyway, thereby effectively losing all my patch and memory settings.

Foto 10.01.16, 16 43 46

The battery in its new holder, now in the correct position: the plus terminal facing upwards

This is, of course, no big deal. I keep moving sound banks between my two Matrixes anyway, so I have pretty recent Sysex backups. Unfortunately, the unbuffered RAM chip lost just enough memory to put the machine into an undefined state – it would no longer boot beyond the init routine displaying the firmware version.

So: How do you factory-reset a Matrix-1000 synth?

I ran into this problem before when I equipped my other Matrix with a new CPU – as you can imagine, this gave me some really bad moments. But factory-resetting an M-1000 is simple:

  • Switch off the the M-1000, disconnect it from mains, open it.
  • Disconnect the battery. Leave it disconnected.
  • Switch the M-1000 on, draining its buffer capacitors. Leave it for a couple of seconds – the completely powerless RAM should be all FF’s now.
  • Connect the M-1000 to mains, and switch it on. It should start now.
  • Do a calibration run, just to be sure. (Navigate to Ext. Funct., select 7, Enter, select 2, Enter.)
  • Reconnect the battery.

Done. Now you may switch off the Matrix, or supply it with fresh patch data.

Foto 10.01.16, 16 44 19In case you may have wondered, there is a very simple and effective way to disconnect/reconnect the battery in a running machine: push a strip of paper between the battery and the battery holder’s terminal. Remove it to reconnect.

Oberheim Matrix-6 source code file available

Update: Looking for the new, rewritten firmware? Info on how to get the latest version here

There is some (potentially) very good news for Matrix-6/6R owners hoping to get a firmware update – it has come a huge step closer. An extremely experienced engineer has just decided to put his annotated source code file for the Matrix-6 online – you will find it on his page at Oberheim Matrix 6 Firmware. Not the original sources from Oberheim, mind you – they are rumoured to have been lost when someone accidentally dropped the master source disk – but a very carefully annotated listing, reverse-engineered. The engineer who did this even spent the time to mark code that has been re-used in the Matrix-1000 firmware.

So what does that mean to you as a (potential) M6 owner?

The engineer has decided to abandon the project – he thinks that the performance problems of the Matrixes are a result of fundamental design decisions and would need too much effort to get around properly. But his code definitely improves the chances of doing something useful for the code. Someone with skill and spare time might even backport the M1000’s NRPN and matrix modulation Sysex commands into the M6 code.

BTW: My attempts at starting a documented source code file for the Matrix-1000 can be found here, with a hardware and software primer here. If I can find the time, I’ll try to backport a few of Bob’s insights into the M-1000 code.

With the amount of work waiting for me with Jen, I’m glad I don’t own a M-6…

„This device isn’t eligible for the requested build“ – hä? Das Sch***Ding ist neu!?

Also sowas: Endlich kommt mein vor vier Wochen bestelltes iPad 2 (ich bin auserwählt – danke, Steve!), macht sich ganz wunderprächtig, und dann beim dritten oder vierten Sync schon das:
"Das iPad 'untergeekPad' konnte nicht aktualisiert werden. This device isn't eligible for the requested build."

<Sarkasmus>Super-Fehlermeldung, und richtig viel Hilfe dazu von Apple. </Sarkasmus>

Auf einmal ist meine neue Maschine des Updates auf die neueste Version nicht würdig – wieso denn bitte das? Eine kurze Google-Suche fördert viel Ratlosigkeit zutage – und zudem die Erkenntnis, dass das Phänomen offenbar quer durch den Apple-Gerätezoo auftreten kann: iPad2, iPad, iPhones aller Generationen… you name it. Bei einigen verschwindet das Problem, wenn man zum Updateauf einen anderen Mac wechselt. Andere versetzen ihr Gerät in den „DFU“-Wartungsmodus und haben Erfolg, wieder andere nicht.

Die Lösung brachte am Ende für mich dieser Post bei LEI Mobile: Er erklärt mir – vollkommen zutreffend – dass mein altes iPhone 3G Schuld ist an der iPad2-Sperre. Genauer gesagt: Das Downgrade auf iOS 3.1.3, das ich diesem Telefon nach erfolgreicher Reparatur habe angedeihen lassen – wenn ich meiner Liebsten das iPhone 3G als iOS4-Schnecke überreiche, landet es binnen kürzester Zeit an der Wand. – Weiter: Das Downgrade also war Schuld, noch genauer: das (ansonsten außerordentlich empfehlenswerte) Programm TinyUmbrella, das ich für diesen Zurückbuchungs-Vorgang auf iOS 3.1.3 eingesetzt habe.

Was normalerweise bei einem Update passiert, ist wohl folgendes: iTunes telefoniert kurz heim zu Apple und fragt nach, ob es denn mit dem Einspielen der Software so seine Richtigkeit habe. Das wundert uns versierte Apple-Paranoiker ja nicht wirklich und ist auch mit ursächlich dafür, dass Downgrades so ein Nerv sind. TinyUmbrella hebelt diesen Prozess aus und schaltet konsequent um auf den Update-Server für gejailbreakte jailgebreakte geknackte iPhones, Cydia. Und iTunes bekommt kein „Go“ für das Update.

"Set hosts to Cydia on exit": Diese Option muss man abwählen (Klick für Vollansicht)

Also muss man dies tun: TinyUmbrella öffnen, in die „Advanced“-Einstellungen gehen, einmal tief durchatmen – ja, wir wissen, was wir tun! Sort of. – und die obige Einstellung aushaken: „Set Hosts to Cydia“ muss abgewählt sein. Dann TinyUmbrella beenden und über iTunes updaten – jetzt flutscht’s.

Ach, übrigens: An der Update-Sperre könnte natürlich auch eine vorsichtige Firewall Schuld sein, die iTunes daran hindert, nach Hause zu telefonieren. Kommt uns das nicht irgendwie bekannt vor…?