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.
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.