Hi everyone,
I am using the RAK3172 module and programming it with the Arduino IDE to create a LoRaWAN node. I power the system using 4 AA batteries combined with a buck regulator (switching regulator) to step down the voltage to exactly 3.3V for the RAK module.
However, after the batteries drained and I replaced them with new ones, I noticed that the program was no longer running. When I used STM32CubeProgrammer to read the Flash memory, I found that its contents had changed and no longer matched the original firmware.
I am not entirely sure of the exact cause, but I suspect that the gradual voltage drop during battery depletion corrupted the memory.
If my assumption is correct, I wonder if the RAK3172 has a built-in feature similar to a Brown-out Reset (BOR) to prevent this?
Welcome to RAK forum @HieuNguyen ,
- May I know what specific memory location that was changed?
- Do you suspect any routine in the code that possibly cause the memory change or it is random?
- Did the issue happened once or already multiple times?
Okay, I’m happy to.
-
I can read the corrupted file from address 0x8000000, but the Arduino rebuild file can only be read from address 0x8006000. So I compared from that address.
The result is that some bytes are different at very random points. Some sections are completely wrong. -
My code doesn’t have any part related to flash memory. So I don’t think it’s affected by the code.
-
This is the first time I’ve experienced this. I’m using two nodes and both are experiencing the same issue. (I haven’t compared the firmware of these two nodes after the error to see if they’re the same.)
