loading

This instructable explains how to build an indoor location system with centimeter accuracy for <$ 200 using ultra wideband. do it yourself.

Most indoor location systems make use of wifi, bluetooth, wifi fingerprinting etc and show accuracies within several meters. Ultra wideband systems offer high accuracy (cm range), due to wide signal bandwidth. However, these UWB systems are very expensive, so for a setup where you want to localize something in your project (for example maneuver your lawnmower) you can easily spend > $1000 or more.

We decided to make a universal PCB that can be used as tag or anchor with or without wifi interface and an UWB ranging transceiver. With these diy-kits you can setup an indoor location system consisting for 3 anchors + 1 tag for around $200! And its even less, if you just want to measure the proximity to something... (1 anchor + 1 tag).

In this RTLS system, several anchors were build that dump the ranging data over the local network to a server. This way, long range communication and integration into already existing environments is possible, without having a certain master anchor that calculates the positions and requires alot of processing power. This is also possible, but requires messaging between the anchors and a processor connected to a single anchor (master). However, its more convenient to do this over wifi. A local PC connected to the network receives the data from the LAN in nearly realtime, runs the positioning calculation and draws the position of the tag.

See one of our videos how the results look like. In this instructable we will explain how we build and setup the system.

Update: Jan, 10th, 2017: We just hand soldered and finished a new and smaller tag, which is compatible with the old ones. Nice! Worked straight away. Even nicer! You can see the PCB in the picture. Although the "t" got wiped away in the URL I like it very much...

Please note: this instructable is still in progress... you can also visit us localino.net

Step 1: Design Your PCB or Get the PCB

We designed an universal PCB, which can take the UWB ranging chip and a Wifi Interface + some SMD compoenents. For this purposes we make use of the decawave DWM1000 and the ESP8266-07. The latter is well known in the maker community. You can either design your own PCB or take one of ours, its already proven and works like charm. We also started initially with wiring the components, this was very annoying and error-prone. Next time I will do a PCB immediately.

As a design tool for your PCB you can for example use EAGLE or KiCAD. there are for sure dozens of PCB design tools, but if you want to start with a PCB we recommend to use one of these two. There are plenty of tutorials on youtube.

When you finished the design, don't take the effort to print these PCBs on your own. There are many tutorials how to make a PCB, but honestly, this is very exhausting and -hey- for this setup you will already need 4 PCBs, right? So go to some PCB manufacturer and let him do the job. He will charge you some bucks for a piece, but you will know the PCB is ok, tested and will work. There is no effort to find dead traces, take care of the etching and so on. I have manufactured hundreds of PCBs myself in the early days, its not worth anymore. Unless your design is not super super secret or complicated design you can also send them to the very very cheap manufacturers.

Step 2: Solder the Components on Your Board

Now its time to solder. Again, there exist plenty of tutorials which show and explain SMD soldering. Some of them make use of hotair or reflow stations when soldering SMD. These are useful, no question, but for your personal project you should have taken care that you can easily solder by hand with a standard soldering iron during the design phase already. Unless you wanted a very very small PCB ...

In this PCB we make use of 1206 SMD, because we decided we dont want to use a stereo microscope to solder the components onto the PCBs. And again, you will need at least 4 PCBs to be soldered, so it should not take days to finish it.

Solder a single tag (without Wifi component) and (for 2D positioning) 3 Anchors (incl. Wifi) or (for 3D positioning) 4 anchors.

Three anchors will push all ranging data of a single tag to the software (see later steps), which processes the position in space.

Step 3: Flash the Firmware to Your Devices and Configure Them

Nothing works without firmware and hardware. Arduino's are awesome devices, they are cheap, well acknowledged in the maker world and there is plenty of libraries available. This is the reason why we decided for them. Luckily, there is also already a library which supports the ESP and Decawave chip. You can also find the code on github or on our website www.localino.net. You will need to connect an FTDI or an ATMEL ICE etc (DebugWire) to flash the firmware onto the microcontroller. DebugWire is nice, because it also offers debugging capabilities...

Adapt the atmel code and flash a unique ID onto every anchor and tag. You also need to flash the ESP and connect it to your network. This way, the anchors will send data to your localization program

.

Step 4: Start the Software

Now place the anchors in space and note down the positions in space inside the configuration file of the "Localino Processor" (thats the python code we uploaded to our website, which processes the data from the Anchors). Configure the IP of the receiver PC and power up everything.

Step 5: Enjoy.

That's it, enjoy.

We will keep updating this instructable and add more details... stay tuned!

Hi<br><br>Can you please point me to the localino board PCB layout files? <br><br>Thanks<br>Sujith<br><br>
<p>I question from someone who doesnt know much about IPS. Does the system detect the obstacles or do we need to &quot;map&quot; the environement ? I wont to devellop a rover that would move in an environement and react to the obstacle. Is this product adapted for my project ?</p>
<p>hi, i dont think this is a good idea using an IPS. i would give the rover some sensors like ultrasonic, lidar, radar etc to make it detect obstacles. you can use the IPS though to monitor / control the robots position from remote.</p>
<p>I'm interested in this for a 'hotel' type environment, multi-floor w/ common corridor and rooms on each side, to locate to the 'room' where a tag might be. What would expected tag placement be?</p>
<p>you mean the anchor placements to locate the tag? This cannot be answered without knowing more about your environment, walls, concrete, wood, etc. </p>
<p>Typical hotel walls are fire drywall over metal studs, sometimes double thickness drywall. There are occasions where they might be block in older buildings. Another example might be a hospital - very similar to a hotel.</p>
<p>&lt;1cm<br> accuracy? no, its &quot;in cm&quot; accuracy. my measurements say its <br>in the range of &lt;10cm. with less than 3 beacons (anchors) you cannot <br>do 2D position estimation. it gives ambiguous results. more anchors <br>would improve accuracy, or INS sensors, tracking, etc.</p><p>see some histograms here: </p><p>https://hackaday.io/project/18296-localino-open-source-indoor-localization-system </p><p>anchor source code:<a href="http://shop.localino.net/index.php?route=product/product&path=62&product_id=65" rel="nofollow">http://shop.localino.net/index.php?route=product/p...</a> or thotro on github. the tag source is the same, just differnet init procedure and missing UDP part. </p>
<p>You say &lt; 1cm accuracy!! (awesome). How did you measure this? If I were to fix the beacons in a 2m by 3m arrangement would this improve the accuracy somewhat? Would using only 2 beacons reduce accuracy? </p>
<p>Can not find the open source code. Can you provide a link or github repo</p>
<p>Hi, the max distance is specified as 300m in the datasheet. however, it depends on the power level, antenna, etc. see my hackaday post here (</p><p>https://hackaday.io/project/18296-localino-open-source-indoor-localization-system) where i measured the max distance outside. 50m is reliable. In your case I would place anchors in a grid of 20-30m. This will get you reliable positioning for the tags. Because, the tags will automatically talk to those anchors which are in range.</p>
<p>What is the largest distance between anchor and tags?<br>I want make this positioning system but I need them works very stable in large auditorium 100m*50m.. <br>Do you have some ideas? Maybe I need more tags? If more, how much?</p>

About This Instructable

12,141views

106favorites

More by kuek:Localino: Open Source Indoor Positioning System (Arduino + Decawave) 
Add instructable to: