You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by ad...@apache.org on 2017/02/15 08:34:00 UTC

[3/3] incubator-mynewt-site git commit: Eddystone-URL tutorial added

Eddystone-URL tutorial added


Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/commit/e1ea942d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/tree/e1ea942d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/diff/e1ea942d

Branch: refs/heads/asf-site
Commit: e1ea942d8e1d776dcbd918d3b558501a58be13c1
Parents: b4077d0
Author: aditihilbert <ad...@runtime.io>
Authored: Wed Feb 15 00:33:49 2017 -0800
Committer: aditihilbert <ad...@runtime.io>
Committed: Wed Feb 15 00:33:49 2017 -0800

----------------------------------------------------------------------
 develop/mkdocs/search_index.json                |  29 +-
 develop/os/tutorials/STM32F303/index.html       |   8 +
 develop/os/tutorials/add_newtmgr/index.html     |   8 +
 develop/os/tutorials/add_shell/index.html       |   8 +
 develop/os/tutorials/air_quality_ble/index.html |   8 +
 .../os/tutorials/air_quality_sensor/index.html  |   8 +
 develop/os/tutorials/arduino_zero/index.html    |   8 +
 develop/os/tutorials/blehci_project/index.html  |  12 +-
 .../os/tutorials/bleprph/bleprph-adv/index.html |   8 +
 .../os/tutorials/bleprph/bleprph-app/index.html |   8 +
 .../bleprph/bleprph-chr-access/index.html       |   8 +
 .../bleprph/bleprph-gap-event/index.html        |   8 +
 .../tutorials/bleprph/bleprph-intro/index.html  |   8 +
 .../bleprph/bleprph-svc-reg/index.html          |   8 +
 develop/os/tutorials/bletiny_project/index.html |   8 +
 develop/os/tutorials/blinky_console/index.html  |   8 +
 develop/os/tutorials/blinky_primo/index.html    |   8 +
 .../os/tutorials/blinky_sram_olimex/index.html  |   8 +
 develop/os/tutorials/eddystone/index.html       | 726 +++++++++++++++++++
 develop/os/tutorials/event_queue/index.html     |   8 +
 develop/os/tutorials/ibeacon/index.html         |  73 +-
 develop/os/tutorials/nRF52/index.html           |   8 +
 develop/os/tutorials/olimex/index.html          |   8 +
 develop/os/tutorials/pin-wheel-mods/index.html  |   8 +
 develop/os/tutorials/project-slinky/index.html  |   8 +
 .../tutorials/project-target-slinky/index.html  |   8 +
 develop/os/tutorials/repo/add_repos/index.html  |   8 +
 .../os/tutorials/repo/create_repo/index.html    |   8 +
 .../os/tutorials/repo/private_repo/index.html   |   8 +
 .../os/tutorials/repo/upgrade_repo/index.html   |   8 +
 develop/os/tutorials/tasks_lesson/index.html    |   8 +
 develop/os/tutorials/tutorials/index.html       |   8 +
 develop/os/tutorials/unit_test/index.html       |   8 +
 .../os/tutorials/wi-fi_on_arduino/index.html    |   8 +
 develop/sitemap.xml                             |  24 +-
 latest/mkdocs/search_index.json                 |  29 +-
 latest/os/tutorials/STM32F303/index.html        |   8 +
 latest/os/tutorials/add_newtmgr/index.html      |   8 +
 latest/os/tutorials/add_shell/index.html        |   8 +
 latest/os/tutorials/air_quality_ble/index.html  |   8 +
 .../os/tutorials/air_quality_sensor/index.html  |   8 +
 latest/os/tutorials/arduino_zero/index.html     |   8 +
 latest/os/tutorials/blehci_project/index.html   |  12 +-
 .../os/tutorials/bleprph/bleprph-adv/index.html |   8 +
 .../os/tutorials/bleprph/bleprph-app/index.html |   8 +
 .../bleprph/bleprph-chr-access/index.html       |   8 +
 .../bleprph/bleprph-gap-event/index.html        |   8 +
 .../tutorials/bleprph/bleprph-intro/index.html  |   8 +
 .../bleprph/bleprph-svc-reg/index.html          |   8 +
 latest/os/tutorials/bletiny_project/index.html  |   8 +
 latest/os/tutorials/blinky_console/index.html   |   8 +
 latest/os/tutorials/blinky_primo/index.html     |   8 +
 .../os/tutorials/blinky_sram_olimex/index.html  |   8 +
 latest/os/tutorials/eddystone/index.html        | 726 +++++++++++++++++++
 latest/os/tutorials/event_queue/index.html      |   8 +
 latest/os/tutorials/ibeacon/index.html          |  73 +-
 latest/os/tutorials/nRF52/index.html            |   8 +
 latest/os/tutorials/olimex/index.html           |   8 +
 latest/os/tutorials/pin-wheel-mods/index.html   |   8 +
 latest/os/tutorials/project-slinky/index.html   |   8 +
 .../tutorials/project-target-slinky/index.html  |   8 +
 latest/os/tutorials/repo/add_repos/index.html   |   8 +
 latest/os/tutorials/repo/create_repo/index.html |   8 +
 .../os/tutorials/repo/private_repo/index.html   |   8 +
 .../os/tutorials/repo/upgrade_repo/index.html   |   8 +
 latest/os/tutorials/tasks_lesson/index.html     |   8 +
 latest/os/tutorials/tutorials/index.html        |   8 +
 latest/os/tutorials/unit_test/index.html        |   8 +
 latest/os/tutorials/wi-fi_on_arduino/index.html |   8 +
 latest/sitemap.xml                              |  24 +-
 sitemap.xml                                     |  26 +-
 v0_9_0/sitemap.xml                              |  26 +-
 72 files changed, 2176 insertions(+), 84 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e1ea942d/develop/mkdocs/search_index.json
----------------------------------------------------------------------
diff --git a/develop/mkdocs/search_index.json b/develop/mkdocs/search_index.json
index 057a2c2..245f7c7 100644
--- a/develop/mkdocs/search_index.json
+++ b/develop/mkdocs/search_index.json
@@ -1857,7 +1857,7 @@
         }, 
         {
             "location": "/os/tutorials/ibeacon/", 
-            "text": "BLE iBeacon\n\n\n\n\niBeacon Protocol\n\n\nA beaconing device announces its presence to the world by broadcasting\nadvertisements.  The iBeacon protocol is built on top of the standard BLE\nadvertisement specification.  An iBeacon advertisement contains a single field:\n\nManufacturer Specific Data\n; this field contains the iBeacon-specific\nsub-fields.  \nThis page\n\nprovides a good summary of the iBeacon sub-fields.\n\n\n\n\nConfiguration\n\n\nUse the following function to configure your NimBLE device to send iBeacons:\n\n\nint\n\n\nble_ibeacon_set_adv_data\n(\nvoid\n \n*uuid128\n, \nuint16_t\n \nmajor\n, \nuint16_t\n \nminor\n)\n\n\n\n\n\nThis function's parameters are documented below.\n\n\n\n\n\n\n\n\nParameter\n\n\nPurpose\n\n\n\n\n\n\n\n\n\n\nUUID\n\n\n128-bit UUID identifying the application\n\n\n\n\n\n\nMajor version number\n\n\nFirst number in your app's version\n\n\n\n\n\n\nMinor version number\n\n\nSecond number in your app's version\n\n\n\n\n\n\n\
 n\n\n\nModify bleprph\n\n\nTo demonstrate how the above function is used, we will now modify the \nbleprph\n\nexample application to send iBeacons.  For some background behind the \nbleprph\n\napp, we recommend you take a look at the \nbleprph project\ntutorial\n.  If you plan on making these modifications\nyourself, it might be a good idea to copy \nbleprph\n to your local repository\nand work with the copy.  In general, you should avoid changing a package that\nnewt downloads, as you will lose your changes the next time you upgrade the\npackage.\n\n\nbleprph\n sets its advertisement data and begins advertising as follows (\nmain.c\n):\n\n\nstatic\n \nvoid\n\n\nbleprph_advertise\n(\nvoid\n)\n{\n    \nstruct\n \nble_hs_adv_fields\n \nfields\n;\n    \nint\n \nrc\n;\n\n    \n/* Set the advertisement data included in our advertisements. */\n\n    \nmemset\n(\nfields\n, \n0\n, \nsizeof\n \nfields\n);\n    \nfields\n.\nname\n \n=\n (\nuint8_t\n \n*\n)\nbleprph_device_name\n;\n    \nfield
 s\n.\nname_len\n \n=\n \nstrlen\n(\nbleprph_device_name\n);\n    \nfields\n.\nname_is_complete\n \n=\n \n1\n;\n    \nrc\n \n=\n \nble_gap_adv_set_fields\n(\nfields\n);\n    \nif\n (\nrc\n \n!=\n \n0\n) {\n        \nBLEPRPH_LOG\n(\nERROR\n, \nerror setting advertisement data; rc=%d\\n\n, \nrc\n);\n        \nreturn\n;\n    }\n\n    \n/* Begin advertising. */\n\n    \nrc\n \n=\n \nble_gap_adv_start\n(\nBLE_GAP_DISC_MODE_GEN\n, \nBLE_GAP_CONN_MODE_UND\n,\n                           \nNULL\n, \n0\n, \nNULL\n, \nbleprph_on_connect\n, \nNULL\n);\n    \nif\n (\nrc\n \n!=\n \n0\n) {\n        \nBLEPRPH_LOG\n(\nERROR\n, \nerror enabling advertisement; rc=%d\\n\n, \nrc\n);\n        \nreturn\n;\n    }\n}\n\n\n\n\n\nThe call to \nble_gap_adv_set_fields()\n configures the device with normal\n(non-iBeacon) advertisements; the call to \nble_gap_adv_start()\n tells the\nNimBLE stack to start broadcasting.  We are now going to create an iBeacon app\nby making the following to changes:\n\n\n\n\nCall \n
 ble_ibeacon_set_adv_data()\n instead of \nble_gap_adv_set_fields()\n.\n\n\nModify the call to \nble_gap_adv_start()\n such that the device is non-discoverable and non-connectable.\n\n\n\n\n\n\nstatic\n \nvoid\n\n\nbleprph_advertise\n(\nvoid\n)\n{\n\n    \nuint8_t\n \nuuid128\n[\n16\n];\n\n    \nint\n \nrc\n;\n\n\n    \n/* Arbitrarily et the UUID to a string of 0x11 bytes. */\n\n\n    \nmemset\n(\nuuid128\n, \n0x11\n, \nsizeof\n \nuuid128\n);\n\n\n\n    \n/* Major version=2; minor version=10. */\n\n\n    \nrc\n \n=\n \nble_ibeacon_set_adv_data\n(\nuuid128\n, \n2\n, \n10\n);\n\n    \nif\n (\nrc\n \n!=\n \n0\n) {\n        \nBLEPRPH_LOG\n(\nERROR\n, \nerror setting iBeacon advertisement data; rc=%d\\n\n,\n                    \nrc\n);\n        \nreturn\n;\n    }\n\n    \n/* Begin advertising. */\n\n\n    \nrc\n \n=\n \nble_gap_adv_start\n(\nBLE_GAP_DISC_MODE_NON\n, \nBLE_GAP_CONN_MODE_NON\n,\n\n                           \nNULL\n, \n0\n, \nNULL\n, \nbleprph_on_connect\n, \nNULL\n);\n    
 \nif\n (\nrc\n \n!=\n \n0\n) {\n        \nBLEPRPH_LOG\n(\nERROR\n, \nerror enabling advertisement; rc=%d\\n\n, \nrc\n);\n        \nreturn\n;\n    }\n}\n\n\n\n\n\nNow when you run this app on your board, you should be able to see it with all\nyour iBeacon-aware devices.", 
