Owl Pedal Won't Connect

I’ve got an older Owl pedal (rev 4). It powers up, loads the current patches just fine, and sounds fine but… DFU will not recognize it. When I connect via USB and try booting in DFU mode the device powers up and the LED flashes three times as expected, but dfu-util doesn’t recognize any connected devices and neither does WebDFU. I’ve tried two different laptops (an older 2011 MacBook Pro and a new MacBook Pro w M1 chip) neither work.

I’ve also tried forcing dfu mode with jumper cables… no dice. Any suggestions?

I’m not sure what’s the problem with DFU issues in this case - seems like the problem might be MacOS specific, doesn’t?

I assume you’re trying to switch to the current OpenWare from legacy firmware, you can do it without using DFU if necessary. That requires using ST-link v2 programmer and openocd to flash new bootloader/firmware.

This is on an Owl pedal with only micro USB. How and where would I connect the ST-link v2 programmer - looks like that is a ribbon cable of sorts?

I’ve tried using two different laptops with different Mac operating systems and neither work so I don’t think it’s a MacOS issue. Using dfu-util version .9 on the older and .11 on the newer.

There’s some details about which pins should be connected here. That’s written about OWL2 board, but it works the same way on OWL1 that you have.

ST-link v2 typically is shipped with a cable that you can use to connect to the board, it’s just a common jumper cable with 0.01’’ pitch. And I suggest using one of the commonly available Chinese clones, original programmer from ST was somewhat overpriced (I’m not even sure if they are still being sold). It should look more or less like this, however case’s shape and color varies a lot.

Hi @antisvin thank you so much for the help. I now have the ST-link v2 device, I have openocd installed and working, I’ve also got everything connected properly. I’m just not sure what to do next. Is there a .cfg I need to use?

Ok, I’m writing without verifying that this is 100% correct, but I think it should be. And generally you don’t have to worry about bricking the device if you have a programmer.

Normally this config is used: https://github.com/RebelTechnology/OpenWare/blob/master/Hardware/openocd_f4.cfg

However, it does little other than specifying openocd to use its generic stlink and stm32f4 configs and software reset instead of using a hardware PIN.

What you could do is run openocd -f /path/to/openocd_f4.cfg -c "program /path/to/MidiBoot-OwlPedal.bin verify reset exit 0x08000000"

Use this file for bootloader image.

After reset this should give you a USB MIDI device and you can just flash firmware with sysex. You can try latest firmware from here or some older version if you’ll have some issues - I don’t have an OWL1 with me, no idea if last firmware works well or not.

@antisvin This is what I’m seeing…

openocd -f /Users/cbailey/Downloads/openocd_f4.cfg -c "program /Users/cbailey/Downloads/MidiBoot-OwlPedal.bin verify reset exit 0x08000000"
Open On-Chip Debugger 0.12.0
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
srst_only separate srst_nogate srst_open_drain connect_deassert_srst

Info : clock speed 2000 kHz
Info : STLINK V2J34S7 (API v2) VID:PID 0483:3748
Info : Target voltage: 3.275936
Info : [stm32f4x.cpu] Cortex-M4 r0p1 processor detected
Info : [stm32f4x.cpu] target has 6 breakpoints, 4 watchpoints
Info : starting gdb server for stm32f4x.cpu on 3333
Info : Listening on port 3333 for gdb connections
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Info : Unable to match requested speed 2000 kHz, using 1800 kHz
Error: timed out while waiting for target halted
** Unable to reset target **
shutdown command invoked

Well it looks like it detects MCU, but has problem resetting it and for that reason openocd can’t start running any commands. You could try commenting out last config line or uncommenting another reset configuration that is mentioned after it. Also something like “reset_config srst_only srst_nogate” may work.

Make sure that NRST (might be marked just “reset”) pin on programmer is connected to the same pin on OWL board. And I think +3.3V pin shouldn’t be connected by wire in case if you use an ST-Link clone rather than genuine programmer from ST.

Holy crap, it works! Thanks so much for all your help!

I ended up commenting out ALL of the reset commands on the config file. Maybe since reset was included in the command it worked? Idunno… Either way I’m happy :slight_smile:

source [find interface/stlink.cfg]

transport select hla_swd

# increase working area to 112KB

set WORKAREASIZE 0x1c000

source [find target/stm32f4x.cfg]
# reset_config srst_only
# if SWD has been disabled, uncomment this line
# reset_config srst_only srst_nogate connect_assert_srst
1 Like