SubPos Positioning System

A "dataless" Wi-Fi positioning system that can be used anywhere GPS can't.

Similar projects worth following
When the world's lifeforms are forced into subterranean dwellings due to nuclear fallout, evolution into lizard people or warming of the Earth, we will require a simple method for determining our position underground. In our current age, we are still working out the intricacies associated with determining our location in areas where GPS cannot reach.

SubPos provides a solution to this problem, without the need for expensive licencing, specialised hardware, laborious area profiling or relying on data connectivity (a connection to a location database or cellphone coverage is not required), all while remaining backwards compatible with existing Wi-Fi access points and receivers. It works independently of, or alongside GPS/Wi-Fi Positioning Systems (WPS)/Indoor Positioning Systems (IPS) as an additional positioning data source by exploiting hardware commonly available. All a user wishing to determine their location underground/indoors will require is a Wi-Fi enabled device.

The SubPos Wi-Fi Positioning System is an indoor positioning system that can be used in various environments such as metro lines, shopping malls, carparks, art galleries or even conference centers; essentially anywhere GPS doesn't penetrate. It could also be integrated into an array of IoT enabled devices, from access points to Wi-Fi enabled light-bulbs.

The Standard defines an accurate method for subterraneous positioning in different environments by exploiting all the capabilities of Wi-Fi. SubPos Nodes or existing Wi-Fi access points are used to transmit encoded information in a standard Wi-Fi beacon frame which is then used for position trilateration. The Nodes, while not necessary part of the SubPos standard, provide a pre-calibrated device that is easy to configure and can be dotted about with ease.

The SubPos Standard has been designed for backwards compatibility with existing access points and client devices in mind. It works with most existing access points and almost any Wi-Fi enabled client device (smartphone, laptop). For those wishing to use SubPos on an access point that isn't supported, the SubPos Node provides a great alternative with enhanced functionality.

When a user enters an area littered with one or more SubPos Nodes, they are able to determine their position with a simple smartphone application. Some smartphone applications could include helping users find their parking spot, navigating unfamiliar buildings or determining whether your metro station is soon approaching. It could even be used as a GPS relay for embedded systems.

Unlike traditional Wi-Fi location techniques, which map out an area of Wi-Fi signal strengths while storing it in a database, SubPos Nodes operate much like GPS satellites. In this case however, instead of using precise timing (for time of flight) to calculate distance between a transmitter and receiver (GPS), SubPos uses coded transmitter information as well as the client's received signal strength to determine the distance from this known point.

Read more »

  • 1 × ESP8266 Module (ESP-03) Used to create SubPos node (beacon frame source).
  • 1 × Microchip PIC18LF25K50-I/SO To control and easily program the ESP8266 module as well as providing highly accurate timing on a SubPos Node.
  • 1 × Micrel MIC5209-3.3YS Power Management ICs / Linear Voltage Regulators and LDOs.
  • 1 × LED SMD 0805 Red
  • 1 × LED SMD 0805 Green

