Custom Firmware on the OP-1

Hi everyone,


I followed this blog avidely since I found it. Now the OP-1 is on its way to me, and I have already tried the Wavi python routines to open up the 218 FW, check some file, switch on filter and iter. Just wait for the device to reach me and I’ll push customized FW on it. I’m under macOS Sierra, and use Python 3.6.

I also tried to modify/create alternate svg file, using inkscape. I’ll see if it is working. Basically, change size of the iter knobs and move them around, just to try. After that, alternate graphics for punch maybe, not sure now. First see if everything is working. Are there some guidelines to respect? I saw some objects have specific ids and names, surely for the firmware code to interact with them (rotate, hide, show, stuff like that). Other simple lines have default generic names and ids, so maybe one could add/move a lot of things without breaking anything?

Many many thanks for all the dedication and effort already put in this.

And just a question, are the alternate deadmau5 sequencer and animale drum svg files available somewhere?

Are you going for a brand new OP-1? Please be aware that doing this might invalidate you warranty in that case.


I “took the plunge” as I found it worthwhile, but assure yourself of that.

Saying that. I didn’t have any trouble installing and I don’t expect having problems installing an official release.

But just as a heads up…

For sure, I know the risk :-). I’ll play with the vanilla FW for some time, I think there are already endless possibilities, so. It’s more about the challenge, understanding and playing around really.


Thanks anyway for the reminder.

@tabascoeye, :frowning: no possibility to have your custom svg files?

@GregVDS sorry man. I’m not a lawyer but I don’t know if that would be a copyright violation.

Thanks anyway,


Don’t know either. In one hand, it’s a new file, created by a third party, so maybe it escapes from the copyright, in the other hand, it’s largely based on a file found in the firmware, and then it’s a copyright violation, as it is a copy, even modified…

Maybe some guidelines for us to know how to mod existing svg would be welcome; what should we avoid to touch, change, what can be changed without braking the working or use of the svg by the firmware code in itself? Can the colors be changed, can the position be changed, are there some attributes of the parts that have to be maintained?

Thanks again for the help already

Maybe some guidelines for us to know how to mod existing svg would be welcome; what should we avoid to touch, change, what can be changed without braking the working or use of the svg by the firmware code in itself? Can the colors be changed, can the position be changed, are there some attributes of the parts that have to be maintained?
Write them yourself?

My guess is the svg element id-s have to stay in, as they're used for targeting, so the code might crash without them. Everything else in the svg markup, you can do whatever you like with and see what happens.

Regarding copyright, the OS is TE's intellectual property, so publishing anything that contains copies of their files and/or code is an issue and unlawful.

All this said, it's useful research and we all occasionally spend a bit of time finding new information and trying out things. Please do share your findings.

Yep, I thought about that, but I always feel I’m not ‘entitled’ enough to produce such doc, and would not want to be responsible for someone bricking down its OP-1 because of wrong advices from me :-).


I’ll mess around anyway with svg files, the rest of the code is totally out of my reach until reversed engineered. I’d guess the same for ids of elements in svg. I’ll test and see how it goes, and report here my findings.

Now a question, suppose I modify an svg, repack the FW, and follow the FW update procedure (that I don’t know about currently, my OP-1 should arrive next week :-)); either the OP-1 will boot up ok, or not.

If not, I suppose it’s possible to follow again the update procedure to deploy the original FW 218, right? Or is it possible to brick down completely the OP-1 that way?

If the OP-1 boots normally, I should go and mess around with the filter/tool/option using the modded svg, and see if it loads, if some manipulations are impacted, or if it crashes the OP-1, more or less, right? If so, I know something’s wrong with my svg…

Am I on the right track with this?

@GregVDS, modding has risks, yes. You can attach the relevant disclaimers if you wish to share findings.


In the same way you “would not want to be responsible for someone bricking down [their] OP1”, and for the same reasons, I guess others, myself included, wouldn’t feel so hot about steering you through the modding process. But there are tons of information earlier in the topic. Nobody here is responsible if you brick your OP1. But if you search on the forum, even in this thread, I believe there is good information about how likely it is, or not, that it would happen (or not) if you mess with the firmware.