+            "text": "BLE iBeacon\n\n\n\n\niBeacon Protocol\n\n\nA beaconing device announces its presence to the world by broadcasting\nadvertisements.  The iBeacon protocol is built on top of the standard BLE\nadvertisement specification.  An iBeacon advertisement contains a single field:\n\nManufacturer Specific Data\n; this field contains the iBeacon-specific\nsub-fields.  \nThis page\n\nprovides a good summary of the iBeacon sub-fields.\n\n\n\n\nConfiguration\n\n\nUse the following function to configure your NimBLE device to send iBeacons:\n\n\nint\n\n\nble_ibeacon_set_adv_data\n(\nvoid\n \n*uuid128\n, \nuint16_t\n \nmajor\n, \nuint16_t\n \nminor\n)\n\n\n\n\n\nThis function's parameters are documented below.\n\n\n\n\n\n\n\n\nParameter\n\n\nPurpose\n\n\n\n\n\n\n\n\n\n\nUUID\n\n\n128-bit UUID identifying the application\n\n\n\n\n\n\nMajor version number\n\n\nFirst number in your app's version\n\n\n\n\n\n\nMinor version number\n\n\nSecond number in your app's version\n\n\n\n\n\n\n\
 n\n\n\nModify bleprph\n\n\nTo demonstrate how the above function is used, we will now modify the \nbleprph\n\nexample application to send iBeacons.  For some background behind the \nbleprph\n\napp, we recommend you take a look at the \nbleprph project\ntutorial\n.  If you plan on making these modifications\nyourself, it might be a good idea to copy \nbleprph\n to your local repository\nand work with the copy.  In general, you should avoid changing a package that\nnewt downloads, as you will lose your changes the next time you upgrade the\npackage.\n\n\nbleprph\n sets its advertisement data and begins advertising as follows (\nmain.c\n):\n\n\nstatic\n \nvoid\n\n\nbleprph_advertise\n(\nvoid\n)\n{\n    \nstruct\n \nble_gap_adv_params\n \nadv_params\n;\n    \nstruct\n \nble_hs_adv_fields\n \nfields\n;\n    \nconst\n \nchar\n \n*name\n;\n    \nint\n \nrc\n;\n\n    \n/**\n\n\n     *  Set the advertisement data included in our advertisements:\n\n\n     *     o Flags (indicates advertisemen
 t type and other general info).\n\n\n     *     o Advertising tx power.\n\n\n     *     o Device name.\n\n\n     *     o 16-bit service UUIDs (alert notifications).\n\n\n     */\n\n\n    \nmemset\n(\nfields\n, \n0\n, \nsizeof\n \nfields\n);\n\n    \n/* Advertise two flags:\n\n\n     *     o Discoverability in forthcoming advertisement (general)\n\n\n     *     o BLE-only (BR/EDR unsupported).\n\n\n     */\n\n    \nfields\n.\nflags\n \n=\n \nBLE_HS_ADV_F_DISC_GEN\n \n|\n\n                   \nBLE_HS_ADV_F_BREDR_UNSUP\n;\n\n    \n/* Indicate that the TX power level field should be included; have the\n\n\n     * stack fill this value automatically.  This is done by assiging the\n\n\n     * special value BLE_HS_ADV_TX_PWR_LVL_AUTO.\n\n\n     */\n\n    \nfields\n.\ntx_pwr_lvl_is_present\n \n=\n \n1\n;\n    \nfields\n.\ntx_pwr_lvl\n \n=\n \nBLE_HS_ADV_TX_PWR_LVL_AUTO\n;\n\n    \nname\n \n=\n \nble_svc_gap_device_name\n();\n    \nfields\n.\nname\n \n=\n (\nuint8_t\n \n*\n)\nname\n;\n    \n
 fields\n.\nname_len\n \n=\n \nstrlen\n(\nname\n);\n    \nfields\n.\nname_is_complete\n \n=\n \n1\n;\n\n    \nfields\n.\nuuids16\n \n=\n (\nble_uuid16_t\n[]){\n        \nBLE_UUID16_INIT\n(\nGATT_SVR_SVC_ALERT_UUID\n)\n    };\n    \nfields\n.\nnum_uuids16\n \n=\n \n1\n;\n    \nfields\n.\nuuids16_is_complete\n \n=\n \n1\n;\n\n    \nrc\n \n=\n \nble_gap_adv_set_fields\n(\nfields\n);\n    \nif\n (\nrc\n \n!=\n \n0\n) {\n        \nBLEPRPH_LOG\n(\nERROR\n, \nerror setting advertisement data; rc=%d\\n\n, \nrc\n);\n        \nreturn\n;\n    }\n\n    \n/* Begin advertising. */\n\n    \nmemset\n(\nadv_params\n, \n0\n, \nsizeof\n \nadv_params\n);\n    \nadv_params\n.\nconn_mode\n \n=\n \nBLE_GAP_CONN_MODE_UND\n;\n    \nadv_params\n.\ndisc_mode\n \n=\n \nBLE_GAP_DISC_MODE_GEN\n;\n    \nrc\n \n=\n \nble_gap_adv_start\n(\nBLE_OWN_ADDR_PUBLIC\n, \nNULL\n, \nBLE_HS_FOREVER\n,\n                           \nadv_params\n, \nbleprph_gap_event\n, \nNULL\n);\n    \nif\n (\nrc\n \n!=\n \n0\n) {\n        \nB
 LEPRPH_LOG\n(\nERROR\n, \nerror enabling advertisement; rc=%d\\n\n, \nrc\n);\n        \nreturn\n;\n    }\n}\n\n\n\n\n\nThe call to \nble_gap_adv_set_fields()\n configures the device with normal\n(non-iBeacon) advertisements; the call to \nble_gap_adv_start()\n tells the\nNimBLE stack to start broadcasting.  We are now going to create an iBeacon app\nby making the following two changes:\n\n\n\n\nCall \nble_ibeacon_set_adv_data()\n instead of \nble_gap_adv_set_fields()\n.\n\n\nModify the call to \nble_gap_adv_start()\n such that the device is non-discoverable and non-connectable.\n\n\n\n\n\n\nstatic\n \nvoid\n\n\nbleprph_advertise\n(\nvoid\n)\n{\n\n    \nstruct\n \nble_gap_adv_params\n \nadv_params\n;\n\n    \nuint8_t\n \nuuid128\n[\n16\n];\n\n    \nint\n \nrc\n;\n\n\n\n    \n/* Arbitrarily set the UUID to a string of 0x11 bytes. */\n\n\n    \nmemset\n(\nuuid128\n, \n0x11\n, \nsizeof\n \nuuid128\n);\n\n\n\n    \n/* Major version=2; minor version=10. */\n\n\n    \nrc\n \n=\n \nble_ibea
 con_set_adv_data\n(\nuuid128\n, \n2\n, \n10\n);\n\n    \nif\n (\nrc\n \n!=\n \n0\n) {\n        \nBLEPRPH_LOG\n(\nERROR\n, \nerror setting iBeacon advertisement data; rc=%d\\n\n,\n                    \nrc\n);\n        \nreturn\n;\n    }\n\n    \n/* Begin advertising. */\n\n    \nmemset\n(\nadv_params\n, \n0\n, \nsizeof\n \nadv_params\n);\n\n    \nadv_params\n.\nconn_mode\n \n=\n \nBLE_GAP_CONN_MODE_NON\n;\n\n    \nadv_params\n.\ndisc_mode\n \n=\n \nBLE_GAP_DISC_MODE_NON\n;\n\n    \nrc\n \n=\n \nble_gap_adv_start\n(\nBLE_OWN_ADDR_PUBLIC\n, \nNULL\n, \nBLE_HS_FOREVER\n,\n                           \nadv_params\n, \nbleprph_gap_event\n, \nNULL\n);\n    \nif\n (\nrc\n \n!=\n \n0\n) {\n        \nBLEPRPH_LOG\n(\nERROR\n, \nerror enabling advertisement; rc=%d\\n\n, \nrc\n);\n        \nreturn\n;\n    }\n}\n\n\n\n\n\nNow when you run this app on your board, you should be able to see it with all\nyour iBeacon-aware devices.", 
             "title": "BLE iBeacon"
         }, 
         {
@@ -1877,7 +1877,32 @@
         }, 
         {
             "location": "/os/tutorials/ibeacon/#modify-bleprph", 
-            "text": "To demonstrate how the above function is used, we will now modify the  bleprph \nexample application to send iBeacons.  For some background behind the  bleprph \napp, we recommend you take a look at the  bleprph project\ntutorial .  If you plan on making these modifications\nyourself, it might be a good idea to copy  bleprph  to your local repository\nand work with the copy.  In general, you should avoid changing a package that\nnewt downloads, as you will lose your changes the next time you upgrade the\npackage.  bleprph  sets its advertisement data and begins advertising as follows ( main.c ):  static   void  bleprph_advertise ( void )\n{\n     struct   ble_hs_adv_fields   fields ;\n     int   rc ;\n\n     /* Set the advertisement data included in our advertisements. */ \n     memset ( fields ,  0 ,  sizeof   fields );\n     fields . name   =  ( uint8_t   * ) bleprph_device_name ;\n     fields . name_len   =   strlen ( bleprph_device_name );\n     fields . nam
 e_is_complete   =   1 ;\n     rc   =   ble_gap_adv_set_fields ( fields );\n     if  ( rc   !=   0 ) {\n         BLEPRPH_LOG ( ERROR ,  error setting advertisement data; rc=%d\\n ,  rc );\n         return ;\n    }\n\n     /* Begin advertising. */ \n     rc   =   ble_gap_adv_start ( BLE_GAP_DISC_MODE_GEN ,  BLE_GAP_CONN_MODE_UND ,\n                            NULL ,  0 ,  NULL ,  bleprph_on_connect ,  NULL );\n     if  ( rc   !=   0 ) {\n         BLEPRPH_LOG ( ERROR ,  error enabling advertisement; rc=%d\\n ,  rc );\n         return ;\n    }\n}  The call to  ble_gap_adv_set_fields()  configures the device with normal\n(non-iBeacon) advertisements; the call to  ble_gap_adv_start()  tells the\nNimBLE stack to start broadcasting.  We are now going to create an iBeacon app\nby making the following to changes:   Call  ble_ibeacon_set_adv_data()  instead of  ble_gap_adv_set_fields() .  Modify the call to  ble_gap_adv_start()  such that the device is non-discoverable and non-connectable.    
 static   void  bleprph_advertise ( void )\n{      uint8_t   uuid128 [ 16 ];      int   rc ;      /* Arbitrarily et the UUID to a string of 0x11 bytes. */       memset ( uuid128 ,  0x11 ,  sizeof   uuid128 );       /* Major version=2; minor version=10. */       rc   =   ble_ibeacon_set_adv_data ( uuid128 ,  2 ,  10 );      if  ( rc   !=   0 ) {\n         BLEPRPH_LOG ( ERROR ,  error setting iBeacon advertisement data; rc=%d\\n ,\n                     rc );\n         return ;\n    }\n\n     /* Begin advertising. */       rc   =   ble_gap_adv_start ( BLE_GAP_DISC_MODE_NON ,  BLE_GAP_CONN_MODE_NON ,                             NULL ,  0 ,  NULL ,  bleprph_on_connect ,  NULL );\n     if  ( rc   !=   0 ) {\n         BLEPRPH_LOG ( ERROR ,  error enabling advertisement; rc=%d\\n ,  rc );\n         return ;\n    }\n}  Now when you run this app on your board, you should be able to see it with all\nyour iBeacon-aware devices.", 
