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