mercredi 8 juin 2022

Geo-location - the all new geopos-UUID format for instant positioning with iBeacons

I'm working with integrating RTLS systems again for Infrafon devices (www.infrafon.com) - it moves therefore we want to know where it is!!

From my previous experience with Wyres, I know that iBeacon infrastructure based systems are a nice and simple/cheap way to do it - but require a back 'solver' to map the fixed point ibeacon(s) being detected by the mobile device to a real-world map position using their RSSI, AoA, etc data.

For some use cases, the precision required is low, so we could just pick the closest iBeacon and say 'thats where I am'. If only the iBeacon itself could tell the device its GPS position directly...


I haven't found anyone doing this, so I'll throw this idea out there : encode in the UUID the lat/lon/alt of the iBeacon's position when it gets installed, with a specific prefix, and then any device that knows this format can immediately get a rough real-world position whenever it detects it...


the geopos-UUID


A UUID is a 16 byte value:

bytes 0-5 : fixed prefix flagging this as a 'geopos' uuid : "38B8EBE00000" (*)

bytes 6-7 : 2s complement 16 bit LE integer : altitude in 0.1m 

bytes 8-11 : 2s complement 32 bit LE integer : decimal degrees of longitude multiplied by 10000000

bytes 12-15 : 2s complement 32 bit LE integer : decimal degrees of latitude multiplied by 10000000


We only need to do the position once (when the iBeacon gets installed), and then every BLE sniffing device can get a real world position to within a few meters!


Easy and simple to do, all the iBeacons I have used let you set the UUID, and it doesn' cost anything!


Feedback and comments? brian@wt-consulting.fr


(*) For the curious, this is the IEEE MAC prefix that a certain RTLS company once used....