Research: MikroTik TG-BTS-IN beacon capabilities and configuration #4
Notifications
Due Date
No due date set.
Blocks
#10 Decide: bake-off design — comparands, ground truth, decision rule
lars/splat-indoor-navigation
#9 Configure and verify the three TG-BT5-IN beacons
lars/splat-indoor-navigation
Reference: lars/splat-indoor-navigation#4
Reference in New Issue
Block a user
Question
We own 3x MikroTik TG-BTS-IN. What can they actually do, and how do we configure them for positioning?
Answer specifically:
Part of the wayfinder map #1.
Answer
Product identity first: there is no MikroTik "TG-BTS-IN". The part number is TG-BT5-IN — "BT5" with a five, for Bluetooth 5. MikroTik ships exactly two Bluetooth tags:
TG-BT5-IN(indoor) andTG-BT5-OUT(outdoor, adds NFC, a temperature sensor and data logging). Both are BLE 5.2 on a Silicon Labs BG22 SoC, $10 list. Everything below is TG-BT5-IN.(Claims below were re-verified directly against the Android manual, the TG-BT5-IN manual and the product page on 2026-08-11.)
1. Advertising formats — iBeacon is emitted directly
Five selectable advertisement types. The Android manual lists them verbatim as "DeviceName, MikroTik, Eddystone-TLM, Eddystone-UID and iBeacon"; the product page says the tag broadcasts "iBeacon, Eddystone or MikroTik telemetry advertising packets".
4f09— accel X/Y/Z, temperature, uptime, trigger flags, battery %b2b98de4-c81c-47c2-b14e-791b3e5587ec; Major/Minor freely settable 0–65535Yes — the tag emits standards-compliant iBeacon frames itself. No gateway, no translation layer. Each format has its own
Enable advertisingcheckbox plus its own interval / TxPower / trigger block.For our stack: set the tags to iBeacon. That is the one format
react-native-beacons-managerhandles natively on both platforms, and on iOS it is the only way to identify a tag at all (see §4 caveat).2. MINIMUM ADVERTISING INTERVAL — 20 ms. This is not a blocker.
20ms...10s, the Android one20ms...24h. Both agree on the 20 ms floor, so it does not affect us. Probably a stale iOS page predating fw 2.2.0.Bottom line: the tags must be reconfigured off their 5 s default before they are useful, and they can be.
3. TX power and range
4. Configuration — NO RouterOS DEVICE REQUIRED. Phone-only. But bring a magnet.
This was the ticket's kill-switch question, so plainly: we do not need a RouterOS device, a KNOT, or any MikroTik hardware whatsoever. Both halves of the workflow are ordinary-phone operations.
Two real gates — both physical, neither RouterOS:
Footgun — do not set a Write Protection password. The app can lock a tag's settings behind a 6-symbol password, and per the Android manual: "once the password is set, there is no way to remove password protection (you can only edit it)." A locked tag is read-only without the password. Tags do not ship locked. Leave it alone.
Firmware updates are also app-driven; files at https://download.mikrotik.com/firmware/bt-tag/latest — worth pulling ≥2.5.0 for the sub-7 s power optimisation before the session.
5. Battery — the real cost of 100 ms
[My estimate, not a MikroTik source] Scaling MikroTik's 1 s → 2 years figure by packet count (100 ms = 10x the rate) gives roughly 2–4 months at 100 ms, and weeks at 20 ms. Order of magnitude is the point: a 100 ms config converts a 6-year tag into a ~one-quarter consumable. The authoritative number is free and on-device — the Beacon Manager app has an "Estimated battery life" screen that "calculates how many packets are estimated to be broadcasted daily, for how long the tag will be active, and the estimate for the average daily power consumption" from your actual settings. Read it off the app in the session and record it; that closes this question properly.
Mitigations if we want to keep the tags alive: disable advertising channels 38/39 (fw 2.4.0, ~3x saving, costs scan reliability), drop TX power toward -28 dBm (which we want anyway per §3), disable the accelerometer entirely (fw 2.4.0). For a prototyping session this is all irrelevant — burn the battery. For any ship deployment story, 200–500 ms plus phone-side filtering is the sane operating point, not 100 ms.
6. Encryption / rotating IDs — will not break plain BLE scanning
Checked because it would have been a silent killer. It isn't one.
print where address=DC:2C:6E:0F:C0:3D).7. Do 3 beacons suffice for a 4x5 m room?
[Standard BLE/RF geometry — my reasoning, not a MikroTik source.]
Three is the bare minimum for an unambiguous 2D fix, and minimum in the brittle sense: zero redundancy. With three ranges and three unknowns-minus-one you have no residual left over, so there is no way to detect — let alone reject — a single bad range. And RSSI ranges are routinely bad: 30–100% error per sample. Three circles will essentially never intersect at a point.
Geometry that kills you:
Realistic accuracy, so we set expectations before the bake-off:
Recommendation: 3 tags will produce a position, so the session is not blocked — but buy 3 more. At $10 each, going to 6 (four corners + two mid-wall) is the cheapest accuracy improvement available and is the difference between "a fix" and "a fix we can trust".
Verdict
The 3 beacons ARE usable for the bake-off as-is. No RouterOS device is needed — the ticket's kill-switch concern does not apply. Configuration is done entirely from an ordinary Android or iOS phone via the free MikroTik Beacon Manager app over BLE, RouterOS cannot configure tags at all, and reading advertisements needs nothing but our own React Native BLE scanner. No cloud, no license, no gateway.
Three things must happen or the session stalls:
Must buy/borrow — nothing mandatory, two things strongly advised:
Set expectations now: RSSI trilateration in a 4x5 m room realistically delivers ~1.5–3 m, best case 1–2 m, i.e. quadrant-level rather than a smooth AR-anchor pose. Against camera-based visual positioning that is a loss on pose accuracy. Frame the bake-off around where BLE can actually win — cold-start time, robustness in the dark, no-camera-permission operation, zone-level presence — rather than positional accuracy, or the comparison is decided before we start.
One deployment caveat worth flagging early: the battery is non-replaceable, and 100 ms burns a 6-year tag in an estimated 2–4 months. Fine for a prototype, fatal for a cruise-ship rollout. Any real deployment story needs 200–500 ms plus client-side filtering, or different hardware.
Open / unresolved
Enable advertisingcheckboxes imply yes, but no MikroTik doc states it, nor what the combined air-time behaviour is. Matters if we ever want MikroTik-format telemetry and iBeacon at once. Test on the bench.20ms...10svs Android20ms...24h. Irrelevant to us (we live at the floor), unresolved nonetheless.