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 <[email protected]>
Authored: Wed Feb 15 00:33:49 2017 -0800
Committer: aditihilbert <[email protected]>
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’s “health 
status” (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>
 

Reply via email to