Git Product home page Git Product logo

uribeacon's Introduction

UriBeacon

Project Status Update

We launched the UriBeacon project in 2014 to explore how to use BLE technology to share URLs. Since then, we’ve been thrilled about the community that has formed around UriBeacon, and with the contributors and partners who have worked with us to produce UriBeacon utilities, apps, prototypes, and production-ready beacons.

We’ve also found that in addition to broadcasting URLs, there is much more that can be accomplished with an open beacon format.

To that end, UriBeacon is evolving to become part of the Eddystone open beacon format!

Like UriBeacon, Eddystone supports broadcasting URLs in BTLE advertisement packets via its Eddystone-URL frame type. But unlike UriBeacon, Eddystone offers first class support for a variety of payload types. Eddystone provides much better support for unique IDs via its Eddystone-UID frame, provides telemetry information via its Eddystone-TLM frame, and it opens the door for more future innovation. Read the full Protocol Specification.

There are some protocol changes to this new format, but this move should not impact much for the Physical Web project, which will support Eddystone-URL beacons.

We look forward to continuing to work with you in the Eddystone-URL project!

—The UriBeacon (and now Eddystone-URL) team

Old Repo Contents

If you’re looking for the old UriBeacon specification and code, you can find it tagged here.

uribeacon's People

Contributors

alexdennis avatar bobkressin avatar deqingsun avatar dermike avatar dinhvh avatar don avatar g-ortuno avatar gbuesing avatar harshadsabne avatar kst-collin avatar kst-cory avatar leybzon avatar matthewsibigtroth avatar mmocny avatar neftaly avatar nixxquality avatar oahziur avatar pducic avatar robinkravets avatar roywant avatar sandeepmistry avatar schilit avatar schilitg avatar scottjenson avatar spencere avatar ucxpresso avatar zauguin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

uribeacon's Issues

Issues Detecting Arduino Beacon

I've just setup a red bear labs blend micro as a beacon, everything looks fine and boots accordingly with feedback in the serial monitor. However when I try to detect the beacon nothing shows up.

My first thought was this was down to software on my phone (iPhone) but when I try on an android it still fails. I then swapped the software on the blend micro to the BLEPeripheral simple chat example, all worked fine.

That leads me to think the blend micro is working and it cant be the phone (as many phones all fail) so there must be something I'm missing with the setup of the software.

The pin outs are correct for the blend micro (6, 7, 4) and the beacon appears to be advertising itself when i use a generic bluetooth scanner to find it (pictures attached).

Does anyone have any idea why the scanner finds it but the physical web application cant? I'm out of ideas as to how I can further debug this?

img_5278
img_5279

Validator App Scan Time

Hello Google Team,

I was wondering if it would be possible to increase the scan time for the validator tests when connecting to the UriBeacon. When I run the validator app on my firmware with an advertisement interval of 1285ms, the app has a difficult time connecting to the beacon but if I put the advertisement interval of my UriBeacon to something a lot quicker, such as 100ms, the app works perfectly. I noticed that the UriBeacon sample scanner app has a menu option for scan time, i think this could help with validating beacons that have an advertisement rate greater than or equal to 1285ms.

Thank You,

Cory Mast

Config scan turns off after 2 seconds

  1. Press Config

Expected result:

  • Scanner constantly scanning

Actual Result:

  • Scanner is active for 2 seconds but then turns off for more than 10 seconds

Improve Travis Build times

Investigate whether Travis CI build times can be improved by saving the environment or some other magic

Unlock not working.

When the only operation is unlock, the library returns immediately and closes the connection without waiting for the result from the beacon.

Able to set "alpha" for average in the Settings in UriBeacon Sample App

The Avg Rssi is shown in the Sample App during scans. We currently have a hard coded alpha of 0.5 which means that the average is 50% of the most recent value plus 50% of all the other values.

It is useful to have a lower alpha, like 20% in order to help in the calibration phase.

During calibration we run the scan for 1 minute and collect the average RSSI at 1 meter.

Allow setting the Average Weight (or alpha) in the settings dialog.

NegativeArraySizeException in scanRecord#parseFromBytes with Parrot FlowerPower in range

Looks like the scanRecord#parseFromBytes() method should be a bit more resilient when it comes to parsing Manufacturer Specific Data.

My FlowerPower device advertises the following data:

0x02010611061BC5D5A50200BAAFE211A88400FAE13902FF001209466C6F77657220706F776572203031414505120A006400020A00

As far as I understand, the ...02FF00... portion looks like a bogus Manufacturer Specific Data, that generates an exception in scanRecord#parseFromBytes(), with the following stack trace when at position 23 (the FF in the byte array):

