Skip to content

FuotaV1 Prints FUOTA SUCCESSFUL but the firmware doesn't change #121

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
Luiz-Freiberger opened this issue May 30, 2025 · 1 comment
Open

Comments

@Luiz-Freiberger
Copy link

Hello!

Been trying to launch a simple FUOTA campaign using Chirpstack v4.12 as my LNS, Dragino lps8v2 as my gateway and a Nucleo L476RG + sx1262 as my end device and the firmware is the periodical_uplink example. The campaign is shown in the LNS as a success and the device prints:

Fuota session info : 
Current fragment index = 0,
Current fragment counter = 332,
Number of missed packets = 29,
 FILE RECONSTRUCTS SUCCESSFULLY !
�[0;34mModem event callback
�[0m�[0;32mINFO: Event received: FUOTA SUCCESSFUL

I don't know why it indicates that the Fuota was successful but don't changes the firmware,i am just sending a simple firmware binary that prints "Hello World" endlessly as a test.
So i have some questions:
What kind of file should i send? .bin .hex .elf?
In the lbm_lib/makefiles/options.mk the "FUOTA_MAXIMUM_NB_OF_FRAGMENTS ?=" should account for the "FUOTA_MAXIMUM_FRAG_REDUNDANCY ?=" ?
to better illustrate the question: if i have a .bin with size 7980B and sending 32B packets i would have 250 fragments, if i want to have 20% redundancy that wold be another 50 packets so my variables would be:

FUOTA_MAXIMUM_NB_OF_FRAGMENTS ?= 250
FUOTA_MAXIMUM_SIZE_OF_FRAGMENTS ?= 32
FUOTA_MAXIMUM_FRAG_REDUNDANCY ?= 50

or

FUOTA_MAXIMUM_NB_OF_FRAGMENTS ?= 300
FUOTA_MAXIMUM_SIZE_OF_FRAGMENTS ?= 32
FUOTA_MAXIMUM_FRAG_REDUNDANCY ?= 50

?

Any guidance or clarification would be greatly appreciated.

Best regards,
Luiz

@lbm-team
Copy link
Contributor

lbm-team commented Jun 2, 2025

Hi Luiz,
Thank you for using the FUOTA package.

The firmware size is FUOTA_MAXIMUM_NB_OF_FRAGMENTS * FUOTA_MAXIMUM_SIZE_OF_FRAGMENTS, so your first proposition is correct.

FUOTA_MAXIMUM_NB_OF_FRAGMENTS ?= 250
FUOTA_MAXIMUM_SIZE_OF_FRAGMENTS ?= 32
FUOTA_MAXIMUM_FRAG_REDUNDANCY ?= 50

This FUOTA package is more like a file download to receive data using class B/C and/or multicast and store it in flash memory.

You need to implement your functionality/bootloader to flash new firmware if needed.

Best regards
lbm-team

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants