Showing posts with label ibeacon. Show all posts
Showing posts with label ibeacon. Show all posts

Friday, September 25, 2015

Ibeacon with thin form factor and that really works!

My ibeacon orders just arrived recently after a few months of bumps and so happy to check whether it really work just as the manufacturer had claimed. So here's the result of my testing and review.

Form Factor and Design.
The ibeacons have rectangular shape with thin form factor. It comes with just one neutral color and that is white. The ibeacons that I ordered are boxed in bundles of ten. My impression is that this ibeacon really means business because the packaging alone is absolutely looks expensive.


The ibeacons with my itag:



 The form factor is well suited for applications such as when it is used to be given away to employees to easily track their movements within certain locations because they can be easily inserted in the wallet or be attached at the back of identification cards. The white color is very neutral and can be easily redecorated with stickers or through silkscreen printing.

It can still be modified further by using a higher capacity battery like the CR2032(240mAH) which stores energy 2.5 times more than the CR2016(90mAH) and this ibeacon casing can be an excellent substitute for the newly modified and upgraded ibeacon:

If the pcb is taken out from the 3.3mm thick casing, its thickness is about 0.8mm including the soldered compoments which means, it can be easily inserted inside any device that one needs to modify. Thinner(0.5mm thick) rechargeable batteries at 0.1mAh capacities can used to power the ibeacon. The 0.1mAh is enough to power the ibeacon for about a few days or more. The thin battery is absolutely fine when you want to hide the ibeacon inside the device that is being modified.

source: Thinergy

Even without the thin battery, the whole ibeacon can be inserted inside a cellphone with plastic casing like Samsung J7. Here's how I did to turn my cellphone into a an ibeacon:



Removing the pcb from the casing is not easy. I almost destroyed the casing when I attempted to open it the first time.

The Hardware.
The ibeacons are powered by Nordic nRF51822. Nordic is a Europen electronics company. They have impressive wireless product lines and of course, nRF51822 chip is one of those. The nRF51822 has an arm-based microcontroller as its core. This should make the ibeacons more responsive. It is also equiped with an excellent power management circuitry that should make it consume less power enabling batteries to last longer.
The internal construction is well thought of design which means it gives the impression that it was not created in a small garage by a bunch of college dropouts.

The Software
Configuration software is easily downloadable from the IOS AppStore and Android Playstore. My main focus in rating whether the software is really working are as follows:
1. Password can be easily changed.
2. The name of the Ibeacon can be changed
3. UUID, Major  Minor can can be changed
4. Transmission Power can be adjusted
5. Advertising Frequency is fully adjustable
6. Should have transmit only mode when already deployed.

All of the above is supported by the software and to add a few more good impressions, the software is very easy to use and provides tips to help newbies to get started quickly.

The configuration software also allows the changing of the measured power. I used to think that this parameter is not that important but when I tried to experiment with it using the Estimote software, I realized that this cool feature should not be ignored. Based on the results of my experiment, as I decreased the value, the Estimote software is able to tell more accurately the distance between the phone and the ibeacon. This feature calibrates the ibeacon.


The Power Consumption
Actual power consumption of the ibeacon is accurately adjusted based on the configured transmission power and the rated I think based on the measured power, the battery(CR2016) will last at least 6 months. Here is the comparison of the 3 ibeacons that I have:

The HM10(IBEACON) and Axaet Ibeacons(ziruzbeacons) and the minew ibeacons(1313_48278) have the following configurations:
1. Configured Transmission Power:

  1. HM10 = -23dBm
  2. Axaet Ibeacons = -23dBm
  3. minew ibeacons = -16dBm

2. Measured Transmission Power:

  1. HM10 = -59dBm
  2. Axaet Ibeacons = -86dBm
  3. minew ibeacons = -59dBm

3. RSSI:

  1. HM10 = -54dBm
  2. Axaet Ibeacons = -85dBm
  3. minew ibeacons = -72dBm

In ths case, the Minew Ibeacon with thin profile is the clear winner in terms of power consumption efficiency.


Overall impressions, the ibeacons are not just gorgeously designed but are really fully functioning devices that does its jobs very efficiently just as it is expected.

Tuesday, June 16, 2015

Customizing the HM-10 BLE Module Firmware

