How to build large indoor positioning systems

A basic indoor positioning system covering up to 1,000m2 of open space can be deployed in minutes. See the Unpacking video as an example.

Key points of the statement above:

  • Basic system – for example, a starer set. See a detailed step by step guidance in the Operating Manual
  • Open space

However, if the indoor positioning system covers multiple rooms, or a warehouse, or several floors, or even several buildings, the complexity of the system and the amount of efforts jump dramatically. The network planning and deployment may take days or weeks, depending the complexity of the resulting indoor positioning network, skills and other factors.

If you wish, we can do everything for you remotely:

  • Full Network Planning
  • Full Remote Network Deployment

Please, read more about the services here:

At the same time, if you want to better understand how to build such large indoor positioning systems, what is to be done and what to pay attention to, this article is for you.

Defining factors for large indoor positioning systems

When building an indoor positioning system, everything starts with and is driven by a couple of defining factors. The key ones:

  1. Line of sight between beacons. This is the key requirement for any precise indoor positioning system and we have been covering the subject extensively: Line of sight is a must for precise indoor positioning systems
  2. Limited range of beacons. To have tracking the mobile beacon must have a direct line of sight (hearing) to two or more stationary beacons within 30 meters for 2D and three or more for 3D – i.e. the maximum practical recommended distance between neighboring beacons for the majority of cases is 30 meters. Thus, even if you have a large open space, for example, a football stadium, or a drone flying 120m above the ground, you have to build more submaps or use special solutions like Horns in order to have a tracking over the large territory

Thus, for example, if the indoor positioning system would use neutrinos that can go through the materials (walls, ceilings, people, machines) without interaction, we could have build GPS 2.0. But that is not the case yet. Thus, we have to take the line of sight limitation into account and build maps consisting of submaps, like cellular networks are built out of cells.

As well as, if beacons had a larger range – hundreds of meters or kilometers – for large open spaces, the complexity of the indoor positioning networks would drop significantly. However, in practice, the limitation 1) – line of sight – is much stronger and even with very long range – more than 30m, for example – the main limitation for the real cases is the line of sight, because indoor there are not so many areas of such an open space where you could see a volume of open space of 30x30x30m or more, for example. There are always walls, shelves, columns, machines, cranes or similar obstructing objects.

There are other affecting factors, of course, for example: capacity requirements, easiness to deploy, etc. They are important, but, still, they are minor as compared to the ones listed above. Therefore, we will focus on the most important ones only.

Stages in building a large indoor positioning system

Working with indoor positioning system consists of two major stages:

  1. Building the map of stationary beacons – building the indoor positioning system in essence
  2. Using the indoor positioning system
Though, of course, using the system correctly and not expecting impossible is important, it is relatively a simple task. Much more demanding is to correctly build the map of stationary beacons in the first place, which, effectively, means is to build the indoor positioning system.
When we refer to “build an indoor positioning system” and “build a map of stationary beacons” – it is the same – just a different wording.

Basics and key elements of indoor positioning systems

1) Fist of all and before going deeper into the subject, study the basics from the Placement Manual. There is even a slide about the multi-room indoor positioning system.

Since we will be discussing different architectures, familiarize yourself with the differences between IA, NIA and MF nia in the Architecture Comparison document.

See the typical mistakes and avoid them.

2) Then, check the demo video to see how the multi-room tracking works in practice. The video covers a more complex scenario – multi-room plus multi-floor and is showing tracking in 1D, 2D, vertical 2D and 3D tracking. This demo intends to show that for different use cases different modes (1D, 2D, vertical 2D or 3D) may be optimal. But the video also gives a visual idea of how things are done for the multi-room indoor positioning system.

3) Study in detail the Operating Manual and the submaps feature in it.

4) See the detailed video about the submaps, service zones, handover zones.

5) Familiarize yourselves with the key terms:

