Issue with using Windows OTA upgrade app

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 use the Windows OTA upgrade app, but the application seems to hang.  I'm using a Window 7 machine with a Bluetooth stack I downloaded from the Broadcom website:

Bluetooth Software Download | Broadcom

Here is my procedure:

1) Pair the device with the Win7 box via "Device and Printers" -> "Add a device" and click on my LE device pre-programmed with the "ota_firmware_upgrade" App

2) Run "WsOtaUpgrade.exe ota_firmware_upgrade-BCM920736TAG_Q32-rom-ram-Wiced-release.ota.bin"

3) The following dialog pops up and I click start and it gets to a transfer status and just sits here forever:

Smart Upgrade.jpg

Looking at the Frontline BLE sniffer, I don't see any LE traffic coming through.  When I click on the Device in "Device and Printers", I get this:

Device.jpg

So it seems to me that I may not be using the right stack.  Can somebody who has gotten the OTA upgrade to work on windows 7 comment?  Or perhaps give me your procedure that worked for you?

Thanks in Advance

-Howard

====UPDATE:==============

So I was able to get the OTA upgrade to work on Win8 machine which has the LE stack built in.  So for those having issues with Win7, try finding a Win8 machine.  The link is stable enough for the OTA upgrade to succeed

1 Solution

Let me try to address some of the topics that were presented in this thread throughout the evening.

1.

Yes, the free Windows based OTA Client software we provide within the SDK requires a Broadcom BCM20702 based dongle.  The BCM20702 is used in many of the low cost dongles on the market today, many of which can be easily found both online and at brick and mortar type retailers throughout the world.

2.

The Broadcom "Bluetooth for Windows" (BTW) software that supports these dongles can be found online at Broadcom.com (shows up as one of the top results on Google).  These are also the drivers that many of the BCM20702 dongle providers ship with their product.

3.

When installing these drivers it is VERY important to first disable any internal Bluetooth radio that already exist on your PC. The install simply will not work if a BCM20702 based chipset is not found.

4.

Once installed, reboot and plug the dongle in, then pair it with your PC using the Bluetooth Control provided in Windows.  Once this process is complete, the Windows client should work.

5.

OTA cannot be used for first time programming.  It has to be the HCU UART as noted in posts throughout the site.

6.

hThere are several OTA enhancements/improvements coming in SDK 2.2

7.

There is an excellent Appnote here on Secure OTA: WICED Secure Over-the-Air Firmware Upgrade Application Note (SDK 2.1 and TAG3 Board)

Secure OTA Requires the BCM20737 as it is the only device that supports RSA (Polar SSL library included in ROM), which is leveraged for "Secure" OTA.

In addition, for non secure OTA (supported on the 20736 as well) documentation, there are simple explanations within the headers of the source files provided.  In addition, there is a Readme in the ota_firmware_upgrade\peerapps\windows\wsotaupgrade directory you will find helpful.

8.

Yes, unprecedented growth this year within the community has made some of this information difficult to find on the website.  As we are assuming 100%+ growth again this year, my plan for 2015 is to create a much more scalable information architecture across all of the community websites (including of course BLE) which will make much of this information front and center.

As a quick patch for the OTA related information, I created a new category for OTA and updated all of the Tags attached to this content as to enable better searching: WICED Smart Forums

Hopefully many of you will find this helpful.

View solution in original post

19 Replies
Anonymous
Not applicable

Are you sure you programmed the correct OTA project?