+            "text": "To demonstrate how the above function is used, we will now modify the  bleprph \nexample application to send iBeacons.  For some background behind the  bleprph \napp, we recommend you take a look at the  bleprph project\ntutorial .  If you plan on making these modifications\nyourself, it might be a good idea to copy  bleprph  to your local repository\nand work with the copy.  In general, you should avoid changing a package that\nnewt downloads, as you will lose your changes the next time you upgrade the\npackage.  bleprph  sets its advertisement data and begins advertising as follows ( main.c ):  static   void  bleprph_advertise ( void )\n{\n     struct   ble_gap_adv_params   adv_params ;\n     struct   ble_hs_adv_fields   fields ;\n     const   char   *name ;\n     int   rc ;\n\n     /**       *  Set the advertisement data included in our advertisements:       *     o Flags (indicates advertisement type and other general info).       *     o Advertising tx powe
 r.       *     o Device name.       *     o 16-bit service UUIDs (alert notifications).       */ \n\n     memset ( fields ,  0 ,  sizeof   fields );\n\n     /* Advertise two flags:       *     o Discoverability in forthcoming advertisement (general)       *     o BLE-only (BR/EDR unsupported).       */ \n     fields . flags   =   BLE_HS_ADV_F_DISC_GEN   | \n                    BLE_HS_ADV_F_BREDR_UNSUP ;\n\n     /* Indicate that the TX power level field should be included; have the       * stack fill this value automatically.  This is done by assiging the       * special value BLE_HS_ADV_TX_PWR_LVL_AUTO.       */ \n     fields . tx_pwr_lvl_is_present   =   1 ;\n     fields . tx_pwr_lvl   =   BLE_HS_ADV_TX_PWR_LVL_AUTO ;\n\n     name   =   ble_svc_gap_device_name ();\n     fields . name   =  ( uint8_t   * ) name ;\n     fields . name_len   =   strlen ( name );\n     fields . name_is_complete   =   1 ;\n\n     fields . uuids16   =  ( ble_uuid16_t []){\n         BLE_UUID16_INIT ( GATT_S
 VR_SVC_ALERT_UUID )\n    };\n     fields . num_uuids16   =   1 ;\n     fields . uuids16_is_complete   =   1 ;\n\n     rc   =   ble_gap_adv_set_fields ( fields );\n     if  ( rc   !=   0 ) {\n         BLEPRPH_LOG ( ERROR ,  error setting advertisement data; rc=%d\\n ,  rc );\n         return ;\n    }\n\n     /* Begin advertising. */ \n     memset ( adv_params ,  0 ,  sizeof   adv_params );\n     adv_params . conn_mode   =   BLE_GAP_CONN_MODE_UND ;\n     adv_params . disc_mode   =   BLE_GAP_DISC_MODE_GEN ;\n     rc   =   ble_gap_adv_start ( BLE_OWN_ADDR_PUBLIC ,  NULL ,  BLE_HS_FOREVER ,\n                            adv_params ,  bleprph_gap_event ,  NULL );\n     if  ( rc   !=   0 ) {\n         BLEPRPH_LOG ( ERROR ,  error enabling advertisement; rc=%d\\n ,  rc );\n         return ;\n    }\n}  The call to  ble_gap_adv_set_fields()  configures the device with normal\n(non-iBeacon) advertisements; the call to  ble_gap_adv_start()  tells the\nNimBLE stack to start broadcasting.  We are 
 now going to create an iBeacon app\nby making the following two changes:   Call  ble_ibeacon_set_adv_data()  instead of  ble_gap_adv_set_fields() .  Modify the call to  ble_gap_adv_start()  such that the device is non-discoverable and non-connectable.    static   void  bleprph_advertise ( void )\n{      struct   ble_gap_adv_params   adv_params ;      uint8_t   uuid128 [ 16 ];      int   rc ;       /* Arbitrarily set the UUID to a string of 0x11 bytes. */       memset ( uuid128 ,  0x11 ,  sizeof   uuid128 );       /* Major version=2; minor version=10. */       rc   =   ble_ibeacon_set_adv_data ( uuid128 ,  2 ,  10 );      if  ( rc   !=   0 ) {\n         BLEPRPH_LOG ( ERROR ,  error setting iBeacon advertisement data; rc=%d\\n ,\n                     rc );\n         return ;\n    }\n\n     /* Begin advertising. */ \n     memset ( adv_params ,  0 ,  sizeof   adv_params );      adv_params . conn_mode   =   BLE_GAP_CONN_MODE_NON ;      adv_params . disc_mode   =   BLE_GAP_DISC_MODE_NON ;
       rc   =   ble_gap_adv_start ( BLE_OWN_ADDR_PUBLIC ,  NULL ,  BLE_HS_FOREVER ,\n                            adv_params ,  bleprph_gap_event ,  NULL );\n     if  ( rc   !=   0 ) {\n         BLEPRPH_LOG ( ERROR ,  error enabling advertisement; rc=%d\\n ,  rc );\n         return ;\n    }\n}  Now when you run this app on your board, you should be able to see it with all\nyour iBeacon-aware devices.", 