There were a lot of complaints regarding the power consumption of HM-10 ble module during sleep mode. My formula for computing how long the battery will last when the HM-10 is configured as ibeacon is quite close to being accurate but surprisingly in the real world, the module does not performed as described by the manufacturer. As proof I took a screenshot of the HM-10(IBEACON) and an AXAET Ibeacon(ZIRUZBEACONS). Both ibeacons having the identical configuration(TX Power= -23db and Advertising Frequency=1200ms) but the rssi and measured power had huge differences which indicates that the HM-10 is not performing as expected.


There are many work arounds to make the HM-10 consume less power and one of them would be to flash new firmware to the TI CC2541 chip using BlueBasic. Uploading a new firmware is quite risky and very challenging but if you succeed in this endeavor, it will be very rewarding because you can access all of the available resources on the TI CC2541 chip. You can even take the customization further to add buzzer, temperature sensors, heart rate monitors, monitor the current battery charge level and many more without the need of external microcontroller.

Here is how to connect the cc debugger to HM-10 BLE Module:

The downside of this is like saying good bye permanently to the original firmware that came with the ble module but in terms of benefits, it is well worth it.

Wednesday, June 3, 2015

Pass2U Pass Issuance Service Integrated with Ibeacons

I was searching for existing ibeacon apps that offers a complete working system that should allow small shop owners jump start their mobile marketing strategies when I stumbled upon the app Pass2U created by a Taiwan Based Software Development Company MicroMacro Mobile. It fits my search criteria and almost(70%) meet the features I mentioned in my previous article(Ibeacon Apps Must Not Be Unique).

The android app is like an organizer that lets users keep all of their discount coupons, loyalty cards, event coupons, debit cards, boarding passes, movie tickets and other offerings in a single app. The good thing about this is when one of the passes stored was created by a merchant from the same website(pass2u.net) and has enabled the ibeacon feature, the user will receive a notification telling the user that he is near the merchant's shop.

For those who are not yet familiar about digital passes, here is some information about it:

What’s a Pass and How do I Use One?

A pass is a digitally signed document such as a ticket, membership card, or coupon that can be distributed by email or a web download. It can be opened with the Passbook app on iOS or with an app like PassWallet on Android. On iOS, a pass can also be linked to a companion app, for example the Eventbrite app which allows you to buy tickets and add them to your device’s Passbook, but that’s not mandatory.
Apple’s specs outline four main pass types:
  • Boarding passes
  • Event tickets
  • Retail coupons
  • Store cards
There’s also a Generic pass type that covers other purposes, and this the type of pass I’m using here.
Each pass contains various bits of data. Some, such as a member name and bar code are displayed visually on the “front side” of the pass. Other data is located on the “back” of the pass and triggered by the “i” icon. Passes can also contain some hidden information such as a time and location which can be used to display relevant notifications.
Source: sitepoint

I tried to explore the whole system and experimented with their store card to check if it's really working and how easy it is to navigate throughout their system, and I have confirmed that yes, it really works and very easy to use with their very good user interface design. Anybody who can read and write and knows how to click buttons can easily get used to the whole system.

Here is a sample loyalty card created from pass2u.net:



Here is the sample notification I received:

Up to 10 ibeacons can be added for a single pass:


What Pass2U missout is a small app that could be integrated with their android pass wallet app is an ibeacon pass issueing/dispensing app. What it basically do is to give away passes to people who downloaded the app each time they pass by the shop and when their smart phone has detected the ibeacon signal.

Friday, May 29, 2015

HM-10 Over-the-Air Configuration Software from the Manufacturer

About 3 months ago, I attempted to test the available software provided by the manufacturer of HM-10 modules, and I failed to make it work but today, I tried to experiment with it and to my surprise, I was able to make it work! This probably because the software has been updated or it could be that my previous configuration of HM-10 was wrong, but I am quite sure that I used the same configuration as before.

The first step I did was used my configuration as indicated in my previous article(Configuring HM-10 to Support Over-the-Air(OTA) Update). Then, I downloaded the new apk from the manufacturer's website but I dont recommend downloading the software from there because they frequently update the files. Here is the apk file I used for my experiment and testing: http://bit.ly/1FkfwJ3. And check the screentshots below as a result of my successful testing:

The Initial Screen. I pressed the search button. 
The app found my ibeacon, I had to tap the ibeacon to configure:
The configuration screen appeared, The initial status message is "connecting to ibeacon....", so I had to wait until it connects to the ibeacon. This is where my precious testing fails, the app could not connect to the ibeacon. But today, it mysteriously connected successfuly.
I tried to type "AT" on the input text and pressed the send button next to it, and the ibeacon responded "OK":



