Custom Firmware on the OP-1

That is AWESOME!

works with 246 too…

posted this in the field feature requests thread as well… would love to see the filter effect get added to the field. that filter is so useful!

1 Like

Could somebody do a tutorial for custom graphics, pretty please? For us svg noobs out there…

Hello! I’ve been running some of the custom firmware available on GitHub for a while now. I am a big fan of the work being done here, and have since been taking up programming with the dream of being able to contribute. i’ve been reading and searching this conversation, and I wanted to ask if the following is possible given the state of the art… I want to create hot-keys to change the midi channel the op-1 is communicating on. I imagine holding COM and pressing 1-8 to change its channel. I use the op 1 to send and receive data from multiple sources, and being able to change the channel like this will significantly improve my work flow, as I could change midi channels in time during a phrase.

The short answer is: no it is not possible currently.

Since you learn programming, you might have stumbled over the difference between interpreted languages (like python) and compiled languages (like C/C++).
Well the OP-1 Firmware is written in C++ and thus compiled.
That means that a compiler will translate the human readable code into machine code.
In the case of the OP-1, the toolchain is for a blackFin DSP CPU because that is what the OP-1 has inside.
All that machine code then get translated/manipulated and packed with other stuff (the VDK Kernel) into a package that can finally land on the Flashmemory of the OP-1. That format (in BlackFin world) is a .ldr file.

So in order to change the functionality you want, you have to:

  • unpack the .ldr file back into the full machine code
  • feed that into a decompiler/reverseengineering software (IDA pro, Ghidra, Binary Ninja…)
  • Analyze it and annotate it long enough to understand which part does what
  • modify the part you want
  • Save the modified machine code and turn it back into a valid .ldr
  • Pack it into one of the OP-1 Firmware-packages
  • see if you now have a brick or not

And I guess the modify->pack->test part is then a loop because most certainly there will be weird stuff going on when modifying the firmware this way.

This is pretty advanced stuff which - especially on the BlackFin architecture - very few people actually have the time and effort to do.
I’d love to but I just don’t have the time (and currently also not the means)

Ghidra is free though and there is a plugin supporting BlackFin…

I bought my OP-1 in 2012, and in 2016 it lost the ability to update the OS/firmware. COM does not go into boot mode. Everything else works except that and it needs a new battery.
I tried contacting TE in 2016, and they gave me a quote of around $125 not including shipping. I thought I would order a new motherboard (or whatever they call it, but to this day since, 2016, I have not been able to source one from TE or iFixit. So much for the ‘nice company’ or right to repair.
@Virtual_Flannel posted this to my old post about the issue as a response from TE on the same issue:

It has to do with NAND failing, and can happen after incomplete upgrades, etc. Unit will operate fine, except for just TE-Boot. (I.e. no upgrading etc.) Currently there is no available fix for this. The only solution is to send it to a TE-repair shop for physical reflashing of the DSP. It’s a time consuming process and we typically charge about USD 100.- for this, excluding shipping. It IS covered by the 1-year warranty, but if out of warranty it’s recommended to only send if critical.
Blockquote

NAND failing sounds like a retention error, and that could be a repeat issue after reflashing unless they replace the board. I would rather try reflashing myself than pay the money and time for potential repeat business. Or buy and replace the board myself assuming it comes flashed.

I’ve been programming since 1978, and I would be into REing the OP-1, not for profit or distributing any firmware, but solely to assert my right to fix my property without violating any IP. Have you tried Ghidra and is it possible to reflash the firmware? I am assuming it is an ASIC with the Blackfin DSP cpu mentioned in this thread, and figuring out how to reflash it might be a lot harder than at first glance.

1 Like

Unpopular opinion here - but the first organization/company that open-sources their synth will probably eat OP-1’s lunch.

The DSP isn’t super-advanced, and if you really let legions of coders and enthusiasts full access you’d see the blooming of an entire ecosystem instead of this walled-garden-a-la-apple-computer garbage.

But no, everyone will wait with baited breath for < next product > because mindless consumption is beaten into every person from a young age.

However, I can dream. Some have vision, while others just have greed.

You mean like OTTO?

If it uses the same DSP, yes. If not, no.