01-06 19:23:13.896    8619-8619/org.uribeacon.sample E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: org.uribeacon.sample, PID: 8619
    java.lang.NegativeArraySizeException: -1
            at org.uribeacon.scan.compat.ScanRecord.extractBytes(ScanRecord.java:295)
            at org.uribeacon.scan.compat.ScanRecord.parseFromBytes(ScanRecord.java:250)
            at org.uribeacon.sample.UriBeaconScanActivity$LeScanCallback.onLeScan(UriBeaconScanActivity.java:290)
            at android.bluetooth.BluetoothAdapter$2.onScanResult(BluetoothAdapter.java:1704)
            at android.bluetooth.le.BluetoothLeScanner$BleScanCallbackWrapper$1.run(BluetoothLeScanner.java:330)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

While it is probably a bug on the manufacturer's end to not have included the mandatory 2-bytes manufacturer ID in their FF field (my guess is they wanted a custom data field with value 0x00 and didn't want to use two extra bytes for encoding the manufacturer ID?), the parsing code should be made more robust and ignore a DATA_TYPE_MANUFACTURER_SPECIFIC_DATA field with length < 3 (1 byte field type + 2 bytes manufacturer ID).

To Implement the UriBeacon on LilyPad-nano51822

We have implemented the UriBeacon on our LilyPad-nano51822.
The Lilypad-nano51822 are working with the "Tickless" technology and the power consumption are avg. 26uA with a LED blink.

UriBeacon V2 source code for 51822:
https://github.com/ucxpresso/nano51822/tree/master/examples/cookbook/ble_uri_beacon_v2

Note:
The code provides a button to easy to change the mode (Normal and Configure) without reset.

Getting Started for developer:
http://www.embeda.com.tw/ucxpresso/?article=getting-started-2

Purchase the kit:
http://www.amazon.com/uCXpresso-LilyPad-nano51822-Arduino-iBeacon/dp/B00RE6CL4G/ref=sr_1_1?s=pc&ie=UTF8&qid=1423637775&sr=1-1

Our Web Site:
http://www.ucxpresso.net

Stuck reading beacon state

I bought some beacons from Blesh to have a play with URIBeacons. I have two problems:

  1. Using either the Blesh app, or the Phyweb app (both on iOS) I get stuck on the 'reading' step of configuring the beacon. I get to the 'press the config button' step, I press the config button on the beacon, the phone recognises that immedaitely, but then puts up a 'Reading' or 'Tap to cancel' message which never goes away. I did manage to get this to work initially, so I'm perplexed about why this is now consistently failing in the same way.
  2. Neither the Blesh nor Phyweb apps are available in Google play from my Nexus 7. I searched the web using chrome for 'google play physical web' and then tapped the top result. I was prompted to open in the Google play native app, said yes, and then got "No results found for "pub:The Physical Web Team". I think that's because you've designated it as only available for phones (and I think a similar issue for the Blesh app)

urn:uuid:

I'd like to add and example for the urn:uuid: protocol but I'm not sure what people would do with these.

Can you point me to discussion or reasons for why urn:uuid: was added?

Tx Power in Libraries and Apps needs to be 0m

TX Power in the UriBeacon advertising packet is the received power at 0 meters. Because of variables such as antenna size and case design you need to measure this rather than use a data sheet.

Of course it is very difficult to measure power at 0m, so what you do is measure 1m and subtract 41 dBm (the pathloss for 2.4 Ghz Bluetooth radios).

We are in the process of making the 0m change across library and app code. Some still uses 1m.

Submit separate Issues for each component.

Products support for iBlio - valterforesto

At www.iblio.net we have implemented the URI Beacon GATT characteristics tree using specifications for configuring a Bluetooth Low Energy module BEACON and using the Configuration Service described on https://github.com/google/uribeacon/blob/master/specification/ConfigService.md.
I'm using the last Physical Web app version 0.1.830 on an Android 4.4.2 Samsung Galaxy S4 to discover and attempt configuration of my BEACONs during the tests.
I'm not actually able to enter the "Edit URLs" configurations mode from the Physical Web app also when the Lock State characteristic of my module BEACON is 'unlocked' (0).

So, my question is: how a Physical Web app locate beacons in an unlooked state when "Edit URLs" is entered on the app ?

Thanks, Valter.

proposal for a uribeacon flag

I don't know what "hidden" flag in the uribeacon really is for. But I have an issue with physical web that I think can be resolved with such a flag. Or perhaps this is what that "hidden" flag is for.

It has to do with the "Edit URL's" feature that every user sees on their smart device's physical web tool. Assume 1000 bored passengers waiting in an Aiport terminal. Many of whom will experiment with the feature and try to select and change found Uri Beacons.