On a related note, why don’t we stick to the original focus i.e. how it’s done and what information there is, rather than water it down with questions about things which have been discussed many times before.

Sorry, will stick to the topic, no more stupid questions, I’ll read the thread entirely to find my answers :slight_smile:

Have the deadmau5 or animal .svg animations been shared anywhere? Since those were created by users it’s not a problem to distribute them outside of the packed firmware, right?

How difficult would it be to change the visuals of things like the tape recorder or finger drummer?

First of all, hats off to everyone for managing to dig out and suss up everything hiding in the firmware, really impressive!

Sorry in advance for this convoluted question.
I’ve been lurking here for a little while, but messing around with this has finally persuaded me to register an account here. I managed all the unpacking, modifying, and repacking with no problems, but I’m pretty new to the whole .svg thing and ran into some problems trying to customize those. I tried to edit the .svg animations with some little graphics I drew but it looks like I’m running into problems when the object groups or object ids don’t quite match up. Can anyone give me a quick outline on how that works? Do you have to fit your edits into the preexisting objects/lines ids so that the group structure is exactly the same? Or if I already have another head drawn is there a way to to copy and paste it in without breaking it down into the same number of lines and parts and matching it up exactly with the layers that are already there? Any information would be greatly appreciated! Thanks.

@daedalus1115 no they haven’t been shared. I still think this would infringe on TE copyright.

@rusalkaremedy Well the SVG parsing in the OP-1 seems to be pretty picky. You do have to keep groups and IDs intact! When I tried to edit them with Inkscape, basically the whole fiel structure was rewritten and the OP-1 didn’t like that.
My gf used Photoshop CS4 and kept all groups and IDs intact as well as the initial “hide/show” mode (which is essentially style=block/style=hide).

There are 2 “kinds” of animation in the OP-1. The first I call “fake” animation, which is e.g. the Finger sequencer, where every part of the animation is contained in the SVG and they just switch hide/show on and off.
These are easy to keep instact but still modify (see our animal drummer animation).
The other kind are e.g. the strings in the “strings” synth engine. I don’t know exactly how these are done, but I guess only the general position (like start/end of vector) are used form the SVG and the actual vector data is dynamically computed by the firmware code.

==> just play around. If you find some leeway in editing the SVGs with something other than Photoshop, I’d love to hear it.

1 Like

i’d imagine Illustrator would be the way to go editing/creating .SVG’s. photoshop isn’t really for vectors where illustrator is.


m( yeah I meant Illustrator. Sorry.

1 Like

@TabascoEye Thanks a lot for the info, I really appreciate it! I had the same problem with inkscape and tried on a friend’s computer who had Illustrator and that definitely helped for keeping the groups and IDs intact. Unfortunately, I think the new vector image I drew (well mostly sort of traced lol) to try and replace the synth guy’s head with might have been a little too ambitious and ended up seemingly impossible to paste in. (at least with how little I know Illustrator) So it’s back to the drawing board on that front for me. If I ever manage to get anything working I’ll throw a screen cap up on here though. Thanks again!

@TabascoEye Thanks a lot for the info, [...] So it's back to the drawing board on that front for me. If I ever manage to get anything working I'll throw a screen cap up on here though. Thanks again!

psst, @rusalkaremedy, SVG is plain text in a text editor, if you tread carefully, you can do what you’re after.

any thought on the possibility of decompiling the actual source code needed to edit the function of the pattern sequencer?

Well on page 1 of this thread, I wrote:

So essentially, to _really_ run your own code on the OP-1 you would have to:

  1. write a decoder software to turn the LDR file back into DXE
  2. find out the format of DXE
  3. write a disassembler for blackfin (or hope that e.g. radare works with it)
  4. analyze the codeflow and delete/insert parts where needed
  5. turn the DXE file into LDR again
  6. re-package the whole OP-1 firmware update package
  7. upload! \o/

1 Like