For one of our projects, we provided our client with a custom CMS that enables them to manage reservations on their newly constructed Convention Center. One particularity of this magnificent building is its ability to dynamically change room sizes based on their client’s needs & reservations ; meaning that one event could occupy the equivalent of 15 rooms or that 15 events could happen in 15 different rooms at the same time. Of course orienting people with that many rooms is no easy-task and our Screens needed to adapt intelligently to the building’s perpetual transformations by providing accurate directions ; without losing time of configuring each event for each screen’s location. We had provided a few dozens of VideoWall, Totem and Horizontal screens and we wanted them to display appropriate events based on their location and orientation. Since the building’s infrastructure is constantly evolving, totems are frequently moved around to display orientation about nearby events. In other words, we needed a way to be able to micro-locate a screen inside the building and know in which direction it was pointing to in order to automatically and accurately display arrows pointing to the right direction.

Beacons and other appetizing technologies

In order to micro-locate our screens, we quickly put our eyes on Beacons. Beacons are low-powered devices that can notify external devices of their presence. They basically hold and broadcast a simple unique identifier leaving us the work of doing what we want with them. In our case, we needed to locate our totems. Since a totem can be moved around and GPS signal inside buildings is not precise enough, we placed those beacons at a fixed-location and used their unique identifier to translate them into coordinates with the help of our backend. Then, with enough beacons around and with the help of their signal intensity we were able to trilaterate the signals to determine precisely where each totem was located.

Since at the time, our Digital Signage Player was not natively supporting the Bluetooth Low Energy (BLE) profile used by the Beacons to communicate, we had to create a custom board that would not only integrate a BLE chip to talk with the Beacons but also to integrate other technologies such as a digital compass to know which direction the totem was pointing to. It took us a few weeks to design, program and test the board. This board needed to connect to our Player through RS232 and act not only as a hub that would connect to the other chips (BLE, Compass, etc.) at specific baud-rates but also as a buffer that would store data received by those chips and deliver them to our player when needed.

Board

Our custom board integrating other chips: BLE, GPS, Compass through a common RS232 interface

All roads lead to Rome the right rooms

Once we were able to figure out where our screens were, we still needed to know where they were pointing to! We naturally went with the compass option since it wasn’t involving a complex installation and we would be able to accurately get the orientation we needed.

The main problem we faced early-on was the electro-magnetic distortion created by our totems’ materials. Whenever our compasses were less than 30cm away from a totem, their headings would lose or gain up to 20 degrees. This was easily fixed by moving the chip away from the totem itself. Once done, we still had to calibrate each compass so that its local reference was based on its totem. In other words, pointing to North (0°) required both that the compass points to north whenever our screen was facing north. That way, our widget would be able to know which arrow to display for each four main directions (North, South, East, West) depending on the reported heading of a totem.

With all of these data at hand, the only thing left to do was developing the widget, using our custom framework, that would integrate all of these data to display the right events on the right screens with the right direction.

It takes less than a second for the arrows to change direction when someone moves or turns a totem around saving hours of otherwise manual configuration from the operators every weeks.

Totems