TPC Indoor Positioning System

Carousel imageCarousel imageCarousel imageCarousel image

Indoor Positioning System (IPS) is a computer network system used to locate people and things where GPS and other satellite technologies cannot provide accurate positioning, such as factories, warehouses, hospitals, care homes, buildings, airports, and underground.

Research and market forecasts that the global IPS market will be worth $6.92 billion in 2020 and $23.6 billion by 2025, growing at a CAGR of 27.9%.

We have been developing our own system called TPC_IPS since 2017, and plan to release it in the first half of 2021.

The figure below shows a conceptual diagram of TPC_IPS in a warehouse. Beacons are attached to things and people, and the electrical signals emitted by the beacons are read by a terminal, which analyzes the signal information and positions each beacon using a computer.

TPC_IPS Overview

Beacon scanning and positioning

When a beacon (Apple's iBeacon standard) is activated, it sends out a signal with a certain structure. TPC_IPS sends a beacon signal scanning command to all Raspberry Pi terminals (RP terminals) with a single click from the GUI of the PC terminal. Upon receiving this command, each RP terminal starts scanning for beacon signals and acquires the information necessary for positioning, such as UUID and RSSI, from the received signals and sends it to the server. The server analyzes the information, estimates the position coordinates of the beacon, and writes the coordinates to the database.

How TPC_IPS Works

How TPC_IPS Works

Plotting positions for development and implementation

TCP_IPS provides two plotting method for the actual and estimated coordinates so that those who in charge can visualize how accurate the estimated coordinates calculated by the server are during deployment, development and testing.

Our product also comes with a sample FileMaker application, which allows FileMaker developers to easily create an application that displays beacons on floor maps.

*TPC_IPS is scheduled for release in the first half of 2021.


TPC_IPS has the following features:

  1. Indoor positioning system using BLE beacons as transmitters and Raspberry Pi's as locators

  2. Depending on the usage conditions, the position estimation algorithm can be selected from TCOT (two-circle-oriented trilateration, no prior learning required) or machine learning (kNN, prior learning required).

  3. Advantages of using general-purpose equipment

  • Avoids vendor lock-in by using general-purpose products such as BLE beacons and Raspberry Pi's (RP's).

  • Reduces costs for expansions and extensions

  1. UX-conscious user interface

  • Ordinary operations such as beacon scanning, position information acquisition, and database information updating can be performed from the GUI on a single PC terminal.

  1. Centralized management of a large number of RP's receiving terminals from a single PC

  • Even when a large number of RP terminals (Linux OS) are installed, commands can be sent to all terminals with a single click from the GUI of the PC terminal.

  1. Customizable license structure.

  • Basic Feature License --- When the existing features are enough to satisfy your requirements

  • Development license --- Comes with the source code (as of March 2021)

  1. Sample application provided

  • Comes with a customizable FileMaker application.

  • Fast development for iPad/iPhone applications


Configuring and managing beacons themselves should be done by the service or the software provided by the vendor.




*Specifications are subject to change without notice.

Detailed Specifications

Scanning Beacons

Menu - Administrator tab - Scan tab

Click the "scan" button on the Scan tab to send a beacon scan command to all the RP terminals. The RP terminals obtain information such as UUID, Major, Minor, RSSI, etc. from the beacon signal , and then store the information in the database.

Plotting the Positions

Plotting function calculates the positional coordinates of each beacon using the data stored in the database from the scanning described above, using either our proprietary two-circle-oriented trilateration (TCOT) or machine learning (knn), and displays the positional coordinates in a scatter plot.

The plotting function is used through the process of deployment or development in order to check the degree of difference between the actual coordinates of the beacons and the calculated coordinates. This feature is available in the TPC_IPS application or in a web browser.

TCOT Algorithm

tcot in FileMaker

tcot in a web browser

knn Algorithm

knn in FileMaker

knn in a web browser

On the scatter plot, the fixed beacons are indicated by red circles () and the movable beacons are indicated by blue circles (). If arrows appear in the plot, the starting point of the arrow indicates the original beacon position and the end of the arrow indicates the estimated beacon position.

Sample Application

TPC_IPS comes with a FileMaker sample application, allowing any FileMaker developer to easily create an IPS application.

If [All] is ticked off, all the beacons detected in the system can be displayed on the floor map.

The floor map needs to be made in a graphic file by scanning the floor plan in the development process, and then placed on the FileMaker layout. All that is left to do is to place the beacon objects on the layout, and an IPS application will be ready to use.

The sample application has 81 beacon display objects. If you wish to display more than 81 beacon positions, you need to add more beacon objects by yourself.

IPS Technology

In this section, we will introduce two types of positioning estimation algorithms used in TPC_IPS - TCOT and machine learning (kNN), as well as the new technology AoA that is currently attracting attention.

Two-Circle-Oriented Trilateration How TCOT Works

TPC_IPS calculates the coordinates of the the iBeacons attached to people or to things, by receiving their signals using multiple locators (Raspberry Pi's: RP's) which are placed in advance.

