RAK3172 Module No Longer Response after Re-uploading hex firmware through STM32Cube

Hi Rakwireless,

I am new in trying out RAK modules and currently I am building applications based on RAK3172 module.

The RAK3172 modules initially run properly after uploading latest bin firmware through Device Firmware Upgrade Tool v1.4 and I can upload different codes to test different functions. However, after several trials with re-uploading RUI3 hex firmware through STM32CubeProgrammer (due to no serial response in some of the testing codes), the modules no longer response with any AT commands or code uploading from Arduino IDE. Even if I try to detect the modules with WisToolBox, the “Your device may not be fully synced” warning appears and switching to AT mode function results in fail error.

I have tried switching fw versions and all of them can be uploaded to the module, but the AT and code upload functions are still not working. This situation might be similar to this post and I have tried running at+run after uploading the fw and pulling boot0 down back. Still, none of them response with code uploading procedure. Is this an abstract problem? It seems that this is a pretty rare case in the forum.

Thanks.

Information for software configuration and version:
Arduino IDE: v2.0.4
Arduino Rakwireless RUI STM32 Boards: v3.5.3

FW file version tried:
RAK3172-E_latest_final.bin
RAK3172-E_latest_final.hex (v4.0.0 from download center)
RAK3172-E_RUI_3.4.11_final.hex
RAK3172_v1.0.4_Boot+App_20220218.hex (AT commands responsed in 9600 baud rate, but code uploading still failed)

Procedure for my testing:

  1. Connect BOOT0 to 3v3
  2. Connect module with STM32CubeProgrammer (via UART2, 115200 8E1)
  3. Download the firmware file listed above
  4. Disconeect STM32CubeProgrammer
  5. Connect BOOT0 to GND
  6. Open Serial Monitor with Arduino IDE (same COM port and UART, 115200 NL&CR)
  7. Run at+run, at, AT+BOOT with at+run commands
  8. Upload custom codes and example codes

Welcome to RAK forum @EFung_IFS ,

It seems you really did a lot of experimentation on you RAK3172. With regards to your issue, I think the only one missing is fully erasing the chip using STM32CubeProgrammer before uploading a new .hex file. This usually solves unusual behavior specially if the firmware moves from different versions and from legacy-to-RUI3 vice versa.

The STM32CubeProgammer via UART bootloader of STM32WL chip is pretty robust and reliable. I can only experience failure if the chip is already damaged physically/electrically.

1 Like

Hi there I’m the OP of the post you’ve linked :sweat_smile::rofl:

Eventually I solved the issue by rolling back the fw version to RUI 3.5.1. You can find the firmware here: GitHub - RAKWireless/RAKwireless-Arduino-BSP-Index at staging

I have no clue what causes this issue but so far this fix has worked.

Also worth noting is that the 3172 functions fine even if I can’t communicate with it (as a standalone RUI3 device that is). So at this point I’m just going to leave it because I no longer require testing and debugging of my code. No really a solution but I am at my wits end :rofl:

I would suggest try flashing all of the RUI3 firmwares to your board and checking serial AT cmds after each flash. Perhaps one might just suddenly work for you.

Cheers and good luck!

1 Like

Thank you @carlrowan and @RCPilot1604 ! :laughing:

Just tried Full chip erase in STM32CubeProgrammer and it worked normally again. I re-uploaded the latest fw .hex file this time. Perhaps this issue is unrelated to the fw version?

Anyways, I will try the other versions later, probably after finishing my project though. Thanks a lot! :smiley: