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.
It works, thanks!
Here is a steps to run at least Faust code on macOS, I’m using Visual Studio Code, but it can be done with other IDE or in plain shell:
Install Homebrew if it’s not installed yet.
Install required packages:
brew install faust make gcc-arm-embedded dfu-util
brew install --cask sysex-librarian
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:
And after that you can go to OpenWareLab/Faust and compile/upload patches to Daisy Patch using upload.py script:
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.
Owlsy v21.1.0 is available. Bootloader update is not required.
Second Owlsy release has the following changes:
- Enabled USB audio channels - device is usable as quad channel USB audio interface capturing its inputs
- Raised MCU clock from 400 MHz to 480 MHz
- Reclocked SAI to run codec at exactly 48000 Hz
- Various updates to resource menu for upcoming flash resources support
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
Ok, here goes a new release v22.1.0 that adds pushbutton support among other things.
- QSPI chip is still accessed by patches for reading LUTs, enabling cache for it improves performance in some patches
- Added pushbutton parameter ID support (takes its input from button 1, sets its output to button 3)
- Changed “Gates” menu to include pushbutton. It can be triggered by encoder click in that menu.
- Use hysteresis for parameter display, no more jumping values due to ADC noise
- Fixed DMA buffer location for serial MIDI TX buffer
- Merged various updates/fixes from upstream OWL firmware
Please meet Owlsy v23.0 firmware that can run on a new device.
- KXMX Bluemchen support added
- 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
I couldn’t stand the idea of not having functional SD card this year, so there goes Owlsy v24.0
- SD card support, finally! Please see SD usage info for explanation about reading files from SD card.
- SD card browser menu
- Option to reboot device added to system menu
- Extra checks for making sure that hardware used for bootloader and firmware match
- Additional code for breaking reboot cycle in case of boot failure
Naturally both Daisy Patch and KXMX bluemchen are supported.
I’ve just published a minor update with some code backported from upstream firmware:
- fixed occasional hanging during patch loading
- PLUSRAM support
- 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).
Things have been quiet here, but now it’s my pleasure to announce that OWLsy supports
Patch SM hardware and runs on Patch.Init() module.
Patch.Init() UI has access to patch selection and changing attenuation levels with physical controls on device to make it more usable if nothing is connected to USB device port.