6 Replies Latest reply on Oct 21, 2015 10:32 AM by MaGr_2160016

    DFU through USB



      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?



        • 1. Re: DFU through USB


          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.

          • 2. Re: DFU through USB

            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?

            • 3. Re: DFU through USB

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

              • 4. Re: DFU through USB

                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.

                • 5. Re: DFU through USB

                  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.

                  • 6. Re: DFU through USB

                    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.