I’ve spent last few months porting OpenWare to Daisy Patch and by now it’s in mostly usable state. As in - I can build and load existing OWL patches on it and device doesn’t burst into flames when I run them. So I guess it would be safe to announce its existence, in case if there are more people willing to test this firmware.
For now it looks like Windows 10 USB drivers are giving an error when trying to use it. I’ll be making an updated FW release when this would be resolved in upstream OpenWare code.
I’ve compiled some basic info about Owlsy usage/installation in FAQ format here.
Upload firmware using dfu-util: dfu-util -a 0 -s 0x08000000:leave -D MidiBootDaisy.21.0.bin -d 0483:df11
Use Sysex Librarian to upload DaisyPatch.21.0.syx.
Clone few repositories into one directory: git clone --recursive https://github.com/antisvin/OpenWare # not a requirement, but you probably want to check it git clone --recursive https://github.com/antisvin/OpenWareLab git clone --recursive https://github.com/antisvin/OwlProgram git clone --recursive https://github.com/pingdynasty/FirmwareSender
Checkout right branches in following repo directories: cd OpenWare && git checkout daisy && cd .. cd OpenWareLab && git checkout daisy && cd .. cd OwlProgram && git checkout daisy && cd ..
Build FirmwareSender with Xcode: cd FirmwareSender/Builds/MacOSX && open FirmwareSender.xcodeproj
After successful build you can find build directory, you need to copy FirmwareSender binary to cloned repo OwlProgram/Tools directory.
Also you need to edit common.mk in a root of OwlProgram repo, and remove $(TOOLROOT) from those variables: CC=$(TOOLROOT)arm-none-eabi-gcc LD=$(TOOLROOT)arm-none-eabi-gcc AR=$(TOOLROOT)arm-none-eabi-ar AS=$(TOOLROOT)arm-none-eabi-as NM=$(TOOLROOT)arm-none-eabi-nm CXX=$(TOOLROOT)arm-none-eabi-g++ GDB=$(TOOLROOT)arm-none-eabi-gdb SIZE=$(TOOLROOT)arm-none-eabi-size RANLIB=$(TOOLROOT)arm-none-eabi-ranlib OBJCOPY=$(TOOLROOT)arm-none-eabi-objcopy OBJDUMP=$(TOOLROOT)arm-none-eabi-objdump
And after that you can go to OpenWareLab/Faust and compile/upload patches to Daisy Patch using upload.py script: PLATFORM=Daisy ./upload.py
I can miss something, so if you have a troubles running it on macOS just leave a message.
Thanks for taking time to add the extra info! Some comments:
OpenWare is only needed to build firmware, since you’re installing binary it’s not really useful (unless you’re planning to do some firmware hacking!)
OpenWareLab is only useful because you’ve used FAUST samples for testing, this is not mandatory too.
It’s probably better to specify TOOLROOT="" as env variable instead of editing Makefile. If you really want to hardcode it, you can set TOOLROOT ?= “” in common.mk, it’s still better than changing 12 variables that use it!
Looks like this fork is not going to be merged upstream, so I’ll at least change default PLATFORM value to be set to Daisy by default as part of the next update.
Other than that, there would be another release later this week.
A major update v22.2.0 was made a few days ago. Its main goal was binary compatibility with patches compiled from upstream OwlProgram repository and Rebeltech web patcher.
You can use official firmware update tool to upload new firmware, then erase patch storage using the “System” menu in Owlsy UI.
Memory layout changed to be compatible with OWL - this breaks compatibility with old patch binaries, storage must be erased after updating via “System” > “Erase patches” menu
Added backwards compatible mode for running stereo patches (detected automatically). This allows running patches from official Rebeltech library.
Additional fast RAM sections used as dynamic memory, typically giving noticeable performance improvements
Added resource storage access from upstream
Added support for bootloader updates via MIDI
FAUST patches will be built with faster memory buffer processing code, requires recent compiler version
Experimental SOUL patches support in OwlProgram
New “System” menu for some firmware functions previously available from MIDI only
Changed multichannel audio mode to be based on number of patch inputs/outputs (use PATCHIN=4 PATCHOUT=4 when building patches to get quad audio on DaisyPatch)
Daisy Patch UI fixes (because you can’t deal with C strings without bugs, ever)
ADC tweaks to get more stable sampling
OwlProgram fork previously used for Owlsy is no longer needed or maintained - upstream patches work with H7 MCU and multi-channel audio
support for SSD1306 displays and WM8731 codec (untested)
It seems to resolve occasional stability issues that occurred occasionally previously.
There probably won’t be any updates to this for a while due to ongoing “interesting times”. The good news is that ElectroSmith have sponsored me with a Patch.init to be used for adding another device to OWLsy family (might happen in 2-3 months).
I’ve just published v25.0 Owlsy firmware that is usable with both Daisy Seed 1.0 and 1.1 codecs.
Another change that is specific for Daisy Patch is that it can be configured to always output quad channel audio. Previously (and it’s still the default behavior) it was running stereo only unless patch is built with 4 input/output channels passed in command line. This is used for compatibility with older patch binaries that don’t support multichannel audio decoding. Forcing quad mode is possible by clicking and scrolling to the right in the “Scope” page of Patch UI.
Pod has a limited amount of physical controls, but by utilizing the encoder, RGB LEDs and those 2 knobs it’s possible to select any of 60 patches and control all 40 parameters. The UI principles are explained in OWLsy docs
Kudos to @nvmker for donating his unused Pod for this port.