Multi-app only flashes a single gen~ / Multi-app does not combine binaries

Description of Problem

I just got my Daisy Patch and was able to flash a couple of examples and test. However, when I attempt to flash the multi-app example patch, only the first one is flashed onto the Seed. Upon clicking to make the Max console output verbose, I discovered that one binary was flashed to the Seed, then it resets itself before the next one may be flashed. I tried using the oopsy.js node script and have the same result.

oopsy.js Console Output

`node …/source/oopsy.js patch crossover.cpp giga.cpp midside.cpp modfm.cpp pulsar.cpp reverb.cpp squine.cpp
Target patch configured in path /Users/matthewdunlap/Documents/Max 8/Library/oopsy/source/daisy.patch.json
Building to /Users/matthewdunlap/Documents/Max 8/Library/oopsy/source/build_crossover_giga_midside_modfm_pulsar_reverb_squine_patch
Will upload from crossover.cpp, giga.cpp, midside.cpp, modfm.cpp, pulsar.cpp, reverb.cpp, squine.cpp by writing to:
/Users/matthewdunlap/Documents/Max 8/Library/oopsy/source/build_crossover_giga_midside_modfm_pulsar_reverb_squine_patch/crossover_giga_midside_modfm_pulsar_reverb_squine_patch.cpp
/Users/matthewdunlap/Documents/Max 8/Library/oopsy/source/build_crossover_giga_midside_modfm_pulsar_reverb_squine_patch/Makefile
/Users/matthewdunlap/Documents/Max 8/Library/oopsy/source/build_crossover_giga_midside_modfm_pulsar_reverb_squine_patch/build/crossover_giga_midside_modfm_pulsar_reverb_squine.bin
oopsy generated code
rm -fR build

mkdir build
arm-none-eabi-gcc -c -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -DUSE_HAL_DRIVER -DSTM32H750xx -DUSE_HAL_DRIVER -DHSE_VALUE=16000000 -DSTM32H750xx -I…/libdaisy -I…/libdaisy/src/ -I…/libdaisy/src/usbd -I…/libdaisy/Drivers/CMSIS/Include/ -I…/libdaisy/Drivers/CMSIS/Device/ST/STM32H7xx/Include -I…/libdaisy/Drivers/STM32H7xx_HAL_Driver/Inc/ -I…/libdaisy/Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I…/libdaisy/core/ -I -O3 -Wall -Wno-missing-attributes -fasm -fdata-sections -ffunction-sections -MMD -MP -MF"build/system_stm32h7xx.d" -I"…/gen_dsp" -O3 -Wno-unused-but-set-variable -Wno-unused-parameter -Wno-unused-variable -std=gnu11 -Wa,-a,-ad,-alms=build/system_stm32h7xx.lst …/libdaisy/core/system_stm32h7xx.c -o build/system_stm32h7xx.o
arm-none-eabi-gcc -c -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -DUSE_HAL_DRIVER -DSTM32H750xx -DUSE_HAL_DRIVER -DHSE_VALUE=16000000 -DSTM32H750xx -I…/libdaisy -I…/libdaisy/src/ -I…/libdaisy/src/usbd -I…/libdaisy/Drivers/CMSIS/Include/ -I…/libdaisy/Drivers/CMSIS/Device/ST/STM32H7xx/Include -I…/libdaisy/Drivers/STM32H7xx_HAL_Driver/Inc/ -I…/libdaisy/Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I…/libdaisy/core/ -I -O3 -Wall -Wno-missing-attributes -fasm -fdata-sections -ffunction-sections -MMD -MP -MF"build/startup_stm32h750xx.d" -I"…/gen_dsp" -O3 -Wno-unused-but-set-variable -Wno-unused-parameter -Wno-unused-variable -std=gnu11 -Wa,-a,-ad,-alms=build/startup_stm32h750xx.lst …/libdaisy/core/startup_stm32h750xx.c -o build/startup_stm32h750xx.o
arm-none-eabi-g++ -c -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -DUSE_HAL_DRIVER -DSTM32H750xx -DUSE_HAL_DRIVER -DHSE_VALUE=16000000 -DSTM32H750xx -I…/libdaisy -I…/libdaisy/src/ -I…/libdaisy/src/usbd -I…/libdaisy/Drivers/CMSIS/Include/ -I…/libdaisy/Drivers/CMSIS/Device/ST/STM32H7xx/Include -I…/libdaisy/Drivers/STM32H7xx_HAL_Driver/Inc/ -I…/libdaisy/Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I…/libdaisy/core/ -I -O3 -Wall -Wno-missing-attributes -fasm -fdata-sections -ffunction-sections -MMD -MP -MF"build/crossover_giga_midside_modfm_pulsar_reverb_squine_patch.d" -I"…/gen_dsp" -O3 -Wno-unused-but-set-variable -Wno-unused-parameter -Wno-unused-variable -fno-exceptions -fasm -finline -finline-functions-called-once -fshort-enums -fno-move-loop-invariants -fno-unwind-tables -O3 -Wno-unused-but-set-variable -Wno-unused-parameter -Wno-unused-variable -std=gnu++14 -Wa,-a,-ad,-alms=build/crossover_giga_midside_modfm_pulsar_reverb_squine_patch.lst crossover_giga_midside_modfm_pulsar_reverb_squine_patch.cpp -o build/crossover_giga_midside_modfm_pulsar_reverb_squine_patch.o
arm-none-eabi-g++ build/system_stm32h7xx.o build/startup_stm32h750xx.o build/crossover_giga_midside_modfm_pulsar_reverb_squine_patch.o -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard --specs=nano.specs --specs=nosys.specs -T…/libdaisy/core/STM32H750IB_flash.lds -L…/libdaisy/build -ldaisy -lc -lm -lnosys -Wl,-Map=build/crossover_giga_midside_modfm_pulsar_reverb_squine.map,–cref -Wl,–gc-sections -o build/crossover_giga_midside_modfm_pulsar_reverb_squine.elf
arm-none-eabi-size build/crossover_giga_midside_modfm_pulsar_reverb_squine.elf
text data bss dec hex filename
108396 1068 67136516 67245980 402179c build/crossover_giga_midside_modfm_pulsar_reverb_squine.elf
arm-none-eabi-objcopy -O ihex build/crossover_giga_midside_modfm_pulsar_reverb_squine.elf build/crossover_giga_midside_modfm_pulsar_reverb_squine.hex
arm-none-eabi-objcopy -O binary -S build/crossover_giga_midside_modfm_pulsar_reverb_squine.elf build/crossover_giga_midside_modfm_pulsar_reverb_squine.bin

oopsy compiled code
oopsy flashing…
dfu-util -a 0 -s 0x08000000:leave -D build/crossover_giga_midside_modfm_pulsar_reverb_squine.bin -d ,0483:df11
dfu-util 0.10

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2020 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

dfu-util: Warning: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device…
ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface…
Setting Alternate Setting #0
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 1024
DfuSe interface name: "Internal Flash "
Downloading element to address = 0x08000000, size = 109472
Erase [=========================] 100% 109472 bytes
Erase done.
Download [=========================] 100% 109472 bytes
Download done.
File downloaded successfully
dfu-util: Error during download get_status
make: *** [program-dfu] Error 74
upload failed
oopsy done`