All AT commands should work with the software except those that will affect the ibeacon module's connectivity.


Friday, March 6, 2015

Securing Your Ibeacons

Hi tech hackers are constantly looking for vulnerabilities and definitely ibeacons are not exempted from being the target in fact because its new, it is often become the primary target. Securing the ibeacon is perhaps the number 1 goal of every business just like any other IT implementation projects.

Ibeacons constantly advertise their signatures, this mainly composed of UUID, MAC Address, Minor and Major. If the app you design is dependent only on these parameters, then the ibeacon security implementation is very weak and is very vulnerable to all sorts of hacking methods. So an additional security layer is needed. There can be a number of ways to do this. The following are my ideas of securing the ibeacon implementation:


  1. Most Ibeacons can be configured over the air(OTA), it would be wise to always enable the password protection features of the ibeacon so that it can only be accessed by qualified and authorised administrators. 
  2. With Ibeacons' signatures publicly advertised, without having an additional security layer, hackers and competitors can easily device new ways to either clone the ibeacon's signature and create push messages that will show up their own advertisements.  To prevent this from happening, a security layer must be implemnented. A good example is by letting your customers register before they can use the mobile app. Another good example is adding additional validations such as how did your client came in to your store, there must be a pattern, they could have passed through McDonald before they came in and it's just so happen that McDonalds have implemented ibeacons and was detected by your customer's smart phone and was logged by your mobile app. The creation of additional security layer depends on your creativity.
  3. The APK must also be secured to prevent hackers from reverse engineering the app. If hackers have access to the source code of your app, the security layer implemented will be exposed. 
Always remember that as the technology becomes more sophisticated, hackers can be one step ahead, but you still can beat them if you know how to stop them.

Sunday, March 1, 2015

How Ibeacons Will Change the Rules in Retailing

The retailing business is extremely competitive. Not many people succeeds in this kind of business. A carefully crafted marketing strategy and with the help of the latest gears and gadgets can help improve the business' chance of survival.

Studies shows that a more personalized service, the introduction of new ways to attract foot traffic, analyzing people's movement inside the store and getting to know more about each one of your customers personal preference can help in the creation of strategies to get these customers to spend at the right time.

Just like for example a teen-age girl happens to pass by a Starbucks, and she really liked to try a newly introduced strawberry flavored coffee but she is short of $1, and all of a sudden, a popup screen on her phone informed her that she has a $2.50 discount coupon and she can even get another $2.50 discount if she invites a friend. So immediately, she invited her best friend who happens to live just a block away to join her. The popup screen appeared because her phone detected the presence of ibeacon.

The sale could have never happened if the discount coupon was just advertized on a magazine.

Another case study is integrating the Beacon Hands Free payment system by Paypal aimed at targetting busy urban professionals. One scenario is that a busy working mom who loves to take with her a coffee with Belgian waffles which is available at Grandpa's Coffee Dine that is always full of people like her. She had to spend 30 minutes every morning just to get her favorite food but now, with the help of Paypal's Beacon Hands Free Payment system, she can put her order and pay online and when her smart phone detects the ibeacon of the store, the store keeper will be notified and will just take her already prepared order outside just a minute before she passes by and and when she's in front of the store, the store keeper will just hand over the coffee and the waffle to her. She may do this only once and each time she passes by the store every morning, the store keeper will always be there to give her favorite coffee and waffle.



Update: With the upcoming release of Apple's Iwatch which is capable of receiving ibeacon signals, receiving discount coupons and other promotional campaigns to improve brand recognition and gathering data of customers' buying habits will now even be so much easier.

Friday, February 27, 2015

Configuring HM-10 to Support Over-the-Air(OTA) Update

One of the key features of Ibeacons is the ability of apps to manage them remotely or via over-the-air update. This is true especially when maybe hundreds of ibeacons are deployed, there is just got a way to manage them remotely. HM-10 is surprisingly has this feature as well. Other advantage of OTA is that it will allow HM-10 to toggle between an Ibeacon and a regular Bluetooth module which can enable it to gather information on its surroundings and transmit it to a server without the need for an external microcontroller.

My previous post(The proper way of turning the HM-10 into Ibeacon) only dealt with(obviously from its title)how to configure HM-10 into ibeacon. But it did not mentioned about how to configure it to support Over-The-Air update which I still do not know during that time of writing. So now, I am willing to share with my readers and visitors how to really turn HM-10 into a real ibeacon.