+            "title": "Modify bleprph"
+        }, 
+        {
+            "location": "/os/tutorials/eddystone/", 
+            "text": "BLE Eddystone\n\n\n\n\nEddystone Beacon Protocol\n\n\nA beaconing device announces its presence to the world by broadcasting\nadvertisements.  The Eddystone protocol is built on top of the standard BLE\nadvertisement specification.  Eddystone supports multiple data packet types\n\n\n\n\nEddystone-UID: a unique, static ID with a 10-byte Namespace component and a 6-byte Instance component.\n\n\nEddystone-URL: a compressed URL that, once parsed and decompressed, is directly usable by the client.\n\n\nEddystone-TLM: \"telemetry\" packets that are broadcast alongside the Eddystone-UID or Eddystone-URL packets and contains beacon\u2019s \u201chealth status\u201d (e.g., battery life).\n\n\nEddystone-EID to broadcast an ephemeral identifier that changes every few minutes and allow only parties that can resolve the identifier to use the beacon. \n\n\n\n\nThis page\n describes the Eddystone open beacon format developed by Google.\n\n\nApache Mynewt currently supports Eddy
 stone-UID and Eddystone-URL formats only. This tutorial will explain how to get an Eddystone-URL beacon going on a peripheral device.\n\n\n\n\nConfiguration\n\n\nUse the following function to configure your NimBLE device to send Eddystone-URL beacons:\n\n\nint\n\n\nble_eddystone_set_adv_data_url\n(\nstruct\n \nble_hs_adv_fields\n \n*adv_fields\n,\n                               \nuint8_t\n \nurl_scheme\n, \nchar\n \n*url_body\n,\n                               \nuint8_t\n \nurl_body_len\n, \nuint8_t\n \nurl_suffix\n)\n\n\n\n\n\nThis function's parameters are documented below.\n\n\n\n\n\n\n\n\nParameter\n\n\nPurpose\n\n\n\n\n\n\n\n\n\n\nadv_fields\n\n\nThe base advertisement fields to transform into an eddystone beacon.\n\n\n\n\n\n\nurl_scheme\n\n\nThe prefix of the URL; one of the BLE_EDDYSTONE_URL_SCHEME values from ble_eddystone.h\n\n\n\n\n\n\nurl_body\n\n\nThe middle of the url specified within \"\".\n\n\n\n\n\n\nurl_body_len\n\n\nThe string length of the url_body argument.\n\n\n
 \n\n\n\nurl_suffix\n\n\nThe suffix of the URL; one of the BLE_EDDYSTONE_URL_SUFFIX values from ble_eddystone.h\n\n\n\n\n\n\n\n\n\n\nModify bleprph\n\n\nTo demonstrate how the above function is used, we will now modify the \nbleprph\n\nexample application to send Eddystone beacons.  For some background behind the \nbleprph\n\napp, we recommend you take a look at the \nbleprph project\ntutorial\n.  If you plan on making these modifications\nyourself, it might be a good idea to copy \nbleprph\n to your local repository\nand work with the copy.  In general, you should avoid changing a package that\nnewt downloads, as you will lose your changes the next time you upgrade the\npackage.\n\n\nbleprph\n sets its advertisement data and begins advertising as follows (\nmain.c\n):\n\n\nstatic\n \nvoid\n\n\nbleprph_advertise\n(\nvoid\n)\n{\n    \nstruct\n \nble_gap_adv_params\n \nadv_params\n;\n    \nstruct\n \nble_hs_adv_fields\n \nfields\n;\n    \nconst\n \nchar\n \n*name\n;\n    \nint\n \nrc\n
 ;\n\n    \n/**\n\n\n     *  Set the advertisement data included in our advertisements:\n\n\n     *     o Flags (indicates advertisement type and other general info).\n\n\n     *     o Advertising tx power.\n\n\n     *     o Device name.\n\n\n     *     o 16-bit service UUIDs (alert notifications).\n\n\n     */\n\n\n    \nmemset\n(\nfields\n, \n0\n, \nsizeof\n \nfields\n);\n\n    \n/* Advertise two flags:\n\n\n     *     o Discoverability in forthcoming advertisement (general)\n\n\n     *     o BLE-only (BR/EDR unsupported).\n\n\n     */\n\n    \nfields\n.\nflags\n \n=\n \nBLE_HS_ADV_F_DISC_GEN\n \n|\n\n                   \nBLE_HS_ADV_F_BREDR_UNSUP\n;\n\n    \n/* Indicate that the TX power level field should be included; have the\n\n\n     * stack fill this value automatically.  This is done by assiging the\n\n\n     * special value BLE_HS_ADV_TX_PWR_LVL_AUTO.\n\n\n     */\n\n    \nfields\n.\ntx_pwr_lvl_is_present\n \n=\n \n1\n;\n    \nfields\n.\ntx_pwr_lvl\n \n=\n \nBLE_HS_ADV_TX_PW
 R_LVL_AUTO\n;\n\n    \nname\n \n=\n \nble_svc_gap_device_name\n();\n    \nfields\n.\nname\n \n=\n (\nuint8_t\n \n*\n)\nname\n;\n    \nfields\n.\nname_len\n \n=\n \nstrlen\n(\nname\n);\n    \nfields\n.\nname_is_complete\n \n=\n \n1\n;\n\n    \nfields\n.\nuuids16\n \n=\n (\nble_uuid16_t\n[]){\n        \nBLE_UUID16_INIT\n(\nGATT_SVR_SVC_ALERT_UUID\n)\n    };\n    \nfields\n.\nnum_uuids16\n \n=\n \n1\n;\n    \nfields\n.\nuuids16_is_complete\n \n=\n \n1\n;\n\n    \nrc\n \n=\n \nble_gap_adv_set_fields\n(\nfields\n);\n    \nif\n (\nrc\n \n!=\n \n0\n) {\n        \nBLEPRPH_LOG\n(\nERROR\n, \nerror setting advertisement data; rc=%d\\n\n, \nrc\n);\n        \nreturn\n;\n    }\n\n    \n/* Begin advertising. */\n\n    \nmemset\n(\nadv_params\n, \n0\n, \nsizeof\n \nadv_params\n);\n    \nadv_params\n.\nconn_mode\n \n=\n \nBLE_GAP_CONN_MODE_UND\n;\n    \nadv_params\n.\ndisc_mode\n \n=\n \nBLE_GAP_DISC_MODE_GEN\n;\n    \nrc\n \n=\n \nble_gap_adv_start\n(\nBLE_OWN_ADDR_PUBLIC\n, \nNULL\n, \nBLE_HS_FOR
 EVER\n,\n                           \nadv_params\n, \nbleprph_gap_event\n, \nNULL\n);\n    \nif\n (\nrc\n \n!=\n \n0\n) {\n        \nBLEPRPH_LOG\n(\nERROR\n, \nerror enabling advertisement; rc=%d\\n\n, \nrc\n);\n        \nreturn\n;\n    }\n}\n\n\n\n\n\nThe call to \nble_gap_adv_set_fields()\n configures the device with normal\n(non-Eddystone) advertisements; the call to \nble_gap_adv_start()\n tells the\nNimBLE stack to start broadcasting.  We are now going to create an Eddystone app\nby making the following changes:\n\n\n\n\nCall \nble_eddystone_set_adv_data()\n instead of \nble_gap_adv_set_fields()\n. The tutorial shows how to emit \"`https://mynewt.apache.org\".\n\n\nRemove advertisement data such as device name, flags, tx levels etc. that are not required. \n\n\nRemove unnecessary local variables e.g. \nname\n pointer.  \n\n\nModify the call to \nble_gap_adv_start()\n such that the device is non-discoverable and non-connectable.\n\n\n\n\n\n\nstatic\n \nvoid\n\n\nbleprph_advertis
 e\n(\nvoid\n)\n{   \n    \nstruct\n \nble_gap_adv_params\n \nadv_params\n;\n    \nstruct\n \nble_hs_adv_fields\n \nfields\n;\n    \nint\n \nrc\n;\n\n    \n/** \n\n\n     *  Remove the advertisement data typically included in our advertisements: \n\n\n     *     o Flags (indicates advertisement type and other general info).\n\n\n     *     o Advertising tx power.\n\n\n     *     o Device name.\n\n\n     *     o 16-bit service UUIDs (alert notifications).\n\n\n     */\n\n\n    \nmemset\n(\nfields\n, \n0\n, \nsizeof\n \nfields\n);\n\n\n     \n/* No flags are needed for Eddystone URL. Remove all from default app.*/\n\n\n\n\n    \nrc\n \n=\n \nble_eddystone_set_adv_data_url\n(\nfields\n, \nBLE_EDDYSTONE_URL_SCHEME_HTTPS\n, \nmynewt.apache\n, \n\n                        \n13\n, \nBLE_EDDYSTONE_URL_SUFFIX_ORG\n); \n    \nif\n (\nrc\n \n!=\n \n0\n) {\n        \nBLEPRPH_LOG\n(\nERROR\n, \nerror setting eddystone advertisement data; rc=%d\\n\n, \nrc\n);\n        \nreturn\n;\n    }\n\n    \n/*
  Begin advertising. */\n\n    \nmemset\n(\nadv_params\n, \n0\n, \nsizeof\n \nadv_params\n);\n\n    \nadv_params\n.\nconn_mode\n \n=\n \nBLE_GAP_CONN_MODE_NON\n;\n\n    \nadv_params\n.\ndisc_mode\n \n=\n \nBLE_GAP_DISC_MODE_NON\n;\n\n    \nrc\n \n=\n \nble_gap_adv_start\n(\nBLE_OWN_ADDR_PUBLIC\n, \nNULL\n, \nBLE_HS_FOREVER\n,\n                           \nadv_params\n, \nbleprph_gap_event\n, \nNULL\n);\n    \nif\n (\nrc\n \n!=\n \n0\n) {\n        \nBLEPRPH_LOG\n(\nERROR\n, \nerror enabling advertisement; rc=%d\\n\n, \nrc\n);\n        \nreturn\n;\n    }\n}\n\n\n\n\n\nAlso include the header file for the eddystone beacon \nble_eddystone.h\n in the app's main.c file. \n\n\n#include \nhost/ble_eddystone.h\n\n\n\n\n\n\nIf you have copied the bleprph app into your local repository then make sure that the pkg.yml for the app has the \n@apache-mynewt-core/\n prefix; otherwise the package dependencies will not be resolved correctly.\n\n\npkg.deps: \n    - \n@apache-mynewt-core/boot/split\n\n 
    - \n@apache-mynewt-core/kernel/os\n\n\nsnip\n\n\n\n\n\n\nFinally, enable the \nBLE_EDDYSTONE\n sysconfig in the syscfg.yml of either your target or your app.\n\n\nsyscfg.vals:\n    \nsnip\n\n    BLE_EDDYSTONE: 1 \n\n\n\n\n\nNow when you run this app on your board, you should be able to see it with all\nyour Eddystone-aware devices.", 
+            "title": "BLE Eddystone"
+        }, 
+        {
+            "location": "/os/tutorials/eddystone/#ble-eddystone", 
+            "text": "", 
+            "title": "BLE Eddystone"
+        }, 
+        {
+            "location": "/os/tutorials/eddystone/#eddystone-beacon-protocol", 
+            "text": "A beaconing device announces its presence to the world by broadcasting\nadvertisements.  The Eddystone protocol is built on top of the standard BLE\nadvertisement specification.  Eddystone supports multiple data packet types   Eddystone-UID: a unique, static ID with a 10-byte Namespace component and a 6-byte Instance component.  Eddystone-URL: a compressed URL that, once parsed and decompressed, is directly usable by the client.  Eddystone-TLM: \"telemetry\" packets that are broadcast alongside the Eddystone-UID or Eddystone-URL packets and contains beacon\u2019s \u201chealth status\u201d (e.g., battery life).  Eddystone-EID to broadcast an ephemeral identifier that changes every few minutes and allow only parties that can resolve the identifier to use the beacon.    This page  describes the Eddystone open beacon format developed by Google.  Apache Mynewt currently supports Eddystone-UID and Eddystone-URL formats only. This tutorial will explain how to get an Ed
 dystone-URL beacon going on a peripheral device.", 
+            "title": "Eddystone Beacon Protocol"
+        }, 
+        {
+            "location": "/os/tutorials/eddystone/#configuration", 
+            "text": "Use the following function to configure your NimBLE device to send Eddystone-URL beacons:  int  ble_eddystone_set_adv_data_url ( struct   ble_hs_adv_fields   *adv_fields ,\n                                uint8_t   url_scheme ,  char   *url_body ,\n                                uint8_t   url_body_len ,  uint8_t   url_suffix )  This function's parameters are documented below.     Parameter  Purpose      adv_fields  The base advertisement fields to transform into an eddystone beacon.    url_scheme  The prefix of the URL; one of the BLE_EDDYSTONE_URL_SCHEME values from ble_eddystone.h    url_body  The middle of the url specified within \"\".    url_body_len  The string length of the url_body argument.    url_suffix  The suffix of the URL; one of the BLE_EDDYSTONE_URL_SUFFIX values from ble_eddystone.h", 
+            "title": "Configuration"
+        }, 
+        {
+            "location": "/os/tutorials/eddystone/#modify-bleprph", 
+            "text": "To demonstrate how the above function is used, we will now modify the  bleprph \nexample application to send Eddystone beacons.  For some background behind the  bleprph \napp, we recommend you take a look at the  bleprph project\ntutorial .  If you plan on making these modifications\nyourself, it might be a good idea to copy  bleprph  to your local repository\nand work with the copy.  In general, you should avoid changing a package that\nnewt downloads, as you will lose your changes the next time you upgrade the\npackage.  bleprph  sets its advertisement data and begins advertising as follows ( main.c ):  static   void  bleprph_advertise ( void )\n{\n     struct   ble_gap_adv_params   adv_params ;\n     struct   ble_hs_adv_fields   fields ;\n     const   char   *name ;\n     int   rc ;\n\n     /**       *  Set the advertisement data included in our advertisements:       *     o Flags (indicates advertisement type and other general info).       *     o Advertisin
 g tx power.       *     o Device name.       *     o 16-bit service UUIDs (alert notifications).       */ \n\n     memset ( fields ,  0 ,  sizeof   fields );\n\n     /* Advertise two flags:       *     o Discoverability in forthcoming advertisement (general)       *     o BLE-only (BR/EDR unsupported).       */ \n     fields . flags   =   BLE_HS_ADV_F_DISC_GEN   | \n                    BLE_HS_ADV_F_BREDR_UNSUP ;\n\n     /* Indicate that the TX power level field should be included; have the       * stack fill this value automatically.  This is done by assiging the       * special value BLE_HS_ADV_TX_PWR_LVL_AUTO.       */ \n     fields . tx_pwr_lvl_is_present   =   1 ;\n     fields . tx_pwr_lvl   =   BLE_HS_ADV_TX_PWR_LVL_AUTO ;\n\n     name   =   ble_svc_gap_device_name ();\n     fields . name   =  ( uint8_t   * ) name ;\n     fields . name_len   =   strlen ( name );\n     fields . name_is_complete   =   1 ;\n\n     fields . uuids16   =  ( ble_uuid16_t []){\n         BLE_UUID16_INIT
  ( GATT_SVR_SVC_ALERT_UUID )\n    };\n     fields . num_uuids16   =   1 ;\n     fields . uuids16_is_complete   =   1 ;\n\n     rc   =   ble_gap_adv_set_fields ( fields );\n     if  ( rc   !=   0 ) {\n         BLEPRPH_LOG ( ERROR ,  error setting advertisement data; rc=%d\\n ,  rc );\n         return ;\n    }\n\n     /* Begin advertising. */ \n     memset ( adv_params ,  0 ,  sizeof   adv_params );\n     adv_params . conn_mode   =   BLE_GAP_CONN_MODE_UND ;\n     adv_params . disc_mode   =   BLE_GAP_DISC_MODE_GEN ;\n     rc   =   ble_gap_adv_start ( BLE_OWN_ADDR_PUBLIC ,  NULL ,  BLE_HS_FOREVER ,\n                            adv_params ,  bleprph_gap_event ,  NULL );\n     if  ( rc   !=   0 ) {\n         BLEPRPH_LOG ( ERROR ,  error enabling advertisement; rc=%d\\n ,  rc );\n         return ;\n    }\n}  The call to  ble_gap_adv_set_fields()  configures the device with normal\n(non-Eddystone) advertisements; the call to  ble_gap_adv_start()  tells the\nNimBLE stack to start broadcastin
 g.  We are now going to create an Eddystone app\nby making the following changes:   Call  ble_eddystone_set_adv_data()  instead of  ble_gap_adv_set_fields() . The tutorial shows how to emit \"`https://mynewt.apache.org\".  Remove advertisement data such as device name, flags, tx levels etc. that are not required.   Remove unnecessary local variables e.g.  name  pointer.    Modify the call to  ble_gap_adv_start()  such that the device is non-discoverable and non-connectable.    static   void  bleprph_advertise ( void )\n{   \n     struct   ble_gap_adv_params   adv_params ;\n     struct   ble_hs_adv_fields   fields ;\n     int   rc ;\n\n     /**        *  Remove the advertisement data typically included in our advertisements:        *     o Flags (indicates advertisement type and other general info).       *     o Advertising tx power.       *     o Device name.       *     o 16-bit service UUIDs (alert notifications).       */ \n\n     memset ( fields ,  0 ,  sizeof   fields );      
  /* No flags are needed for Eddystone URL. Remove all from default app.*/        rc   =   ble_eddystone_set_adv_data_url ( fields ,  BLE_EDDYSTONE_URL_SCHEME_HTTPS ,  mynewt.apache ,                           13 ,  BLE_EDDYSTONE_URL_SUFFIX_ORG ); \n     if  ( rc   !=   0 ) {\n         BLEPRPH_LOG ( ERROR ,  error setting eddystone advertisement data; rc=%d\\n ,  rc );\n         return ;\n    }\n\n     /* Begin advertising. */ \n     memset ( adv_params ,  0 ,  sizeof   adv_params );      adv_params . conn_mode   =   BLE_GAP_CONN_MODE_NON ;      adv_params . disc_mode   =   BLE_GAP_DISC_MODE_NON ;      rc   =   ble_gap_adv_start ( BLE_OWN_ADDR_PUBLIC ,  NULL ,  BLE_HS_FOREVER ,\n                            adv_params ,  bleprph_gap_event ,  NULL );\n     if  ( rc   !=   0 ) {\n         BLEPRPH_LOG ( ERROR ,  error enabling advertisement; rc=%d\\n ,  rc );\n         return ;\n    }\n}  Also include the header file for the eddystone beacon  ble_eddystone.h  in the app's main.c file.   
 #include  host/ble_eddystone.h   If you have copied the bleprph app into your local repository then make sure that the pkg.yml for the app has the  @apache-mynewt-core/  prefix; otherwise the package dependencies will not be resolved correctly.  pkg.deps: \n    -  @apache-mynewt-core/boot/split \n    -  @apache-mynewt-core/kernel/os  snip   Finally, enable the  BLE_EDDYSTONE  sysconfig in the syscfg.yml of either your target or your app.  syscfg.vals:\n     snip \n    BLE_EDDYSTONE: 1   Now when you run this app on your board, you should be able to see it with all\nyour Eddystone-aware devices.", 
             "title": "Modify bleprph"
         }, 
         {

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e1ea942d/develop/os/tutorials/STM32F303/index.html
----------------------------------------------------------------------
diff --git a/develop/os/tutorials/STM32F303/index.html b/develop/os/tutorials/STM32F303/index.html
index d7d4b33..07ea871 100644
--- a/develop/os/tutorials/STM32F303/index.html
+++ b/develop/os/tutorials/STM32F303/index.html
@@ -433,6 +433,14 @@
               
                 
     <li >
+      <a href="../eddystone/">BLE Eddystone</a>
+    </li>
+
+              
+          
+              
+                
+    <li >
       <a href="../blehci_project/">BLE HCI interface</a>
     </li>
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e1ea942d/develop/os/tutorials/add_newtmgr/index.html
----------------------------------------------------------------------
diff --git a/develop/os/tutorials/add_newtmgr/index.html b/develop/os/tutorials/add_newtmgr/index.html
index fb34282..22f7ca7 100644
--- a/develop/os/tutorials/add_newtmgr/index.html
+++ b/develop/os/tutorials/add_newtmgr/index.html
@@ -356,6 +356,14 @@
               
                 
     <li >
+      <a href="../eddystone/">BLE Eddystone</a>
+    </li>
+
+              
+          
+              
+                
+    <li >
       <a href="../blehci_project/">BLE HCI interface</a>
     </li>
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e1ea942d/develop/os/tutorials/add_shell/index.html
----------------------------------------------------------------------
diff --git a/develop/os/tutorials/add_shell/index.html b/develop/os/tutorials/add_shell/index.html
index 94bfead..dbf6aaf 100644
--- a/develop/os/tutorials/add_shell/index.html
+++ b/develop/os/tutorials/add_shell/index.html
@@ -356,6 +356,14 @@
               
                 
     <li >
+      <a href="../eddystone/">BLE Eddystone</a>
+    </li>
+
+              
+          
+              
+                
+    <li >
       <a href="../blehci_project/">BLE HCI interface</a>
     </li>
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e1ea942d/develop/os/tutorials/air_quality_ble/index.html
----------------------------------------------------------------------
diff --git a/develop/os/tutorials/air_quality_ble/index.html b/develop/os/tutorials/air_quality_ble/index.html
index da68c8f..acc4133 100644
--- a/develop/os/tutorials/air_quality_ble/index.html
+++ b/develop/os/tutorials/air_quality_ble/index.html
@@ -376,6 +376,14 @@
               
                 
     <li >
+      <a href="../eddystone/">BLE Eddystone</a>
+    </li>
+
+              
+          
+              
+                
+    <li >
       <a href="../blehci_project/">BLE HCI interface</a>
     </li>
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e1ea942d/develop/os/tutorials/air_quality_sensor/index.html
----------------------------------------------------------------------
diff --git a/develop/os/tutorials/air_quality_sensor/index.html b/develop/os/tutorials/air_quality_sensor/index.html
index 4e4a906..5744c8d 100644
--- a/develop/os/tutorials/air_quality_sensor/index.html
+++ b/develop/os/tutorials/air_quality_sensor/index.html
@@ -376,6 +376,14 @@
               
                 
     <li >
+      <a href="../eddystone/">BLE Eddystone</a>
+    </li>
+
+              
+          
+              
+                
+    <li >
       <a href="../blehci_project/">BLE HCI interface</a>
     </li>
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e1ea942d/develop/os/tutorials/arduino_zero/index.html
----------------------------------------------------------------------
diff --git a/develop/os/tutorials/arduino_zero/index.html b/develop/os/tutorials/arduino_zero/index.html
index ab70812..76b6d22 100644
--- a/develop/os/tutorials/arduino_zero/index.html
+++ b/develop/os/tutorials/arduino_zero/index.html
@@ -419,6 +419,14 @@
               
                 
     <li >
+      <a href="../eddystone/">BLE Eddystone</a>
+    </li>
+
+              
+          
+              
+                
+    <li >
       <a href="../blehci_project/">BLE HCI interface</a>
     </li>
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e1ea942d/develop/os/tutorials/blehci_project/index.html
----------------------------------------------------------------------
diff --git a/develop/os/tutorials/blehci_project/index.html b/develop/os/tutorials/blehci_project/index.html
index 6605938..0305c17 100644
--- a/develop/os/tutorials/blehci_project/index.html
+++ b/develop/os/tutorials/blehci_project/index.html
@@ -355,6 +355,14 @@
           
               
                 
+    <li >
+      <a href="../eddystone/">BLE Eddystone</a>
+    </li>
+
+              
+          
+              
+                
     <li class="active">
       <a href="./">BLE HCI interface</a>
     </li>
@@ -619,9 +627,9 @@ eir_len 23
 <ul class="nav nav-pills" style="margin-bottom: 10px">
     <li>
     
-    <a href=../ibeacon/>
+    <a href=../eddystone/>
         <span class="fa fa-arrow-left"></span>
-        Previous: BLE iBeacon
+        Previous: BLE Eddystone
     </a>
     
     </li>

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e1ea942d/develop/os/tutorials/bleprph/bleprph-adv/index.html
----------------------------------------------------------------------
diff --git a/develop/os/tutorials/bleprph/bleprph-adv/index.html b/develop/os/tutorials/bleprph/bleprph-adv/index.html
index 6a3733f..e46264d 100644
--- a/develop/os/tutorials/bleprph/bleprph-adv/index.html
+++ b/develop/os/tutorials/bleprph/bleprph-adv/index.html
@@ -402,6 +402,14 @@
               
                 
     <li >
+      <a href="../../eddystone/">BLE Eddystone</a>
+    </li>
+
+              
+          
+              
+                
+    <li >
       <a href="../../blehci_project/">BLE HCI interface</a>
     </li>
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e1ea942d/develop/os/tutorials/bleprph/bleprph-app/index.html
----------------------------------------------------------------------
diff --git a/develop/os/tutorials/bleprph/bleprph-app/index.html b/develop/os/tutorials/bleprph/bleprph-app/index.html
index 2698ec0..fd63539 100644
--- a/develop/os/tutorials/bleprph/bleprph-app/index.html
+++ b/develop/os/tutorials/bleprph/bleprph-app/index.html
@@ -402,6 +402,14 @@
               
                 
     <li >
+      <a href="../../eddystone/">BLE Eddystone</a>
+    </li>
+
+              
+          
+              
+                
+    <li >
       <a href="../../blehci_project/">BLE HCI interface</a>
     </li>
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e1ea942d/develop/os/tutorials/bleprph/bleprph-chr-access/index.html
----------------------------------------------------------------------
diff --git a/develop/os/tutorials/bleprph/bleprph-chr-access/index.html b/develop/os/tutorials/bleprph/bleprph-chr-access/index.html
index 26d0bdd..d4426bd 100644
--- a/develop/os/tutorials/bleprph/bleprph-chr-access/index.html
+++ b/develop/os/tutorials/bleprph/bleprph-chr-access/index.html
@@ -402,6 +402,14 @@
               
                 
     <li >
+      <a href="../../eddystone/">BLE Eddystone</a>
+    </li>
+
+              
+          
+              
+                
+    <li >
       <a href="../../blehci_project/">BLE HCI interface</a>
     </li>
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e1ea942d/develop/os/tutorials/bleprph/bleprph-gap-event/index.html
----------------------------------------------------------------------
diff --git a/develop/os/tutorials/bleprph/bleprph-gap-event/index.html b/develop/os/tutorials/bleprph/bleprph-gap-event/index.html
index 70fddc8..2b3db93 100644
--- a/develop/os/tutorials/bleprph/bleprph-gap-event/index.html
+++ b/develop/os/tutorials/bleprph/bleprph-gap-event/index.html
@@ -402,6 +402,14 @@
               
                 
     <li >
+      <a href="../../eddystone/">BLE Eddystone</a>
+    </li>
+
+              
+          
+              
+                
+    <li >
       <a href="../../blehci_project/">BLE HCI interface</a>
     </li>
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e1ea942d/develop/os/tutorials/bleprph/bleprph-intro/index.html
----------------------------------------------------------------------
diff --git a/develop/os/tutorials/bleprph/bleprph-intro/index.html b/develop/os/tutorials/bleprph/bleprph-intro/index.html
index 6a8b931..b531bc0 100644
--- a/develop/os/tutorials/bleprph/bleprph-intro/index.html
+++ b/develop/os/tutorials/bleprph/bleprph-intro/index.html
@@ -402,6 +402,14 @@
               
                 
     <li >
+      <a href="../../eddystone/">BLE Eddystone</a>
+    </li>
+
+              
+          
+              
+                
+    <li >
       <a href="../../blehci_project/">BLE HCI interface</a>
     </li>
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e1ea942d/develop/os/tutorials/bleprph/bleprph-svc-reg/index.html
----------------------------------------------------------------------
diff --git a/develop/os/tutorials/bleprph/bleprph-svc-reg/index.html b/develop/os/tutorials/bleprph/bleprph-svc-reg/index.html
index 766fc0d..a83cac7 100644
--- a/develop/os/tutorials/bleprph/bleprph-svc-reg/index.html
+++ b/develop/os/tutorials/bleprph/bleprph-svc-reg/index.html
@@ -402,6 +402,14 @@
               
                 
     <li >
+      <a href="../../eddystone/">BLE Eddystone</a>
+    </li>
+
+              
+          
+              
+                
+    <li >
       <a href="../../blehci_project/">BLE HCI interface</a>
     </li>
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e1ea942d/develop/os/tutorials/bletiny_project/index.html
----------------------------------------------------------------------
diff --git a/develop/os/tutorials/bletiny_project/index.html b/develop/os/tutorials/bletiny_project/index.html
index 48a3c02..63b4787 100644
--- a/develop/os/tutorials/bletiny_project/index.html
+++ b/develop/os/tutorials/bletiny_project/index.html
@@ -356,6 +356,14 @@
               
                 
     <li >
+      <a href="../eddystone/">BLE Eddystone</a>
+    </li>
+
+              
+          
+              
+                
+    <li >
       <a href="../blehci_project/">BLE HCI interface</a>
     </li>
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e1ea942d/develop/os/tutorials/blinky_console/index.html
----------------------------------------------------------------------
diff --git a/develop/os/tutorials/blinky_console/index.html b/develop/os/tutorials/blinky_console/index.html
index c102d85..7702a53 100644
--- a/develop/os/tutorials/blinky_console/index.html
+++ b/develop/os/tutorials/blinky_console/index.html
@@ -419,6 +419,14 @@
               
                 
     <li >
+      <a href="../eddystone/">BLE Eddystone</a>
+    </li>
+
+              
+          
+              
+                
+    <li >
       <a href="../blehci_project/">BLE HCI interface</a>
     </li>
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e1ea942d/develop/os/tutorials/blinky_primo/index.html
----------------------------------------------------------------------
diff --git a/develop/os/tutorials/blinky_primo/index.html b/develop/os/tutorials/blinky_primo/index.html
index f93e0ed..e8235a0 100644
--- a/develop/os/tutorials/blinky_primo/index.html
+++ b/develop/os/tutorials/blinky_primo/index.html
@@ -419,6 +419,14 @@
               
                 
     <li >
+      <a href="../eddystone/">BLE Eddystone</a>
+    </li>
+
+              
+          
+              
+                
+    <li >
       <a href="../blehci_project/">BLE HCI interface</a>
     </li>
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e1ea942d/develop/os/tutorials/blinky_sram_olimex/index.html
----------------------------------------------------------------------
diff --git a/develop/os/tutorials/blinky_sram_olimex/index.html b/develop/os/tutorials/blinky_sram_olimex/index.html
index 6208bf7..0787d90 100644
--- a/develop/os/tutorials/blinky_sram_olimex/index.html
+++ b/develop/os/tutorials/blinky_sram_olimex/index.html
@@ -419,6 +419,14 @@
               
                 
     <li >
+      <a href="../eddystone/">BLE Eddystone</a>
+    </li>
+
+              
+          
+              
+                
+    <li >
       <a href="../blehci_project/">BLE HCI interface</a>
     </li>
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e1ea942d/develop/os/tutorials/eddystone/index.html
----------------------------------------------------------------------
diff --git a/develop/os/tutorials/eddystone/index.html b/develop/os/tutorials/eddystone/index.html
new file mode 100644
index 0000000..af9833c
--- /dev/null
+++ b/develop/os/tutorials/eddystone/index.html
@@ -0,0 +1,726 @@
+<!DOCTYPE html>
+<html lang="en">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="X-UA-Compatible" content="IE=edge">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0">
+        
+        
+        <!-- This is broken by doc revisioning.
+        <link rel="canonical" href="http://mynewt.apache.org/os/tutorials/eddystone/"> -->
+        <link rel="shortcut icon" href="../../../img/favicon.ico">
+
+	    <title>BLE Eddystone - Apache Mynewt</title>
+
+        <link href="../../../css/bootstrap-3.0.3.min.css" rel="stylesheet">
+        <link rel="stylesheet" href="../../../css/highlight.css">
+        <link href="../../../css/base.css" rel="stylesheet">
+        <link href="../../../css/custom.css" rel="stylesheet">
+        <link href="../../../css/v2.css" rel="stylesheet">
+        <link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
+        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
+        <link href="../../../extra.css" rel="stylesheet">
+
+        <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
+        <!--[if lt IE 9]>
+            <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
+            <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
+        <![endif]-->
+
+        
+            <script>
+                (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+                (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+                m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+                })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+                ga('create', 'UA-72162311-1', 'auto');
+                ga('send', 'pageview');
+            </script>
+        
+    </head>
+
+
+    <body class="BLE Eddystone">
+
+
+        <div class="container">
+    <div class="row v2-main-banner">
+        <a class="logo-cell" href="/">
+            <img class="logo" src="/img/logo.png">
+        </a>
+        <div class="tagline-cell">
+            <h4 class="tagline">An OS to build, deploy and securely manage billions of devices</h4>
+        </div>
+        <div class="news-cell">
+            <div class="well">
+                <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.0.0-b1</a> released (Dec 13, 2016)
+            </div>
+        </div>
+    </div>
+</div>
+
+        
+
+
+
+
+
+
+<nav id="navbar" class="navbar navbar-inverse affix-top" data-spy="affix" data-offset-top="150" role="navigation">
+    <div class="container">
+        <!-- Collapsed navigation -->
+        <div class="navbar-header">
+            <!-- Expander button -->
+            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+
+        </div>
+
+        <!-- Expanded navigation -->
+        <div class="navbar-collapse collapse">
+            <!-- Main navigation -->
+            <ul class="nav navbar-nav navbar-right">
+                <li 
+  class=""
+>
+                    <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
+                </li>
+                <li 
+  class="important"
+>
+                    <a href="/quick-start/">Quick Start</a>
+                </li>
+                <li 
+  class=""
+>
+                    <a href="/about/">About</a>
+                </li>
+                <li 
+  class=""
+>
+                    <a href="/talks/">Talks</a>
+                </li>
+                <li 
+  class="active"
+>
+                    <a href="/latest/os/introduction">Documentation</a>
+                </li>
+                <li 
+  class=""
+>
+                    <a href="/download/">Download</a>
+                </li>
+                <li 
+  class=""
+>
+                    <a href="/community/">Community</a>
+                </li>
+                <li 
+  class=""
+>
+                    <a href="/events/">Events</a>
+                </li>
+            </ul>
+
+            <!-- Search, Navigation and Repo links -->
+            <ul class="nav navbar-nav navbar-right">
+                
+            </ul>
+        </div>
+    </div>
+</nav>
+
+        
+
+        <div class="container">
+            
+                <div class="row">
+                    <div class="col-md-3 v2-sidebar sidebar-container"><div id="docSidebar" class="hidden-print" role="complementary">
+    <div class="top">
+        <div role="search">
+            <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
+                <div class="form-group">
+                    <input type="text" name="q" class="form-control" placeholder="Search documentation" />
+                </div>
+            </form>
+        </div>
+    </div>
+    <ul class="toc-nav">
+      <li class="doc-version">
+<select class="form-control" onchange="if (this.value) window.location.href=this.value">
+    
+    <option
+      value="/develop/os/introduction"
+      selected="selected"
+    >
+      Version: develop (latest)
+    </option>
+    
+    <option
+      value="/v0_9_0/os/introduction"
+      
+    >
+      Version: 0.9.0
+    </option>
+    
+</select>
+</li>
+      
+        
+      
+        
+      
+        
+      
+        
+      
+        
+      
+        
+      
+        
+      
+        
+      
+        
+          
+  
+  
+    <li ><a href="../../introduction/">Mynewt Documentation</a>
+  
+  
+    <ul>
+          
+              
+          
+              
+                
+  
+  
+    <li ><a href="../../get_started/get_started/">Basic Setup</a>
+  
+  
+    </li>
+
+              
+          
+              
+                
+    <li >
+      <a href="../../get_started/vocabulary/">Concepts</a>
+    </li>
+
+              
+          
+              
+                
+  
+  
+    <li ><a href="../tutorials/">Tutorials</a>
+  
+  
+    <ul>
+          
+              
+          
+              
+                
+  
+  
+    <li><a href="
+  ../arduino_zero/
+">Project Blinky</a>
+  
+  
+    </li>
+
+              
+          
+              
+                
+  
+  
+    <li ><a href="../repo/add_repos/">Work with repositories</a>
+  
+  
+    </li>
+
+              
+          
+              
+                
+    <li >
+      <a href="../tasks_lesson/">Tasks and Priority Management</a>
+    </li>
+
+              
+          
+              
+                
+    <li >
+      <a href="../wi-fi_on_arduino/">Enable Wi-Fi on Arduino Zero</a>
+    </li>
+
+              
+          
+              
+                
+    <li >
+      <a href="../unit_test/">Write a Test Suite for a Package</a>
+    </li>
+
+              
+          
+              
+                
+  
+  
+    <li><a href="
+  ../air_quality_sensor/
+">Air-quality Sensor project</a>
+  
+  
+    </li>
+
+              
+          
+              
+                
+    <li >
+      <a href="../event_queue/">Add task to manage multiple events</a>
+    </li>
+
+              
+          
+              
+                
+  
+  
+    <li><a href="
+  ../project-slinky/
+">Project Slinky for remote comms</a>
+  
+  
+    </li>
+
+              
+          
+              
+                
+    <li >
+      <a href="../add_newtmgr/">Enable Newt Manager in any app</a>
+    </li>
+
+              
+          
+              
+                
+    <li >
+      <a href="../add_shell/">Enable the OS Shell and Console</a>
+    </li>
+
+              
+          
+              
+                
+    <li >
+      <a href="../bletiny_project/">BLE app to check stats via console</a>
+    </li>
+
+              
+          
+              
+                
+  
+  
+    <li ><a href="../bleprph/bleprph-intro/">BLE peripheral project</a>
+  
+  
+    </li>
+
+              
+          
+              
+                
+    <li >
+      <a href="../ibeacon/">BLE iBeacon</a>
+    </li>
+
+              
+          
+              
+                
+    <li class="active">
+      <a href="./">BLE Eddystone</a>
+    </li>
+
+              
+          
+              
+                
+    <li >
+      <a href="../blehci_project/">BLE HCI interface</a>
+    </li>
+
+              
+          
+    </ul>
+  
+    </li>
+
+              
+          
+              
+                
+  
+  
+    <li ><a href="../../os_user_guide/">OS User Guide</a>
+  
+  
+    </li>
+
+              
+          
+              
+                
+  
+  
+    <li><a href="
+  ../../../network/ble/ble_intro/
+">BLE User Guide</a>
+  
+  
+    </li>
+
+              
+          
+              
+                
+  
+  
+    <li ><a href="../../../newt/newt_intro/">Newt Tool Guide</a>
+  
+  
+    </li>
+
+              
+          
+              
+                
+  
+  
+    <li ><a href="../../../newtmgr/overview/">Newt Manager Guide</a>
+  
+  
+    </li>
+
+              
+          
+    </ul>
+  
+    </li>
+
+        
+      
+        
+          
+  
+  
+    <li><a href="
+  ../../../faq/how_to_edit_docs/
+">Appendix</a>
+  
+  
+    </li>
+
+        
+      
+    </ul>
+</div></div>
+
+                    <div class="col-md-9" role="main">
+                        <div class="doc-header">
+                            <div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs pull-right">
+    <li><a href="/develop/os/introduction">Docs</a></li>
+    
+    
+        
+          <li>&raquo; <a href="../../introduction/">Mynewt Documentation</a></li>
+        
+      
+        
+          <li>&raquo; <a href="../tutorials/">Tutorials</a></li>
+        
+      
+      
+        <li>&raquo; BLE Eddystone</li>
+      
+    
+    
+  </ul>
+</div>
+                        </div>
+                        
+                            <h2 id="ble-eddystone">BLE Eddystone</h2>
+<p><br></p>
+<h3 id="eddystone-beacon-protocol">Eddystone Beacon Protocol</h3>
+<p>A beaconing device announces its presence to the world by broadcasting
+advertisements.  The Eddystone protocol is built on top of the standard BLE
+advertisement specification.  Eddystone supports multiple data packet types</p>
+<ul>
+<li>Eddystone-UID: a unique, static ID with a 10-byte Namespace component and a 6-byte Instance component.</li>
+<li>Eddystone-URL: a compressed URL that, once parsed and decompressed, is directly usable by the client.</li>
+<li>Eddystone-TLM: "telemetry" packets that are broadcast alongside the Eddystone-UID or Eddystone-URL packets and contains beacon\u2019s \u201chealth status\u201d (e.g., battery life).</li>
+<li>Eddystone-EID to broadcast an ephemeral identifier that changes every few minutes and allow only parties that can resolve the identifier to use the beacon. </li>
+</ul>
+<p><a href="https://developers.google.com/beacons/eddystone">This page</a> describes the Eddystone open beacon format developed by Google.</p>
+<p>Apache Mynewt currently supports Eddystone-UID and Eddystone-URL formats only. This tutorial will explain how to get an Eddystone-URL beacon going on a peripheral device.</p>
+<p><br></p>
+<h3 id="configuration">Configuration</h3>
+<p>Use the following function to configure your NimBLE device to send Eddystone-URL beacons:</p>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%"><span style="color: #A90D91">int</span>
+<span style="color: #000000">ble_eddystone_set_adv_data_url</span>(<span style="color: #A90D91">struct</span> <span style="color: #000000">ble_hs_adv_fields</span> <span style="color: #000000">*adv_fields</span>,
+                               <span style="color: #A90D91">uint8_t</span> <span style="color: #000000">url_scheme</span>, <span style="color: #A90D91">char</span> <span style="color: #000000">*url_body</span>,
+                               <span style="color: #A90D91">uint8_t</span> <span style="color: #000000">url_body_len</span>, <span style="color: #A90D91">uint8_t</span> <span style="color: #000000">url_suffix</span>)
+</pre></div>
+
+
+<p>This function's parameters are documented below.</p>
+<table>
+<thead>
+<tr>
+<th><em>Parameter</em></th>
+<th><em>Purpose</em></th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>adv_fields</td>
+<td>The base advertisement fields to transform into an eddystone beacon.</td>
+</tr>
+<tr>
+<td>url_scheme</td>
+<td>The prefix of the URL; one of the BLE_EDDYSTONE_URL_SCHEME values from ble_eddystone.h</td>
+</tr>
+<tr>
+<td>url_body</td>
+<td>The middle of the url specified within "".</td>
+</tr>
+<tr>
+<td>url_body_len</td>
+<td>The string length of the url_body argument.</td>
+</tr>
+<tr>
+<td>url_suffix</td>
+<td>The suffix of the URL; one of the BLE_EDDYSTONE_URL_SUFFIX values from ble_eddystone.h</td>
+</tr>
+</tbody>
+</table>
+<p><br></p>
+<h3 id="modify-bleprph">Modify bleprph</h3>
+<p>To demonstrate how the above function is used, we will now modify the <em>bleprph</em>
+example application to send Eddystone beacons.  For some background behind the <em>bleprph</em>
+app, we recommend you take a look at the <a href="../bleprph/bleprph-intro/">bleprph project
+tutorial</a>.  If you plan on making these modifications
+yourself, it might be a good idea to copy <em>bleprph</em> to your local repository
+and work with the copy.  In general, you should avoid changing a package that
+newt downloads, as you will lose your changes the next time you upgrade the
+package.</p>
+<p><em>bleprph</em> sets its advertisement data and begins advertising as follows (<em>main.c</em>):</p>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%"><span style="color: #A90D91">static</span> <span style="color: #A90D91">void</span>
+<span style="color: #000000">bleprph_advertise</span>(<span style="color: #A90D91">void</span>)
+{
+    <span style="color: #A90D91">struct</span> <span style="color: #000000">ble_gap_adv_params</span> <span style="color: #000000">adv_params</span>;
+    <span style="color: #A90D91">struct</span> <span style="color: #000000">ble_hs_adv_fields</span> <span style="color: #000000">fields</span>;
+    <span style="color: #A90D91">const</span> <span style="color: #A90D91">char</span> <span style="color: #000000">*name</span>;
+    <span style="color: #A90D91">int</span> <span style="color: #000000">rc</span>;
+
+    <span style="color: #177500">/**</span>
+<span style="color: #177500">     *  Set the advertisement data included in our advertisements:</span>
+<span style="color: #177500">     *     o Flags (indicates advertisement type and other general info).</span>
+<span style="color: #177500">     *     o Advertising tx power.</span>
+<span style="color: #177500">     *     o Device name.</span>
+<span style="color: #177500">     *     o 16-bit service UUIDs (alert notifications).</span>
+<span style="color: #177500">     */</span>
+
+    <span style="color: #000000">memset</span>(<span style="color: #000000">&amp;fields</span>, <span style="color: #1C01CE">0</span>, <span style="color: #A90D91">sizeof</span> <span style="color: #000000">fields</span>);
+
+    <span style="color: #177500">/* Advertise two flags:</span>
+<span style="color: #177500">     *     o Discoverability in forthcoming advertisement (general)</span>
+<span style="color: #177500">     *     o BLE-only (BR/EDR unsupported).</span>
+<span style="color: #177500">     */</span>
+    <span style="color: #000000">fields</span>.<span style="color: #000000">flags</span> <span style="color: #000000">=</span> <span style="color: #000000">BLE_HS_ADV_F_DISC_GEN</span> <span style="color: #000000">|</span>
+                   <span style="color: #000000">BLE_HS_ADV_F_BREDR_UNSUP</span>;
+
+    <span style="color: #177500">/* Indicate that the TX power level field should be included; have the</span>
+<span style="color: #177500">     * stack fill this value automatically.  This is done by assiging the</span>
+<span style="color: #177500">     * special value BLE_HS_ADV_TX_PWR_LVL_AUTO.</span>
+<span style="color: #177500">     */</span>
+    <span style="color: #000000">fields</span>.<span style="color: #000000">tx_pwr_lvl_is_present</span> <span style="color: #000000">=</span> <span style="color: #1C01CE">1</span>;
+    <span style="color: #000000">fields</span>.<span style="color: #000000">tx_pwr_lvl</span> <span style="color: #000000">=</span> <span style="color: #000000">BLE_HS_ADV_TX_PWR_LVL_AUTO</span>;
+
+    <span style="color: #000000">name</span> <span style="color: #000000">=</span> <span style="color: #000000">ble_svc_gap_device_name</span>();
+    <span style="color: #000000">fields</span>.<span style="color: #000000">name</span> <span style="color: #000000">=</span> (<span style="color: #A90D91">uint8_t</span> <span style="color: #000000">*</span>)<span style="color: #000000">name</span>;
+    <span style="color: #000000">fields</span>.<span style="color: #000000">name_len</span> <span style="color: #000000">=</span> <span style="color: #000000">strlen</span>(<span style="color: #000000">name</span>);
+    <span style="color: #000000">fields</span>.<span style="color: #000000">name_is_complete</span> <span style="color: #000000">=</span> <span style="color: #1C01CE">1</span>;
+
+    <span style="color: #000000">fields</span>.<span style="color: #000000">uuids16</span> <span style="color: #000000">=</span> (<span style="color: #A90D91">ble_uuid16_t</span>[]){
+        <span style="color: #000000">BLE_UUID16_INIT</span>(<span style="color: #000000">GATT_SVR_SVC_ALERT_UUID</span>)
+    };
+    <span style="color: #000000">fields</span>.<span style="color: #000000">num_uuids16</span> <span style="color: #000000">=</span> <span style="color: #1C01CE">1</span>;
+    <span style="color: #000000">fields</span>.<span style="color: #000000">uuids16_is_complete</span> <span style="color: #000000">=</span> <span style="color: #1C01CE">1</span>;
+
+    <span style="color: #000000">rc</span> <span style="color: #000000">=</span> <span style="color: #000000">ble_gap_adv_set_fields</span>(<span style="color: #000000">&amp;fields</span>);
+    <span style="color: #A90D91">if</span> (<span style="color: #000000">rc</span> <span style="color: #000000">!=</span> <span style="color: #1C01CE">0</span>) {
+        <span style="color: #000000">BLEPRPH_LOG</span>(<span style="color: #000000">ERROR</span>, <span style="color: #C41A16">&quot;error setting advertisement data; rc=%d\n&quot;</span>, <span style="color: #000000">rc</span>);
+        <span style="color: #A90D91">return</span>;
+    }
+
+    <span style="color: #177500">/* Begin advertising. */</span>
+    <span style="color: #000000">memset</span>(<span style="color: #000000">&amp;adv_params</span>, <span style="color: #1C01CE">0</span>, <span style="color: #A90D91">sizeof</span> <span style="color: #000000">adv_params</span>);
+    <span style="color: #000000">adv_params</span>.<span style="color: #000000">conn_mode</span> <span style="color: #000000">=</span> <span style="color: #000000">BLE_GAP_CONN_MODE_UND</span>;
+    <span style="color: #000000">adv_params</span>.<span style="color: #000000">disc_mode</span> <span style="color: #000000">=</span> <span style="color: #000000">BLE_GAP_DISC_MODE_GEN</span>;
+    <span style="color: #000000">rc</span> <span style="color: #000000">=</span> <span style="color: #000000">ble_gap_adv_start</span>(<span style="color: #000000">BLE_OWN_ADDR_PUBLIC</span>, <span style="color: #A90D91">NULL</span>, <span style="color: #000000">BLE_HS_FOREVER</span>,
+                           <span style="color: #000000">&amp;adv_params</span>, <span style="color: #000000">bleprph_gap_event</span>, <span style="color: #A90D91">NULL</span>);
+    <span style="color: #A90D91">if</span> (<span style="color: #000000">rc</span> <span style="color: #000000">!=</span> <span style="color: #1C01CE">0</span>) {
+        <span style="color: #000000">BLEPRPH_LOG</span>(<span style="color: #000000">ERROR</span>, <span style="color: #C41A16">&quot;error enabling advertisement; rc=%d\n&quot;</span>, <span style="color: #000000">rc</span>);
+        <span style="color: #A90D91">return</span>;
+    }
+}
+</pre></div>
+
+
+<p>The call to <code>ble_gap_adv_set_fields()</code> configures the device with normal
+(non-Eddystone) advertisements; the call to <code>ble_gap_adv_start()</code> tells the
+NimBLE stack to start broadcasting.  We are now going to create an Eddystone app
+by making the following changes:</p>
+<ul>
+<li>Call <code>ble_eddystone_set_adv_data()</code> instead of <code>ble_gap_adv_set_fields()</code>. The tutorial shows how to emit "`https://mynewt.apache.org".</li>
+<li>Remove advertisement data such as device name, flags, tx levels etc. that are not required. </li>
+<li>Remove unnecessary local variables e.g. <code>name</code> pointer.  </li>
+<li>Modify the call to <code>ble_gap_adv_start()</code> such that the device is non-discoverable and non-connectable.</li>
+</ul>
+<p><br></p>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%"><span style="color: #A90D91">static</span> <span style="color: #A90D91">void</span>
+<span style="color: #000000">bleprph_advertise</span>(<span style="color: #A90D91">void</span>)
+{   
+    <span style="color: #A90D91">struct</span> <span style="color: #000000">ble_gap_adv_params</span> <span style="color: #000000">adv_params</span>;
+    <span style="color: #A90D91">struct</span> <span style="color: #000000">ble_hs_adv_fields</span> <span style="color: #000000">fields</span>;
+    <span style="color: #A90D91">int</span> <span style="color: #000000">rc</span>;
+
+    <span style="color: #177500">/** </span>
+<span style="background-color: #ffffcc"><span style="color: #177500">     *  Remove the advertisement data typically included in our advertisements: </span>
+</span><span style="color: #177500">     *     o Flags (indicates advertisement type and other general info).</span>
+<span style="color: #177500">     *     o Advertising tx power.</span>
+<span style="color: #177500">     *     o Device name.</span>
+<span style="color: #177500">     *     o 16-bit service UUIDs (alert notifications).</span>
+<span style="color: #177500">     */</span>
+
+    <span style="color: #000000">memset</span>(<span style="color: #000000">&amp;fields</span>, <span style="color: #1C01CE">0</span>, <span style="color: #A90D91">sizeof</span> <span style="color: #000000">fields</span>);
+
+<span style="background-color: #ffffcc">     <span style="color: #177500">/* No flags are needed for Eddystone URL. Remove all from default app.*/</span>
+</span>
+<span style="background-color: #ffffcc">    <span style="color: #000000">rc</span> <span style="color: #000000">=</span> <span style="color: #000000">ble_eddystone_set_adv_data_url</span>(<span style="color: #000000">&amp;fields</span>, <span style="color: #000000">BLE_EDDYSTONE_URL_SCHEME_HTTPS</span>, <span style="color: #C41A16">&quot;mynewt.apache&quot;</span>, 
+</span>                        <span style="color: #1C01CE">13</span>, <span style="color: #000000">BLE_EDDYSTONE_URL_SUFFIX_ORG</span>); 
+    <span style="color: #A90D91">if</span> (<span style="color: #000000">rc</span> <span style="color: #000000">!=</span> <span style="color: #1C01CE">0</span>) {
+        <span style="color: #000000">BLEPRPH_LOG</span>(<span style="color: #000000">ERROR</span>, <span style="color: #C41A16">&quot;error setting eddystone advertisement data; rc=%d\n&quot;</span>, <span style="color: #000000">rc</span>);
+        <span style="color: #A90D91">return</span>;
+    }
+
+    <span style="color: #177500">/* Begin advertising. */</span>
+    <span style="color: #000000">memset</span>(<span style="color: #000000">&amp;adv_params</span>, <span style="color: #1C01CE">0</span>, <span style="color: #A90D91">sizeof</span> <span style="color: #000000">adv_params</span>);
+<span style="background-color: #ffffcc">    <span style="color: #000000">adv_params</span>.<span style="color: #000000">conn_mode</span> <span style="color: #000000">=</span> <span style="color: #000000">BLE_GAP_CONN_MODE_NON</span>;
+</span><span style="background-color: #ffffcc">    <span style="color: #000000">adv_params</span>.<span style="color: #000000">disc_mode</span> <span style="color: #000000">=</span> <span style="color: #000000">BLE_GAP_DISC_MODE_NON</span>;
+</span>    <span style="color: #000000">rc</span> <span style="color: #000000">=</span> <span style="color: #000000">ble_gap_adv_start</span>(<span style="color: #000000">BLE_OWN_ADDR_PUBLIC</span>, <span style="color: #A90D91">NULL</span>, <span style="color: #000000">BLE_HS_FOREVER</span>,
+                           <span style="color: #000000">&amp;adv_params</span>, <span style="color: #000000">bleprph_gap_event</span>, <span style="color: #A90D91">NULL</span>);
+    <span style="color: #A90D91">if</span> (<span style="color: #000000">rc</span> <span style="color: #000000">!=</span> <span style="color: #1C01CE">0</span>) {
+        <span style="color: #000000">BLEPRPH_LOG</span>(<span style="color: #000000">ERROR</span>, <span style="color: #C41A16">&quot;error enabling advertisement; rc=%d\n&quot;</span>, <span style="color: #000000">rc</span>);
+        <span style="color: #A90D91">return</span>;
+    }
+}
+</pre></div>
+
+
+<p>Also include the header file for the eddystone beacon <code>ble_eddystone.h</code> in the app's main.c file. </p>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%"><span style="color: #633820">#include &quot;host/ble_eddystone.h&quot;</span>
+</pre></div>
+
+
+<p>If you have copied the bleprph app into your local repository then make sure that the pkg.yml for the app has the <code>@apache-mynewt-core/</code> prefix; otherwise the package dependencies will not be resolved correctly.</p>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">pkg.deps: 
+    - &quot;@apache-mynewt-core/boot/split&quot;
+    - &quot;@apache-mynewt-core/kernel/os&quot;
+&lt;snip&gt;
+</pre></div>
+
+
+<p>Finally, enable the <code>BLE_EDDYSTONE</code> sysconfig in the syscfg.yml of either your target or your app.</p>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">syscfg.vals:
+    &lt;snip&gt;
+    BLE_EDDYSTONE: 1 
+</pre></div>
+
+
+<p>Now when you run this app on your board, you should be able to see it with all
+your Eddystone-aware devices.</p>
+                        
+                        <div class="row">
+                            
+
+
+
+<ul class="nav nav-pills" style="margin-bottom: 10px">
+    <li>
+    
+    <a href=../ibeacon/>
+        <span class="fa fa-arrow-left"></span>
+        Previous: BLE iBeacon
+    </a>
+    
+    </li>
+    <li class="pull-right">
+    
+    <a href=../blehci_project/>
+        Next: BLE HCI interface
+        <span class="fa fa-arrow-right"></span>
+    </a>
+    
+    </li>
+</ul>
+                        </div>
+                        <footer class="row">
+    <div class="col-xs-12">
+        
+            <p class="copyright">Apache Mynewt (incubating) is available under Apache License, version 2.0.</p>
+        
+    </div>
+    <div class="col-xs-12">
+        <div class="logos">
+            <img src="/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
+            <small class="footnote">
+                MyNewt is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
+            </small>
+            <img src="/img/egg-logo2.png" alt="Apache Incubator" title="Apache Incubator">
+        </div>
+    </div>
+</footer>
+                    </div>
+                </div>
+            
+            
+        </div>
+
+        <script src="../../../js/jquery-1.10.2.min.js"></script>
+        <script src="../../../js/bootstrap-3.0.3.min.js"></script>
+        <script src="../../../js/highlight.pack.js"></script>
+        <script src="../../../js/base.js"></script>
+        <script src="../../../js/custom.js"></script>
+
+    </body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e1ea942d/develop/os/tutorials/event_queue/index.html
----------------------------------------------------------------------
diff --git a/develop/os/tutorials/event_queue/index.html b/develop/os/tutorials/event_queue/index.html
index a284cbf..84111cc 100644
--- a/develop/os/tutorials/event_queue/index.html
+++ b/develop/os/tutorials/event_queue/index.html
@@ -356,6 +356,14 @@
               
                 
     <li >
+      <a href="../eddystone/">BLE Eddystone</a>
+    </li>
+
+              
+          
+              
+                
+    <li >
       <a href="../blehci_project/">BLE HCI interface</a>
     </li>