Helium Console Integration

This is the first step to using my mappers service.

After you RAK based mapper is onboarded in Helium Console, you will need a decoder function and an integration, to send data to the backend.

IMPORTANT: If you want to use RAK mapper as field tester, it is best to remove GPS sensor and accelerometer to prevent it from transmitting all the time on its own. The mobile app provides GPS data and accelerometer is not needed (there’s also a bug in factory bootloader that makes it too sensitive - fastest solution is to simply disconnect the sensor).

Decoder function

We will be using stock decoder function that works with RAK mapper and their factory supplied firmware.

If you use other software, you need to ensure your output field names match those below.

function Decoder(bytes, port) { 
    var sensor = {};    
    sensor.latitude  = (bytes[0] | bytes[1] << 8 | bytes[2] << 16 | bytes[3] << 24 | (bytes[3] & 0x80 ? 0xFF << 24 : 0)) / 100000;   
    sensor.longitude = (bytes[4] | bytes[5] << 8 | bytes[6] << 16 | bytes[7] << 24 | (bytes[7] & 0x80 ? 0xFF << 24 : 0)) / 100000;   
    sensor.altitude  = (bytes[8] | bytes[9] << 8 | (bytes[9] & 0x80 ? 0xFF << 16 : 0));  
    sensor.accuracy  = (bytes[10] | bytes[11] << 8 | (bytes[9] & 0x80 ? 0xFF << 16 : 0)) / 100;
    sensor.battery   = (bytes[12] | bytes[13] << 8 | (bytes[9] & 0x80 ? 0xFF << 16 : 0)) / 1000;
    return( sensor );
}

Integration setup

To make use of the system, you need to ensure it can send decoded data from the console to backend service. It is as simple as creating a new HTTP integration in the Integrations section of the console and pointing it to https://mappers.30x.me/

HTTP Integration

Data flow configuration

Final step is to link the mapper with decoder function and the HTTP integration. You can do that in Flows:

Flow configuration