Real-World Context for your Apps

The idea of small, extremely portable, digital tags, equipped with an ARM processor and numerous sensors, attachable to real world objects and discoverable by any suitably enabled smartphone app had captured my imagination. So I duly shelled out US$99 for the pre-production not yet FCC-approved Estimote(TM) Stickers Nearables Developer Kit containing ten Bluetooth Low Energy Beacons.

I was excited to get my first packet of Estimote Stickers (“real world context for your apps”). This was my first encounter with beacon technology.

I downloaded the Swift tutorial and the SDK from the Estimote web site and started learning. I was finding out about two new technologies at once, the Internet of Things (IoT) in the form of the the Estimote Stickers, and Swift, Apple’s new computer language. It was a lot of fun.

Design

Stickers come in five different colours and look and feel rather like large children’s pencil erasers. They are a little bit squishy and have a sticky back. They are shaped like irregular polygons about 6mm thick and between 70mm x 30mm for the largest down to 30mm x 37mm for the smallest. They weigh 8g to12g each, averaging 9.1g. The weight of the Developer Kit including the cardboard packaging for ten stickers is 141g.

Estimote Stickers Nearables Developer Kit (Box closed)

A great deal of care has gone into the aesthetic and colourful design of the stickers and their packaging, which I would describe as “marketing driven high quality consumer grade”.

Estimote Stickers Nearables Developer Kit (Box open)

Broadcast Data

Not only do the stickers broadcast a unique identifier (which is arguably the absolutely most important thing that they can do), but as a bonus you also get a ton of information from their built in sensors. Currently the stickers are equipped with sensors for detecting their own orientation, temperature, and movement. They also broadcast their firmware and hardware versions, battery voltages (“idle” and “stress”), power, and advertising interval. Each sticker comes preconfigured with a name. Current names are pretty arbitrary: “bag”, “dog”, “car”, “chair”, “door”, “fridge”, “bike”, “bed” (!), “shoe” and “generic”. Why not “coat”, “child”, “wallet”, “monitor”, “ECG”, “lie detector”, “painting”, “3d printer”? The SDK does not yet support setting or changing the names.

There are probably fun applications for the “bed” sticker and the built-in accelerometer.

Mode of communication

The first lesson I learned using the current SDK is that sticker communication is a one-way-street. The sticker tells you it’s there and gives you its information, but you cannot send information to the sticker. Stickers do not communicate with each other. Stickers are not equipped with GPS. Stickers do not store information. If you want to record information from a sticker, it has to be within reach of a receiver. Given that each sticker is equipped with a processor, memory and bluetooth, this seems to be unnecessarily restrictive. We look forward to future releases with more interesting feature sets.

Perishability

The second lesson I learned is that Stickers are perishable goods. As the stickers are powered by batteries, they must, by definition, die. The first one stopped broadcasting about three months after I received it. In quick succession two others died. Stickers broadcast their information continually, irrespective of whether there is a receiver in the vicinity. Obviously this consumes battery power, as does servicing the on-board processor and sensors. It would be quite useful to have some kind of passive mode where a sticker only begins broadcasting when in the presence of a detector.

The seven left-over stickers all died (of happiness?) when I took them on vacation. I packed them in my check-in suitcase and flew with EasyJet from Hamburg, Germany to London Luton Airport in the UK. When I unpacked the stickers some days after arrival, there was no life left in them at all; they were utterly undetectable. I suspected that the baggage scanning process might have fried the stickers’ processors, but Estimote support assured me that stickers are generally not allergic to flying or its attendant processes, as they have flown with them many times, and told me that the batteries had probably all run out.

Great Support

The third lesson I learned was that estimote’s developer support is extremely responsive. When I emailed them that three stickers had stopped working, they posted me replacements immediately and I had them the next day. When the other seven stickers died, replacements were delivered to me free of charge the day after I told them about it.

This leads to the fourth lesson: sticker management is going to be a huge issue.

Sticker Management, the Management of Mortality

You’re going to want to identify stickers whose battery level is low so that you can replace them before they expire.

You’re going to want to identify dead stickers. If you find a dead sticker, there is currently no way to identify it. You cannot extract its identifier, so you cannot update any data you may have recorded about its attached object unless you have another way to identify that object.

Visual Identification

I assert that it would be a good idea to print the sticker’s identifier as a barcode or QR code on to the sticker at the same time as its id is configured. This might preclude the use of the fun object logos and might challenge the designers of the physical packaging and the sticker production process, but it would make a sticker useful even when it is dead, as it could still be used for identifying the object to which it is attached by scanning its QR code. In an environment where many, possibly dozens, of stickers are present, it would also make it much easier to associate the right sticker with an object. Also, being able to identify a sticker facilitates its own replacement.

The whole process of an end-user acquiring a sticker and associating it (possibly directly at the retail outlet) with a real world object (like a handbag) raises a lot of interesting questions about its implementation.