DFU Firmware Updates via pins (not USB)

I’ve had some luck using the Blues Wireless Notecard for connectivity. They also offer host firmware updates over the air for STM32 and I have been trying to get that working.

I’ve hit a few stumbling blocks and wanted to confirm a few things:

  1. Are DFU updates possible through the pins only?

This is possible right? We’re not just restricted to USB via the IDE, right?

  1. Does the DFU update use UART Bus #1 (TX/P1, RX/P0)?

I think this is right because I have managed to corrupt my firmware once already with these pins and had to recover via the IDE.

  1. Which firmware binary should I use?

Blues recommends wrapping firmware binaries, but I’m not sure if this applies to OpenMV firmware builds.

I’ve tried with and without binpack with the firmware.bin, firmware.dfu and openmv.bin files from my builds. firmware.bin installs fine via the IDE.

Do you think I’m using the wrong file? Maybe the wrong memory_addr param for binpack? I can send more specific errors in follow-up posts if necessary, but here are few of the errors I’ve seen:

Error (cannot update host: cannot allocate 131072 bytes {memory})
Error (cannot update host: page-by-page erase failed (check max pages device supports): timeout)

The default ROM bootloader can program the camera through certain I/O pins. However, we’ve never done this before.

It feels like over-the-air updates could be a big opportunity for your product, since they are sometimes integrated with other MCUs and maybe one day with carrier boards…

@iabdalkader, do you have any ideas for how to get this working?

The next gen cameras will all have WiFi onboard.

As for such a system to do this. Not likely our focus for the next year. Depends on if we can increase our man power.