Actually, it is very simple to do it, HM-10 should be connectable and be able to receive incoming data while broadcasting the ibeacon signal. By turning these off, we are sacrificing the few milliAmps of power consumption, but trade-off is really worth it. Here is the procedure:



I have proven this to work by modifying the source code of the android app that I used in my previous post(More Fun with HM-10). To describe in more detail the modification I made, I just replaced the following line(in bold letters)) in DeviceControlActivity.java:
private void makeChange()
{
string str=RGB[0] + "," + RGBFrame[1] + "," + RGBFrame[2] + "\n";
......
}
with this new code(in italics)to turn off the ibeacon:
private void makeChange()
{
string str="AT+IBEA0";
......
}

(credit to 

The effect of my change is that each time the value of any of the led dimmer slider control changes, the android app will send the command "AT+IBEA0".  

For security reasons, just enable password protection so that accessibility can controlled and restricted.


Wednesday, February 18, 2015

A Simple Ibeacon Scanner App in Android

I have written several articles about the possible uses of Ibeacons but I have never tried to develop a demo software to show how Ibeacons really work so I decided to develop my own app. This app will run at least on Android devices with Android Jelly Bean 4.3 operating system and equipped with Bluetooth 4.0 hardware.

I have never developed an Android App before so this is my first attempt to develop an app. I will be relying heavily from the search results that google will return and my prior experiences as a developer will not help me.

As a noob in this domain, I have to have a strategy to get this task running in 24 hours so I have identified the following steps:
  1. I will get the latest version of Android Studio, the official Android Development Environment.
  2. Watch some youtube tutorials how to properly setup this IDE.
  3. Complete at least 1 full basic tutorial Android Developer's Portal.
  4. I will use the source code of the Android app I used from my previous article More Fun with HM-10 and read something more about BlueTooth Low Energy API that is already inlcuded within the Android Studio.
  5. If all else fail, then it is a failure.
After 12 hours, I came up with a simple app capable of detecting Ibeacons and display them on screen. Here is a screenshot of the app:

The original app does not check whether the device it detected is an ibeacon so I did some research how to check if the device is an Ibeacon.

This is how ibeacons work:
Ibeacons continously transmit their identity(device name, mac address, uuid, minor, major, etc) which includes the pattern that makes it an ibeacon.

The ibeacon signal or the advertisement packet that we need to check is on the 6th byte of the transmitted signal ignoring the first few bytes which corresponds to the company or manufacturer identifier, the value should be equal to 0x02 and we need to confirm the length of the transmitted signal and it should be 0x15 which is located on the 7th byte.

The received bytes each time a bluetooth device is found is stored and can be processed within the callback component.

This app that I just developed provides a basic solution and can be further developed to meet almost every requirement for specific ibeacon application. Developing an full android app is not my expertise but I will continue to keep on developing this app until I become an expert. 

Update: If you are interested to check the app I created you may download it here: https://t.co/8XxjA8NGmh
And the source code can downloaded here : https://t.co/ryV9qT5QTW

The app frequently crashes because the code I inserted is still incomplete, it still needs further enhancement, error-catching routines to prevent it from crashing.

Saturday, February 14, 2015

How to connect Ibeacon V2.0 to a PC with CP2104 USB 2.0 to TTL Converter

I have just came up with a new version of Ibeacon to replace the old ibeacon. Some improvements I made are the following:
  1. It is now thinner at 12mm external thickness down from 18mm thick and is shorter by 10mm. 
  2. The battery I used is the expensive Ipod Nano replacement battery because this battery is very durable, it will not be damaged even if I connect the CP2104 Usb 2.0 to TTL Converter. 
  3.  I have added a new on/off switch to avoid damaging the HM10 module while charging the battery.
  4. I have also rearranged the the position of the four pins used for charging the battery and configuring the Ibeacon.
Here is the new Ibeacon:

 


I am not done yet with the design of the casing but I will be updating this blog when I am done with it.

To connect the new ibeacon to CP2104 USB 2.0 to TTL Converter, you may do the following connection:

Tera Term is the software I am using to configure the Ibeacon and this is an excellent article about how to use the software Tera Term Guide from Sparkfun

Update: I have just finished my casing design and here it is:

The design is very basic bit looks nice when 3d printed. I nwill still; have to add some design to make look nicer. I was inspired by this very basic design:

Credit to the Owner

Here's the actual 3d printed casing:


The charger or docking station will be finished soon and here is the draft design:

The four holes will be for the slots for pogo pins and the final connector is a standard female(full size) usb.