Firmware Hero
0

op1r-src

Patch your firmware with op1r (also in the browser). Plugin authors (new synths / effects): read synthsdk/PLUGINS.md.

  • Custom firmware
  • Stable
  • Medium brick risk
  • Reversible

Source code

This project hasn't been claimed by its maintainer yet, so its details come from the community. Is it yours? Claim it

Before you start

How hard is it?
EasyCopy a file or use a web page. No extra software.
What you need
  • Comfort with the command line
  • A computer
Can it break my device?
Small chance of trouble, with a way to recover.
Can I undo it?
Yes. You can go back to the official software.
Get itOpens github.com

Did it work for you?

Did op1r-src work on your Teenage Engineering OP-1?

No reports yet.

One-tap reports from owners. Bricked reports are checked before they count.

Compatibility

Devices: Teenage Engineering OP-1.

No compatibility information yet.

Getting started

From the project's README ("Building the firmware"):

Requirements: Docker, Python 3, the original op1246.op1, and op1repacker.

docker build -t bfin-elf-toolchain toolchain # once, takes a while git clone https://github.com/op1hacks/op1repacker.git python3 -m venv op1repacker/.venv && op1repacker/.venv/bin/pip install -e op1repacker cp /path/to/op1246.op1 . && op1repacker/.venv/bin/op1repacker unpack op1246.op1 # -> op1246/ cd synthsdk && python3 makefirmware.py --opz # -> ../op1246custom-repacked.op1

The boot screen of a local build shows op1r and the build time. Install it like any OP-1 update (bootloader update mode); the original firmware can always be flashed back. Use at your own risk: a broken build can lock the OP-1 until you flash a working image.

Some code runs from the firmware's encrypted part. Those few patches are precomputed in synthsdk/l1patches.json and target a fixed jump table at the start of the code (hook.S, .l1vec). So plugins and most other changes build without them changing. Changing the L1 patch lists themselves needs a maintainer.

Read the full instructions

Risk and recovery

Brick risk
Medium
Reversible
Yes
Requires opening the device
No

From the project's README ("Building the firmware"):

Requirements: Docker, Python 3, the original op1246.op1, and op1repacker.

docker build -t bfin-elf-toolchain toolchain # once, takes a while git clone https://github.com/op1hacks/op1repacker.git python3 -m venv op1repacker/.venv && op1repacker/.venv/bin/pip install -e op1repacker cp /path/to/op1246.op1 . && op1repacker/.venv/bin/op1repacker unpack op1246.op1 # -> op1246/ cd synthsdk && python3 makefirmware.py --opz # -> ../op1246custom-repacked.op1

The boot screen of a local build shows op1r and the build time. Install it like any OP-1 update (bootloader update mode); the original firmware can always be flashed back. Use at your own risk: a broken build can lock the OP-1 until you flash a working image.

Some code runs from the firmware's encrypted part. Those few patches are precomputed in synthsdk/l1patches.json and target a fixed jump table at the start of the code (hook.S, .l1vec). So plugins and most other changes build without them changing. Changing the L1 patch lists themselves needs a maintainer.

Read the full instructions

Credits, license and support

License
GPL-3.0