The casual millions of users will never have a need for the feature and should not be confused by having the feature presented to them. Perhaps the feature should only appear once a beacon as been manually (at the beacon) reset into the programming mode.

Validator fails with characteristic descriptors

The UriBeacon validator app fails most tests when descriptions are added to private characteristics.

I am currently using a nRF51822 board with a custom service with multiple characteristics alongside the UriBeacon service, and when I add descriptions to the characteristics on my custom service, The validator fails almost immediately. I have seen that the validator will read the characteristic description in my custom service instead of the URI from the data characteristic of the UriBeacon service. Removing the descriptors causes the Validator to pass every test.

nrf51 beacon not responding

after uploading hex file to my beacon, beacon restarted, I press SW2 but still not visible in app or any other BLE scanner

Linux example advertisement error

Convert the text Uri to bytes. Here we always add http:// code 03

URI_BYTES="03 echo -n $URI_TEXT | hexdump -v -e '/1 "%02X "'"

code 03 is actually for httpS:// not http://

URIBeacon Reset

I have a question regarding the Lock value upon resetting the URIBeacon. The Configuration Service specification states that the reset value for the Lock should be set to all zeros.
screen shot 2015-01-30 at 4 00 01 pm

I have flashed my device with a custom value for the Lock and if I reset the URIBeacon it will reset my Lock to all zeros instead of back to my custom lock value.

Is there a plan to implement a way to be able to set the Lock value to something other than all zeros either initially or after a reset occurs?

Thank You

LBluetoothLeScannerCompat fails to work when using ScanSettings.CALLBACK_TYPE_FIRST_MATCH | ScanSettings.CALLBACK_TYPE_MATCH_LOST

I am running the code on a Nexus 9, with Android 5.0.1.
Scan fails to start with the following message :

java.lang.SecurityException: Need BLUETOOTH_PRIVILEGED permission: Neither user 10119 nor current process has android.permission.BLUETOOTH_PRIVILEGED.
at android.os.Parcel.readException(Parcel.java:1540)
at android.os.Parcel.readException(Parcel.java:1493)
at android.bluetooth.IBluetoothGatt$Stub$Proxy.startScan(IBluetoothGatt.java:747)
at android.bluetooth.le.BluetoothLeScanner$BleScanCallbackWrapper.onClientRegistered(BluetoothLeScanner.java:299)
at android.bluetooth.IBluetoothGattCallback$Stub.onTransact(IBluetoothGattCallback.java:56)
at android.os.Binder.execTransact(Binder.java:446)

I found out that the parameters are handled using reflection.

The only compatible setting is the CALLBACK_TYPE_ALL_MATCHES.

In my opinion we could fix the issue by :

  • Not using reflection
  • Changing the ScanCallback in order to handle these parameters.

I am working on a fix, and will probably post a reply about it.

Add longer term scan in UriBeacon Sample App

When calibrating and debugging we like to do long term scans in the sample app but it times out after 15 or 30 seconds.

Add a way in the settings to control the number of seconds for the scan.

Publish .aar in a standard artifact repository

Has the uribeacon library been published in a standard artifact repository (like jcenter)? If not, would you all be interested in doing that? It would be helpful when building with maven/gradle to point to that instead of having to throw the binary into the source tree.

Fix IME direction when pressing keyboard "next"

In the config activity, when the "next" button in the keyboard is pressed the focus changes to the "period" field and then to the "Medium" field. The focus should change to the flags field, then period, then "Lowest", etc.

The RFduino example sketch Power value is out of range.

REF: uribeacon / beacons / RFduino / physical_web / physical_web.ino

The example advdata array shows a value of 0x20 for the Power which represents a +32dBm power setting. Probably meant 20 decimal.

The bluetooth specification defines the range to be -100dBm to +20dBm. The example is using uint8_t for the advdata array. The Power field should be a sint8 or int8_t with range 0x9C to 0x14.

Where is protocol specification for updating URI OTA

Not sure if this is the right place. The physical web app mentions uploading URL to beacons from the smart devices. It seems they refer to V1 and V2 beacons. Where is the specification protocol that is expected to be in the beacon to make this possible?

Would you consider creating a separate repo just for the BT scanning library?

We are writing an implementation of the chrome.bluetooth* chrome apps apis over in the Chrome Apps for Mobile project.

To help us do so, we have found it useful to take advantage of your BT scanning implementation. However, it would help us a bit organizationally if this part of the uribeacon repo was ripped out into its own project. This isn't a blocker for us, but we think it is quite useful on its own and perhaps others would like to use it as well.

Our intern Rui (@oahziur) can elaborate on the specific parts that we are using and how he has needed to modify them for our needs.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.