View all 14 components

  • Ranger Kickstarter Now Live

    Blecky07/07/2016 at 03:45 0 comments

    So after many hours of sleepless coffee fueled crazy times, a surprise Kickstarter campaign for the Ranger is now live!

  • Ranger Demo

    Blecky07/05/2016 at 14:40 0 comments

    Over on the SubPos Ranger project page I have a demo up and running:

    The client is connected to the laptop with a USB connection. However, the client does all the positioning calculations, the laptop is just displaying the node positions and the current client position.

    Averaging is turned right up which is why it takes a little while to update the position. This is because I live in an apartment block with lots of 2.4GHz RF flying about, so this helps to cope with that. I am integrating an accelerometer on the client to provide better intemediate updates when averaging is turned up too. But as you can see, it's pretty spot on in terms of accuracy.

  • More Ranger

    Blecky05/24/2016 at 01:09 0 comments

    A few things have been happening over on the SubPos Ranger project page. I now have Rev.02 modules and clients built:

  • SubPos Ranger Project

    Blecky03/05/2016 at 23:55 0 comments

    Note that there are some updates happening on the SubPos Ranger project page. I currently have a Ranger Node built, ready for testing:

  • SubPos Receiver

    Blecky01/31/2016 at 10:17 0 comments

    I have released the sources for a receiver module which works with the ESP module -

    It's been tested on Arduino and the Teensy 3.2 as well as Energia and the Launchpad Tiva C (tm4c123).

    For use with the ESP Wi-Fi Scanner Firmware -

  • New Project Page

    Blecky01/19/2016 at 07:35 0 comments

    Future updates for the ranging system (SubPos Ranger) will be placed in the new project page -

    Please skull and follow this project for ranging updates.

  • ESP Module v2 Firmware

    Blecky01/15/2016 at 03:11 0 comments

    Here is a newer version of the ESP firmware that now utilises the wifi_send_pkt_freedom() function to send beacon frames.

    This method of generation allows for tighter control of beacon frame rates and increases security as it runs in a passive client mode and only generates beacon frames.

    Note that the Node firmware has also been updated to support this new version. You will need to use the latest Node firmware (0.1.6) with this firmware. Additionally, the old ESP firmware will not work with the latest Node firmware.

  • Just a Teaser

    Blecky12/03/2015 at 04:45 0 comments

    Here is a little teaser of the AT86RF233 dev modules that I will be working with to perform a simple method for ranging (distance) calculations:

  • Error Circles and New Website

    Blecky11/12/2015 at 11:56 0 comments

    I now have standard deviation error circles working to display the calculated positional error. It shows the possible circle error from all the positioning measurements (i.e., the client could be located anywhere in this circle):

    This value calculated is the radius of the circle surrounding the position as the center point (the developer just has to draw the circle from this radius). This is updated in the Android API repository on GitHub.

    I also have a fancy new website (the wiki is still there as a link) at :

  • What's Going On

    Blecky10/22/2015 at 06:56 0 comments

    I haven't stopped the project, I've just been fixing a few small issues here and there.

    The Android API has an improvement on the trilateration code. It converts coordinates to meters using Mercator projection for trilateration and then back again for better distance calculation. Plus a few other improvements.

    The Node hex firmware has had a few bug fixes.

    The SSID Coder has had a few bug fixes too.

    I will also be presenting a SubPos tutorial and demo at the Open Source Developers Conference next week and Buzzconf in November.

    There are lots of things in the background at the moment too which should have more info in about 3-4 weeks.

    Stay tuned!

View all 43 project logs

  • 1
    Step 1

    While the SubPos Nodes make it easier to set up positioning and provide additional features and a USB to UART converter built in, SubPos can be set up with nothing more than ESP8266 modules, a smartphone, USB to UART converter and a power supply for the ESP modules. You can even operate the ESP8266 module with SubPos enabled (AP mode) and as a Wi-Fi client at the same time! You can even use the NodeMCU module if you would like similar functionality to the Node (USB interface and power). The setup commands will slightly differ for the LUA based firmware, but they work just the same. Or you can load the AT firmware on these modules.

    Go to step 2 then 8 if you want to configure a SubPos Node.

  • 2
    Step 2

    Determine the GPS locations that correspond to the physical location of the ESP modules/Nodes (by any means, measuring stick, compass, best guess). Use Scribble Maps to help you determine these coordinates (you can easily draw map overlays and get GPS coords from points).

    You can export the KML of the overlay and get the GPS coordinates from the KML document:

  • 3
    Step 3

    Connect the ESP module to the UART converter and power supply using the standard AT firmware, and plug the UART converter into a PC.

View all 9 instructions

Enjoy this project?



gcouger wrote 03/29/2015 at 04:02 point

I guess I thought you were trying to live under water. Cave and mine radio is throughly  plouged ground. Unfortunately it isn't very well plouged. You are broadcasting and receiving in cavity that has a open area with a dielectric constant of 1 and the walls have dialectic constant of 3 to 40 for wet rock with losses of who knows what. 

Using VHF & UHF works well in large open areas but dies out with out some means of being repealed or other tension in tunnels. If you have a way to fight out the mutipath and repeaters it's a really neat trick.

The leaky transmission line works at 900 MHz. I have used Vampire tapped Coax to stretch a 900 MHz phone reception about 3 times its normal range in a building undergoing a remodel. The range ran out about half way, but a resonant loop on the end worked in a 16 by 16 foot room.

Frequencies bleow 3.5 MHz have been used under ground with PSK. This is the most prominsing work I have seen.

here are some other links that touch on the subject.

Good luck 
Gordon W5RED

  Are you sure? yes | no

Blecky wrote 03/29/2015 at 04:13 point

Cheers for the links!

The plan for this though wouldn't be to place the nodes too far apart from one and other. The example of a cave was just to provide insight to some of the applications. You would ideally use this say along a metro line or in a mall to determine your position there. 

The point is the nodes would be very very cheap (<$10) and you could even modify existing access points to achieve the same thing.

  Are you sure? yes | no

chris jones wrote 05/14/2015 at 21:12 point

