Welcome to the alternative open source firmware for the Polyend Preset module for Eurorack system.
This project is a sandbox for developers willing to build their own functionality for the Preset hardware, be it sequencing, preset management or whatever else imagination brings.
It contains:
- Runtime framework.
- Drivers for all peripherals.
- Easy to use C++ API for all user interface and I/O on the device (input, outputs, knobs, pads, buttons).
- Example applications using the API, including a generative sequencing machine.
Below you will find instructions and how to compile the examples and build your own functionality. If you prefer to jumpstart to playing with one of the examples first, you can download a prebuilt binary of the Euclidean generator in the Releases section and then read Flash the device below.
- Download/clone the project from github
- Install tools to build the firmware, two options are available:
- GNU Arm toolchain for command-line use.
- Specifics of the installation depend on your operating system.
- MCUXpresso IDE if you prefer GUI.
- You need both the IDE and the SDK for MK20DX256 board. You can install the latter manually or from within the IDE.
- GNU Arm toolchain for command-line use.
- You will also need the Polyend Tool to flash new firmware to your Preset device.
- (Optional) For easier flashing and to be able to debug on target get a debug probe, for instance the LPC-Link2
In your shell just run:
make
the build should finish shortly and end with (section sizes may differ):
copy from `build/preset.axf' [elf32-littlearm] to `build/preset.hex' [ihex]
text data bss dec hex filename
36568 0 7428 43996 abdc build/preset.axf
copy from `build/preset.axf' [elf32-littlearm] to `build/preset.bin' [binary]
As you can see, the final hex
file is now available at build/preset.hex
.
- Create a new workspace and add this project to it -
.cproject
with all settings is included in the repository. - Right-click on the project root node and choose Build from the context menu.
- Console window should open and after a few seconds end with (section sizes may differ):
copy from `Preset.axf' [elf32-littlearm] to `Preset_1.1.16_20201215_1645.hex' [ihex]
text data bss dec hex filename
54412 0 7424 61836 f18c Preset.axf
15:27:36 Build Finished. 0 errors, 0 warnings. (took 1s.570ms)
- Final
hex
file is now available in either theRelease
orDebug
folder (depending on active configuration)
(Refer to MCUXpresso manual if you are new to the IDE)
Use the hex
file to flash the firmware to your device using the Polyend Tool - check included !instructions.txt
.
You can always revert back to the original Preset firmware - just download it and flash it the same way.
There are two examples of what can be done with this sandbox, see helloApp
and euclApp
in the app folder.
By default euclApp
is enabled.
To enable another application just edit APP_CLASS
in main.cpp.
You can create your own class inheriting from presetApp or just modify one of the examples.
All the API you need is available in presetApp - study the comments there as well as the examples. If anything is not clear you can ask in the Issues section of the project.