Payload formatter migration


I believe the payload formatter information in is either misleading or wrong.

I had struggled for some time to try and convert my payload formatter from v2 to v3 without success. The above site was key in my attempts to migrate.

I started a thread here which has since been deleted for unkonwn reason where I asked for help on that. It turned out that the payload formatter from v2 simply needed to be pasted in to v3 without change. That contradicts the information at

I haven’t received any communication as to why my original post was deleted, but surely it’s useful for others to know this.


The system (the Discourse ‘bot’) deleted the topic but I can’t determine a reason why. I have restored it.

That said, I’m not sure I understand how the docs are wrong. It clearly states that you can just paste in v2 code:

In the grey callout box it starts: “Note: The format of The Things Network Stack V2 payload coders and decoders is still supported in The Things Stack.”

Can you give a little more detail on the phrase(s) that you feel are misleading or wrong so it can be passed over to the TTI documentation team.

Thanks Nick, your responses are much appreciated - I have thought I was going mad imaginging that original thread, finding no trace of it.

The bit which got me confused is the " Add your payload formatters and integrations" seciton which says “The format of The Things Network Stack V2 payload coders and decoders is still supported in The Things Stack. You only need to add one additional line to the function code used in The Things Network Stack V2 to make it fully compatible with The Things Stack.” and then gives the conversion example.

I read “You only need to” as the old format being supported providing you make that change. But in my case no change is required. I specifically needed my payload formatter left in the “old format”. Obviously I don’t fully understand the situation but it seems to me that in my scenario the value passed in to the formatter is the bytes, where as in the that page suggests the object passed in is an object containing a field that contains the bytes.


to make it fully compatible with The Things Stack.

Try reading the AD7193 data sheet and you’ll discover a whole new level of opaque.

It could potentially be clearer for sure. The analogy I use, sometimes for real, is to drink whilst debugging - it makes you more relaxed & experimental and open to re-interpreting what’s written.

Now to get an ADXL343 working on STM32, where’s the Whisky!