Just in case there was a confusion, a “multi-app” is still a single binary. The name “crossover_giga_midside_modfm_pulsar_reverb_squine.bin” identifies that this single binary contains 7 “apps”.

To switch apps on the Patch, press & hold the encoder and rotate until the OLED shows the app menu (should look like a list of those names (“crossover”, “giga”, etc.) and then release. Then scroll the list with the encoder to select an app, and push the encoder to load it.
Alternatively, you can send MIDI program change events to the patch to select apps; PGM 1 is app 1, PGM 2 is app 2, etc.

Thanks for the clarification about the number of binaries and how to switch between apps (especially the MIDI program numbers!) After checking again, I cannot switch apps as holding the rotary encoder does nothing.

I was under the impression that it was flashing multiple binaries as it seems dfu-util is still attempting to perform some action after the binary uploads and the Seed exits DFU mode. Maybe this is just a verification to see if the flash was successful? Either way, multi-app does not work for me using the terminal or Max.

Hi, where do I go to get support? I still cannot get multi-app to work :cry:

I don’t know if I am doing something wrong, or dfu-utl is the wrong version, or if their is something wrong with the daisy script. Sorry but I am new to this platform.

dfu-util doesn’t know or care that it’s a multi-app.

HI all,

Sorry for the delay in responding, it’s been a hectic week.

It seems that there’s a bug that is stopping the encoder app menu working – I hope to get that fixed in the next couple of days. It’s my daughter’s birthday today so I can’t really respond more at the moment, sorry!

Thanks,

Graham

2 Likes

Hi,

I added a ticket to track this here: Patch OLED menu encoder dysfunctional on dev branch · Issue #41 · electro-smith/oopsy · GitHub

I do remember seeing this behaviour on the dev branch a week ago, but now I can’t reproduce it, so I suspect I may have fixed whatever was causing it. I did do quite a few fixes to the oopsy.js workflow in the last week.

For the dev branch you’d need a full git fetch on all submodules and rebuild libdaisy. The easiest way is to run install.sh from the root folder of Oopsy.

Graham

Hi! How do change apps on Daisy Field?
I can get to the menu showing the apps, i can go up and down the list but cannot choose the app i want.
Thanks

Hi @boomninjavanish – sorry I missed this earlier!

I’m not sure how to help, it seems to be working perfectly for me and for other users.

Are you working from the main branch or the dev branch of oopsy? If you are working from the dev version, perhaps you cloned it while it was in an inconsistent state (this is sometimes the case with a branch in development, which is what “dev” is…) – in which case, try doing a fresh clone of the dev branch now and see if that resolves the problem?

To clone the dev branch in OSX:
Delete (or move somewhere else, e.g. your desktop) the current oopsy folder from Documents/Max 8/Packages

Open a terminal and navigate to Documents/Max 8/Packages:

git clone -b dev https://github.com/electro-smith/oopsy.git
cd oopsy
./install.sh

Restart Max

@Topa: I’ll double check the Field here. It should be: hold SW1 to enter page select, tap SW1 until you get to the multi-app page, release SW1.
Now, tap SW2 to scroll through which app is highlighted, and tap SW1 to load it.

EDIT: It works here.

thanks @grrrwaaa, all good now :slight_smile:

Sorry for the late reply…life happened in a big way. I am now attempting to play with this again and finally discovered the fault: the button on the encoder doesn’t work. :sweat_smile:

Using my multimeter, I beeped out the pads for the switch in the encoder. There were no beeps which indicates that the switch isn’t closing – I think.

Should I email support? It has been awhile since I purchased this…so I would understand if I am out of the warranty period. If that is the case, does anyone know what exact encoder that the patch uses? I can solder.

Edit: I reached out to Electrosmith about this. I am super excited about jumping back into this again. I thought the problem was me or my dev environment.