Overview
In this article:
Overview
TagoIO is an IoT cloud platform designed to transform how businesses generate value from connected products and user interactions. It provides a highly customizable suite of tools for your business to manage devices, store data, perform analytics, and integrate services, offering specific functions tailored to your application's needs.
The following Myriota platforms are supported:
UltraLite Developer Kit (UL DK / Devkit)
FlexSense - UltraLite Solution
HyperPulse Developer Kit (HP DK / Devkit)
HyperPulse AssetHawk
For FlexSense devices, the TagoIO dashboard is automatically generated upon registration via the FlexAssist Mobile App. You can find the TagoIO dashboard link directly in your Device Manager. For other devices, you will need to manually complete the integration process.
A customizable dashboard template is provided within the FlexSense chapter for users who require personalization of their setup.
Register Your Account
TagoIO offers a free plan that allows you to set up and test your Myriota integration at no cost
Please complete your registration with TagoIO before returning to continue with this tutorial. Once registered, log in to your TagoIO account and take a moment to familiarize yourself with the landing page.
Configuration
Add a Device
To begin setting up TagoIO, you must first add a device. On the Devices page, click on the "+Add Device" button.
In the search bar, look for Myriota and then select "Custom Myriota" to proceed.
Give your device a name and enter its unique identifier. Use the Module ID for Myriota UltraLite devices. For Myriota HyperPulse devices, use either the IMSI or Serial Number, depending on which was used during registration.
Generate Token
From here, you'll need to generate an authorization token. This secure string allows you to send data to your device on TagoIO. Assign a name to your token, then continue with the remaining prompts.
The Authorization Token you generate is for your TagoIO account and is only required once. You only need to generate it if you haven't done so already.
You can copy the Myriota Authorization code (TOKEN) from the table that is associated with your device.
Configure Device
Click on the device you just created to enter the device configuration page.
Add Parser
The parsing process depends on the specific application installed on your device. To proceed, enable the "Run your own parser" option. Then, following the provided instructions, copy and paste your parser for the Myriota device into the editor as shown below. Finally, click Save in the bottom-right corner to apply the changes.
Add Tags
Tags are used to group devices, which allows multiple devices to be easily added to a single BluePrint dashboard.
UltraLite Devkit Configuration
The Myriota UltraLite Devkit is an evaluation device designed to help developers quickly connect to the Myriota UltraLite network.
The default application loaded onto the device is a tracker that transmits three messages per day, with each message containing four location readings. The firmware source code is available here for your reference. A Python unpacking tool is included with the application; however, a TagoIO parser is not provided as standard (as this is example firmware).
Therefore, please use the Parser and Tag below to enable visualization of your device's data within TagoIO.
Parser:
const raw = payload.find(x => ['payload_raw', 'payload', 'data'].includes(x.variable));
if (raw) try {
const b = Buffer.from(raw.value, 'hex'), seq = b.readUInt16LE(0), count = b.readUInt8(2);
const data = [
{ variable: 'sequence_number', value: seq },
{ variable: 'location_count', value: count },
...Array.from({ length: count }, (_, i) => {
const o = 3 + i * 12, lat = b.readInt32LE(o)/1e7, lon = b.readInt32LE(o+4)/1e7, ts = b.readUInt32LE(o+8), t = new Date(ts*1000).toLocaleString();
return [
{ variable: `lat${i+1}`, value: lat },
{ variable: `lon${i+1}`, value: lon },
{ variable: `timestamp${i+1}`, value: t },
{ variable: `location_${i+1}`, value: 'Location', location:{lat,lng:lon}, metadata:{timestamp:t} }
];
}).flat()
];
const names = new Set(data.map(d => d.variable));
payload = payload.filter(x => !names.has(x.variable)).concat(data.map(x => ({...x, serie:raw.group, time:raw.time})));
} catch(e) {
console.error(e);
payload = [{ variable:'parse_error', value:e.message }];
}Tag:
Key: ultralite_tracker
Value: default
FlexSense Configuration
When registering a FlexSense device via the FlexAssist Mobile App, the parser and dashboard are created automatically for a quick setup. However, if you prefer to create your own customized TagoIO integration, you may refer to the detailed information provided below.
The default firmware programmed on the Myriota FlexSense is a tracker example, pre-loaded at the factory to offer a quick start experience. Note that as a commercial product, FlexSense's message format is optimized for data efficiency and is not interchangeable with the format used by the UltraLite Devkit.
Parser:
You can find the parser for the default application here.
Alternatively, you can load the 4-20mA or Pulse Counter examples onto the device and use the corresponding parser to suit your application needs. The prebuilt binaries and corresponding parsers are available in Myriota Device Manager.
Tag:
Key: flexsense
Value: default
HyperPulse DK Configuration
The Myriota HyperPulse DK (Developer Kit) is intended for evaluation purposes only and is not a commercial-ready product.
Its default application message includes key telemetry data such as altitude, temperature, and battery voltage. To successfully integrate and interpret this data within your solution, a custom parser is required. Please use the Parser and Tag provided below to enable data visualization.
Parser:
const raw = payload.find(x => ['payload_raw', 'payload', 'data'].includes(x.variable));
if (raw) {
try {
const buffer = Buffer.from(raw.value, 'hex');
const receive_epoch = new Date().getTime();
const timestamp = buffer.readUInt32LE(4);
const date = new Date(timestamp * 1000);
const latency_s = Math.floor(receive_epoch / 1000) - timestamp;
payload = payload.concat([
{ variable: 'seq', value: buffer.readInt32LE(0) },
{ variable: 'lat', value: buffer.readInt32LE(8) / 1e7 },
{ variable: 'lon', value: buffer.readInt32LE(12) / 1e7 },
{ variable: 'alt_m', value: buffer.readInt16LE(16), unit: "m" },
{ variable: 'alt_ft', value: Math.round(buffer.readInt16LE(16) * 3.28084), unit: "ft" },
{ variable: 'location', value: "Location", location: { lat: buffer.readInt32LE(8) / 1e7, lng: buffer.readInt32LE(12) / 1e7 } },
{ variable: 'temperature_c', value: buffer.readInt8(18), unit: "°C" },
{ variable: 'temperature_f', value: Math.round(buffer.readInt8(18) * 1.8 + 32), unit: "°F" },
{ variable: 'batt_volt', value: (buffer.readInt16LE(19) / 1000).toFixed(1), unit: "V" },
{ variable: 'receive_time', value: new Date(receive_epoch).toLocaleString('en-AU') },
{ variable: 'latency_s', value: latency_s },
{ variable: 'latency_m', value: (latency_s / 60).toFixed(1) }
].map(x => ({ ...x, serie: raw.serie, time: date })));
} catch (e) {
console.error(e);
payload = [{ variable: 'parse_error', value: e.message }];
}
}Tag:
Key: hyperpulse_dk
Value: default
HyperPulse AssetHawk Configuration
The HyperPulse AssetHawk is a product that operates on the Myriota HyperPulse network. You can find the detailed message format on the AssetHawk Documentation page.
Parser:
const raw = payload.find(x => x.variable === 'payload')?.value;
const data = [].concat(raw || [])[0];
if (data) {
const time = data.time ? new Date(data.time * 1000) : new Date();
const units = { battery_voltage: 'V', temperature: '°C', elevation: 'm', soh: '%' };
payload = Object.entries(data)
.filter(([k]) => k !== 'time')
.map(([k, v]) => ({ variable: k, value: v, time, unit: units[k] }));
if (data.latitude != null && data.longitude != null) {
payload.push({ variable: "location", value: "AssetHawk", location: { lat: data.latitude, lng: data.longitude }, time });
}
}Tag:
Key: asset_hawk
Value: default
Link Data in Device Manager
Now, open your Device Manager and create a new HTTP destination.
Specify the URL as:
https://myriota.middleware.tago.io/uplink?authorization=TOKEN for United States East 1 Server accounts
or
https://myriota.middleware.eu-w1.tago.io/uplink?authorization=TOKEN for Europe West 1 Server accounts
Here, TOKEN must be replaced with the Authorization Token you generated earlier (the secure string starting with "at").
For example:
https://myriota.middleware.tago.io/uplink?authorization=at9a53c1b6276d4c71a5f5f5164c94ec24 for the US server
or
https://myriota.middleware.eu-w1.tago.io/uplink?authorization=at9a53c1b6276d4c71a5f5f5164c94ec24 for the EU server
Within the Device Manager, navigate to your specific device and assign the destination you have just created to it. This completes the connection.
Create Dashboard
To help you get started quickly, we've prepared pre-configured dashboard templates that you can easily copy and paste. Simply refer to the template links provided below.
Using the tracker template as an example, you can follow the detailed steps outlined in the next section. The setup process for other devices will be similar.
Install Template
While logged into your TagoIO account in your browser, copy the relevant template link below and paste it directly into the address bar. You will then be prompted to install the dashboard template into your active account and profile.
| Device | Firmware | Template Link for United States East 1 Server | Template Link for Europe West 1 Server |
| UltraLite DK | Tracker | https://admin.us-e1.tago.io/template/68a54481c42a1d000a7f4baf |
https://admin.eu-w1.tago.io/template/68a54481c42a1d000a7f4baf?host=api.tago.io |
| FlexSense | Tracker | https://admin.us-e1.tago.io/template/66ac7ef66da830000993bc0f |
https://admin.eu-w1.tago.io/template/66ac7ef66da830000993bc0f?host=api.tago.io |
| 4-20mA | https://admin.us-e1.tago.io/template/69643c38917a4f00098c779d |
https://admin.eu-w1.tago.io/template/69643c38917a4f00098c779d?host=api.tago.io |
|
| Pulse | https://admin.us-e1.tago.io/template/691d0437940bae000b45cc91 |
https://admin.eu-w1.tago.io/template/691d0437940bae000b45cc91?host=api.tago.io |
|
| HyperPulse DK | Demo | https://admin.us-e1.tago.io/template/68a5413e8624bd000aaed93a |
https://admin.eu-w1.tago.io/template/68a5413e8624bd000aaed93a?host=api.tago.io |
| AssetHawk | Default | https://admin.us-e1.tago.io/template/68df653970d93c001107581a |
https://admin.eu-w1.tago.io/template/68df653970d93c001107581a?host=api.tago.io |
Associate Device
Associate the device you have just created with your dashboard.
Your empty dashboard will be ready to receive data.
Once data is successfully received from your device, the dashboard values will automatically update to reflect your location and telemetry, assuming all previous steps were followed correctly.
Test Destination
The Test Destinations feature in the Myriota Device Manager allows you to send a simulated message directly from your browser to the Myriota Cloud. This enables you to verify that your destination setup (data link) is working correctly without waiting for a real satellite transmission from the device.
1. Enable Live Inspector
Click on the device on TagoIO and enable the Live Inspector
2. Send a Test Message
In Device Manager, select the device you created, click the Test Destination button, and then input the data or copy the historical messages from your device into the required field.
Example Message Payloads:
| Device | Firmware | Example Message Payload |
| UltraLite DK | Tracker | 000004d28b2feb0a059e5218dea769c68d2feb9a069e5238faa769428a2febdd039e525816a8699a8c2feb16039e527832a869 |
| FlexSense | Tracker | 006fdda769d28b2feb0a059e52c409cccccccccc |
| 4-20mA | 00a0e1a769d28b2feb0a059e52e609a00fcccccc |
|
| Pulse | 0080e6a769d28b2feb0a059e520a00cccccccccc |
|
| HyperPulse DK | Demo | 000000006fdda769d28b2feb0a059e520f0019740e |
| AssetHawk | Default |
0123456789ABCDEF (Live Inspector only)
|
3. Confirm the Result
You should see the message content appear in the Live Inspector and on the dashboard (except for AssetHawk). If the test message does not appear, please double-check that all the steps above were followed correctly, or contact Myriota Support with details of the issue you are experiencing.