OTA updates on windows requires patience and persistence.  You probably have a broken connection and that's why nothing's happening.  Try:

  • Removing the device and re-adding it.  Rebooting the dongle won't hurt.
  • Double clicking on the device before starting the update so that windows begins to interrogate the device.  If it's pulling in service info, it's connected and the OTA should start.  I'm hitting about 75% success rates using this approach.
  • Hitting refresh in the last dialog you posted before and during the update.  Sometimes that kicks the ota into action if it appears to hang.
  • Turning off bluetooth on any nearby devices (tablets, phones, etc).
  • Turning off the 'allow windows to turn off this device' feature for the dongle.  I have been told that the dongle (or hub it's sitting on) can be shut down by windows in the background... WHILE you're trying to use it.

I *HIGHLY* recommend you set up a linux box/VM and play hidtool and gatttool.  It won't let you update but you can talk to the device directly and see if the services/chars that you expect to be there actually are.   It can also help identify timeouts that you might not be aware of.

Anonymous
Not applicable

Hi Jose,

Thanks for the response.  I'll give your suggestions a try, I hope I will have better luck with that.  I should also forgot to mention that I'm using the Broadcom based IOGear dongle GBU521, not sure how big of a factor that maybe.

But from your experience, it sounds like the OTA isn't really reliable which is a worrisome.  I do like the idea of using the hidtool and gattool, hopefully that can help me develop a linux based OTA.

-Howard

Anonymous
Not applicable

I try also to play with OTA, signing an OTA image, to put to my Android project etc.

I have found here helpful command as:

"WsOtaUpgrade.exe ota_firmware_upgrade-BCM920736TAG_Q32-rom-ram-Wiced-release.ota.bin"

But if I do this on Windows (Win 7, 64bit - BTW: the path to this exe is not set in %PATH% - hard to specify path to exe) - I get this error:
"Broadcom Bluetooth profile pack for Windows (BTW) has to be installed."

What does it mean?

What to do?

I want to convert the generated FW BIN into a singed OTA image so that I can take it to res/raw in Android project.

Please, could you provide a bit more info how to put FW BIN to Android project (as local OTA file - I see it is supported but how to use?). Thank you.

0 Likes
Anonymous
Not applicable

In regards to the "Broadcom Bluetooth profile pack for Windows (BTW) has to be installed.", I have seen that error trying to run the WsOtaUpgrade.exe on a laptop that is using a non-broadcom device adapter.  From what I can tell, it looks like you need to install the BTW (BlueTooth for Windows) from the following link for a broadcom device.

Bluetooth Software Download | Broadcom

Doing a bit more searching, I found this link Interested in using Broadcom’s Windows stack for Windows 7?

Anonymous
Not applicable

Great, very appreciated.

0 Likes
Anonymous
Not applicable

Uppps, I had to buy something????

I need a BRCM BLE dongle on my Windows 7 laptop?

Really?

0 Likes
Anonymous
Not applicable

It looks like I am forced to waste my money:

Installing the BRCM SW - it hangs endless on "Detect Bluetooth Device" and it does not proceed.

Does it mean, just to convert an OTA.BIN into a ".signed" I have to buy and connect a BRCM BLE dongle on my laptop.\?
Why do I need HW just to convert a file?????????

Sorry, what should I say?

(it is not a nice way to generate business ... sorry, I could drop more words here, too ...) 

0 Likes
Anonymous
Not applicable

From my understanding you only need the BTW and Dongle in order to do the OTA upgrade from Win7 to the device.  If you want to do the conversion, I believe there is a document somewhere in the SDK for that.  Or you can check this link: WICED Smart BCM92073X OTA Firmware Upgrade (1) and WICED Smart BCM92073X OTA Firmware Upgrade (2)

Anonymous
Not applicable

Thank you.

Why it is so hard to get such docs, links ...?

How have you found these?

This is exactly what I was looking for. Thank you!
Where is is the "table of contents" to find next time without to bother all?

BTW: it does not talk about that I have to purchase anything.

Really a need to buy something for my Windows 7 laptop?

BTW: if I would use my office laptop - is there a guarantee that the expected HW is inside?

(also running Win 7).

For this 5 minute task to convert just a file I waste meanwhile so much time ... (and get frustrated ...).

0 Likes

Let me try to address some of the topics that were presented in this thread throughout the evening.

1.

Yes, the free Windows based OTA Client software we provide within the SDK requires a Broadcom BCM20702 based dongle.  The BCM20702 is used in many of the low cost dongles on the market today, many of which can be easily found both online and at brick and mortar type retailers throughout the world.

2.

The Broadcom "Bluetooth for Windows" (BTW) software that supports these dongles can be found online at Broadcom.com (shows up as one of the top results on Google).  These are also the drivers that many of the BCM20702 dongle providers ship with their product.

3.

When installing these drivers it is VERY important to first disable any internal Bluetooth radio that already exist on your PC. The install simply will not work if a BCM20702 based chipset is not found.

4.

Once installed, reboot and plug the dongle in, then pair it with your PC using the Bluetooth Control provided in Windows.  Once this process is complete, the Windows client should work.

5.

OTA cannot be used for first time programming.  It has to be the HCU UART as noted in posts throughout the site.

6.

hThere are several OTA enhancements/improvements coming in SDK 2.2

7.

There is an excellent Appnote here on Secure OTA: WICED Secure Over-the-Air Firmware Upgrade Application Note (SDK 2.1 and TAG3 Board)

Secure OTA Requires the BCM20737 as it is the only device that supports RSA (Polar SSL library included in ROM), which is leveraged for "Secure" OTA.

In addition, for non secure OTA (supported on the 20736 as well) documentation, there are simple explanations within the headers of the source files provided.  In addition, there is a Readme in the ota_firmware_upgrade\peerapps\windows\wsotaupgrade directory you will find helpful.

8.

Yes, unprecedented growth this year within the community has made some of this information difficult to find on the website.  As we are assuming 100%+ growth again this year, my plan for 2015 is to create a much more scalable information architecture across all of the community websites (including of course BLE) which will make much of this information front and center.

As a quick patch for the OTA related information, I created a new category for OTA and updated all of the Tags attached to this content as to enable better searching: WICED Smart Forums

Hopefully many of you will find this helpful.

Anonymous
Not applicable

Thanks for the clarification.

0 Likes
Anonymous
Not applicable

Thank you. I appreciate your answers.

0 Likes
Anonymous
Not applicable

Settle down Beavis, it's only $14 for the dongle:  Plugable USB-BT4LE Bluetooth 4.0 USB Adapter for Windows and Linux PCs | Plugable

You can also use the (FREE) android app to flash OTA if you have a supported device, btw.

Trying to figure out a way to like and mark this one helpful 3x 🙂

Thanks Jose.

0 Likes
Anonymous
Not applicable

Sorry, what does it mean?

There is an APP which can convert BIN to signed OTA file?

I do want to do an OTA update or flash of my device. Instead:

I want to get the signed OTA image to my (the WICEDSense) App. It should come with the App, as this (FREE) App you have mentioned.

App should come with signed OTA embedded, so that all users and do this, not me.

0 Likes

I will ask one of the others on the team who are more familiar with the inner-workings of OTA to respond.

j.t vik86

0 Likes
Anonymous
Not applicable

Hello tjaekel,

The WICED Sense App will contain the OTA binary in both iOS and Android once we post them to the perspective stores.  This will be released this week for the Android side and a week later for the iOS approval of the updated WICED Sense App

Is that what you were asking?

Thanks

JT

0 Likes
Anonymous
Not applicable

Honestly, windows is the problem for me.  It installs a driver for every service and takes a long time to do this.  It also hides a lot of what's going on so you don't know that there's a problem and just see nothing happening.  Sometimes it just stops seeing the bluetooth interface altogether.

I'm waiting for the non-secure ota manager what will (hopefully) ship with the 2.2 SDK so I can switch to updating via android.  I had it mostly working but needed to spend time on other things and never got back to it.  Having said that, the OTA protocol isn't complicated and there are excellent resources documenting it if you want to roll your own.

If you're going to be using this platform, you will need to be patient. You, I and a lot of other people are ahead of the curve and need to allow the devs to catch up.  It's frustrating (esp the lack of detailed documentation) but it has been steadily improving and this site is very helpful.

If you are a developer, adding OTA support is brain dead easy.  There are exactly 3 edits to code and 2 files to add to your project.

Anonymous
Not applicable

No, it was not my question:

I write Android App. APK/App has to be accompanied with matching FW for WICEDSense.
BRCM supports OTA and I see it is possible to embed the FW in APK itself. The file should be a signed OTA image.

OTA works for my understanding anyway in a "local" way: the BIN file (FW) comes from a file inside Android phone or is embedded as res/raw, as an asset inside the APK. OTA will read it inside Android phone, inside App and send via BLE to remote device (this is the OTA, not getting FW image from another remove server, e.g. via WiFi internet).

This approach, which is demonstrated in the WICEDSense Android App, is documented ... I want to use OTA for my FW image - I must use in order to make it convenient for clients, users and to make sure the APK/App will work (it needs the upgraded first).

Now I understand: NOT POSSIBLE (due to key issues) - then all is lost, it does not make sense to develop something new on such a device. It is useless without such a feature.


And: Why it is mentioned in Hackathon terms to put App to Google Play and to make it convenient for the people evaluating so that they can install and test in an easy way?

Now it sounds to me: forget Google Play - no chance to publish your own APK (if you want to use OTA).
Correct?

0 Likes