Supermap (a roadmap item – not yet commercially available):

  • A map of maps controlled be a Super-Super-Modem
  • Supermap will support hundreds of maps and, as a result, tens of thousands of beacons
  • Supermaps are designed for very large maps consisting of either multiple floors or multiple buildings, when a single modem is not enough either because of radio coverage or because of the sheer number of beacons


  • A combination of submaps, service zones, beacons, substrate
  • The full and more correct name for a map could be a “map of stationary beacons”
  • Often terms “map” and “system” can be interchanged
  • Maps today (Feb. 2022) can have up to 250 submaps and up to 250 beacons (stationary and mobile combined)
  • A part of a map consisting of one (1D), two (2D or vertical 2D), three (3D without redundancy), or four (3D with redundancy) stationary beacons
  • Submap can’t have more than 4 stationary beacons. You must build an additional submap
  • Submaps always assume a service zone, but the service zone is not shown in the Dashboard unless it is defined manually
  • The default maximum distance between the beacons is 30m, i.e. beyond this distance the beacons simply don’t listen
  • The maximum distance may be set manually in each submap. It defines the size of the submap
  • The larger the submap, the lower location update rate will be

Service zone

  • An area of responsibility for a submap
  • Service zone is a must to have for multi-room or large submaps, because, otherwise, with the detault limitation of distance of 30 meter, service zones of each submap may be too large. They may be overlapping too much in typical multi-room environment. It will lead to too many opinions of where the mobile beacon (hedgehog) actually is. Since opinions are alway slightly or largely different, for example, in case of non-line of sight for distant submaps, too many opinions could totally confuse the system. That could lead to inferior traking performance. Therefore, defining service zones is a solution to have a robust tracking in complex maps
  • For example, if you have 8Hz update rate and you track a person with a maximum speed of 1m/s, a 1m handover zone would be a very good selection: up to 8 location updates in between the submaps is perfect – not too many, not too small. However, for a fast moving drone of 10m/s that could be just too narrow, particular, if the location update rate is just 4Hz, for example, because you could expect 4/1/10=0.4 location updates i.e. almost always handovers would be hard handovers, but not softhandovers and tracking would poor

Handover zone

  • An overlapped area of two or more service zones
  • The width of handover zones must be sufficient, but not too large. Sufficient means that the handover zone is large enough so that 2-6 location updates from the old submap is possible in the handover zone and 2-6 location updates from the new submap is possible as well. If the requirement is met, the handover will soft – tracking in this area will be from two neighboring submaps

Mobile beacon = “hedgehog” or “hedge” or hedge

Stationary beacons – “owls” in IA

Example: multi-room indoor positioning system

We have been contacted by one of our customers and we will be using his materials as an example for this and similar cases. With his permission, here are the Dashboard captures. Since this help to the customer is a work in progress, let’s first check the current status of the track and see advice below:

Multi-room indoor positioning system


1) First of all, always build the maps in the following manner:

  • For example, you plan to have 4 submaps, like in the scenario above. Build each submap standalone. Standalone – literally
  • Achieve perfect tracking in each submap like other submaps simply do not exist. Just switch them off
  • With optional licenses, you may keep the submaps active, but switch them into mode: “not use for tracking”
  • Optional features are not required for small maps – starter set plus a few beacons, for example. But they greatly simplify building larger maps and very much advised
  • But you can do nearly the same by just sending beacons of other submaps to sleep, while working with your current submap.
  • Always work only one submap at a time, first, and only then move to another submap
  • Achieve perfect tracking in each and every map separately. And only then move to the next stage.
Such a layered approach makes building large indoor positioning system and their maps possible. Whereas, not following the recommendations is one of the main cause of confusion and lost time.
  • It helps to clearly distinguish map-level, submap-level and beacon-level problems (either stationary beacon problem or mobile beacon problem)
  • When you already have a full map of beacons active and tracking is not perfect, it is almost impossible to say why it is so. It could be anything: forgotten heights of stationary or mobile beacons, not defined service zones, wrong SW versions, wrong settings in beacons or modem, non-line of sight in some areas, ultrasound noise, radio noise – and dozens of other reasons. If you built the map and start tracking in the hope to have everything working right away, almost certainly, you would have to disassemble everything in order to debug where the mistake was. Much easier and much faster is to simply built the large indoor positioning systems bottom-up and to have a very controlled performance at each stage. Then, building such large systems becomes very easy, indeed.