Gordon - I know of what you are saying. Some underground facilities use a leaky coax cable with aerials on both ends on outside to allow 2-way coms underground to surface. Not sure how far you can go underground with that. The USN used to use ELF/VLF signal to penetrate underground and undersea to do 1-way com with submarines via Morse Code. I imagine PSK would work rather well with that. It would involve running a single strand wire throughout underground facility. It would probably work well for 2-way voice/data coms since we are not talking about miles but just a few feet from aerial.

This does not address position display though. I favor my QRCODE idea for that. It does not involve the reception of an outside signal for position data. And since underground facilities are closed environments, the user would pretty much be in a tight unchanging physical environment. They'd generally already know where they are but may need help in areas they've never visited yet.

Another idea for 2-way voice/data com and indoor GPS (iGPS) would be using Infrared ceiling nodes. They transmit and receive infrared light into a wired communication backbone back to a central server. The user would need a IR transceiver which some older devices have built in. Just point and shoot. Each node would have a recorded position tag in it's memory and would transmit it upon interrogation from the remote user. This idea would work in multi-floor environment where radio would have trouble resolving as radio would require azimuth and elevation to resolve what floor you were on. The IR nodes would not have this problem. There are systems already available that do this.

  Are you sure? yes | no

gcouger wrote 03/27/2015 at 05:16 point

I hate to rain on your parade but  underwater The Wi FI signal is limited to feet if not inches unless you drop down to the low kHz range where the antenna problems are horrible and data rate is worse. 

I knew some guy's that tried to us Zigbee to send data from a drill bit to the drill collar behind the rotating joint in drilling mud a distance of less than a foot at 900 MHz. The mud won.

If you pull it off you can make a fortune I'll point the way, no charge. The world needs it bad.


  Are you sure? yes | no

Blecky wrote 03/27/2015 at 06:20 point

Ha hence the name subterranea positioning system (arguably some underground features can be filled with water though). If I were developing an underwater positioning system I wouldn't be hosting it here :P

  Are you sure? yes | no

andres ortiz wrote 03/28/2015 at 06:28 point

don't most underground rock formations have porous rock that absorbs water? the wikipedia article on underground radio transmission also states that rock attenuates radio waves pretty horribly.

  Are you sure? yes | no

Blecky wrote 03/28/2015 at 07:33 point

You are most certainly correct. But the point of this project isn't just limited to a confined underground rock formation:
"Subterranea refers to underground structures, both natural (such as caves) and man-made (such as mines)." -

It's not meant to penetrate the rock itself, it's designed to find your position in any open structure that is limited in access to GPS signals.

I was going to call it underground positioning system, but people might confuse it with UPS.

  Are you sure? yes | no

andres ortiz wrote 03/28/2015 at 08:24 point

ahhh, well that sounds extremely useful then. I hope you get it working, that sounds like it would be a very fun system to use, lots of practical uses.

  Are you sure? yes | no

Blecky wrote 03/28/2015 at 08:31 point

Cheers :)

  Are you sure? yes | no

radiusmike wrote 03/29/2015 at 03:02 point

A friend of mine worked for Halliburton where they tried pulsing the mud at Hz rates.  SNR was horrible, but some signals did manage to get up the pipe.  Wasn't effective enough to warrant finalization.  A tough problem.

  Are you sure? yes | no

Blecky wrote 03/29/2015 at 03:08 point

The best method in my mind would be to pulse with a mechanical wave instead, but that presents problems in itself (vibrations could cause structural issues/collapse, need low transmission rates and high amplitudes to send effectively over long distances, lots of interference from drilling equipment etc.).

A tough problem indeed.

  Are you sure? yes | no

chris jones wrote 05/14/2015 at 21:24 point

Gordon - Look up underwater modems. There's a company that has worked out the bugs with using sound underwater used to carry data. Also the "once" secret SLC system uses blue/green laser to penetrate seawater to 1-way communicate with shallow underwater vessels from satellite. We (USA) already have it but the Japanese are working on one too.

Blue laser works in clear seawater and green laser works in muddy littoral waters. System is called TRITON. DARPA is working on it.

  Are you sure? yes | no

James Fraser wrote 03/27/2015 at 02:35 point

This project looks really interesting, keep up the updates!

  Are you sure? yes | no

Blecky wrote 03/27/2015 at 02:51 point

Cheers, will do! Thank you for the skull.

  Are you sure? yes | no

luiz abbadia wrote 03/22/2015 at 13:21 point

when do we start?

  Are you sure? yes | no

Blecky wrote 03/23/2015 at 02:49 point

Currently I've worked out most of the issues involved in building such a system. I will have information up shortly concerning the technical details of the project.
I'm not sure exactly when I will have a working prototype, but I hope to have an initial demonstration by the end of next month (don't hold me to this :P ).

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates