Skip to main content
How many steps?SevenTwo of them wait on the relay’s own radio cycle.
What gets flashed?Usually nothingThe demo is on every relay. Adsum IoT Coder updates both halves over Bluetooth.
Where do readings go?Your platformYour own tenant. Nothing of ours in the path.
What do you need to know?Nothing yetNo prior knowledge of the board or of Adsum IoT Coder.

New to the LBG20x?

The relay, what the firmware does, and every way to have it.

What you are building

The LBG20x is a relay for outdoors. It listens for small Bluetooth sensors around it, keeps what they say, finds its own position, and forwards what matters over Wi-Fi, a mobile network or satellite to a platform you choose. Nothing you do here writes any of your data to Adsum.

The hardware

The LBG20x is made and sold by Fanstel. This guide was verified on an LBG20BC02C, the model with Wi-Fi; the LBG20BC runs the same image. The important thing to understand before you touch it: this relay is two computers, not one, and almost every confusing moment in a first run comes from forgetting that.
Sensors advertise to the Bluetooth half, which passes digests over a two-wire link to the wide-area half, which sends them over the mobile network to your platform.Sensors advertise to the Bluetooth half, which passes digests over a two-wire link to the wide-area half, which sends them over the mobile network to your platform.

The two halves. The Bluetooth half hears your sensors and decides what is worth keeping. The wide-area half owns the modem, the position and the schedule. They talk to each other over two wires, and each can only report what it knows itself.

Adsum IoT Coder, in one paragraph

Adsum IoT Coder is a VS Code extension. For this run it uses your computer’s Bluetooth to pair with the relay, claim it, update both halves and commission it, with its agent asking one question at a time and your approval before each write. The NTN-GW Commissioner does the commissioning from a browser instead, for an installer with a phone.

What you need

The whole run at a glance

  1. Open the Hardware page in Adsum IoT Coder.
  2. Pair, claim and update the relay over Bluetooth.
  3. Commission it, with its own GNSS position.
  4. Set the deployment class, if you commission from a browser.
  5. Admit your sensor.
  6. Send readings to your platform: one radio cycle.
  7. Send a command back: one radio cycle.

Step 1: Open the Hardware page

Install Adsum IoT Coder in VS Code, sign in, and open the Hardware page. Under Gateways in range it lists the relays it hears over Bluetooth.

Step 2: Pair, claim and update

about 5 minutes The relay advertises for five minutes after power-on and after each disconnect, then stops. To open the window again, hold DFU1 for 3 to 8 seconds. A new device pairs only after this hold. The Hardware page then takes the relay through four steps:
  • Pair. Your operating system asks for the passkey the page shows.
  • Claim it for this computer. The relay’s service now takes images only with this computer’s key.
  • Check its firmware. When a newer demo release is out, Update installs it over Bluetooth, both halves, in about four minutes, and the relay keeps its settings.
  • Commission it: step 3.
Gateways in range: LBG20x AD50, window open and paired; 1 paired with its two firmware versions, 2 claimed by this computer, 3 up to date with Check again, 4 not commissioned with Commission it

An LBG20x in range on the Hardware page: paired, claimed by this computer, its firmware current, not commissioned yet.

Step 2b: a relay on an older release, once

A relay that left the factory with a release older than its Bluetooth service takes our pair over the debug probes once; from then on every update is over Bluetooth. Put one probe on each half’s header, BLE-SWD1 and LTE-SWD1, and let Adsum IoT Coder read the silicon behind each probe before anything is written: a probe’s name says nothing about which half it reaches. The wide-area half takes three commands in one session, with nothing in between, because erasing it clears the word that keeps its debug port open:
The Bluetooth half is the same without the middle command. Then go back to step 2, over Bluetooth.

Step 3: Commission it, with its own position

