RAK5010 custom firmware best strategy

Hello everyone,

I’m new to RAK and in embedded systems in general, I want to build a GPS tracker that is configured through BLE & a web interface with:

  • sleeping interval
  • activate/deactivate some sensors
  • activate/deactivate wake up interrupt on movement with sensitivity threshold
  • MQTT downlink (BG96 URC) should trigger a fonction to update the tracker settings
  • activate BLE only when user button is pressed

Can a customized RAK firmware with the RUI API do that?

If not, which “low-power device” firmware would you recommend?

  • Does the Arduino firmware support the same power-saving sleep mode?
  • Is the RAK5010 compatible with Zephyr RTOS? I’ve seen it supports nRF52840-PCA10056
  • Is Espruino a better fit with Javascript event-loop for this kind of project?

Thank you very much

Hi, you can refer our develop guide:
https://doc.rakwireless.com/developer-tools/developer-tools/-

Hi Nero, thanks for your time and happy new year!

I’ve some questions regarding the RUI API that might interest other people too:

  1. Is it possible to wake up with the RING pin when there is an SMS / MQTT message in the downlink while the device is sleeping? coud you please post an example of that?

  2. Is the function rui_cellular_register_recv_callback used to handle URC messages coming from MQTT / SMS? could you please post an example of that?

  3. Is there a way to change the behavior of the Power Button like this?

  • Short press = activate BLE (for configuration)
  • Long press = reboot
  1. Is the source code of the RUI API available online? so I might ask less questions…

Thanks for your help

PS: here is a flowchart of what I want to accomplish, please let me know if it’s not possible with RUI API:

Q1:If it is sleep, bg96 will power down. So it need external interrupt to wake up or creat a timer. And I am not clear what RING pin mean?
Q2: This api will be cancelled later. It is redundant. You can use rui_cellular_response to recieve messages.
Q3: The powerkey is only used for mcu reset. The other is for bg96 reset.
Q4: You can refer the app code on https://github.com/RAKWireless/Products_practice_based_on_RUI
. But the source code is not open now.

What plan is your project? If it is not urgency, RUI 4.0 will be a big improvement.

1 Like

Thank you,

The BG96 has a RING pin (BG96_RI => P0.27) , and it should be used as an interrupt when there is SMS/MQTT data arriving.

  1. While mcu is sleeping, is it possible to keep the BG96 power on with eDRX? that will trigger an interrupt on the RING pin when SMS/MQTT is coming and wake up the program

  2. Do you have an idea when the RUI V4 will be released please?

  3. Is it possible to use the “BG96 reset button” as a user button please? I want to use it to activate BLE for 60 secs

OK, I see.
I have checked the circuit diagram, RING pin is P27. You can use it.

Q1:We want to make the lowest power. So not support sDRX mode now.
Q2:The time is not confirmed. It is developing now.
Q3:The button is only for reset. I think you can achieved in code for this function.

If your project is very urgent, we have a early RUI 1.0 open source code.

Thank you,

I’m will try my best with the RUI v1 and Arduino.

Hi @Pierre, I am working with Zephyr RTOS on my RAK5010 board. I will start the BG96 driver development today. I will open the code for contribution on github.

Hi @phmguizardi, that’s a great news, thank you for the info, I’m following your repo on github!

1 Like

Hello, Salut, @Pierre ,

I’m new with Rak devices and look for the best strategy to start development of a custom firmware to make basic gps tracking device.

I find your post very useful and I would like to know if you have found a solution and benefit from your experience?

Thank you in advance.

Hi @toni,

Unfortunately the tracker is “rebooting” most of the time when it needs to transmit data over the network, I believe there is a design flaw regarding the power management, the antenna drains too much power while transmitting.

Then, the device enters an “unstable” state where you need to remove the sim card, otherwise it will keep rebooting non-stop…

Espruino seemed to bring the best prototyping platform for dev.

My overall experience with RAK wasn’t great, and I won’t recommend you to build your business on it.

Hello @Pierre,

Thank you for sharing your experience.
Did you have an other board reference to recommend?

Best regards

I tested the Nordic Thingy91 but the GPS antenna is very bad… however I would recommend you to look for boards developped with the nRF9160 chip, the Segger IDE with Nordic debug tools are the best.

Maybe this one, but never tried: https://www.actinius.com/icarus

Thank you. I will try.