Introducing Owlsy

Hello,

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.

7 Likes

Sweet! Sounds very good, hope to find some time to try it soon!

Sure, give it a go and let me know if there would be any issues in process. Typically you would need to flash bootloader binary, then send it the sysex with firmware, reboot after 10 seconds or so and see running firmware.

I was thinking about making an introductory video, but for now I’d rather get some feedback from more competent users.

1 Like

I guess I should also let @sletz know that with this firmware port Faust patches are fully usable with all features added for OWL itself (parameter binding, MIDI controls, dynamic memory allocation to SDRAM, etc). In fact I didn’t need to change anything in OWL arch files to get them working. Quad channel audio works too.

I love this idea and I’ve been trying to follow the steps you outlined but I have absolutely no coding experience, so I haven’t gotten a chance to try this, maybe in the future, there could be a way noobs like me could install this. I love the creativity in this project though, I admire you for it.

Yes, there’s no requirement to write any code in order to install this firmware. You would just install bootloader the same as any compiled Daisy patch, then load firmware image as MIDI sysex files when bootloader is running. Your patches would be loaded in the same format, but when firmware is running.

There are prebuilt images for bootloader and firwmare. For your patches you would use existing FirmwareSender tool to convert binary to sysex after building them.

1 Like

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:

  1. Install Homebrew if it’s not installed yet.

  2. Install required packages:
    brew install faust make gcc-arm-embedded dfu-util
    brew install --cask sysex-librarian

  3. Upload firmware using dfu-util:
    dfu-util -a 0 -s 0x08000000:leave -D MidiBootDaisy.21.0.bin -d 0483:df11

  4. Use Sysex Librarian to upload DaisyPatch.21.0.syx.

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

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

  7. Build FirmwareSender with Xcode:
    cd FirmwareSender/Builds/MacOSX && open FirmwareSender.xcodeproj

  8. After successful build you can find build directory, you need to copy FirmwareSender binary to cloned repo OwlProgram/Tools directory.

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

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

  1. 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!)

  2. OpenWareLab is only useful because you’ve used FAUST samples for testing, this is not mandatory too.

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

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