OWLsy (announcements & releases)

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.

10 Likes

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

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

Ok, here goes a new release v22.1.0 that adds pushbutton support among other things.

Full changelog:

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

Please meet Owlsy v23.0 firmware that can run on a new device.

  • KXMX Bluemchen :rose: 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
6 Likes

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

Bootloader additions:

  • 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 :rose: are supported.

6 Likes

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

2 Likes

A post was merged into an existing topic: OWLsy - a port of OpenWare to Daisy platform

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.

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

1 Like

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.

3 Likes

I’m happy to announce a new firmware release that adds support for Daisy Pod

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.

5 Likes