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

Smart Bluetooth Forum Discussions

Anonymous
Not applicable

Hi all,

after having an almost finished firmware for our custom board with the BCM20737S, we have one last technical question: Where should we store device specific information like serial numbers and hardware model information that should survive an OTA upgrade?

Is VS1 in the NVRAM a good place for this?

If so, how can we access it properly? Which vsID should we take, which are occupied for other things?

Is there a recommended way to store data in VS1 during flashing? (beside just inserting into the Intel HEX with own tools, which is not a big deal)

We plan to produce two almost similar devices with some physical parts missing on a specific model. We cannot detect the differences of the device. The firmware is almost identical for both devices and has the same services and characteristics.

It is our favored solution to have the same firmware on all devices, with the model information in NVRAM.

Alternatively, we could deploy multiple different firmwares with the changes compiled in (e.g. with defines in the makefile).

What would you prefer in my situation?

0 Likes
1 Solution
Anonymous
Not applicable

Hello.

Just a little correction: you should use 0x10 to 0x6f for writeNVRam function.

The stack uses 0x00 to 0x10 for information for like bonding and stuff.

This is from the SDK doc:

pastedImage_0.png

James

View solution in original post

5 Replies
MichaelF_56
Moderator
Moderator
Moderator
250 sign-ins 25 comments on blog 10 comments on blog

Could you use a custom UUID or the BD_ADDR as a unique ID?

Some discussion on both here: Re: Unique Chip Identifier  / Programming devices with unique UUIDs

Here's a user that is reading/writing a unique ID over SPIFFY1: How can I read an Unique ID number using SPIFFY1 ?

Anonymous
Not applicable

Yes, a UUID or BD_ADDR is one thing we could use for the different boards we have.

But we also would like to store, which firmware version an external chip has.

We communicate via I2C with that chip and we may need to update it in the future.

Is VS1 a good place for such information?

0 Likes

This has come up before, but I cannot find the thread.  I asked jamesle1​ to look into it with the apps team and respond with where exactly in NVRAM customers are allowed to store unique values using writeNVRam.

This is the thread I was looking for earlier: Re: BCM20732S NVRAM Size

Much more detail on the memory map (builds on this thread: WICED Smart BCM92073X EEPROM and SFLASH Layout)

I asked around and 0x00 - 0x6f is where users can store their own data.

Anonymous
Not applicable

Hello.

Just a little correction: you should use 0x10 to 0x6f for writeNVRam function.

The stack uses 0x00 to 0x10 for information for like bonding and stuff.

This is from the SDK doc:

pastedImage_0.png

James