TTN Map does not show gateway Brand and Model as configured in TTN console

A while ago I noticed several gateways on the Things Network Map where Brand and Model shown are different from the values configured in TTN Console.

After months this is still the case. Could this be a bug in the TTN Map?

I don’t know if it is a bug or a feature, but the API returns the platform set in the packet forwarder configuration which is often set to “IMST + Rpi”…

In my Docker/balenaCloud setup I use an environment variable to set the platfrom…

If I remember correctly in the past (some year ago, maybe longer) Brand and Model were displayed on the map exactly as configured in TTN console. But this is no longer the case.
For my Raspberry Pi + RAK831 gateways I (now) see the following on the map:

Brand: Raspberry Pi DIY
Model: IMST

This is not what I have configured in TTN Console. The antenna details shown on the map are still taken from the TTN Console settings, while Brand and Model are not which is inconsistent and confusing.

I searched on one of my Pi + RAK831 gateways (including the original sources used for installation) for occurrences of string “Raspberry Pi DIY” but was unable to find one. I also searched for “IMST” but could not find any literal matches where it would be a value for ‘Model’.

The only related matches I found are:

  • In lora_gateway/libloragw/library.cfg: PLATFORM= imst_rpi
  • In lora_gateway/libloragw/inc/imst_rpi.h: #define DISPLAY_PLATFORM “IMST + Rpi”

Based on these results I conclude that somewhere on the backend Brand and Model are now derived from Platform but this does not reflect the actual hardware.
Seeing Model=IMST on the map for RAK based gateways is incorrect and misleading because it gives the impression that all these gateways are using IMST hardware while many (most?) are not.

It is important/relevant to be able to see the actual gateway hardware being used. Even from RAK there are already muliple concentrator boards available (e.g. RAK831, RAK833, RAK2245) with different hardware specifications. It would be incorrect to see all these listed as ‘IMST’.

I think for the map we should see Model and Brand as configured in the TTN console. If not then these parameters can better be removed from the console because they are not used (which is confusing) and details on the map will not reflect the actual hardware used.

Maybe @htdvisser or @kersing can give some more details on this.

I agree with you, this is a bit weird’ and this is because I introduce that change in my setup, that is to be able to set the right concentrator module.

Note that the “IMST + Rpi” string is a compile time option which gives a default value for the platform parameter in the packet forwarder. So you don’t have to recompile, you can just change your local config file and you are all set…

(And yes, it would be easier if it came from the console)

Does the packet forwarder only send the PLATFORM and/or DISPLAY_PLATFORM parameters and does the backend translate PLATFORM or DISPLAY_PLATFORM to Brand and Model (and how)?
Is a known reference list of platforms centrally available or is some (arbitrary string) conversion performed on PLATFORM or DISPLAY_PLATFORM to determine Brand and Model?

Or does the packet forwarder do the translation to Brand and Model and send these as parameters to the backend?

I used an older version of @CharlesLoraGW-Setup for the installations. My installations have a single configuration file: global_conf.json.

What parameters would I have to set in the configuration file to get Brand and Model correctly listed on the TTN Map?

Something like:

    "gateway_conf": {
        "gateway_ID": "XXXXXXXXXXXXXX", 
        "platform": "rak831_rpi", 

or something like:

    "gateway_conf": {
        "gateway_ID": "XXXXXXXXXXXXXX", 
        "platform": "RAK831 + RPi", 

or something like:

    "gateway_conf": {
        "gateway_ID": "XXXXXXXXXXXXXX", 
        "brand": "DIY Craftsmen", 
        "model": "Raspberry Pi with RAK831", 

There is a basic global_conf.json.sample example file in the packet forwarder sources but neither the actual configuration file nor the example contain platform, brand or model parameters.

Now I managed to confuse myself…

Re. the platform thing, it comes through the API from the config file – e.g. I have:

    "gateway_conf": {
        "platform": "IOTLGW RPi", 


$ curl -s | jq .platform

So that is consistent…
… but it is not what I have on the chart:

The Model is what I entered in the console

So I am lost as well :roll_eyes:


Apparently some automagic translation occurs on the backend from platform to brand and model.

Maybe @htdvisser can explain how the brand and model shown on the map are determined.