Bytes in, readings out

LoRaWAN Payload Decoders

LoRaWAN payload decoder | ioX-Bridge | LoRaWAN Network Server
Bytes in, readings out

Your Sensor Sends Bytes. You Need Temperatures.

A LoRaWAN sensor transmits a handful of bytes to save battery, and those bytes mean nothing until something turns them into named values. That something is a payload decoder, and in ioX-Bridge it is attached to a LoRaWAN device profile, which holds the radio and protocol settings for a device model alongside the decoder for it.

There are two ways to get one. Pick your hardware out of the built-in catalog, where the decoder is already written and tested, or write your own. Most deployments are mostly the first and a little of the second.

  • A catalog of tested decoders, organized by vendor and model
  • Your own decoder in JavaScript when the hardware is not in it, or Cayenne LPP where the device already encodes that way
  • The raw bytes delivered alongside the decoded reading, so a decoder you got wrong is fixable against history
  • Set it once for a device model and every unit of that model uses it
  • Named values arrive in every delivered event, so what you receive is already readable

 

Most of the time, somebody already did it

Is Your Hardware Already Done?

ioX-Bridge ships a catalog of vendor templates: LoRaWAN device profiles for hardware already on the market, each with a decoder written and tested against the real device rather than against a datasheet. Find your vendor, find your model, and the sensor decodes correctly the first time it transmits.

That is the difference between a deployment that starts on the afternoon the boxes arrive and one that waits on somebody reading a payload specification. It also means the decoder is maintained rather than frozen: when a manufacturer changes a firmware payload format, the catalog entry is what gets updated.

ioX-Bridge Vendor Templates browser showing vendor and model device profiles Vendor templates
The Vendor Templates browser. Real vendors, real models, each with a decoder tested against the device itself.

Which vendors and models you see depends on your subscription. If you already know what you are deploying, send us the list and we will tell you what is covered before you commit to anything.

Some of our customers

Trusted by teams monitoring critical infrastructure

Tomra Full logo
ProFrac Logo
FTSI-logo
Consulmet logo
pacific_northwest_national_laboratory
Axium Logo
Urban Property Management_Logo
NetLink-logo-final
Cosway
USWS_BIG
Filtrine
Colt Energy
Northern Michigan University_Logo
WLS Lighting Logo

When it is not in the catalog

What It Takes to Write One

A decoder is an ordinary JavaScript function. It receives the payload bytes and the port the uplink arrived on, and it returns whatever named values you want out of them. Anybody on your team who can read a payload specification can write one, and a typical sensor takes a few lines. There is no proprietary language to learn and nothing to compile.

Devices that already speak Cayenne LPP need no decoder at all, because the format describes itself. Select it on the profile and the readings arrive named.

ioX-Bridge device profile: a JavaScript decode function on the codec tab
The codec tab on a device profile: a decode function and an encode function, nothing more.

If writing one is not work you want, send us the device and its payload documentation and we will look at adding it to the catalog.

Bring a Gateway Online

Try It With Your Own Payload

The fastest way to know whether this works for your hardware is to run one of your own uplinks through ioX-Bridge

Send Us Your Device List

Tell us the makes and models you are deploying and we will tell you which are already in the catalog and what the rest would take.

Talk to Us About ioX-Bridge

The mistake that is not permanent

A Wrong Decoder Is Recoverable

Decoders are wrong sometimes. A scaling factor is off by ten, a byte order is reversed, a firmware revision moves a field. On a platform that stores only what the decoder produced, you find out three months later and the three months are gone.

Every event ioX-Bridge delivers carries the raw payload alongside the decoded reading. Correct the decoder and the bytes you already have can be read again properly, because nothing threw them away. That is the difference between an afternoon of reprocessing and a gap in the record you have to explain to a customer.

ioX-Bridge device Events tab showing raw payload and decoded object side by side Raw + decoded
The device Events tab. Raw payload and decoded object side by side, kept together on every event.

Worth designing for at your end too. Keep what arrives, not only what you understood at the time.

Configure the model, not the unit

Set It Once for a Whole Device Type

A LoRaWAN device profile describes a model, not a unit. Assign it once and every device of that model behaves the same way: same radio settings, same decoder, same named readings. Adding the four hundredth sensor of a type you already run is choosing its profile from a list.

The same thing works in reverse when something needs to change. Correct a decoder on the profile and every device using it is corrected at once.

What you configure

One profile

Radio settings, decoder and named readings, defined against the model.

What it applies to

Every device of that model

The first one and the four hundredth, onboarded and corrected the same way.

Radio-level settings are the one exception. Those take effect for each device the next time it joins, rather than immediately.

Where it connects

Decoding Straight Into ioX-Pulse

Some catalog profiles carry a second decoder built for ioX-Connect's own format. Switch it on and readings arrive in the shape the platform above already expects, so there is no translation layer between the network server and the application your customers log into. Leave it off and you get the standard decoder, which is what you want if the data is going anywhere else.

That platform is ioX-Pulse: device management, dashboards, alerting, and customer accounts you can put your own brand on.

ioX-Pulse showing a leak sensor and valve dashboard
ioX-Pulse, receiving decoded readings with nothing in between.
Answers to the questions we get most

Common Questions About LoRaWAN Payload Decoding

If your question is not here, email sales@iox-connect.com and you will get a straight answer

Probably, if it is hardware that is generally available. ioX-Bridge carries a catalog of vendor templates organized by vendor and model, each with a decoder tested against the real device, and which vendors you see depends on your subscription. If your model is not in it you can write your own decoder, or send us the device documentation and we will look at adding it. Send us your device list and we will check before you commit to anything.

It is a small piece of code that turns the bytes a sensor transmits into named readings. LoRaWAN devices send very short messages to preserve battery life, so a temperature might arrive as two bytes that mean nothing on their own. The decoder knows that device's format and returns something usable, like a temperature and a humidity, which is then what gets delivered to your application.

 

Only if your hardware is not already in the catalog, and then not much of one. A decoder is a plain JavaScript function that receives the payload bytes and the port and returns named values. Anybody who can read the payload section of a sensor datasheet can write one, and most sensors take a few lines. There is no proprietary language and nothing to compile.

 

Yes. If your device already encodes in Cayenne LPP, select it on the LoRaWAN device profile and no decoder is needed, because the format describes its own fields.

 

You fix it, and your history survives. Every event carries the raw payload alongside the decoded reading, so once the decoder is corrected the bytes you already received can be read again properly. Platforms that store only the decoded output turn a decoder mistake into permanent data loss; this one does not.

 

Yes, and that is the point. A LoRaWAN device profile describes a model rather than a unit, so correcting the decoder corrects every device using that profile at once. Radio-level settings on the same profile are the exception and take effect for each device at its next join rather than immediately.

 

No. A decoder receives the payload bytes and the port and nothing else. Signal strength and noise are delivered alongside the decoded reading in the same event, so your application can use them, but the decoder itself cannot see them.

Bring us the odd one

Ready to Get Your Sensors Talking?

Send us your device list, including the obscure one you are worried about. We would rather tell you now than have you find out during a rollout.

LoRaWAN Device Management | ioX-Pulse

LoRaWAN Device Management

IoT Alerts and Workflows | ioX-Pulse | ioX-Connect

IoT Alerts and Workflows

Multi-Tenant IoT Platform | ioX-Pulse | ioX-Connect

Multi-Tenant IoT Platform