A few weeks ago, I was proposing an idea to one of my lecturers to create a smart mobility system using the Internet of Things (IoT) to support public transportation in my city. One of the ideas involved using the Global Positioning System (GPS). At first, I thought there was no alternative to GPS for determining location. However, my lecturer introduced me to a term I had never heard before: terrestrial positioning. He explained that we could calculate coordinates based on the signals used in IoT if we utilized a GSM module.
At its core, GSM signal triangulation feels almost magical. Picture a landscape dotted with Base Transceiver Stations (BTS)—the infrastructure that keeps our phones connected. Each BTS has its own identity markers, such as Mobile Country Code (MCC), Mobile Network Code (MNC), Location Area Code (LAC), and Cell Identifier (CID). The plan seems simple:
With data from three or more towers, you can theoretically triangulate and pinpoint a location where all the radius intersect.
The first roadblock hit me right away. Most devices, as it turns out, stay connected to only one BTS at a time—the one they’re actively using. While it’s possible to glimpse neighboring towers, the data is often incomplete or obscured behind layers of security and access restrictions set by network providers. It’s like trying to sketch a triangle when you can only see one corner.
Then came the second hurdle: calculating distance from RSSI. The idea sounds straightforward—signals weaken as you move further from the tower. There’s even a formula for it:
Where is the distance (in meters), is the transmitted signal power at 1 meter (in dBm), and is the path loss exponent, which depends on the environment. However, there are already two major problems with this formula. While we might have the value, we’re left with two unknowns: and value. The value requires standing 1 meter away from the transmitter to measure it, and varies wildly and is highly unstable depending on the environment.
Even with these values, the itself is unpredictable. It fluctuates due to walls, trees, rain, or even the number of people nearby. It’s like trying to measure the distance of a whisper in a room full of shouting voices.
Another significant challenge was figuring out how to perform triangulation when the exact locations of the towers were unknown. Public databases like OpenCellID or CellMapper initially seemed like ideal solutions, but they often proved to be outdated, incomplete, or unreliable. With towers owned by various carriers scattered across urban and rural areas, the variability made the task even more complicated. A device might connect to a nearby tower, while another connects to one ten kilometers away. Without accurate tower coordinates, the entire concept of triangulation becomes fundamentally flawed.
To make matters worse, the environment added its own chaos. In cities, towers are densely packed, and their signals overlap in a confusing web. It becomes nearly impossible to distinguish one tower’s range from another. Meanwhile, in rural areas, towers are few and far between. The scarcity makes triangulation impossible since you can’t form a triangle with only one or two points.
After countless hours of tinkering, researching, and hoping for a breakthrough, reality hit me: GSM signal triangulation, while conceptually elegant, is practically impossible with the tools I had. The challenges weren’t just technical—they were fundamental. From missing data to unreliable signal measurements to the mystery of tower locations, every step was a mountain I couldn’t climb. Even if we had the time and resources to map all the data for one tower, there are hundreds or even thousands of towers that would need to be mapped for the system to work.
This journey taught me more than just the limitations of signal triangulation. It was a humbling reminder that some ideas, no matter how beautiful, aren’t meant to work in the messy, unpredictable real world. It’s easy to fall in love with a concept on paper, but the real magic lies in understanding its limits.
Still, I’m not ready to give up on this idea entirely. If you have any alternative suggestions or insights into how we can make this work, let’s collaborate and turn this challenge into an opportunity!