about 10 minutes Commission it opens a session. The agent reads what the relay already holds and asks one question at a time for what it cannot read, then writes each setting, reads it back from the relay, starts the relay and checks that it is working.
  • Where it is. The relay takes its own GNSS fix: a two-minute window, with the cellular radio paused. With no fix, it offers five more minutes once: first when it heard three satellites or more, or with “the antenna does not see the sky” when it heard fewer. A phone’s position, or one typed in, is always offered beside it.
  • Its name and key. The key is shown once, and the session adds it to adsum-fleet-register.csv in your workspace: keep that file, it is the only place the key exists.
  • The Wi-Fi, on the LBG20BC02C, then the mobile network and its class: mobile only, mobile with satellite backup, or satellite only.
  • The platform: its host, port and the device’s token.
The answers that repeat are kept in a site profile, adsum-site.json, so the next relay needs only its fix, the Wi-Fi passphrase and its token. It never holds a password, a token or a key.
The same relay commissioned: 4 commissioned, still checking, with Change

Commissioned, in the relay's own words: still checking its first send. The (i) holds the position, how it sends and where, and the commissioning window.

The cue light says it too. The LBG20x has no sounder: three flashes mean commissioned, and three flashes then a minute steady mean the first data has been sent, so you can leave.

From a browser

The NTN-GW Commissioner does the same in Chrome over Web Bluetooth, on a phone or a laptop, and asks for the relay’s own fix in its second step. A relay claimed by a computer is still commissioned from the browser, and takes its firmware from that computer.

Step 4: Set the deployment class

From Adsum IoT Coder this is part of step 3. From the browser, the class has its own panel, and the order matters: to narrow, untick satellite in the network policy and clear it from the ladder, write the policy, then the class; to widen, the class first. The BLG20x guide, step 4 shows each panel.

Step 5: Admit your sensor

about 5 minutes A commissioned relay with no access list ingests nothing. That is deliberate: on a metered link, admitting whatever happens to be nearby is a bill somebody else writes for you. Admit your sensor with the expected list, one entry per line, ADDRESS, profile, label, short id:
Writing replaces the whole list, an entry admits its device on its own, and a rotating address is refused. The BLG20x guide, step 5 shows the quarantine and the counters.

Step 6: Send readings to your platform

about 10 minutes, plus one radio cycle On your ThingsBoard tenant, a device profile with CoAP transport and a Protobuf payload, a device on that profile, and its access token. The token goes into step 3.
A device profile with CoAP transport and protobuf payload highlighted

Transport CoAP, payload Protobuf. These two fields are the whole step: get either wrong and the readings silently never arrive.

Telemetry keys arriving on the platform, each with the device's own timestamp

The first record. Several intact keys, each carrying the device's own timestamp: that is what proves the profile is right.

Stop here and you have a working relayIt hears your sensors, knows where it is, keeps their readings, and sends them to your own platform on its own schedule. The code to look for is 2.01: the platform took the reading.

Step 7: Send a command back

one radio cycle On your tenant, add a shared attribute to the device: key cmd, type string, value clear_latch. The relay reads its shared attributes on its next radio cycle: up to about fifteen minutes, usually a few. The pass is the Bluetooth half logging that it received the command. Delete the attribute afterwards: the relay acts on it at every cycle while it stays set.

Satellite, when you want it

The satellite edition, Nordic’s NB-NTN modem firmware and an NB-NTN SIM, and the relay’s own fix times the link. On the bench, registration on the satellite took 117 to 122 seconds, and one alert was sent and acknowledged on 9 October 2026. Over satellite only alerts and status travel, in one datagram of 128 B at most; the rest waits in flash for a cheaper uplink. More in satellite IoT: NB-NTN.

When something looks wrong

The rest of the BLG20x table applies: it is the same firmware.

What the demo firmware will not do

There is no time limit. The demo has no device-management client: it is not updated over the mobile network, while a newer demo release still installs over Bluetooth. The production licence carries it, per relay at www.adsumnetworks.com.

The LBG20x

The relay, the firmware, and every way to have it.

Firmware specification

The GNSS fix, the buttons, the cue light, the uplink order and the tests.

The NTN-GW Commissioner

Commission a relay from Chrome, over Web Bluetooth.

Ask for more

A production licence, the source, or a build made for you.