Custom Firmware on the OP-1

And the granular sampler has a custom screen now :wink: Unfortunately I can’t upload a video here

7 Likes

if i understand corectly, thats very cool. i’m working on an effect to add to the op1, then a synth engine. im curious, did you “add” this or did you “replace” an existing engine? — im asking because it seems like adding something is very complicated and my approach so far has been replacing the hidden filter and hidden iter engines with my own creations to some degree of success (not tested on real hardware yet though, just in a simulator). does yours use all 8 slots of the available engine, not just 4 knobs/4 parameters? am i making sense?

1 Like

really love how this sounds in combination with the tape echo :hand_with_index_finger_and_thumb_crossed:t3: all your engines are quiet suited to the OG1 aesthetic and perform pretty well! :sauropod:

1 Like

where are the custom firmwares at? drop some links!

is work in progress, a few hours ago there haven’t even been some graphics and now look at this lovely screen :face_savoring_food: super stoked to see it simply implemented this way but let’s see what the OP-Z couple mode is all about.

the 3 additional synths + tape echo fx are pretty awesome (granular, fm bell, virtual analog) and they sound wonderful, in big hopes they’ll all have their respective graphics.

2 Likes

cool… i can wait until a more official release, but i’m curious where the best place to follow development is

this is all INSANELY cool. im very curious to try some of this out myself. i have software development experience, but how can i go about loading the entire firmware project into my IDE and then writing this firmware to the og-1? for example, how to load the entire latest official firmware into my IDE and then i can tinker from there (ofc being well aware i could brick my og1)

The firmware files containd compiled code, not source code. So if you load it into an IDE you will see just random numbers.

What you can do is:
op1_xxx.op1 → lmza decompress at offset 4 → unpack tar archive → get OP1_vdk.ldr

That last file contains the code for the op-1, its blackfin assembly, so you need a dissasembler like ghidra or IDA to lookt at it, with a plugin that targets the blackfin instruction set.

Okay, so you have OP1_vdk.ldr
.ldr is the file format that ADI (the company that produced the processor that the op-1 uses), the ghidra plugin can load this files into ghidra, so after you upload the thing there, you can try and decompile the code, analize what each function does, and try to modify stuff.

But, the OP1_vdk.ldr has some encrypted blocks, i think its like 50? i dont know, so you have to decrypt those, I used the OTP-DUMP that someone uploaded to github, and another tool also in github to decrypt the blocks, the decryption tool was missing some 8byte tails, so after correcting that i ended up with an unencrypted ldr file, I tested it on my unit, wich is a rev2, and it worked, so that should decompile better on ghidra.

Okay in ghidra.
Block 1 is an intialization table, around 252~ish? bytes, then another 4 32bit words.
you can basically follow the adresses of that table and try and decompile those functions.

For patching stuff, its mostly asking an llm to do the heavy lifting.

1 Like

it’s an additional engine. All old synths + Iter are still there plus additional three synths. It’s a bit hacky, internally it uses iter synth id but there is a dispatcher that calls custom engines. My clanker even produced a nice SDK where you define the engines + their params and GUI in a json config and it builds them from C & patches the op1 code! Once it’s more stable I will share the code of course!

1 Like

If anyone want’s to try it, use a patcher here: GitHub - pcppcp/op1r · GitHub

your are on your own, you might brick your device, have emotional breakdown etc.

Have fun!

4 Likes

emotional uplift, good lord this is such a great time :sauropod::heart_on_fire:

5 Likes

can’t believe how good they sound and perform on the OG1 the tape-echo is such a pleasure to look at and feed it little snippets, modulating the speed of the tape while feedbacking it into infinity :heart_on_fire: wow what a day

2 Likes

Just checking in to say: I love how this thread keeps on rocking 10 years (!) in :slight_smile:

Also maybe everyone be a bit more explaining what is happening.
Especially that these are engines which TE did NOT want to be available (yet?!) for whatever reasons and that those graphics are NOT by TE.

“Feedbacking into infinity” sounds exactly like a reason that effect is not on the release firmware :stuck_out_tongue_winking_eye:

Keep up the good work though. I love what I’m seeing

5 Likes

feedbacking me personally into infinity :heart_on_fire: it sounds just like TE would’ve done that aswell, really good synth and animations but…this is a real pleasure…exploring the modes one can go thru turning the op1 into an op-z Controller…it’s pretty interactive once enabled…

so if you’ve enabled the Z mode (via sysex) and plug in the OP-Z you can pretty nicely see the vision interacting because with with this you can at least control every track on the Z but only 2 are accessible which means if you switch the synth and drums on the OP1 it’ll switch from track 1 to track 5 on the controlsheme but only track 1 (drums) can be controlled how they thought it should be so 1,2,3,4 on the op1 switch the pages on the Z controlling the respective controls (as seen above it’s color coded like the 4 synth pages on the xy) and the values show the exact value it’s at on the Z.

I think in order to understand what TE has been cooking there I need to maybe factory reset my OPz in order to have all midi channels and ccs in a factory setting and maybe they’ll talk much better to each other…there are options for presets, custom sysex messages a mysterious yellow 0 under the help page and play, stop, the keyboard, pitch-bend are working fine…they did implement a way to scroll thru longer tracks and parameter locks but they seem to be not communicating by now…wow this is everything I was thinking about it the first time seeing it as a picture alone and now it’s reality..

I think TE intended this mode to have 4 additional drum tracks and 4 additional synth tracks controlled by the OP1 easily switchable and controllable from the OG motherfucking 1 :heart_on_fire:

2 Likes

ah ok darn, so getting started is not going to be as simple as i thought. sorry for the newbie questions, i have 20+ years in software and some hardware development experience, but this whole op1 dev environment stuff is completely new to me. my goal if its even possible is to simply have the entire codebase in it’s original language (c or cpp id imagine?) in my IDE so that i can start to develop and tinker (with the ack that i might brick my unit). is this “setup” (of having the entire codebase in my IDE) ive just described even possible currently or not? thank you all in advance and im extremely impressed with the progress made on all this stuff so far!

you won’t, if it ever screws up and mine did a few times (it locks up, shows what’s happened) and you can easily install the TE OS 246 and it’s back. but going back once you got the granulars rolling is a no no :mechanic::woman_surfing:t3:

1 Like

nope. Not unless TE decides to finish the OG-1 developemtn by opensourcing it. (nudgenudge to TE).

But using something like ghidra or IDA your can use decompilation to get a representation of what the compiled code does (functions calling functions).
And the good folks here let some LLM/AI then tinker with that enough to do these mods while preserving the whole thing to a state where it still works on the OG-1 CPU without crashing, then repacking it into a structure the updater on there accepts as a new firmware.

So no nice code browsing in a classic IDE, unfortunately

2 Likes

both the engines and graphics are custom made. :wink: Everything here was made possible by many people tinkering with the firmware over the years and dumping the nand and what not. BIG thank you to everyone!!

Right now I am working on MI Clouds inspired FX, first prototype sounds so good! And it uses encoder clicks to allow control of 8 parameters instead of 4 :wink:

4 Likes

Oooh. Sorry for not getting that right.

I thought some “tape” thing was still hiding in the original firmware, so I extrapolated. My bad and even more kudos to you then

the OP1 comeback nobody saw coming and the way you do your graphics is simply amazing and clouds will be no exception!

2 Likes