Nerivec / silabs-firmware-builder

Silicon Labs firmware builder
20 stars 0 forks source link

Add Zigbee FW Version in the SLZB-06M dashboard #9

Open MilesTEG1 opened 2 weeks ago

MilesTEG1 commented 2 weeks ago

Hello, @Nerivec I flashed the new Zigbee FW you plublished this morning. And as always, when falshing custom FW for the SLZB-06M, there is no indication of the FW Version we flashed, or had before flash.

CleanShot 2024-10-29 at 13 00 15@2x

Is it possible to add some indication about the version you provide? Like Nerivec-v2024.6.2-update1 or Nerivec-ncp_8.0.2.0_115200_sw_flow or anything else that gives the information of what fw version we have?

Thanks in advance.

Nerivec commented 2 weeks ago

From what I understand, this stuff is linked to the SMLight API call, not the content of the file being flashed. So, at least for now, this is not possible from my end.

https://github.com/smlight-tech/pysmlight/blob/8b9e220412f8fffc9d9dec32194fa4df47e4d039/pysmlight/web.py#L256

MilesTEG1 commented 1 week ago

@Nerivec Ok. Do you know what it'll need to get your FW version to show? I'm writing to the support, maybe they can add something in their API.

Tarik2142 commented 1 week ago

From what I understand, this stuff is linked to the SMLight API call, not the content of the file being flashed. So, at least for now, this is not possible from my end.

https://github.com/smlight-tech/pysmlight/blob/8b9e220412f8fffc9d9dec32194fa4df47e4d039/pysmlight/web.py#L256

Yes, that's true. Since CC and EFR use different firmware version formatting, we had to come up with a way to standardize this, so the standardized version is passed in the API request. Of course, we do not know which version the user will flash in the case of custom firmware.

Nerivec commented 1 week ago

@Tarik2142 I was talking about this with darkxst. For EFR, when processing the file, you could detect the GBL HEADER tag, and if present, then see if metadata is available, then use this, since versioning has been present for a while now in all builders. https://github.com/Nerivec/ember-zli/blob/0aaf009159093cd7967ae229c7a0769ba747d127/src/utils/bootloader.ts#L271-L297 Though, I believe your API call requires a few extra metadata, that might not all be available in the GBL... but maybe can be derived or mapped?

Tarik2142 commented 6 days ago

@Tarik2142 I was talking about this with darkxst. For EFR, when processing the file, you could detect the GBL HEADER tag, and if present, then see if metadata is available, then use this, since versioning has been present for a while now in all builders. https://github.com/Nerivec/ember-zli/blob/0aaf009159093cd7967ae229c7a0769ba747d127/src/utils/bootloader.ts#L271-L297 Though, I believe your API call requires a few extra metadata, that might not all be available in the GBL... but maybe can be derived or mapped?

Thanks, I think I can add that. probably will use sdk_version converted to a number like 20240602 to match the zstack version formatting. baudrate and fw_type would also be helpful.

MilesTEG1 commented 6 days ago

@Tarik2142 I was talking about this with darkxst. For EFR, when processing the file, you could detect the GBL HEADER tag, and if present, then see if metadata is available, then use this, since versioning has been present for a while now in all builders. https://github.com/Nerivec/ember-zli/blob/0aaf009159093cd7967ae229c7a0769ba747d127/src/utils/bootloader.ts#L271-L297 Though, I believe your API call requires a few extra metadata, that might not all be available in the GBL... but maybe can be derived or mapped?

Thanks, I think I can add that. probably will use sdk_version converted to a number like 20240602 to match the zstack version formatting. baudrate and fw_type would also be helpful.

Yeah! Wonderful news 😁