Regarding PSoC6 BLE DFU Fail Safe.

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

cross mob
YuMa_1534086
Level 7
Level 7
Distributor - Macnica (Japan)
500 replies posted 250 sign-ins 10 likes received

Hello.

 

 

Q1)

[English]

DFU may fail depending on the version of android on the host.

For example, it works fine on Android 9, but it doesn't work on Android 12.

Do you have application notes or forums that explain it?

 

[日本語]

DFUにおいてホスト機のAndoroidのバージョンによって上手くいったりいかなかったりがあります。

例えばAndroid9では上手くいっておりますがAndroid12では上手くいきません。

アプリケーションノートや解説してるフォーラムやり取りなどございますか。

 

 

Q2)

[English]

Do you have any application notes about DFU's Fail Safe?

In particular, if there is a recommended implementation method for applications where peripheral does not have an interface such as a reset button, please let us know.

In the case of an application without an interface, the device cannot be reset from the outside, so if there is a bug in the uploaded firmware and it becomes impossible to DFU again, it will be irreversible.

It would be helpful if there was a document that explained tips etc to avoid such cases.

 

[日本語]

DFUのFail Safeに関するアプリケーションノート等ありますか。

特にペリフェラル機にリセットボタン等のインターフェースが無いようなアプリケーションにおける推奨実施方法等ありましたらご教授頂きたいです。

インターフェース無しのアプリケーションの場合デバイスを外部からリセット出来ないため、アップロードしたファームウエアにバグ等あり再度DFUできないような状態になってしまうと取り返しがつかなくなります。

そういった場合を回避するためのTips等が解説されているドキュメントがあると助かります。

 

 

Best Regards.

Yutaka Matsubara

0 Likes
7 Replies
Yugandhar
Moderator
Moderator
Moderator
500 solutions authored 1000 replies posted 5 likes given

Hello,

1. Could you please let us know what is the issue you are facing in Android 12 ?

2. In a MCU, several events may cause a device reset: for example, a device power up or a voltage level on a reset pin. In addition, firmware can trigger a reset by writing to a device register. This is known as a “software reset”, or SRES. Using the SRES feature, an application can reset the device, for example in response to an event such as a button press. This effectively transfers control to the DFU module because the DFU module executes first at device reset.
For more information, please refer to the AN213924 - PSoC 6 MCU Device Firmware Update Software Development Kit Guide.

Thanks,
P Yugandhar.

0 Likes
YuMa_1534086
Level 7
Level 7
Distributor - Macnica (Japan)
500 replies posted 250 sign-ins 10 likes received

P Yugandhar-san.

 

 

Q1)

DFU doesn't work on Android 12.

Firmware Update fails.

 

But Firmware Update is successful on Android 9.

 

DFU may fail depending on the version of android on the host.

Do you have application notes or forums that explain it?

Is there a past case where DFU fails depending on the version of Android?

 

 

Q2)

This question is about Fail Safe in an environment without reset feature.

 

If there is a recommended Fail Safe implementation method for applications where peripheral does not have an interface such as a reset button, please let us know.

In the case of an application without an interface, the device cannot be reset from the outside, so if there is a bug in the uploaded firmware and it becomes impossible to DFU again, it will be irreversible.

It would be helpful if there was a document that explained tips etc to avoid such cases.

Do you have any application notes about DFU's Fail Safe(without reset)?

 

 

Best Regards.

Yutaka Matsubara

0 Likes

Hello,

1. Currently I don't have the Android 12 device for testing . Could you please send me some screenshots of the error which you are seeing . I will try to get the Android 12 device and test the results.

2. Please refer to the below thread link for 'How to jump to application from bootloader without software reset?'.

https://community.infineon.com/t5/PSoC-5-3-1/How-to-jump-to-application-from-bootloader-without-soft...

Thanks,

P Yugandhar.

0 Likes

I'm seeing the same thing and have posted a logcat from an Andoid 12 device. To a similar forum post.

0 Likes
Yugandhar
Moderator
Moderator
Moderator
500 solutions authored 1000 replies posted 5 likes given

 

Hello,

I have tested the PSoC6 BLE OTA example project in Android 12 device and it is working fine at my end, where I'm able to upgrade the OTA firmware.
I tested with Samsung Galaxy S10+ Android 12 device.

Thanks,
P Yugandhar.

0 Likes

Hi Yugandhar

I can with the example reliably upload App1 when only programming App0 and then using Cysmart to load App1.
 
This issue arises in this scenario:
App0 is DFU
App1 is my BLE HID device different beacon name
 
While running App1 we trigger through a command to go into the bootloader.  While in App0 If I try to update to use Cysmart to update App1 it fails most times.
 
This seems to work reliably in CySmart iOS though.
 
Thanks,
Keith
0 Likes

I did some additional testing with all Android devices I had access to.  The only Samsung device I had worked great, the remaining had a low success rate out of 6 tries.

Phone Model Android Version CySmart(App Store) PASS / FAIL
Samsung S20 5G(SM-G981U1) 11 6 / 0
Pixel 6 Pro 12 2 / 4
Pixel 4 XL 12 3 / 3
Pixel 3 XL 12 4 / 2
Pixel 2 11 2 / 4
0 Likes