VMBeacon App

If you are one among the faction of people who likes to be e-Notifed rather than seeking for the information intended, then definitely you are craving to bridge the physical and digital worlds. The very thought of connecting these worlds is revolutionary that today’s rapidly evolving mobile advances have created new opportunities for passively discovering the physical world around you.

We @VmokshaLabs, committed to our continual exploration to identify, convert and deliver the best of the mobile technologies into a highly commendable end product, were eager to explore these advantages.


Have you heard about iBeacons?

iBeacons are a class of sensors that follow Apple’s iBeacon specifications. They utilize Bluetooth 4 low energy for communication, which allows an application to continually search for them without draining the user’s battery. They are ideal sensors for determining a user’s proximity (how close the user is to an object), which in certain settings (such as indoors) is more desirable than using GPS.

Selecting the ideal device from the assortment of iBeacons manufactured by different vendors was not difficult, because as a proof of concept conceived by our R&D team, we wanted to create a quick Android application prototype that illustrates how these advantages could be leveraged to a larger scale. Our pick was Gimbals’ iBeacon.


The Gimbal Difference – Connecting the Physical and Digital World

Developed as a part of Qualcomm Labs, Gimbal platform combines advanced best-in-class secure proximity beacons, geo-fencing, location based messaging, analytics, the largest deployment of industry-leading Bluetooth® Smart (Bluetooth Low Energy) beacons, unmatched security features and privacy controls to bridge the physical and digital worlds.

Figure 1:


Advantages of Gimbal platform:

  • Create meaningful consumer relationships by connecting their digital and physical worlds to deliver immediate customer value
  • It’s flexibility to allow developers to use the entire solution or just the tools they need
  • Procure at a low cost compared with other vendors

Disadvantages of Gimbal platform:

  • Technically, though it’s in line with other iBeacons. Gimbal beacons transmit their data in an encrypted format. So, to decrypt it the application has to request the Gimbal cloud server over an internet connection
  • Response time depends on the network strength at that point of time
  • So moving in and out of the proximity of the beacon will have a delay if the application has to depend on a slow network
  • Application user has to incur the data cost for every request that’s been sent


Case Study


Problem Statement

Especially in developing countries, people who need to travel by bus, need to wait for a long time in crowded places such as bus stands and bus stations to catch the bus they are eagerly awaiting for. Often this results in chaotic, panicky & stressful situations leading to people not able to board the bus thus setting the classic example of “Missed the Bus”.


Combine the technology of iBeacons & mobile apps to deliver notification based on close proximity of buses to the appropriate users. Users will have apps installed on their mobile that facilitates the notifications based on the business need.


  • Assign a particular UUID (Gimbal iBeacon) to a bus route rather than to a bus (Registration No.), at the backend via a website managed by the Travel Administrator
  • Physically attach the iBeacons to the corresponding buses
  • Prior to e-booking make sure both the below applications are installed and running in the same BLE enabled device:
    • VMBeacon
    • Any e-Booking application (Redbus, TicketGoose ,MakeMyTrip)


  • Ensure a one-to-one mapping of iBeacons (UUID) to the bus route exists at the backend, so that after a successful e-booking it could be broadcasted along with PNR Number and Ticket Number to the passengers via SMS.
  • The Android based mobile application will facilitate the following:
    • Parse the SMS based on a search pattern to retrieve the UUID
    • Detect BLE signal emitted from the bus by an iBeacon; decrypt the UUID by sending it to the Gimbal cloud server and try matching it with the list of UUIDs stored in the applications memory
    • If matched then alert the user about the arrival of the bus


  • Removes dependency on travel helpdesk
  • Reduces anxiety within the passenger(s) in knowing status of the bus
  • Promotes customer relationship and business advantages to the travel agency

Exceptional Cases

  • Due to an emergency if a particular route’s bus has to be replaced, then the driver has to shift the device to the latter, so that the purpose of having it is fulfilled. If ignored, the user will not be intimated once the bus has arrived at the stop.
  • Hence, make sure the iBeacon always travels along with the bus (physically attached to the bus). It’s simple.


VMBeacon (mobile application) Core Functionality

In Scope

  • Based on a pattern, application will parse the SMS in Inbox and retrieve the iBeacon UUID of the bus
  • On the date of journey, as the bus approaches a station / stand. Once it is within the Bluetooth signal range of the Android device (User mobile), application receives signal broadcast from the bus
  • Application transmits the received encrypted data (UUID) from the iBeacon to the Gimbal cloud server
  • Server responses with the decrypted data
  • If UUID matches, then application alerts the user about the arrival of the bus
  • UUID removed from application storage after confirmation from User

Out of Scope

  • E-Booking and sending confirmation SMS
  • Activating iBeacon with factory ID in Gimbal Manager Site (https://manager.gimbal.com/transmitters)


Figure 2:


Technical Requirements

  • Android release version 4.4.3 and above. Minimum API version 19
  • Gimbal SDK 1.33
  • Bluetooth version 4.0
  • BLE enabled devices

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>