RAK11310 Core bricked after uploaded using PlatformIO

I were trying to study Deep Sleep example by uploading the example code from: GitHub - beegee-tokyo/RAK11310-RAK1906: WisBlock RAK11310 with RAK1906 Environment Sensor for LoRaWAN with AT Command Interface

After I follow the setup procedures as indicated in above link, I can see the code is successfully uploaded as shown below:

But when I tends to see any return message from the terminal, it show none.

When I switch back to Arduinio IDE and try to understand if the CPU is working, The serial monitor is freeze when I plug in the RAK11310 into my USB.

To elaborate what does it means by “freeze”, when I run serial monitor (or any thirds party terminal program), it just freeze and does not run, until I unplug the USB cable, and the terminal program will continue operating. I also need to mention that, when RAK11310 is plug into my USB port, the system can detect the port successfully.

So I try again upload an simple example code to RAK11310 using Arduino IDE and check again, and this time, RAK11310 no longer works. The code can be complied successfully but fail to upload to the CPU.

May I know if my RAK11310 is “bricked” and why? and is there anyway to “unbrick” the RAK11310 board?

Due to above incident, I have “lost” two RAK11310 boards, so I would like you to explain what is going on before I continue my board testing using PlatformIO again. Thanks.

It could be the code you uploaded is crashing and the RP2040 is not working.

Try either of

  • press white button on RAK11310
  • push reset button twice
    to bring the RAK11310 into bootloader mode. It will show up as external drive on USB. Then you can upload new code either from Arduino IDE or by dragging the generated UF2 file to the external drive.

Thanks @beegee , I will try again and feedback the outcome over here for that other new users can learn from my mistake.

Dear @beegee I have pressed the white button on the Core board and it does not respond. But if I press RESET button twice from RAK19003 based board (that attached to my Core board), the virtual drive will pop up, and Arduino able to upload the code to the CPU. I am not yet checking if what I have encountered when I upload to PlatformIO that using the Deep Sleep example you have provided. I will feedback here if this issue can be duplicate.

after a few hours of trying, I realize that is some issues that may need your attention.

If a RAK11310 board is uploaded using PlatfiormIO (which is successfully uploaded), and if Arduino IDE is used to program the same board again, it will fail to upload (at lease for the first time), and I have tried double click the RESET button on the base board, unplug the USB and close and reopen the Arduino IDE, with difference combination, and it upload eventually.

Once Arduino IDE is successfully upload the code for the first time, if repeat again the same process using Arduino IDE again, it will be able to upload all the time (without double click the RESET button on the base board twice).

The following sequences are what I have been trying:

  1. plug in USB, let the PC detect the port, double click the RESET button, let the virtual drive pop out, run Arduino. it fail.
  2. Plug in USB, let the PC detect the port, open Arduino, upload the code, Virtual drive pop out and close, and it fail to upload.
  3. repeat again step (2), and it works this time.

One thing to take note, the WHITE button on the RAK11310 core board never works and do not know what actually is the function of this button.

Obviously this inconsistent issue happen after the platformIO source code is loaded, as I can do the uploading by switching Arduino IDE to PlatformIO, without issue, but if a board is programmed using PIO before, if the same board is switched to Arduino, then I face the issue as described above.

This issue should be able to be duplicated easily. Just program a RAK11310 with PIO, and program again with Arduino, you will find it fail to upload (under Arduino environment), and user need to go through some reset sequence to make it work again with Arduino IDE.

Please let me know if you can duplicate the same issue and let me know if this issue can be resolved. Thanks