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
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.
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.
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.
Credits, license and support
- License
- GPL-3.0