TCOT (Two-Circle-Oriented Trilateration), one of the position estimation algorithms of TPC_IPS, calculates the distance between the terminal and each iBeacon based on the strength of the iBeacon signasl (RSSI) received by the three nearest locators, and then calculates the position of the iBeacon using trilateration.

However, as the distance between the locator and the iBeacon increases, the accuracy of the RSSI and the distance calculated from it decreases.

Even with calibration, there are few situations where the three circles intersect in the "ideal" way, as shown in the figure.

In situations where the three circles do not intersect, traditional trilateration will fail.

To solve this problem, we have developed a two-circle-oriented triangulation (TCOT) IPS that enables positioning in situations where traditional trilateration fails, as shown on the right.

TPC_IPS's "Plotting All the Beacon Positions" function simultaneously displays the actual coordinates of all beacons scanned and the estimated coordinates calculated by TCOT (or knn as described below).

This allows the user to understand at a glance the degree of positioning error during development and deployment.

The ● at the start of the arrow is the actual position of the beacon, and the ● at the end of the arrow is the estimated position.

Positioning accuracy is an important factor when evaluating an IPS.

If positioning accuracy is defined as "the difference between the actual and measured beacon position coordinates", then the positioning accuracy of TPC_IPS is as follows:

When locators are placed at 4m x 4m intervals (4mGird): Approx. 2.6m

When locators are spaced 8m x 8m (8mGird): Approx. 3.8m

When locators are placed at 16m x 16m intervals (16mGird): Approx. 7.0m

When the locators (Raspberry Pi locators) are placed to form a square and another locator is placed in the center of the square.

Improving Estimated Position Accuracy with Machine Learning

Another algorithm for positioning in TPC_IPS is fingerprinting / machine learning (knn). In this algorithm, a receiving terminal stores in advance the RSSI it will receive from a beacon at a known position. For example, when terminal X receives signals from a beacon located at coordinates (0, 4), the RSSI is -77, which is stored in the database. Similarly, place beacons in all monitoring areas and register the actual position coordinates and RSSI. This is called fingerprinting.

For this fingerprint data, we apply kNN (k nearest neighbor method), one of the machine learning algorithms, to calculate the position coordinates. The figure below shows the result of plotting the estimated position coordinates of TCOT and knn, respectively.

Positioning by TCOT (see above)

Positioning by machine learning (knn)

As shown in the figure, using knn may significantly improve the positioning accuracy over TCOT shown on the left. However, fingerprinting/machine learning requires a lot of time and effort for preparation, because the computer needs to be trained (supervised learning) by repeating the process of placing and measuring beacons in advance, and then placing and measuring them again.

There are many different algorithms in machine learning, not only kNN. We plan to verify and implement other algorithms, and post the results on this website.

Improving Positioning Accuracy with AoA/AoD

AoA(Angle of Arrival)/AoD(Angle of Departure) is a solution to detect the "direction" of a transmitter such as a beacon.

Bluetooth 5.1 supports AoA and AoD, and is expected to have the capability to position with an accuracy of less than 1 meter.

Bluetooth Direction Finding ― A Technical Overview by Bluetooth SIG

The figure above shows the direction detection method of AoA. Two or more antennas installed/connected to the locator receive beacon signals, and the direction (angle) of the beacon as seen from the locator is calculated based on the distance between the antennas, phase difference, and wavelength. If the exact angle is known, the position coordinates of the beacon can be calculated with higher accuracy than simple trilateration that relies solely on distance.

As of May 2020, no "major" vendors have released locators or transmitters (beacons) equipped with Bluetooth 5.1 SoC's. However, we are conducting research and development to improve positioning accuracy by integrating TCOT with direction finding using AoA/AoD.

Quuppa, a Finnish company, has been commercializing AoA-based IPS (RTLS) with its own technology for many years before the Bluetooth 5.1 specification was formulated (early 2019), and has an established reputation for high-precision positioning. A video showing Quuppa's RTLS tracking the movements of a fast-moving ice hockey player is also available.

Use Cases

Here are some possible use cases for our TPC_IPS solution.

*TPC_IPS provides the position coordinates of each beacon via API or database. Applications such as map display and inventory display need to be developed separately.


You can keep track of products, workers, forklifts, and other transportation equipment at a glance in a large warehouse.

Care homes

Care home for the elderly.

Real-time display of residents, wheelchairs, staff, and the occupancy of common areas such as lounges and dining rooms.


To manage the location of doctors, patients, medical staff, hospital beds, and medical equipment in hospitals

Lost and Found at Amusement Parks

For lost children and crime prevention in amusement parks crowded with people.

The beacon on the right is made by Gimbal, costs $5, and has already obtained the technical standards compliance mark(Giteki mark) in Japan.

It runs for 1~2 months on one button battery. It is small and lightweight, so it can be worn around the neck like a pendant.

These beacon pendants will be lent to the children when they enter the park, and then returned when they leave the park.

40 x 28 x 5.5mm


For office security at night.

Real-time display of security staff deployment and patrol positions.

Contact Us