2) As soon as you have each submap working perfectly, showing good tracking, define the service zone for each of them. It is possible to build the service zones earlier – in the first step, but, often, there is not yet a clear picture of all submaps and building service zones for them is simply not convenient.

In any case, service zones of each submap is a must for large indoor positioning systems or large maps, as described above. Without defining the service zones, the system may easily become confused with too many opinions about location of mobile beacons coming from different submaps and the system won’t know whom to trust. Service zones basically manually help the system with that.

Build the handover zones properly. The example above is good with that, as far as we can see. Service zones defined and the handover zones are good.

3) Switch off the Realtime Player, when you just build the map of beacons. The Realtime Player makes tracking visually smooth and eliminates small jumps or omissions, but it works very well when the track is already smooth and good enough. At the beginning, it is better to use the raw location data and to see the problematic area clearly – before they are smoothed out with the Player.

How to align submaps in maps

The recommended and the easiest way to align submaps into a map is to do the following:

  • Install two mobile beacons (hedges) on a tripod on the same height and have a base between them of 0.5-1m
  • Check tracking of both hedges in each of the submaps that you want to track in. The track from both hedges must be perfect before you move to the next step
  • Make sure you have service zones for each submap defined, and the handover zone has the right size. Confirm with tracking
  • Enable M1/M2 switch on the Dashboard map view. The switch turns the system into a special mode: it measures location of a beacon in one location update in one submap and then it measures the location in another location update in another submap. When you have submaps aligned, both locations are the same. When they are not, the locations jump with the location update rate
  • By manually moving the submaps, you can align them so that there will be no jumps between the location updates. The submaps are aligned

It is possible to do the same just with one mobile beacon, but it takes more time, because with one mobile beacon you can align in one point perfectly, but the submaps may be not aligned with the angle. Thus, you have to move to another  point in the handover zone and check there. If jumping, the submaps are not aligned yet. The procedure must be repeated. However, while aligning the second point, it is very easy to shift the first one, i.e. it is an itterative process. Using two hedges at once make it much easier.

It is possible to do the same without M1/M2 at all. But it requires then the hedge is moving all the time between the submaps: entering the handover zone and leaving it. The submaps must be moved so that there will be no jumps between the submaps, when the hedge is moving into the handover zone and out.

Typical mistakes

The most basic and common mistakes

The common mistakes are very basic and they cover 95% of difficulties that users have with the system. They are easy to avoid, but they are still happening.

See video about typical mistakes and how avoid them.

Other 5% are very broad and wide and the list below shall be rather considered as a list of examples – to have the range and potential ideas where the mistake can found and fixed – then a clear guidance for fixing the mistake.

Incorrectly placing stationary beacons

Placing 3 or 4 stationary beacons in a line won’t create a 3D submap. It will be a 2D submap, because, there is no surface and there no volume in the area defined by the beacons. It is a line close to the line. It will be a 2D submap. But by placing 3 or 4 stationary beacons in the submap, you tell the system to use a 3D mode. Tracking will be bad in this case.

Follow the Placement Manual and place the stationary beacons properly.

Practically important hints to remember and follow

We assume you have checked the materials above, including, Operating Manual and Typical mistakes with Precise Indoor “GPS”.



  • Move to the next stage only, when you have perfect results on the previous stage. For large maps it is particularly important, because it is very difficult to separate types of problems. Bad tracking may come from dozens of sources. Only step by step building of the system gives a hope to clearly identify the source of the problem. Hoping to jump to the end right away is nearly certain will result in unsatisfactory tracking results

If anything is unclear, contact us via