Need Help: RAK5010 Arduino/Zephyr – LED Blink, Onboard Sensors (I2C), BLE Gateway, and OTA Update for Fleet Deployment

Hi all,

I’ve just joined a company that uses the RAK5010 board (BG95 version) for IoT deployments—we have over 200 units in the field. My goal is to update the firmware on all boards to support:

LED blink (for basic testing)

Reading all onboard sensors (temperature, humidity, accelerometer, etc.) via I2C

BLE gateway functionality

OTA (over-the-air) update support

I’ve tried both Zephyr and Arduino frameworks and run into roadblocks with both:

Zephyr SDK Attempts:

I can turn the green LED on/off and read the I2C bus address, and get serial output via RTT.

However, I cannot fetch data from the onboard temperature sensor or other sensors.

Arduino Attempts:

I flashed the Adafruit Feather nRF52840 Express bootloader and selected that board in Arduino IDE.

Serial output works, but I cannot get the LED to blink or access the onboard sensors (I2C scanner shows no devices, SHTC3/other sensor libraries fail to initialize).

What I Need:

A working example or guidance for:

Blinking the onboard LED

Reading all onboard sensors (especially temperature/humidity)

Using BLE as a gateway

Enabling OTA updates (for mass firmware deployment)

Advice on the best framework (Zephyr or Arduino) for reliable, maintainable development and OTA updates for a large fleet.

Any official or community-supported board support packages, libraries, or documentation specific to RAK5010 for these features

Welcome to the forum @arjun

There is not much about the RAK5010.

(1) RAK Github: Arduino-on-Rak5010-

(2) Here in the forum: Arduino on Rak5010!

(3) Github search for RAK5010

Hi @arjun ,

If you are working with Zephyr and need all those features like BLE Gateway, OTA Updates, etc., you can consider to use Golioth.

It is an extra service that can handle those features. This is the software layer we cannot provide to you but Golioth can possibly do. I haven’t used their platform yet but as I read their docs/blogs it should be able to support your requirements.

Maybe you can have a look.

PS Golioth is an external company not RAK. I just know them as I met them before in embedded world.

Thank you for the links and info! I checked some of the content and will look into it further—thanks for the suggestions!

Thanks for the suggestion, Carl! I’ll check out Golioth and update here with my results.

Also, do you have any guide or example for interfacing an OLED display (0.96" or 1.3" or 1.5") with the WisTrio RAK5010 nRF52840 board on any platform (Zephyr, Arduino, or others)? I noticed the board has some external IO headers—can these be used for I2C with an external OLED? Any pin mapping or code example would be very helpful. Thanks!

from one of link today i test sensor code and it is working,

but what i found it is not able to give GPS data and not able to see it Bluetooth name
Bluefruit.setName(“Rak5010”);
so suggest what i am missing to test both of this.
thanks

Hi,
I been through lot of articles on rak website about rak5010 documentation, can you suggest me any guide so I can upload, test basic codes like sensor values GPS coordinates, and i also need to interface OLED 0.96 but I am not getting any help. Using Arduino farmwork I got sensor values but not getting GPS and OLED working,

Hi @arjun ,

It seems your I2C are working ok. Are you using Adafruit’s BSP or RUI3 from RAKwireless?

As for the GPS, you should be able to get it from the RAK5010 via AT commands.

I have this rak5010 board version 2 please check.

Hi @arjun ,

I did some experiments using old guide of Nero and it works oks - Arduino on Rak5010!

This one uses adafruit BSP which has a mature arduino implementation.

You have to replace the variants.h file with the one provided on the guide.

Then I used the I2C and connect to it via testpoints. I think this is a faster way than using IO1 and IO2 which will require you to have pull up resistors.

For OLED, I test using Adafruit library. And for the Cellular GPS, I haven’t tried anything yet but there must be library available to capture it. The Serial mapping is already on the guide by Nero.

I’ve recorded a video of OLED test here - https://youtu.be/5i2A9lwfHso

so can you share code what you used for oled.

i have changed it variant.h. and also test sensor values with its code.

or let me know which changes i need to do.

thank you so much for this help.

I already told you what you need.

Use the guide of Nero on the link above so your RAK5010 will work on Adafruit BSP. There is nothing more to that.

Chang this variant.h.

Then this is the board you should select.

Here’s the OLED library I used which is from Adafruit as well.

But you need to solder the connection of I2C on the testpoints which I already provided above. Those testpoints are 1.8v logic level but it will work fine on the OLED.

For sanity check, test your OLED on another MCU if you have one. It can also be that your OLED might not be working on the first place.

For GPS, you can try this library. This is very common library that supports various cellular modules including the Quectel inside RAK5010 - GitHub - vshymanskyy/TinyGSM: A small Arduino library for GSM modules, that just works


Yes i have soldered sda scl pins, after test inlet you know
Thanks


Yes its working now,
Thank you so much.

1 Like

thanks my GPS code is also working.
I have test all sensors, GPS and OLED.
thanks you so much for this help.

now i need to look BLE Gateway, and OTA updates.

please suggest me how can i start and test codes.
can you also suggest battery voltage level test code.
Regards
Arjun