cancel
Showing results for 
Search instead for 
Did you mean: 

PSoC™ 4

RideMaker
New Contributor

I'm a beginner, and I've been assigned a project to enable an OTA FW update for PSOC 4 BLE boards via an iOS app.  There are two different boards shipped with two different PSOC 4 BLE  parts on them: CYBLE-224116-01 and CYBLE-224110-00.  The present FW on the units is not equipped with functions to read the the PSOC part IDs to differentiate them during flashing.   The test units I have do not have recovery pins exposed, so flashing FW compiled for the wrong part could brick the unit.  I need confirm the bricking behavior. Will the unit become inoperable without recovery or will the FW flash simply fail due to a check in the flashing code and leave the running FW in place?  If its the second one, I can simply retry with a FW file for the other unit since there are only two possibilities.

0 Likes
1 Solution
Yugandhar
Moderator
Moderator

Hello,

I have tested in IOS Device and seen the same error as Silicon ID and Silicon Rev does not match as shown in attached image. 

When a bootloadable project is built, .cyacd is generated. This file contains a header followed by lines of flash data.
The header of this file has the following format:
[4 bytes Silicon ID] [1 byte Silicon rev] [1 byte checksum type].

The Host will check whether the Silicon ID and Silicon Rev received from the bootloader are same as those contained in the bootloadable file.

If possible, could you please share the .cyacd files and bootloader projects ?

Thanks,

P Yugandhar.

View solution in original post

0 Likes
3 Replies
Yugandhar
Moderator
Moderator

Hello, 

The bootloader and bootloadable projects should have the same target devices. Otherwise, while bootloading it will through the error as Invalid part number as shown in attached. 

Thanks,

P Yugandhar.

0 Likes
RideMaker
New Contributor

This is good news. I see from the screenshot that it looks like the OTA update procedure is executed from a computer. Will the same error be thrown when the operation is executed from a phone app?

Also, the I am seeing SiliconID and SiliconRev be returned with the same string for three different parts.  If I have the correct info, these values are entered MANUALLY when the CYCAD file is created.  The project was recompiled for different parts without manually updating this value...and now we have two different boards in the field that report the same SiliconID and Silicon rev.  In this case, would the flash operation still fail gracefully, or will it brick the unit?

0 Likes
Yugandhar
Moderator
Moderator

Hello,

I have tested in IOS Device and seen the same error as Silicon ID and Silicon Rev does not match as shown in attached image. 

When a bootloadable project is built, .cyacd is generated. This file contains a header followed by lines of flash data.
The header of this file has the following format:
[4 bytes Silicon ID] [1 byte Silicon rev] [1 byte checksum type].

The Host will check whether the Silicon ID and Silicon Rev received from the bootloader are same as those contained in the bootloadable file.

If possible, could you please share the .cyacd files and bootloader projects ?

Thanks,

P Yugandhar.

View solution in original post

0 Likes