Close

We are now shipping LPS2 Mini and Blueberry!

A project log for LPS Mini

Arduino compatible indoor navigation system with small form factor.

gran-nordahlGöran Nordahl 05/15/2017 at 12:450 Comments

Here comes some updates regarding our LPS and Berry product families!




==== Short version for existing customers ===
* We are now shipping LPS2 Mini and Blueberry! With the boards you will get demo software to access the sensors and, in the case of the LPS2 mini, Two Way Ranging (TWR) capability. The software is not written for the Arduino IDE like our previous generation of boards, but instead in C using the Nordic SDK for the nRF52 and compiled with GCC. We can also provide Python drivers for ROS. More advanced features such as TDoA and wireless distribution of clock and sync to be sold separately.
* HW for building wired networks for distribution of clock and sync is in the making.




=== Long version for both old and new customers ===
There are three main principles when measuring distance and figuring out a position using radio: Received Signal Strength Indication (RSSI), Time of Flight (ToF) and Angle of Arrival (AoA).
* RSSI is simple, but suffers from severe problems as soon as the signal path is blocked and attenuated. BLE beacons use this technique, making them ideal for cheap proximity sensors, but not good enough for navigation.
* ToF measures the time it takes for a radio wave to travel a distance at the speed of light. This requires complex hardware, but is a lot more reliable than RSSI. By using extremely short transmissions/pulses, reflections in nearby objects will not overlap with the direct wave at the receiver. This will, in theory, prevent the effects of so called multipath fading. Transmitting short pulses is the equivalent of using a very wide bandwidth, hence the name Ultra WideBand radio (UWB).
* AoA requires more than one antenna to figure out the direction of the incoming wave. Contrary to RSSI and ToF it reports an angle, not a distance. This method has been extensively used for naval navigation, where a ship takes bearings to known radio beacons.



No matter the method in use to do the actual measurements, a position in space can be calculated using a geometrical process called trilateration. Adding filters to the process will further improve the result. All this functionality is often integrated in a so called location engine.




ToF can be put to work using three main principles: Two Way Ranging (TWR), Time Difference of Arrival (TDoA) or Reverse TDoA (RTDoA):
* TWR is a simple method performed point to point between a moving tag and one or several anchors acting as reference points with known positions. TWR works well when tracking a limited number of objects, but the update rate decreases the more tags asking around for distances. This was our initial approach and is used with our robot beds: http://www.loligo.se/roaming_beds/. If you are in Oslo you can take a look at them here: http://henieonstadsanatorium.no/en/event/unik-overnattingsmulighet-på-henie-onstad-kunstsenter
* In its pure form TDoA has tags that only transmit and anchors that only listens. Anchors collect and sends time stamped UWB packages to a central server, where a location engine compares the different arrival times and calculates tag positions. With many active tags, collisions will occur putting an upper limit to the throughput and number of active tags in a TDoA system. Some kind of synchronization also among tags can thus be useful to achieve highest possible update rate and number of active tags. The problem is that reception costs more power than transmission, so enabling the receiver once in a while to get synchronization packages has a negative impact on tag battery life. TDoA is well suited for tracking people in offices: Lowest possible power consumption combined with large number of tags.
* In RTDoA things are turned on its head. Synchronized anchors transmit packages one after another and tags listen. The location engine is run locally in each tag. Such a set-up has no upper tag limit and has the lowest possible latency for the tag to know its own location, to the cost of using the power hungry receiver instead of the transmitter. A way to limit the problem is yet again some kind of time synchronization between anhors and tags, so that tags can sleep most of the time and only listen when needed. RTDoA is very well suited for flying drones or similar applications, where high update rates and low latency are the main concerns.



What method to use depends on required update rate, number of tags to track, latency, required battery life, infrastructure and if the tag shall know its own position or not.




Our new LPS2 generation of boards can handle all the above mentioned UWB based ToF roles and as a bonus act as a BLE beacon. We also have a product family called Berries in the making, with many sensors and BLE. First out on the market are LPS2 Mini and Blueberry. We have alredy begun shipping them:

https://www.instagram.com/p/BUHEjfIFdhk/

https://www.instagram.com/p/BUHEMZLlEs7/
http://www.loligo.se/LPS2_mini/LPS2_mini.pdf
http://www.loligo.se/Blueberry/Blueberry.pdf
They come pre-loaded with a demo firmware and bootloader allowing for FW upgrades via BLE. Source code will be availble as C code to be compiled with GCC for nRF52. Advanced features like wireless distribution of clock and synk, TDoA, RTDoA, filtering and location engine are not included in the basic package, but can be purchased separatley. The included demo code for LPS2 Mini will handle on-board sensors, data streaming via BLE / USB and TWR. Blueberry has no UWB, but several extra fun sensors. Its demo application will come in two flavours: motion analysis or data logger / weather station.


Our old Arduino compatible LPS1 generation is still available and we will produce more whenever needed:
http://shop.loligo.se/product/lps
http://shop.loligo.se/product/lps-mini
https://hackaday.io/project/7183-lps-mini
Its 8 bit AVR processor is not powerful enough to run its own location engine, so RTDoA is out of the question unless it is supported e.g. by a Raspberry Pi as a backend math wiz. Even though its limitations we have managed to run TDoA with wireless clock and sync distribution also on LPS1!


Wireless clock and sync distribution is very practical, but suffers from a time uncertainty on top of the location uncertainty (time and distance are just two sides of the same coin). This adds up to a 20 cm uncertainty, instead of the 10 cm achievable with TWR. This is good enough for many applications, but wired clock and sync distribution is needed in TDoA/RTDoA applications to get highest possible performance. We are working on a board called LPS2 HUB to inject clock, sync and PoE via pair 3 and 4 in up to eight CAT5 or CAT6 cables, while using pair 1 and 2 for 10/100 Mbit ethernet. Several LPS2 HUB boards can be connected to form large clock/sync distribution networks. Currently LPS2 HUB only exist in the CAD program, but we are working hard on producing the first prototypes:





In the receiving CAT 5/6 cable end a board called LPS2 PCS (as in Power Clock and Sync) translates and provides our upcoming anchor LPS2 with ethernet, jitter cleaned clock, sync and PoE. LPS2 PCS has left the CAD stadium and exists as prototypes:




LPS2 itself has left its prototype stage and is currently being produced.


We have more fun things cooking in the lab (e.g. a textile exhibition for a museum and a super cheap solar powered lamp for Kenya and Syria), but more about them some other time. Please feel free to drop us an email, or come and visit in Stockholm or Brisbane! In Stockholm we will force you to make your own laser marked pens. In Brisbane you will have to pat the lab cat and eat mangoes.

Best Regards,
Niklas Casaril and Göran Nordahl

Discussions