DFU through USB

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hi,

I'm trying to implement USB DFU without much luck. I don't have access to the BOOT0 or BOOT1 pins so I'm trying to do it in software like in this example.

Has anyone else had success with this or could point me in the right direction?

-Will

0 Likes
6 Replies
GregG_16
Employee
Employee
50 sign-ins 25 sign-ins 25 comments on KBA

Hello,

Apologize for the delay on your update question, but this is a first request to do it via USB.  We have examples on how to do over-the-air(OTA) updates. We have focused on this method since we feel it is the most common/practical for IoT devices.

0 Likes

I don't want to be disrespectful but your reply is not satisfactory. Unlike OTA, DFU works with no firmware on the module, and it can be used to load firmware before WiFi works and without interfering with it. How about providing a more useful answer with respect to the BOOT0 and BOOT1 pins? I think they are not exposed in the WICED module, but if that is the case, how can Particle Photon module start in DFU mode?

0 Likes

This seemed to be the concensus from the engineering team. Possibly I didn't have all the details. Let me look into some more.

0 Likes

I think using the OTA firmware as bootloader in the SDK is possible. It just lacks of proper documentation. Sometimes instead of preparing pre-cooked solutions that are supposed to be documentation, it is better to explain how things works, and I don't mean one slide. I believe most developers would rather understand than hacking a "solution" by trial and error. By the way, this comment would apply for many features of the SDK. In the specific case, it would be nice a proper explanation of OTA in contrast or as an alternative to DFU. Sure looking at the source code helps and that is how I learned about many features of the SDK. In any case,  I had problems documented in other posts with using OTA, including failing for no apparent reason, failing without reporting and error, failing for too large binaries, and in general obscurity of the process. That is why DFU seems an appealing alternative.

0 Likes
Anonymous
Not applicable

I have used SN8205(STM32F2 + BCM43362), it can programmed using USB DFU when you boot high.

The STM USB DFU option with boot pin is a feature supported by the STM32 bootloader. This cannot be altered.

The option that you are looking at is to customize the WICED bootloader. It may need some development. Also WICED does not have any examples for the USB interface.

0 Likes

You are right. Ultimately, I ended up customizing the bootloader in the process of liberating ourselves from the Broadcom SDK. It is not software production-ready and I don't understand how anyone can ship products with it.

0 Likes