SiliconLabs / SimplicityConnect-ios

This is the source code for the EFR Connect application for iOS.
Apache License 2.0
65 stars 27 forks source link

The "Start Command" is sent twice to OTA Control on OTA start. #8

Open mundodisco8 opened 2 years ago

mundodisco8 commented 2 years ago

I'm using the latest version of the app (v2.4.3) on iOS 15.4 on an iPhone XS.

We are trying to implement OTA Updates and have put together some PoC FW. All works perfectly, but we have noticed that the iOS app sends two 0x00 commands to the OTA Control characteristic. Our proof of concept is based on the uploading multiple images to multiple slots example. The target is a xGM220P (BRD4311A) dev kit. If we use the "speed" mode, as we have some actions that take actual time (they need to access the flash to do some checks) this is enough to trigger a timeout. This doesn't happen if we use reliable mode, as the timeout is probably more generous. While I understand that I could just use the reliable mode, the source of the issue is this command being sent twice. This doesn't happen on Android and there's nothing in the documentation that says that the command needs to be sent twice.

Steps to reproduce:

1) Connect to the target 1) Select the storage slot 1) Click on the 3 dot menu, OTA DFU 1) Select Partial Method. Both Reliability and Speed modes have the issue. Choose a file, click on OTA UPDATE to start the update.

A write op is sent from the phone, to the OTA Control Characteristic, with data 0x00.

E16FFB8B-D8FD-4356-BB65-C58DAF079D4C

hdrsl commented 2 years ago

Hi, So it should be fixed in release 2.5.0.

Shanti-SR commented 1 year ago

I have the same problem as described by @mundodisco8 . I have tried the latest version: 2.6.1. I have tried with iOS 15 and iOS 16.