Custom Firmware on the OP-1

Hi guys, nice work!

One thing i’ve noticed: I was finger-sequencing ITER with filter and playing the tape at the same time. I could see some lag on the animation of the tape. After changing to another synth it went back to normal.

I have the latest FW with ITER and FILTER installed. Anyone noticed that?

Hi guys, nice work!

One thing i’ve noticed: I was finger-sequencing ITER with filter and playing the tape at the same time. I could see some lag on the animation of the tape. After changing to another synth it went back to normal.

I have the latest FW with ITER and FILTER installed. Anyone noticed that?

Maybe cpu is struggling? Might be why they TE never enabled ITER
Hi guys, nice work!

One thing i’ve noticed: I was finger-sequencing ITER with filter and playing the tape at the same time. I could see some lag on the animation of the tape. After changing to another synth it went back to normal.

I have the latest FW with ITER and FILTER installed. Anyone noticed that?

Maybe cpu is struggling? Might be why they TE never enabled ITER

the lag is seen often and with other engines too (e.g. string)

I can't get this to work, can you make the instructions a little clearer for those who have never used python or anything.

It would be nice to write some really simple instructions for each OS but I don’t have windows or mac to test. If someone else could write the steps for those that would be awesome!

I’m poking around the OS a bit (don’t have Ada thoug, trying to make do with radare2) but even in the strings theres some interesting stuff: Apparently there are tests for wireless dongles and the OTG functionality of the USB, which is actually supported by the chip. TE could scrap their OP-Z and save a bunch of development time by just extending the OP-1 to its full potential :slight_smile:

1 Like

Yeah. Especially the boot loader looks a lot like something that would be provided by analog devices (the cpu manufacturer) together with an evaluation board.
Just like the OP-1 display is the same as on one of the eval boards for the blackfin chip.

So I guess all the demo sdk code is still there…

I’m poking around the OS a bit (don’t have Ada thoug, trying to make do with radare2) but even in the strings theres some interesting stuff: Apparently there are tests for wireless dongles and the OTG functionality of the USB, which is actually supported by the chip. TE could scrap their OP-Z and save a bunch of development time by just extending the OP-1 to its full potential :)

I’ve never heard of or used radare2 but I just installed it. Any tips on how to use it on the OP-1 firmware?

@wavi my plan of attack is using the ldr-utils to get the block info from the .ldr which includes lengths and target offsets. Then use a bit of shell-magic to convert this into dd-commands to extract the data to files and the file/offset information into radare2 commands to map those files to the addresses indicated in the ldr blocks. This is where I’m currently at though I haven’t gotten this working properly yet (need to consolidate adjacent ranges to keep the number of mapped files down). The next step would then be finding an entry point in the control flow, i.e. something that disassembles to meaningful blackfin opcodeswith the blackfin radare plugin. I had a quick stab at that but so far without success.

@TabascoEye you’re right, it probably is just left over stuff from the SDK :frowning:

Wow, I just realized that when downgrading from 225 to older firmware versions the te_boot is skipped entirely. Seems like we can’t downgrade the bootloader anymore! ;|


Damn.

EDIT: I tried version 14203 and even 11701 (the oldest I could find).

@crudeoperator: pretty cool the radare work you do. IDA still has that price tag looming above it. As far as I know, radare does understand some “bf” assembly that might work, but I’m not sure.
Getting the blackfin loader plugin to work with IDA was already a bit of work because it was developed for another version of the chip, so I hope we can get it more generic for radare2.
Do you share your tools/findings somewhere? preferably github. We can invite you to the op1hacks group…

@TabascoEye see comment above.

Now I’m wondering what the id string is on the bootscreen (whether it’s unique per device or per firmware/bootloader version)

EDIT: plz check slack too if you have time
EDIT2: I’m 99% sure id is the unique chip id.

@wavi your graphic for ITER is beautiful.

Did I image it or did you or someone make more “neutral” presets?

@ludicrouSpeed

If you're talking about synths @zerolous made "init" patches, meant for building sounds from a minimal starting point. https://www.operator-1.com/index.php?p=/discussion/3312/init-patches

For effects I made a mod that sets the default intensity of them very low so you can enable them and turn them up gradually. Similar idea..
well i'm clueless on how to get this going.. installed python 3 and setup fails to run. Tried "sudo pip3 install op1repacker" in python IDLE and says pip3 is invalid command?

Any ideas what i'm doing wrong?

Try this: https://stackoverflow.com/questions/30993086/pip3-command-not-found-but-python3-pip-is-already-installed/30993148

well i'm clueless on how to get this going.. installed python 3 and setup fails to run. Tried "sudo pip3 install op1repacker" in python IDLE and says pip3 is invalid command?

Any ideas what i'm doing wrong?

Try this: https://stackoverflow.com/questions/30993086/pip3-command-not-found-but-python3-pip-is-already-installed/30993148

Also the command shouldn’t be run in IDLE. Instead use the regular command line.

was not online here for nearly a year now i think?! whats new meanwhile with op-1 and firmware?

wavi
Well… that almost worked out. But it didn’t :smiley:

I think TE will never forgive me for doing this…
EDIT:
After some messing around I got this working perfectly. The next task would be adding an option to the repacker for enabling this mod. It won’t be straight forward since I don’t really want to just include the modded svg in the tool…

@wavi, damn, that looks super useful. I’ve been getting sore shoulders from using the OP-1, and this would help heaps. How big is the SVG? And aren’t you now including the new ITER SVG anyway? It would be really nice to have this, if it’s usable.

@naught101
Yep, the iter svg is one of the included mods. I felt it was ok to include it since it doesn't contain any TE intellectual property. The tape does however, so I'm not quite comfortable in just including the modded SVG in my tool.

I've been thinking of creating an entirely custom tape graphic, but then again I would like to reuse the TE font, synth, drum and sequencer icons and the playback icons too. Otherwise it would look out of place... I'm not sure what to do because I really want to avoid legal issues. One option might be to write code that just makes changes to the original tape SVG so that I don't need to distribute the complete file at all...

EDIT: The modded tape.svg is 21.7Kb (the original is 18.7Kb)
@naught101
Yep, the iter svg is one of the included mods. I felt it was ok to include it since it doesn't contain any TE intellectual property. The tape does however, so I'm not quite comfortable in just including the modded SVG in my tool.

I've been thinking of creating an entirely custom tape graphic, but then again I would like to reuse the TE font, synth, drum and sequencer icons and the playback icons too. Otherwise it would look out of place... I'm not sure what to do because I really want to avoid legal issues. One option might be to write code that just makes changes to the original tape SVG so that I don't need to distribute the complete file at all...

EDIT: The modded tape.svg is 21.7Kb (the original is 18.7Kb)

Have you got a screen shot of the modded tape? Would love to see it

Sure, this is what I’m currently using on my OP-1. Its fully usable. I also tried making a mashup of the tape screen and ApeTape but that didn’t look very good. If I draw a completely custom tape screen I can post that too.

tape_flipped

The screen is basically identical to the original tape except that the tracks are at the top.