Helium Mapper & Helium Mapper Kit

i did buy two kits
1- Helium Developer Kit | Support Helium Regions EU868, AU915, US915, AS923
2- Helium Mapper Kit | Helium Mapper Kit 1 / US915

after an intensive search, I still don’t know how to figure it out flash those boards or make the helium mapper.
i did follow the instructions to add the mapper to the console and I did, . actually, I added all three boards. since the developer kit includes 2 boards of RAK-5005-0 V1.
on youtube there is none, nobody documented or did a video on how to create one for the mapper.
so I need the community’s help here. to make one.

Please I would appreciate your input on this matter!

Welcome to the forum @XBlackLight

For the Helium Mapper you can find a tutorial here Make a Helium Mapper with the WisBlock

For WisBlock solutions we have guides in our Knowledge Hub and we have many examples in our [Github repo] (WisBlock/examples at master · RAKWireless/WisBlock · GitHub)

There is as well a Quick Start Guide in our Documentation Center.

Even most guides and tutorials focus on LoRaWan servers like TTN or Chirpstack, they work the same with the Helium Console (which is just another LoRaWan server)

Hello Bernd, im so lucky that you are the one who did answer me :wink:
I actually did follow your bootloader instruction for windows and it did work. i actually did that for all three boards.
but the link you sent me yes it shows the instructions to use only VS/ PlatformIO which I’m not that expert or even close to having the min knowledge.
but where I can put the 3 Device EUI msb , App EUI msb & App Key msb.
i seen something using arduino.exe and changing the values on that programming tool to the actual ones we take from console.helium.com

for example.
this example giving me page error. here what I think I’m missing, I need the code.
Download the example from https://github.com/RAKWireless/WisBlock/tree/master/examples/communications/LoRa/LoRaWAN/LoRaWAN_OTAA/ . The example will communicate with server in EU868, join type in OTAA. And send “hello” to server period.

The way Helium Mapper code is written is quite different from the examples in the WisBlock repo.
The concept is that the DevEUI, AppEUI and AppKey are not inside the code. Instead you use a terminal program or a BLE app on a phone to setup these credentials. That way you can use the same compiled code on many devices.

If you want to compile the Helium Mapper code in Arduino instead of PlatformIO, that is not a big problem.

  1. Create a folder named Helium-Mapper
  2. Copy the files from the src folder into the Helium Mapper folder.
  3. Rename the file app.cpp to Helium-Mapper.ino

Then you can open Helium-Mapper from Arduino IDE.
You will need to install some libraries to be able to compile it:

  • SX126x-Arduino
  • TinyGPSPlus
  • SparkFun u-blox GNSS Arduino Library
  • SparkFun LIS3DH Arduino Library
  • WisBlock-API

All of them are available in the Arduino IDE library manager.

But still, there is no place to setup the credentials inside the code, that’s not how the code works.

Hello Bernd,
i didnt have the chance to continue finishing up the mapper project due to welcoming a new baby to the family!
thankg God she arrived and I’m back to business!
can you please explain to me how to use a terminal program or a BLE app on iPhone!
app store lack of those goodies like google store!. if there is no other way, i will buy an android tablet not a big deal!.

also one question about the RAK5005 v.1 board. is there a way we can flash it, i cant see it anymore on Bluetooth devices. even i reset it?

Hi David,

You can flash the RAK4631 on the RAK5005-O only from Arduino IDE or PlatformIO over USB.

The steps are the same as I explained above.

Hey BeeGee, we’ve got some community members trying to proceed with this code and are receiving compile errors.

request for member 'reset' in 'g_task_wakeup_timer', which is of non-class type 'TimerHandle_t {aka void*}'

expression must have class type but it has type "TimerHandle_t"

Is there any correction that should be made to the code before building? Thanks for your help!

Welcome to the forum @ilovespectra

Sorry for that, I updated WisBlock-API library which is used in the Helium Mapper code, but the Helium Mapper code is not updated (not my sources).

Make sure in PlatformIO it forces to use the older WisBlock-API release:

lib_deps = 
	beegee-tokyo/SX126x-Arduino
	mikalhart/TinyGPSPlus
	sparkfun/SparkFun u-blox GNSS Arduino Library@^2.0.9
	sparkfun/SparkFun LIS3DH Arduino Library
	beegee-tokyo/[email protected]

==> beegee-tokyo/[email protected] is the important line.

Then it should compile.

I have a GNSS tracker code that can be switched between different formats, but I didn’t share it yet on Github.
It supports CayenneLPP, extended precision LPP, Helium Mapper format and LoRaWAN Field Tester packet formats.

Maybe time to release it to the open source.

EDIT

It should be **beegee-tokyo/[email protected]** without the apostroph

ah i see now, thanks so much for the help Bernd!

in app.cpp, replace

g_task_wakeup_timer.reset();

with

api_timer_restart(g_lorawan_settings.send_repeat_time);

Is it possible to connect RAK10701-H (Field Mapper for Helium) to TTN?

Yes it is possible via custom_mode.

RAK10701-H (Field Mapper for Helium) stopped connecting to the Helium. Field tester is within gateway range but it fails to connect. Used to work before. What could be the reason?

The Make a Helium Mapper with the WisBlock tutorial specifies a decoder. Is this decoder out-of-date? I receive an error,

“body”: “{“error”:“Invalid Device Latitude or Longitude Values for Lat: -164.80255 Lng: -3.97147”}”, “code”: 400,

Is there a new decoder?

Welcome to the forum @sluwplay

You refer to this:

There is no updated decoder, it should work unless Helium changed something.

Thank you for the response @beegee! My integration is working, but I am sending back lat, long values out of range.

Here is my uplink debug:
{
“category”: “uplink”,
“description”: “Unconfirmed data up received”,
“device_id”: “c1f3675e-5c84-4737-9d97-4e375087af7b”,
“device_name”: “rak_helium_mapper”,
“id”: “2a02274f-4b93-4e98-9fdd-faf323b67de6”,
“inserted_at”: “2023-08-16T19:53:45”,
“organization_id”: “4ecfa457-ce76-464a-b199-de38008ec038”,
“reported_at”: “1692215625515”,
“reported_at_naive”: “2023-08-16T19:53:45”,
“router_uuid”: “0612a0c0-e1b1-4990-8c10-2eaa5f71d042”,
“sub_category”: “uplink_unconfirmed”,
“updated_at”: “2023-08-16T19:53:45”,
“fcnt_up”: 8,
“raw_packet”: “QDEAAEgACAACaKBoO2ajNHf9ktwQJDraU61QtTJbUnLwJ6/5jceWV6VPeQ==”,
“payload”: “AYgEhqTw+dEAe+gCAgF7A2hUBGcBCgVzJiQGAgGO”,
“payload_size”: 30,
“port”: 2
}

{
“id”: “6a8ae234-6daf-4406-afe5-8531ba6c42be”,
“name”: “mappers_integration”,
“status”: “success”,
“decoded_payload”: {
“accuracy”: 7.44,
“altitude”: 31488,
“battery”: 0.258,
“latitude”: -164.80255,
“longitude”: -3.97148
}
}

The lat, long are not correct. And the order is different than the decoder.

Looks like everything is wrong in the decoded output.
I don’t think you are living 31km above the earth, or do you?

I think the problem here is that your Helium Mapper is not sending the correct payload. Looking on the payload I think that is a CayenneLPP decoded payload, not the “special” Helium Mapper payload.

Btw, this thread is about the RAK10701 Field Mapper, not about the Helium Mapper Kit

This two are complete different devices and have very different payload formats.

Thank you, I setup my decoder as custom instead of Cayenne. I am using the RAK10700.