You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by GitBox <gi...@apache.org> on 2018/01/30 01:14:03 UTC

[GitHub] aditihilbert closed pull request #386: automated asf-site build

aditihilbert closed pull request #386: automated asf-site build
URL: https://github.com/apache/mynewt-site/pull/386
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/develop/_images/MyNewtSensorReader.jpg b/develop/_images/MyNewtSensorReader.jpg
new file mode 100644
index 0000000000..997a359197
Binary files /dev/null and b/develop/_images/MyNewtSensorReader.jpg differ
diff --git a/develop/_images/MyNewtSensorReader006.jpg b/develop/_images/MyNewtSensorReader006.jpg
new file mode 100644
index 0000000000..c15d69d0c6
Binary files /dev/null and b/develop/_images/MyNewtSensorReader006.jpg differ
diff --git a/develop/_images/STM32f3discovery_connector.png b/develop/_images/STM32f3discovery_connector.png
new file mode 100644
index 0000000000..1f4437a127
Binary files /dev/null and b/develop/_images/STM32f3discovery_connector.png differ
diff --git a/develop/_images/Senseair1.png b/develop/_images/Senseair1.png
new file mode 100644
index 0000000000..9b469b332b
Binary files /dev/null and b/develop/_images/Senseair1.png differ
diff --git a/develop/_images/Senseair2.png b/develop/_images/Senseair2.png
new file mode 100644
index 0000000000..38be672639
Binary files /dev/null and b/develop/_images/Senseair2.png differ
diff --git a/develop/_images/adc-demo-1.png b/develop/_images/adc-demo-1.png
new file mode 100644
index 0000000000..6e5de5808c
Binary files /dev/null and b/develop/_images/adc-demo-1.png differ
diff --git a/develop/_images/adc-demo-2.png b/develop/_images/adc-demo-2.png
new file mode 100644
index 0000000000..be2cce79cd
Binary files /dev/null and b/develop/_images/adc-demo-2.png differ
diff --git a/develop/_images/breadboard.png b/develop/_images/breadboard.png
new file mode 100644
index 0000000000..39a2b9d699
Binary files /dev/null and b/develop/_images/breadboard.png differ
diff --git a/develop/_images/mkr1000-jlink.jpg b/develop/_images/mkr1000-jlink.jpg
new file mode 100644
index 0000000000..cfa09ca7ab
Binary files /dev/null and b/develop/_images/mkr1000-jlink.jpg differ
diff --git a/develop/_images/mkr1000-serial.jpg b/develop/_images/mkr1000-serial.jpg
new file mode 100644
index 0000000000..f4e3819008
Binary files /dev/null and b/develop/_images/mkr1000-serial.jpg differ
diff --git a/develop/_images/segger_sysview1.png b/develop/_images/segger_sysview1.png
new file mode 100644
index 0000000000..e1bdcb06f3
Binary files /dev/null and b/develop/_images/segger_sysview1.png differ
diff --git a/develop/_images/segger_sysview_recording.png b/develop/_images/segger_sysview_recording.png
new file mode 100644
index 0000000000..e0a0e425f4
Binary files /dev/null and b/develop/_images/segger_sysview_recording.png differ
diff --git a/develop/_images/segger_sysview_start_record.png b/develop/_images/segger_sysview_start_record.png
new file mode 100644
index 0000000000..3cb93f0d24
Binary files /dev/null and b/develop/_images/segger_sysview_start_record.png differ
diff --git a/develop/_images/serial_conn.png b/develop/_images/serial_conn.png
new file mode 100644
index 0000000000..32f27c7d2d
Binary files /dev/null and b/develop/_images/serial_conn.png differ
diff --git a/develop/_images/task_lesson.png b/develop/_images/task_lesson.png
new file mode 100644
index 0000000000..4b095065a1
Binary files /dev/null and b/develop/_images/task_lesson.png differ
diff --git a/develop/_sources/os/core_os/API.rst.txt b/develop/_sources/os/core_os/API.rst.txt
index c663c482ac..701c19d746 100644
--- a/develop/_sources/os/core_os/API.rst.txt
+++ b/develop/_sources/os/core_os/API.rst.txt
@@ -21,3 +21,8 @@ CPU Time
 ~~~~~~~~
 
 .. doxygenfile:: os_cputime.h
+
+OS Time
+~~~~~~~~
+
+.. doxygenfile:: os_time.h
diff --git a/develop/_sources/os/core_os/time/os_time.rst.txt b/develop/_sources/os/core_os/time/os_time.rst.txt
new file mode 100644
index 0000000000..8a4e24907d
--- /dev/null
+++ b/develop/_sources/os/core_os/time/os_time.rst.txt
@@ -0,0 +1,119 @@
+OS Time
+=======
+
+The system time for the Mynewt OS.
+
+.. contents::
+  :local:
+  :depth: 2
+
+Description
+-----------
+
+The Mynewt OS contains an incrementing time that drives the OS scheduler
+and time delays. The time is a fixed size (e.g. 32 bits) and will
+eventually wrap back to zero. The time to wrap from zero back to zero is
+called the **OS time epoch**.
+
+The frequency of the OS time tick is specified in the
+architecture-specific OS code ``os_arch.h`` and is named
+``OS_TICKS_PER_SEC``.
+
+The Mynewt OS also provides APIs for setting and retrieving the
+wallclock time (also known as local time or time-of-day in other
+operating systems).
+
+Data Structures
+---------------
+
+Time is stored in Mynewt as an :c:type:`os_time_t` value.
+
+Wallclock time is represented using the :c:data:`struct os_timeval <os_timeval>` and
+:c:data:`struct os_timezone <os_timezone>` tuple.
+
+:c:data:`struct os_timeval <os_timeval>` represents the number of seconds elapsed since
+00:00:00 Jan 1, 1970 UTC.
+
+.. code-block:: c
+
+   struct os_timeval {
+       int64_t tv_sec;  /* seconds since Jan 1 1970 UTC */
+       int32_t tv_usec; /* fractional seconds */
+   };
+
+   struct os_timeval tv = { 1457400000, 0 };  /* 01:20:00 Mar 8 2016 UTC */
+
+:c:data:`struct os_timezone <os_timezone>` is used to specify the offset of local time from
+UTC and whether daylight savings is in effect. Note that ``tz_minuteswest`` is a positive number
+if the local time is *behind* UTC and a negative number if the local time is *ahead* of UTC.
+
+.. code-block:: c
+
+   struct os_timezone {
+       int16_t tz_minuteswest;
+       int16_t tz_dsttime;
+   };
+
+   /* Pacific Standard Time is 08:00 hours west of UTC */
+   struct os_timezone PST = { 480, 0 };
+   struct os_timezone PDT = { 480, 1 };
+
+   /* Indian Standard Time is 05:30 hours east of UTC */
+   struct os_timezone IST = { -330, 0 };
+
+Functions
+-----------------
+
+=============================== ====================
+Function            	          Description
+=============================== ====================
+:c:func:`os_time_advance()`	    Increments the OS time tick for the system.
+:c:func:`os_time_delay()`	      Put the current task to sleep for the given number of ticks.
+:c:func:`os_time_get()`	        Get the current value of OS time.
+:c:func:`os_time_ms_to_ticks()`	Converts milliseconds to os ticks.
+:c:func:`os_get_uptime_usec()`	Gets the time duration since boot.
+:c:func:`os_gettimeofday()`	    Populate the given timeval and timezone structs with current time data.
+:c:func:`os_settimeofday()`	    Set the current time of day to the given time structs.
+=============================== ====================
+
+Macros
+--------------
+
+Several macros help with the evalution of times with respect to each
+other.
+
+-  :c:macro:`OS_TIME_TICK_LT` -- evaluates to true if t1 is before t2 in
+   time.
+-  :c:macro:`OS_TIME_TICK_GT` -- evaluates to true if t1 is after t2 in
+   time
+-  :c:macro:`OS_TIME_TICK_GEQ` -- evaluates to true if t1 is on or after
+   t2 in time.
+
+NOTE: For all of these macros the calculations are done modulo
+'os_time_t'.
+
+Ensure that comparison of OS time always uses the macros above (to
+compensate for the possible wrap of OS time).
+
+The following macros help adding or subtracting time when represented as
+:c:data:`struct os_timeval <os_timeval>`. All parameters to the following macros are
+pointers to :c:data:`struct os_timeval <os_timeval>`.
+
+-  :c:macro:`os_timeradd` -- Add ``uvp`` to ``tvp`` and store
+   result in ``vvp``.
+-  :c:macro:`os_timersub` -- Subtract ``uvp`` from ``tvp`` and
+   store result in ``vvp``.
+
+Special Notes
+-------------
+
+Its important to understand how quickly the time wraps especially when
+doing time comparison using the macros above (or by any other means).
+
+For example, if a tick is 1 millisecond and :c:type:`os_time_t` is 32-bits the
+OS time will wrap back to zero in about 49.7 days or stated another way,
+the OS time epoch is 49.7 days.
+
+If two times are more than 1/2 the OS time epoch apart, any time
+comparison will be incorrect. Ensure at design time that comparisons
+will not occur between times that are more than half the OS time epoch.
diff --git a/develop/_sources/tutorials/STM32F303.rst.txt b/develop/_sources/tutorials/STM32F303.rst.txt
new file mode 100644
index 0000000000..9b5c956c6f
--- /dev/null
+++ b/develop/_sources/tutorials/STM32F303.rst.txt
@@ -0,0 +1,225 @@
+Blinky, your "Hello World!", on STM32F303 Discovery
+---------------------------------------------------
+
+Objective
+~~~~~~~~~
+
+Learn how to use packages from a default application repository of
+Mynewt to build your first *Hello World* application (Blinky) on a
+target board. Once built using the *newt* tool, this application will
+blink the LED lights on the target board.
+
+Create a project with a simple app that blinks an LED on the stmf303
+discovery board. In the process import some external libraries into your
+project. Download the application to the target and watch it blink!
+
+What you need
+~~~~~~~~~~~~~
+
+-  Discovery kit with STM32F303VC MCU
+-  Laptop running Mac OSX.
+-  It is assumed you have already installed newt tool.
+-  It is assumed you already installed native tools as described
+   `here <../get_started/native_tools.html>`__
+
+Also, we assume that you're familiar with UNIX shells. Let's gets
+started!
+
+Create a project
+~~~~~~~~~~~~~~~~
+
+Create a new project to hold your work. For a deeper understanding, you
+can read about project creation in `Get Started -- Creating Your First
+Project <../get_started/project_create.html>`__ or just follow the
+commands below.
+
+If you've already created a project from another tutorial, you can
+re-use that project.
+
+::
+
+    $ mkdir ~/dev
+    $ cd ~/dev
+    $ newt new myproj
+    Downloading project skeleton from apache/incubator-mynewt-blinky...
+    Installing skeleton in myproj...
+    Project myproj successfully created.
+
+    $ cd myproj
+
+**Note:** Don't forget to change into the ``myproj`` directory.
+
+Import External STM32F3 Library support
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The STM32F303 support for Mynewt lives in an external repository. It's
+necessary to add another repository to the project. To do this, edit the
+file ``project.yml`` in the root directory of your project ``myproj``
+
+This requires two changes to this file.
+
+1. You must define the properties of the external repository that you
+   want to add
+2. You must include the repository in your project.
+
+Edit the file ``project.yml`` with your favorite editor and add the
+following repository details in the file (after the core repository).
+This gives newt the information to contact the repository and extract
+its contents. In this case, the repository is on github in the
+``runtimeco`` collection. Its name is ``mynewt-stm32f3`` and we will
+accept any version up to the latest. You can look at the contents
+`here <https://github.com/runtimeco/mynewt_stm32f3>`__.
+
+::
+
+    repository.mynewt_stm32f3:
+        type: github
+        vers: 0-latest
+        user: runtimeco
+        repo: mynewt_stm32f3
+
+In the same file, add the following highlighted line to the
+``project.repositories`` variable. This tells newt to download the
+repository contents into your project.
+
+.. code:: hl_lines="3"
+
+    project.repositories:
+        - apache-mynewt-core
+        - mynewt_stm32f3
+
+Install dependencies
+~~~~~~~~~~~~~~~~~~~~
+
+Now you can install this into the project using:
+
+::
+
+    $ newt install -v 
+    Downloading repository description for apache-mynewt-core... success!
+    ...
+    apache-mynewt-core successfully installed version 0.7.9-none
+    ...
+    Downloading repository description for mynewt_stm32f3... success!
+    Downloading repository mynewt_stm32f3 
+    ...
+    Resolving deltas: 100% (65/65), done.
+    Checking connectivity... done.
+    mynewt_stm32f3 successfully installed version 0.0.0-none
+
+Create targets
+~~~~~~~~~~~~~~
+
+Create two targets to build using the stmf3 board support package and
+the app blinky example from mynewt. The output of these commands are not
+shown here for brevity.
+
+The first target is the application image itself. The second target is
+the bootloader which allows you to upgrade your mynewt applications.
+
+::
+
+    $ newt target create stmf3_blinky
+    $ newt target set stmf3_blinky build_profile=optimized
+    $ newt target set stmf3_blinky bsp=@mynewt_stm32f3/hw/bsp/stm32f3discovery
+    $ newt target set stmf3_blinky app=apps/blinky
+
+    $ newt target create stmf3_boot
+    $ newt target set stmf3_boot app=@apache-mynewt-core/apps/boot
+    $ newt target set stmf3_boot bsp=@mynewt_stm32f3/hw/bsp/stm32f3discovery
+    $ newt target set stmf3_boot build_profile=optimized
+
+    $ newt target show
+
+    targets/stmf3_blinky
+        app=apps/blinky
+        bsp=@mynewt_stm32f3/hw/bsp/stm32f3discovery
+        build_profile=optimized
+    targets/stmf3_boot
+        app=apps/boot
+        bsp=@mynewt_stm32f3/hw/bsp/stm32f3discovery
+        build_profile=optimized
+
+Build the target executables
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To build the images, use the ``newt build`` command below.
+
+::
+
+    $ newt build stmf3_blinky
+       ...
+    Archiving stm32f3discovery.a
+    Linking blinky.elf
+    App successfully built: ~/dev/myproj/bin/stmf3_blinky/apps/blinky/blinky.elf
+
+    $ newt build stmf3_boot
+    Compiling log_shell.c
+    Archiving log.a
+    Linking boot.elf
+    App successfully built: ~/dev/myproj/bin/stmf3_boot/apps/boot/boot.elf
+
+Sign and create the blinky application image
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You must sign and version your application image to download it using
+newt. Use the ``newt create-image`` command to perform this action. Here
+we assign this image an arbitrary version ``1.2.3``.
+
+.. code-block:: console
+
+    $ newt create-image stmf3_blinky 1.2.3
+    App image successfully generated: ~/dev/myproj/bin/stmf3_blinky/apps/blinky/blinky.img
+    Build manifest:~/dev/myproj/bin/stmf3_blinky/apps/blinky/manifest.json
+
+Configure the hardware
+~~~~~~~~~~~~~~~~~~~~~~
+
+The STM32F3DISCOVERY board includes an ST-LINK/V2 embedded debug tool
+interface that will be used to program/debug the board. To program the
+MCU on the board, simply plug in the two jumpers on CN4, as shown in the
+picture in red. If you want to learn more about the board you will find
+the User Manual at
+http://www.st.com/st-web-ui/static/active/jp/resource/technical/document/user_manual/DM00063382.pdf
+
+-  |STMdiscovery|
+
+Download the Images
+~~~~~~~~~~~~~~~~~~~
+
+Use the ``newt load`` command to download the images to the target
+board.
+
+::
+
+    $ newt -v load stmf3_boot
+    $ newt -v load stmf3_blinky
+
+Watch the LED blink
+~~~~~~~~~~~~~~~~~~~
+
+Congratulations! You have built, downloaded, and run your first
+application using mynewt for the stm32f3 discovery board. One of the
+LEDs on the LED wheel should be blinking at 1 Hz.
+
+Want more?
+~~~~~~~~~~
+
+Want to make your board do something a little more exciting with the
+LEDs? Then try making the modifications to the Blinky app to make it a
+`pin-wheel app <pin-wheel-mods.html>`__ and you can light all the LEDs in
+a pin-wheel fashion.
+
+We have more fun tutorials for you to get your hands dirty. Be bold and
+try other Blinky-like `tutorials <../tutorials/nRF52.html>`__ or try
+enabling additional functionality such as `remote
+comms <project-slinky.html>`__ on the current board.
+
+If you see anything missing or want to send us feedback, please do so by
+signing up for appropriate mailing lists on our `Community
+Page <../../community.html>`__.
+
+Keep on hacking and blinking!
+
+.. |STMdiscovery| image:: pics/STM32f3discovery_connector.png
+
diff --git a/develop/_sources/tutorials/add_newtmgr.rst.txt b/develop/_sources/tutorials/add_newtmgr.rst.txt
new file mode 100644
index 0000000000..5089a2915c
--- /dev/null
+++ b/develop/_sources/tutorials/add_newtmgr.rst.txt
@@ -0,0 +1,321 @@
+Enabling Newt Manager in Your Application
+-----------------------------------------
+
+In order for your application to communicate with the newtmgr tool and
+process Newt Manager commands, you must enable Newt Manager device
+management and the support to process Newt Manager commands in your
+application. This tutorial explains how to add the support to your
+application.
+
+This tutorial assumes that you have read the `Device Management with
+Newt Manager </os/modules/devmgmt/newtmgr/>`__ guide and are familiar
+with the ``newtmgr`` and ``oicmgr`` frameworks and all the options that
+are available to customize your application.
+
+This tutorial shows you how to configure your application to:
+
+-  Use the newtmgr framework.
+-  Use serial transport to communicate with the newtmgr tool.
+-  Support all Newt Manager commands.
+
+See `Other Configuration Options <#other-configuration-options>`__ on
+how to customize your application.
+
+Prerequisites
+~~~~~~~~~~~~~
+
+Ensure that you have met the following prerequisites before continuing
+with this tutorial:
+
+-  Have Internet connectivity to fetch remote Mynewt components.
+-  Have a cable to establish a serial USB connection between the board
+   and the laptop.
+-  Install the newt tool and toolchains (See `Basic
+   Setup </os/get_started/get_started.html>`__).
+-  Install the `newtmgr tool <../../newtmgr/install_mac.html>`__.
+
+Use an Existing Project
+~~~~~~~~~~~~~~~~~~~~~~~
+
+We assume that you have worked through at least some of the other
+tutorials and have an existing project. In this example, we modify the
+``bletiny`` app to enable Newt Manager support. We call our target
+``myble``. You can create the target using any name you choose.
+
+Modify Package Dependencies and Configurations
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Add the following packages to the ``pkg.deps`` parameter in your target
+or application ``pkg.yml`` file:
+
+.. code-block:: console
+
+
+    pkg.deps:
+        - mgmt/newtmgr
+        - mgmt/newtmgr/transport/nmgr_shell
+        - mgmt/imgmgr
+        - sys/log/full
+        - sys/stats/full
+        - sys/config
+        - test/crash_test
+        - test/runtest
+
+Each package provides the following Newt Manager functionality:
+
+-  ``mgmt/newtmgr``: Supports the newtmgr framework and the Newt Manager
+   ``echo``, ``taskstat`` ``mpstat``, ``datetime``, and ``reset``
+   commands.
+-  ``mgmt/newtmgr/transport/nmgr_shell``: Supports serial transport.
+-  ``mgmt/imgmgr``: Supports the ``newtmgr image`` command
+-  ``sys/log/full`` : Supports the ``newtmgr log`` command.
+-  ``sys/stats/full``: Supports the ``newtmgr stat`` command.
+-  ``sys/config``: Supports the ``newtmgr config`` command.
+-  ``test/crash_test``: Supports the ``newtmgr crash`` command.
+-  ``test/runtest``: Supports the ``newt run`` command.
+
+Add the following configuration setting values to the ``syscfg.vals``
+parameter in the target or application ``syscfg.yml`` file:
+
+.. code-block:: console
+
+
+    syscfg.vals:
+        LOG_NEWTMGR: 1
+        STATS_NEWTMGR: 1
+        CONFIG_NEWTMGR: 1
+        CRASH_TEST_NEWTMGR: 1
+        RUNTEST_NEWTMGR: 1
+        SHELL_TASK: 1
+        SHELL_NEWTMGR: 1
+
+The first five configuration settings enable support for the Newt
+Manager ``log``, ``stat``, ``config``, ``crash``, and ``run`` commands.
+The ``SHELL_TASK`` setting enables the shell for serial transport. The
+``SHELL_NEWTMGR`` setting enables newtmgr support in the shell.
+
+Note that you may need to override additional configuration settings
+that are specific to each package to customize the package
+functionality.
+
+Modify the Source
+~~~~~~~~~~~~~~~~~
+
+By default, the ``mgmt`` package uses the Mynewt default event queue to
+receive request events from the newtmgr tool. These events are processed
+in the context of the application main task.
+
+You can specify a different event queue for the package to use. If you
+choose to use a dedicated event queue, you must create a task to process
+events from this event queue. The ``mgmt`` package executes and handles
+newtmgr request events in the context of this task. The ``mgmt`` package
+exports the ``mgmt_evq_set()`` function that allows you to specify an
+event queue.
+
+This example uses the Mynewt default event queue and you do not need to
+modify your application source.
+
+If you choose to use a different event queue, see `Events and Event
+Queues <event_queue.html>`__ for details on how to initialize an event
+queue and create a task to process the events. You will also need to
+modify your ``main.c`` to add the call to the ``mgmt_evq_set()``
+function as follows:
+
+Add the ``mgmt/mgmt.h`` header file:
+
+.. code-block:: console
+
+
+    #include <mgmt/mgmt.h>
+
+Add the call to specify the event queue. In the ``main()`` function,
+scroll down to the ``while (1)`` loop and add the following statement
+above the loop:
+
+.. code-block:: console
+
+
+    mgmt_evq_set(&my_eventq)
+
+where ``my_eventq`` is an event queue that you have initialized.
+
+Build the Targets
+~~~~~~~~~~~~~~~~~
+
+Build the two targets as follows:
+
+::
+
+    $ newt build nrf52_boot
+    <snip>
+    App successfully built: ./bin/nrf52_boot/apps/boot/boot.elf
+    $ newt build myble
+    Compiling hci_common.c
+    Compiling util.c
+    Archiving nimble.a
+    Compiling os.c
+    <snip>
+
+Create the Application Image
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Generate an application image for the ``myble`` target. You can use any
+version number you choose.
+
+::
+
+    $ newt create-image myble 1.0.0
+    App image successfully generated: ./bin/makerbeacon/apps/bletiny/bletiny.img
+    Build manifest: ./bin/makerbeacon/apps/bletiny/manifest.json
+
+Load the Image
+~~~~~~~~~~~~~~
+
+Ensure the USB connector is in place and the power LED on the board is
+lit. Turn the power switch on your board off, then back on to reset the
+board after loading the image.
+
+::
+
+    $ newt load nrf52_boot
+    $ newt load myble
+
+Set Up a Connection Profile
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The newtmgr tool requires a connection profile in order to connect to
+your board. If you have not done so, follow the
+`instructions <../../newtmgr/command_list/newtmgr_conn.html>`__ for
+setting up your connection profile.
+
+Communicate with Your Application
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Once you have a connection profile set up, you can connect to your
+device with ``newtmgr -c myconn <command>`` to run commands in your
+application.
+
+Issue the ``echo`` command to ensure that your application is
+communicating with the newtmgr tool:
+
+.. code-block:: console
+
+
+    # newtmgr -c myconn echo hello
+    hello
+
+Test your application to ensure that it can process a Newt Manager
+command that is supported by a different package. Issue the ``stat``
+command to see the BLE stats.
+
+.. code-block:: console
+
+
+    stat group: ble_att
+             0 error_rsp_rx
+             0 error_rsp_tx
+             0 exec_write_req_rx
+             0 exec_write_req_tx
+             0 exec_write_rsp_rx
+             0 exec_write_rsp_tx
+             0 find_info_req_rx
+             0 find_info_req_tx
+             0 find_info_rsp_rx
+             0 find_info_rsp_tx
+             0 find_type_value_req_rx
+
+                   ...
+
+             0 read_type_req_tx
+             0 read_type_rsp_rx
+             0 read_type_rsp_tx
+             0 write_cmd_rx
+             0 write_cmd_tx
+             0 write_req_rx
+             0 write_req_tx
+             0 write_rsp_rx
+             0 write_rsp_tx
+
+Your application is now able to communicate with the newtmgr tool.
+
+Other Configuration Options
+~~~~~~~~~~~~~~~
+
+
+This section explains how to customize your application to use other
+Newt Manager protocol options.
+
+Newtmgr Framework Transport Protocol Options
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The newtmgr framework currently supports BLE and serial transport
+protocols. To configure the transport protocols that are supported,
+modify the ``pkg.yml`` and ``syscfg.yml`` files as follows:
+
+-  Add the ``mgmt/newtmgr/transport/ble`` package to the ``pkg.deps``
+   parameter to enable BLE transport.
+-  Add the ``mgmt/newtmgr/transport/nmgr_shell`` package to the
+   ``pkg.deps`` parameter, and add ``SHELL_TASK: 1`` and
+   ``SHELL_NEWTMGR`` to the ``syscfg.vals`` parameter to enable serial
+   transport when your application also uses the
+   `Shell </os/modules/shell/shell.html>`__.
+-  Add the ``mgmt/newtmgr/transport/nmgr_uart`` package to the
+   ``pkg.deps`` parameter to enable serial transport over a UART port.
+   You can use this package instead of the ``nmgr_shell`` package when
+   your application does not use the
+   `Shell </os/modules/shell/shell.html>`__ or you want to use a dedicated
+   UART port to communicate with newtmgr. You can change the
+   ``NMGR_UART`` and ``NMGR_URART_SPEED`` sysconfig values to specify a
+   different port.
+
+Oicmgr Framework Options
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+To use the oicmgr framework instead of the newtmgr framework, modify the
+``pkg.yml`` and ``syscfg.yml`` files as follows:
+
+-  Add the ``mgmt/oicmgr`` package (instead of the ``mgmt/newtmgr`` and
+   ``mgmt/newtmgr/transport`` packages as described previously) to the
+   ``pkg.deps`` parameter.
+-  Add ``OC_SERVER: 1`` to the ``syscfg.vals`` parameter.
+
+Oicmgr supports the IP, serial, and BLE transport protocols. To
+configure the transport protocols that are supported, set the
+configuration setting values in the ``syscfg.vals`` parameter as
+follows:
+
+-  Add ``OC_TRANSPORT_IP: 1`` to enable IP transport.
+-  Add ``OC_TRANSPORT_GATT: 1`` to enable BLE transport.
+-  Add ``OC_TRANSPORT_SERIAL: 1``, ``SHELL_TASK: 1``,
+   ``SHELL_NEWTMGR:1`` to enable serial transport.
+
+Customize the Newt Manager Commands that Your Application Supports
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+We recommend that you only enable support for the Newt Manager commands
+that your application uses to reduce your application code size. To
+configure the commands that are supported, set the configuration setting
+values in the ``syscfg.vals`` parameter as follows:
+
+-  Add ``LOG_NEWTMGR: 1`` to enable support for the ``newtmgr log``
+   command.
+-  Add ``STATS_NEWTMGR: 1`` to enable support for the ``newtmgr stat``
+   command.
+-  Add ``CONFIG_NEWTMGR: 1`` to enable support for the
+   ``newtmgr config`` command.
+-  Add ``CRASH_TEST_NEWTMGR: 1`` to enable support for the
+   ``newtmgr crash`` command.
+-  Add ``RUNTEST_NEWTMGR: 1`` to enable support for the
+   ``newtmgr crash`` command.
+
+Notes:
+
+-  When you enable Newt Manager support, using either the newtmgr or
+   oicmgr framework, your application automatically supports the Newt
+   Manager ``echo``, ``taskstat``, ``mpstat``, ``datetime``, and
+   ``reset`` commands. These commands cannot be configured individually.
+-  The ``mgmt/imgmgr`` package does not provide a configuration setting
+   to enable or disable support for the ``newtmgr image`` command. Do
+   not specify the package in the ``pkg.deps`` parameter if your device
+   has limited flash memory and cannot support Over-The-Air (OTA)
+   firmware upgrades.
diff --git a/develop/_sources/tutorials/air_quality_ble.rst.txt b/develop/_sources/tutorials/air_quality_ble.rst.txt
new file mode 100644
index 0000000000..788606f771
--- /dev/null
+++ b/develop/_sources/tutorials/air_quality_ble.rst.txt
@@ -0,0 +1,235 @@
+Air quality sensor project via Bluetooth
+----------------------------------------
+
+This is a follow-on project to the `Basic Air Quality
+Sensor <air_quality_sensor.html>`__ project; so it is assumed that you
+have worked through that project and have your CO2 sensor working
+properly with your Arduino Primo board.
+
+So let's get started making this thing Bluetooth enabled!
+
+Add Bluetooth GATT Services
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Since we already built the previous demo on the `bluetooth
+peripheral <bleprph/bleprph-app.html>`__ basic app most of the bluetooth
+plumbing has already been taken care of for us. What's left is for us to
+add the required GATT services for advertising the Carbon Dioxide sensor
+so that other devices can get those values.
+
+First, we'll define the GATT Services in
+``apps/air_quality/src/bleprph.h``.
+
+.. code:: c
+
+    /* Sensor Data */
+    /* e761d2af-1c15-4fa7-af80-b5729002b340 */
+    static const ble_uuid128_t gatt_svr_svc_co2_uuid =
+        BLE_UUID128_INIT(0x40, 0xb3, 0x20, 0x90, 0x72, 0xb5, 0x80, 0xaf,
+                         0xa7, 0x4f, 0x15, 0x1c, 0xaf, 0xd2, 0x61, 0xe7);
+    #define CO2_SNS_TYPE          0xDEAD
+    #define CO2_SNS_STRING "SenseAir K30 CO2 Sensor"
+    #define CO2_SNS_VAL           0xBEAD
+
+    uint16_t gatt_co2_val; 
+
+You can use any hex values you choose for the sensor type and sensor
+values, and you can even forget the sensor type and sensor string
+definitions altogether but they make the results look nice in our
+Bluetooth App for Mac OS X and iOS.
+
+Next we'll add those services to ``apps/air_quality/src/gatt_svr.c``.
+
+.. code:: c
+
+    static int
+    gatt_svr_sns_access(uint16_t conn_handle, uint16_t attr_handle,
+        struct ble_gatt_access_ctxt *ctxt,
+        void *arg);
+        
+    static uint16_t gatt_co2_val_len;
+
+Make sure it is added as *primary* service.
+
+.. code:: c
+
+    static const struct ble_gatt_svc_def gatt_svr_svcs[] = {
+        {
+            /*** Service: Security test. */
+            .type = BLE_GATT_SVC_TYPE_PRIMARY,
+            .uuid = &gatt_svr_svc_sec_test_uuid.u,
+            .characteristics = (struct ble_gatt_chr_def[]) { {
+                /*** Characteristic: Random number generator. */
+                .uuid = &gatt_svr_chr_sec_test_rand_uuid.u,
+                .access_cb = gatt_svr_chr_access_sec_test,
+                .flags = BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_READ_ENC,
+            }, {
+                /*** Characteristic: Static value. */
+                .uuid = &gatt_svr_chr_sec_test_static_uuid,.u
+                .access_cb = gatt_svr_chr_access_sec_test,
+                .flags = BLE_GATT_CHR_F_READ |
+                         BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_WRITE_ENC,
+            }, {
+                0, /* No more characteristics in this service. */
+            } },
+        },
+            {
+                /*** CO2 Level Notification Service. */
+                .type = BLE_GATT_SVC_TYPE_PRIMARY,
+                .uuid = &gatt_svr_svc_co2_uuid.u,
+                .characteristics = (struct ble_gatt_chr_def[]) { {
+                    .uuid = BLE_UUID16_DECLARE(CO2_SNS_TYPE),
+                    .access_cb = gatt_svr_sns_access,
+                    .flags = BLE_GATT_CHR_F_READ,
+                }, {
+                    .uuid = BLE_UUID16_DECLARE(CO2_SNS_VAL),
+                    .access_cb = gatt_svr_sns_access,
+                    .flags = BLE_GATT_CHR_F_NOTIFY,
+                }, {
+                    0, /* No more characteristics in this service. */
+                } },
+            },
+
+            {
+                0, /* No more services. */
+            },
+        };
+                
+
+Next we need to tell the GATT Server how to handle requests for CO2
+readings :
+
+.. code:: c
+
+    sstatic int
+    gatt_svr_sns_access(uint16_t conn_handle, uint16_t attr_handle,
+                              struct ble_gatt_access_ctxt *ctxt,
+                              void *arg)
+    {
+        uint16_t uuid16;
+        int rc;
+
+        uuid16 = ble_uuid_u16(ctxt->chr->uuid);
+
+        switch (uuid16) {
+        case CO2_SNS_TYPE:
+            assert(ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR);
+            rc = os_mbuf_append(ctxt->om, CO2_SNS_STRING, sizeof CO2_SNS_STRING);
+            BLEPRPH_LOG(INFO, "CO2 SENSOR TYPE READ: %s\n", CO2_SNS_STRING);
+            return rc == 0 ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES;
+
+        case CO2_SNS_VAL:
+            if (ctxt->op == BLE_GATT_ACCESS_OP_WRITE_CHR) {
+                rc = gatt_svr_chr_write(ctxt->om, 0,
+                                        sizeof gatt_co2_val,
+                                        &gatt_co2_val,
+                                        &gatt_co2_val_len);
+                return rc;
+            } else if (ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR) {
+                rc = os_mbuf_append(ctxt->om, &gatt_co2_val,
+                                    sizeof gatt_co2_val);
+                return rc == 0 ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES;
+            }
+
+        default:
+            assert(0);
+            return BLE_ATT_ERR_UNLIKELY;
+        }
+    }
+
+Now it's time to go into our ``apps/air_quality/src/main.c`` and change
+how we read CO2 readings and respond to requests.
+
+We'll need a task handler with an event queue for the CO2 readings --
+they were handled by the shell task in the previous tutorial but now it
+needs to be replaced by a different handler as shown below.
+
+.. code:: c
+
+    /* CO2 Task settings */
+    #define CO2_TASK_PRIO           5
+    #define CO2_STACK_SIZE          (OS_STACK_ALIGN(336))
+    struct os_eventq co2_evq;
+    struct os_task co2_task;
+    bssnz_t os_stack_t co2_stack[CO2_STACK_SIZE];
+
+And of course we'll need to go to our ``main()`` and do all the standard
+task and event setup we normally do by adding the following. Again,
+remember to delete all the shell event queues and tasks.
+
+.. code:: c
+
+    /* Initialize sensor eventq */
+    os_eventq_init(&co2_evq);
+
+    /* Create the CO2 reader task.  
+     * All sensor reading operations are performed in this task.
+     */
+    os_task_init(&co2_task, "sensor", co2_task_handler,
+                NULL, CO2_TASK_PRIO, OS_WAIT_FOREVER,
+                co2_stack, CO2_STACK_SIZE);
+                
+
+We'll also need to add a task handler -- since we initialized it above:
+
+.. code:: c
+
+    /**
+     * Event loop for the sensor task.
+     */
+    static void
+    co2_task_handler(void *unused)
+    {    
+        while (1) {
+            co2_read_event();
+            /* Wait 2 second */
+            os_time_delay(OS_TICKS_PER_SEC * 2);
+
+        }
+    }
+
+And finally, we'll take care of that ``co2_read_event()`` function:
+
+.. code:: c
+
+    int
+    co2_read_event(void)
+    {
+        int value;
+        enum senseair_read_type type = SENSEAIR_CO2;
+        uint16_t chr_val_handle;
+        int rc;
+
+        value = senseair_read(type);
+        if (value >= 0) {
+            console_printf("Got %d\n", value);
+        } else {
+            console_printf("Error while reading: %d\n", value);
+            goto err;
+        }
+        gatt_co2_val = value;
+        rc = ble_gatts_find_chr(&gatt_svr_svc_co2_uuid.u, BLE_UUID16_DECLARE(CO2_SNS_VAL), NULL, &chr_val_handle);
+        assert(rc == 0);
+        ble_gatts_chr_updated(chr_val_handle);
+        return (0);
+    err:
+        return (rc);
+    }
+
+You'll notice that it looks eeirily similar to a portion of the shell
+event we created earlier. This one simply reads and updates the CO2
+value and sends that over BLE to any connected clients instead.
+
+We can now build, create-image and load the app onto our Arduino Primo
+board, and then connect and see the updated values! The image below
+shows the results using MyNewt Sensor Reader, a Mac OS X app developed
+for connecting to MyNewt devices over Bluetooth but you can also use
+LightBlue or any other application that can connect to, and read,
+Bluetooth data.
+
+.. figure:: pics/MyNewtSensorReader.jpg
+   :alt: MyNewt Sensor Reader
+
+   MyNewt Sensor Reader
+
+Congratulations!!
diff --git a/develop/_sources/tutorials/air_quality_sensor.rst.txt b/develop/_sources/tutorials/air_quality_sensor.rst.txt
new file mode 100644
index 0000000000..139354b79c
--- /dev/null
+++ b/develop/_sources/tutorials/air_quality_sensor.rst.txt
@@ -0,0 +1,920 @@
+Air quality sensor project
+--------------------------
+
+Setting up source tree for stuff you need
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To start with, you need to create a new project under which you will do
+this development. So you type in:
+
+.. code-block:: console
+
+        $ mkdir $HOME/src
+        $ cd $HOME/src
+        $ newt new air_quality
+
+Let's say you are using Arduino Primo -- which is based on the Nordic
+Semi NRF52 chip -- as the platform. You know you need the board support
+package for that hardware. You can look up its location, add it your
+project, and fetch that along with the core OS components. Luckily, the
+Arduino Primo is supported in the Mynewt Core, so there's nothing much
+to do here.
+
+Your project.yml file should look like this:
+
+.. code-block:: console
+
+        [user@IsMyLaptop:~/src/air_quality]$ emacs project.yml &
+        [user@IsMyLaptop:~/src/air_quality]$ cat project.yml
+        project.name: "air_quality"
+
+        project.repositories:
+            - apache-mynewt-core
+
+        # Use github's distribution mechanism for core ASF libraries.
+        # This provides mirroring automatically for us.
+        #
+        repository.apache-mynewt-core:
+            type: github
+            vers: 0-latest
+            user: apache
+            repo: mynewt-core
+
+        [user@IsMyLaptop:~/src/air_quality]$ newt install
+        apache-mynewt-core
+        [user@IsMyLaptop:~/src/air_quality]$ ls repos/
+        apache-mynewt-core
+
+Good. You want to make sure you have all the needed bits for supporting
+your board; so you decide to build the blinky project for the platform
+first.
+
+Now create a target for it and build it. Easiest way to proceed is to
+copy the existing target for blinky, and modify it to build for Arduino
+Primo board.
+
+.. code-block:: console
+
+    [user@IsMyLaptop:~/src/air_quality]$ newt target copy my_blinky_sim blink_primo
+    Target successfully copied; targets/my_blinky_sim --> targets/blink_primo
+    [user@IsMyLaptop:~/src/air_quality]$ newt target set blink_primo bsp=@apache-mynewt-core/hw/bsp/arduino_primo_nrf52
+    Target targets/blink_nrf successfully set target.bsp to @apache-mynewt-core/hw/bsp/arduino_primo_nrf52
+    [user@IsMyLaptop:~/src/air_quality]$ newt build blink_primo
+    Compiling hal_bsp.c
+    ...
+    Linking blinky.elf
+    App successfully built: /Users/user/src/air_quality/bin/blink_primo/apps/blinky/blinky.elf
+
+Good.
+
+You know that this platform uses bootloader, which means you have to
+create a target for that too.
+
+.. code-block:: console
+
+    [user@IsMyLaptop:~/src/air_quality]$ newt target create boot_primo
+    Target targets/boot_nrf successfully created
+    [user@IsMyLaptop:~/src/air_quality]$ newt target show
+    @apache-mynewt-core/targets/unittest
+        bsp=hw/bsp/native
+        build_profile=debug
+        compiler=compiler/sim
+    targets/blink_primo
+        app=apps/blinky
+        bsp=@apache-mynewt-core/hw/bsp/arduino_primo_nrf52
+        build_profile=debug
+    targets/boot_primo
+    targets/my_blinky_sim
+        app=apps/blinky
+        bsp=@apache-mynewt-core/hw/bsp/native
+        build_profile=debug
+    [user@IsMyLaptop:~/src/air_quality]$ newt target set boot_nrf bsp=@apache-mynewt-core/hw/bsp/arduino_primo_nrf52
+    Target targets/boot_nrf successfully set target.bsp to @apache-mynewt-core/hw/bsp/arduino_primo_nrf52
+    [user@IsMyLaptop:~/src/air_quality]$ newt target set boot_nrf app=@apache-mynewt-core/apps/boot
+    Target targets/boot_nrf successfully set target.app to @apache-mynewt-core/apps/boot
+    [user@IsMyLaptop:~/src/air_quality]$ newt target set boot_nrf build_profile=optimized
+    Target targets/boot_nrf successfully set target.build_profile to optimized
+
+And then build it, and load it onto the board.
+
+.. code-block:: console
+
+    newt build boot_primo
+    ....
+    Linking boot.elf
+    App successfully built: /Users/user/src/air_quality/bin/boot_primo/apps/boot/boot.elf
+    [user@IsMyLaptop:~/src/air_quality]
+    $ newt load boot_primo
+
+At this point, you may (or may not) see a bunch of error messages about
+not being able to connect to your board, not being able to load the
+image, etc. If that's the case, and you haven't already, you should most
+definitely go worth through the `blinky\_primo <blinky_primo.html>`__
+tutorial so that you can properly communicate with your board.
+
+Next you must download the targets to board, and see that the LED
+actually blinks. You plug in the Arduino Primo board to your laptop, and
+say:
+
+.. code-block:: console
+
+    [user@IsMyLaptop:~/src/air_quality]$ newt load blink_primo
+    Loading app image into slot 1
+    Error: couldn't open /Users/user/src/air_quality/bin/blink_primo/apps/blinky/blinky.img
+
+    Error: exit status 1
+
+    load - Load app image to target for <target-name>.
+
+    Usage:
+      newt load [flags]
+
+    Examples:
+      newt load <target-name>
+
+
+    Global Flags:
+      -l, --loglevel string   Log level, defaults to WARN. (default "WARN")
+      -o, --outfile string    Filename to tee log output to
+      -q, --quiet             Be quiet; only display error output.
+      -s, --silent            Be silent; don't output anything.
+      -v, --verbose           Enable verbose output when executing commands.
+    exit status 1
+
+Ah. Forgot to create an image out of the blinky binary. Note that every
+time you want to build and load a new firmware image to a target board,
+you need to run 'create-image' on it.
+
+.. code-block:: console
+
+    [user@IsMyLaptop:~/src/air_quality]$ newt create-image blink_primo 0.0.1
+    App image successfully generated: /Users/user/src/air_quality/bin/blink_primo/apps/blinky/blinky.img
+    Build manifest: /Users/user/src/air_quality/bin/blink_nrf/apps/blinky/manifest.json
+    [user@IsMyLaptop:~/src/air_quality]$ newt load blink_primo
+
+And it's blinking.
+
+Shortcut for doing build/create-image/load/debug steps all in one is
+'newt run' command. Check out the usage from command line help.
+
+Create test project
+~~~~~~~~~~~~~~~~~~~
+
+Now that you have your system setup, you can start creating your own
+stuff. First you want to create a project for yourself - you could start
+by using blinky as a project template, but since we're going to want to
+be able to access the data via Bluetooth, let's use the ``bleprph``
+Bluetooth Peripheral project instead.
+
+.. code-block:: console
+
+        [user@IsMyLaptop:~/src/air_quality]$ mkdir apps/air_quality
+        [user@IsMyLaptop:~/src/air_quality]$ cp repos/apache-mynewt-core/apps/bleprph/pkg.yml apps/air_quality/
+        [user@IsMyLaptop:~/src/air_quality]$ cp -Rp repos/apache-mynewt-core/apps/bleprph/src apps/air_quality/
+
+Then you modify the apps/air\_quality/pkg.yml for air\_quality in order
+to change the *pkg.name* to be *apps/air\_quality*. You'll need to add
+the ``@apache-mynewt-core/`` path to all the package dependencies, since
+the app no longer resides within the apache-mynewt-core repository.
+
+.. code-block:: console
+
+    [user@IsMyLaptop:~/src/air_quality]$ cat apps/air_quality/pkg.yml
+    pkg.name: apps/air_quality
+    pkg.type: app
+    pkg.description: BLE Air Quality application.
+    pkg.author: "Apache Mynewt <de...@mynewt.apache.org>"
+    pkg.homepage: "http://mynewt.apache.org/"
+    pkg.keywords:
+
+    pkg.deps: 
+        - "@apache-mynewt-core/kernel/os"
+        - "@apache-mynewt-core/sys/shell"
+        - "@apache-mynewt-core/sys/stats/full"
+        - "@apache-mynewt-core/sys/log/full"
+        - "@apache-mynewt-core/mgmt/newtmgr"
+        - "@apache-mynewt-core/mgmt/newtmgr/transport/ble"
+        - "@apache-mynewt-core/net/nimble/controller"
+        - "@apache-mynewt-core/net/nimble/host"
+        - "@apache-mynewt-core/net/nimble/host/services/ans"
+        - "@apache-mynewt-core/net/nimble/host/services/gap"
+        - "@apache-mynewt-core/net/nimble/host/services/gatt"
+        - "@apache-mynewt-core/net/nimble/host/store/ram"
+        - "@apache-mynewt-core/net/nimble/transport/ram"
+        - "@apache-mynewt-core/sys/console/full"
+        - "@apache-mynewt-core/sys/sysinit"
+        - "@apache-mynewt-core/sys/id"
+
+And create a target for it:
+
+.. code-block:: console
+
+    [user@IsMyLaptop:~/src/air_quality]$ newt target create air_q
+    Target targets/air_q successfully created
+    [user@IsMyLaptop:~/src/air_quality]$ newt target set air_q bsp=@apache-mynewt-core/hw/bsp/arduino_primo_nrf52
+    Target targets/air_q successfully set target.bsp to @apache-mynewt-core/hw/bsp/arduino_primo_nrf52
+    [user@IsMyLaptop:~/src/air_quality]$ newt target set air_q app=apps/air_quality 
+    Target targets/air_q successfully set target.app to apps/air_quality
+    [user@IsMyLaptop:~/src/air_quality]$ newt target set air_q build_profile=debug
+    Target targets/air_q successfully set target.build_profile to debug
+    [user@IsMyLaptop:~/src/air_quality]$ newt build air_q
+     ....
+    Linking /Users/dsimmons/dev/myproj/bin/targets/air_q/app/apps/air_quality/air_quality.elf
+    Target successfully built: targets/air_q
+
+Create packages for drivers
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+One of the sensors you want to enable is SenseAir K30, which will
+connect to the board over a serial port. To start development of the
+driver, you first need to create a package description for it, and add
+stubs for sources.
+
+The first thing to do is to create the directory structure for your
+driver:
+
+.. code-block:: console
+
+    [user@IsMyLaptop:~/src/air_quality]$ mkdir -p libs/my_drivers/senseair/include/senseair
+    [user@IsMyLaptop:~/src/air_quality]$ mkdir -p libs/my_drivers/senseair/src
+
+Now you can add the files you need. You'll need a pkg.yml to describe
+the driver, and then header stub followed by source stub.
+
+.. code-block:: console
+
+    [user@IsMyLaptop:~/src/air_quality]$ cat libs/my_drivers/senseair/pkg.yml
+
+.. code:: c
+
+    #
+    # Licensed to the Apache Software Foundation (ASF) under one
+    # or more contributor license agreements.  See the NOTICE file
+    # distributed with this work for additional information
+    # regarding copyright ownership.  The ASF licenses this file
+    # to you under the Apache License, Version 2.0 (the
+    # "License"); you may not use this file except in compliance
+    # with the License.  You may obtain a copy of the License at
+    # 
+    #  http://www.apache.org/licenses/LICENSE-2.0
+    #
+    # Unless required by applicable law or agreed to in writing,
+    # software distributed under the License is distributed on an
+    # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    # KIND, either express or implied.  See the License for the
+    # specific language governing permissions and limitations
+    # under the License.
+    #
+    pkg.name: libs/my_drivers/senseair
+    pkg.description: Host side of the nimble Bluetooth Smart stack.
+    pkg.author: "Apache Mynewt <de...@mynewt.apache.org>"
+    pkg.homepage: "http://mynewt.apache.org/"
+    pkg.keywords:
+        - ble
+        - bluetooth
+
+    pkg.deps:
+        - "@apache-mynewt-core/kernel/os"
+
+.. code-block:: console
+
+    [user@IsMyLaptop:~/src/air_quality]$ cat libs/my_drivers/senseair/include/senseair/senseair.h
+
+.. code:: c
+
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one
+     * or more contributor license agreements.  See the NOTICE file
+     * distributed with this work for additional information
+     * regarding copyright ownership.  The ASF licenses this file
+     * to you under the Apache License, Version 2.0 (the
+     * "License"); you may not use this file except in compliance
+     * with the License.  You may obtain a copy of the License at
+     * 
+     *  http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing,
+     * software distributed under the License is distributed on an
+     * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+     * KIND, either express or implied.  See the License for the
+     * specific language governing permissions and limitations
+     * under the License.
+    */
+    #ifndef _SENSEAIR_H_
+    #define _SENSEAIR_H_
+        
+    void senseair_init(void);
+        
+    #endif /* _SENSEAIR_H_ */
+
+.. code-block:: console
+
+    [user@IsMyLaptop:~/src/air_quality]$ cat libs/my_drivers/senseair/src/senseair.c
+
+.. code:: c
+
+    /**
+     * Licensed to the Apache Software Foundation (ASF) under one
+     * or more contributor license agreements.  See the NOTICE file
+     * distributed with this work for additional information
+     * regarding copyright ownership.  The ASF licenses this file
+     * to you under the Apache License, Version 2.0 (the
+     * "License"); you may not use this file except in compliance
+     * with the License.  You may obtain a copy of the License at
+     * 
+     *  http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing,
+     * software distributed under the License is distributed on an
+     * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+     * KIND, either express or implied.  See the License for the
+     * specific language governing permissions and limitations
+     * under the License.
+     */
+        
+    void
+    senseair_init(void)
+    {
+    }
+
+And add dependency to this package in your project yml file.
+
+Here's the listing from apps/air\_quality/pkg.yml
+
+.. code-block:: console
+
+    pkg.name: apps/air_quality
+    pkg.type: app
+    pkg.description: Air quality sensor test
+    pkg.keywords:
+
+    pkg.deps:
+        - "@apache-mynewt-core/libs/console/full"
+        - "@apache-mynewt-core/libs/newtmgr"
+        - "@apache-mynewt-core/libs/os"
+        - "@apache-mynewt-core/libs/shell"
+        - "@apache-mynewt-core/sys/config"
+        - "@apache-mynewt-core/sys/log/full"
+        - "@apache-mynewt-core/sys/stats/full"
+        - libs/my_drivers/senseair
+
+And add a call to your main() to initialize this driver.
+
+.. code-block:: console
+
+        [user@IsMyLaptop:~/src/air_quality]$ diff project/blinky/src/main.c project/air_quality/src/main.c
+        28a29
+        > #include <senseair/senseair.h>
+        190a192
+        > senseair_init();
+        [user@IsMyLaptop:~/src/air_quality
+
+The ble\_prph app runs everything in one task handler. For this project,
+we're going to add a second task handler to respond to the shell, and
+then handle communicating with the senseair sensor for us.
+
+.. code:: c
+
+    /** shell task settings. */
+    #define SHELL_TASK_PRIO           2
+    #define SHELL_STACK_SIZE          (OS_STACK_ALIGN(336))
+
+    struct os_eventq shell_evq;
+    struct os_task shell_task;
+    bssnz_t os_stack_t shell_stack[SHELL_STACK_SIZE];
+
+That defines the task, now we need to initialize it, add a task handler,
+and we're going to use this task as our default task handler.
+
+.. code:: c
+
+    /**
+     * Event loop for the main shell task.
+     */
+    static void
+    shell_task_handler(void *unused)
+    {
+        while (1) {
+            os_eventq_run(&shell_evq);
+        }
+    }
+
+And in your ``main()`` add:
+
+.. code:: c
+
+        /* Initialize shell eventq */
+        os_eventq_init(&shell_evq);
+
+        /* Create the shell task.  
+         * All shell operations are performed in this task.
+         */
+        os_task_init(&shell_task, "shell", shell_task_handler,
+                                  NULL, SHELL_TASK_PRIO, OS_WAIT_FOREVER,
+                                  shell_stack, SHELL_STACK_SIZE);
+
+Don't forget to change your default task handler!
+
+.. code:: c
+
+        os_eventq_dflt_set(&shell_evq);
+
+And then build it to make sure all goes well.
+
+.. code-block:: console
+
+    [user@IsMyLaptop:~/src/air_quality]$ newt build air_q
+    Compiling senseair.c
+    Archiving senseair.a
+    Linking air_quality.elf
+    App successfully built: /Users/user/src/air_quality/bin/air_q/apps/air_quality/air_quality.elf
+
+All looks good.
+
+Add CLI commands for testing drivers
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+While developing the driver, you want to issue operations from console
+asking it to do stuff. We'll assume that you've already worked through
+the tutorial on how to `enable the CLI <blinky_console.html>`__, so all
+we'll need to do is add the propper values to the project's
+``syscfg.yml`` file:
+
+.. code-block:: console
+
+    [user@IsMyLaptop:~/src/air_quality]$ cat targets/air_q/syscfg.yml
+    syscfg.vals:
+        # Set as per blinky_primo
+        OPENOCD_DEBUG: 1
+        # Enable the shell task.
+        SHELL_TASK: 1
+        STATS_CLI: 1
+        CONSOLE_TICKS: 1
+        CONSOLE_PROMPT: 1
+
+Then register your senseair command with the shell by adding the
+following to ``libs/my_drivers/senseair/src/senseair.c``
+
+.. code:: c
+
+    #include <shell/shell.h>
+    #include <console/console.h>
+    #include <assert.h>
+
+
+    static int senseair_shell_func(int argc, char **argv);
+    static struct shell_cmd senseair_cmd = {
+        .sc_cmd = "senseair",
+        .sc_cmd_func = senseair_shell_func,
+    };
+
+    void
+    senseair_init(void)
+    {
+        int rc;
+
+        rc = shell_cmd_register(&senseair_cmd);
+        assert(rc == 0);
+    }
+
+    static int
+    senseair_shell_func(int argc, char **argv)
+    {
+        console_printf("Yay! Somebody called!\n");
+        return 0;
+
+    }
+
+Now you can you build this, download to target, and start minicom on
+your console port. If you haven't already, familiarize yourself with the
+tutorial on how to connect a serial port to your board
+`here <../get_started/serial_access.html>`__.
+
+You'll need to wire up your Board to a Serial converter first. On the
+Arduino Primo Board pin 1 is TX and pin 0 is RX so wire 1 to RX on your
+serial board, and 0 to TX on your serial board.
+
+.. code-block:: console
+
+        [user@IsMyLaptop:~]$ minicom -D /dev/tty.usbserial-AH02MIE2
+        
+        
+        Welcome to minicom 2.7
+        
+        OPTIONS: 
+        Compiled on Oct 12 2015, 07:48:30.
+        Port /dev/tty.usbserial-AH02MIE2, 13:44:40
+        
+        Press CTRL-X Z for help on special keys
+        
+        ?
+        419: > ?
+        Commands:
+        641:     stat      echo         ?    prompt     ticks     tasks
+        643: mempools      date  senseair
+        644: > senseair
+        Yay! Somebody called!
+        1125: >
+        53611: > tasks
+        Tasks:
+        54047:    task pri tid  runtime      csw    stksz   stkuse   lcheck   ncheck flg
+        54057:    idle 255   0    54048    66890       64       30        0        0   0
+        54068:  ble_ll   0   1        9    64986       80       58        0        0   0
+        54079: bleprph   1   2        0        1      336       32        0        0   0
+        54090:   shell   2   3        0     2077      336      262        0        0   0
+        54101: >
+
+That's great. Your shell task is running, and is responding
+appropriately! You can connect the hardware to your board and start
+developing code for the driver itself.
+
+Use of HAL for drivers
+~~~~~~~~~~~~~~~~~~~~~~
+
+The sensor has a serial port connection, and that's how you are going to
+connect to it. Your original BSP, hw/bsp/arduino\_primo\_nrf52, has two
+UARTs set up. We're using one for our shell/console. It also has a
+second UART set up as a 'bit-bang' UART but since the SenseAir only
+needs to communicate at 9600 baud, this bit-banged uart is plenty fast
+enough.
+
+You'll have to make a small change to the ``syscfg.yml`` file in your
+project's target directory to change the pin definitions for this second
+UART. Those changes are as follows:
+
+.. code-block:: console
+
+        UART_0_PIN_TX: 23
+        UART_0_PIN_RX: 24
+
+With this in place, you can refer to serial port where your SenseAir
+sensor by a logical number. This makes the code more platform
+independent - you could connect this sensor to another board, like
+Olimex. You will also use the HAL UART abstraction to do the UART port
+setup and data transfer. That way you don't need to have any platform
+dependent pieces within your little driver.
+
+You will now see what the driver code ends up looking like. Here's the
+header file, filled in from the stub you created earlier.
+
+.. code:: c
+
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one
+     * or more contributor license agreements.  See the NOTICE file
+     * distributed with this work for additional information
+     * regarding copyright ownership.  The ASF licenses this file
+     * to you under the Apache License, Version 2.0 (the
+     * "License"); you may not use this file except in compliance
+     * with the License.  You may obtain a copy of the License at
+     * 
+     *  http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing,
+     * software distributed under the License is distributed on an
+     * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+     * KIND, either express or implied.  See the License for the
+     * specific language governing permissions and limitations
+     * under the License.
+    */
+    #ifndef _SENSEAIR_H_
+    #define _SENSEAIR_H_
+
+    enum senseair_read_type {
+            SENSEAIR_CO2,
+    };
+
+    int senseair_init(int uartno);
+
+    int senseair_read(enum senseair_read_type);
+
+    #endif /* _SENSEAIR_H_ */
+
+As you can see, logical UART number has been added to the init routine.
+A 'read' function has been added, which is a blocking read. If you were
+making a commercial product, you would probably have a callback for
+reporting the results.
+
+And here is the source for the driver.
+
+.. code:: c
+
+    /**
+     * Licensed to the Apache Software Foundation (ASF) under one
+     * or more contributor license agreements.  See the NOTICE file
+     * distributed with this work for additional information
+     * regarding copyright ownership.  The ASF licenses this file
+     * to you under the Apache License, Version 2.0 (the
+     * "License"); you may not use this file except in compliance
+     * with the License.  You may obtain a copy of the License at
+     *
+     *  http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing,
+     * software distributed under the License is distributed on an
+     * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+     * KIND, either express or implied.  See the License for the
+     * specific language governing permissions and limitations
+     * under the License.
+     */
+    #include <string.h>
+        
+    #include <shell/shell.h>
+    #include <console/console.h>
+    #include <os/os.h>
+        
+    #include <hal/hal_uart.h>
+        
+    #include "senseair/senseair.h"
+        
+    static const uint8_t cmd_read_co2[] = {
+        0xFE, 0X44, 0X00, 0X08, 0X02, 0X9F, 0X25
+    };
+        
+    static int senseair_shell_func(int argc, char **argv);
+    static struct shell_cmd senseair_cmd = {
+        .sc_cmd = "senseair",
+        .sc_cmd_func = senseair_shell_func,
+    };
+        
+    struct senseair { 
+        int uart;
+        struct os_sem sema;
+        const uint8_t *tx_data;
+        int tx_off;
+        int tx_len;
+        uint8_t rx_data[32]; 
+        int rx_off;
+        int value;
+    } senseair;
+        
+    static int
+    senseair_tx_char(void *arg)
+    {
+        struct senseair *s = &senseair;
+        int rc;
+
+        if (s->tx_off >= s->tx_len) {
+        /*
+             * Command tx finished.
+             */
+            s->tx_data = NULL;
+            return -1;
+        }
+
+        rc = s->tx_data[s->tx_off];
+        s->tx_off++;
+        return rc;
+    }
+        
+    /*
+     * CRC for modbus over serial port.
+     */
+    static const uint16_t mb_crc_tbl[] = {
+        0x0000, 0xcc01, 0xd801, 0x1400, 0xf001, 0x3c00, 0x2800, 0xe401,
+        0xa001, 0x6c00, 0x7800, 0xb401, 0x5000, 0x9c01, 0x8801, 0x4400
+    };
+        
+    static uint16_t
+    mb_crc(const uint8_t *data, int len, uint16_t crc)
+    {
+        while (len-- > 0) {
+            crc ^= *data++;
+            crc = (crc >> 4) ^ mb_crc_tbl[crc & 0xf];
+            crc = (crc >> 4) ^ mb_crc_tbl[crc & 0xf];
+        }
+        return crc;
+    }
+        
+    static int
+    mb_crc_check(const void *pkt, int len)
+    {
+        uint16_t crc, cmp;
+        uint8_t *bp = (uint8_t *)pkt;
+
+        if (len < sizeof(crc) + 1) {
+            return -1;
+        }
+        crc = mb_crc(pkt, len - 2, 0xffff);
+        cmp = bp[len - 2] | (bp[len - 1] << 8);
+        if (crc != cmp) {
+            return -1;
+        } else {
+            return 0;
+        }
+    }
+        
+    static int
+    senseair_rx_char(void *arg, uint8_t data)
+    {
+        struct senseair *s = (struct senseair *)arg;
+        int rc;
+
+        if (s->rx_off >= sizeof(s->rx_data)) {
+            s->rx_off = 0;
+        }
+        s->rx_data[s->rx_off] = data;
+        s->rx_off++;
+
+        if (s->rx_off == 7) {
+            rc = mb_crc_check(s->rx_data, s->rx_off);
+            if (rc == 0) {
+                s->value = s->rx_data[3] * 256 + s->rx_data[4];
+                os_sem_release(&s->sema);
+            }
+        }
+        return 0;
+    }
+        
+    void
+    senseair_tx(struct senseair *s, const uint8_t *tx_data, int data_len)
+    {
+        s->tx_data = tx_data;
+        s->tx_len = data_len;
+        s->tx_off = 0;
+        s->rx_off = 0;
+
+        hal_uart_start_tx(s->uart);
+    }
+        
+    int
+    senseair_read(enum senseair_read_type type)
+    {
+        struct senseair *s = &senseair;
+        const uint8_t *cmd;
+        int cmd_len;
+        int rc;
+        
+        if (s->tx_data) {
+            /*
+             * busy
+             */
+            return -1;
+        }
+        switch (type) {
+        case SENSEAIR_CO2:
+            cmd = cmd_read_co2;
+            cmd_len = sizeof(cmd_read_co2);
+            break;
+        default:
+            return -1;
+        }
+        senseair_tx(s, cmd, cmd_len);
+        rc = os_sem_pend(&s->sema, OS_TICKS_PER_SEC / 2);
+        if (rc == OS_TIMEOUT) {
+            /*
+             * timeout
+             */
+            return -2;
+        }
+        return s->value;
+    }
+        
+    static int
+    senseair_shell_func(int argc, char **argv)
+    {
+        int value;
+        enum senseair_read_type type;
+        
+        if (argc < 2) {
+    usage:
+            console_printf("%s co2\n", argv[0]);
+            return 0;
+        }
+        if (!strcmp(argv[1], "co2")) {
+            type = SENSEAIR_CO2;
+        } else {
+            goto usage;
+        }
+        value = senseair_read(type);
+        if (value >= 0) {
+            console_printf("Got %d\n", value);
+        } else {
+            console_printf("Error while reading: %d\n", value);
+        }
+        return 0;
+    }
+        
+    int
+    senseair_init(int uartno)
+    {
+        int rc;
+        struct senseair *s = &senseair;
+        
+        rc = shell_cmd_register(&senseair_cmd);
+        if (rc) {
+            return rc;
+        }
+        
+        rc = os_sem_init(&s->sema, 1);
+        if (rc) {
+            return rc;
+        }
+        rc = hal_uart_init_cbs(uartno, senseair_tx_char, NULL,
+          senseair_rx_char, &senseair);
+        if (rc) {
+            return rc;
+        }
+        rc = hal_uart_config(uartno, 9600, 8, 1, HAL_UART_PARITY_NONE,
+          HAL_UART_FLOW_CTL_NONE);
+        if (rc) {
+            return rc;
+        }
+        s->uart = uartno;
+        
+        return 0;
+    }
+
+And your modified main() for senseair driver init.
+
+.. code:: c
+
+    int
+    main(int argc, char **argv)
+    {
+        ....
+        senseair_init(0);
+        ....
+        }
+
+You can see from the code that you are using the HAL interface to open a
+UART port, and using OS semaphore as a way of blocking the task when
+waiting for read response to come back from the sensor.
+
+Now comes the fun part: Hooking up the sensor! It's fun because a)
+hooking up a sensor is always fun and b) the SenseAir sensor's PCB is
+entirely unlabeled, so you'll have to trust us on how to hook it up.
+
+So here we go.
+
+You'll have to do a little soldering. I soldered some header pins to the
+SenseAir K30 board to make connecting wires easier using standard jumper
+wires, but you can also just solder wires straight to the board if you
+prefer.
+
+Here's what your SenseAir board should look like once it's wired up:
+
+.. figure:: pics/Senseair1.png
+   :alt: SenseAir Wiring
+
+   SenseAir Wiring
+
+Now that you have that wired up, let's get the Arduino Primo wired up. A
+couple of things to note:
+
+-  The Arduino Primo's 'console' UART is actually UART1.
+-  The secondary (bit-banged) UART is UART0, so that's where we'll have
+   to hook up the SenseAir.
+
+Here's what your Arduino Primo should now look like with everything
+wired in:
+
+.. figure:: pics/Senseair2.png
+   :alt: SenseAir and Arduino Primo Wiring
+
+   SenseAir and Arduino Primo Wiring
+
+Everything is wired and you're ready to go! Build and load your new app:
+
+.. code-block:: console
+
+    $ newt build air_q
+    Building target targets/air_q
+    Compiling apps/air_quality/src/main.c
+    Archiving apps_air_quality.a
+    Linking myproj/bin/targets/air_q/app/apps/air_quality/air_quality.elf
+    Target successfully built: targets/air_q
+    $ newt create-image air_q 1.0.0
+    App image succesfully generated: myproj/bin/targets/air_q/app/apps/air_quality/air_quality.img
+    $ newt load air_q
+    Loading app image into slot 1
+
+Now, you should be able to connect to your serial port and read values:
+
+::
+
+    user@IsMyLaptop:~]$ minicom -D /dev/tty.usbserial-AH02MIE2
+        
+        
+        Welcome to minicom 2.7
+        
+        OPTIONS: 
+        Compiled on Oct 12 2015, 07:48:30.
+        Port /dev/tty.usbserial-AH02MIE2, 13:44:40
+        
+        Press CTRL-X Z for help on special keys
+        
+        1185: > ?
+        Commands:
+        1382:     stat      echo         ?    prompt     ticks     tasks
+        1390: mempools      date  senseair
+        1395: > senseair
+        senseair co2
+        2143: > senseair co2
+        Got 973
+        
+
+And you're getting valid readings! Congratulations!
+
+Next we'll hook this all up via Bluetooth so that you can read those
+values remotely.
diff --git a/develop/_sources/tutorials/codesize.rst.txt b/develop/_sources/tutorials/codesize.rst.txt
new file mode 100644
index 0000000000..163c18aba3
--- /dev/null
+++ b/develop/_sources/tutorials/codesize.rst.txt
@@ -0,0 +1,38 @@
+How to Reduce Application Code Size
+-----------------------------------
+
+Gettng your application to fit in an image slot can be challenging,
+particularly on flash constrained hardware such as the nRF51. Below are
+some suggested system configuration settings that reduce the code size
+of your Mynewt image.
+
++------------------------+---------------------------------------------+
+| Setting                | Description                                 |
++========================+=============================================+
+| LOG\_LEVEL: 255        | Disable all logging.                        |
++------------------------+---------------------------------------------+
+| LOG\_CLI: 0            | Disable log shell commands.                 |
++------------------------+---------------------------------------------+
+| STATS\_CLI: 0          | Disable stats shell commands.               |
++------------------------+---------------------------------------------+
+| SHELL\_TASK: 0         | Disable the interactive shell.              |
++------------------------+---------------------------------------------+
+| SHELL\_OS\_MODULE: 0   | Disable memory management shell commands.   |
++------------------------+---------------------------------------------+
+| SHELL\_CMD\_HELP: 0    | Disable help for shell commands.            |
++------------------------+---------------------------------------------+
+
+You can use the ``newt target set`` command to set the syscfg settings
+in the ``syscfg.yml`` file for the target. See the `Newt Tool Command
+Guide </newt/command_list/newt_target>`__ for the command syntax.
+
+**Note:** The ``newt target set`` command deletes all the current syscfg
+settings in the target ``syscfg.yml`` file and only sets the syscfg
+settings specified in the command. If you are experimenting with
+different settings to see how they affect the code size and do not want
+to reenter all the setting values in the ``newt target set`` command,
+you can use the ``newt target amend`` command. This command adds or
+updates only the settings specified in the command and does not
+overwrite other setting values. While you can also edit the target
+``syscfg.yml`` file directly, we recommend that you use the
+``newt target`` commands.
diff --git a/develop/_sources/tutorials/define_target.rst.txt b/develop/_sources/tutorials/define_target.rst.txt
new file mode 100644
index 0000000000..83248b1f60
--- /dev/null
+++ b/develop/_sources/tutorials/define_target.rst.txt
@@ -0,0 +1,4 @@
+How to Define a Target
+----------------------
+
+What newt commands to use?
diff --git a/develop/_sources/tutorials/event_queue.rst.txt b/develop/_sources/tutorials/event_queue.rst.txt
new file mode 100644
index 0000000000..fa8c1f7bea
--- /dev/null
+++ b/develop/_sources/tutorials/event_queue.rst.txt
@@ -0,0 +1,539 @@
+How to Use Event Queues to Manage Multiple Events
+-------------------------------------------------
+
+Introduction
+~~~~~~~~~~~~
+
+The event queue mechanism allows you to serialize incoming events for
+your task. You can use it to get information about hardware interrupts,
+callout expirations, and messages from other tasks.
+
+The benefit of using events for inter-task communication is that it can
+reduce the number of resources that need to be shared and locked.
+
+The benefit of processing interrupts in a task context instead of the
+interrupt context is that other interrupts and high priority tasks are
+not blocked waiting for the interrupt handler to complete processing. A
+task can also access other OS facilities and sleep.
+
+This tutorial assumes that you have read about `Event
+Queues <../core_os/event_queue/event_queue.html>`__, the `Hardware
+Abstraction Layer <../modules/hal/hal.html>`__, and `OS
+Callouts <../core_os/callout/callout.html>`__ in the OS User's Guide.
+
+This tutorial shows you how to create an application that uses events
+for:
+
+-  Inter-task communication
+-  OS callouts for timer expiration
+-  GPIO interrupts
+
+It also shows you how to:
+
+-  Use the Mynewt default event queue and application main task to
+   process your events.
+-  Create a dedicated event queue and task for your events.
+
+To reduce an application's memory requirement, we recommend that you use
+the Mynewt default event queue if your application or package does not
+have real-time timing requirements.
+
+Prerequisites
+~~~~~~~~~~~~~
+
+Ensure that you have met the following prerequisites before continuing
+with this tutorial:
+
+-  Install the newt tool.
+-  Install the newtmgr tool.
+-  Have Internet connectivity to fetch remote Mynewt components.
+-  Install the compiler tools to support native compiling to build the
+   project this tutorial creates.
+-  Have a cable to establish a serial USB connection between the board
+   and the laptop.
+
+Example Application
+~~~~~~~~~~~~~~~~~~~
+
+In this example, you will write an application, for the Nordic nRF52
+board, that uses events from three input sources to toggle three GPIO
+outputs and light up the LEDs. If you are using a different board, you
+will need to adjust the GPIO pin numbers in the code example.
+
+The application handles events from three sources on two event queues:
+
+-  Events generated by an application task at periodic intervals are
+   added to the Mynewt default event queue.
+-  OS callouts for timer events are added to the
+   ``my_timer_interrupt_eventq`` event queue.
+-  GPIO interrupt events are added to the ``my_timer_interrupt_eventq``
+   event queue. #### Create the Project Follow the instructions in the
+   `nRF52 tutorial <nRF52.html>`__ to create a project. #### Create the
+   Application Create the ``pkg.yml`` file for the application:
+
+.. code-block:: console
+
+    pkg.name: apps/eventq_example
+    pkg.type: app
+
+    pkg.deps:
+        - kernel/os
+        - hw/hal
+        - sys/console/stub
+
+Application Task Generated Events
+^^^^^^^^^^^^^^^^^^^
+
+
+The application creates a task that generates events, at periodic
+intervals, to toggle the LED at pin ``TASK_LED``. The event is queued on
+the Mynewt default event queue and is processed in the context of the
+application main task.
+
+Declare and initialize the ``gen_task_ev`` event with the ``my_ev_cb()``
+callback function to process the event:
+
+.. code:: c
+
+
+    /* Callback function for application task event */
+    static void my_ev_cb(struct os_event *);
+
+    /* Initialize the event with the callback function */
+    static struct os_event gen_task_ev = {
+        .ev_cb = my_ev_cb,
+    };
+
+Implement the ``my_ev_cb()`` callback function to process a task
+generated event and toggle the LED at pin ``TASK_LED``:
+
+.. code:: c
+
+
+    /* LED 1 (P0.17 on the board) */
+    #define TASK_LED        17
+
+    /*
+     * Event callback function for events generated by gen_task. It toggles 
+     * the LED at pin TASK_LED.
+     */
+    static void my_ev_cb(struct os_event *ev)
+    {
+        assert(ev);
+        hal_gpio_toggle(TASK_LED);
+        return;
+    }
+
+Create a task that generates an event at periodic intervals and adds,
+using the ``os_eventq_put()`` function, the event to the Mynewt default
+event queue:
+
+.. code:: c
+
+
+    #define GEN_TASK_PRIO       3     
+    #define GEN_TASK_STACK_SZ   512
+
+    static os_stack_t gen_task_stack[GEN_TASK_STACK_SZ];
+    static struct os_task gen_task_str;
+
+    /* 
+     * Task handler to generate an event to toggle the LED at pin TASK_LED. 
+     * The event is added to the Mynewt default event queue. 
+     */
+    static void
+    gen_task(void *arg)
+    {
+        while (1) {
+            os_time_delay(OS_TICKS_PER_SEC / 4);
+            os_eventq_put(os_eventq_dflt_get(), &gen_task_ev);
+        }
+    }
+
+    static void
+    init_tasks(void)
+    {
+
+        /* Create a task to generate events to toggle the LED at pin TASK_LED */
+
+        os_task_init(&gen_task_str, "gen_task", gen_task, NULL, GEN_TASK_PRIO,
+                     OS_WAIT_FOREVER, gen_task_stack, GEN_TASK_STACK_SZ);
+
+          ...
+
+    }
+
+Implement the application ``main()`` function to call the
+``os_eventq_run()`` function to dequeue an event from the Mynewt default
+event queue and call the callback function to process the event.
+
+.. code:: c
+
+
+    int
+    main(int argc, char **argv)
+    {
+        sysinit();
+
+        init_tasks();
+      
+        while (1) {
+           os_eventq_run(os_eventq_dflt_get());     
+        }
+        assert(0);
+    }
+
+OS Callout Timer Events
+^^^^^^^^^^^^^^^^^^^
+
+
+Set up OS callout timer events. For this example, we use a dedicated
+event queue for timer events to show you how to create a dedicated event
+queue and a task to process the events.
+
+Implement the ``my_timer_ev_cb()`` callback function to process a timer
+event and toggle the LED at pin ``CALLOUT_LED``:
+
+.. code:: c
+
+
+    /* LED 2 (P0.18 on the board) */
+    #define CALLOUT_LED     18
+
+    /* The timer callout */
+    static struct os_callout my_callout;
+
+    /*
+     * Event callback function for timer events. It toggles the LED at pin CALLOUT_LED.
+     */
+    static void my_timer_ev_cb(struct os_event *ev)
+    {
+        assert(ev != NULL);
+      
+        hal_gpio_toggle(CALLOUT_LED);
+           
+        os_callout_reset(&my_callout, OS_TICKS_PER_SEC / 2);
+    }
+
+In the ``init_tasks()`` function, initialize the
+``my_timer_interrupt_eventq`` event queue, create a task to process
+events from the queue, and initialize the OS callout for the timer:
+
+.. code:: c
+
+    #define MY_TIMER_INTERRUPT_TASK_PRIO  4
+    #define MY_TIMER_INTERRUPT_TASK_STACK_SZ    512
+
+    static os_stack_t my_timer_interrupt_task_stack[MY_TIMER_INTERRUPT_TASK_STACK_SZ];
+    static struct os_task my_timer_interrupt_task_str;
+
+    static void
+    init_tasks(void)
+    {
+        /* Use a dedicate event queue for timer and interrupt events */
+     
+        os_eventq_init(&my_timer_interrupt_eventq);  
+
+        /* 
+         * Create the task to process timer and interrupt events from the
+         * my_timer_interrupt_eventq event queue.
+         */
+        os_task_init(&my_timer_interrupt_task_str, "timer_interrupt_task", 
+                     my_timer_interrupt_task, NULL, 
+                     MY_TIMER_INTERRUPT_TASK_PRIO, OS_WAIT_FOREVER, 
+                     my_timer_interrupt_task_stack, 
+                     MY_TIMER_INTERRUPT_TASK_STACK_SZ);
+         /* 
+          * Initialize the callout for a timer event.  
+          * The my_timer_ev_cb callback function processes the timer events.
+          */
+        os_callout_init(&my_callout, &my_timer_interrupt_eventq,  
+                        my_timer_ev_cb, NULL);
+
+        os_callout_reset(&my_callout, OS_TICKS_PER_SEC);
+
+    }
+
+Implement the ``my_timer_interrupt_task()`` task handler to dispatch
+events from the ``my_timer_interrupt_eventq`` event queue:
+
+.. code:: c
+
+
+    static void
+    my_timer_interrupt_task(void *arg)
+    {
+        while (1) {
+            os_eventq_run(&my_timer_interrupt_eventq);
+        }
+    }
+
+Interrupt Events
+^^^^^^^^^^^^^^^^^^^
+
+
+The application toggles the LED each time button 1 on the board is
+pressed. The interrupt handler generates an event when the GPIO for
+button 1 (P0.13) changes state. The events are added to the
+``my_timer_interrupt_eventq`` event queue, the same queue as the timer
+events.
+
+Declare and initialize the ``gpio_ev`` event with the
+``my_interrupt_ev_cb()`` callback function to process the event:
+
+.. code:: c
+
+    static struct os_event gpio_ev {
+        .ev_cb = my_interrupt_ev_cb,
+    };
+
+Implement the ``my_interrupt_ev_cb()`` callback function to process an
+interrupt event and toggle the LED at pin ``GPIO_LED``:
+
+.. code:: c
+
+
+    /* LED 3 (P0.19 on the board) */
+    #define GPIO_LED     19
+
+    /*
+     * Event callback function for interrupt events. It toggles the LED at pin GPIO_LED.
+     */
+    static void my_interrupt_ev_cb(struct os_event *ev)
+    {
+        assert(ev != NULL);
+        
+        hal_gpio_toggle(GPIO_LED);
+    }
+
+Implement the ``my_gpio_irq()`` handler to post an interrupt event to
+the ``my_timer_interrupt_eventq`` event queue:
+
+.. code:: c
+
+    static void
+    my_gpio_irq(void *arg)
+    {
+        os_eventq_put(&my_timer_interrupt_eventq, &gpio_ev);
+    }
+
+In the ``init_tasks()`` function, add the code to set up and enable the
+GPIO input pin for the button and initialize the GPIO output pins for
+the LEDs:
+
+.. code:: c
+
+    /* LED 1 (P0.17 on the board) */
+    #define TASK_LED        17 
+
+    /*  2 (P0.18 on the board) */
+    #define CALLOUT_LED     18 
+
+    /* LED 3 (P0.19 on the board) */
+    #define GPIO_LED        19
+
+    /* Button 1 (P0.13 on the board) */
+    #define BUTTON1_PIN     13
+
+    void 
+    init_tasks()
+
+        /* Initialize OS callout for timer events. */
+
+              ....
+
+        /* 
+         * Initialize and enable interrupts for the pin for button 1 and 
+         * configure the button with pull up resistor on the nrf52dk.
+         */ 
+        hal_gpio_irq_init(BUTTON1_PIN, my_gpio_irq, NULL, HAL_GPIO_TRIG_RISING, HAL_GPIO_PULL_UP);
+
+        hal_gpio_irq_enable(BUTTON1_PIN);
+
+        /* Initialize the GPIO output pins. Value 1 is off for these LEDs.  */
+       
+        hal_gpio_init_out(TASK_LED, 1);
+        hal_gpio_init_out(CALLOUT_LED, 1);
+        hal_gpio_init_out(GPIO_LED, 1);
+    }
+
+Putting It All Together
+~~~~~~~~~~~~~~~
+
+
+Here is the complete ``main.c`` source for your application. Build the
+application and load it on your board. The task LED (LED1) blinks at an
+interval of 250ms, the callout LED (LED2) blinks at an interval of
+500ms, and the GPIO LED (LED3) toggles on or off each time you press
+Button 1.
+
+.. code:: c
+
+    #include <os/os.h>
+    #include <bsp/bsp.h>
+    #include <hal/hal_gpio.h>
+    #include <assert.h>
+    #include <sysinit/sysinit.h>
+
+
+    #define MY_TIMER_INTERRUPT_TASK_PRIO  4
+    #define MY_TIMER_INTERRUPT_TASK_STACK_SZ    512
+
+    #define GEN_TASK_PRIO       3
+    #define GEN_TASK_STACK_SZ   512
+
+    /* LED 1 (P0.17 on the board) */
+    #define TASK_LED        17
+
+    /* LED 2 (P0.18 on the board) */
+    #define CALLOUT_LED     18
+
+    /* LED 3 (P0.19 on the board) */
+    #define GPIO_LED        19
+
+    /* Button 1 (P0.13 on the board) */
+    #define BUTTON1_PIN     13
+
+
+    static void my_ev_cb(struct os_event *);
+    static void my_timer_ev_cb(struct os_event *);
+    static void my_interrupt_ev_cb(struct os_event *);
+
+    static struct os_eventq my_timer_interrupt_eventq;
+
+    static os_stack_t my_timer_interrupt_task_stack[MY_TIMER_INTERRUPT_TASK_STACK_SZ];
+    static struct os_task my_timer_interrupt_task_str;
+
+    static os_stack_t gen_task_stack[GEN_TASK_STACK_SZ];
+    static struct os_task gen_task_str;
+
+    static struct os_event gen_task_ev = {
+        .ev_cb = my_ev_cb,
+    };
+
+    static struct os_event gpio_ev = {
+        .ev_cb = my_interrupt_ev_cb,
+    };
+
+
+    static struct os_callout my_callout;
+
+    /*
+     * Task handler to generate an event to toggle the LED at pin TASK_LED.
+     * The event is added to the Mynewt default event queue.
+     */
+
+    static void
+    gen_task(void *arg)
+    {
+        while (1) {
+            os_time_delay(OS_TICKS_PER_SEC / 4);
+            os_eventq_put(os_eventq_dflt_get(), &gen_task_ev);
+        }
+    }
+
+    /*
+     * Event callback function for events generated by gen_task. It toggles the LED at pin TASK_LED. 
+     */
+    static void my_ev_cb(struct os_event *ev)
+    {
+        assert(ev);
+        hal_gpio_toggle(TASK_LED);
+        return;
+    }
+
+    /*
+     * Event callback function for timer events. It toggles the LED at pin CALLOUT_LED.
+     */
+    static void my_timer_ev_cb(struct os_event *ev)
+    {
+        assert(ev != NULL);
+      
+        hal_gpio_toggle(CALLOUT_LED);
+        os_callout_reset(&my_callout, OS_TICKS_PER_SEC / 2);
+    }
+
+    /*
+     * Event callback function for interrupt events. It toggles the LED at pin GPIO_LED.
+     */
+    static void my_interrupt_ev_cb(struct os_event *ev)
+    {
+        assert(ev != NULL);
+        
+        hal_gpio_toggle(GPIO_LED);
+    }
+
+    static void
+    my_gpio_irq(void *arg)
+    {
+        os_eventq_put(&my_timer_interrupt_eventq, &gpio_ev);
+    }
+
+
+
+    static void
+    my_timer_interrupt_task(void *arg)
+    {
+        while (1) {
+            os_eventq_run(&my_timer_interrupt_eventq);
+        }
+    }
+
+    void
+    init_tasks(void)
+    {
+        
+        /* Create a task to generate events to toggle the LED at pin TASK_LED */
+
+        os_task_init(&gen_task_str, "gen_task", gen_task, NULL, GEN_TASK_PRIO,
+            OS_WAIT_FOREVER, gen_task_stack, GEN_TASK_STACK_SZ);
+
+
+        /* Use a dedicate event queue for timer and interrupt events */
+        os_eventq_init(&my_timer_interrupt_eventq);  
+
+        /* 
+         * Create the task to process timer and interrupt events from the
+         * my_timer_interrupt_eventq event queue.
+         */
+        os_task_init(&my_timer_interrupt_task_str, "timer_interrupt_task", 
+                     my_timer_interrupt_task, NULL, 
+                     MY_TIMER_INTERRUPT_TASK_PRIO, OS_WAIT_FOREVER, 
+                     my_timer_interrupt_task_stack, 
+                     MY_TIMER_INTERRUPT_TASK_STACK_SZ);
+
+        /* 
+         * Initialize the callout for a timer event.  
+         * The my_timer_ev_cb callback function processes the timer event.
+         */
+        os_callout_init(&my_callout, &my_timer_interrupt_eventq,  
+                        my_timer_ev_cb, NULL);
+
+        os_callout_reset(&my_callout, OS_TICKS_PER_SEC);
+
+        /* 
+         * Initialize and enable interrupt for the pin for button 1 and 
+         * configure the button with pull up resistor on the nrf52dk.
+         */ 
+        hal_gpio_irq_init(BUTTON1_PIN, my_gpio_irq, NULL, HAL_GPIO_TRIG_RISING, HAL_GPIO_PULL_UP);
+
+        hal_gpio_irq_enable(BUTTON1_PIN);
+
+        hal_gpio_init_out(TASK_LED, 1);
+        hal_gpio_init_out(CALLOUT_LED, 1);
+        hal_gpio_init_out(GPIO_LED, 1);
+    }
+
+    int
+    main(int argc, char **argv)
+    {
+        sysinit();
+
+        init_tasks();
+      
+        while (1) {
+           os_eventq_run(os_eventq_dflt_get());     
+        }
+        assert(0);
+    }
+
diff --git a/develop/_sources/tutorials/nrf52_adc.rst.txt b/develop/_sources/tutorials/nrf52_adc.rst.txt
new file mode 100644
index 0000000000..a01bab285a
--- /dev/null
+++ b/develop/_sources/tutorials/nrf52_adc.rst.txt
@@ -0,0 +1,874 @@
+Adding an Analog Sensor on nRF52
+--------------------------------
+
+Objective
+~~~~~~~~~
+
+We will be adding an analog sensor to the NRF52DK development board and
+using the Analog to Digital Converter (ADC) to read the values from the
+sensor. It's also using Bluetooth to allow you to connect to the app and
+read the value of the sensor. Please see the following section for the
+required hardware in order to complete this tutorial.
+
+Hardware needed
+~~~~~~~~~~~~~~~
+
+-  nRF52 Development Kit (one of the following)
+
+   -  Dev Kit from Nordic - PCA 10040
+   -  Eval Kit from Rigado - BMD-300-EVAL-ES
+
+-  eTape Liquid Sensor -- buy from
+   `Adafruit <https://www.adafruit.com/products/1786>`__
+-  Laptop running Mac OS
+-  It is assumed you have already installed newt tool.
+-  It is assumed you already installed native tools as described
+   `here <../get_started/native_tools.html>`__
+
+Create a project.
+~~~~~~~~~~~~~~~~~
+
+Create a new project to hold your work. For a deeper understanding, you
+can read about project creation in `Get Started -- Creating Your First
+Project <../get_started/project_create.html>`__ or just follow the
+commands below.
+
+::
+
+        $ mkdir ~/dev
+        $ cd ~/dev
+        $ newt new myadc
+        Downloading project skeleton from apache/mynewt-blinky...
+        Installing skeleton in myadc...
+        Project myadc successfully created.
+        $ cd myadc
+        
+
+Add Additional Repositories
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The board-specific libraries for the NRF52dk board are in an external
+repository at present, so you'll need to include that remote repository
+and install it as well. If you're not familiar with using repositories,
+see the section on `repositories <repo/add_repos.html>`__ before
+continuing. Or just copy and paste the following.
+
+In your ``project.yml`` file, add ``mynewt_nordic`` to the
+``project.repositories`` section, and then add the proper repository
+definition. When you're done, your ``project.yml`` file should look like
+this:
+
+\`\`\`hl\_lines="5 15 16 17 18 19" project.name: "my\_project"
+
+project.repositories: - apache-mynewt-core - mynewt\_nordic
+
+Use github's distribution mechanism for core ASF libraries.
+===========================================================
+
+This provides mirroring automatically for us.
+=============================================
+
+repository.apache-mynewt-core: type: github vers: 1-latest user: apache
+repo: incubator-mynewt-core repository.mynewt\_nordic: type: github
+vers: 1-latest user: runtimeco repo: mynewt\_nordic
+
+::
+
+
+    <br>
+
+    ### Install Everything
+
+    Now that you have defined the needed repositories, it's time to install everything so
+    that you can get started.
+
+::
+
+    $ newt install -v 
+    apache-mynewt-core
+    Downloading repository description for apache-mynewt-core... success!
+    ...
+    apache-mynewt-core successfully installed version 0.9.0-none
+    ...
+    mynewt_nordic
+    Downloading repository description for mynewt_nordic... success!
+    ...
+    mynewt_nordic successfully installed version 0.9.9-none
+
+\`\`\`
+
+Create the targets
+~~~~~~~~~~~~~~~~~~
+
+Create two targets - one for the bootloader and one for the nrf52 board.
+
+Note: The correct bsp must be chosen for the board you are using.
+
+-  For the Nordic Dev Kit choose @apache-mynewt-core/hw/bsp/nrf52dk
+   instead (in the highlighted lines)
+-  For the Rigado Eval Kit choose @apache-mynewt-core/hw/bsp/bmd300eval
+   instead (in the highlighted lines)
+
+For the app itself we're going to extend the
+`bleprph <belpprph/bleprph-app.html>`__ app so that we get the Bluetooth
+communications built in, so the first thing we'll need to do is copy
+that app into our own app directory:
+
+.. code-block:: console
+
+    $ mkdir -p apps/nrf52_adc
+    $ cp -Rp repos/apache-mynewt-core/apps/bleprph/* apps/nrf52_adc
+
+Next, you'll modify the ``pkg.yml`` file for your app. Note the change
+in ``pkg.name`` and ``pkg.description``. Also make sure that you specify
+the full path of all the packages with the prefix
+``@apache-mynewt-core/`` as shown in the third highlighted line.
+
+\`\`\`hl\_lines="3 5 11" $ cat apps/nrf52\_adc/pkg.yml ... pkg.name:
+apps/nrf52\_adc pkg.type: app pkg.description: Simple BLE peripheral
+application for ADC Sensors. pkg.author: "Apache Mynewt
+dev@mynewt.incubator.apache.org" pkg.homepage:
+"http://mynewt.apache.org/" pkg.keywords:
+
+pkg.deps: - "@apache-mynewt-core/boot/split" -
+"@apache-mynewt-core/kernel/os" - "@apache-mynewt-core/mgmt/imgmgr" -
+"@apache-mynewt-core/mgmt/newtmgr" -
+"@apache-mynewt-core/mgmt/newtmgr/transport/ble" -
+"@apache-mynewt-core/net/nimble/controller" -
+"@apache-mynewt-core/net/nimble/host" -
+"@apache-mynewt-core/net/nimble/host/services/ans" -
+"@apache-mynewt-core/net/nimble/host/services/gap" -
+"@apache-mynewt-core/net/nimble/host/services/gatt" -
+"@apache-mynewt-core/net/nimble/host/store/ram" -
+"@apache-mynewt-core/net/nimble/transport/ram" -
+"@apache-mynewt-core/sys/console/full" -
+"@apache-mynewt-core/sys/log/full" -
+"@apache-mynewt-core/sys/stats/full" - "@apache-mynewt-core/sys/sysinit"
+- "@apache-mynewt-core/sys/id" \`\`\`
+
+Great! We have our very own app so let's make sure we have all of our
+targets set correctly:
+
+\`\`\`hl\_lines="3 8" $ newt target create nrf52\_adc $ newt target set
+nrf52\_adc app=apps/nrf52\_adc Target targets/nrf52\_adc successfully
+set target.app to apps/nrf52\_adc $ newt target set nrf52\_adc
+bsp=@apache-mynewt-core/hw/bsp/nrf52dk $ newt target set nrf52\_adc
+build\_profile=debug
+
+$ newt target create nrf52\_boot $ newt target set nrf52\_boot
+app=@apache-mynewt-core/apps/boot $ newt target set nrf52\_boot
+bsp=@apache-mynewt-core/hw/bsp/nrf52dk $ newt target set nrf52\_boot
+build\_profile=optimized
+
+$ newt target show targets/nrf52\_adc app=apps/nrf52\_adc
+bsp=@apache-mynewt-core/hw/bsp/nrf52dk build\_profile=debug
+targets/nrf52\_boot app=@apache-mynewt-core/apps/boot
+bsp=@apache-mynewt-core/hw/bsp/nrf52dk build\_profile=optimized
+
+::
+
+
+    <font color="#F2853F">
+    Note: If you've already built and installed a bootloader for your NRF52dk then you do
+    not need to create a target for it here, or build and load it as below. </font>
+    <br>
+
+    ### Build the target executables 
+
+$ newt build nrf52\_boot ... Compiling boot.c Archiving boot.a Linking
+boot.elf App successfully built:
+~/dev/myadc/bin/nrf52\_boot/apps/boot/boot.elf
+
+::
+
+$ newt build nrf52\_adc ... Compiling main.c Archiving nrf52\_adc.a
+Linking nrf52\_adc.elf App successfully built:
+~/dev/myadc/bin/nrf52\_adc/apps/nrf52\_adc/nrf52\_adc.elf
+
+::
+
+
+    <br>
+
+    ### Sign and create the nrf52_adc application image 
+
+    You must sign and version your application image to download it using newt to the board. 
+    Use the newt create-image command to perform this action. You may assign an arbitrary 
+    version (e.g. 1.0.0) to the image.
+
+$ newt create-image nrf52\_adc 1.0.0 App image successfully generated:
+~/dev/myadc/bin/nrf52\_adc/apps/nrf52\_adc/nrf52\_adc.img Build
+manifest: ~/dev/myadc/bin/nrf52\_adc/apps/nrf52\_adc/manifest.json
+
+::
+
+
+    <br>
+
+    ### Connect the board
+
+    Connect the evaluation board via micro-USB to your PC via USB cable.
+            
+    <br>
+
+    ### Download to the target
+
+    Download the bootloader first and then the nrf52_adc executable to the target platform. 
+    Don't forget to reset the board if you don't see the LED blinking right away!
+
+$ newt load nrf52\_boot $ newt load nrf52\_adc
+
+::
+
+
+    <br>
+
+    **Note:** If you want to erase the flash and load the image again, you can use JLinkExe to issue an `erase` command.
+
+$ JLinkExe -device nRF52 -speed 4000 -if SWD SEGGER J-Link Commander
+V5.12c (Compiled Apr 21 2016 16:05:51) DLL version V5.12c, compiled Apr
+21 2016 16:05:45
+
+Connecting to J-Link via USB...O.K. Firmware: J-Link
+OB-SAM3U128-V2-NordicSemi compiled Mar 15 2016 18:03:17 Hardware
+version: V1.00 S/N: 682863966 VTref = 3.300V
+
+Type "connect" to establish a target connection, '?' for help
+J-Link>erase Cortex-M4 identified. Erasing device (0;?i?)... Comparing
+flash [100%] Done. Erasing flash [100%] Done. Verifying flash [100%]
+Done. J-Link: Flash download: Total time needed: 0.363s (Prepare:
+0.093s, Compare: 0.000s, Erase: 0.262s, Program: 0.000s, Verify: 0.000s,
+Restore: 0.008s) Erasing done. J-Link>exit $ \`\`\`
+
+So you have a BLE app, but really all you've done is change the name of
+the **bleprph** app to **nrf52\_adc** and load that. Not all that
+impressive, and it certainly won't read an Analog Sensor right now. So
+let's do that next. In order to read an ADC sensor, and since the ADC
+package is in an external, licensed, repository, we'll create a driver
+for it here in our app that will leverage the existing driver in the
+external repository. It adds another layer of indirection, but it will
+also give us a look at building our own driver, so we'll do it this way.
+
+Building a Driver
+~~~~~~~~~~~~~~~~~
+
+The first thing to do is to create the directory structure for your
+driver:
+
+.. code-block:: console
+
+    [user@IsMyLaptop:~/src/air_quality]$ mkdir -p libs/my_drivers/myadc/include/myadc
+    [user@IsMyLaptop:~/src/air_quality]$ mkdir -p libs/my_drivers/myadc/src
+
+Now you can add the files you need. You'll need a pkg.yml to describe
+the driver, and then header stub followed by source stub.
+
+.. code-block:: console
+
+    [user@IsMyLaptop:~/src/air_quality]$ cat libs/my_drivers/myadc/pkg.yml
+
+.. code:: c
+
+    #
+    # Licensed to the Apache Software Foundation (ASF) under one
+    # or more contributor license agreements.  See the NOTICE file
+    # distributed with this work for additional information
+    # regarding copyright ownership.  The ASF licenses this file
+    # to you under the Apache License, Version 2.0 (the
+    # "License"); you may not use this file except in compliance
+    # with the License.  You may obtain a copy of the License at
+    # 
+    #  http://www.apache.org/licenses/LICENSE-2.0
+    #
+    # Unless required by applicable law or agreed to in writing,
+    # software distributed under the License is distributed on an
+    # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    # KIND, either express or implied.  See the License for the
+    # specific language governing permissions and limitations
+    # under the License.
+    #
+    pkg.name: libs/my_drivers/myadc
+    pkg.deps:
+        - "@apache-mynewt-core/hw/hal"
+        - "@mynewt_nordic/hw/drivers/adc/adc_nrf52"
+
+First, let's create the required header file ``myadc.h`` in the includes
+directory i.e. ``libs/my_drivers/myadc/include/myadc/myadc.h``. It's a
+pretty straightforward header file, since we only need to do 2 things:
+
+-  Initialize the ADC device
+-  Read ADC Values
+
+.. code:: c
+
+    #ifndef _NRF52_ADC_H_
+    #define _NRF52_ADC_H_
+
+    void * adc_init(void);
+    int adc_read(void *buffer, int buffer_len);
+
+    #endif /* _NRF52_ADC_H_ */
+
+Next we'll need a corresponding source file ``myadc.c`` in the src
+directory. This is where we'll implement the specifics of the driver:
+
+.. code:: c
+
+
+    #include <assert.h>
+    #include <os/os.h>
+    /* ADC */
+    #include "myadc/myadc.h"
+    #include "nrf.h"
+    #include "app_util_platform.h"
+    #include "app_error.h"
+    #include <adc/adc.h>
+    #include <adc_nrf52/adc_nrf52.h>
+    #include "nrf_drv_saadc.h"
+
+
+    #define ADC_NUMBER_SAMPLES (2)
+    #define ADC_NUMBER_CHANNELS (1)
+
+    nrf_drv_saadc_config_t adc_config = NRF_DRV_SAADC_DEFAULT_CONFIG;
+
+    struct adc_dev *adc;
+    uint8_t *sample_buffer1;
+    uint8_t *sample_buffer2;
+
+    static struct adc_dev os_bsp_adc0;
+    static nrf_drv_saadc_config_t os_bsp_adc0_config = {
+        .resolution         = MYNEWT_VAL(ADC_0_RESOLUTION),
+        .oversample         = MYNEWT_VAL(ADC_0_OVERSAMPLE),
+        .interrupt_priority = MYNEWT_VAL(ADC_0_INTERRUPT_PRIORITY),
+    };
+    void *
+    adc_init(void)
+    {
+        int rc = 0;
+        
+        rc = os_dev_create((struct os_dev *) &os_bsp_adc0, "adc0",
+                OS_DEV_INIT_KERNEL, OS_DEV_INIT_PRIO_DEFAULT,
+                nrf52_adc_dev_init, &os_bsp_adc0_config);
+        assert(rc == 0);
+        nrf_saadc_channel_config_t cc = NRF_DRV_SAADC_DEFAULT_CHANNEL_CONFIG_SE(NRF_SAADC_INPUT_AIN1);
+        cc.gain = NRF_SAADC_GAIN1_6;
+        cc.reference = NRF_SAADC_REFERENCE_INTERNAL;
+        adc = (struct adc_dev *) os_dev_open("adc0", 0, &adc_config);
+        assert(adc != NULL);
+        adc_chan_config(adc, 0, &cc);
+        sample_buffer1 = malloc(adc_buf_size(adc, ADC_NUMBER_CHANNELS, ADC_NUMBER_SAMPLES));
+        sample_buffer2 = malloc(adc_buf_size(adc, ADC_NUMBER_CHANNELS, ADC_NUMBER_SAMPLES));
+        memset(sample_buffer1, 0, adc_buf_size(adc, ADC_NUMBER_CHANNELS, ADC_NUMBER_SAMPLES));
+        memset(sample_buffer2, 0, adc_buf_size(adc, ADC_NUMBER_CHANNELS, ADC_NUMBER_SAMPLES));
+        adc_buf_set(adc, sample_buffer1, sample_buffer2,
+            adc_buf_size(adc, ADC_NUMBER_CHANNELS, ADC_NUMBER_SAMPLES));
+        return adc;
+    }
+
+
+    int
+    adc_read(void *buffer, int buffer_len)
+    {
+        int i;
+        int adc_result;
+        int my_result_mv = 0;
+        int rc;
+        for (i = 0; i < ADC_NUMBER_SAMPLES; i++) {
+            rc = adc_buf_read(adc, buffer, buffer_len, i, &adc_result);
+            if (rc != 0) {
+                goto err;
+            }
+            my_result_mv = adc_result_mv(adc, 0, adc_result);
+        }        
+        adc_buf_release(adc, buffer, buffer_len);
+        return my_result_mv;
+    err:
+        return (rc);
+    }
+
+There's a lot going on in here, so let's walk through it step by step.
+
+First, we define a default configuration, with the resolution,
+oversample and interrupt priority. You'll see that these are
+``MYNEWT_VAL`` values, which means that we'll define them shortly in a
+``syscfg.yml`` file to be passed to the compiler at build time.
+
+.. code:: c
+
+    static struct adc_dev os_bsp_adc0;
+    static nrf_drv_saadc_config_t os_bsp_adc0_config = {
+        .resolution         = MYNEWT_VAL(ADC_0_RESOLUTION),
+        .oversample         = MYNEWT_VAL(ADC_0_OVERSAMPLE),
+        .interrupt_priority = MYNEWT_VAL(ADC_0_INTERRUPT_PRIORITY),
+    };
+
+Next, in ``adc_init()`` , we need to tell the OS to create the device.
+
+.. code:: c
+
+    void *
+    adc_init(void)
+    {
+        int rc = 0;
+        
+        rc = os_dev_create((struct os_dev *) &os_bsp_adc0, "adc0",
+                OS_DEV_INIT_KERNEL, OS_DEV_INIT_PRIO_DEFAULT,
+                nrf52_adc_dev_init, &os_bsp_adc0_config);
+        assert(rc == 0);
+        nrf_saadc_channel_config_t cc = NRF_DRV_SAADC_DEFAULT_CHANNEL_CONFIG_SE(NRF_SAADC_INPUT_AIN1);
+        cc.gain = NRF_SAADC_GAIN1_6;
+        cc.reference = NRF_SAADC_REFERENCE_INTERNAL;
+        adc = (struct adc_dev *) os_dev_open("adc0", 0, &adc_config);
+        assert(adc != NULL);
+        adc_chan_config(adc, 0, &cc);
+        sample_buffer1 = malloc(adc_buf_size(adc, ADC_NUMBER_CHANNELS, ADC_NUMBER_SAMPLES));
+        sample_buffer2 = malloc(adc_buf_size(adc, ADC_NUMBER_CHANNELS, ADC_NUMBER_SAMPLES));
+        memset(sample_buffer1, 0, adc_buf_size(adc, ADC_NUMBER_CHANNELS, ADC_NUMBER_SAMPLES));
+        memset(sample_buffer2, 0, adc_buf_size(adc, ADC_NUMBER_CHANNELS, ADC_NUMBER_SAMPLES));
+        adc_buf_set(adc, sample_buffer1, sample_buffer2,
+            adc_buf_size(adc, ADC_NUMBER_CHANNELS, ADC_NUMBER_SAMPLES));
+        return adc;
+    }
+
+A few things need to be said about this part, as it is the most
+confusing. First, we're using a **default** configuration for the ADC
+Channel via the ``NRF_DRV_SAADC_DEFAULT_CHANNEL_CONFIG_SE`` macro. The
+important part here is that we're actually using ``AIN1``. I know what
+you're thinking, "But we want ADC-0!" and that's true. The board is
+actually labelled 'A0, A1, A2' etc., and the actual pin numbers are also
+listed on the board, which seems handy. At first. But it gets messy very
+quickly.
+
+If you try to use AIN0, and then go poke around in the registers while
+this is running,
+
+::
+
+    (gdb) p/x {NRF_SAADC_Type}0x40007000
+    ...
+     CH = {{
+          PSELP = 0x1,
+          PSELN = 0x0,
+          CONFIG = 0x20000,
+          LIMIT = 0x7fff8000
+        }, 
+
+You'll see that the pin for channel 0 is set to 1, which corresponds to
+AIN0, but that's **NOT** the same as A0 -- pin P0.03, the one we're
+using. For that, you use AIN1, which would set the pin value to 2.
+Messy. Someone, somewhere, thought this made sense.
+
+The only other thing to note here is that we're using the internal
+reference voltage, rather than setting our own. There's nothing wrong
+with that, but since we are, we'll have to crank up the gain a bit by
+using ``NRF_SAADC_GAIN1_6``.
+
+Then, in ``adc_read()`` we will take readings, convert the raw readings
+to a millivolt equivalent, and return the result.
+
+.. code:: c
+
+    int
+    adc_read(void *buffer, int buffer_len)
+    {
+        int i;
+        int adc_result;
+        int my_result_mv = 0;
+        int rc;
+        for (i = 0; i < ADC_NUMBER_SAMPLES; i++) {
+            rc = adc_buf_read(adc, buffer, buffer_len, i, &adc_result);
+            if (rc != 0) {
+                goto err;
+            }
+            my_result_mv = adc_result_mv(adc, 0, adc_result);
+        }        
+        adc_buf_release(adc, buffer, buffer_len);
+        return my_result_mv;
+    err:
+        return (rc);
+    }
+
+Finally, we'll need some settings for our driver, as mentioned earlier.
+In the ``myadc`` directory you'll need to add a ``syscfg.yml`` file:
+
+.. code-block:: console
+
+    # Package: libs/my_driver/myadc
+
+    syscfg.defs:
+        ADC_0:
+            description: 'TBD'
+            value:  1
+        ADC_0_RESOLUTION:
+            description: 'TBD'
+            value: 'SAADC_CONFIG_RESOLUTION'
+        ADC_0_OVERSAMPLE:
+            description: 'TBD'
+            value: 'SAADC_CONFIG_OVERSAMPLE'
+        ADC_0_INTERRUPT_PRIORITY:
+            description: 'TBD'
+            value: 'SAADC_CONFIG_IRQ_PRIORITY'
+
+Once that's all done, you should have a working ADC Driver for your
+NRF52DK board. The last step in getting the driver set up is to include
+it in the package dependency defined by ``pkg.deps`` in the ``pkg.yml``
+file of your app. Add it in ``apps/nrf52_adc/pkg.yml`` as shown by the
+highlighted line below.
+
+.. code:: hl_lines="29"
+
+    # Licensed to the Apache Software Foundation (ASF) under one
+    # <snip>
+
+    pkg.name: apps/nrf52_adc
+    pkg.type: app
+    pkg.description: Simple BLE peripheral application for ADC sensor.
+    pkg.author: "Apache Mynewt <de...@mynewt.incubator.apache.org>"
+    pkg.homepage: "http://mynewt.apache.org/"
+    pkg.keywords:
+
+    pkg.deps: 
+        - "@apache-mynewt-core/boot/split"
+        - "@apache-mynewt-core/kernel/os"
+        - "@apache-mynewt-core/mgmt/imgmgr"
+        - "@apache-mynewt-core/mgmt/newtmgr"
+        - "@apache-mynewt-core/mgmt/newtmgr/transport/ble"
+        - "@apache-mynewt-core/net/nimble/controller"
+        - "@apache-mynewt-core/net/nimble/host"
+        - "@apache-mynewt-core/net/nimble/host/services/ans"
+        - "@apache-mynewt-core/net/nimble/host/services/gap"
+        - "@apache-mynewt-core/net/nimble/host/services/gatt"
+        - "@apache-mynewt-core/net/nimble/host/store/ram"
+        - "@apache-mynewt-core/net/nimble/transport/ram"
+        - "@apache-mynewt-core/sys/console/full"
+        - "@apache-mynewt-core/sys/log/full"
+        - "@apache-mynewt-core/sys/stats/full"
+        - "@apache-mynewt-core/sys/sysinit"
+        - "@apache-mynewt-core/sys/id"
+        - libs/my_drivers/myadc
+
+Creating the ADC Task
+~~~~~~~~~~~~~~~~~~~~~
+
+Now that the driver is done, we'll need to add calls to the main app's
+``main.c`` file, as well as a few other things. First, we'll need to
+update the includes, and add a task for our ADC sampling.
+
+.. code:: c
+
+    #include "myadc/myadc.h"
+    ...
+    /* ADC Task settings */
+    #define ADC_TASK_PRIO           5
+    #define ADC_STACK_SIZE          (OS_STACK_ALIGN(336))
+    struct os_eventq adc_evq;
+    struct os_task adc_task;
+    bssnz_t os_stack_t adc_stack[ADC_STACK_SIZE];
+
+Next we'll need o initialize the task ``event_q`` so we'll add the
+highlighted code to ``main()`` as shown below:
+
+\`\`\`c hl\_lines="7 8 9 10 11 12 13 14 15" /\* Set the default device
+name. \*/ rc = ble\_svc\_gap\_device\_name\_set("nimble-adc"); assert(rc
+== 0);
+
+::
+
+    conf_load();
+
+    /* Initialize adc sensor task eventq */
+    os_eventq_init(&adc_evq);
+
+    /* Create the ADC reader task.  
+     * All sensor operations are performed in this task.
+     */
+    os_task_init(&adc_task, "sensor", adc_task_handler,
+            NULL, ADC_TASK_PRIO, OS_WAIT_FOREVER,
+            adc_stack, ADC_STACK_SIZE);
+
+\`\`\ ``We'll need that``\ adc\_task\_handler()\ ``function to exist, and that's where we'll initialize the ADC Device and set the event handler. In the task's while() loop, we'll just make a call to``\ adc\_sample()\`
+to cause the ADC driver to sample the adc device.
+
+.. code:: c
+
+    /**
+     * Event loop for the sensor task.
+     */
+    static void
+    adc_task_handler(void *unused)
+    {
+        struct adc_dev *adc;
+        int rc;
+        /* ADC init */
+        adc = adc_init();
+        rc = adc_event_handler_set(adc, adc_read_event, (void *) NULL);
+        assert(rc == 0);
+        
+        while (1) {
+            adc_sample(adc);
+            /* Wait 2 second */
+            os_time_delay(OS_TICKS_PER_SEC * 2);
+        }
+    }
+
+Above the ``adc_task_handler``, add code to handle the
+``adc_read_event()`` calls:
+
+.. code:: c
+
+    int
+    adc_read_event(struct adc_dev *dev, void *arg, uint8_t etype,
+            void *buffer, int buffer_len)
+    {
+        int value;
+        uint16_t chr_val_handle;
+        int rc;
+
+        value = adc_read(buffer, buffer_len);
+        if (value >= 0) {
+            console_printf("Got %d\n", value);
+        } else {
+            console_printf("Error while reading: %d\n", value);
+            goto err;
+        }
+        gatt_adc_val = value;
+        rc = ble_gatts_find_chr(&gatt_svr_svc_adc_uuid.u, BLE_UUID16_DECLARE(ADC_SNS_VAL), NULL, &chr_val_handle);
+        assert(rc == 0);
+        ble_gatts_chr_updated(chr_val_handle);
+        return (0);
+    err:
+        return (rc);
+    } 
+
+This is where we actually read the ADC value and then update the BLE
+Characteristic for that value.
+
+But wait, we haven't defined those BLE services and characteristics yet!
+Right, so don't try to build and run this app just yet or it will surely
+fail. Instead, move on to the next section and get all of those services
+defined.
+
+Building the BLE Services
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If the nrf52\_adc app is going to be a Bluetooth-enabled sensor app that
+will allow you to read the value of the eTape Water Level Sensor via
+Bluetooth we'll need to actually define those Services and
+Characteristics.
+
+As with the `ble peripheral <bleprph/bleprph-app.html>`__ app, we will
+advertise a couple of values from our app. The first is not strictly
+necessary, but it will help us build an iOS app later. We've defined a
+service and the characteristics in that service in ``bleadc.h`` in the
+``apps/nrf52_adc/src/`` directory as follows:
+
+.. code:: c
+
+    /* Sensor Data */
+    /* e761d2af-1c15-4fa7-af80-b5729002b340 */
+    static const ble_uuid128_t gatt_svr_svc_adc_uuid =
+            BLE_UUID128_INIT(0x40, 0xb3, 0x20, 0x90, 0x72, 0xb5, 0x80, 0xaf,
+                             0xa7, 0x4f, 0x15, 0x1c, 0xaf, 0xd2, 0x61, 0xe7);
+    #define ADC_SNS_TYPE          0xDEAD
+    #define ADC_SNS_STRING "eTape Liquid Level Sensor"
+    #define ADC_SNS_VAL           0xBEAD
+    extern uint16_t gatt_adc_val; 
+
+The first is the UUID of the service, followed by the 2 characteristics
+we are going to offer. The first characteristic is going to advertise
+the *type* of sensor we are advertising, and it will be a read-only
+characteristic. The second characteristic will be the sensor value
+itself, and we will allow connected devices to 'subscribe' to it in
+order to get constantly-updated values.
+
+**Note:** You can choose any valid Characteristic UUIDs to go here.
+We're using these values for illustrative purposes only.
+
+The value that we'll be updating is also defined here as
+``gatt_adc_val``.
+
+If we then go look at ``gatt_srv.c`` we can see the structure of the
+service and characteristic offering that we set up:
+
+\`\`\`c hl\_lines="21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37"
+static const struct ble\_gatt\_svc\_def gatt\_svr\_svcs\ ` <#section>`__
+= { { /\*\*\* Service: Security test. */ .type =
+BLE\_GATT\_SVC\_TYPE\_PRIMARY, .uuid =
+&gatt\_svr\_svc\_sec\_test\_uuid.u, .characteristics = (struct
+ble\_gatt\_chr\_def\ ` <#section>`__) { { /*\ \*\* Characteristic:
+Random number generator. */ .uuid =
+&gatt\_svr\_chr\_sec\_test\_rand\_uuid.u, .access\_cb =
+gatt\_svr\_chr\_access\_sec\_test, .flags = BLE\_GATT\_CHR\_F\_READ \|
+BLE\_GATT\_CHR\_F\_READ\_ENC, }, { /*\ \*\* Characteristic: Static
+value. */ .uuid = &gatt\_svr\_chr\_sec\_test\_static\_uuid.u,
+.access\_cb = gatt\_svr\_chr\_access\_sec\_test, .flags =
+BLE\_GATT\_CHR\_F\_READ \| BLE\_GATT\_CHR\_F\_WRITE \|
+BLE\_GATT\_CHR\_F\_WRITE\_ENC, }, { 0, /* No more characteristics in
+this service. */ } }, }, { /*\ \*\* ADC Level Notification Service. */
+.type = BLE\_GATT\_SVC\_TYPE\_PRIMARY, .uuid =
+&gatt\_svr\_svc\_adc\_uuid.u, .characteristics = (struct
+ble\_gatt\_chr\_def\ ` <#section>`__) { { .uuid =
+BLE\_UUID16\_DECLARE(ADC\_SNS\_TYPE), .access\_cb =
+gatt\_svr\_sns\_access, .flags = BLE\_GATT\_CHR\_F\_READ, }, { .uuid =
+BLE\_UUID16\_DECLARE(ADC\_SNS\_VAL), .access\_cb =
+gatt\_svr\_sns\_access, .flags = BLE\_GATT\_CHR\_F\_NOTIFY, }, { 0, /*
+No more characteristics in this service. \*/ } }, },
+
+::
+
+    {
+        0, /* No more services. */
+    },
+
+}; \`\`\`
+
+You should recognize the first services from the `BLE
+Peripheral <bleprph/bleprph-intro.html>`__ tutorial earlier. We're just
+adding another Service, with 2 new Characteristics, to that application.
+
+We'll need to fill in the function that will be called for this service,
+``gatt_srv_sns_access`` next so that the service knows what to do.
+
+.. code:: c
+
+    static int
+    gatt_svr_sns_access(uint16_t conn_handle, uint16_t attr_handle,
+                              struct ble_gatt_access_ctxt *ctxt,
+                              void *arg)
+    {
+        uint16_t uuid16;
+        int rc;
+
+        uuid16 = ble_uuid_u16(ctxt->chr->uuid);
+
+        switch (uuid16) {
+        case ADC_SNS_TYPE:
+            assert(ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR);
+            rc = os_mbuf_append(ctxt->om, ADC_SNS_STRING, sizeof ADC_SNS_STRING);
+            BLEPRPH_LOG(INFO, "ADC SENSOR TYPE READ: %s\n", ADC_SNS_STRING);
+            return rc == 0 ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES;
+
+        case ADC_SNS_VAL:
+            if (ctxt->op == BLE_GATT_ACCESS_OP_WRITE_CHR) {
+                rc = gatt_svr_chr_write(ctxt->om, 0,
+                                        sizeof gatt_adc_val,
+                                        &gatt_adc_val,
+                                        NULL);
+                return rc;
+            } else if (ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR) {
+                rc = os_mbuf_append(ctxt->om, &gatt_adc_val,
+                                    sizeof gatt_adc_val);
+                return rc == 0 ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES;
+            }
+
+        default:
+            assert(0);
+            return BLE_ATT_ERR_UNLIKELY;
+        }
+    }
+
+You can see that when request is for the ``ADC_SNS_TYPE``, we return the
+Sensor Type we defined earlier. If the request if for ``ADC_SNS_VAL``
+we'll return the ``gatt_adc_val`` value.
+
+Don't forget to include the ``bleadc.h`` include file at the top of the
+``gatt_svr.c`` file!
+
+.. code:: hl_lines="8"
+
+    #include <assert.h>
+    #include <stdio.h>
+    #include <string.h>
+    #include "bsp/bsp.h"
+    #include "host/ble_hs.h"
+    #include "host/ble_uuid.h"
+    #include "bleprph.h"
+    #include "bleadc.h"
+
+If you build, load and run this application now, you will see all those
+Services and Characteristics advertised, and you will even be able to
+read the "Sensor Type" String via the ADC\_SNS\_TYPE Characteristic.
+
+Adding the eTape Water Sensor
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Now that we have a fully functioning BLE App that we can subscribe to
+sensor values from, it's time to actually wire up the sensor!
+
+As previously mentioned, we're going to be using an eTape Water Level
+Sensor. You can get one from
+`Adafruit <https://www.adafruit.com/products/1786>`__.
+
+We're going to use the sensor as a resistive sensor, and the setup is
+very simple. I'll be using a 'breadboard\` to put this all together for
+illustrative purposes. First, attach a jumper-wire from Vdd on the board
+to the breadboard. Next, attach a jumper wire from pin P0.03 on the
+board to the breadboard. This will be our ADC-in. The sensor should have
+come with a 560 ohm resistor, so plug that into the board between Vdd
+and ADC-in holes. Finally, attach a jumper from GND on the board to your
+breadboard. At this point, your breadboard should look like this:
+
+.. figure:: pics/breadboard.png
+   :alt: Bread Board Setup
+
+   Bread Board Setup
+
+Now attach one of the middle 2 leads from the sensor to ground on the
+breadboard and the other middle lead to the ADC-in on the breadboard.
+Your breadboard should now look like this:
+
+.. figure:: pics/adc-demo-1.png
+   :alt: Bread Board Final
+
+   Bread Board Final
+
+And your eTape Sensor should look like this (at least if you have it
+mounted in a graduated cylinder as I do).
+
+.. figure:: pics/adc-demo-2.png
+   :alt: eTape Sensor Setup
+
+   eTape Sensor Setup
+
+That concludes the hardware portion. Easy!
+
+At this point you should be able to build, create-image and load your
+application and see it properly sending readings.
+
+Conclusion
+~~~~~~~~~~
+
+Congratulations, you've now completed both a hardware project and a
+software project by connecting a sensor to your device and using Mynewt
+to read data from that sensor and send it via Bluetooth to a connected
+device. That's no small feat!
+
+If you see anything missing or want to send us feedback, please do so by
+signing up for appropriate mailing lists on our `Community
+Page <../../community.html>`__.
+
+Keep on hacking and sensing!
+
+Note
+~~~~
+
+If you're wondering how to actually view these sensor readings via
+Bluetooth, you have a couple of options. On Mac OS or iOS you can
+download the `LightBlue
+app <https://itunes.apple.com/us/app/lightblue-explorer-bluetooth/id557428110?mt=8>`__.
+This app lets you connect to, and interrogate, BLE devices like the one
+you just built.
+
+If you used the BLE Service and Characteristic UUIDs used in this
+tutorial, you can also download and use a Mac OS `MyNewt Sensor Reader
+App <https://dragonflyiot.com/MyNewtSensorReader.zip>`__ (Zip Archive)
+that allows you to graph your data, etc. An iOS version is in Beta
+testing and should be available soon.
+
+.. figure:: pics/MyNewtSensorReader006.jpg
+   :alt: My Newt Sensor Reader
+
+   My Newt Sensor Reader
+
+Enjoy!
diff --git a/develop/_sources/tutorials/ota_upgrade_nrf52.rst.txt b/develop/_sources/tutorials/ota_upgrade_nrf52.rst.txt
new file mode 100644
index 0000000000..4e00de5a85
--- /dev/null
+++ b/develop/_sources/tutorials/ota_upgrade_nrf52.rst.txt
@@ -0,0 +1,236 @@
+Over-the-Air Image Upgrade
+--------------------------
+
+Mynewt OS supports over-the-air image upgrades. This tutorial shows you
+how to use the newtmgr tool to upgrade an image on a device over BLE
+communication.
+
+To support over-the-air image upgrade over BLE, a device must be running
+a Mynewt application that has newtmgr image management over BLE
+transport enabled. For this tutorial, we use the
+`bleprph </os/tutorials/bleprph/bleprph-app/>`__ application, which
+includes image management over BLE functionality, on an nRF52-DK board.
+If you prefer to use a different BLE application, see `Enable Newt
+Manager in any app </os/tutorials/add_newtmgr/>`__ to enable newtmgr
+image management over BLE transport support in your application.
+
+**Note:** Over-the-air upgrade via newtmgr BLE transport is supported on
+Mac OS and Linux. It is not supported on Windows platforms.
+
+Prerequisites
+~~~~~~~~~~~~~
+
+Ensure that you meet the following prerequisites:
+
+-  Have Internet connectivity to fetch remote Mynewt components.
+-  Have a computer that supports Bluetooth to communicate with the board
+   and to build a Mynewt application.
+-  Have a Micro-USB cable to connect the board and the computer.
+-  Have a Nordic nRF52-DK Development Kit - PCA 10040
+-  Install the `Segger JLINK software and documentation
+   pack <https://www.segger.com/jlink-software.html>`__.
+-  Install the newt tool and toolchains (See `Basic
+   Setup </os/get_started/get_started.html>`__).
+-  Read the Mynewt OS `Concepts </os/get_started/vocabulary.html>`__
+   section.
+-  Read the `Bootloader </os/modules/bootloader/bootloader>`__ section
+   and understand the Mynewt bootloader concepts.
+-  Build and load the **bleprph** application on to an nRF52-DK board
+   via a serial connection. See `BLE Peripheral
+   App </os/tutorials/bleprph/bleprph-app/>`__.
+
+Reducing the Log Level
+~~~~~~~~~~~~~~~
+
+
+You need to build your application with log level set to INFO or lower.
+The default log level for the **bleprph** app is set to DEBUG. The extra
+logging causes the communication to timeout. Perform the following to
+reduce the log level to INFO, build, and load the application.
+
+.. code-block:: console
+
+
+    $ newt target amend myperiph syscfg="LOG_LEVEL=1"
+    $ newt build myperiph
+    $ newt create-image myperiph 1.0.0
+    $ newt load myperiph
+
+Upgrading an Image on a Device
+~~~~~~~~~~~~~~~
+
+Once you have an application with newtmgr image management with BLE transport support running on a device,
+you can use the newtmgr tool to upgrade an image over-the-air.
+
+You must perform the following steps to upgrade an image:
+
+Step 1: Create a newtmgr connection profile to communicate with the
+device over BLE. Step 2: Upload the image to the secondary slot (slot 1)
+on the device. Step 3: Test the image. Step 4: Confirm and make the
+image permanent.
+
+See the `Bootloader </os/modules/bootloader/bootloader>`__ section for
+more information on the bootloader, image slots, and boot states.
+
+Step 1: Creating a Newtmgr Connection Profile
+~~~~~~~~~~~~~~~
+
+The **bleprph** application sets and advertises ``nimble-bleprph`` as its bluetooth
+device address. Run the ``newtmgr conn add`` command to create a newtmgr
+connection profile that uses this peer address to communicate with the
+device over BLE:
+
+.. code-block:: console
+
+
+    $ newtmgr conn add mybleprph type=ble connstring="peer_name=nimble-bleprph"
+    Connection profile mybleprph successfully added
+
+Verify that the newtmgr tool can communicate with the device and check
+the image status on the device:
+
+.. code-block:: console
+
+
+    $ newtmgr image list -c mybleprph
+    Images:
+     slot=0
+        version: 1.0.0
+        bootable: true
+        flags: active confirmed
+        hash: b8d17c77a03b37603cd9f89fdcfe0ba726f8ddff6eac63011dee2e959cc316c2
+    Split status: N/A (0)
+
+The device only has an image loaded on the primary slot (slot 0). It
+does not have an image loaded on the secondary slot (slot 1). ### Step
+2: Uploading an Image to the Device We create an image with version
+2.0.0 for the bleprph application from the ``myperiph`` target and
+upload the new image. You can upload a different image.
+
+.. code-block:: console
+
+
+    $ newt create-image myperiph 2.0.0
+    App image succesfully generated: ~/dev/myproj/bin/targets/myperiph/app/apps/bleprph/bleprph.img
+
+Run the ``newtmgr image upload`` command to upload the image:
+
+.. code-block:: console
+
+
+    $ newtmgr image upload -c mybleprph ~/dev/myproj/bin/targets/myperiph/app/apps/bleprph/bleprph.img
+    215
+    429
+    642
+    855
+    1068
+    1281
+
+    ...
+
+    125953
+    126164
+    126375
+    126586
+    126704
+    Done
+
+The numbers indicate the number of bytes that the newtmgr tool has
+uploaded.
+
+Verify that the image uploaded to the secondary slot on the device
+successfully:
+
+.. code-block:: console
+
+
+    $ newtmgr image list -c mybleprph
+    Images:
+     slot=0
+        version: 1.0.0
+        bootable: true
+        flags: active confirmed
+        hash: b8d17c77a03b37603cd9f89fdcfe0ba726f8ddff6eac63011dee2e959cc316c2
+     slot=1
+        version: 2.0.0
+        bootable: true
+        flags:
+        hash: 291ebc02a8c345911c96fdf4e7b9015a843697658fd6b5faa0eb257a23e93682
+    Split status: N/A (0)
+
+The device now has the uploaded image in the secondary slot (slot 1).
+### Step 3: Testing the Image The image is uploaded to the secondary
+slot but is not yet active. You must run the ``newtmgr image test``
+command to set the image status to **pending** and reboot the device.
+When the device reboots, the bootloader copies this image to the primary
+slot and runs the image.
+
+.. code-block:: console
+
+
+    $ newtmgr image test -c mybleprph 291ebc02a8c345911c96fdf4e7b9015a843697658fd6b5faa0eb257a23e93682
+    Images:
+     slot=0
+        version: 1.0.0
+        bootable: true
+        flags: active confirmed
+        hash: b8d17c77a03b37603cd9f89fdcfe0ba726f8ddff6eac63011dee2e959cc316c2
+     slot=1
+        version: 2.0.0
+        bootable: true
+        flags: pending
+        hash: 291ebc02a8c345911c96fdf4e7b9015a843697658fd6b5faa0eb257a23e93682
+    Split status: N/A (0)
+
+The status of the image in the secondary slot is now set to **pending**.
+
+Power the device OFF and ON and run the ``newtmgr image list`` command
+to check the image status on the device after the reboot:
+
+.. code-block:: console
+
+
+    $ newtmgr image list -c mybleprph
+    Images:
+     slot=0
+        version: 2.0.0
+        bootable: true
+        flags: active
+        hash: 291ebc02a8c345911c96fdf4e7b9015a843697658fd6b5faa0eb257a23e93682
+     slot=1
+        version: 1.0.0
+        bootable: true
+        flags: confirmed
+        hash: b8d17c77a03b37603cd9f89fdcfe0ba726f8ddff6eac63011dee2e959cc316c2
+    Split status: N/A (0)
+
+The uploaded image is now active and running in the primary slot. The
+image, however, is not confirmed. The confirmed image is in the
+secondary slot. On the next reboot, the bootloader reverts to using the
+confirmed image. It copies the confirmed image to the primary slot and
+runs the image when the device reboots. You need to confirm and make the
+uploaded image in the primary slot permanent. ### Step 4: Confirming the
+Image Run the ``newtmgr image confirm`` command to confirm and make the
+uploaded image permanent. Since the uploaded image is currently the
+active image, you can confirm the image setup without specifying the
+image hash value in the command:
+
+.. code-block:: console
+
+
+    $ newtmgr image confirm -c mybleprph
+    Images:
+     slot=0
+        version: 2.0.0
+        bootable: true
+        flags: active confirmed
+        hash: 291ebc02a8c345911c96fdf4e7b9015a843697658fd6b5faa0eb257a23e93682
+     slot=1
+        version: 1.0.0
+        bootable: true
+        flags:
+        hash: b8d17c77a03b37603cd9f89fdcfe0ba726f8ddff6eac63011dee2e959cc316c2
+    Split status: N/A (0)
+
+The uploaded image is now the active and confirmed image. You have
+successfully upgraded an image over-the-air.
diff --git a/develop/_sources/tutorials/pin-wheel-mods.rst.txt b/develop/_sources/tutorials/pin-wheel-mods.rst.txt
new file mode 100644
index 0000000000..3bc1041863
--- /dev/null
+++ b/develop/_sources/tutorials/pin-wheel-mods.rst.txt
@@ -0,0 +1,106 @@
+Pin Wheel Modifications to "Blinky" on STM32F3 Discovery
+--------------------------------------------------------
+
+Objective
+~~~~~~~~~~~~~~~
+
+
+Learn how to modify an existing app -- the `blinky <STM32F303.html>`__ app
+-- to light all the LEDs on the STM32F3 Discovery board.
+
+What you need
+~~~~~~~~~~~~~
+
+-  Discovery kit with STM32F303VC MCU
+-  Laptop running Mac OSX.
+-  It is assumed you have already installed and run the
+   `blinky <STM32F303.html>`__ app succesfully.
+
+Since you've already successfully created your blinky app project,
+you'll need to modify only one file, main.c, in order to get this app
+working.
+
+The main.c file resides in the apps/blinky/src directory in your project
+folder so you can edit it with your favorite editor. You'll make the
+following changes:
+
+Replace the line:
+
+.. code:: c
+
+    int g_led_pin;
+
+With the line:
+
+.. code:: c
+
+    int g_led_pins[8] = {LED_BLINK_PIN_1, LED_BLINK_PIN_2, LED_BLINK_PIN_3, LED_BLINK_PIN_4, LED_BLINK_PIN_5, LED_BLINK_PIN_6, LED_BLINK_PIN_7, LED_BLINK_PIN_8};
+
+So that you now have an array of all 8 LED Pins on the board.
+
+Delete the line:
+
+.. code:: c
+
+    g_led_pin = LED_BLINK_PIN;
+
+And in its place, add the following lines to initialize all the
+LED\_PINS correctly:
+
+.. code:: c
+
+    int x;
+    for(x = 0; x < 8; x++){
+        hal_gpio_init_out(g_led_pins[x], 1);
+    }
+    int p = 0;
+
+We'll use that 'p' later. Next you'll want to change the line:
+
+.. code:: c
+
+    os_time_delay(1000);
+
+to a shorter time in order to make it a little more interesting. A full
+1 second delay doesn't look great, so try 100 for starters and then you
+can adjust it to your liking.
+
+Finally, change the line:
+
+.. code:: c
+
+    hal_gpio_toggle(g_led_pin);
+
+to look like this:
+
+.. code:: c
+
+    hal_gpio_toggle(g_led_pins[p++]);
+    p = (p > 7) ? 0 : p;
+
+Build the target and executables and download the images
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Run the same commands you used on the blinky app to build and load this
+one:
+
+.. code-block:: console
+
+    $ newt create-image stmf3_blinky 1.2.3
+    App image successfully generated: ~/dev/myproj/bin/stmf3_blinky/apps/blinky/blinky.img
+    Build manifest:~/dev/myproj/bin/stmf3_blinky/apps/blinky/manifest.json
+    $ newt -v load stmf3_boot
+    $ newt -v load stmf3_blinky
+
+Watch the LEDs go round and round
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The colored LEDs should now all light up in succession, and once they're
+all lit, they should then go off in the same order. This should repeat
+continuously.
+
+If you see anything missing or want to send us feedback, please do so by
+signing up for appropriate mailing lists on our `Community
+Page <../../community.html>`__.
+
+Keep on hacking and blinking!
diff --git a/develop/_sources/tutorials/segger_rtt.rst.txt b/develop/_sources/tutorials/segger_rtt.rst.txt
new file mode 100644
index 0000000000..53840dcf34
--- /dev/null
+++ b/develop/_sources/tutorials/segger_rtt.rst.txt
@@ -0,0 +1,109 @@
+SEGGER RTT Console
+------------------
+
+Objective
+~~~~~~~~~
+
+Sometimes you dont have UART on your board, or you want to use it for
+something else while still having newt logs/shell capability. With
+`SEGGER's RTT <https://www.segger.com/jlink-rtt.html>`__ capability you
+can swap UART for RTT, which is a very high-speed memory-mapped I/O.
+
+Hardware needed
+~~~~~~~~~~~~~~~
+
+You'll need a SEGGER J-Link programmer in order to use this advanced
+functionality. You might have an external J-Link programmer you're
+already using, or maybe your board has a dedicated J-Link onboard as
+some development kits do. Another possibilty is J-Link OB firmware
+available for some devices like the micro:bit.
+
+Setup the target
+~~~~~~~~~~~~~~~~
+
+We'll assume you have an existing project with some kind of
+console/shell like `Blinky with console and shell <blinky_console.html>`__
+that we're switching over to RTT from UART.
+
+**Note:** We have tested RTT with J-Link version V6.14h. We recommend
+that you upgrade your J-Link if you have an earlier version of J-Link
+installed. Earlier versions of J-Link use the BUFFER\_SIZE\_DOWN value
+defined in hw/drivers/rtt/include/rtt/SEGGER\_RTT\_Conf.h for the
+maximum number of input characters. If an input line exceeds the
+BUFFER\_SIZE\_DOWN number of characters, RTT ignores the extra
+characters. The default value is 16 characters. For example, this limit
+causes shell commands with more than 16 characters of input to fail. You
+may set the Mynewt ``RTT_BUFFER_SIZE_DOWN`` syscfg setting in your
+target to increase this value if you do not upgrade your J-Link version.
+
+We can disable uart and enable rtt with the newt target command:
+
+::
+
+    newt target amend nrf52_blinky syscfg=CONSOLE_UART=0
+    newt target amend nrf52_blinky syscfg=CONSOLE_RTT=1
+
+Run the target executables
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Now 'run' the newt target as you'll need an active debugger process to
+attach to:
+
+::
+
+    $ newt run nrf52_blinky 0
+    App image succesfully generated: ~/Downloads/myapp1/bin/targets/nrf52_blinky/app/apps/blinky/blinky.img
+    Loading app image into slot 1
+    [~Downloads/myapp1/repos/apache-mynewt-core/hw/bsp/nrf52-thingy/nrf52-thingy_debug.sh ~/Downloads/myapp1/repos/apache-mynewt-core/hw/bsp/nrf52-thingy ~/Downloads/myapp1/bin/targets/nrf52_blinky/app/apps/blinky/blinky]
+    Debugging ~/Downloads/myapp1/bin/targets/nrf52_blinky/app/apps/blinky/blinky.elf
+    GNU gdb (GNU Tools for ARM Embedded Processors) 7.8.0.20150604-cvs
+    Copyright (C) 2014 Free Software Foundation, Inc.
+    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+    This is free software: you are free to change and redistribute it.
+    There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
+    and "show warranty" for details.
+    This GDB was configured as "--host=x86_64-apple-darwin10 --target=arm-none-eabi".
+    Type "show configuration" for configuration details.
+    For bug reporting instructions, please see:
+    <http://www.gnu.org/software/gdb/bugs/>.
+    Find the GDB manual and other documentation resources online at:
+    <http://www.gnu.org/software/gdb/documentation/>.
+    For help, type "help".
+    Type "apropos word" to search for commands related to "word"...
+    Reading symbols from ~/Downloads/myapp1/bin/targets/nrf52_blinky/app/apps/blinky/blinky.elf...done.
+    0x000000d8 in ?? ()
+    Resetting target
+    0x000000dc in ?? ()
+    (gdb) 
+
+Connect to console
+~~~~~~~~~~~~~~~~~~
+
+In a seperate terminal window ``telnet localhost 19021`` and when you
+continue your gdb session you should see your output. If you're not
+familiar with telnet, when you're ready to exit you may by using the
+hotkey ctrl+] then typing quit
+
+::
+
+    $ telnet localhost 19021
+    Trying ::1...
+    telnet: connect to address ::1: Connection refused
+    Trying fe80::1...
+    telnet: connect to address fe80::1: Connection refused
+    Trying 127.0.0.1...
+    Connected to localhost.
+    Escape character is '^]'.
+    SEGGER J-Link V6.14e - Real time terminal output
+    SEGGER J-Link EDU V8.0, SN=268006294
+    Process: JLinkGDBServer
+
+Then you can interact with the device:
+
+::
+
+    stat
+    stat
+    000262 Must specify a statistic name to dump, possible names are:
+    000262  stat
+    000262 compat> 
diff --git a/develop/_sources/tutorials/segger_sysview.rst.txt b/develop/_sources/tutorials/segger_sysview.rst.txt
new file mode 100644
index 0000000000..d95802f40a
--- /dev/null
+++ b/develop/_sources/tutorials/segger_sysview.rst.txt
@@ -0,0 +1,96 @@
+SEGGER SystemView
+-----------------
+
+Objective
+~~~~~~~~~~~~~~~
+
+
+With `SEGGER's SystemView <https://www.segger.com/systemview.html>`__
+you can "record data from the target system while it is running. The
+recorded data is analyzed and the system behavior is visualized in
+different views."
+
+Hardware needed
+~~~~~~~~~~~~~~~
+
+You'll need a SEGGER J-Link programmer in order to use this advanced
+functionality. You might have an external J-Link programmer you're
+already using, or maybe your board has a dedicated J-Link onboard as
+some development kits do. Another possibilty is J-Link OB firmware
+available for some devices like the micro:bit.
+
+Software needed
+~~~~~~~~~~~~~~~
+
+-  Download `SEGGER's SystemView
+   app <https://www.segger.com/downloads/free-utilities/>`__.
+-  Copy the description file from sys/sysview/SYSVIEW\_Mynewt.txt to the
+   /Description/ directory of SystemView
+
+Setup the target
+~~~~~~~~~~~~~~~~
+
+We'll assume you have an existing example we're enabling SystemView on,
+in this case `blinky on nrf52 <nRF52.html>`__. We can do so with the newt
+target amend command:
+
+::
+
+    newt target amend blink_nordic syscfg=OS_SYSVIEW=1
+
+Run the target executables
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Now 'run' the newt target as you'll need an active debugger process to
+attach to:
+
+::
+
+    $ newt run blink_nordic 0
+    App image succesfully generated: ~/Downloads/myproj/bin/targets/blink_nordic/app/apps/bleprph/bleprph.img
+    Loading app image into slot 1
+    [~/Downloads/myproj/repos/apache-mynewt-core/hw/bsp/nrf52-thingy/nrf52-thingy_debug.sh ~/Downloads/myproj/repos/apache-mynewt-core/hw/bsp/nrf52-thingy ~/Downloads/myproj/bin/targets/blink_nordic/app/apps/bleprph/bleprph]
+    Debugging ~/Downloads/myproj/bin/targets/blink_nordic/app/apps/bleprph/bleprph.elf
+    GNU gdb (GNU Tools for ARM Embedded Processors) 7.8.0.20150604-cvs
+    Copyright (C) 2014 Free Software Foundation, Inc.
+    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+    This is free software: you are free to change and redistribute it.
+    There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
+    and "show warranty" for details.
+    This GDB was configured as "--host=x86_64-apple-darwin10 --target=arm-none-eabi".
+    Type "show configuration" for configuration details.
+    For bug reporting instructions, please see:
+    <http://www.gnu.org/software/gdb/bugs/>.
+    Find the GDB manual and other documentation resources online at:
+    <http://www.gnu.org/software/gdb/documentation/>.
+    For help, type "help".
+    Type "apropos word" to search for commands related to "word"...
+    Reading symbols from ~/Downloads/myproj/bin/targets/blink_nordic/app/apps/bleprph/bleprph.elf...done.
+    0x000000d8 in ?? ()
+    Resetting target
+    0x000000dc in ?? ()
+
+Launch the app
+~~~~~~~~~~~~~~
+
+Launch the app and press **OK** in the System Information dialog box.
+
+.. figure:: pics/segger_sysview1.png
+   :alt: SEGGER SystemView
+
+   SEGGER SystemView
+
+Select \*\* Target > Start Recording \*\* and press **OK** in the
+Configuration dialog box.
+
+.. figure:: pics/segger_sysview_start_record.png
+   :alt: SEGGER SystemView Start Recording
+
+   SEGGER SystemView Start Recording
+
+You should see the recording for your Mynewt application.
+
+.. figure:: pics/segger_sysview_recording.png
+   :alt: SEGGER SystemView Recording
+
+   SEGGER SystemView Recording
diff --git a/develop/_sources/tutorials/slinky/project-nrf52-slinky.rst.txt b/develop/_sources/tutorials/slinky/project-nrf52-slinky.rst.txt
new file mode 100644
index 0000000000..bd4da07014
--- /dev/null
+++ b/develop/_sources/tutorials/slinky/project-nrf52-slinky.rst.txt
@@ -0,0 +1,261 @@
+Project Slinky using the Nordic nRF52 Board
+===========================================
+
+This tutorial shows you how to create, build and run the Slinky
+application and communicate with newtmgr for a Nordic nRF52 board.
+
+.. contents::
+  :local:
+  :depth: 2
+
+Prerequisites
+~~~~~~~~~~~~~
+
+-  Meet the prerequisites listed in :doc:`Project
+   Slinky <project-slinky>`
+-  Have a Nordic nRF52-DK board.
+-  Install the `Segger JLINK Software and documentation
+   pack <https://www.segger.com/jlink-software.html>`__.
+
+Create a New Project
+~~~~~~~~~~~~~~~~~~~~
+
+Create a new project if you do not have an existing one. You can skip
+this step and proceed to `create the targets`_ if you
+already have a project created or completed the :doc:`Sim
+Slinky <project-slinky>` tutorial.
+
+Run the following commands to create a new project. We name the project
+``slinky``.
+
+.. code-block:: console
+
+    $ newt new slinky
+    Downloading project skeleton from apache/mynewt-blinky...
+    ...
+    Installing skeleton in slink...
+    Project slinky successfully created
+    $ cd slinky
+    $newt install
+    apache-mynewt-core
+
+Create the Targets
+~~~~~~~~~~~~~~~~~~~
+
+Create two targets for the nRF52-DK board - one for the bootloader and
+one for the Slinky application.
+
+Run the following ``newt target`` commands, from your project directory,
+to create a bootloader target. We name the target ``nrf52_boot``.
+
+.. code-block:: console
+
+    $ newt target create nrf52_boot
+    $ newt target set nrf52_boot bsp=@apache-mynewt-core/hw/bsp/nrf52dk
+    $ newt target set nrf52_boot build_profile=optimized
+    $ newt target set nrf52_boot app=@apache-mynewt-core/apps/boot
+
+Run the following ``newt target`` commands to create a target for the
+Slinky application. We name the target ``nrf52_slinky``.
+
+.. code-block:: console
+
+    $ newt target create nrf52_slinky
+    $ newt target set nrf52_slinky bsp=@apache-mynewt-core/hw/bsp/nrf52dk
+    $ newt target set nrf52_slinky build_profile=debug
+    $ newt target set nrf52_slinky app=@apache-mynewt-core/apps/slinky
+
+Build the Targets
+~~~~~~~~~~~~~~~~~
+
+Run the ``newt build nrf52_boot`` command to build the bootloader:
+
+.. code-block:: console
+
+    $ newt build nrf52-boot
+    Building target targets/nrf52_boot
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec256.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/image_rsa.c
+    Compiling repos/apache-mynewt-core/crypto/mbedtls/src/aes.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/loader.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/image_validate.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/bootutil_misc.c
+    Compiling repos/apache-mynewt-core/apps/boot/src/boot.c
+        ...
+
+    Archiving sys_mfg.a
+    Archiving sys_sysinit.a
+    Archiving util_mem.a
+    Linking ~/dev/slinky/bin/targets/nrf52_boot/app/apps/boot/boot.elf
+    Target successfully built: targets/nrf52_boot
+
+Run the ``newt build nrf52_slinky`` command to build the Slinky
+application:
+
+.. code-block:: console
+
+    $newt build nrf52_slinky
+    Building target targets/nrf52_slinky
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec256.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/image_rsa.c
+    Compiling repos/apache-mynewt-core/boot/split/src/split.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/loader.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/bootutil_misc.c
+    Compiling repos/apache-mynewt-core/boot/split/src/split_config.c
+    Compiling repos/apache-mynewt-core/crypto/mbedtls/src/aesni.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/image_validate.c
+    Compiling repos/apache-mynewt-core/crypto/mbedtls/src/aes.c
+    Compiling repos/apache-mynewt-core/apps/slinky/src/main.c
+
+           ...
+
+    Archiving util_mem.a
+    Linking ~/dev/slinky/bin/targets/nrf52_slinky/app/apps/slinky/slinky.elf
+    Target successfully built: targets/nrf52_slinky
+
+Sign and Create the Slinky Application Image
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Run the ``newt create-image nrf52_slinky 1.0.0`` command to create and
+sign the application image. You may assign an arbitrary version (e.g.
+1.0.0) to the image.
+
+.. code-block:: console
+
+    $ newt create-image nrf52_slinky 1.0.0
+    App image succesfully generated: ~/dev/slinky/bin/targets/nrf52_slinky/app/apps/slinky/slinky.img
+    $
+
+Connect to the Board
+~~~~~~~~~~~~~~~~~~~~
+
+-  Connect a micro-USB cable from your computer to the micro-USB port on
+   the nRF52-DK board.
+-  Turn the power on the board to ON. You should see the green LED light
+   up on the board.
+
+Load the Bootloader and the Slinky Application Image
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+Run the ``newt load nrf52_boot`` command to load the bootloader onto the
+board:
+
+.. code-block:: console
+
+    $ newt load nrf52_boot
+    Loading bootloader
+    $
+
+Run the ``newt load nrf52_slinky`` command to load the Slinky
+application image onto the board:
+
+.. code-block:: console
+
+    $ newt load nrf52_slinky
+    Loading app image into slot 1
+    $
+
+Connect Newtmgr with the Board using a Serial Connection
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Set up a serial connection from your computer to the nRF52-DK board (See
+:doc:`Serial Port Setup <../../../get_started/serial_access>`).
+
+Locate the port, in the /dev directory on your computer, that the serial
+connection uses. The format of the port name is platform dependent:
+
+-  Mac OS uses the format ``tty.usbserial-<some identifier>``.
+-  Linux uses the format ``TTYUSB<N>``, where ``N`` is a number. For
+   example, TTYUSB2.
+-  MinGW on Windows uses the format ``ttyS<N>``, where ``N`` is a
+   number. You must map the port name to a Windows COM port:
+   ``/dev/ttyS<N>`` maps to ``COM<N+1>``. For example, ``/dev/ttyS2``
+   maps to ``COM3``.
+
+   You can also use the Windows Device Manager to find the COM port
+   number.
+
+.. code-block:: console
+
+    $ ls /dev/tty*usbserial*
+    /dev/tty.usbserial-1d11
+    $
+
+Setup a newtmgr connection profile for the serial port. For our example,
+the port is ``/dev/tty.usbserial-1d11``.
+
+Run the ``newtmgr conn add`` command to define a newtmgr connection
+profile for the serial port. We name the connection profile
+``nrf52serial``.
+
+**Note**:
+
+-  You will need to replace the ``connstring`` with the specific port
+   for your serial connection.
+-  On Windows, you must specify ``COM<N+1>`` for the connstring if
+   ``/dev/ttyS<N>`` is the serial port.
+
+.. code-block:: console
+
+    $ newtmgr conn add nrf52serial type=serial connstring=/dev/tty.usbserial-1d11
+    Connection profile nrf52serial successfully added
+    $
+
+You can run the ``newt conn show`` command to see all the newtmgr
+connection profiles:
+
+.. code-block:: console
+
+    $ newtmgr conn show
+    Connection profiles:
+      nrf52serial: type=serial, connstring='/dev/tty.usbserial-1d11'
+      sim1: type=serial, connstring='/dev/ttys012'
+    $
+
+Use Newtmgr to Query the Board
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Run some newtmgr commands to query and receive responses back from the board 
+(See the
+:doc:`Newt Manager Guide <../../newtmgr/index>` for more 
+information on the newtmgr commands)
+
+Run the ``newtmgr echo hello -c nrf52serial`` command. This is the
+simplest command that requests the board to echo back the text.
+
+.. code-block:: console
+
+    $ newtmgr echo hello -c nrf52serial
+    hello
+    $
+
+Run the ``newtmgr image list -c nrf52serial`` command to list the
+images on the board:
+
+.. code-block:: console
+
+    $ newtmgr image list -c nrf52serial
+    Images:
+     slot=0
+        version: 1.0.0
+        bootable: true
+        flags: active confirmed
+        hash: f411a55d7a5f54eb8880d380bf47521d8c41ed77fd0a7bd5373b0ae87ddabd42
+    Split status: N/A
+    $
+
+Run the ``newtmgr taskstat -c nrf52serial`` command to display the task
+statistics on the board:
+
+.. code-block:: console
+
+    $ newtmgr taskstat -c nrf52serial
+          task pri tid  runtime      csw    stksz   stkuse last_checkin next_checkin
+          idle 255   0    43484      539       64       32        0        0
+          main 127   1        1       90     1024      353        0        0
+         task1   8   2        0      340      192      114        0        0
+         task2   9   3        0      340       64       31        0        0
+    $
diff --git a/develop/_sources/tutorials/slinky/project-sim-slinky.rst.txt b/develop/_sources/tutorials/slinky/project-sim-slinky.rst.txt
new file mode 100644
index 0000000000..07dc8e53fc
--- /dev/null
+++ b/develop/_sources/tutorials/slinky/project-sim-slinky.rst.txt
@@ -0,0 +1,136 @@
+Project Sim Slinky
+==================
+
+This tutorial shows you how to create, build and run the Slinky
+application and communicate with newtmgr for a simulated device. This is
+supported on Mac OS and Linux platforms.
+
+.. contents::
+  :local:
+  :depth: 2
+
+Prerequisites
+~~~~~~~~~~~~~
+
+Meet the prerequisites listed in :doc:`Project Slinky <project-slinky>`
+
+Creating a new project
+~~~~~~~~~~~~~~~~~~~~~~
+
+Instructions for creating a project are located in the 
+:doc:`Basic Setup <../../../get_started/project_create>` section of the 
+:doc:`Mynewt Documentation <../../index>`
+
+We will list only the steps here for brevity. 
+We will name the project ``slinky``.
+
+.. code-block:: console
+
+    $ newt new slinky
+    Downloading project skeleton from apache/mynewt-blinky...
+    ...
+    Installing skeleton in slink...
+    Project slinky successfully created
+    $ cd slinky
+    $newt install
+    apache-mynewt-core
+
+Setting up your target build
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Create a target for ``slinky`` using the native bsp. We will list only
+the steps and suppress the tool output here for brevity.
+
+.. code-block:: console
+
+        $ newt target create sim_slinky
+        $ newt target set sim_slinky bsp=@apache-mynewt-core/hw/bsp/native
+        $ newt target set sim_slinky build_profile=debug
+        $ newt target set sim_slinky app=@apache-mynewt-core/apps/slinky
+
+Building Your target
+~~~~~~~~~~~~~~~~~~~~
+
+To build your target, use ``newt build``. When complete, an executable
+file is created.
+
+.. code-block:: console
+
+        $ newt build sim_slinky 
+        Building target targets/sim_slinky
+        Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec256.c
+        Compiling repos/apache-mynewt-core/boot/bootutil/src/image_rsa.c
+        Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec.c
+        Compiling repos/apache-mynewt-core/boot/split/src/split.c
+        Compiling repos/apache-mynewt-core/boot/bootutil/src/image_validate.c
+        Compiling repos/apache-mynewt-core/boot/bootutil/src/loader.c
+        Compiling repos/apache-mynewt-core/boot/bootutil/src/bootutil_misc.c
+        Compiling repos/apache-mynewt-core/crypto/mbedtls/src/aesni.c
+        Compiling repos/apache-mynewt-core/crypto/mbedtls/src/aes.c
+        Compiling repos/apache-mynewt-core/boot/split/src/split_config.c
+        Compiling repos/apache-mynewt-core/apps/slinky/src/main.c
+
+                  ...
+
+        Archiving util_crc.a
+        Archiving util_mem.a
+        Linking ~/dev/slinky/bin/targets/sim_slinky/app/apps/slinky/slinky.elf
+        Target successfully built: targets/sim_slinky
+
+Run the target
+~~~~~~~~~~~~~~
+
+Run the executable you have build for the simulated environment. The
+serial port name on which the simulated target is connected is shown in
+the output when mynewt slinky starts.
+
+.. code-block:: console
+
+        $ ~/dev/slinky/bin/targets/sim_slinky/app/apps/slinky/slinky.elf
+        uart0 at /dev/ttys005
+
+In this example, the slinky app opened up a com port ``/dev/ttys005``
+for communications with newtmgr.
+
+**NOTE:** This application will block. You will need to open a new
+console (or execute this in another console) to continue the tutorial.\*
+
+Setting up a connection profile
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You will now set up a connection profile using ``newtmgr`` for the
+serial port connection and start communicating with the simulated remote
+device.
+
+.. code-block:: console
+
+        $ newtmgr conn add sim1 type=serial connstring=/dev/ttys005
+        Connection profile sim1 successfully added
+        $ newtmgr conn show
+        Connection profiles: 
+          sim1: type=serial, connstring='/dev/ttys005'
+
+Executing newtmgr commands with the target
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can now use connection profile ``sim1`` to talk to the running
+sim\_slinky. As an example, we will query the running mynewt OS for the
+usage of its memory pools.
+
+.. code-block:: console
+
+        $ newtmgr -c sim1 mpstat
+        Return Code = 0
+                                name blksz  cnt free  min
+                              msys_1   292   12   10   10
+
+As a test command, you can send an arbitrary string to the target and it
+will echo that string back in a response to newtmgr.
+
+.. code-block:: console
+
+        $ newtmgr -c sim1 echo "Hello Mynewt"
+        Hello Mynewt
+
+In addition to these, you can also examine running tasks, statistics,
+logs, image status (not on sim), and configuration.
diff --git a/develop/_sources/tutorials/slinky/project-slinky.rst.txt b/develop/_sources/tutorials/slinky/project-slinky.rst.txt
new file mode 100644
index 0000000000..a7d9910317
--- /dev/null
+++ b/develop/_sources/tutorials/slinky/project-slinky.rst.txt
@@ -0,0 +1,64 @@
+.. _slinky_tutorials:
+
+Project Slinky
+==============
+
+.. toctree::
+   :hidden:
+
+   Slinky on Simulated device <project-sim-slinky>
+   Slinky on nRF52 <project-nrf52-slinky>
+   Slinky on Olimex <project-stm32-slinky>
+
+The goal of the project is to use a sample application called "Slinky"
+included in the Mynewt repository to enable remote communications with a
+device running the Mynewt OS. The protocol for remote communications is
+called newt manager (newtmgr).
+
+If you have an existing project using a target that does not use the Slinky application and you wish to add newtmgr functionality to 
+it, check out the tutorial titled :doc:`Enable newtmgr in any app <../add_newtmgr>`
+
+.. contents::
+  :local:
+  :depth: 2
+
+Available Tutorials
+~~~~~~~~~~~~~~~~~~~
+
+Tutorials are available for the following boards:
+
+-  :doc:`project-sim-slinky`. This is supported on Mac OS and Linux platforms.
+-  :doc:`project-nrf52-slinky`.
+-  :doc:`project-stm32-slinky`.
+
+Prerequisites
+~~~~~~~~~~~~~
+
+Ensure that you meet the following prerequisites before continuing with
+this tutorial:
+
+-  Have Internet connectivity to fetch remote Mynewt components.
+-  Have a computer to build a Mynewt application and connect to the
+   board over USB.
+-  Have a Micro-USB cable to connect the board and the computer.
+-  Have a :doc:`serial port setup <../../../get_started/serial_access>`.
+-  Install the newt tool and the toolchains (See :doc:`Basic Setup 
+   <../../../get_started/index>`).
+-  Install the :doc:`newtmgr tool <../../newtmgr/install/install_mac>`.
+-  Read the Mynewt OS :doc:`Concepts <../../../concepts>` section.
+-  Create a project space (directory structure) and populated it with
+   the core code repository (apache-mynewt-core) or know how to as
+   explained in :doc:`Creating Your First Project 
+   <../../../get_started/project_create>`.
+
+Overview of Steps
+~~~~~~~~~~~~~~~~~
+
+-  Install dependencies.
+-  Define the bootloader and Slinky application target for the target
+   board.
+-  Build the bootloader target.
+-  Build the Slinky application target and create an application image.
+-  Set a up serial connection with the targets.
+-  Create a connection profile using the newtmgr tool.
+-  Use the newtmgr tool to communicate with the targets.
diff --git a/develop/_sources/tutorials/slinky/project-stm32-slinky.rst.txt b/develop/_sources/tutorials/slinky/project-stm32-slinky.rst.txt
new file mode 100644
index 0000000000..6c45865ea7
--- /dev/null
+++ b/develop/_sources/tutorials/slinky/project-stm32-slinky.rst.txt
@@ -0,0 +1,298 @@
+Project Slinky Using Olimex Board
+=================================
+
+This tutorial shows you how to create, build and run the Slinky
+application and communicate with newtmgr for an Olimex STM-E407 board.
+
+.. contents::
+  :local:
+  :depth: 2
+
+Prerequisites
+~~~~~~~~~~~~~ 
+-  Meet the prerequisites listed in :doc:`Project Slinky <project-slinky>` 
+-  Have a STM32-E407 development board from Olimex. 
+-  Have a ARM-USB-TINY-H connector with JTAG interface for debugging ARM 
+   microcontrollers (comes with the ribbon cable to hook up to the board) 
+-  Have a USB A-B type cable to connect the debugger to your computer. 
+-  Have a USB to TTL Serial Cable with female wiring harness. 
+-  Install the :doc:`OpenOCD debugger 
+   <../../get_started/native_install/cross_tools>`.
+
+Create a New Project
+~~~~~~~~~~~~~~~~~~~~
+
+Create a new project if you do not have an existing one. You can skip
+this step and proceed to `Create the Targets` if you
+already have a project created or completed the 
+:doc:`Sim Slinky <project-slinky>` tutorial.
+
+.. code-block:: console
+
+    $ newt new slinky
+    Downloading project skeleton from apache/mynewt-blinky...
+    ...
+    Installing skeleton in slink...
+    Project slink successfully created
+    $ cd slinky
+    $newt install
+    apache-mynewt-core
+
+Create the Targets
+~~~~~~~~~~~~~~~~~~~
+
+Create two targets for the STM32-E407 board - one for the bootloader and
+one for the Slinky application.
+
+Run the following ``newt target`` commands, from your project directory,
+to create a bootloader target. We name the target ``stm32_boot``.
+
+.. code-block:: console
+
+    $ newt target create stm32_boot
+    $ newt target set stm32_boot bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard
+    $ newt target set stm32_boot build_profile=optimized
+    $ newt target set stm32_boot target.app=@apache-mynewt-core/apps/boot
+
+Run the following ``newt target`` commands to create a target for the
+Slinky application. We name the target ``stm32_slinky``.
+
+.. code-block:: console
+
+    $ newt target create stm32_slinky
+    $ newt target set stm32_slinky bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard
+    $ newt target set stm32_slinky build_profile=debug
+    $ newt target set stm32_slinky app=@apache-mynewt-core/apps/slinky
+
+Build the Targets
+~~~~~~~~~~~~~~~~~
+
+Run the ``newt build stm32_boot`` command to build the bootloader:
+
+.. code-block:: console
+
+    $ newt build stm32_boot
+    Building target targets/stm32_boot
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec256.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/image_rsa.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/loader.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/image_validate.c
+    Compiling repos/apache-mynewt-core/crypto/mbedtls/src/aes.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/bootutil_misc.c
+    Compiling repos/apache-mynewt-core/apps/boot/src/boot.c
+
+          ...
+
+    Archiving sys_mfg.a
+    Archiving sys_sysinit.a
+    Archiving util_mem.a
+    Linking ~/dev/slinky/bin/targets/stm32_boot/app/apps/boot/boot.elf
+    Target successfully built: targets/stm32_boot
+    $
+
+Run the ``newt build stm32_slinky`` command to build the Slinky
+application:
+
+.. code-block:: console
+
+    $newt build stm32_slinky
+    Building target targets/stm32_slinky
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/image_rsa.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec256.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/loader.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/image_validate.c
+    Compiling repos/apache-mynewt-core/boot/split/src/split.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/bootutil_misc.c
+    Compiling repos/apache-mynewt-core/apps/slinky/src/main.c
+
+           ...
+
+    Archiving util_crc.a
+    Archiving util_mem.a
+    Linking ~/dev/slinky/bin/targets/stm32_slinky/app/apps/slinky/slinky.elf
+    Target successfully built: targets/stm32_slinky
+    $
+
+Sign and Create the Slinky Application Image
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+Run the ``newt create-image stm32_slinky 1.0.0`` command to create and
+sign the application image. You may assign an arbitrary version (e.g.
+1.0.0) to the image.
+
+.. code-block:: console
+
+    newt create-image stm32_slinky 1.0.0
+    App image succesfully generated: ~/dev/slinky/bin/targets/stm32_slinky/app/apps/slinky/slinky.img
+    $
+
+Connect to the Board
+~~~~~~~~~~~~~~~~~~~~
+
+-  Connect the USB A-B type cable to the ARM-USB-TINY-H debugger
+   connector.
+-  Connect the ARM-USB-Tiny-H debugger connector to your computer and
+   the board.
+-  Connect the USB Micro-A cable to the USB-OTG2 port on the board.
+-  Set the Power Sel jumper on the board to pins 5 and 6 to select USB-OTG2 as 
+   the power source. If you would like to use a different power source, refer 
+   to the `OLIMEX STM32-E407 user manual 
+   <https://www.olimex.com/Products/ARM/ST/STM32-E407/resources/STM32-E407.pdf>`__
+   for pin specifications.
+
+You should see a red LED light up on the board.
+
+Load the Bootloader and the Slinky Application Image
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+Run the ``newt load stm32_boot`` command to load the bootloader onto the
+board:
+
+.. code-block:: console
+
+    $ newt load stm32_boot
+    Loading bootloader
+    $
+
+Note: If you are using Windows and get a ``no device found`` error, you
+will need to install the usb driver. Download `Zadig <http://zadig.akeo.ie>`__
+and run it:
+
+-  Select Options > List All Devices.
+-  Select ``Olimex OpenOCD JTAG ARM-USB-TINY-H`` from the drop down
+   menu.
+-  Select the ``WinUSB`` driver.
+-  Click Install Driver.
+-  Run the ``newt load stm32_boot`` command again.
+
+Run the ``newt load stm32_slinky`` command to load the Slinky
+application image onto the board:
+
+.. code-block:: console
+
+    $ newt load stm32_slinky
+    Loading app image into slot 1
+    $
+
+Connect Newtmgr with the Board using a Serial Connection
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Locate the PC6/USART6\_TX (pin 3), PC7/USART6\_RX (pin 4), and GND (pin
+2) of the UEXT connector on the Olimex board. More information on the
+UEXT connector can be found at
+https://www.olimex.com/Products/Modules/UEXT/. The schematic of the
+board can be found at
+https://www.olimex.com/Products/ARM/ST/STM32-E407/resources/STM32-E407_sch.pdf
+for reference.
+
+.. figure:: ../pics/serial_conn.png
+   :alt: Alt Layout - Serial Connection
+
+   Alt Layout - Serial Connection
+
+-  Connect the female RX pin of the USB-TTL serial cable to the TX (Pin
+   3) of the UEXT connector on the board.
+-  Connect the female TX pin of the USB-TTL serial cable to the RX (Pin
+   4) of the UEXT connector on the board.
+-  Connect the GND pin of the USB-TTL serial cable to the GND (Pin 2) of
+   the UEXT connector on the board.
+
+Locate the port, in the /dev directory on your computer, that the
+serial connection uses. The format of the port name is platform
+dependent:
+
+-  Mac OS uses the format ``tty.usbserial-<some identifier>``.
+-  Linux uses the format ``TTYUSB<N>``, where ``N`` is a number. For
+   example, TTYUSB2.
+-  MinGW on Windows uses the format ``ttyS<N>``, where ``N`` is a
+   number. You must map the port name to a Windows COM port:
+   ``/dev/ttyS<N>`` maps to ``COM<N+1>``. For example, ``/dev/ttyS2``
+   maps to ``COM3``.
+
+   You can also use the Windows Device Manager to find the COM port
+   number.
+
+.. code-block:: console
+
+    $ ls /dev/tty*usbserial*
+    /dev/tty.usbserial-1d13
+    $
+
+Setup a newtmgr connection profile for the serial port. For our
+example, the port is ``/dev/tty.usbserial-1d13``.
+
+Run the ``newtmgr conn add`` command to define a newtmgr connection
+profile for the serial port. We name the connection profile
+``stm32serial``.
+
+**Note**:
+
+-  You will need to replace the ``connstring`` with the specific port
+   for your serial connection.
+-  On Windows, you must specify ``COM<N+1>`` for the connstring if
+   ``/dev/ttyS<N>`` is the serial port.
+
+.. code-block:: console
+
+    $ newtmgr conn add stm32serial type=serial connstring=/dev/tty.usbserial-1d13
+    Connection profile stm32serial successfully added
+    $
+
+You can run the ``newt conn show`` command to see all the newtmgr
+connection profiles:
+
+.. code-block:: console
+
+    $ newtmgr conn show
+    Connection profiles:
+      stm32serial: type=serial, connstring='/dev/tty.usbserial-1d13'
+      sim1: type=serial, connstring='/dev/ttys012'
+    $
+
+Use Newtmgr to Query the Board
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Run some newtmgr commands to query and receive responses back from the board
+(See the :doc:`Newt Manager Guide <../../newtmgr/index>` for more information on the
+newtmgr commands).
+
+Run the ``newtmgr echo hello -c stm32serial`` command. This is the
+simplest command that requests the board to echo back the text.
+
+.. code-block:: console
+
+    $ newtmgr echo hello -c stm32serial
+    hello
+    $
+
+Run the ``newtmgr image list -c stm32serial`` command to list the
+images on the board:
+
+.. code-block:: console
+
+    $ newtmgr image list -c stm32serial
+    Images:
+     slot=0
+        version: 1.0.0
+        bootable: true
+        flags: active confirmed
+        hash: 9cf8af22b1b573909a8290a90c066d4e190407e97680b7a32243960ec2bf3a7f
+    Split status: N/A
+    $
+
+Run the ``newtmgr taskstat -c stm32serial`` command to display the task
+statistics on the board:
+
+.. code-block:: console
+
+    $ newtmgr taskstat -c stm32serial
+          task pri tid  runtime      csw    stksz   stkuse last_checkin next_checkin
+          idle 255   0   157179   157183       64       25        0        0
+          main 127   1        4       72     1024      356        0        0
+         task1   8   2        0      158      192      114        0        0
+         task2   9   3        0      158       64       30        0        0
+    $
diff --git a/develop/_sources/tutorials/tasks_lesson.rst.txt b/develop/_sources/tutorials/tasks_lesson.rst.txt
new file mode 100644
index 0000000000..e21b8f4ece
--- /dev/null
+++ b/develop/_sources/tutorials/tasks_lesson.rst.txt
@@ -0,0 +1,323 @@
+Tasks and Priority Management
+=============================
+
+**Target Platform: Arduino M0 Pro** (or legacy Arduino Zero or Zero Pro,
+but not Arduino M0)
+
+This lesson is designed to teach core OS concepts and strategies
+encountered when building applications using Mynewt. Specifically, this
+lesson will cover tasks, simple multitasking, and priority management
+running on an Arduino M0 Pro.
+
+Prerequisites
+-------------
+
+Before starting, you should read about Mynewt in the
+`*Introduction* <http://mynewt.apache.org/os/introduction/>`__ section
+and complete the
+`*QuickStart* <http://mynewt.apache.org/os/get_started/get_started/>`__
+guide and the
+`*Blinky* <http://mynewt.apache.org/os/tutorials/arduino_zero/>`__
+tutorial. Furthermore, it may be helpful to take a peek at the `*task
+documentation* <http://mynewt.apache.org/os/core_os/task/task/>`__ for
+additional insights.
+
+Equipment
+---------
+
+You will need the following equipment:
+
+-  Arduino M0 Pro (or legacy Arduino Zero or Zero Pro, but not Arduino
+   M0)
+-  Computer with Mynewt installed
+-  USB to Micro USB Cable
+
+Build Your Application
+----------------------
+
+To save time, we will simply modify the Blinky application. We'll add
+the Task Management code to the Blinky application. Follow the `*Arduino
+Zero Blinky
+tutorial* <http://mynewt.apache.org/os/tutorials/arduino_zero/>`__ to
+create a new project and build your bootloader and application. Finally,
+build and load the application to your Arduino to verify that everything
+is in order. Now let?s get started!
+
+Default Main Task
+-----------------
+
+During Mynewt system startup, Mynewt creates a default main task and
+executes the application ``main()`` function in the context of this
+task. The main task priority defaults to 127 and can be configured with
+the ``OS_MAIN_TASK_PRIO`` system configuration setting.
+
+The blinky application only has the ``main`` task. The ``main()``
+function executes an infinite loop that toggles the led and sleeps for
+one second. ##Create a New Task
+
+The purpose of this section is to give an introduction to the important
+aspects of tasks and how to properly initialize them. First, let?s
+define a second task called ``work_task`` in main.c (located in
+apps/blinky/src):
+
+.. code:: c
+
+    struct os_task work_task;
+
+A task is represented by the
+`*os\_task* <http://mynewt.apache.org/os/core_os/task/task/#data-structures>`__
+struct which will hold the task?s information (name, state, priority,
+etc.). A task is made up of two main elements, a task function (also
+known as a task handler) and a task stack.
+
+Next, let?s take a look at what is required to initialize our new task.
+
+Task Stack
+~~~~~~~~~~
+
+The task stack is an array of type ``os_stack_t`` which holds the
+program stack frames. Mynewt gives us the ability to set the stack size
+for a task giving the application developer room to optimize memory
+usage. Since we?re not short on memory, our ``work_stack`` is plenty
+large for the purpose of this lesson. Notice that the elements in our
+task stack are of type ``os_stack_t`` which are generally 32 bits,
+making our entire stack 1024 Bytes.
+
+.. code:: c
+
+      #define WORK_STACK_SIZE OS_STACK_ALIGN(256)
+
+Note: The ``OS_STACK_ALIGN`` macro is used to align the stack based on
+the hardware architecture.
+
+Task Function
+~~~~~~~~~~~~~
+
+A task function is essentially an infinite loop that waits for some
+?event? to wake it up. In general, the task function is where the
+majority of work is done by a task. Let?s write a task function for
+``work_task`` called ``work_task_handler()``:
+
+.. code:: c
+
+    void
+    work_task_handler(void *arg)
+    {
+        struct os_task *t;
+
+        g_led_pin = LED_BLINK_PIN;
+        hal_gpio_init_out(g_led_pin, 1);
+
+        while (1) {
+            t = os_sched_get_current_task();
+            assert(t->t_func == work_task_handler);
+            /* Do work... */
+        }
+    }
+
+The task function is called when the task is initially put into the
+*running* state by the scheduler. We use an infinite loop to ensure that
+the task function never returns. Our assertion that the current task's
+handler is the same as our task handler is for illustration purposes
+only and does not need to be in most task functions.
+
+Task Priority
+~~~~~~~~~~~~~
+
+As a preemptive, multitasking RTOS, Mynewt decides which tasks to run
+based on which has a higher priority; the highest priority being 0 and
+the lowest 255. Thus, before initializing our task, we must choose a
+priority defined as a macro variable.
+
+Let?s set the priority of ``work_task`` to 0, because everyone knows
+that work is more important than blinking.
+
+.. code:: c
+
+      #define WORK_TASK_PRIO (0)
+
+Initialization
+~~~~~~~~~~~~~~
+
+To initialize a new task we use
+`*os\_task\_init()* <http://mynewt.apache.org/os/core_os/task/os_task_init/>`__
+which takes a number of arguments including our new task function,
+stack, and priority.
+
+Add the ``init_tasks()`` function to initialize ``work_task`` to keep
+our main function clean.
+
+.. code:: c
+
+    int
+    init_tasks(void)
+    {
+        /* ? */
+        os_stack_t *work_stack;
+        work_stack = malloc(sizeof(os_stack_t)*WORK_STACK_SIZE);
+
+        assert(work_stack);
+        os_task_init(&work_task, "work", work_task_handler, NULL,
+                WORK_TASK_PRIO, OS_WAIT_FOREVER, work_stack,
+                WORK_STACK_SIZE);
+
+        return 0;
+    }
+
+Add the call to ``init_tasks()`` in ``main()`` before the ``while``
+loop:
+
+.. code:: c
+
+
+    int
+    main(int argc, char **argv)
+    {
+
+            ...
+
+        /* Initialize the work task */
+        init_tasks();
+
+        while (1) {
+             ...
+        }
+    }
+
+And that?s it! Now run your application using the newt run command.
+
+::
+
+    $ newt run arduino_blinky 0.0.0
+
+When GDB appears press C then Enter to continue and ? *wait, why
+doesn't our LED blink anymore?*
+
+Review
+^^^^^^^^^^^^^^^^^^^
+
+Before we run our new app, let?s review what we need in
+order to create a task. This is a general case for a new task called
+mytask:
+
+**1)** Define a new task, task stack, and priority:
+
+.. code:: c
+
+    /* My Task */
+    struct os_task mytask
+    /* My Task Stack */
+    #define MYTASK_STACK_SIZE OS_STACK_ALIGN(256)
+    os_stack_t mytask_stack[MYTASK_STACK_SIZE];
+    /* My Task Priority */
+    #define MYTASK_PRIO (0)
+
+**2)** Define task function:
+
+.. code:: c
+
+    void
+    mytask_handler(void *arg)
+    {
+      while (1) {
+          /* ... */
+      }
+    }
+
+**3)** Initialize the task:
+
+.. code:: c
+
+    os_task_init(&mytask, "mytask", mytask_handler, NULL,
+                MYTASK_PRIO, OS_WAIT_FOREVER, mytask_stack,
+                MYTASK_STACK_SIZE);
+
+Task Priority, Preempting, and Context Switching
+------------------------------------------------
+
+A preemptive RTOS is one in which a higher priority task that is *ready
+to run* will preempt (i.e. take the place of) the lower priority task
+which is *running*. When a lower priority task is preempted by a higher
+priority task, the lower priority task?s context data (stack pointer,
+registers, etc.) is saved and the new task is switched in.
+
+In our example, ``work_task`` (priority 0) has a higher priority than
+the ``main`` task (priority 127). Since ``work_task`` is never put into
+a *sleep* state, it holds the processor focus on its context.
+
+Let?s give ``work_task`` a delay and some simulated work to keep it
+busy. The delay is measured in os ticks and the actual number of ticks
+per second is dependent on the board. We multiply ``OS_TICKS_PER_SEC``,
+which is defined in the MCU, by the number of seconds we wish to delay.
+
+.. code:: c
+
+    void
+    work_task_handler(void *arg)
+    {
+        struct os_task *t;
+
+        g_led_pin = LED_BLINK_PIN;
+        hal_gpio_init_out(g_led_pin, 1);
+
+        while (1) {
+            t = os_sched_get_current_t:ask();
+            assert(t->t_func == work_task_handler);
+            /* Do work... */
+            int i;
+            for(i = 0; i < 1000000; ++i) {
+                /* Simulate doing a noticeable amount of work */
+                hal_gpio_write(g_led_pin, 1);
+            }
+            os_time_delay(3 * OS_TICKS_PER_SEC);
+        }
+    }
+
+In order to notice the LED changing, modify the time delay in
+``main()`` to blink at a higher frequency.
+
+.. code:: c
+
+    os_time_delay(OS_TICKS_PER_SEC/10);
+
+Before we run the app, let?s predict the behavior. With the newest
+additions to ``work_task_handler()``, our first action will be to sleep
+for three seconds. This allows the ``main`` task, running ``main()``, to
+take over the CPU and blink to its heart?s content. After three seconds,
+``work_task`` will wake up and be made *ready to run*. This causes it to
+preempt the ``main`` task. The LED will then remain lit for a short
+period while ``work_task`` loops, then blink again for another three
+seconds while ``work_task`` sleeps.
+
+You should see that our prediction was correct!
+
+Priority Management Considerations
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+When projects grow in scope, from blinking LEDs into more sophisticated
+applications, the number of tasks needed increases alongside complexity.
+It remains important, then, that each of our tasks is capable of doing
+its work within a reasonable amount of time.
+
+Some tasks, such as the Shell task, execute quickly and require almost
+instantaneous response. Therefore, the Shell task should be given a high
+priority. On the other hand, tasks which may be communicating over a
+network, or processing data, should be given a low priority in order to
+not hog the CPU.
+
+The diagram below shows the different scheduling patterns we would
+expect when we set the ``work_task`` priority higher and lower than the
+``main`` task priority.
+
+.. figure:: pics/task_lesson.png
+   :alt: Task Scheduling
+
+   Task Scheduling
+
+In the second case where the ``main`` task has a higher priority,
+``work_task`` runs and executes ?work? when the ``main`` task sleeps,
+saving us idle time compared to the first case.
+
+**Note:** Defining the same priority for two tasks fires an assert in
+os\_task\_init() and must be avoided. Priority 127 is reserved for main
+task, 255 for idle task.
diff --git a/develop/_sources/tutorials/try_markdown.rst.txt b/develop/_sources/tutorials/try_markdown.rst.txt
new file mode 100644
index 0000000000..10e31f31ac
--- /dev/null
+++ b/develop/_sources/tutorials/try_markdown.rst.txt
@@ -0,0 +1,44 @@
+Try Markdown
+------------
+
+Heading3
+~~~~~~~~
+
+Heading4
+^^^^^^^^
+
+--------------
+
+List
+''''
+
+-  Start with one # for the largest heading (Heading1). The next smaller
+   heading (Heading2) starts with ##. You can go all the way up to
+   Heading 6 (######).
+
+-  Heading4 (####) and Heading5 (#####) has been styled to show up
+   underlined. Yes, it can be changed. If you are curious, you can look
+   at the extra.css file in your repo branch.
+
+-  It's **very** easy to do **bold** and *italics*.
+
+-  See how this list has been made using \*
+
+-  Click on "Help" in Mou and then on "Markdown Syntax Reference".
+
+-   Substitute a sentence of your own here
+
+-   Guinea Pig!!!
+
+--------------
+
+     Note! > You will not be able to see the change immediately by
+    refreshing your browser right after editign the Markdown file. You
+    can only push the change to the Apache repository. So continue with
+    the steps in `how\_to\_edit\_docs.md <how_to_edit_docs.html>`__. > >
+    You can see the change on the website if/when a doc builder on the
+    project team merges your changes to the master branch and generates
+    the pages for the website. > > You do have the option to download
+    MkDocs and preview the change by hosting the pages locally using its
+    built-in web server. The steps are described in
+    `how\_to\_edit\_docs.md <how_to_edit_docs.html>`__.
diff --git a/develop/_sources/tutorials/unit_test.rst.txt b/develop/_sources/tutorials/unit_test.rst.txt
new file mode 100644
index 0000000000..21c8e0b8e8
--- /dev/null
+++ b/develop/_sources/tutorials/unit_test.rst.txt
@@ -0,0 +1,359 @@
+Write a Test Suite for a Package
+================================
+
+This document guides the reader through creating a test suite for a
+Mynewt package.
+
+Introduction
+------------
+
+Writing a test suite involves using the
+```test/testutil`` <../modules/testutil/testutil.html>`__ package. The
+testutil library provides the functionality needed to define test suites
+and test cases.
+
+Choose Your Package Under Test
+------------------------------
+
+Choose the package you want to write a test suite for. In this tutorial,
+we will use the ``time/datetime`` in the apache-mynewt-core repo.
+Throughout this tutorial, we will be inside the apache-mynewt-core repo
+directory, unlike most tutorials which operate from the top-level
+project directory.
+
+Create A Test Package
+---------------------
+
+Typically, a library has only one test package. The convention is name
+the test package by appending ``/test`` to the host library name. For
+example, the test package for ``encoding/json`` is
+``encoding/json/test``. The directory structure of the json package is
+shown below:
+
+.. code:: c
+
+    encoding/json
+    ??? include
+    ??? ??? json
+    ???     ??? json.h
+    ??? pkg.yml
+    ??? src
+    ??? ??? json_decode.c
+    ??? ??? json_encode.c
+    ??? test
+        ??? pkg.yml
+        ??? src
+            ??? test_json.c
+            ??? test_json.h
+            ??? test_json_utils.c
+            ??? testcases
+                ??? json_simple_decode.c
+                ??? json_simple_encode.c
+
+The top-level ``test`` directory contains the json test package. To
+create a test package for the datetime package, we need to create a
+similar package called ``time/datetime/test``.
+
+::
+
+    $ newt pkg new time/datetime/test -t unittest
+    Download package template for package type pkg.
+    Package successfuly installed into /home/me/mynewt-core/time/datetime/test.
+
+We now have a test package inside ``time/datetime``:
+
+::
+
+    time/datetime
+    ??? include
+    ??? ??? datetime
+    ???     ??? datetime.h
+    ??? pkg.yml
+    ??? src
+    ??? ??? datetime.c
+    ??? test
+        ??? README.md
+        ??? pkg.yml
+        ??? src
+        ??? ??? main.c
+        ??? syscfg.yml
+
+There is one modification we need to make to the new package before we
+can start writing unit test code. A test package needs access to the
+code it will be testing, so we need to add a dependency on
+``@apache-mynewt-core/time/datetime`` to our ``pkg.yml`` file:
+
+.. code:: hl_lines="10"
+
+    pkg.name: "time/datetime/test"
+    pkg.type: unittest
+    pkg.description: "Description of your package"
+    pkg.author: "You <yo...@you.org>"
+    pkg.homepage: "http://your-url.org/"
+    pkg.keywords:
+
+    pkg.deps:
+        - '@apache-mynewt-core/test/testutil'
+        - '@apache-mynewt-core/time/datetime'
+
+    pkg.deps.SELFTEST:
+        - '@apache-mynewt-core/sys/console/stub'
+
+While we have the ``pkg.yml`` file open, let's take a look at what newt
+filled in automatically:
+
+-  ``pkg.type: unittest`` designates this as a test package. A *test
+   package* is special in that it can be built and executed using the
+   ``newt test`` command.
+-  A test package always depends on
+   ``@apache-mynewt-core/test/testutil``. The testutil library provides
+   the tools necessary for verifying package behavior,
+-  The ``SELFTEST`` suffix indicates that a setting should only be
+   applied when the ``newt test`` command is used.
+
+Regarding the conditional dependency on ``sys/console/stub``, the
+datetime package requires some form of console to function. In a regular
+application, the console dependency would be supplied by a higher order
+package. Because ``newt test`` runs the test package without an
+application present, the test package needs to supply all unresolved
+dependencies itself when run in self-test mode.
+
+Create Your Test Suite Code
+---------------------------
+
+We will be adding a *test suite* to the ``main.c`` file. The test suite
+will be empty for now. We also need to invoke the test suite from
+``main()``.
+
+Our ``main.c`` file now looks like this:
+
+.. code:: c
+
+    #include "sysinit/sysinit.h"
+    #include "testutil/testutil.h"
+
+    TEST_SUITE(test_datetime_suite) {
+        /* Empty for now; add test cases later. */
+    }
+
+    #if MYNEWT_VAL(SELFTEST)
+    int
+    main(int argc, char **argv)
+    {
+        /* Initialize all packages. */
+        sysinit();
+
+        test_datetime_suite();
+
+        /* Indicate whether all test cases passed. */
+        return tu_any_failed;
+    }
+    #endif
+
+Try It Out
+----------
+
+We now have a working test suite with no tests. Let's make sure we get a
+passing result when we run ``newt test``:
+
+::
+
+    $ newt test time/datetime
+    <build output>
+    Executing test: /home/me/mynewt-core/bin/targets/unittest/time_datetime_test/app/time/datetime/test/time_datetime_test.elf
+    Passed tests: [time/datetime/test]
+    All tests passed
+
+Create a Test
+-------------
+
+To create a test within your test suite, there are two things to do.
+
+1. Implement the test case function using the ``testutil`` macros.
+2. Call the test case function from within the test suite.
+
+For this tutorial we will create a test case to verify the
+``datetime_parse()`` function. The ``datetime_parse()`` function is
+declared as follows:
+
+.. code:: c
+
+    /**
+     * Parses an RFC 3339 datetime string.  Some examples of valid datetime strings
+     * are:
+     * 2016-03-02T22:44:00                  UTC time (implicit)
+     * 2016-03-02T22:44:00Z                 UTC time (explicit)
+     * 2016-03-02T22:44:00-08:00            PST timezone
+     * 2016-03-02T22:44:00.1                fractional seconds
+     * 2016-03-02T22:44:00.101+05:30        fractional seconds with timezone
+     *
+     * On success, the two output parameters are filled in (tv and tz).
+     *
+     * @return                      0 on success;
+     *                              nonzero on parse error.
+     */
+    int
+    datetime_parse(const char *input, struct os_timeval *tv, struct os_timezone *tz)
+
+Our test case should make sure this function rejects invalid input, and
+that it parses valid input correctly. The updated ``main.c`` file looks
+like this:
+
+.. code:: c
+
+    #include "sysinit/sysinit.h"
+    #include "testutil/testutil.h"
+    #include "os/os_time.h"
+    #include "datetime/datetime.h"
+
+    TEST_SUITE(test_datetime_suite)
+    {
+        test_datetime_parse_simple();
+    }
+
+    TEST_CASE(test_datetime_parse_simple)
+    {
+        struct os_timezone tz;
+        struct os_timeval tv;
+        int rc;
+
+        /*** Valid input. */
+
+        /* No timezone; UTC implied. */
+        rc = datetime_parse("2017-06-28T22:37:59", &tv, &tz);
+        TEST_ASSERT_FATAL(rc == 0);
+        TEST_ASSERT(tv.tv_sec == 1498689479);
+        TEST_ASSERT(tv.tv_usec == 0);
+        TEST_ASSERT(tz.tz_minuteswest == 0);
+        TEST_ASSERT(tz.tz_dsttime == 0);
+
+        /* PDT timezone. */
+        rc = datetime_parse("2013-12-05T02:43:07-07:00", &tv, &tz);
+        TEST_ASSERT_FATAL(rc == 0);
+        TEST_ASSERT(tv.tv_sec == 1386236587);
+        TEST_ASSERT(tv.tv_usec == 0);
+        TEST_ASSERT(tz.tz_minuteswest == 420);
+        TEST_ASSERT(tz.tz_dsttime == 0);
+
+        /*** Invalid input. */
+
+        /* Nonsense. */
+        rc = datetime_parse("abc", &tv, &tz);
+        TEST_ASSERT(rc != 0);
+
+        /* Date-only. */
+        rc = datetime_parse("2017-01-02", &tv, &tz);
+        TEST_ASSERT(rc != 0);
+
+        /* Zero month. */
+        rc = datetime_parse("2017-00-28T22:37:59", &tv, &tz);
+        TEST_ASSERT(rc != 0);
+
+        /* 13 month. */
+        rc = datetime_parse("2017-13-28T22:37:59", &tv, &tz);
+        TEST_ASSERT(rc != 0);
+    }
+
+    #if MYNEWT_VAL(SELFTEST)
+    int
+    main(int argc, char **argv)
+    {
+        /* Initialize all packages. */
+        sysinit();
+
+        test_datetime_suite();
+
+        /* Indicate whether all test cases passed. */
+        return tu_any_failed;
+    }
+    #endif
+
+Take a few minutes to review the above code. Then keep reading for some
+specifics.
+
+Asserting
+~~~~~~~~~
+
+The ``test/testutil`` package provides two tools for verifying the
+correctness of a package:
+
+-  ``TEST_ASSERT``
+-  ``TEST_ASSERT_FATAL``
+
+Both of these macros check if the supplied condition is true. They
+differ in how they behave when the condition is not true. On failure,
+``TEST_ASSERT`` reports the error and proceeds with the remainder of the
+test case. ``TEST_ASSERT_FATAL``, on the other hand, aborts the test
+case on failure.
+
+The general rule is to only use ``TEST_ASSERT_FATAL`` when subsequent
+assertions depend on the condition being checked. For example, when
+``datetime_parse()`` is expected to succeed, the return code is checked
+with ``TEST_ASSERT_FATAL``. If ``datetime_parse()`` unexpectedly failed,
+the contents of the ``tv`` and ``tz`` objects would be indeterminate, so
+it is desirable to abort the test instead of checking them and reporting
+spurious failures.
+
+Scaling Up
+~~~~~~~~~~
+
+The above example is small and self contained, so it is reasonable to
+put everything in a single C file. A typical package will need a lot
+more test code, and it helps to follow some conventions to maintain
+organization. Let's take a look at a more realistic example. Here is the
+directory structure of the ``fs/nffs/test`` package:
+
+::
+
+    fs/nffs/test
+    ??? pkg.yml
+    ??? src
+        ??? nffs_test.c
+        ??? nffs_test.h
+        ??? nffs_test_debug.c
+        ??? nffs_test_priv.h
+        ??? nffs_test_system_01.c
+        ??? nffs_test_utils.c
+        ??? nffs_test_utils.h
+        ??? testcases
+            ??? append_test.c
+            ??? cache_large_file_test.c
+            ??? corrupt_block_test.c
+            ??? corrupt_scratch_test.c
+            ??? gc_on_oom_test.c
+            ??? gc_test.c
+            ??? incomplete_block_test.c
+            ??? large_system_test.c
+            ??? large_unlink_test.c
+            ??? large_write_test.c
+            ??? long_filename_test.c
+            ??? lost_found_test.c
+            ??? many_children_test.c
+            ??? mkdir_test.c
+            ??? open_test.c
+            ??? overwrite_many_test.c
+            ??? overwrite_one_test.c
+            ??? overwrite_three_test.c
+            ??? overwrite_two_test.c
+            ??? read_test.c
+            ??? readdir_test.c
+            ??? rename_test.c
+            ??? split_file_test.c
+            ??? truncate_test.c
+            ??? unlink_test.c
+            ??? wear_level_test.c
+
+The ``fs/nffs/test`` package follows these conventions:
+
+1. A maximum of one test case per C file.
+2. Each test case file goes in the ``testcases`` subdirectory.
+3. Test suites and utility functions go directly in the ``src``
+   directory.
+
+Test packages contributed to the Mynewt project should follow these
+conventions.
+
+Congratulations
+---------------
+
+Now you can begin the work of validating your packages.
diff --git a/develop/_sources/tutorials/wi-fi_on_arduino.rst.txt b/develop/_sources/tutorials/wi-fi_on_arduino.rst.txt
new file mode 100644
index 0000000000..3a381d7e76
--- /dev/null
+++ b/develop/_sources/tutorials/wi-fi_on_arduino.rst.txt
@@ -0,0 +1,368 @@
+Enable Wi-Fi on Arduino MKR1000
+-------------------------------
+
+This tutorial shows you how to enable Wi-Fi on an Arduino MKR1000 board
+and connect to a Wi-Fi network.
+
+Prerequisites
+~~~~~~~~~~~~~
+
+Ensure that you have met the following prerequisites before continuing
+with this tutorial:
+
+-  Have an Arduino MKR1000 board.
+-  Have Internet connectivity to fetch remote Mynewt components.
+-  Have a computer to build a Mynewt application and connect to the
+   board over USB.
+-  Have a Micro-USB cable to connect the board and the computer.
+-  Have local Wi-Fi network that the computer is connected to and that
+   the MKR1000 board can join.
+-  Have a `Serial Port Setup </os/get_started/serial_access.html>`__.
+-  Have a `Segger J-Link Debug
+   Probe <https://www.segger.com/jlink-debug-probes.html>`__.
+-  Have a `J-Link 9 pin Cortex-M
+   Adapter <https://www.segger.com/jlink-adapters.html#CM_9pin>`__ that
+   allows JTAG, SWD and SWO connections between J-Link and Cortex M
+   based target hardware systems
+-  Install the `Segger JLINK Software and documentation
+   pack <https://www.segger.com/jlink-software.html>`__.
+-  Install the Newt tool and toolchains (See `Basic
+   Setup </os/get_started/get_started.html>`__).
+-  Create a project space (directory structure) and populated it with
+   the core code repository (apache-mynewt-core) or know how to as
+   explained in `Creating Your First
+   Project </os/get_started/project_create>`__.
+-  Read the Mynewt OS `Concepts </os/get_started/vocabulary.html>`__
+   section.
+
+Create a Project
+~~~~~~~~~~~~~~~~
+
+Create a new project if you do not have an existing one. You can skip
+this step and proceed to `fetch external packages <#%20fetchexternal>`__
+if you already created a project.
+
+Run the following commands to create a new project:
+
+.. code-block:: console
+
+        $ mkdir ~/dev
+        $ cd ~/dev
+        $ newt new arduinowifi
+        Downloading project skeleton from apache/mynewt-blinky...
+        Installing skeleton in arduinowifi...
+        Project arduinowifi successfully created.
+        $ cd arduinowifi
+        $ newt install
+        apache-mynewt-core
+        $
+
+Fetch External Packages
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+Mynewt uses source code provided directly from the chip manufacturer for
+low level operations. Sometimes this code is licensed only for the
+specific manufacturer of the chipset and cannot live in the Apache
+Mynewt repository. That happens to be the case for the Arduino Zero
+board which uses Atmel SAMD21. Runtime's git hub repository hosts such
+external third-party packages and the Newt tool can fetch them.
+
+To fetch the package with MCU support for Atmel SAMD21 for Arduino Zero
+from the Runtime git repository, you need to add the repository to the
+``project.yml`` file in your base project directory.
+
+Mynewt uses source code provided directly from the chip manufacturer for
+low level operations. Sometimes this code is licensed only for the
+specific manufacturer of the chipset and cannot live in the Apache
+Mynewt repository. That happens to be the case for the Arduino Zero
+board which uses Atmel SAMD21. Runtime's github repository hosts such
+external third-party packages and the Newt tool can fetch them.
+
+To fetch the package with MCU support for Atmel SAMD21 for Arduino Zero
+from the Runtime git repository, you need to add the repository to the
+``project.yml`` file in your base project directory (``arduinowifi``).
+
+Here is an example ``project.yml`` file with the Arduino Zero repository
+added. The sections with ``mynewt_arduino_zero`` that need to be added
+to your project file are highlighted.
+
+**Note:** On Windows platforms: You need to set ``vers`` to ``0-dev``
+and use the latest master branch for both repositories.
+
+\`\`\`hl\_lines="6 14 15 16 17 18" $ more project.yml project.name:
+"my\_project"
+
+project.repositories: - apache-mynewt-core - mynewt\_arduino\_zero
+
+repository.apache-mynewt-core: type: github vers: 1-latest user: apache
+repo: mynewt-core
+
+repository.mynewt\_arduino\_zero: type: github vers: 1-latest user:
+runtimeco repo: mynewt\_arduino\_zero $ \`\`\`
+
+Install the project dependencies using the ``newt install`` command
+(you can specify ``-v`` for verbose output):
+
+.. code-block:: console
+
+    $ newt install
+    apache-mynewt-core
+    mynewt_arduino_zero
+    $
+
+**NOTE:** If there has been a new release of a repo used in your project
+since you last installed it, the ``1-latest`` version for the repo in
+the ``project.yml`` file will refer to the new release and will not
+match the installed files. In that case you will get an error message
+saying so and you will need to run ``newt upgrade`` to overwrite the
+existing files with the latest codebase.
+
+Create a Target for the Bootloader
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You need to create two targets for the MKR1000 board, one for the
+bootloader and one for the ``winc1500_wifi`` application. Run the
+following ``newt target`` commands, from your project directory, to
+create a bootloader target. We name the target ``mkr1000_boot``.
+
+.. code-block:: console
+
+    $ newt target create mkr1000_boot
+    $ newt target set mkr1000_boot bsp=@mynewt_arduino_zero/hw/bsp/arduino_mkr1000
+    $ newt target set mkr1000_boot app=@apache-mynewt-core/apps/boot
+    $ newt target set mkr1000_boot build_profile=optimized
+    $ newt target set mkr1000_boot syscfg=BSP_ARDUINO_ZERO_PRO=1
+
+Create a Target for the Wi-Fi Application
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Run the following ``newt target`` commands to create a target for the
+``winc1500_wifi`` application in the arduino repository. We name the
+application target ``mkr1000_wifi``.
+
+::
+
+    $ newt target create mkr1000_wifi
+    $ newt target set mkr1000_wifi app=@mynewt_arduino_zero/apps/winc1500_wifi
+    $ newt target set mkr1000_wifi bsp=@mynewt_arduino_zero/hw/bsp/arduino_mkr1000
+    $ newt target set mkr1000_wifi build_profile=debug
+    $ newt target set mkr1000_boot syscfg=BSP_ARDUINO_ZERO_PRO=1
+
+Build the Bootloader
+~~~~~~~~~~~~~~~
+
+
+Run the ``newt build mkr1000_boot`` command to build the bootloader:
+
+.. code-block:: console
+
+    $ newt build mkr1000_boot
+    Building target targets/mkr1000_boot
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/image_rsa.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec256.c
+    Compiling repos/apache-mynewt-core/crypto/mbedtls/src/aes.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/image_validate.c
+    Compiling repos/apache-mynewt-core/apps/boot/src/boot.c
+
+           ...
+
+    Archiving util_mem.a
+    Linking ~/dev/arduinowifi/bin/targets/mkr1000_boot/app/apps/boot/boot.elf
+    Target successfully built: targets/mkr1000_boot
+    $
+
+Build the Wi-Fi Application
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Run the ``newt build mkr1000_wifi`` command to build the wi-fi
+application image:
+
+.. code-block:: console
+
+    $newt build mkr1000_wifi
+    Building target targets/mkr1000_wifi
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec256.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/image_rsa.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/image_validate.c
+    Compiling repos/apache-mynewt-core/boot/bootutil/src/loader.c
+               ...
+
+    Archiving util_mem.a
+    Linking ~/dev/arduinowifi/bin/targets/mkr1000_wifi/app/apps/winc1500_wifi/winc1500_wifi.elf
+    Target successfully built: targets/mkr1000_wifi
+    $
+
+Sign and Create the Wi-Fi Application Image
+~~~~~~~~~~~~~~~
+
+
+Run the ``newt create-image mkr1000_wifi 1.0.0`` command to sign and
+create an image file for the Wi-Fi application. You may assign an
+arbitrary version (e.g. 1.0.0) number.
+
+.. code-block:: console
+
+    $newt create-image  mkr1000_wifi 1.0.0
+    Compiling bin/targets/mkr1000_wifi/generated/src/mkr1000_wifi-sysinit-app.c
+    Archiving mkr1000_wifi-sysinit-app.a
+    Linking ~/dev/arduinowifi/bin/targets/mkr1000_wifi/app/apps/winc1500_wifi/winc1500_wifi.elf
+    App image succesfully generated: ~/dev/arduinowifi/bin/targets/mkr1000_wifi/app/apps/winc1500_wifi/winc1500_wifi.img
+    $
+
+Connect to the Board
+~~~~~~~~~~~~~~~~~~~~
+
+-  Connect your computer to the MKR1000 board with the Micro-USB cable.
+-  Connect the debug probe to the JTAG port on the board using the Jlink
+   9-pin adapter and cable.
+
+ |J-Link debug probe to MKR1000|
+
+.. raw:: html
+
+   <p>
+
+Mynewt will download and debug the target through this port. You should
+see a green LED come on and indicates the board has power.
+
+Load the Bootloader onto the Board
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Run the ``newt load mkr1000_boot`` command to load the bootloader onto
+the board:
+
+.. code-block:: console
+
+    $ newt load mkr1000_boot
+    Loading bootloader
+    $
+
+Load the Wi-Fi Application Image onto the Board
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Run the ``newt load mkr1000_wifi`` command to load the wifi application
+onto the board:
+
+.. code-block:: console
+
+    $ newt load mkr1000_wifi
+    Loading app image into slot 1
+    $
+
+Setup a Serial Connection Between Your Computer and the Board
+~~~~~~~~~~~~~~~
+
+
+Set up a serial connection from your computer to the MKR1000 board (See
+`Serial Port Setup </os/get_started/serial_access.html>`__). On the
+MKR1000 board, the TX pin is PIN 14 and the RX pin in PIN 13. |Serial
+Connection to MKR1000|
+
+.. raw:: html
+
+   <p>
+
+Locate the port, in the /dev directory on your computer, that the
+serial connection uses. The format of the port name is platform
+dependent:
+
+-  Mac OS uses the format ``tty.usbserial-<some identifier>``.
+-  Linux uses the format ``TTYUSB<N>``, where ``N`` is a number. For
+   example, TTYUSB2.
+-  MinGW on Windows uses the format ``ttyS<N>``, where ``N`` is a
+   number. You must map the port name to a Windows COM port:
+   ``/dev/ttyS<N>`` maps to ``COM<N+1>``. For example, ``/dev/ttyS2``
+   maps to ``COM3``.
+
+   You can also use the Windows Device Manager to find the COM port
+   number.
+
+.. code-block:: console
+
+    $ ls /dev/tty*usbserial*
+    /dev/tty.usbserial-1d13
+    $
+
+Start Wi-Fi via console
+~~~~~~~~~~~~~~~~~~~~~~~
+
+Use a terminal emulation program to communicate with the board over the
+serial port. This tutorial shows a Minicom set up. Run the minicom
+command with the serial port you located on your computer:
+
+**Note:** On Windows, you can use the PuTTY application.
+
+.. code-block:: console
+
+    $ minicom -D /dev/tty.usbserial-1d13 -b 115200
+
+Type ``wifi start`` to start Wi-Fi.
+
+.. code:: hl_lines="11"
+
+
+    Welcome to minicom 2.7.1
+
+    OPTIONS: 
+    Compiled on May 17 2017, 15:29:14.
+    Port /dev/tty.usbserial, 15:12:10
+
+    Press Meta-Z for help on special keys
+
+
+    138465 compat> wifi start
+    144570 compat> (APP)(INFO)Chip ID 1503a0
+    (APP)(INFO)Firmware ver   : 19.4.4
+    (APP)(INFO)Min driver ver : 19.3.0
+    (APP)(INFO)Curr driver ver: 19.3.0
+    wifi_init : 0
+
+Connect to the local Wi-Fi network. Note that the MKR1000 board only
+supports 2.4 GHz Wi-Fi networks.
+
+Run the ``wifi connect`` command and specify your network and . After
+you are connected to your wi-fi network, run the ``net service`` command
+to start network services.
+
+\`\`\`hl\_lines="2 9"
+
+wifi connect 037624 wifi\_request\_scan : 0 037627 compat> scan\_results
+7: 0 038454 wifi\_connect : 0 039451 connect\_done : 0 039958 dhcp done
+192.168.0.135 040169 get sys time response 2017.7.12-22.41.33 net
+service
+
+\`\`\`
+
+The board is connected to the network succesfully and has IP address:
+192.168.0.135
+
+Establish TCP Connection and Talk!
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+From a terminal on your computer, telnet to ports 7, 9, or 19 using the
+IP address your board has been assigned. Type something on this terminal
+and see the console output (on minicom). Can you see the difference in
+the behaviors?
+
+.. code-block:: console
+
+
+    $telnet  192.168.0.135 7
+    Trying 192.168.0.135...
+    Connected to 192.168.0.135.
+    Escape character is '^]'.
+    hello
+    hello
+    ^]
+    telnet> q
+    $
+
+One port echoes whatever is typed, one discards everything it gets, and
+the third spews out bits constantly. Type ``wifi stop`` to disable WiFi
+on the Arduino board.
+
+.. |J-Link debug probe to MKR1000| image:: pics/mkr1000-jlink.jpg
+.. |Serial Connection to MKR1000| image:: pics/mkr1000-serial.jpg
+
diff --git a/develop/genindex.html b/develop/genindex.html
index 121376d34f..35c17b01cc 100644
--- a/develop/genindex.html
+++ b/develop/genindex.html
@@ -314,15 +314,19 @@ <h2 id="O">O</h2>
       <li><a href="os/core_os/API.html#c.os_cputime_timer_stop">os_cputime_timer_stop (C function)</a>
 </li>
       <li><a href="os/core_os/API.html#c.os_cputime_usecs_to_ticks">os_cputime_usecs_to_ticks (C function)</a>
+</li>
+      <li><a href="os/core_os/API.html#c.os_get_uptime_usec">os_get_uptime_usec (C function)</a>
+</li>
+      <li><a href="os/core_os/API.html#c.os_gettimeofday">os_gettimeofday (C function)</a>
 </li>
       <li><a href="os/core_os/API.html#c.os_info_init">os_info_init (C function)</a>
 </li>
       <li><a href="os/core_os/API.html#c.os_init">os_init (C function)</a>
 </li>
-  </ul></td>
-  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="os/core_os/API.html#c.os_init_idle_task">os_init_idle_task (C function)</a>
 </li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="os/core_os/API.html#c.os_sched">os_sched (C function)</a>
 </li>
       <li><a href="os/core_os/API.html#c.os_sched_ctx_sw_hook">os_sched_ctx_sw_hook (C function)</a>
@@ -346,10 +350,20 @@ <h2 id="O">O</h2>
       <li><a href="os/core_os/API.html#c.os_sched_wakeup">os_sched_wakeup (C function)</a>
 </li>
       <li><a href="os/core_os/API.html#c.os_sched_wakeup_ticks">os_sched_wakeup_ticks (C function)</a>
+</li>
+      <li><a href="os/core_os/API.html#c.os_settimeofday">os_settimeofday (C function)</a>
 </li>
       <li><a href="os/core_os/API.html#c.os_start">os_start (C function)</a>
 </li>
       <li><a href="os/core_os/API.html#c.os_started">os_started (C function)</a>
+</li>
+      <li><a href="os/core_os/API.html#c.os_time_advance">os_time_advance (C function)</a>
+</li>
+      <li><a href="os/core_os/API.html#c.os_time_delay">os_time_delay (C function)</a>
+</li>
+      <li><a href="os/core_os/API.html#c.os_time_get">os_time_get (C function)</a>
+</li>
+      <li><a href="os/core_os/API.html#c.os_time_ms_to_ticks">os_time_ms_to_ticks (C function)</a>
 </li>
   </ul></td>
 </tr></table>
diff --git a/develop/misc/faq.html b/develop/misc/faq.html
index 53674a4744..a5afb2010a 100644
--- a/develop/misc/faq.html
+++ b/develop/misc/faq.html
@@ -264,7 +264,7 @@ <h1>FAQ<a class="headerlink" href="#faq" title="Permalink to this headline">?</
 <div class="section" id="mynewt-software-questions">
 <h2>Mynewt software questions:<a class="headerlink" href="#mynewt-software-questions" title="Permalink to this headline">?</a></h2>
 <ul class="simple">
-<li><span class="xref std std-doc">How do I reduce the code size for my Mynewt image?</span></li>
+<li><a class="reference internal" href="../tutorials/codesize.html"><span class="doc">How do I reduce the code size for my Mynewt image?</span></a></li>
 </ul>
 </div>
 <div class="section" id="administrative-questions">
diff --git a/develop/objects.inv b/develop/objects.inv
index a161aa9533..861e21125e 100644
Binary files a/develop/objects.inv and b/develop/objects.inv differ
diff --git a/develop/os/core_os/API.html b/develop/os/core_os/API.html
index bef3e7d89c..0b2c59c430 100644
--- a/develop/os/core_os/API.html
+++ b/develop/os/core_os/API.html
@@ -43,7 +43,7 @@
       <link rel="top" title="Apache Mynewt 1.3.0 documentation" href="../../index.html"/>
           <link rel="up" title="Mynewt Core OS" href="mynewt_os.html"/>
           <link rel="next" title="Porting Mynewt OS" href="porting/port_os.html"/>
-          <link rel="prev" title="CPU Time" href="cputime/os_cputime.html"/> 
+          <link rel="prev" title="OS Time" href="time/os_time.html"/> 
 
     
     <script src="../../_static/js/modernizr.min.js"></script>
@@ -227,6 +227,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 <li class="toctree-l2 current"><a class="reference internal" href="mynewt_os.html">OS Core</a><ul class="current">
 <li class="toctree-l3"><a class="reference internal" href="context_switch/context_switch.html">Scheduler</a></li>
 <li class="toctree-l3"><a class="reference internal" href="cputime/os_cputime.html">CPU Time</a></li>
+<li class="toctree-l3"><a class="reference internal" href="time/os_time.html">OS Time</a></li>
 <li class="toctree-l3 current"><a class="current reference internal" href="#">API</a></li>
 </ul>
 </li>
@@ -273,6 +274,7 @@ <h1>Core OS API<a class="headerlink" href="#core-os-api" title="Permalink to thi
 <li><a class="reference internal" href="#core" id="id1">Core</a></li>
 <li><a class="reference internal" href="#scheduler" id="id2">Scheduler</a></li>
 <li><a class="reference internal" href="#cpu-time" id="id3">CPU Time</a></li>
+<li><a class="reference internal" href="#os-time" id="id4">OS Time</a></li>
 </ul>
 </div>
 <div class="section" id="core">
@@ -433,7 +435,7 @@ <h2><a class="toc-backref" href="#id2">Scheduler</a><a class="headerlink" href="
 
 <dl class="function">
 <dt id="c.os_sched_sleep">
-<span class="target" id="group___o_s_sched_1ga741fd71239f7f50ad7347f1e2fbea26d"></span>int <code class="descname">os_sched_sleep</code><span class="sig-paren">(</span>struct  os_task <em>&nbsp;*</em>, os_time_t<em>&nbsp;nticks</em><span class="sig-paren">)</span><a class="headerlink" href="#c.os_sched_sleep" title="Permalink to this definition">?</a></dt>
+<span class="target" id="group___o_s_sched_1ga741fd71239f7f50ad7347f1e2fbea26d"></span>int <code class="descname">os_sched_sleep</code><span class="sig-paren">(</span>struct  os_task <em>&nbsp;*</em>, <a class="reference internal" href="#c.os_time_t" title="os_time_t">os_time_t</a><em>&nbsp;nticks</em><span class="sig-paren">)</span><a class="headerlink" href="#c.os_sched_sleep" title="Permalink to this definition">?</a></dt>
 <dd></dd></dl>
 
 <dl class="function">
@@ -453,7 +455,7 @@ <h2><a class="toc-backref" href="#id2">Scheduler</a><a class="headerlink" href="
 
 <dl class="function">
 <dt id="c.os_sched_wakeup_ticks">
-<span class="target" id="group___o_s_sched_1gae64bd12779fcc30e9b0894aa4245559e"></span>os_time_t <code class="descname">os_sched_wakeup_ticks</code><span class="sig-paren">(</span>os_time_t<em>&nbsp;now</em><span class="sig-paren">)</span><a class="headerlink" href="#c.os_sched_wakeup_ticks" title="Permalink to this definition">?</a></dt>
+<span class="target" id="group___o_s_sched_1gae64bd12779fcc30e9b0894aa4245559e"></span><a class="reference internal" href="#c.os_time_t" title="os_time_t">os_time_t</a> <code class="descname">os_sched_wakeup_ticks</code><span class="sig-paren">(</span><a class="reference internal" href="#c.os_time_t" title="os_time_t">os_time_t</a><em>&nbsp;now</em><span class="sig-paren">)</span><a class="headerlink" href="#c.os_sched_wakeup_ticks" title="Permalink to this definition">?</a></dt>
 <dd></dd></dl>
 
 </div>
@@ -719,6 +721,134 @@ <h2><a class="toc-backref" href="#id3">CPU Time</a><a class="headerlink" href="#
 </dd></dl>
 
 </div>
+</div>
+<div class="section" id="os-time">
+<h2><a class="toc-backref" href="#id4">OS Time</a><a class="headerlink" href="#os-time" title="Permalink to this headline">?</a></h2>
+<div class="breathe-sectiondef docutils container">
+<p class="breathe-sectiondef-title rubric">Defines</p>
+<dl class="define">
+<dt id="c.OS_TIME_MAX">
+<span class="target" id="os__time_8h_1a7d9d6efeb91296092166d7f9e1b82cc3"></span><code class="descname">OS_TIME_MAX</code><a class="headerlink" href="#c.OS_TIME_MAX" title="Permalink to this definition">?</a></dt>
+<dd></dd></dl>
+
+<dl class="define">
+<dt id="c.OS_TIMEOUT_NEVER">
+<span class="target" id="os__time_8h_1ae28c55062f853e4feb13b3c61a04099c"></span><code class="descname">OS_TIMEOUT_NEVER</code><a class="headerlink" href="#c.OS_TIMEOUT_NEVER" title="Permalink to this definition">?</a></dt>
+<dd></dd></dl>
+
+<dl class="define">
+<dt id="c.OS_TIME_TICK_LT">
+<span class="target" id="os__time_8h_1a9ea6181f50d4452091125926891dd6c7"></span><code class="descname">OS_TIME_TICK_LT</code><span class="sig-paren">(</span>__t1, __t2<span class="sig-paren">)</span><a class="headerlink" href="#c.OS_TIME_TICK_LT" title="Permalink to this definition">?</a></dt>
+<dd></dd></dl>
+
+<dl class="define">
+<dt id="c.OS_TIME_TICK_GT">
+<span class="target" id="os__time_8h_1acd74602e3bed14014f4e1854aff8bf92"></span><code class="descname">OS_TIME_TICK_GT</code><span class="sig-paren">(</span>__t1, __t2<span class="sig-paren">)</span><a class="headerlink" href="#c.OS_TIME_TICK_GT" title="Permalink to this definition">?</a></dt>
+<dd></dd></dl>
+
+<dl class="define">
+<dt id="c.OS_TIME_TICK_GEQ">
+<span class="target" id="os__time_8h_1a3b96d8bc74b2771519ea74c3cc775b58"></span><code class="descname">OS_TIME_TICK_GEQ</code><span class="sig-paren">(</span>__t1, __t2<span class="sig-paren">)</span><a class="headerlink" href="#c.OS_TIME_TICK_GEQ" title="Permalink to this definition">?</a></dt>
+<dd></dd></dl>
+
+<dl class="define">
+<dt id="c.os_timeradd">
+<span class="target" id="os__time_8h_1a1e206e1b6cad723bb4bde169cf4f8423"></span><code class="descname">os_timeradd</code><span class="sig-paren">(</span>tvp, uvp, vvp<span class="sig-paren">)</span><a class="headerlink" href="#c.os_timeradd" title="Permalink to this definition">?</a></dt>
+<dd></dd></dl>
+
+<dl class="define">
+<dt id="c.os_timersub">
+<span class="target" id="os__time_8h_1a9b5b5bf81fac37a92de28d93ec6d0935"></span><code class="descname">os_timersub</code><span class="sig-paren">(</span>tvp, uvp, vvp<span class="sig-paren">)</span><a class="headerlink" href="#c.os_timersub" title="Permalink to this definition">?</a></dt>
+<dd></dd></dl>
+
+</div>
+<div class="breathe-sectiondef docutils container">
+<p class="breathe-sectiondef-title rubric">Typedefs</p>
+<dl class="typedef">
+<dt id="c.os_time_t">
+<span class="target" id="os__time_8h_1aa2378cafc0f8fbfb44633036348bfe64"></span><em class="property">typedef </em>uint32_t <code class="descname">os_time_t</code><a class="headerlink" href="#c.os_time_t" title="Permalink to this definition">?</a></dt>
+<dd></dd></dl>
+
+<dl class="typedef">
+<dt id="c.os_stime_t">
+<span class="target" id="os__time_8h_1a7557d3ce9091f57daa64e5d3187067f4"></span><em class="property">typedef </em>int32_t <code class="descname">os_stime_t</code><a class="headerlink" href="#c.os_stime_t" title="Permalink to this definition">?</a></dt>
+<dd></dd></dl>
+
+</div>
+<div class="breathe-sectiondef docutils container">
+<p class="breathe-sectiondef-title rubric">Functions</p>
+<dl class="function">
+<dt id="c.os_time_get">
+<span class="target" id="os__time_8h_1ac20647237280640f96f61558fb7f0762"></span><a class="reference internal" href="#c.os_time_t" title="os_time_t">os_time_t</a> <code class="descname">os_time_get</code><span class="sig-paren">(</span>void<span class="sig-paren">)</span><a class="headerlink" href="#c.os_time_get" title="Permalink to this definition">?</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="c.os_time_advance">
+<span class="target" id="os__time_8h_1a1804fd98423ee3fb364cd7394de12c58"></span>void <code class="descname">os_time_advance</code><span class="sig-paren">(</span>int<em>&nbsp;ticks</em><span class="sig-paren">)</span><a class="headerlink" href="#c.os_time_advance" title="Permalink to this definition">?</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="c.os_time_delay">
+<span class="target" id="os__time_8h_1a7213d633b86da8e00d13061d12a1f075"></span>void <code class="descname">os_time_delay</code><span class="sig-paren">(</span>int32_t<em>&nbsp;osticks</em><span class="sig-paren">)</span><a class="headerlink" href="#c.os_time_delay" title="Permalink to this definition">?</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="c.os_settimeofday">
+<span class="target" id="os__time_8h_1a51fe1688dd54af6c0f8f564f4cad2f0e"></span>int <code class="descname">os_settimeofday</code><span class="sig-paren">(</span>struct  <a class="reference internal" href="#c.os_timeval" title="os_timeval">os_timeval</a>  *<em>&nbsp;utctime</em>, struct  <a class="reference internal" href="#c.os_timezone" title="os_timezone">os_timezone</a>  *<em>&nbsp;tz</em><span class="sig-paren">)</span><a class="headerlink" href="#c.os_settimeofday" title="Permalink to this definition">?</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="c.os_gettimeofday">
+<span class="target" id="os__time_8h_1ab552d38ffef88c59f99d40e6c960f10b"></span>int <code class="descname">os_gettimeofday</code><span class="sig-paren">(</span>struct  <a class="reference internal" href="#c.os_timeval" title="os_timeval">os_timeval</a>  *<em>&nbsp;utctime</em>, struct  <a class="reference internal" href="#c.os_timezone" title="os_timezone">os_timezone</a>  *<em>&nbsp;tz</em><span class="sig-paren">)</span><a class="headerlink" href="#c.os_gettimeofday" title="Permalink to this definition">?</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="c.os_get_uptime_usec">
+<span class="target" id="os__time_8h_1a68328fcd56f96d4af71ad36d6b90abe2"></span>int64_t <code class="descname">os_get_uptime_usec</code><span class="sig-paren">(</span>void<span class="sig-paren">)</span><a class="headerlink" href="#c.os_get_uptime_usec" title="Permalink to this definition">?</a></dt>
+<dd></dd></dl>
+
+<dl class="function">
+<dt id="c.os_time_ms_to_ticks">
+<span class="target" id="os__time_8h_1ae5d9e53dfa7e8fd721766271ea003ac7"></span>int <code class="descname">os_time_ms_to_ticks</code><span class="sig-paren">(</span>uint32_t<em>&nbsp;ms</em>, uint32_t *<em>&nbsp;out_ticks</em><span class="sig-paren">)</span><a class="headerlink" href="#c.os_time_ms_to_ticks" title="Permalink to this definition">?</a></dt>
+<dd></dd></dl>
+
+</div>
+<dl class="struct">
+<dt id="c.os_timeval">
+<span class="target" id="structos__timeval"></span><em class="property">struct </em><code class="descname">os_timeval</code><a class="headerlink" href="#c.os_timeval" title="Permalink to this definition">?</a></dt>
+<dd><em>#include &lt;os_time.h&gt;</em><div class="breathe-sectiondef docutils container">
+<p class="breathe-sectiondef-title rubric">Public Members</p>
+<dl class="variable">
+<dt id="c.os_timeval::tv_sec">
+<span class="target" id="structos__timeval_1a6bbdf1d5b61062acecc5dcc2661a3f44"></span>int64_t <code class="descname">tv_sec</code><a class="headerlink" href="#c.os_timeval::tv_sec" title="Permalink to this definition">?</a></dt>
+<dd></dd></dl>
+
+<dl class="variable">
+<dt id="c.os_timeval::tv_usec">
+<span class="target" id="structos__timeval_1a868811e9bc05070dca9a7fa4db7ec515"></span>int32_t <code class="descname">tv_usec</code><a class="headerlink" href="#c.os_timeval::tv_usec" title="Permalink to this definition">?</a></dt>
+<dd></dd></dl>
+
+</div>
+</dd></dl>
+
+<dl class="struct">
+<dt id="c.os_timezone">
+<span class="target" id="structos__timezone"></span><em class="property">struct </em><code class="descname">os_timezone</code><a class="headerlink" href="#c.os_timezone" title="Permalink to this definition">?</a></dt>
+<dd><em>#include &lt;os_time.h&gt;</em><div class="breathe-sectiondef docutils container">
+<p class="breathe-sectiondef-title rubric">Public Members</p>
+<dl class="variable">
+<dt id="c.os_timezone::tz_minuteswest">
+<span class="target" id="structos__timezone_1aa49a54e62d0e87482130d87c5eab0022"></span>int16_t <code class="descname">tz_minuteswest</code><a class="headerlink" href="#c.os_timezone::tz_minuteswest" title="Permalink to this definition">?</a></dt>
+<dd></dd></dl>
+
+<dl class="variable">
+<dt id="c.os_timezone::tz_dsttime">
+<span class="target" id="structos__timezone_1a2644f6e4558f08da4d94b4dc27d6d5e5"></span>int16_t <code class="descname">tz_dsttime</code><a class="headerlink" href="#c.os_timezone::tz_dsttime" title="Permalink to this definition">?</a></dt>
+<dd></dd></dl>
+
+</div>
+</dd></dl>
+
 </div>
 </div>
 
@@ -731,7 +861,7 @@ <h2><a class="toc-backref" href="#id3">CPU Time</a><a class="headerlink" href="#
         <a href="porting/port_os.html" class="btn btn-neutral float-right" title="Porting Mynewt OS" accesskey="n">Next: Porting Mynewt OS <span class="fa fa-arrow-circle-right"></span></a>
       
       
-        <a href="cputime/os_cputime.html" class="btn btn-neutral" title="CPU Time" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous: CPU Time</a>
+        <a href="time/os_time.html" class="btn btn-neutral" title="OS Time" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous: OS Time</a>
       
     </div>
 
diff --git a/develop/os/core_os/context_switch/context_switch.html b/develop/os/core_os/context_switch/context_switch.html
index 896c25c251..2286bc6750 100644
--- a/develop/os/core_os/context_switch/context_switch.html
+++ b/develop/os/core_os/context_switch/context_switch.html
@@ -227,6 +227,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 <li class="toctree-l2 current"><a class="reference internal" href="../mynewt_os.html">OS Core</a><ul class="current">
 <li class="toctree-l3 current"><a class="current reference internal" href="#">Scheduler</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../cputime/os_cputime.html">CPU Time</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../time/os_time.html">OS Time</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../API.html">API</a></li>
 </ul>
 </li>
diff --git a/develop/os/core_os/cputime/os_cputime.html b/develop/os/core_os/cputime/os_cputime.html
index e74653d7b2..c8899fb350 100644
--- a/develop/os/core_os/cputime/os_cputime.html
+++ b/develop/os/core_os/cputime/os_cputime.html
@@ -42,7 +42,7 @@
           <link rel="search" title="Search" href="../../../search.html"/>
       <link rel="top" title="Apache Mynewt 1.3.0 documentation" href="../../../index.html"/>
           <link rel="up" title="Mynewt Core OS" href="../mynewt_os.html"/>
-          <link rel="next" title="Core OS API" href="../API.html"/>
+          <link rel="next" title="OS Time" href="../time/os_time.html"/>
           <link rel="prev" title="Scheduler" href="../context_switch/context_switch.html"/> 
 
     
@@ -227,6 +227,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 <li class="toctree-l2 current"><a class="reference internal" href="../mynewt_os.html">OS Core</a><ul class="current">
 <li class="toctree-l3"><a class="reference internal" href="../context_switch/context_switch.html">Scheduler</a></li>
 <li class="toctree-l3 current"><a class="current reference internal" href="#">CPU Time</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../time/os_time.html">OS Time</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../API.html">API</a></li>
 </ul>
 </li>
@@ -318,7 +319,7 @@ <h2>API<a class="headerlink" href="#api" title="Permalink to this headline">?</
                   
     <div class="rst-footer-buttons row" role="navigation" aria-label="footer navigation">
       
-        <a href="../API.html" class="btn btn-neutral float-right" title="Core OS API" accesskey="n">Next: Core OS API <span class="fa fa-arrow-circle-right"></span></a>
+        <a href="../time/os_time.html" class="btn btn-neutral float-right" title="OS Time" accesskey="n">Next: OS Time <span class="fa fa-arrow-circle-right"></span></a>
       
       
         <a href="../context_switch/context_switch.html" class="btn btn-neutral" title="Scheduler" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous: Scheduler</a>
diff --git a/develop/os/core_os/mynewt_os.html b/develop/os/core_os/mynewt_os.html
index 3983dd7a9f..ab78746ca1 100644
--- a/develop/os/core_os/mynewt_os.html
+++ b/develop/os/core_os/mynewt_os.html
@@ -225,6 +225,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 <li class="toctree-l2 current"><a class="current reference internal" href="#">OS Core</a><ul>
 <li class="toctree-l3"><a class="reference internal" href="context_switch/context_switch.html">Scheduler</a></li>
 <li class="toctree-l3"><a class="reference internal" href="cputime/os_cputime.html">CPU Time</a></li>
+<li class="toctree-l3"><a class="reference internal" href="time/os_time.html">OS Time</a></li>
 <li class="toctree-l3"><a class="reference internal" href="API.html">API</a></li>
 </ul>
 </li>
@@ -304,7 +305,7 @@ <h2>Why use an OS?<a class="headerlink" href="#why-use-an-os" title="Permalink t
 <h2>Core OS Features<a class="headerlink" href="#core-os-features" title="Permalink to this headline">?</a></h2>
 <ul class="simple">
 <li><a class="reference internal" href="context_switch/context_switch.html"><span class="doc">Scheduler/context switching</span></a></li>
-<li><span class="xref std std-doc">Time</span></li>
+<li><a class="reference internal" href="time/os_time.html"><span class="doc">Time</span></a></li>
 <li><span class="xref std std-doc">Tasks</span></li>
 <li><span class="xref std std-doc">Event queues/callouts</span></li>
 <li><span class="xref std std-doc">Semaphores</span></li>
diff --git a/develop/os/core_os/time/os_time.html b/develop/os/core_os/time/os_time.html
new file mode 100644
index 0000000000..5e2cff4fb1
--- /dev/null
+++ b/develop/os/core_os/time/os_time.html
@@ -0,0 +1,472 @@
+
+
+<!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">
+
+    
+
+    
+    <title>OS Time &mdash; Apache Mynewt 1.3.0 documentation</title>
+    
+
+    
+    
+      <link rel="shortcut icon" href="../../../_static/mynewt-logo-only-newt32x32.png"/>
+    
+
+    
+
+    <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
+
+    
+      <link rel="stylesheet" href="../../../_static/css/sphinx_theme.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../../../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../../../_static/css/v2.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../../../_static/css/custom.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../../../_static/css/restructuredtext.css" type="text/css" />
+    
+
+    
+
+    <link rel="stylesheet" href="../../../_static/css/overrides.css" type="text/css" />
+          <link rel="index" title="Index"
+                href="../../../genindex.html"/>
+          <link rel="search" title="Search" href="../../../search.html"/>
+      <link rel="top" title="Apache Mynewt 1.3.0 documentation" href="../../../index.html"/>
+          <link rel="up" title="Mynewt Core OS" href="../mynewt_os.html"/>
+          <link rel="next" title="Core OS API" href="../API.html"/>
+          <link rel="prev" title="CPU Time" href="../cputime/os_cputime.html"/> 
+
+    
+    <script src="../../../_static/js/modernizr.min.js"></script>
+
+    
+    <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="not-front page-documentation" role="document" >
+    <div id="wrapper">
+      <div class="container">
+    <div id="banner" class="row v2-main-banner">
+        <a class="logo-cell" href="/">
+            <img class="logo" src="../../../_static/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.3.0</a> released (December 13, 2017)
+            </div>
+        </div>
+    </div>
+</div>
+      
+<header>
+    <nav id="navbar" class="navbar navbar-inverse" 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>
+                        <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
+                    </li>
+                    <li class="important">
+                        <a href="/get_started/quick_start.html">Quick Start</a>
+                    </li>
+                    <li>
+                        <a href="/about/">About</a>
+                    </li>
+                    <li>
+                        <a href="/talks/">Talks</a>
+                    </li>
+                    <li class="active">
+                        <a href="/documentation/">Documentation</a>
+                    </li>
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    <li>
+                        <a href="/community/">Community</a>
+                    </li>
+                    <li>
+                        <a href="/events/">Events</a>
+                    </li>
+                </ul>
+
+                <!-- Search, Navigation and Repo links -->
+                <ul class="nav navbar-nav navbar-right">
+                    
+                </ul>
+            </div>
+        </div>
+    </nav>
+</header>
+      <!-- STARTS MAIN CONTENT -->
+      <div id="main-content">
+        
+
+
+
+
+
+<div id="breadcrumb">
+  <div class="container">
+    <a href="/documentation/">Docs</a> /
+    
+      <a href="../../os_user_guide.html">OS User Guide</a> /
+    
+      <a href="../mynewt_os.html">Mynewt Core OS</a> /
+    
+    OS Time
+    
+  <div class="sourcelink">
+    <a href="https://github.com/apache/mynewt-core/edit/master/docs/os/core_os/time/os_time.rst" class="icon icon-github"
+           rel="nofollow"> Edit on GitHub</a>
+</div>
+  </div>
+</div>
+        <!-- STARTS CONTAINER -->
+        <div class="container">
+          <!-- STARTS .content -->
+          <div id="content" class="row">
+            
+            <!-- STARTS .container-sidebar -->
+<div class="container-sidebar col-xs-12 col-sm-3">
+  <div id="docSidebar" class="sticky-container">
+    <div role="search" class="sphinx-search">
+  <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
+    <input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+    
+<!-- Note: only works when deployed -->
+<select class="form-control" onchange="if (this.value) window.location.href=this.value">
+    <option
+      value="/develop"
+      selected
+      >
+      Version: develop (latest - mynewt-documentation)
+    </option>
+    <option
+      value="/latest/os/introduction"
+      >
+      Version: master (latest - mynewt-site)
+    </option>
+    <option
+      value="/v1_2_0/os/introduction"
+      >
+      Version: 1.2.0
+    </option>
+    <option
+      value="/v1_1_0/os/introduction">
+      Version: 1.1.0
+    </option>
+    <option
+      value="/v1_0_0/os/introduction">
+      Version: 1.0.0
+    </option>
+    <option
+      value="/v0_9_0/os/introduction">
+      Version: 0_9_0
+    </option>
+</select>
+    <div class="region region-sidebar">
+      <div class="docs-menu">
+      
+        
+        
+            <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../../index.html">Introduction</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../get_started/index.html">Setup &amp; Get Started</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../concepts.html">Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../tutorials/tutorials.html">Tutorials</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../os_user_guide.html">OS User Guide</a><ul class="current">
+<li class="toctree-l2 current"><a class="reference internal" href="../mynewt_os.html">OS Core</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="../context_switch/context_switch.html">Scheduler</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../cputime/os_cputime.html">CPU Time</a></li>
+<li class="toctree-l3 current"><a class="current reference internal" href="#">OS Time</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../API.html">API</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../porting/port_os.html">Porting Mynewt OS</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../modules/console/console.html">Console</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../modules/sysinitconfig/sysinitconfig.html">System Configuration and Initialization</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../network/ble/ble_intro.html">BLE User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../newt/index.html">Newt Tool Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../newtmgr/index.html">Newt Manager Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../misc/index.html">Appendix</a></li>
+</ul>
+
+        
+      
+      </div>
+    </div>
+  </div>
+  <!-- ENDS STICKY CONTAINER -->
+</div>
+<!-- ENDS .container-sidebar -->
+
+            <div class="col-xs-12 col-sm-9">
+              <div class="alert alert-info" role="alert">
+  <p>
+    This is the development version of Apache Mynewt documentation. As such it may not be as complete as the latest
+    stable version of the documentation found <a href="/latest/os/introduction/">here</a>.
+  </p>
+  <p>
+    To improve this documentation please visit <a href="https://github.com/apache/mynewt-documentation">https://github.com/apache/mynewt-documentation</a>.
+  </p>
+</div>
+              
+              <div class="">
+                <div class="rst-content">
+                  <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+                   <div itemprop="articleBody">
+                    
+  <div class="section" id="os-time">
+<h1>OS Time<a class="headerlink" href="#os-time" title="Permalink to this headline">?</a></h1>
+<p>The system time for the Mynewt OS.</p>
+<div class="contents local topic" id="contents">
+<ul class="simple">
+<li><a class="reference internal" href="#description" id="id1">Description</a></li>
+<li><a class="reference internal" href="#data-structures" id="id2">Data Structures</a></li>
+<li><a class="reference internal" href="#functions" id="id3">Functions</a></li>
+<li><a class="reference internal" href="#macros" id="id4">Macros</a></li>
+<li><a class="reference internal" href="#special-notes" id="id5">Special Notes</a></li>
+</ul>
+</div>
+<div class="section" id="description">
+<h2><a class="toc-backref" href="#id1">Description</a><a class="headerlink" href="#description" title="Permalink to this headline">?</a></h2>
+<p>The Mynewt OS contains an incrementing time that drives the OS scheduler
+and time delays. The time is a fixed size (e.g. 32 bits) and will
+eventually wrap back to zero. The time to wrap from zero back to zero is
+called the <strong>OS time epoch</strong>.</p>
+<p>The frequency of the OS time tick is specified in the
+architecture-specific OS code <code class="docutils literal notranslate"><span class="pre">os_arch.h</span></code> and is named
+<code class="docutils literal notranslate"><span class="pre">OS_TICKS_PER_SEC</span></code>.</p>
+<p>The Mynewt OS also provides APIs for setting and retrieving the
+wallclock time (also known as local time or time-of-day in other
+operating systems).</p>
+</div>
+<div class="section" id="data-structures">
+<h2><a class="toc-backref" href="#id2">Data Structures</a><a class="headerlink" href="#data-structures" title="Permalink to this headline">?</a></h2>
+<p>Time is stored in Mynewt as an <a class="reference internal" href="../API.html#c.os_time_t" title="os_time_t"><code class="xref c c-type docutils literal notranslate"><span class="pre">os_time_t</span></code></a> value.</p>
+<p>Wallclock time is represented using the <a class="reference internal" href="../API.html#c.os_timeval" title="os_timeval"><code class="xref c c-data docutils literal notranslate"><span class="pre">struct</span> <span class="pre">os_timeval</span></code></a> and
+<a class="reference internal" href="../API.html#c.os_timezone" title="os_timezone"><code class="xref c c-data docutils literal notranslate"><span class="pre">struct</span> <span class="pre">os_timezone</span></code></a> tuple.</p>
+<p><a class="reference internal" href="../API.html#c.os_timeval" title="os_timeval"><code class="xref c c-data docutils literal notranslate"><span class="pre">struct</span> <span class="pre">os_timeval</span></code></a> represents the number of seconds elapsed since
+00:00:00 Jan 1, 1970 UTC.</p>
+<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="n">os_timeval</span> <span class="p">{</span>
+    <span class="kt">int64_t</span> <span class="n">tv_sec</span><span class="p">;</span>  <span class="cm">/* seconds since Jan 1 1970 UTC */</span>
+    <span class="kt">int32_t</span> <span class="n">tv_usec</span><span class="p">;</span> <span class="cm">/* fractional seconds */</span>
+<span class="p">};</span>
+
+<span class="k">struct</span> <span class="n">os_timeval</span> <span class="n">tv</span> <span class="o">=</span> <span class="p">{</span> <span class="mi">1457400000</span><span class="p">,</span> <span class="mi">0</span> <span class="p">};</span>  <span class="cm">/* 01:20:00 Mar 8 2016 UTC */</span>
+</pre></div>
+</div>
+<p><a class="reference internal" href="../API.html#c.os_timezone" title="os_timezone"><code class="xref c c-data docutils literal notranslate"><span class="pre">struct</span> <span class="pre">os_timezone</span></code></a> is used to specify the offset of local time from
+UTC and whether daylight savings is in effect. Note that <code class="docutils literal notranslate"><span class="pre">tz_minuteswest</span></code> is a positive number
+if the local time is <em>behind</em> UTC and a negative number if the local time is <em>ahead</em> of UTC.</p>
+<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="n">os_timezone</span> <span class="p">{</span>
+    <span class="kt">int16_t</span> <span class="n">tz_minuteswest</span><span class="p">;</span>
+    <span class="kt">int16_t</span> <span class="n">tz_dsttime</span><span class="p">;</span>
+<span class="p">};</span>
+
+<span class="cm">/* Pacific Standard Time is 08:00 hours west of UTC */</span>
+<span class="k">struct</span> <span class="n">os_timezone</span> <span class="n">PST</span> <span class="o">=</span> <span class="p">{</span> <span class="mi">480</span><span class="p">,</span> <span class="mi">0</span> <span class="p">};</span>
+<span class="k">struct</span> <span class="n">os_timezone</span> <span class="n">PDT</span> <span class="o">=</span> <span class="p">{</span> <span class="mi">480</span><span class="p">,</span> <span class="mi">1</span> <span class="p">};</span>
+
+<span class="cm">/* Indian Standard Time is 05:30 hours east of UTC */</span>
+<span class="k">struct</span> <span class="n">os_timezone</span> <span class="n">IST</span> <span class="o">=</span> <span class="p">{</span> <span class="o">-</span><span class="mi">330</span><span class="p">,</span> <span class="mi">0</span> <span class="p">};</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="functions">
+<h2><a class="toc-backref" href="#id3">Functions</a><a class="headerlink" href="#functions" title="Permalink to this headline">?</a></h2>
+<table border="1" class="docutils">
+<colgroup>
+<col width="29%" />
+<col width="71%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Function</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><a class="reference internal" href="../API.html#c.os_time_advance" title="os_time_advance"><code class="xref c c-func docutils literal notranslate"><span class="pre">os_time_advance()</span></code></a></td>
+<td>Increments the OS time tick for the system.</td>
+</tr>
+<tr class="row-odd"><td><a class="reference internal" href="../API.html#c.os_time_delay" title="os_time_delay"><code class="xref c c-func docutils literal notranslate"><span class="pre">os_time_delay()</span></code></a></td>
+<td>Put the current task to sleep for the given number of ticks.</td>
+</tr>
+<tr class="row-even"><td><a class="reference internal" href="../API.html#c.os_time_get" title="os_time_get"><code class="xref c c-func docutils literal notranslate"><span class="pre">os_time_get()</span></code></a></td>
+<td>Get the current value of OS time.</td>
+</tr>
+<tr class="row-odd"><td><a class="reference internal" href="../API.html#c.os_time_ms_to_ticks" title="os_time_ms_to_ticks"><code class="xref c c-func docutils literal notranslate"><span class="pre">os_time_ms_to_ticks()</span></code></a></td>
+<td>Converts milliseconds to os ticks.</td>
+</tr>
+<tr class="row-even"><td><a class="reference internal" href="../API.html#c.os_get_uptime_usec" title="os_get_uptime_usec"><code class="xref c c-func docutils literal notranslate"><span class="pre">os_get_uptime_usec()</span></code></a></td>
+<td>Gets the time duration since boot.</td>
+</tr>
+<tr class="row-odd"><td><a class="reference internal" href="../API.html#c.os_gettimeofday" title="os_gettimeofday"><code class="xref c c-func docutils literal notranslate"><span class="pre">os_gettimeofday()</span></code></a></td>
+<td>Populate the given timeval and timezone structs with current time data.</td>
+</tr>
+<tr class="row-even"><td><a class="reference internal" href="../API.html#c.os_settimeofday" title="os_settimeofday"><code class="xref c c-func docutils literal notranslate"><span class="pre">os_settimeofday()</span></code></a></td>
+<td>Set the current time of day to the given time structs.</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="section" id="macros">
+<h2><a class="toc-backref" href="#id4">Macros</a><a class="headerlink" href="#macros" title="Permalink to this headline">?</a></h2>
+<p>Several macros help with the evalution of times with respect to each
+other.</p>
+<ul class="simple">
+<li><a class="reference internal" href="../API.html#c.OS_TIME_TICK_LT" title="OS_TIME_TICK_LT"><code class="xref c c-macro docutils literal notranslate"><span class="pre">OS_TIME_TICK_LT</span></code></a> ? evaluates to true if t1 is before t2 in
+time.</li>
+<li><a class="reference internal" href="../API.html#c.OS_TIME_TICK_GT" title="OS_TIME_TICK_GT"><code class="xref c c-macro docutils literal notranslate"><span class="pre">OS_TIME_TICK_GT</span></code></a> ? evaluates to true if t1 is after t2 in
+time</li>
+<li><a class="reference internal" href="../API.html#c.OS_TIME_TICK_GEQ" title="OS_TIME_TICK_GEQ"><code class="xref c c-macro docutils literal notranslate"><span class="pre">OS_TIME_TICK_GEQ</span></code></a> ? evaluates to true if t1 is on or after
+t2 in time.</li>
+</ul>
+<p>NOTE: For all of these macros the calculations are done modulo
+?os_time_t?.</p>
+<p>Ensure that comparison of OS time always uses the macros above (to
+compensate for the possible wrap of OS time).</p>
+<p>The following macros help adding or subtracting time when represented as
+<a class="reference internal" href="../API.html#c.os_timeval" title="os_timeval"><code class="xref c c-data docutils literal notranslate"><span class="pre">struct</span> <span class="pre">os_timeval</span></code></a>. All parameters to the following macros are
+pointers to <a class="reference internal" href="../API.html#c.os_timeval" title="os_timeval"><code class="xref c c-data docutils literal notranslate"><span class="pre">struct</span> <span class="pre">os_timeval</span></code></a>.</p>
+<ul class="simple">
+<li><a class="reference internal" href="../API.html#c.os_timeradd" title="os_timeradd"><code class="xref c c-macro docutils literal notranslate"><span class="pre">os_timeradd</span></code></a> ? Add <code class="docutils literal notranslate"><span class="pre">uvp</span></code> to <code class="docutils literal notranslate"><span class="pre">tvp</span></code> and store
+result in <code class="docutils literal notranslate"><span class="pre">vvp</span></code>.</li>
+<li><a class="reference internal" href="../API.html#c.os_timersub" title="os_timersub"><code class="xref c c-macro docutils literal notranslate"><span class="pre">os_timersub</span></code></a> ? Subtract <code class="docutils literal notranslate"><span class="pre">uvp</span></code> from <code class="docutils literal notranslate"><span class="pre">tvp</span></code> and
+store result in <code class="docutils literal notranslate"><span class="pre">vvp</span></code>.</li>
+</ul>
+</div>
+<div class="section" id="special-notes">
+<h2><a class="toc-backref" href="#id5">Special Notes</a><a class="headerlink" href="#special-notes" title="Permalink to this headline">?</a></h2>
+<p>Its important to understand how quickly the time wraps especially when
+doing time comparison using the macros above (or by any other means).</p>
+<p>For example, if a tick is 1 millisecond and <a class="reference internal" href="../API.html#c.os_time_t" title="os_time_t"><code class="xref c c-type docutils literal notranslate"><span class="pre">os_time_t</span></code></a> is 32-bits the
+OS time will wrap back to zero in about 49.7 days or stated another way,
+the OS time epoch is 49.7 days.</p>
+<p>If two times are more than 1/2 the OS time epoch apart, any time
+comparison will be incorrect. Ensure at design time that comparisons
+will not occur between times that are more than half the OS time epoch.</p>
+</div>
+</div>
+
+
+                   </div>
+                  </div>
+                  
+    <div class="rst-footer-buttons row" role="navigation" aria-label="footer navigation">
+      
+        <a href="../API.html" class="btn btn-neutral float-right" title="Core OS API" accesskey="n">Next: Core OS API <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="../cputime/os_cputime.html" class="btn btn-neutral" title="CPU Time" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous: CPU Time</a>
+      
+    </div>
+
+                </div>
+              </div>
+            </div>
+            <!-- ENDS CONTENT SECTION -->
+          </div>
+          <!-- ENDS .content -->
+        </div>
+      </div>
+      <footer>
+  <div class="container">
+    <div class="row">
+      <div class="col-xs-12">
+          
+              <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
+          
+      </div>
+      <div class="col-xs-12">
+          <div class="logos">
+              <img src="../../../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
+              <small class="footnote">
+                Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
+                registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
+              </small>
+              <a href="https://join.slack.com/mynewt/shared_invite/MTkwMTg1ODM1NTg5LTE0OTYxNzQ4NzQtZTU1YmNhYjhkMg">
+                <img src="../../../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
+              </a>
+          </div>
+      </div>
+    </div>
+  </div>
+</footer>
+    </div>
+    <!-- ENDS #wrapper -->
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../../../',
+            VERSION:'1.3.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true,
+            SOURCELINK_SUFFIX: '.txt'
+        };
+    </script>
+      <script type="text/javascript" src="../../../_static/jquery.js"></script>
+      <script type="text/javascript" src="../../../_static/underscore.js"></script>
+      <script type="text/javascript" src="../../../_static/doctools.js"></script>
+      <script type="text/javascript" src="../../../_static/js/bootstrap-3.0.3.min.js"></script>
+      <script type="text/javascript" src="../../../_static/js/affix.js"></script>
+      <script type="text/javascript" src="../../../_static/js/main.js"></script>
+
+   
+
+  </body>
+</html>
\ No newline at end of file
diff --git a/develop/searchindex.js b/develop/searchindex.js
index de5b40689a..006199d1f7 100644
--- a/develop/searchindex.js
+++ b/develop/searchindex.js
@@ -1 +1 @@
-Search.setIndex({docnames:["_static/common","concepts","get_started/docker","get_started/index","get_started/native_install/cross_tools","get_started/native_install/index","get_started/native_install/native_tools","get_started/project_create","get_started/serial_access","index","misc/faq","misc/go_env","misc/ide","misc/index","network/ble/ble_hs/ble_att","network/ble/ble_hs/ble_gap","network/ble/ble_hs/ble_gattc","network/ble/ble_hs/ble_gatts","network/ble/ble_hs/ble_hs","network/ble/ble_hs/ble_hs_id","network/ble/ble_hs/ble_hs_return_codes","network/ble/ble_intro","network/ble/ble_sec","network/ble/ble_setup/ble_addr","network/ble/ble_setup/ble_lp_clock","network/ble/ble_setup/ble_setup_intro","network/ble/ble_setup/ble_sync_cb","network/ble/btshell/btshell_GAP","network/ble/btshell/btshell_GATT","network/ble/btshell/btshell_advdata","network/ble/btshell/btshell_api","network/ble/mesh/index","network/ble/mesh/sample","newt/README","newt/command_list/newt_build","newt/command_list/n
 ewt_clean","newt/command_list/newt_complete","newt/command_list/newt_create_image","newt/command_list/newt_debug","newt/command_list/newt_help","newt/command_list/newt_info","newt/command_list/newt_install","newt/command_list/newt_load","newt/command_list/newt_mfg","newt/command_list/newt_new","newt/command_list/newt_pkg","newt/command_list/newt_resign_image","newt/command_list/newt_run","newt/command_list/newt_size","newt/command_list/newt_sync","newt/command_list/newt_target","newt/command_list/newt_test","newt/command_list/newt_upgrade","newt/command_list/newt_vals","newt/command_list/newt_version","newt/index","newt/install/index","newt/install/newt_linux","newt/install/newt_mac","newt/install/newt_windows","newt/install/prev_releases","newt/newt_operation","newt/newt_ops","newtmgr/README","newtmgr/command_list/index","newtmgr/command_list/newtmgr_config","newtmgr/command_list/newtmgr_conn","newtmgr/command_list/newtmgr_crash","newtmgr/command_list/newtmgr_datetime","newtmgr/com
 mand_list/newtmgr_echo","newtmgr/command_list/newtmgr_fs","newtmgr/command_list/newtmgr_image","newtmgr/command_list/newtmgr_logs","newtmgr/command_list/newtmgr_mpstats","newtmgr/command_list/newtmgr_reset","newtmgr/command_list/newtmgr_run","newtmgr/command_list/newtmgr_stat","newtmgr/command_list/newtmgr_taskstats","newtmgr/index","newtmgr/install/index","newtmgr/install/install_linux","newtmgr/install/install_mac","newtmgr/install/install_windows","newtmgr/install/prev_releases","os/core_os/API","os/core_os/context_switch/context_switch","os/core_os/cputime/os_cputime","os/core_os/mynewt_os","os/core_os/porting/port_bsp","os/core_os/porting/port_cpu","os/core_os/porting/port_mcu","os/core_os/porting/port_os","os/modules/console/console","os/modules/sysinitconfig/sysconfig_error","os/modules/sysinitconfig/sysinitconfig","os/os_user_guide","tutorials/ble/ble","tutorials/ble/ble_bare_bones","tutorials/ble/blehci_project","tutorials/ble/bleprph/bleprph","tutorials/ble/bleprph/bleprph
 -sections/bleprph-adv","tutorials/ble/bleprph/bleprph-sections/bleprph-app","tutorials/ble/bleprph/bleprph-sections/bleprph-chr-access","tutorials/ble/bleprph/bleprph-sections/bleprph-gap-event","tutorials/ble/bleprph/bleprph-sections/bleprph-svc-reg","tutorials/ble/eddystone","tutorials/ble/ibeacon","tutorials/blinky/arduino_zero","tutorials/blinky/blinky","tutorials/blinky/blinky_console","tutorials/blinky/blinky_primo","tutorials/blinky/blinky_stm32f4disc","tutorials/blinky/nRF52","tutorials/blinky/olimex","tutorials/blinky/rbnano2","tutorials/lora/lorawanapp","tutorials/repo/add_repos","tutorials/repo/create_repo","tutorials/repo/private_repo","tutorials/repo/upgrade_repo","tutorials/tutorials"],envversion:52,filenames:["_static/common.rst","concepts.rst","get_started/docker.rst","get_started/index.rst","get_started/native_install/cross_tools.rst","get_started/native_install/index.rst","get_started/native_install/native_tools.rst","get_started/project_create.rst","get_started/se
 rial_access.rst","index.rst","misc/faq.rst","misc/go_env.rst","misc/ide.rst","misc/index.rst","network/ble/ble_hs/ble_att.rst","network/ble/ble_hs/ble_gap.rst","network/ble/ble_hs/ble_gattc.rst","network/ble/ble_hs/ble_gatts.rst","network/ble/ble_hs/ble_hs.rst","network/ble/ble_hs/ble_hs_id.rst","network/ble/ble_hs/ble_hs_return_codes.rst","network/ble/ble_intro.rst","network/ble/ble_sec.rst","network/ble/ble_setup/ble_addr.rst","network/ble/ble_setup/ble_lp_clock.rst","network/ble/ble_setup/ble_setup_intro.rst","network/ble/ble_setup/ble_sync_cb.rst","network/ble/btshell/btshell_GAP.rst","network/ble/btshell/btshell_GATT.rst","network/ble/btshell/btshell_advdata.rst","network/ble/btshell/btshell_api.rst","network/ble/mesh/index.rst","network/ble/mesh/sample.rst","newt/README.rst","newt/command_list/newt_build.rst","newt/command_list/newt_clean.rst","newt/command_list/newt_complete.rst","newt/command_list/newt_create_image.rst","newt/command_list/newt_debug.rst","newt/command_list/n
 ewt_help.rst","newt/command_list/newt_info.rst","newt/command_list/newt_install.rst","newt/command_list/newt_load.rst","newt/command_list/newt_mfg.rst","newt/command_list/newt_new.rst","newt/command_list/newt_pkg.rst","newt/command_list/newt_resign_image.rst","newt/command_list/newt_run.rst","newt/command_list/newt_size.rst","newt/command_list/newt_sync.rst","newt/command_list/newt_target.rst","newt/command_list/newt_test.rst","newt/command_list/newt_upgrade.rst","newt/command_list/newt_vals.rst","newt/command_list/newt_version.rst","newt/index.rst","newt/install/index.rst","newt/install/newt_linux.rst","newt/install/newt_mac.rst","newt/install/newt_windows.rst","newt/install/prev_releases.rst","newt/newt_operation.rst","newt/newt_ops.rst","newtmgr/README.rst","newtmgr/command_list/index.rst","newtmgr/command_list/newtmgr_config.rst","newtmgr/command_list/newtmgr_conn.rst","newtmgr/command_list/newtmgr_crash.rst","newtmgr/command_list/newtmgr_datetime.rst","newtmgr/command_list/newt
 mgr_echo.rst","newtmgr/command_list/newtmgr_fs.rst","newtmgr/command_list/newtmgr_image.rst","newtmgr/command_list/newtmgr_logs.rst","newtmgr/command_list/newtmgr_mpstats.rst","newtmgr/command_list/newtmgr_reset.rst","newtmgr/command_list/newtmgr_run.rst","newtmgr/command_list/newtmgr_stat.rst","newtmgr/command_list/newtmgr_taskstats.rst","newtmgr/index.rst","newtmgr/install/index.rst","newtmgr/install/install_linux.rst","newtmgr/install/install_mac.rst","newtmgr/install/install_windows.rst","newtmgr/install/prev_releases.rst","os/core_os/API.rst","os/core_os/context_switch/context_switch.rst","os/core_os/cputime/os_cputime.rst","os/core_os/mynewt_os.rst","os/core_os/porting/port_bsp.rst","os/core_os/porting/port_cpu.rst","os/core_os/porting/port_mcu.rst","os/core_os/porting/port_os.rst","os/modules/console/console.rst","os/modules/sysinitconfig/sysconfig_error.rst","os/modules/sysinitconfig/sysinitconfig.rst","os/os_user_guide.rst","tutorials/ble/ble.rst","tutorials/ble/ble_bare_bo
 nes.rst","tutorials/ble/blehci_project.rst","tutorials/ble/bleprph/bleprph.rst","tutorials/ble/bleprph/bleprph-sections/bleprph-adv.rst","tutorials/ble/bleprph/bleprph-sections/bleprph-app.rst","tutorials/ble/bleprph/bleprph-sections/bleprph-chr-access.rst","tutorials/ble/bleprph/bleprph-sections/bleprph-gap-event.rst","tutorials/ble/bleprph/bleprph-sections/bleprph-svc-reg.rst","tutorials/ble/eddystone.rst","tutorials/ble/ibeacon.rst","tutorials/blinky/arduino_zero.rst","tutorials/blinky/blinky.rst","tutorials/blinky/blinky_console.rst","tutorials/blinky/blinky_primo.rst","tutorials/blinky/blinky_stm32f4disc.rst","tutorials/blinky/nRF52.rst","tutorials/blinky/olimex.rst","tutorials/blinky/rbnano2.rst","tutorials/lora/lorawanapp.rst","tutorials/repo/add_repos.rst","tutorials/repo/create_repo.rst","tutorials/repo/private_repo.rst","tutorials/repo/upgrade_repo.rst","tutorials/tutorials.rst"],objects:{"":{CPUTIME_GEQ:[84,0,1,"c.CPUTIME_GEQ"],CPUTIME_GT:[84,0,1,"c.CPUTIME_GT"],CPUTIME_L
 EQ:[84,0,1,"c.CPUTIME_LEQ"],CPUTIME_LT:[84,0,1,"c.CPUTIME_LT"],CTASSERT:[84,0,1,"c.CTASSERT"],OS_ALIGN:[84,0,1,"c.OS_ALIGN"],OS_IDLE_PRIO:[84,0,1,"c.OS_IDLE_PRIO"],OS_MAIN_STACK_SIZE:[84,0,1,"c.OS_MAIN_STACK_SIZE"],OS_MAIN_TASK_PRIO:[84,0,1,"c.OS_MAIN_TASK_PRIO"],OS_WAIT_FOREVER:[84,0,1,"c.OS_WAIT_FOREVER"],TAILQ_HEAD:[84,1,1,"c.TAILQ_HEAD"],completion_cb:[92,2,1,"c.completion_cb"],console_append_char_cb:[92,2,1,"c.console_append_char_cb"],console_blocking_mode:[92,1,1,"c.console_blocking_mode"],console_echo:[92,1,1,"c.console_echo"],console_handle_char:[92,1,1,"c.console_handle_char"],console_init:[92,1,1,"c.console_init"],console_input:[92,3,1,"c.console_input"],console_is_init:[92,1,1,"c.console_is_init"],console_is_midline:[92,4,1,"c.console_is_midline"],console_non_blocking_mode:[92,1,1,"c.console_non_blocking_mode"],console_out:[92,1,1,"c.console_out"],console_printf:[92,1,1,"c.console_printf"],console_read:[92,1,1,"c.console_read"],console_rx_cb:[92,2,1,"c.console_rx_cb"],con
 sole_set_completion_cb:[92,1,1,"c.console_set_completion_cb"],console_set_queues:[92,1,1,"c.console_set_queues"],console_write:[92,1,1,"c.console_write"],g_current_task:[84,4,1,"c.g_current_task"],g_os_run_list:[84,4,1,"c.g_os_run_list"],g_os_sleep_list:[84,4,1,"c.g_os_sleep_list"],g_os_started:[84,4,1,"c.g_os_started"],os_cputime_delay_nsecs:[84,1,1,"c.os_cputime_delay_nsecs"],os_cputime_delay_ticks:[84,1,1,"c.os_cputime_delay_ticks"],os_cputime_delay_usecs:[84,1,1,"c.os_cputime_delay_usecs"],os_cputime_get32:[84,1,1,"c.os_cputime_get32"],os_cputime_init:[84,1,1,"c.os_cputime_init"],os_cputime_nsecs_to_ticks:[84,1,1,"c.os_cputime_nsecs_to_ticks"],os_cputime_ticks_to_nsecs:[84,1,1,"c.os_cputime_ticks_to_nsecs"],os_cputime_ticks_to_usecs:[84,1,1,"c.os_cputime_ticks_to_usecs"],os_cputime_timer_init:[84,1,1,"c.os_cputime_timer_init"],os_cputime_timer_relative:[84,1,1,"c.os_cputime_timer_relative"],os_cputime_timer_start:[84,1,1,"c.os_cputime_timer_start"],os_cputime_timer_stop:[84,1,1,
 "c.os_cputime_timer_stop"],os_cputime_usecs_to_ticks:[84,1,1,"c.os_cputime_usecs_to_ticks"],os_get_return_addr:[84,0,1,"c.os_get_return_addr"],os_info_init:[84,1,1,"c.os_info_init"],os_init:[84,1,1,"c.os_init"],os_init_idle_task:[84,1,1,"c.os_init_idle_task"],os_sched:[84,1,1,"c.os_sched"],os_sched_ctx_sw_hook:[84,1,1,"c.os_sched_ctx_sw_hook"],os_sched_get_current_task:[84,1,1,"c.os_sched_get_current_task"],os_sched_insert:[84,1,1,"c.os_sched_insert"],os_sched_next_task:[84,1,1,"c.os_sched_next_task"],os_sched_os_timer_exp:[84,1,1,"c.os_sched_os_timer_exp"],os_sched_remove:[84,1,1,"c.os_sched_remove"],os_sched_resort:[84,1,1,"c.os_sched_resort"],os_sched_set_current_task:[84,1,1,"c.os_sched_set_current_task"],os_sched_sleep:[84,1,1,"c.os_sched_sleep"],os_sched_wakeup:[84,1,1,"c.os_sched_wakeup"],os_sched_wakeup_ticks:[84,1,1,"c.os_sched_wakeup_ticks"],os_start:[84,1,1,"c.os_start"],os_started:[84,1,1,"c.os_started"]}},objnames:{"0":["c","define","define"],"1":["c","function","C func
 tion"],"2":["c","typedef","typedef"],"3":["c","struct","struct"],"4":["c","variable","variable"]},objtypes:{"0":"c:define","1":"c:function","2":"c:typedef","3":"c:struct","4":"c:variable"},terms:{"000s":[110,112,115],"008s":[110,112,115],"01t22":68,"04x":20,"093s":[110,112,115],"0mb":11,"0ubuntu5":6,"0x0":[107,114],"0x00":[20,114,115],"0x0000":98,"0x00000000":[93,94],"0x00000002":114,"0x000000b8":107,"0x000000dc":97,"0x00004000":[93,94],"0x00008000":[88,93,94],"0x00009ef4":114,"0x0000fca6":107,"0x0006":29,"0x0007d000":94,"0x000e0000":93,"0x0010":27,"0x01":[20,27,30,115],"0x0100":27,"0x01000000":113,"0x0101":20,"0x0102":20,"0x0103":20,"0x0104":20,"0x0105":20,"0x0106":20,"0x0107":20,"0x0108":20,"0x0109":20,"0x010a":20,"0x010b":20,"0x010c":20,"0x010d":20,"0x010e":20,"0x010f":20,"0x0110":20,"0x0111":20,"0x02":[20,27,30,115],"0x0201":20,"0x0202":20,"0x0203":20,"0x0204":20,"0x0205":20,"0x0206":20,"0x0207":20,"0x0208":20,"0x0209":20,"0x020a":20,"0x020b":20,"0x020c":20,"0x020d":20,"0x020e":
 20,"0x020f":20,"0x0210":20,"0x0211":20,"0x0212":20,"0x0213":20,"0x0214":20,"0x0215":20,"0x0216":20,"0x0217":20,"0x0218":20,"0x0219":20,"0x021a":20,"0x021b":20,"0x021c":20,"0x021d":20,"0x021e":20,"0x021f":20,"0x0220":20,"0x0221":20,"0x0222":20,"0x0223":20,"0x0224":20,"0x0225":20,"0x0226":20,"0x0227":20,"0x0228":20,"0x0229":20,"0x022a":20,"0x022c":20,"0x022d":20,"0x022e":20,"0x022f":20,"0x0230":20,"0x0232":20,"0x0234":20,"0x0235":20,"0x0236":20,"0x0237":20,"0x0238":20,"0x0239":20,"0x023a":20,"0x023b":20,"0x023c":20,"0x023d":20,"0x023e":20,"0x023f":20,"0x0240":20,"0x03":[20,30],"0x0300":[20,27],"0x0301":20,"0x0302":20,"0x04":[20,27],"0x0401":20,"0x0402":20,"0x0403":20,"0x0404":20,"0x0405":20,"0x0406":20,"0x0407":20,"0x0408":20,"0x0409":20,"0x040a":20,"0x040b":20,"0x040c":20,"0x040d":20,"0x040e":20,"0x0483":111,"0x05":20,"0x0501":20,"0x0502":20,"0x0503":20,"0x0504":20,"0x0505":20,"0x0506":20,"0x0507":20,"0x0508":20,"0x0509":20,"0x050a":20,"0x050b":20,"0x050c":20,"0x050d":20,"0x050e":20,
 "0x06":[20,98],"0x07":20,"0x08":[20,27],"0x08000000":113,"0x08000020":113,"0x08000250":113,"0x08021e90":111,"0x09":20,"0x0a":20,"0x0b":20,"0x0bc11477":107,"0x0c":20,"0x0c80":29,"0x0d":20,"0x0e":20,"0x0f":20,"0x10":[20,107,114,115],"0x100":20,"0x10000":88,"0x10010000":113,"0x10036413":113,"0x10076413":111,"0x103":20,"0x11":[20,23,106,115],"0x12":20,"0x13":20,"0x14":20,"0x15":20,"0x16":20,"0x17":20,"0x18":20,"0x1800":30,"0x1808":30,"0x180a":30,"0x19":20,"0x1a":20,"0x1b":20,"0x1c":20,"0x1d":20,"0x1e":20,"0x1f":20,"0x20":[20,32,88,107,114],"0x200":20,"0x20000000":88,"0x20002290":111,"0x20002408":107,"0x20008000":107,"0x21":[20,32],"0x21000000":107,"0x22":[20,23,32,115],"0x23":[20,32],"0x24":20,"0x25":20,"0x26":20,"0x27":20,"0x28":20,"0x29":20,"0x2a":20,"0x2ba01477":114,"0x2c":20,"0x2d":20,"0x2e":20,"0x2f":20,"0x30":[20,107,114],"0x300":20,"0x32":20,"0x33":23,"0x34":20,"0x35":20,"0x36":20,"0x37":20,"0x374b":111,"0x38":20,"0x39":20,"0x3a":20,"0x3a000":88,"0x3b":20,"0x3c":20,"0x3d":20,"0x3
 e":20,"0x3f":20,"0x40":[20,107,114],"0x400":20,"0x4001e504":114,"0x4001e50c":114,"0x41000000":111,"0x42000":61,"0x44":23,"0x50":[107,114],"0x500":20,"0x55":23,"0x60":[107,114],"0x66":23,"0x70":[107,114],"0x8000":61,"0x8000000":113,"0xffff":29,"0xffffffff":107,"0xffffffff0xffffffff0xffffffff0xffffffff":114,"1024kbyte":[111,113],"10m":27,"128kb":[9,93],"12c":[110,112,115],"12kb":94,"12mhz":9,"132425ssb":30,"132428ssb":30,"132433ssb":30,"132437ssb":30,"132441ssb":30,"16kb":[9,93,94],"16kbram":53,"16mb":9,"1_amd64":[57,60,80,83],"1st":68,"1ubuntu1":6,"1wx":114,"200mhz":9,"2015q2":[4,12],"2022609336ssb":101,"2022687456ssb":101,"2022789012ssb":101,"2022851508ssb":101,"2042859320ssb":101,"2042937440ssb":101,"248m":6,"256kb":107,"262s":[110,112,115],"296712s":113,"2a24":48,"2d5217f":81,"2m_interval_max":27,"2m_interval_min":27,"2m_latenc":27,"2m_max_conn_event_len":27,"2m_min_conn_event_len":27,"2m_scan_interv":27,"2m_scan_window":27,"2m_timeout":27,"2msym":21,"300v":[110,112,115],"32kb":[9
 4,107],"32mb":9,"32wx":[107,114],"363s":[110,112,115],"3_1":36,"3mb":81,"4_9":4,"512kb":88,"6lowpan":21,"73d77f":71,"7b3w9m4n2mg3sqmgw2q1b9p80000gn":55,"8ab6433f8971b05c2a9c3341533e8ddb754e404":118,"9mb":58,"abstract":[9,20,90,91,120],"boolean":94,"break":[20,102],"byte":[19,23,27,46,66,71,73,92,105,106,115],"case":[2,6,7,20,21,30,55,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,87,88,94,98,102,103,105,106,107],"catch":20,"char":[84,87,92,94,102,105,106,109],"class":115,"const":[88,92,102,104,105,106],"default":[1,2,4,6,7,12,20,24,26,27,28,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,61,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,87,88,89,91,92,93,94,98,100,102,105,106,107,108,115,116],"export":[1,11,23,60,61,80,82,83,92],"final":[8,55,88,97,100],"float":[64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82],"function":[1,7,9,14,20,23,31,61,84,86,87,89,90,91,92,97,100,101,103,105,106,108,109,115,116,120],"import":[11,55,57,80,88,97,100,103],"int"
 :[1,20,26,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,84,87,92,94,100,102,103,104,105,106,109],"long":[3,21,24,28,87,114],"new":[2,3,4,6,10,11,21,23,24,27,30,31,34,39,41,45,46,50,53,57,58,59,61,84,85,88,91,92,94,96,97,98,103,104,105,106,107,110,111,112,113,114,115,116,120],"null":[84,87,88,92,93,94,100,103,104,105,106,109],"public":[19,25,27,29,30,32,57,66,80,92,105,106],"return":[18,26,84,87,88,92,94,100,102,103,104,107,109,115],"static":[19,26,66,87,88,92,98,100,102,103,104,105,106,109],"switch":[10,12,20,58,71,77,81,84,85,87,88,97,98,102,103],"transient":103,"true":[8,12,84],"try":[2,20,21,23,97,98,101,107,108,109,110,111,112,114,117],"var":[50,55,65,66],"void":[20,26,84,87,92,94,100,102,103,104,105,106,109],"while":[4,6,7,8,21,23,26,49,55,61,87,88,92,94,105,106,109],AES:22,ANS:99,Adding:[56,79,120],And:[61,93,96,101],CTS:98,FOR:4,For:[2,3,5,6,7,8,11,12,20,22,23,24,29,30,34,37,39,50,53,55,57,58,59,60,6
 1,62,66,83,87,88,91,93,94,97,102,103,104,105,106,107,109,111,112,113,115,116,117,120],IDE:[5,12],Its:[89,117],Not:[7,20,29],One:[6,20,87,100],PCs:8,QoS:[20,21],RTS:98,Such:[105,106,117],TMS:107,That:[2,20,61,94,105,106,107,115,116],The:[1,2,3,4,5,6,7,8,10,11,12,14,15,16,17,18,19,20,21,22,23,24,26,27,29,30,31,33,34,37,43,45,46,47,50,55,57,58,59,61,63,64,66,70,71,72,73,75,76,77,78,80,81,82,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,100,102,103,104,105,106,107,108,110,111,112,113,114,115,116,117,120],Then:[10,33,63,98],There:[4,8,22,23,28,57,61,80,88,89,92,102,107,115,118],These:[5,20,27,50,61,88,89,91,93,96,100,104,105,106,107,108,113,116,117],Use:[1,7,8,11,27,28,50,57,58,59,62,71,80,81,82,88,102,105,106,107,110,115,116],Used:88,Uses:[31,42,93],Using:[20,49,109,120],Was:115,Will:20,With:[9,20,21,30,87,91,93,97,120],Yes:[10,19],__a:84,__asm:111,__etext:113,__n:84,__t1:84,__t2:84,__wfi:111,_access:102,_addr:105,_addr_:[105,106],_app:105,_build:[33,63],_gatt_ac:102,_imghdr_siz:88,_name
 :94,_set:105,_stage:94,abbrevi:100,abil:[6,22,31,55],abl:[2,88,101,105,106,107,116],abort:[49,93,94],about:[1,3,10,23,29,40,57,58,59,62,64,80,81,82,87,88,95,100,103,104,105,106,110,114,115,117],abov:[9,14,19,87,93,94,97,100,102,105,106,109,115,116],accept:[20,27,107,111,113,115,116],access:[15,20,21,27,59,61,64,70,80,81,82,86,87,88,94,97,104,107],access_:104,access_cb:[102,104],accommod:[24,91,105],accomplish:[9,55,102],accord:88,accordingli:[24,88],account:[10,61],accur:113,achiev:[26,105,106],ack_rxd:115,acknowledg:115,acl:20,acquir:26,across:[30,31,55,61,62],act:[22,30],action:[9,27,62,100,104,115],activ:[12,16,17,21,47,71,88,100,115],actual:[2,7,34,77,88,93,95,97,105,106,107,116,117,118],adafruit:8,adapt:[21,91,107,110,111],adapter_nsrst_delai:[107,111],adaptor:113,adc:[9,53],adc_hw_impl:53,add:[1,2,4,6,7,11,12,27,37,39,50,55,57,58,59,61,62,80,87,91,92,94,97,98,101,107,108,109,116,120],added:[10,12,32,53,55,81,88,92,107,109,117,120],adding:[2,31,37,55,88,89,97,109,116,117],addit
 :[1,12,21,29,43,55,61,62,88,89,91,94,97,100,107,108,110,111,113,114,115],addition:62,addr:[27,30,98,105,106],addr_typ:[27,30],address:[20,21,22,25,27,29,31,32,55,66,87,98,102,115],aditihilbert:4,adjust:[20,88],admin:[4,98],adress:27,adsertis:27,adv:[21,27,30,31],adv_data:27,adv_field:[100,105],adv_param:[100,103,105,106],advanc:59,advantag:103,advantang:100,adverb:62,adverti:[105,106],advertis:[15,20,21,24,26,31,32,66,99,101,103],advertising_interv:[27,29],advic:[89,90],advinterv:29,aes:[107,110,112,114],affect:97,aflag:[1,50,61],after:[4,8,11,22,26,30,41,50,55,57,58,61,80,81,84,89,93,98,100,102,103,104,107,108,116],again:[8,20,26,57,59,80,88,100,107,110,111,112,113,114,115],against:[22,87],aid:61,aim:[20,99,120],air:[20,115,120],albeit:96,alert:99,algorithm:[21,85],all201612161220:75,all:[1,2,3,6,7,8,9,10,12,14,15,16,17,18,20,21,22,24,26,27,28,29,30,31,35,40,41,43,49,50,51,52,53,55,61,66,72,75,87,88,89,91,92,93,94,95,97,98,99,100,101,102,103,104,105,106,109,111,113,115,116,117,118,
 119],alloc:[73,77,100,102],allow:[2,3,4,6,8,9,12,20,21,27,31,39,50,55,57,58,59,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,87,91,92,94,98,100,103,105,109,110,115],almost:8,along:61,alongsid:105,alphabet:94,alreadi:[6,7,8,11,20,24,31,43,58,59,81,82,84,90,91,96,97,107,109,110,111,112,113,114,115],also:[1,3,5,6,7,8,11,12,21,23,24,27,34,37,40,55,57,58,59,60,61,66,80,83,87,88,91,92,93,94,97,100,103,104,108,109,115,116,117],altern:[6,102],although:116,alwai:[8,61,88,96,102,105,106,113,116,117,120],ambigu:20,ambiti:97,amd64:[57,80],amend:[1,32,50,62],among:[85,88],amount:[24,90,100],analyz:12,ani:[1,4,8,10,14,21,22,27,33,49,50,59,61,63,64,66,73,76,77,80,81,82,84,87,88,90,92,94,98,100,109,110,115,117,120],announc:[100,105,106],annoy:[102,118],anonym:27,anoth:[10,21,26,27,30,61,87,88,89,90,92,93,100,102,115],answer:87,anyth:[1,8,23,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,97,105,106,108,117],apach:[1,2,6,7,10,11,12,21,32,33,37,38,39,43,44,50,51,53,55,57,
 58,59,61,62,63,80,81,82,88,92,94,97,98,99,101,105,107,108,109,110,111,112,113,114,115,116,117,120],api:[1,16,17,18,19,20,21,53,55,61,87,91,106,111],app:[1,7,8,12,21,26,29,32,34,37,38,42,43,45,46,47,48,50,53,55,62,73,76,77,88,92,93,94,97,99,100,103,104,105,106,107,109,110,111,112,113,114,120],appear:[27,29,91,102,104],appl:107,appli:[12,24,92,94,115],applic:[1,2,4,5,6,8,9,11,13,14,18,20,21,23,24,25,26,28,30,34,39,42,47,50,55,57,58,59,60,61,73,76,77,78,82,83,88,92,93,94,95,96,99,102,103,108,120],applicaton:1,applict:12,approach:[31,88,94],appropri:[62,88,91,94,97,100,103,105,106,108],approv:10,apps_blinki:[55,61],apr:[110,112,115],apropo:107,apt:[4,6,7,56,60,79,83,98],arbitrari:[98,107,110,111,112,113,114,115],arbitrarili:106,arc4:107,arch:[61,88,91,110,111,112,113,114,115],arch_sim:109,architectur:[57,80,84,85,88,90,91],archiv:[4,7,57,59,61,97,107,109,110,111,112,113,114,115],arduino:[12,108,116,120],arduino_101:53,arduino_blinki:[12,107],arduino_boot:[12,107],arduino_primo_nrf52:[53
 ,110],arduino_zero:107,arduino_zero_debug:107,area:[88,94],arg:[12,84,87,102,103],argc:[84,87,94,105,106,109],argument:[11,12,20,45,50,55,62,92,100,103,104,105,106,110,112,116,117],argv:[84,94,105,106,109],arm:[5,6,7,12,88,107,113],around:30,arrai:[23,94,100,104],arrang:88,articl:118,artifact:[35,39,50,55,57,58,59,116],asf:[1,116],ask:[10,87,113,116,117],aspect:27,assembl:[1,61,88,91,110,111,112,113,114,115],assert:[67,92,102,103,104,105,106,109],assign:[10,19,21,23,29,37,50,53,66,87,88,94,102,107,110,111,112,113,114,115],associ:[22,24,94,100,103],assum:[7,12,30,43,59,60,82,83,88,94,96,97,109,115],at91samd21g18:107,at91samd:107,atmel:[2,107],att:[18,21,28,102],attach:[8,12,88,97,110,115],attempt:[20,23,27,94,102,103,104,115],attent:3,attr:[28,30],attr_handl:[101,102,103],attribut:[14,16,17,20,21,28,50,53,62,66,89,91,94,99,102],auth:[27,118],authent:[20,22,30,101],author:[1,20,43,61,92],auto:29,autocomplet:55,autoconf:55,autom:31,automat:[1,10,21,24,25,42,55,61,89,94,97,99,100,107,11
 0,111,113,114,116,120],autoselect:107,avaial:115,avail:[1,2,3,4,7,9,20,21,23,24,29,30,31,32,47,57,58,59,62,64,73,80,81,82,92,94,95,105,109,115,117],avail_queu:92,avoid:[61,87],awai:[20,88,102],await:3,awar:[100,105,106],b0_0:113,b0_1:113,b1_0:113,b1_1:113,back:[8,58,64,69,80,81,82,92,104,113,114],backward:[21,92],bad:117,badli:87,band:[21,22,27],bank:113,bar:[12,120],bare:[99,105,106,120],base64:[7,92,115],base:[1,2,4,6,7,12,20,21,24,31,34,39,55,57,58,59,61,93,98,104,107,110,111,113,114],baselibc:[7,48,88],bash:[2,12,55,59,88],bash_complet:36,bash_profil:[11,58,60,81,83],bashrc:55,basi:[9,19,22,117],basic:[1,14,21,29,30,31,61,88,97,98,115,116,118],batch:88,batteri:[9,24,31,91,105],baud:[66,92,98],bd_addr:20,be9699809a049:71,beacon:[14,96,97,108],bearer:[21,32],becaus:[8,12,20,22,26,30,50,93,116,118],becom:[22,31,100,103],been:[4,10,20,26,36,43,55,58,59,61,77,81,82,84,94,98,103,107,110,115],befor:[2,4,7,8,12,20,41,50,57,61,80,84,87,88,92,94,97,98,99,100,102,105,106,108,109,111,115],b
 egin:[26,98,101,103,105,106,116],beginn:120,behav:[20,30,87,105,106],behavior:[59,87,91,102,104],being:[20,87,101,103,120],belong:[14,104],below:[1,2,4,6,12,18,20,22,23,24,30,43,62,87,88,89,92,97,102,104,107,110,111,112,113,114,115,116,117,118,120],benefit:[10,87,94,95],best:[88,117],between:[7,12,21,26,27,31,37,46,55,92,93,94,98,110,115,117],bhd:66,big:[23,61,115,117],bin:[2,4,7,11,12,34,35,37,38,43,46,48,50,55,57,58,59,60,61,80,81,82,83,88,94,97,98,101,107,109,110,111,112,113,114,115],bin_basenam:61,binari:[4,7,11,34,37,39,55,58,60,61,79,81,83,109],binutil:4,bit:[7,14,23,25,27,29,57,58,59,66,81,82,84,86,97,102,103,104,105,106,117],bits0x00:27,ble:[14,18,19,23,26,30,31,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,94,96,98,100,102,103,104,108,120],ble_:102,ble_addr_t:[105,106],ble_addr_type_publ:103,ble_app:[97,105,106],ble_app_advertis:[105,106],ble_app_on_sync:[105,106],ble_app_set_addr:[105,106],ble_att:[76,102],ble_att_err_attr_not_found:20,ble_att_err_attr_not_long:20,
 ble_att_err_insufficient_authen:20,ble_att_err_insufficient_author:20,ble_att_err_insufficient_enc:20,ble_att_err_insufficient_key_sz:20,ble_att_err_insufficient_r:20,ble_att_err_invalid_attr_value_len:[20,102],ble_att_err_invalid_handl:20,ble_att_err_invalid_offset:20,ble_att_err_invalid_pdu:20,ble_att_err_prepare_queue_ful:20,ble_att_err_read_not_permit:20,ble_att_err_req_not_support:20,ble_att_err_unlik:20,ble_att_err_unsupported_group:20,ble_att_err_write_not_permit:20,ble_att_svr_entry_pool:73,ble_att_svr_prep_entry_pool:73,ble_eddystone_set_adv_data_uid:105,ble_eddystone_set_adv_data_url:105,ble_eddystone_url_scheme_http:105,ble_eddystone_url_suffix_org:105,ble_err_acl_conn_exist:20,ble_err_auth_fail:20,ble_err_chan_class:20,ble_err_cmd_disallow:20,ble_err_coarse_clk_adj:20,ble_err_conn_accept_tmo:20,ble_err_conn_establish:20,ble_err_conn_limit:20,ble_err_conn_parm:20,ble_err_conn_rej_bd_addr:20,ble_err_conn_rej_channel:20,ble_err_conn_rej_resourc:20,ble_err_conn_rej_secur:20,
 ble_err_conn_spvn_tmo:20,ble_err_conn_term_loc:20,ble_err_conn_term_m:20,ble_err_ctlr_busi:20,ble_err_diff_trans_col:20,ble_err_dir_adv_tmo:20,ble_err_encryption_mod:20,ble_err_host_busy_pair:20,ble_err_hw_fail:20,ble_err_inq_rsp_too_big:20,ble_err_instant_pass:20,ble_err_insufficient_sec:20,ble_err_inv_hci_cmd_parm:20,ble_err_inv_lmp_ll_parm:20,ble_err_link_key_chang:20,ble_err_lmp_collis:20,ble_err_lmp_ll_rsp_tmo:20,ble_err_lmp_pdu:20,ble_err_mac_conn_fail:20,ble_err_mem_capac:20,ble_err_no_pair:20,ble_err_no_role_chang:20,ble_err_page_tmo:20,ble_err_parm_out_of_rang:20,ble_err_pending_role_sw:20,ble_err_pinkey_miss:20,ble_err_qos_parm:20,ble_err_qos_reject:20,ble_err_rd_conn_term_pwroff:20,ble_err_rd_conn_term_resrc:20,ble_err_rem_user_conn_term:20,ble_err_repeated_attempt:20,ble_err_reserved_slot:20,ble_err_role_sw_fail:20,ble_err_sco_air_mod:20,ble_err_sco_itvl:20,ble_err_sco_offset:20,ble_err_sec_simple_pair:20,ble_err_synch_conn_limit:20,ble_err_unit_key_pair:20,ble_err_unk_c
 onn_id:20,ble_err_unk_lmp:20,ble_err_unknown_hci_cmd:20,ble_err_unspecifi:20,ble_err_unsupp_lmp_ll_parm:20,ble_err_unsupp_qo:20,ble_err_unsupp_rem_featur:20,ble_err_unsupport:20,ble_ga:104,ble_gap:76,ble_gap_adv_param:[105,106],ble_gap_adv_set_field:100,ble_gap_adv_start:[100,103,105,106],ble_gap_chr_uuid16_appear:[102,104],ble_gap_chr_uuid16_device_nam:[102,104],ble_gap_chr_uuid16_periph_pref_conn_param:102,ble_gap_chr_uuid16_periph_priv_flag:102,ble_gap_chr_uuid16_reconnect_addr:102,ble_gap_conn_desc:103,ble_gap_conn_find:103,ble_gap_conn_fn:100,ble_gap_conn_mode_und:[100,103],ble_gap_disc_mode_gen:[100,103],ble_gap_ev:103,ble_gap_event_conn_upd:103,ble_gap_event_connect:103,ble_gap_event_disconnect:103,ble_gap_event_enc_chang:103,ble_gap_event_fn:[105,106],ble_gap_event_subscrib:103,ble_gap_svc_uuid16:[102,104],ble_gap_upd:73,ble_gatt:76,ble_gatt_access_ctxt:102,ble_gatt_access_op_read_chr:102,ble_gatt_access_op_write_chr:102,ble_gatt_chr_def:[102,104],ble_gatt_chr_f_read:[102,10
 4],ble_gatt_register_fn:104,ble_gatt_svc_def:[102,104],ble_gatt_svc_type_primari:[102,104],ble_gattc:76,ble_gattc_proc_pool:73,ble_gatts_clt_cfg_pool:73,ble_gatts_register_svc:104,ble_h:[14,15,16,17,19,20,23,26,76,105,106],ble_hci_ram_evt_hi_pool:73,ble_hci_ram_evt_lo_pool:73,ble_hci_uart_baud:98,ble_hs_:104,ble_hs_adv_field:[100,105],ble_hs_att_err:20,ble_hs_cfg:[26,105,106],ble_hs_conn_pool:73,ble_hs_eagain:20,ble_hs_ealreadi:20,ble_hs_eapp:20,ble_hs_eauthen:20,ble_hs_eauthor:20,ble_hs_ebaddata:20,ble_hs_ebusi:20,ble_hs_econtrol:20,ble_hs_edon:20,ble_hs_eencrypt:20,ble_hs_eencrypt_key_sz:20,ble_hs_einv:20,ble_hs_emsgs:20,ble_hs_eno:20,ble_hs_enoaddr:20,ble_hs_enomem:20,ble_hs_enomem_evt:20,ble_hs_enotconn:20,ble_hs_enotsup:20,ble_hs_enotsync:20,ble_hs_eo:20,ble_hs_ereject:20,ble_hs_erol:20,ble_hs_err_sm_peer_bas:20,ble_hs_err_sm_us_bas:20,ble_hs_estore_cap:20,ble_hs_estore_fail:20,ble_hs_etimeout:20,ble_hs_etimeout_hci:20,ble_hs_eunknown:20,ble_hs_forev:[103,105,106],ble_hs_hci_er
 r:20,ble_hs_hci_ev_pool:73,ble_hs_id:23,ble_hs_id_gen_rnd:[23,105,106],ble_hs_id_set_rnd:[19,23,105,106],ble_hs_l2c_err:20,ble_hs_reset_fn:26,ble_hs_sm_peer_err:20,ble_hs_sm_us_err:20,ble_hs_sync_fn:26,ble_ibeacon_set_adv_data:106,ble_l2cap:76,ble_l2cap_chan_pool:73,ble_l2cap_sig_err_cmd_not_understood:20,ble_l2cap_sig_err_invalid_cid:20,ble_l2cap_sig_err_mtu_exceed:20,ble_l2cap_sig_proc_pool:73,ble_ll:[76,77],ble_ll_conn:76,ble_ll_prio:94,ble_lp_clock:24,ble_mesh_dev_uuid:32,ble_mesh_pb_gatt:32,ble_own:[105,106],ble_own_addr_random:[105,106],ble_phi:76,ble_public_dev_addr:23,ble_rigado:47,ble_sm_err_alreadi:20,ble_sm_err_authreq:20,ble_sm_err_cmd_not_supp:20,ble_sm_err_confirm_mismatch:20,ble_sm_err_cross_tran:20,ble_sm_err_dhkei:20,ble_sm_err_enc_key_sz:20,ble_sm_err_inv:20,ble_sm_err_numcmp:20,ble_sm_err_oob:20,ble_sm_err_pair_not_supp:20,ble_sm_err_passkei:20,ble_sm_err_rep:20,ble_sm_err_unspecifi:20,ble_tgt:[97,105,106],ble_uu:104,ble_uuid16:[102,104],ble_uuid_128_to_16:102,ble
 _xtal_settle_tim:24,blecent:[7,61],blehci:[7,61],blehciproj:98,blehostd:66,blemesh:[21,32],blenano:53,bleprph:[7,21,61,66,99,100,101,102,103,104],bleprph_advertis:[100,103],bleprph_appear:102,bleprph_device_nam:[100,102],bleprph_log:[100,103],bleprph_oic:[7,61],bleprph_on_connect:100,bleprph_pref_conn_param:102,bleprph_print_conn_desc:103,bleprph_privacy_flag:102,bleprph_reconnect_addr:102,blesplit:[7,61],bletest:[7,61],bletini:[7,21,37,38,45,46,50,61,71,98,101],bletiny_chr_pool:73,bletiny_dsc_pool:73,bletiny_svc_pool:73,bleuart:[7,61],blink:[1,7,61,88,107,108,110,111,112,113,114,120],blink_rigado:47,blinki:[1,12,34,43,44,48,55,61,88,97,98,115,120],blinky_callout:109,blinky_sim:61,blksz:73,blob:20,block:[20,29,73,84],blue:114,bluetooth:[1,9,20,22,23,24,27,29,32,99,100,105,106,108,120],bmd300eval:[48,53,112],bmd:112,board:[1,2,4,5,7,8,12,23,24,30,39,42,47,53,55,57,58,59,61,87,88,93,94,98,101,105,106,108,109,120],bond:[22,27,29,30,101],bondabl:27,bone:[99,105,106,120],boot:[7,43,61,88
 ,92,98,107,110,111,112,113,114,115],boot_boot_serial_test:7,boot_load:88,boot_olimex:113,boot_seri:[7,92],boot_serial_setup:7,boot_test:7,bootload:[1,12,43,47,88,91,92,108,109],bootutil:[7,92,107,110,111,112,113,114,115],bootutil_misc:[7,107,110,111,112,114],both:[6,9,11,14,20,22,27,29,39,55,57,58,59,62,88,93,94,95,107,109,115,118],bottl:[58,81],bottom:[12,88,101],bound:88,boundari:88,box:12,branch:[1,4,7,10,11,55,56,57,59,60,79,80,82,83,107,116,117],branchnam:10,brand:114,breakout:8,breakpoint:[107,111],brew:[3,4,7,11,36,55,58,60,81,83],brief:[19,105,106,115],briefli:88,bring:[12,88],broad:120,broadca:[105,106],broadcast:[14,27,31,100,105,106],brows:[101,110,116],bsp:[1,7,24,32,34,37,38,42,43,45,47,50,55,61,62,87,94,97,98,101,107,109,110,111,112,113,114,115,120],bsp_arduino_zero:107,bsp_arduino_zero_pro:107,bsppackag:88,bss:[48,88],btattach:98,btshell:29,buad:66,buffer:[20,87,91,92,93,106],bug:[4,7,11,107,111],build:[1,2,3,4,5,6,11,31,32,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50
 ,51,52,53,54,57,58,59,62,80,82,87,88,89,91,93,94,99,100,101,108,120],build_arduino_blinki:12,build_arduino_boot:12,build_profil:[1,32,37,38,43,50,53,61,88,97,98,101,107,110,111,112,113,114,115],buildabl:7,built:[1,4,7,8,9,21,33,34,38,39,42,43,55,57,58,59,60,61,63,81,82,83,97,98,101,105,106,107,108,109,110,111,112,113,114,115],bundl:55,burn:[105,106],bus:2,busi:20,button:[2,4,10,12,107,110],cabl:[98,107,108,110,111,112,113,115],cach:[58,81],calcul:[20,29,48],calendar:9,call:[6,7,9,11,19,21,23,26,36,61,84,85,87,88,92,94,96,97,100,101,102,103,104,105,106,107,109,115,116],callback:[20,26,84,92,94,100,102,104,105,106,109],caller:92,callout:[87,109],came:98,can:[1,2,3,4,5,6,7,8,9,11,12,19,20,21,22,23,24,27,30,31,33,34,35,42,45,50,55,57,58,59,60,61,62,63,64,66,72,76,80,81,82,83,84,85,87,88,89,91,92,93,94,95,97,98,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,120],cancel:[20,27],candid:116,cannot:[4,19,20,71,84,87,94,107,116,117,118],capabl:[20,22,27,29,90,92,109],
 capac:20,captian:81,care:[87,105,106,116,117],cascad:[1,61],cast:102,cat:80,catastroph:26,categor:88,categori:[10,91],caus:[87,93],cb_arg:[100,104,105,106],cbmem:7,cborattr:7,cccd:27,ccm:22,cdc:110,cell:22,cellar:[4,6,11,36,58,60,81,83],central:[20,30,99,100,101,103],certain:[1,21,87,88,98,117],cess_op_:102,cfg:[70,111],cflag:[1,50,61,88],chanc:87,chang:[1,4,6,7,10,11,19,20,21,22,24,28,30,46,49,50,52,57,61,62,80,88,89,93,94,98,101,103,105,106,107,111],channel:[20,21,29],channel_map:27,chapter:[2,21,91],charact:[92,94,104],character:24,characteri:[102,104],characterist:[9,16,17,21,27,28,101,104],check:[4,6,8,11,20,22,55,56,79,93,94,97,98,99,110,113,115,117],checkbox:59,checkin:77,checkout:[10,80,82,108],chip:[4,91,107,108,110,111,114,116],chipset:107,choic:[2,10,98],choos:[6,7,10,97,100,109,110,112],chosen:88,chr:102,chr_access:102,ci40:53,cid:101,circular:[93,94],circularli:117,clang:6,clarif:10,classif:20,clean:[1,11,33,39,50,57,58,59,63,81,115],cleanli:94,clear:72,clearli:[8,20],c
 li:92,click:[2,4,10,12,101,105,106,107,110,111,113],client:[12,17,18,20,21,27,31,105],clock:[20,25,86,107,111],clock_freq:84,clone:[10,11,45,50,55,58,81],close:[2,59,107,110,111,113,114],cmake:1,cmd:[55,61,88],cmd_queue:92,cmsi:[2,7,48,88,107,110,111,112,113,114],cmsis_nvic:[88,110,111,112,113,114],cnt:[73,92],coars:20,coc:27,code:[1,5,7,9,10,11,13,18,21,24,26,27,29,55,85,87,90,91,92,94,99,100,102,103,104,107,108,109,115,116,120],codebas:107,coded_interval_max:27,coded_interval_min:27,coded_lat:27,coded_max_conn_event_len:27,coded_min_conn_event_len:27,coded_scan_interv:27,coded_scan_window:27,coded_timeout:27,coding_standard:7,collect:[1,7,43,55,61,116],collis:20,colon:66,column:19,com11:8,com1:66,com3:[8,109],com6:8,com:[8,10,11,12,33,55,57,58,59,63,80,81,82,98,109,116,118],combin:[1,20,22,26,43,61,87,88,97,105,106,116,117],come:[3,21,30,55,61,88,92,107,113,114],comm:108,comma:[51,66],command:[1,2,4,7,8,11,20,30,34,35,36,37,38,40,41,42,44,45,46,47,48,49,51,52,53,54,57,58,59,60,61,
 67,68,70,71,72,75,76,78,80,81,82,83,88,91,93,94,97,105,106,107,109,110,111,112,113,114,115,116,118,119],comment:[3,10,88,95,120],commit:[10,11],common:[55,61,91,104,111],commonli:105,commun:[9,21,26,27,31,66,78,92,98,100,103,108,115,116,120],compani:29,compar:[10,20,110,111,112,115,119],comparison:[20,22],compat:[4,21,55,92,107,115],compil:[1,4,5,6,7,8,11,20,34,47,53,55,58,61,81,88,91,94,95,97,107,110,111,112,113,114,115],complaint:21,complementari:31,complet:[9,12,20,22,27,29,30,33,55,59,63,88,90,91,92,95,98,100,105,106,111,116],completion_cb:92,complex:[9,31,87,88,96],compli:21,compliant:21,complic:[55,87],compon:[1,7,12,18,39,48,55,57,58,59,61,85,88,91,98,105,106,108],compos:[39,57,58,59,95],comprehens:95,compress:[55,81,105],compris:7,comput:[3,4,6,8,12,31,56,58,59,79,81,92,97,98,107,108,110,111,112,113,114],concept:[12,22,87,94,96,97,99,107,108],concern:3,conclud:[105,106],concurr:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,99,100],condit:[4,20,93
 ],condition:[55,93,94],conf:115,confidenti:22,config:[1,7,32,50,61,62,64,78,80,81,82,93,94,97],config_fcb:93,config_fcb_flash_area:[93,94],config_newtmgr:50,config_nff:93,config_pkg_init:94,configur:[6,7,9,19,20,25,26,31,32,50,55,57,58,59,61,62,86,87,88,89,91,92,97,100,104,107,110,113,114,115,118],confirm:[8,20,27,71,115],confirmbe9699809a049:71,conflict:[61,93,117],confluenc:10,confus:116,congratul:[7,101],conjunct:31,conn:[27,28,30,64,65,67,68,69,70,71,72,73,74,75,76,77,78,80,81,82,103,105,106],conn_handl:[20,101,102,103],conn_interval_max:29,conn_interval_min:29,conn_itvl:[30,101],conn_lat:[30,101],conn_mod:103,conn_profil:[65,66,67,68,69,70,71,72,73,74,75,76,77],conn_upd:103,connect:[4,7,8,9,12,15,20,21,22,24,26,28,29,31,38,42,43,55,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,81,82,91,92,99,100,101,102,103,105,106,108],connectable_mod:100,connection_profil:71,connectionless:27,connector:[4,98,110,113,115],connintervalmax:29,connintervalmin:29,connstr:66,consequ:20,conserv:[9
 ,91],consid:[21,62,87,104,116],consist:[1,21,31,61,93,94,104],consol:[1,7,8,12,26,55,61,91,94,97,98,101,105,106,108],console_append_char_cb:92,console_blocking_mod:92,console_compat:92,console_echo:92,console_handle_char:92,console_init:92,console_input:92,console_is_init:92,console_is_midlin:92,console_max_input_len:92,console_non_blocking_mod:92,console_out:92,console_pkg_init:94,console_printf:[20,26,92],console_read:92,console_rtt:92,console_rx_cb:92,console_set_completion_cb:92,console_set_queu:92,console_tick:92,console_uart:92,console_uart_baud:92,console_uart_dev:92,console_uart_flow_control:92,console_uart_tx_buf_s:92,console_writ:92,constantli:[100,120],constitu:43,constrain:[9,55],constraint:107,construct:11,consumpt:22,contact:[89,90],contain:[1,3,7,11,29,31,34,50,55,61,88,90,91,92,94,95,97,98,100,102,104,105,106,115,116,117,120],content:[12,49,61,80,88,100,104,105,106,113,115,117,118],context:[55,77,84,85,87,92,94,103,109],continu:[6,88,98,107,108,113],contrast:94,contr
 ibut:[13,22,57,58,59,80,81,82,96],control:[8,9,18,19,20,21,22,23,25,26,29,31,55,66,91,92,94,97,111,113,116,117],contruct:101,conveni:[12,20],convent:115,convers:102,convert:[1,8,20,71,84,94,102,104],copi:[1,4,45,49,50,62,80,82,89,90,100,103,107],copyright:[4,107,113],core:[1,6,7,12,21,29,32,37,38,43,48,50,51,53,55,61,62,71,88,90,97,98,99,100,101,107,108,109,110,111,112,113,114,115,116,117,120],core_cminstr:111,core_o:92,core_path:61,coreconvert:71,coredownload:71,coredump:7,coredump_flash_area:94,coreeras:71,corelist:71,corner:113,corp:[2,107],correct:[1,2,4,41,88,94,98,111,112,113,115],correctli:[2,98,107,111],correspo:104,correspond:[12,20,84,88,100,102,105,106,117],cortex:[4,110,112,115],cortex_m0:61,cortex_m4:[61,88,110,111,112,113,114,115],cortex_m:107,cost:9,could:[20,102],couldn:100,count:[55,81],counter:[85,115],countri:21,coupl:[1,113],cover:[8,61,94,95,104],cpptool:12,cpu:[85,88,90,107,111],cputim:[24,84,86],cputime_geq:[84,86],cputime_gt:[84,86],cputime_leq:[84,86],cputim
 e_lt:[84,86],crash:[64,78,80,81,82],crash_test:7,crc:[7,92],creat:[1,2,3,4,5,6,8,10,11,12,22,27,32,34,39,41,43,44,45,46,47,50,55,57,58,59,61,62,66,71,80,81,82,87,90,92,93,94,99,104,108,109,116,118,120],create_arduino_blinki:12,creation:[47,115],credenti:118,criteria:20,critic:3,cross:[5,6,7,9,91],crt0:48,crti:48,crtn:48,crw:8,crypto:[7,107,110,112,114],cryptograph:22,cryptographi:22,crystal:25,csrk:27,cssv6:29,csw:77,ctassert:84,ctlr_name:66,ctlr_path:66,ctrl:[12,97],ctxt:[102,103],cur_ind:103,cur_notifi:103,curi:[101,103],curiou:3,curl:[11,58],curn:[101,103],currantlab:[81,82],current:[11,24,27,31,39,40,41,44,45,46,50,51,57,58,59,60,71,81,82,83,84,85,87,88,92,93,105,107,108,111,113,115,116,117,119],custom:[23,71,94],cvs:[107,113],cwd:12,cycl:[19,21,31],daemon:[2,98],dap:[2,107,110,114],darwin10:107,darwin:6,data:[9,14,20,21,27,28,30,31,43,48,64,69,80,81,82,84,87,88,91,92,94,102,103,105,106,120],databas:28,datalen:27,datasheet:88,date:[11,68,115],datetim:[7,64,78,80,81,82,92],daunt:
 100,dbm:[21,27,29],ddress:25,deal:[87,88],deb:[57,60,80,83],debian:[4,6],debug:[1,2,4,5,6,7,39,43,47,50,55,57,58,59,62,89,93,97,98,107,109,110,111,112,113,114],debug_arduino_blinki:12,debug_arduinoblinki:12,debugg:[5,38,39,55,57,58,59,61,107,110,111,113,114,115],dec:48,decemb:22,decid:[55,85,91],decim:22,declar:[12,116],decompress:105,dedic:[88,91,102],deeper:115,def:[7,93,94],defaultdevic:82,defin:[1,6,19,20,21,24,27,28,29,31,34,42,43,47,50,53,61,84,86,87,93,94,96,98,100,102,108,115,116,117],defininig:31,definit:[1,12,29,35,37,42,50,61,88,98,102,104,116],defint:93,del:27,delai:[26,84,115],delet:[1,6,10,12,27,35,39,45,49,50,55,57,58,59,61,62],delimit:50,delta:[55,81],demonstr:[20,26,115],dep:[1,50,55,61,62,88,92,94,97,109],depend:[1,4,6,8,20,22,24,27,39,41,49,50,52,55,57,58,59,62,66,90,92,94,97,107,116,119],deploi:[43,109],deploy:31,deprec:94,depth:[4,90],deriv:20,desc:103,describ:[1,2,7,10,11,12,24,28,33,63,87,88,89,91,93,94,97,99,104,105,111,114,115,116],descript:[1,7,10,19,27,28,
 30,55,61,88,89,90,93,94,115,116,117],descriptor:[16,17,27,28,61,102],design:[21,22,23,55,91,104],desir:[84,119],desktop:10,destin:[4,31],detail:[1,10,12,21,22,29,55,87,97,100,102,104,105,106,107,115,116],detect:[20,55,93,94,98],determin:[20,94,95,100,103,116],dev:[1,2,3,4,7,8,10,11,12,48,61,66,82,92,94,95,97,98,101,107,109,110,111,112,113,114,115,116,117,118,120],dev_found:98,develop:[3,5,6,7,8,9,13,20,55,59,61,82,87,89,90,91,94,95,98,99,102,105,107,108,110,113,114,116,117,120],devic:[3,4,8,9,14,19,20,21,22,25,28,29,31,32,43,55,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,81,82,91,92,93,94,96,97,99,100,101,102,104,105,106,107,109,110,111,112,113,114,115,120],deviceaddr:23,deviceaddrtyp:23,dhkei:20,diagram:[111,113],dialog:[12,59],dictat:[11,62],differ:[4,6,7,8,11,12,20,24,27,30,45,55,57,80,87,88,89,90,91,93,94,97,98,109,110,111,113,116,117,119],differenti:116,difficult:[21,90,93],dig:[7,99],digit:22,dir:27,direct:[10,20,27,117],direct_addr:[105,106],directli:[7,11,14,18,36,94,105
 ,107],directori:[1,4,6,7,8,10,11,12,34,35,37,41,43,45,50,55,57,59,60,80,82,83,88,89,90,97,98,107,108,110,111,112,113,114,116,117,120],disabl:[6,20,22,24,30,84,92,93,94,103],disallow:20,disc_mod:103,disciplin:98,disclaim:[7,11,55,97],disconnec:27,disconnect:[27,103],discov:[22,27,28,98],discover:[27,29,100],discoverable_mod:100,discoveri:[28,98,103,108],discuss:[10,89,100],disjoint:20,disk:7,dispatch:[87,94],displai:[1,6,22,27,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,61,62,64,66,69,71,72,73,76,77,80,81,82,94,98,113,115],displayonli:27,displayyesno:27,dist:[57,80],distanc:21,distinct:22,distribut:[1,4,6,20,21,27,55,116],distro:6,div0:67,divid:[18,20,67],dle:27,dll:[110,112,115],dndebug:50,dnrf52:88,doc:[4,6,7,10,23,33,63,107,108,111],docker:[3,7,107,120],dockertest:2,document:[1,4,8,12,14,18,20,23,25,59,62,64,88,99,102,104,105,106,107,110,112,116],doe:[7,20,22,35,50,61,66,71,87,88,89,92,93,94,97,100,107,110,111,112,114,115,118],doesn:[8,20,32,97,98,100],doi
 ng:[102,109],domain:2,don:[1,10,31,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,102,104,105,106,116],done:[6,7,8,23,25,55,81,87,88,92,98,104,105,106,107,110,111,112,115],doorbel:55,doubl:[2,113],doubt:104,down:[1,12,61,80,82,111,113],downgrad:[6,7],download:[1,2,4,7,10,12,29,39,41,42,55,58,59,60,70,71,81,82,83,97,98,107,110,111,112,113,114,118],doxygen:[4,7,107,111],dpidr:114,dpkg:[57,60,80,83],drag:20,drain:24,draw:24,drive:[9,61],driver:[7,55,97,107,110,111,112,113,114],drop:[12,26,111,113],dsc:102,dst:[45,50,70],dsym:[55,61],dtest:50,due:[20,107,111,113],duplex:21,duplic:27,durat:[19,27,30,102],duration_m:[105,106],dure:[20,22,71,85,88,92,94,97,102,109],duti:[21,31],dwarf:61,dylib:4,e407:113,e407_:113,e407_devboard:[53,113],e407_devboard_download:113,e_gatt:104,eabi:[4,7,12,88,107],each:[1,2,10,11,12,19,20,21,22,23,28,32,43,48,49,50,61,62,64,66,73,77,87,88,92,94,102,103,104,105,106,107,116,120],eager:3,earlier:[10,30,57,58,59,80,81,82,102,105,106],easi:
 [1,2,3,8,9,93,110],easier:[24,88],easili:[9,94],eavesdropp:19,echo:[12,60,64,78,80,81,82,83,92],echocommand:12,eclips:12,ectabl:[105,106],edbg:[2,107],eddyston:[27,108],eddystone_url:[27,29],edit:[7,89,115,116],editor:[59,61,111],ediv:27,edr:[20,29,98],edu:110,ee02:115,effici:[21,31,107],eid:105,einval:84,eir:29,eir_len:98,either:[1,4,6,11,21,27,29,30,57,59,61,80,85,92,94,105,106,115],elaps:[20,84],electron:120,element:[39,53,55,57,58,59],elf:[7,12,34,38,48,55,61,71,97,98,101,107,109,110,111,112,113,114,115],elfifi:71,els:[23,85],elsewher:[99,102,116],email:[3,95,120],embed:[1,3,4,12,39,55,57,58,59,95,107,113],emit:[55,61],emploi:21,empti:[50,94,96,104],emptiv:9,emul:115,enabl:[1,8,9,24,30,31,32,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,62,73,76,77,78,88,92,93,94,97,100,103,108,120],enc_chang:103,encapsul:21,encod:[7,51,92,115],encompass:[14,20],encount:[7,20,57],encrypt:[20,22,27,30,101,103],encrypt_connect:20,end:[9,20,28,30,55,94,96,97,115],endian:[2
 3,61,115],endif:[94,109],energi:[9,21,22,108,120],enough:[55,91],ensur:[11,12,21,59,88,93,94,98,102,108,116,117],enter:[12,22,47,88,107,109,111],entir:[2,88,104],entiti:[43,99],entri:[20,22,72,104],environ:[3,4,9,12,55,58,59,61,82,91,98],eof:[57,80],ephemer:105,equal:[29,72,93,94],equat:29,equival:[46,61,120],eras:[71,107,111,112,113,115],erase_sector:113,error:[1,2,4,6,7,20,21,26,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,80,82,84,87,88,94,100,102,103,104,107,110,111,113,114,115,117],error_rsp_rx:76,error_rsp_tx:76,essenti:[43,61,94],establish:[20,27,78,100,101,103,110,112,115],etc:[1,21,24,26,36,43,57,80,87,90,91,96,103],eui:115,ev_arg:92,ev_cb:92,eval:112,evalu:[12,84,93,94,112,115,116],even:[4,10,84,91],event:[20,24,25,27,87,92,94,98,100,101,105,106,120],event_queu:92,eventu:4,everi:[1,32,61,103,105,107,109,117],everyon:10,everyth:[1,88],exact:91,exactli:[88,94],examin:[100,102],exampl:[1,2,3,6,7,9,12,22,23,24,25,30,31,55,57,58,59,60,61,62,64,80,82,8
 3,84,88,89,91,92,95,96,98,99,103,107,109,111,115,116,117,118,120],exceed:20,except:[7,51,100,105,106],excerpt:[92,93,94,102,104],exchang:[14,21,22,27,28],excit:[7,97],exclud:51,exclus:22,exe:[12,59,60,82,83],exec_write_req_rx:76,exec_write_req_tx:76,exec_write_rsp_rx:76,exec_write_rsp_tx:76,execut:[1,2,7,11,12,30,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,61,62,67,80,82,85,87,88,91,94,100,102,103,104,105,106,109],exhaust:20,exisit:27,exist:[2,20,24,29,41,46,49,50,71,89,94,101,107,110,111,112,113,114,117,120],exit:[8,80,110,112,115],expect:[6,20,43,61,87,88,92,98,105,106,115],experi:22,expertis:116,expir:84,explain:[4,12,96,97,98,105,106,108,117,120],explan:[34,35,37,38,39,43,44,45,46,47,48,50,51,53,54,65,66,67,68,69,70,71,72,73,74,75,76,77,100],explanatori:[30,89,105,106],explicitli:100,explor:102,expos:[1,14,21,87,94,99,104],express:[23,94,104],ext:[12,111],extend:[20,29,30],extended_dur:27,extended_period:27,extens:[21,30,115],extent:107,extern:[12,29,
 40,88,116,117],extra:[38,42,47,100],extra_gdb_cmd:61,extract:[4,11,58,59,60,82,83,110],extrajtagcmd:[38,42,47],extrem:9,f401re:53,f4discoveri:111,facil:19,fact:116,factor:9,factori:114,fail:[20,42,57,80,97,103,110,111,114,115,116],failur:[20,102,103,104],fairli:[24,55,61],fall:[91,120],fallback:27,fals:93,famili:[4,98],familiar:[3,12,94,96,97,99,120],faq:[11,13],far:97,fashion:87,fat2n:[7,61],fatf:7,fault:92,fcb:7,featur:[1,3,11,19,20,30,91,94,95,100,115],feedback:108,feel:3,fetch:[1,12,40,57,80,98,108,116,117],few:[1,6,14,25,31,55,61,88,89,97,102,105,115,120],ffffffff:113,ffs2nativ:[7,61],fhss:21,ficr:23,fictiti:[116,117],field:[20,27,85,88,92,94,100,102,104,105,106,116,117],file:[1,2,4,6,7,10,11,12,34,36,37,41,43,46,48,50,55,57,58,59,60,61,64,70,71,80,81,82,83,89,90,91,92,93,94,97,98,104,107,109,110,111,113,114,115,116,118],file_nam:61,filenam:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,70,71,88,98],filesystem:55,fill:[10,48,90,97,102,105,106],filter
 :[2,22,27,30,72,107],find:[1,2,3,20,28,34,55,61,89,91,93,95,97,98,107,110,111,114,120],find_info_req_rx:76,find_info_req_tx:76,find_info_rsp_rx:76,find_info_rsp_tx:76,find_type_value_req_rx:76,find_type_value_req_tx:76,find_type_value_rsp_rx:76,find_type_value_rsp_tx:76,fine:[9,105,106],finish:[4,115],fip:21,fire:101,firmwar:[110,112,115],first:[2,3,6,8,12,21,22,29,33,57,58,59,60,63,82,83,84,88,94,96,99,100,101,102,104,105,106,108,109,115,120],fit:[4,100,101],five:[20,21,22],fix:[6,11,118],flag:[1,6,12,27,29,55,57,58,59,61,62,64,80,81,82,89,98,102,104],flash:[1,9,39,43,48,55,57,58,59,61,90,91,94,107,111,112,113,115],flash_area_bootload:[88,93,94],flash_area_image_0:88,flash_area_image_1:[88,94],flash_area_image_scratch:[88,93],flash_area_nff:[93,94],flash_area_noexist:93,flash_area_reboot_log:[93,94],flash_map:[7,93,94],flash_map_init:94,flash_own:[93,94],flash_test:[7,92],flavor:107,flexibl:[91,95,100,116,117],flood:31,flow:[21,92,98,105,106],fmt:92,folder:[4,10,12,33,55,59,63,110]
 ,follow:[1,2,3,4,6,7,8,11,12,19,20,21,23,24,26,27,29,30,31,32,37,38,43,50,51,55,57,58,59,60,61,64,66,67,71,72,73,77,78,80,81,82,83,86,88,89,91,92,93,94,97,98,99,100,102,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118],footer:109,footprint:9,forc:[41,49,52],forgeri:22,forget:80,fork:10,form:[1,19,22,23,26,66,94,102,103,105,115,116],formal:[7,20],format:[8,29,50,66,68,71,72,92,94,98,105,109,116,117],formula:[3,60,83],fortun:55,forver:27,forward:100,found:[1,20,33,55,63,88,98,103,104,105,107,111,113],foundat:[4,21,31,107,113,116],four:[19,22,47],frame:115,framework:[21,28,98],frdm:53,free:[2,4,73,101,103,107,113],freedom:[103,105,106],frequenc:[21,24,84,86,88,115],frequent:[10,19,21,22,105,106],friend:31,from:[1,4,6,7,8,9,10,11,12,19,20,22,23,26,27,30,31,32,35,36,38,39,41,43,44,45,46,47,49,50,51,55,56,60,61,62,64,65,66,68,69,70,71,72,73,76,77,79,83,84,85,87,88,89,90,91,93,94,96,97,98,99,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117],fs_cli:7,fs_dirent:7,fs
 _file:7,fs_mkdir:7,fs_mount:7,fs_nmgr:7,fssl:[11,58],fsutil:7,ftdichip:98,fulfil:102,full:[1,7,8,20,21,28,30,48,55,88,93,94,97,100,103,104,109,120],fulli:[9,21,97,106,116,117],fundament:[1,120],further:[6,88],furthermor:[87,105,106],fuse:55,futur:[94,115,116,117,118],g_current_task:84,g_led_pin:109,g_os_run_list:[84,85],g_os_sleep_list:[84,85],g_os_start:84,g_task1_loop:109,gain:97,gap:[18,19,20,21,30,99,102,104],gatewai:115,gatt:[14,18,21,27,30,31,32,99,102,104],gatt_acc:102,gatt_svr:104,gatt_svr_chr_access_gap:[102,104],gatt_svr_chr_access_sec_test:104,gatt_svr_chr_sec_test_rand_uuid:104,gatt_svr_chr_sec_test_static_uuid:104,gatt_svr_register_cb:104,gatt_svr_svc:[102,104],gatt_svr_svc_sec_test_uuid:104,gaussian:21,gavin:58,gcc:[4,7,57],gcc_startup_:88,gcc_startup_myboard:88,gcc_startup_myboard_split:88,gcc_startup_nrf52:[88,110,112],gcc_startup_nrf52_split:[110,112,114,115],gdb:[4,7,12,38,47,61,62,88,97,107,109,110,111,113,114],gdb_arduino_blinki:12,gdbmacro:7,gdbpath:12,gdbserver
 :6,gen:[27,30],gener:[1,11,15,16,17,18,19,20,21,23,27,28,29,31,34,35,43,55,61,62,88,93,97,98,100,101,104,105,106,107,108,109,110,111,112,113,114,115,116],get32:84,get:[2,4,6,7,8,9,10,11,23,55,56,58,59,60,61,64,76,79,81,82,83,85,87,88,90,91,94,96,98,100,102,104,105,106,107,108,110,111,113,114,115,120],gfsk:21,ggdb:6,ghz:21,git:[11,55,58,80,81,82,107,116,117,118],github:[1,7,10,11,33,55,57,58,59,63,80,81,82,107,116,117,118],githublogin:118,githubpassword:118,githubusercont:[11,57,58,59,80,81,82],give:[55,97,105,106,115,116,117],given:[12,20,42,84,91,117],glanc:100,glibc:57,global:[1,29,62,102],gnd:[8,115],gnu:[3,4,12,38,47,107,111,113,114],goal:55,gobjcopi:6,gobjdump:6,gobl:81,goe:61,going:[91,105,109],golang:[11,59,82],gone:101,good:[7,9,22,55,88,97,100,106,115],googl:105,gopath:[11,57,58,59,60,80,81,82,83],gpg:[57,80],gpio:[8,91],gpl:[4,107,111,113,114],gplv3:[107,113],grain:9,graph:[1,50,62],great:[8,21,93],greater:[21,29,93],green:[2,10,12,107,111,112],grid:55,group:[2,10,20,76,94
 ,115],grow:53,guard:87,guid:[7,11,12,18,59,62,64,82,94,99,104,106,116],h_mynewt_syscfg_:94,hack:[7,9,12],had:87,hal:[1,7,9,48,55,61,86,90,97,107,111,113,120],hal_bsp:[7,88,107,110,111,113],hal_bsp_flash_dev:88,hal_common:[7,97,111,113],hal_flash:[7,88,107,111,113],hal_gpio:7,hal_gpio_init_out:109,hal_gpio_toggl:109,hal_os_tick:110,hal_tim:[84,86],hal_timer_cb:84,half:[16,17,88],halt:[87,107,111,113],handbook:[110,114],handi:88,handl:[17,20,27,28,30,61,101,102,103],handler:[87,88],happen:[9,20,26,101,104,105,106,107,117],happi:[7,9],hard:92,hardcod:[25,27],hardwar:[2,3,5,6,7,9,20,21,24,25,31,34,84,86,88,90,91,94,97,98,105,106,107,109,110,111,112,116,120],has:[2,3,4,7,10,11,12,20,22,24,26,30,34,36,43,50,55,57,58,59,61,62,77,80,81,82,84,85,87,88,91,92,94,102,103,104,107,109,110,111,115,116,117,120],hash:[34,37,43,46,71],have:[1,2,3,6,7,8,9,10,11,12,19,20,22,24,30,32,43,50,52,54,55,57,58,59,60,61,62,64,80,81,82,83,87,88,90,91,92,93,94,95,96,97,98,101,102,104,105,106,107,108,109,110,111,
 112,113,114,115,116,117,119,120],haven:[3,95,117,120],hci1:98,hci:[21,96],hci_adv_param:100,head:[11,58,80,81,82],header:[1,37,39,46,55,57,58,59,61,88,94,109],headless:2,health:105,heap:[87,88],held:116,hello:[12,69,108,120],help:[1,8,12,31,34,35,37,38,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,64,65,67,68,69,70,71,72,73,74,75,76,77,80,81,82,87,89,90,93,96,97,100,107,109,110,112,115,118],helper:[1,61,89,105,106],henc:95,her:87,here:[1,3,8,10,11,29,32,55,73,76,77,88,89,92,93,94,95,98,102,104,105,106,107,109,110,111,114,115,116,117,120],hertz:84,hex:[7,37,43,48,71,113,115],hexidecim:66,hfxo:24,hidapi:4,hidraw:4,hierarchi:94,high:[9,18,21,64,86],high_duti:27,higher:[11,14,20,21,55,58,59,72,80,81,82,87,93,94,95,98,117],highest:[84,85,87,93,94],highli:95,highlight:[2,6,30,107,110,112,114],hint:55,his:87,histori:93,hit:[36,109],hold:[33,43,63,115,116],home:[7,11,59,88,97,109,118],homebrew:[4,6,7,11,36,56,60,79,83],homepag:[1,43,61,92],hook:113,hop:21,host:[7,9,21,22,23,26,29
 ,30,66,70,71,97,98,102,103,104,107],how:[2,3,4,5,6,7,8,11,12,20,21,23,30,55,57,58,59,60,66,80,81,82,83,88,91,92,95,96,97,98,101,102,103,105,106,107,108,109,110,111,112,113,114,115,120],howev:[3,57,80,91,92,110,116],htm:98,html:[4,33,63,107,111,113],http:[1,4,10,11,12,33,39,55,57,58,59,61,63,80,81,82,92,98,105,107,110,111,113,114,116,118],httperror404:[57,80],human:[98,116],hw_bsp_nativ:61,hw_hal:55,hypothet:20,i2c:8,i2s:107,i2s_callback:107,i386:[4,6],iOS:101,ibeacon:[23,97,108,120],icon:[10,12],id16:104,id3:[33,63],id_init:94,idcod:107,idea:[61,100],ideal:21,ident:[18,20,22,23,27,30,66],identifi:[1,8,19,20,27,29,34,71,88,105,106,110,112,115],idl:[27,77,97],idx:27,ifdef:[94,109],ifndef:94,ignor:[6,27,82,94],illustr:[12,87],imag:[2,6,7,10,12,31,34,38,39,42,43,47,55,57,58,59,61,64,78,80,81,82,88,89,91,92,93,95,97,101,107,108,109,120],image_ec256:[107,110,111,112,113,114,115],image_ec:[7,107,110,111,112,113,114,115],image_rsa:[7,107,110,111,112,113,114,115],image_valid:[7,107,111,112,1
 14],img:[37,46,71,97,98,101,107,110,111,112,113,114,115],imgmgr:[7,92,94],imgmgr_module_init:94,immedi:[26,88,100,105,106],impact:24,impl:61,implemen:66,implement:[9,10,21,32,61,66,88,90,91,92,94,99,102,104,105,115],impli:[105,106,117],imposs:19,impract:104,improv:109,inc:[4,107,113],includ:[1,4,7,9,10,14,15,16,17,19,20,21,22,26,27,28,31,43,50,59,61,88,90,91,92,93,94,98,99,100,102,105,106,110,116,117],include_tx_pow:27,incom:20,incompat:[57,80,116],incomplet:[29,88],incorrect:42,increas:[21,22,94],incub:[7,55,94],inde:[87,113],indefini:[105,106],indent:6,independ:[22,91,94],index:[31,72,98],indic:[7,19,20,26,28,29,30,88,92,93,94,102,104,107,110,111,114],individu:[11,94,116],industri:21,infinit:[87,94,109],info:[39,57,58,59,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,103,107,111,113,114],inform:[1,6,7,12,20,22,23,27,29,34,37,39,40,57,58,59,61,62,64,66,71,80,81,82,88,90,91,94,95,97,100,103,104,105,106,107,109,115,116,117,118],infrastructur:97,ing:[105,106],inher:[1,23,102],i
 nherit:[1,4,59],init:[50,55,84,94],init_app_task:87,init_func_nam:94,init_funct:94,init_stag:94,init_tim:109,initi:[16,19,21,23,25,26,27,28,61,84,86,87,88,92,98,99,103,105,106,109],initialis:107,inoper:[26,105,106],input:[20,22,27,113],inquiri:[20,29],insid:[24,87,109,113],inspect:[48,103],instal:[3,7,9,33,39,54,55,63,78,87,88,89,96,97,98,107,108,110,111,112,113,114,117,119,120],instanc:[2,3,9,27,62,100,105,106,107],instant:20,instanti:87,instead:[7,11,12,24,92,94,101,107,109,110,111,112,113,114,118],instruct:[3,4,7,11,55,57,62,80,85,91,107,110,114],insuffici:20,int32_max:27,int32_t:[105,106],integ:94,integr:[12,22],intend:[24,29,36,95],interact:[2,8,92,101,109],interconnect:9,interdepend:94,interest:[7,14,18,88,97,100,105,120],interfac:[4,18,21,30,31,96,98,99,107,111,113],intern:[7,20,87,88,107],internet:[7,12,21,98,108],interrupt:[84,88],interv:[20,27,29],interval_max:27,interval_min:27,intervent:91,intiat:88,introduc:[1,30,93,94],introduct:120,invalid:[20,84,102],invoc:[6,104],in
 vok:[2,118],involv:[16,17,19,22,88,91],io_cap:27,iot:21,ipsp:21,ipv6:21,irk:[19,27],isbuildcommand:12,ism:21,isn:[88,97],isol:88,isshellcommand:12,issu:[1,6,10,30,55,66,87,110,111,112,114,115,119],ite_chr:102,item:[1,88,106],its:[7,10,11,18,19,20,55,61,85,87,88,91,92,93,94,96,97,100,102,103,104,105,106,115,116,120],itself:[26,61,94,110],javascript:55,jira:10,jlink:[61,88,110,112],jlink_debug:61,jlink_dev:61,jlinkex:[110,112,115],job:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,85,87,88,102],join:[3,95,120],json:[7,12,34,37,51,55,61],jtag:[4,38,42,47,107,110,111,113],jul:80,jump0:67,jumper:[8,113],just:[1,7,8,20,22,23,62,88,89,101,102,105,106,107,109,115,118,119],k64f:53,keep:[9,22,24,87,92],keg:[60,83],kei:[8,19,20,21,31,37,46,57,80,88,94,102,115],kept:85,kernel:[1,7,9,51,55,61,88,92,94,97,98],keyboard:[12,22,92],keyboarddisplai:27,keyboardonli:27,keychain:[57,80],keystor:27,keyword:[1,61,89,92,116],khz:[107,111],kick:[105,106],kilobyt:91,kind:31,kit:[8
 ,47,61,108,110,120],know:[1,8,12,30,61,92,93,102,103,105,106,108,109,120],known:[21,55,100],l13:110,l2cap:21,lab:32,label:[8,88,113],lag:104,languag:[11,12,55,91],laptop:[3,8,98,115],larg:[20,24,31],larger:31,las_app_port:115,las_app_tx:115,las_join:115,las_link_chk:115,las_rd_app_eui:115,las_rd_app_kei:115,las_rd_dev_eui:115,las_rd_mib:115,las_wr_app_eui:115,las_wr_app_kei:115,las_wr_dev_eui:115,las_wr_mib:115,last:[20,26,72,77,94,100,104,105,106,107,115],last_checkin:77,latenc:27,later:[7,8,72,97,103,107,115],latest:[1,2,4,7,11,49,52,55,56,60,79,83,107,116,117],latter:20,launch:12,launchpad:4,law:107,layer:[9,20,21,90,91,94,99,120],layout:91,ld4:111,ldebug:93,ldflag:50,ldr:113,lead:[87,103],learn:[7,26,61,108],least:[22,109,115,120],led1:112,led:[1,7,61,88,91,98,107,108,109,110,111,112,113,114,120],led_blink_pin:[88,109],left:[84,113,120],legaci:[30,94],len:[102,115],length:[20,21,27,88,92,102,115],less:[87,104,105,106],lesson:120,let:[4,8,55,88,97,99,100,101,102,103,104,105,106,1
 09,113,116,117],level:[1,2,9,14,18,20,23,27,29,30,31,32,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,61,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,88,93,94,95,101,102,105,106,107,111,115,117],level_list:72,leverag:96,lflag:[1,50,61],lib:[1,4,45,53,55,82,92,93,94],libc6:6,libc:[7,88],libc_baselibc:113,libftdi1:4,libftdi:4,libg:48,libgcc:48,libhidapi:4,librari:[1,4,48,50,55,58,81,88,89,91,92,97,116,117],libusb:4,libusb_error_access:111,libusb_open:111,licens:[4,7,11,55,61,97,107,111,113,114,116],lieu:66,life:[24,105],light:[9,31,108,111,112,113,114],lightblu:101,like:[2,3,5,8,12,31,55,58,59,62,81,82,87,88,91,92,97,107,111,113,116],likewis:62,limit:[3,20,27,29,100,105],line:[2,6,7,12,36,38,39,47,62,88,92,98,104,109,111,112,116,118],lines_queu:92,link:[2,3,7,20,21,22,27,34,38,42,60,61,81,83,85,94,95,97,98,101,106,107,109,110,111,112,113,114,115,120],linker:[1,61,89,97,113],linkerscript:[61,88],linux:[5,7,9,12,56,66,78,79,98,107,109,110,111,113,114],
 list:[3,6,7,8,12,22,27,29,34,35,48,50,51,53,57,59,61,66,71,72,73,75,76,77,78,80,85,88,89,90,92,94,95,97,100,103,104,107,108,109,110,111,112,113,114,115,116,117,120],listen:[2,14,30,31,66,100],lit:98,littl:[6,20,23,97,104,115,117],live:[103,104,107,116,117],lma:113,lmp:20,load:[2,4,5,7,12,34,39,43,47,55,57,58,59,61,88,101,108,109,115,117],load_arduino_blinki:12,load_arduino_boot:12,loader:[43,50,88,92,107,110,111,112,114],local:[1,4,6,7,10,11,20,27,28,36,40,49,55,58,60,71,81,83,89,100,107],localhost:66,locat:[1,8,11,19,31,61,88,104,109,113,116],lock:[9,87],log:[1,7,10,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,64,65,66,67,68,69,70,71,73,74,75,76,77,78,80,81,82,93,94,97,107,110,111,113,114],log_fcb:94,log_init:94,log_level:[50,94],log_nam:72,log_newmgr:93,log_newtmgr:[50,93,94],log_nmgr_register_group:94,logic:[1,21,23,29,115],login:118,loglevel:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,64,65,66,67,68,69,70,71,72,73,74,75,7
 6,77,80,81,82],logxi:81,longer:[3,8,11,21,24,93,98],longrange_interv:27,longrange_pass:27,longrange_window:27,look:[8,24,55,61,88,90,92,100,102,103,104,117,119,120],lookup:102,loop:[87,94,97,109],lora:115,lora_app_shel:115,lora_app_shell_telee02:115,lora_app_shell_telee0:115,lora_mac_timer_num:115,lose:26,loss:[26,29],lot:[7,93,100],low:[9,20,21,22,31,84,88,102,105,106,107,108,111,120],lower:[20,84,86,87,93,94,99,109,113],lowest:[73,85,94],lrwxr:[4,81],lst:[34,55,61],ltbase:94,ltd:27,ltk:27,ltk_sc:27,ltrequir:94,m32:6,mac:[3,5,7,9,12,20,55,56,78,79,98,101,107,109,110,111,113,114,115],machin:[2,3,7,8,89,98,120],maco:[4,66],macro:[20,88,94,104],made:[2,10,11,20,55,71,84,115],magic:61,mai:[2,4,6,7,8,12,22,27,29,30,31,51,53,57,58,62,80,81,82,87,88,91,92,93,94,97,98,107,109,110,111,112,113,114,115,116],mail:[3,10,95,97,108,120],main:[7,12,26,31,57,61,77,80,87,90,92,94,97,100,105,106,107,110,111,112,113,114],maintain:[4,49,85,94,116,117],major:[55,61,91,106,116,117],major_num:[116,117],ma
 ke:[1,2,3,7,8,9,19,20,21,24,30,31,33,55,57,63,71,85,88,96,97,98,100,102,103,105,106,107,109,113,115,116,120],malloc:88,man:[6,27],manag:[6,8,16,17,21,27,31,39,45,57,58,59,61,64,66,68,71,72,73,76,77,80,81,82,87,88,89,91,92,94,109,110,117,120],mandatori:[20,88,104,105,106],mani:[20,31,55,61,88,90,102,107,116],manifest:[34,37,43,55,61],manipul:[1,39,45],manner:[27,29,87],manual:[21,25,60,83,87,107,113],manufactur:[19,27,29,39,43,57,58,59,66,100,107],map:[2,3,8,20,27,28,61,91,93,94,102,109,116,117],mar:[110,112,115],march:68,mark:[27,28,71,88,113],marker:88,market:[31,112],mask:27,mass:[98,111],mass_eras:[110,111],master:[1,7,11,27,56,57,59,60,79,80,82,83,107,116,117],match:[2,7,20,88,89,91,107,111,116,117],matter:10,max_conn_event_len:27,max_ev:27,maxim:9,maximum:[21,27,29,92],mbed:[110,114],mbedtl:[7,107,110,112,114],mblehciproj:98,mbuf:87,mcu:[7,9,53,89,107,110],mcu_sim_parse_arg:109,mdw:113,mean:[2,12,20,94,104,111,117],meant:1,measur:[9,115],mechan:[1,22,87,94,116,118],medic:[21,55
 ],meet:[98,107,108,110,111,112,113,114],mem:[7,94],member:[92,100,102],memcpi:102,memori:[9,20,48,73,87,88,91,93,102,113,115],mempool:[64,80,81,82],memset:[100,103,106],mention:12,menu:[12,59,111,113],merchant:4,mesh:32,messag:[2,4,22,31,42,57,58,59,75,92,107,111,115],messsag:62,met:20,meta:8,metadata:43,meter:21,method:[25,102,116],mfg:[7,39,57,58,59,70,94],mfg_data:29,mfg_init:94,mgmt:[7,92,93,94],mgutz:81,mhz:[21,24],mib:[55,81,115],mic:20,micro:[55,107,108,110,112,113,115],microcontrol:[9,113],microsecond:[24,84],microsoft:12,mid:[14,111],middl:27,might:[1,2,18,20,61,88,91,92,93,97,99,100,105,106,107,111,116,117,119],migrat:94,milisecond:27,millisecond:[27,115],min:[72,73],min_conn_event_len:27,mind:97,mingw32:59,mingw64:59,mingw:[4,7,8,12,56,82,109],mini:111,minicom:[8,109],minim:[88,97],minimum:[27,29,72,97],minor:[106,116,117],minor_num:[116,117],minut:[81,105],mip:[7,61],mirror:[1,10,11,116],mislead:6,mismatch:20,miss:[20,57,88,93,97,108],misspel:93,mitm:27,mkdir:[11,43,80,8
 2,88,107,110,111,112,113,114,115,116],mlme:115,mman:57,mn_socket:7,mobil:31,mod:[30,101],mode:[9,20,22,27,29,100,107,111,113],model:[21,22,32,110],modern:8,modif:11,modifi:[6,62,88],modul:[72,84,86,87,109,115],module_list:72,moment:[102,117],mon:[107,110,111],monitor:[92,113,120],monolith:104,more:[1,4,7,9,10,12,20,21,22,29,30,34,35,39,43,51,53,57,58,59,61,62,64,80,81,82,85,87,88,94,97,100,104,105,106,107,109,110,115,117,120],most:[1,8,14,19,21,23,24,25,61,88,89,93,100],mostli:[6,9,105,106],motor:9,move:[8,45,57,58,59,81,84,87,109,113],mpool:115,mpstat:[64,78,80,81,82],msdo:88,msec:27,msg_data:27,msp:[107,113],msy:59,msys2:56,msys2_path_typ:59,msys64:59,msys_1:73,mtu:[20,27,28,101],much:88,multi:[1,9,50,62,91],multilib:[6,7,57],multipl:[4,23,27,29,34,35,50,51,55,87,94,100,104,105,116],multiplex:21,multiplexor:91,multitask:87,must:[1,2,4,5,7,8,9,11,12,14,22,24,25,33,37,41,46,53,55,57,59,61,63,66,68,71,80,84,86,87,88,91,92,93,94,97,100,102,109,112,113,115,116,117],mutex:87,my_blinki:5
 0,my_blinky_sim:[7,34,35,43,55,61,97,98,110,111],my_blocking_enc_proc:20,my_config_nam:94,my_new_target:50,my_newt_target:50,my_proj1:97,my_proj:97,my_project:[1,107,116],my_target1:62,myapp_console_buf:92,myapp_console_ev:92,myapp_init:92,myapp_process_input:92,mybl:[34,35,46,50,66,73,76,77],myble2:[37,38,98],myblehostd:66,mybleprph:66,mybletyp:66,myboard:[45,88],myboard_debug:88,myboard_download:88,mycor:71,mylora:115,mymcu:90,mymfg:70,mynewt:[1,3,4,5,6,11,13,20,21,25,30,32,37,38,39,43,44,50,51,53,55,56,57,59,60,61,62,71,78,79,80,82,83,86,93,94,95,96,98,99,101,105,106,107,108,109,110,111,112,113,114,115,117,120],mynewt_0_8_0_b2_tag:[116,117],mynewt_0_8_0_tag:116,mynewt_0_9_0_tag:116,mynewt_1_0_0_b1_tag:116,mynewt_1_0_0_b2_tag:116,mynewt_1_0_0_rc1_tag:116,mynewt_1_0_0_tag:116,mynewt_1_3_0_tag:[57,59,80,82],mynewt_arduino_zero:[107,116],mynewt_v:[92,94],mynewt_val_:94,mynewt_val_log_level:94,mynewt_val_log_newtmgr:94,mynewt_val_msys_1_block_count:94,mynewt_val_msys_1_block_s:94,myne
 wt_val_my_config_nam:94,mynewtsan:75,myperiph:101,myproj:[2,7,12,88,107,109,110,111,112,113,114,116],myriad:9,myseri:[73,76,77],myserial01:66,myserial02:66,myserial03:66,myudp5683:66,myvar:65,name1:50,name2:50,name:[1,2,4,7,8,10,11,12,20,21,27,29,34,35,37,38,42,43,44,45,47,48,50,51,53,55,57,58,59,61,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,88,89,90,92,93,97,100,102,104,105,106,107,109,110,111,112,113,114,116,117,118],name_is_complet:100,name_len:100,namespac:105,nano2:[43,53,88,114],nano2_debug:[88,114],nano:[108,120],nanosecond:84,nativ:[2,3,7,12,43,50,53,55,59,61,66,93,94,98,110,111,120],natur:88,navig:[10,120],nding:104,nearest:110,neatli:100,necessari:[6,24,39,47,57,58,59,97,102,107,115],need:[4,5,6,7,8,9,10,11,12,14,23,24,32,43,50,52,55,57,58,59,60,61,64,66,80,81,83,84,87,88,90,91,92,93,94,97,98,100,102,103,104,105,106,107,109,110,111,112,113,114,117,118],neg:104,net:[4,7,24,51,94,97,98,102,104],network:[1,9,23,27,31,32,55,87,115],never:[19,87,94,97,102],new_bletin
 i:45,new_slinki:45,newer:6,newest:93,newli:[1,10,19,43,98,105,106,116],newlin:92,newt:[1,3,5,6,7,13,32,56,61,62,73,76,77,80,81,82,83,87,88,89,91,93,94,96,97,98,101,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120],newt_1:[57,60],newt_1_1_0_windows_amd64:60,newt_1_3_0_windows_amd64:59,newt_group:2,newt_host:2,newt_us:2,newtgmr:[81,82,83],newtmgr:[1,7,9,13,57,58,59,63,64,78,79,92,93,94,120],newtmgr_1:[80,83],newtmgr_1_1_0_windows_amd64:83,newtmgr_1_3_0_windows_amd64:82,newtron:[93,94],newtvm:11,next:[7,8,24,30,71,77,82,84,85,92,94,97,100,104,105,106,107,110,113,117],next_checkin:77,next_t:84,nff:[7,93,94],nffs_flash_area:[93,94],nil:67,nim:104,nimbl:[7,23,24,26,29,66,94,96,99,100,101,102,103,104],nmgr_shell:[92,94],nmgr_shell_pkg_init:94,nmxact:11,no_rsp:28,no_wl:[27,30],no_wl_inita:27,node:[21,32,55],nodup:27,nogdb:[38,47],noinputnooutput:27,non:[7,18,19,21,24,27,31,32,94,105,106,115,116],none:[4,7,8,12,20,27,30,82,88,107,111,115],nonzero:103,nor:22,nordic:[23,88,110,1
 12,120],nordicsemi:[110,112,115],normal:2,notat:[55,113],note:[1,2,4,6,7,10,11,12,21,22,23,24,29,32,43,47,50,57,58,59,60,61,66,68,71,80,81,82,83,84,87,88,89,92,93,94,97,98,100,102,104,105,106,107,109,110,111,112,113,114,115,116,117,118,120],noth:[11,105,106],notic:[7,11,55,61,87,88,97,117],notif:[10,27,28,92,99],notifi:[10,28,103,104],notnul:94,nov:8,now:[2,8,9,59,84,88,97,99,100,101,103,104,105,106,107,110,115,116],nreset:107,nrf51:[24,53,88],nrf51dk:53,nrf52840pdk:32,nrf52:[4,24,61,88,98,108,109,110,115,120],nrf52_blinki:[109,112,114],nrf52_boot:[98,112],nrf52_hal:88,nrf52dk:[37,38,53,61,62,88,94,97,98,101,109,112],nrf52dk_debug:[61,88,109],nrf52dk_download:88,nrf52k_flash_dev:88,nrf52pdk:[98,112],nrf52xxx:[48,88,110],nrf5x:24,nrf:25,nrpa:[19,105,106],nsec:84,ntick:84,ntrst:107,nucleo:53,number:[1,8,9,10,22,27,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,60,61,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,83,84,86,87,88,93,94,98,104,105,106,107,109,
 113,115,116,117],numer:[20,22,85,88],nvm:107,objcopi:6,objdump:6,object:[4,11,48,55,61,81,84,87,88,91,103],objsiz:[6,48],observ:[14,27,98],obtain:[27,116],obvious:53,occur:[26,27,93,102,103,105,106],occurr:94,ocf_sampl:[7,61],octet:[27,29,31],off:[2,20,21,31,32,91,92,97,98,105,106,109,113,120],offer:[1,21],offset:[20,28,71,88,93,94],often:[9,55,88],oic:[7,51,66,120],oic_bhd:66,oic_bl:66,oic_seri:66,oic_udp:66,oic_udpconnstr:66,oicmgr:[7,66],old:45,older:[59,82,111],oldest:93,olimex:[108,120],olimex_blinki:113,olimex_stm32:[53,113],omit:[47,93],on_reset:26,on_sync:26,onboard:120,onc:[19,29,55,57,61,80,84,87,100,105,108,109,115,116],one:[1,4,7,8,10,11,12,19,20,21,22,23,27,29,30,31,34,35,39,43,45,50,51,53,57,58,59,61,67,85,87,88,91,92,93,94,97,98,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,120],ones:[14,98,120],ongo:27,onli:[1,2,7,8,10,11,12,14,19,20,24,27,29,31,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,60,61,62,66,72,80,83,84,86,87,88,91,9
 2,93,94,95,100,102,105,107,109,115,116,117,118],onlin:107,onto:[1,20,42,43,47,88,108,110,111,112,113,114],oob:[20,27,29],open:[4,8,9,10,12,20,21,38,39,47,55,57,58,59,61,91,105,107,110,111,113,114],openocd:[12,88,107,110,111,113,114],openocd_debug:110,oper:[1,9,12,15,18,20,21,26,31,39,57,58,59,84,87,91,92,94,95,97,98,102,103,104,105,106,107,115,117,118],oppos:[31,118],opt:4,optim:[1,24,32,37,38,43,50,61,88,89,97,98,101,107,110,111,112,113,114,115],optimis:31,option:[2,3,4,6,7,8,12,22,23,27,36,37,46,51,55,62,66,72,84,88,93,94,97,98,104,107,111,113,115,116,117],orang:[110,114],order:[1,8,9,22,33,55,61,63,85,93,94,115,117,119],org:[1,4,10,11,39,57,58,59,61,80,82,92,105,107,110,111,113,114],organ:[11,116],origin:[11,46,88,113],os_align:84,os_arch:61,os_arch_ctx_sw:85,os_callout:[61,109],os_callout_init:109,os_callout_reset:109,os_cfg:61,os_cli:94,os_cputim:61,os_cputime_delay_nsec:[84,86],os_cputime_delay_tick:[84,86],os_cputime_delay_usec:[84,86],os_cputime_freq:24,os_cputime_get32:[84,
 86],os_cputime_init:[84,86],os_cputime_nsecs_to_tick:[84,86],os_cputime_ticks_to_nsec:[84,86],os_cputime_ticks_to_usec:[84,86],os_cputime_timer_init:[84,86],os_cputime_timer_num:[24,86],os_cputime_timer_rel:[84,86],os_cputime_timer_start:[84,86],os_cputime_timer_stop:[84,86],os_cputime_usecs_to_tick:[84,86],os_dev:61,os_error_t:84,os_ev:[92,109],os_eventq:[61,92],os_eventq_dflt_get:[26,87,92,94,105,106,109],os_eventq_init:92,os_eventq_put:92,os_eventq_run:[26,87,94,105,106,109],os_exit_crit:84,os_fault:61,os_get_return_addr:84,os_heap:61,os_idle_prio:84,os_info_init:84,os_init:84,os_init_idle_task:84,os_main_stack_s:84,os_main_task_prio:[84,94],os_main_task_stack_s:94,os_malloc:61,os_mbuf:61,os_mempool:61,os_mutex:[61,84],os_mutex_releas:84,os_ok:84,os_pkg_init:94,os_san:61,os_sch:[61,84,85],os_sched_ctx_sw_hook:[84,85],os_sched_get_current_task:[84,85],os_sched_insert:[84,85],os_sched_next_task:[84,85],os_sched_os_timer_exp:[84,85],os_sched_remov:[84,85],os_sched_resort:[84,85],os_
 sched_set_current_task:[84,85],os_sched_sleep:[84,85],os_sched_wakeup:[84,85],os_sched_wakeup_tick:84,os_sem:[61,87],os_sem_init:87,os_sem_pend:87,os_sem_releas:87,os_start:84,os_task:[61,84,87],os_task_init:87,os_task_list:84,os_test:61,os_tick_idl:[107,110],os_ticks_per_sec:109,os_tim:61,os_time_t:84,os_timeout_nev:87,os_wait_forev:[84,87],otg1:113,otg2:113,other:[1,6,10,11,20,22,24,29,31,50,55,61,84,87,88,89,92,94,97,98,99,100,102,103,107,108,109,110,116],otherwis:[87,116,117],oui:[19,115],our:[20,55,88,97,100,105,106,108,109,117],our_id_addr:[30,101],our_id_addr_typ:101,our_key_dist:27,our_ota_addr:[30,101],our_ota_addr_typ:[30,101],out:[8,9,11,20,21,22,23,26,27,61,80,81,82,90,92,97,99,101,105,106,108,113],out_id_addr_typ:30,outdat:58,outfil:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62],outlin:5,output:[1,7,12,21,22,27,30,34,35,37,38,39,40,41,42,43,44,45,46,47,49,50,51,52,54,57,58,59,62,69,73,75,76,77,81,88,93,107,109,110,111,113,114,115],outsid:[20
 ,21],over:[20,21,22,23,27,29,31,65,66,67,68,69,70,71,72,73,74,75,76,77,102,108,109,111,115,120],overal:[10,24],overlap:20,overrid:[50,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,88,98],overridden:[23,94,98],overwrit:[6,49,50,59,60,82,83,88,92,107],own:[2,11,19,20,39,57,58,59,61,87,91,96,97],own_addr_t:[105,106],own_addr_typ:[27,66,105,106],owner:118,pacakg:97,pack:[4,55,81,110,112],packag:[6,9,11,23,24,26,34,39,40,41,43,45,50,51,52,53,55,56,58,59,60,79,83,87,89,98,108,109,110,115,116,117,120],packet:[20,21,27,29,105,115],pacman:[7,59],page:[1,4,5,6,7,8,10,20,22,57,58,60,80,81,83,88,97,99,103,105,106,108],pair:[20,21,22,27,66,94,101,103],panel:12,param:[27,103],paramet:[1,20,26,27,28,30,61,66,72,84,94,100,102,103,104,105,106],parameter_nam:94,parameter_valu:94,parlanc:11,parmaet:27,parmet:[27,28],pars:[55,105],part:[22,29,90,100,101,104],parti:[105,107],partial:[64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82],particular:[4,20,47,61,87,88,91,92,103,105,106],partit:[20,88
 ],pass:[1,7,12,20,27,61,84,92,100,104,105,106],passiv:27,passkei:[20,22,27],password:[11,58,80,98,118],past:20,patch:[110,111,114],path:[2,4,6,11,12,29,50,57,58,59,60,61,66,80,81,82,83,88,89,94,116],pathloss:29,pattern:[27,88],pca100040:98,pca:112,pdu:[20,27],peer:[10,22,28,66,102,104,105,106],peer_addr:[27,30,66,100],peer_addr_typ:[27,30,66,100],peer_id:66,peer_id_addr:101,peer_id_addr_typ:101,peer_nam:66,peer_ota_addr:101,peer_ota_addr_typ:101,pem:[37,46],pencil:10,pend:20,per:[11,19,117],perform:[3,4,5,9,11,12,20,22,25,27,36,57,58,59,64,80,81,82,84,87,88,92,94,102,107,109,110,115,117],perhap:116,period:[9,19,22,27],peripher:[9,20,21,24,26,29,30,88,91,96,97,100,103,104,105],perman:[71,100,103],permit:[20,104,107],pertain:103,phone:[22,31],php:55,phy:[21,27],phy_opt:27,physic:[21,27,29,66,92],pick:[85,87,105,106],pictur:110,pid:111,piec:[21,88],pin:[7,8,20,88,91,109,110,113,115],ping:87,pinout:90,piqu:120,pkg1:93,pkg2:93,pkg:[1,7,11,39,43,50,53,55,57,58,59,61,89,90,92,93,94,97,109]
 ,pkg_init_func1_nam:94,pkg_init_func1_stag:94,pkg_init_func2_nam:94,pkg_init_func2_stag:94,pkg_init_func:94,pkg_init_funcn_nam:94,pkg_init_funcn_stag:94,pkga_syscfg_nam:94,pkga_syscfg_name1:94,pkga_syscfg_name2:94,pkgn_syscfg_name1:94,place:[3,55,61,94,97,98,104,105,106,113,117],plai:[12,21],plain:[111,117],plan:2,platform:[2,7,9,11,12,23,24,57,58,59,66,80,81,82,87,88,89,91,97,107,109,110,111,113,114],pleas:[39,57,58,59,89,90,107,108,116],plist:61,plug:[8,113,114],point:[2,4,6,31,85,88,90,92,97,102,103,105,106],pointer:[67,84,85,88,92,102,103],polici:[27,116],poll:87,pong:87,pool:[73,80,87,115],popul:[1,7,12,50,62,108,120],port:[2,12,66,87,92,98,107,109,110,111,112,113,114,120],portingto:89,posit:113,posix:59,possibl:[21,22,24,27,28,30,32,36,53,104,116],post:[49,97],potenti:[91,117],pour:[58,81],power:[2,9,20,21,22,27,29,31,55,88,91,92,98,107,112,113,115],ppa:4,pre:[4,9,116,117],precaut:102,preced:23,precis:[6,20],preempt:87,preemptiv:87,prefer:[3,27,29,102],preference0x01:27,prefix
 :[61,94],prepar:[20,110,112,115],prerequisit:12,presenc:[88,100,105,106,116],present:[1,88,92,98,113],press:[8,12,97],presum:115,prev_ind:103,prev_notifi:103,prevent:[87,102],previ:[101,103],preview:[98,112],previou:[21,56,57,58,59,78,79,80,81,82,93,94,97,98,109,116],previous:[6,12,57,58,59,60,80,81,82,83,101,119],prevn:[101,103],pri:77,primari:[27,88,104,106],primary_phi:27,primo:108,primo_boot:110,primo_debug:110,primoblinki:110,print:[48,57,58,59,62,92,93],prior:[22,24,49,87,115],prioriti:[77,84,85,87,94,98,120],priv:27,privaci:[19,21,27],privat:[19,22,32,37,46,57,66,80,105,106],privileg:2,pro:[107,110],probabl:[7,88,99,118],probe:110,problem:[7,93],proce:[3,6,11,107,110,111,112,113,114],procedur:[6,11,16,19,20,22,27,28,64,75,80,81,82],proceed:[7,99,105,106],process:[3,6,9,10,20,22,26,27,31,61,85,88,92,94,105,106],processor:[4,9,107,113],produc:111,product:[55,91,98],profil:[14,15,16,17,21,27,28,31,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,81,82,97,107],profile01:[65,67,68,
 69,70,71,72,73,74,75,76,77],profile0:77,program:[4,6,8,12,23,85,92,107,109,110,112,115],programat:92,programm:111,progress:[7,20,96],project:[3,6,8,11,33,34,39,40,41,44,49,50,52,55,57,58,59,61,63,92,101,118,119,120],prompt:[7,8,11,12,47,58,59,88,97,107,109,110,111,112,113,114],prone:104,properli:[24,61,87,98,102],properti:[12,19,31,59,88,99,110],propos:10,protect:22,protocol:[14,20,21,28,61,66],prototyp:[91,94,105,106],provid:[1,2,7,9,11,12,19,20,21,22,27,30,31,37,39,45,50,57,58,59,66,70,71,72,75,80,86,87,88,90,91,92,95,99,105,106,107,115,116,117],provis:[21,32],provision:31,proxi:[21,31],psm:27,psp:[107,111],pst:68,pth:113,public_id:27,public_id_addr:30,public_target_address:29,publish:22,pull:[11,49,80,82,109,113],purpos:[4,22,50,55,88,102,115],push:10,put:[1,2,7,43,61,80,82,88,100,105,106],putti:[8,109],pwd:[2,11],pwm:9,pwr:[111,113],px4:4,python:[33,63],qualifi:102,queri:[9,19,50,55,57,58,59,61,62,100],question:97,queu:20,queue:[26,61,84,87,92,94,105,106,120],quick:[2,3],quickst
 art:2,quiet:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62],quit:[19,88,97,100,105,106,107,110,111,113,114],quot:66,radio:[21,24,98],raff:81,ram:[48,88,90,97,107],ram_siz:88,rand:27,random:[19,20,25,27,30,66,98,104,105,106],random_id:27,random_id_addr:30,randomli:19,rang:[9,20,21,29,115],rate:[66,92,98,115],rather:[14,20,88],raw:[11,57,58,59,80,81,82,92,94],rb_bletini:50,rb_blinki:[43,50],rb_blinky_rsa:43,rb_boot:43,rbnano2_blinki:114,rbnano2_boot:114,rdy:84,read:[4,6,7,11,12,14,18,19,20,23,27,28,55,61,64,65,68,73,76,77,80,81,82,92,94,101,103,104,105,106,107,108,111,114,115,116],read_chr:102,read_rsp_rx:76,read_rsp_tx:76,read_type_req_rx:76,read_type_req_tx:76,read_type_rsp_rx:76,read_type_rsp_tx:76,readabl:[98,118],readdesc:7,readi:[10,84,85,92,107],readm:[7,11,55,61,88,97],readnow:61,real:[1,7,9,87,92,95,97,104],reason:[20,26,27,101,103,115,116],reassembl:21,rebas:11,reboot:[7,71,93],reboot_log:72,reboot_log_flash_area:[93,94],rebuild:[32,61,82],recal:[
 102,116],receiv:[10,14,20,27,29,31,55,81,92,100,103,104,111,115],recent:110,recip:6,recipi:29,recogn:55,recommend:[3,4,7,12,57,58,80,81,92,93,94,100,104,110,114],reconnect:102,recreat:117,recurs:[55,61],red:[27,28,111,113],redbear:[108,120],redefin:93,redistribut:[55,107,116],reduc:[9,10,22,24,31],ref0:67,refer:[7,8,10,18,22,23,29,55,67,88,100,105,106,107,109,113],referenc:1,reflect:101,refrain:26,refresh:[2,49,107],regardless:41,region:88,regist:[23,75,85,89,94,102,104],registr:[17,102],reject:20,rel:[84,87],relai:[21,31],relat:[10,27,31,43,100,103,107,115],relationship:27,releas:[3,4,7,31,49,56,78,79,87,94,107,116,117],release_not:[7,11],relev:90,reli:[1,7,55,94],reliabl:[21,105,106,117],remain:[88,102],remaind:[88,100,116],rememb:[2,41,80,82,107],remind:107,remot:[1,7,9,12,20,27,28,49,55,66,78,80,81,82,98,107,108,109,120],remov:[2,4,6,27,35,45,60,83,84,92,102,107],repeat:[2,11,20,102],repeatedli:29,replac:[4,6,88,90,94,107,109],repli:27,repo814721459:55,repo:[1,6,7,10,11,41,55,57
 ,61,80,88,97,107,109,110,111,112,113,114,115,118],repop:7,report:[1,4,6,10,20,88,107,111],reposistori:7,repositori:[1,4,11,12,40,41,44,49,51,52,57,61,80,96,97,99,107,108,115,119,120],repres:[1,12,61,86,92,104],reproduc:[1,61,105,106],req_api:[61,92],request:[12,20,27,66,67,74,78,88,101,102,107,111,113,115,116,117],requir:[1,2,4,6,9,11,20,24,30,31,53,59,61,66,80,82,87,89,90,91,92,93,94,97,100,102,107,110,114,115,116,117,120],resch:84,reserv:[20,88,91,115],reset:[25,64,78,80,81,82,97,98,101,110,111,112,114],reset_cb:26,reset_config:107,reset_handl:[88,113],resid:[91,104],resign:[57,58,59],resolut:[22,86],resolv:[1,19,20,22,27,32,55,66,81,93,105,106,116],resourc:[9,20,29,61,107],respond:[17,25,100,102,104],respons:[15,20,28,29,69,85,87,92,100,102],rest:[1,46,61],restart:[2,107],restor:[110,112,115],restrict:[94,102,103],restructuredtext:10,result:[12,20,58,62,94,104,111],resum:[21,100,103],resynchron:49,retain:[94,103],retransmit:31,retri:[114,115],retriev:[57,80,97],reus:[55,81,94],re
 usabl:55,revdep:[1,50,62],revers:[1,23,50,62,102,113],review:[10,100],revis:4,revision_num:[116,117],revisit:[97,103],rfc:68,ribbon:113,rigado:[48,112],right:[2,3,10,55,61,84,100,113],rimari:104,ristic:104,role:[20,21,30,31,102],root:[2,4,8,31,80,116],routin:84,rpa:[19,27],rpa_pub:[27,66],rpa_rnd:[27,66],rsp:27,rssi:[27,29,98],rtc:9,rto:[55,87],rtt:[92,120],rubi:[11,55,58],rule:[94,111],run:[2,3,4,5,6,8,9,11,23,24,30,34,39,41,43,50,52,55,57,58,59,60,61,64,66,67,77,78,80,81,82,83,84,85,87,88,91,93,95,97,98,105,106,108,110,111,112,113,114,115,120],runner:12,runtest:7,runtim:[25,77,107],runtimeco:[57,58,59,80,81,82,107,116],rwx:88,rwxr:[80,82],rx_cb:92,rx_phys_mask:27,rx_power:27,safeguard:87,safeti:102,sai:[61,107,116,117],sam0:107,sam3u128:[110,112,115],samd21:107,samd21g18a:107,samd21xx:107,samd:107,same:[6,10,12,22,29,34,37,47,51,59,61,78,88,89,92,93,94,100,102,103,108,110,112,115,116,117,118],sampl:[1,12,21,30,61,89,94],sample_target:53,saniti:[77,87,97],satisfactori:116,satisfi:1
 17,save:[12,31,49,50,71,92,102],saw:103,sbrk:[88,110,111,112,113,114],scale:31,scan:[15,21,24,26,27,29,98,100],scan_interv:27,scan_req:27,scan_req_notif:27,scan_rsp:27,scan_window:27,scannabl:[27,30],scenario:22,scene:31,schedul:[9,24,87,91],schemat:88,scheme:[19,29,88],scientif:21,sco:20,scope:12,scratch:88,screen:[8,115],script:[7,42,61,113],scroll:[12,101],sdk:[45,53,94],search:[12,89,97,107,113,116],second:[22,26,27,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,88,100,105,106,109,113],secondar:104,secondari:[27,71,88,104],secondary_phi:27,secret:[22,27],section:[1,5,6,7,11,12,14,24,25,29,30,61,87,88,93,94,96,100,103,104,107,108,116,117],sector:113,secur:[21,104,118],see:[2,4,5,6,7,8,10,11,12,21,22,23,24,33,36,43,55,57,58,59,61,63,64,66,80,81,82,87,88,91,93,94,97,98,100,101,102,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118],seem:100,seen:[116,120],segger:[92,110,112,115,120],segment:21,select:[4,12,19,21,55,59,107,109,110,111,113],self:[3,30,89,105,106],sema
 nt:103,semaphor:87,send:[3,14,20,27,28,31,38,42,47,64,66,67,69,74,78,80,81,82,92,95,100,108,120],sender:100,sens:20,sensibl:94,sensor:[9,31,120],sent:[20,29,92,102,104,115],sentenc:62,sep:[4,81,82],separ:[20,26,34,35,50,51,66,102,105,106,107,110,111,113,114,115],sequenc:[87,92],seri:[104,120],serial:[66,92,110,114,115],serv:[18,55,88],server:[12,14,18,20,21,27,31,104,115],servic:[16,17,21,27,28,29,31,87,91,95,100,101,102,103,117],service_data_uuid128:[27,29],service_data_uuid16:29,service_data_uuid32:[27,29],session:[12,38,39,47,55,57,58,59,61,88,107,110,111,113,114],set:[1,2,7,8,9,10,12,19,20,23,24,27,28,29,31,32,34,36,37,39,50,53,55,56,58,59,61,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,79,81,82,84,86,91,92,98,101,102,105,106,107,108,110,111,112,113,114,115,116,117,118],setting1:93,setting2:93,settl:25,setup:[11,57,59,60,71,80,82,83,97,98,108,109],sever:[3,20,21,23,27,61,88,89,91,94,95,104,105,106,112,113,116],shall:[24,27,29],share:[4,22,87,116],shell:[1,7,8,21,30,55,59,80,91,9
 2,93,94,108,115],shell_cmd_argc_max:115,shell_init:94,shell_prompt_modul:109,shell_task:[93,94,109],shell_task_prior:93,shield:87,shift:[12,21],ship:6,shortcut:12,shorten:100,shorthand:116,shot:115,should:[4,8,10,12,19,26,30,32,55,57,59,61,81,84,85,88,91,92,94,98,100,101,102,103,105,106,107,109,110,111,112,113,114,115,116,119],show:[1,4,5,6,7,8,11,12,27,28,31,36,39,40,43,50,53,57,58,59,60,61,62,72,80,81,82,83,92,93,94,95,98,104,107,108,109,110,111,112,113,114,115,120],shown:[6,7,12,43,55,61,87,102,107,110,112,115,116,118],sibl:[11,117],sid:27,side:[12,21,30],sierra:[58,81],sig:[20,29,31],sign:[6,10,37,46,47,57,58,59,80,98,108],signal:[20,21,26,29,103],signatuar:12,signatur:[27,46],signific:[19,115],significantli:31,silent:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,94],silicon:32,sim:[6,7,61,89],sim_slinki:93,similar:[1,8,12,87,88,98,115],simpl:[12,20,21,61,85,87,88,99,100,105,106,109],simplehttpserv:[33,63],simpler:[88,104],simpli:[6,10,92,96,101,107]
 ,simplic:[105,106],simplifi:20,simul:[2,3,5,6,50],simultan:[27,29,30],sinc:[3,20,24,32,61,87,88,97,98,105,106,107,109,116],singl:[2,3,7,22,39,47,55,57,58,59,94,99,100,104,105,116],sit:[14,18],site:[99,110,114],situat:87,six:[22,23],size:[9,10,20,27,29,39,55,57,58,59,61,73,77,88,92,93,94,95,107,111,113,115],sizeof:[100,102,103,106],skelet:98,skeleton:[7,44,50,97,98,107,110,111,112,113,114,115],skip:[6,11,47,59,107,110,111,112,113,114],slave:[27,29],slave_interval_rang:29,sleep:[9,84,85,109],slightli:91,slinki:[7,45,61,92,93,94],slinky_o:[7,61],slinky_sim:93,slinky_task_prior:93,slot:[7,20,61,71,98,101,107,109,110,111,112,113,114,115],slower:[3,91],small:[20,24,92,104,111],smaller:107,smart:[21,31,55,61],smarter:117,smp:[20,21],snapshot:[43,110,114,117],snip:[1,36,43,55,61,97,98],snippet:102,soc:91,socket:2,soft:[64,80,81,82],softwar:[1,3,4,6,21,38,42,47,50,91,95,107,110,112,113,116],solut:[55,105,106],some:[1,8,12,30,64,76,87,88,91,92,93,99,100,101,102,103,105,106,109,110,111,114,115
 ,116,120],somehow:61,someon:[10,85],someth:[20,97,98,118],sometim:107,somewhat:87,soon:[21,117],sort:101,sourc:[1,4,9,21,24,50,56,58,60,61,79,81,83,91,94,99,107,110,111,113,116,117],space:[12,21,34,35,50,51,66,91,97,105,108,120],spec:20,special:[8,91,104,105,106,116,117],specif:[11,20,21,22,23,29,31,57,58,59,61,62,84,85,87,88,90,91,94,98,100,102,103,105,106,107,113,115,116],specifi:[1,4,6,7,11,12,20,27,30,34,35,37,39,41,43,45,46,50,51,53,55,57,58,59,61,65,66,67,68,69,70,71,72,73,74,75,76,77,86,88,91,92,93,97,100,102,103,104,105,106,107,112,113,116,117,118],spectrum:21,speed:[9,21,107,110,111,112,115],sphinx:[33,63],spi:[8,21,91],spitest:[7,61],split:[7,71,88,93],split_app:7,split_app_init:94,split_elf_nam:61,split_load:94,splitti:[7,61,93],spot:88,spread:21,sram:113,src:[6,7,11,45,50,55,61,70,80,82,88,90,94,97,107,110,111,112,113,114,115],ss_op_wr:102,ssec:27,stabil:[116,117],stabl:[1,7,57,58,80,81,116,117],stack:[1,9,18,21,24,26,27,30,55,77,85,87,94,96,97,98,99,100,102,103,104,115]
 ,staff:[80,81],stage:94,stale:[2,107],standard:[7,21,31,100,105,106,115],standbi:21,start:[2,4,8,9,10,12,26,27,28,30,38,47,59,62,71,82,84,87,88,90,94,96,97,100,107,108,109,110,111,113,114,115,116,120],startup:[19,21,26,30,94,105,106],startup_stm32f40x:[111,113],stash:49,stat:[1,7,64,78,80,81,82,94,97,115],state:[6,21,26,31,52,55,84,85,88,107,113,117,119],statement:[11,94],statist:[1,48,64,73,76,77,80,81,82,115],stats_cli:1,stats_module_init:94,stats_nam:[1,37,38,76],stats_newtmgr:[1,93,94],statu:[10,11,20,101,103,105,107,115],step:[2,4,6,7,12,47,55,57,59,80,82,87,88,89,92,97,98,105,106,107,110,111,112,113,114,115,116],sterli:117,sterlinghugh:117,stic:[102,104],still:[5,59,66,84,91,101],stitch:1,stksz:77,stkuse:77,stlink:111,stm32:[111,113],stm32f2x:111,stm32f4:108,stm32f4disc_blinki:111,stm32f4disc_boot:111,stm32f4discoveri:[53,111],stm32f4discovery_debug:111,stm32f4x:111,stm32x:111,stop:[2,27,84,100],storag:[20,98,116],store:[1,11,22,27,31,34,35,37,50,55,57,59,61,80,85,92,97,100,10
 2,103,116],str:92,straight:100,straightforward:97,stream:21,strength:29,strict:[102,107],string:[1,27,29,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,92,94,105,106,116,117],strip:46,strlen:[100,102],struct:[84,86,87,88,92,100,102,103,104,105,106,109],structur:[7,11,12,18,28,55,61,78,87,88,92,102,108,120],stub:[61,105,106,109],studio:[5,13],stuff:116,style:92,sub:[28,43,45,50,70,71,72,75,76,106,119],subcommand:[45,50,62,64,66,70,71,72,75,76],subcompon:21,subdirectori:2,subfold:110,submit:11,subrang:20,subscrib:[28,101,103],subsequ:[21,22,100,103],subset:22,substitut:[6,97,98],subsystem:[30,59,92],succesfulli:[97,98,101,107,109,110,111,112,113,114,115],success:[3,20,55,84,87,102,104,113,115],successfuli:88,successfulli:[7,20,55,88,97,98,101,103,105,106,107,110,111,112,113,114,115],sudo:[4,6,7,11,57,58,60,80,83,98],suggest:[3,6,95,120],suit:[6,55,97],suitabl:[20,88],summar:88,summari:[6,11,19,36,106],supervis
 ion_timeout:[30,101],supplement:[29,100],supplementari:88,support:[1,3,4,6,7,12,14,19,20,21,22,29,30,32,53,58,66,81,86,87,88,90,92,94,97,98,99,100,104,105,107,108,110,116,117,120],suppos:43,suppresstasknam:12,sure:[2,7,8,57,97,98,100,102,107,109,115,116],svc:104,swap:[2,84,85,88,107],swclk:107,swd:[107,110,111,112,113,114,115],swdio:107,swim:111,swo:110,symbol:[4,7,12,61,107,111],symlink:[60,83],sync:[20,25,39,57,58,59],sync_cb:[26,105,106],synchron:[20,39,49,57,58,59,91],syntax:[94,115],synthes:24,sys:[1,7,55,57,61,92,93,94,97,109],sys_config_test:7,sys_flash_map:[111,113],sys_mfg:[7,107,110,111,112,113],sys_sysinit:[7,107,110,111,112,113,114],syscfg:[23,24,32,37,38,50,61,88,92,93,98,107,109,110,115],sysflash:[107,113],sysinit:[7,25,26,87,92,94,105,106,107,109,115],sysinit_assert_act:94,sysinit_panic_assert:94,sysresetreq:107,system:[1,3,6,8,9,25,39,50,57,58,59,61,62,84,86,87,88,91,92,95,97,98,107,109,110,113,115,116,117],system_stm32f4xx:[111,113],systemview:120,syuu:59,t_prio:85,
 tab:[30,36],tabl:[19,20,88,94,102,104,115],tag:117,tailq_head:84,take:[6,7,23,45,50,55,62,87,100,102,103,104,105,106],taken:[7,61,87,102,116,117],talk:[98,100],tap:[4,56,79],tar:[4,57,58,59,60,81,82,83],tarbal:4,target:[3,4,5,7,12,25,29,32,34,35,36,37,38,39,42,43,46,47,48,53,55,57,58,59,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,91,93,94,96,105,106,108],target_nam:34,targetin:[105,106],task1:87,task1_handl:87,task1_init:87,task1_prio:87,task1_sem:87,task1_stack:87,task1_stack_s:87,task2:87,task2_handl:87,task2_init:87,task2_prio:87,task2_sem:87,task2_stack:87,task2_stack_s:87,task:[9,11,55,64,77,80,81,82,84,85,87,88,90,91,92,94,102,109,115,120],task_prior:[93,94],tasknam:12,taskstat:[64,78,80,81,82],tbd:104,tck:107,tcp:[107,111],tdi:107,tdo:107,team:4,technic:10,technolog:21,tee:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62],telee02:115,telee02_boot:115,telemetri:105,telenor:115,teli:[105,106],tell:[30,55,94,100,102,105,106,113,117],templat:[7
 ,45,97],temporari:20,term:[3,116],termin:[2,4,7,8,10,12,20,21,27,59,82,92,98,100,103,104,107,109,110,111,112,113,114,115],terribl:[7,97],test:[4,6,12,39,50,57,58,59,61,64,67,71,75,80,81,82,92,94,98,104,105,106,107,109,110,112,116,120],test_project:44,testbench:[7,61],testcas:7,testnam:75,testutil:7,text:[39,48,69,92,111],textual:1,tgz:4,than:[3,7,14,20,29,72,87,88,91,93,98,104,105,106,110],thank:30,thee:91,thei:[1,6,20,29,30,61,87,88,94,95,100,101,102,104,105,106,115,116,117,119],their_key_dist:27,them:[2,9,55,88,94,98,100,105,106,107,116,120],themselv:[87,104],theori:[55,94],therefor:[20,118],thi:[1,2,3,4,5,6,7,8,9,10,11,12,14,18,20,21,22,23,24,25,26,27,29,30,31,32,33,34,41,43,52,53,55,57,58,59,60,61,63,64,66,71,72,80,81,82,83,84,85,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,120],thing:[1,21,24,26,55,61,88,91,105,106,117],think:10,third:[6,19,98,100,107],thorough:117,those:[1,31,32,39,55,57,58,59,61,88,91,95,11
 7],thread:[9,97,107,111,113],three:[2,11,19,59,61,92,94,97,99,100,106,107,113,115],through:[21,23,61,62,99,101,103,106,107,109,113],throughout:[1,88],throughput:21,thrown:6,thu:88,tick:[84,91,92,109,110],ticket:10,tid:77,ties:97,time:[1,7,9,11,12,19,20,21,22,25,27,31,34,43,57,58,59,60,61,77,82,83,87,88,91,92,95,97,100,102,104,105,106,110,112,115],timeout:[20,27,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82],timer:[24,84,86,88],timer_0:24,timer_4:115,timer_5:24,timer_ev_cb:109,timestamp:72,timtest:[7,61],ting:[105,106],tini:113,tinycbor:7,tinycrypt:7,titl:8,tlm:105,tlv:27,tmp:[57,59,80,82],todo:[61,105,106],togeth:[1,43,55,61,101,113],toggl:[7,109],token:[75,87,118],too:[20,87,93],took:111,tool:[1,2,3,5,6,7,9,12,13,39,54,57,58,61,62,63,66,78,79,80,81,87,88,89,91,93,94,96,97,98,107,108,113,115,116,117,118,120],toolbox:2,toolchain:[2,3,5,7,12,33,59,63,98,108,120],toolkit:3,tools_1:[57,58,59,81,82],top:[1,10,12,35,61,93,98,105,106],topic:1,total:[9,55,64,65,66,67,68,69,70,71,72,73,
 74,75,76,77,80,81,82,110,112,115],tour:99,track:[19,21,22],transact:20,transfer:22,translat:105,transmiss:[20,27,115],transmit:[29,31,92,115],transport:[20,21,27,80,92,94,97,98,107,111],tree:[1,6,7,50,55,61,88,97],tri:[3,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,93,115],trial:88,trigger:[6,10],troubleshoot:93,trust:[22,27],tt_chr_f:104,tt_svc_type_p:104,ttl:98,tty:[8,109],ttys002:66,ttys003:66,ttys10:8,ttys2:[8,109],ttys5:8,ttyusb0:[66,98],ttyusb2:8,ttyusb:[8,109],turn:[24,97,98,108,109,112,116,117],tutiori:[73,76],tutori:[2,3,6,7,8,12,21,23,59,77,96,97,98,99,100,101,102,103,104,105,106,107,109,110,111,112,113,114,115],two:[2,3,12,18,19,21,22,23,27,31,43,45,50,55,61,66,87,88,90,92,93,94,97,98,100,102,105,106,107,109,110,111,112,113,114,115,116,117,118,119],tx_phys_mask:27,tx_power_level:[27,29],tx_time_on_air:115,txd:115,txpower:115,txt:70,type:[1,7,8,10,12,19,20,23,27,29,30,31,39,43,45,46,53,55,57,58,59,61,66,88,91,92,93,94,97,98,100,101,102,103,104,105,107,110,111,112,113
 ,115,116,117,118],typedef:[26,92],typic:[3,9,21,26,31,55,61,87,88,89,92,94,100,105,106],uart0:92,uart:[7,8,21,55,91,92,97,98,110,111,112,113,114,115],uart_bitbang:110,uart_flow_control_non:92,uart_hal:[7,111,112,113],ubuntu:[4,6,7,57,80],uci:23,udev:111,udp:66,uicr:23,uid:105,uint16:[27,28],uint16_max:27,uint16_t:[20,102],uint32:[27,71],uint32_max:27,uint32_t:[84,86],uint64:27,uint8:27,uint8_max:27,uint8_t:[23,32,88,92,100,102,105,106],ultim:102,unabl:[2,107,110,111,114],unaccept:20,unadorn:20,unam:2,unchang:88,unconfirm:115,und:[27,30],undefin:[82,94],under:[4,7,10,11,12,20,26,34,55,61,71,104,107,111,112,114],underli:91,understand:[7,95,115,116],undesir:87,undirect:[27,100],unexpect:20,unexpectedli:20,unicast:31,unidirect:27,uniform:[29,59],uniformli:62,uninstal:7,unint32:71,uninterpret:94,union:102,uniqu:[9,19,32,88,93,94,105,115],unit:[1,7,20,27,39,51,57,58,59,94,120],unittest:[7,45,55,61,94,97],unix:[2,59],unknown:[20,93],unless:[27,94],unlicens:21,unlik:20,unlink:[58,60,81,83],
 unmet:88,unpack:[57,59],unplug:114,unprovis:31,unrespons:20,unset:50,unsign:114,unspecifi:[20,42],unstabl:[57,58,80,81],unsupport:[20,104],unsync:26,untar:4,until:[20,26,61,84,87,92,100,105,106,115,116],unuesd:103,unus:71,updat:[2,4,15,20,27,30,36,37,49,52,57,58,59,60,80,81,83,94,101,103,109,110],upgrad:[2,39,56,59,79,88,92,98,107,120],uplink:115,uplink_cntr:115,uplink_freq:115,upload:[43,70,71,110],upon:[1,3,10,26,55,103],upper:[23,94],uri:[27,29],url:[27,105,116],url_bodi:105,url_body_len:105,url_schem:105,url_suffix:105,usabl:[1,88,97,105],usag:[1,9,57,58,59,62,80,81,82,94,115],usb:[2,3,8,21,42,66,98,107,108,110,111,112,113,114,115],usbmodem14211:66,usbmodem14221:66,usbmodem401322:8,usbseri:[8,109],usbttlseri:98,use:[1,4,5,6,7,8,11,12,14,19,20,21,22,24,27,30,32,41,45,50,51,55,56,58,59,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,79,81,82,86,88,89,91,92,93,94,96,97,98,100,101,102,103,105,106,107,108,109,110,113,115,117,118],use_wl:27,use_wl_inita:27,usec:84,used:[6,7,11,12,19,20,2
 2,23,24,27,29,30,31,34,46,49,61,66,72,84,86,88,92,93,94,95,98,100,102,103,104,105,106,107,115,116,117],useful:[3,20,87,97,116],user:[1,2,4,6,7,8,9,18,20,22,24,48,55,58,59,61,78,80,81,82,88,89,92,93,94,104,107,113,115,116,117,118],user_id:[93,94],usernam:[10,48,59,116],uses:[2,4,6,7,8,12,14,20,21,22,23,24,30,32,55,65,66,67,68,69,70,71,72,73,74,75,76,77,78,86,88,92,93,94,102,103,104,107,109,112,116,118],using:[1,2,4,6,7,8,10,11,12,19,20,21,24,26,27,28,29,31,33,36,37,43,44,57,58,59,60,61,63,66,76,80,81,82,83,86,87,89,90,91,94,97,98,104,106,107,108,109,110,111,112,113,114,115],usr:[4,6,11,36,57,58,59,60,80,81,82,83],usu:90,usual:24,utc:68,utf:29,util:[7,11,20,21,31,87,92,94],util_cbmem_test:7,util_mem:[7,107,109,110,111,112,113,114,115],util_pars:115,uuid128:[27,29,102,104,106],uuid128_is_complet:[27,29],uuid16:[27,28,29,102],uuid16_is_complet:[27,29],uuid32:[27,29],uuid32_is_complet:[27,29],uuid:[27,28,29,30,32,66,102,104,106],v14:111,v25:111,val:[23,24,39,50,57,58,59,61,88,93,94,105,1
 06,109,115],valid:[20,39,50,53,57,58,59,61,66,72,102],valu:[1,4,7,12,20,23,24,27,28,29,30,37,39,42,46,50,53,57,58,59,61,62,64,65,66,68,71,72,75,80,81,82,85,88,98,101,102,103,104,105,106,116,117],valuabl:116,value1:[50,94],value2:[50,94],valuen:94,vari:[9,91],variabl:[1,4,11,24,34,37,50,59,61,62,65,84,92,100,102,115,116,117],variant:[22,90],variat:12,varieti:[4,103],variou:[23,24,61,103,108,115],vendor:116,ver:[1,7,55,98,107,116,117,118],verb:62,verbos:[1,7,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,107],veri:[1,9,31,55,96,104,109,110,116],verif:22,verifi:[22,57,59,80,82,110,111,112,114,115],versa:8,version:[1,2,4,6,7,11,12,21,22,34,37,39,41,43,47,55,56,60,79,83,92,94,98,106,107,109,110,111,112,113,114,115,119],via:[8,20,26,42,55,92,94,98,99,100,102,110,112,115,116],vice:8,vid:111,view:[1,7,10,12,30,50,62,66,94,116],vim:59,violat:20,viper:11,virtual:66,virtualbox:107,visibl:[2,28],visit:[39,57,58,59],visual:[5,13],visualstudio:12,vol:22,volatil:111,voltag
 :111,volum:29,vscode:12,vtref:[110,112,115],wai:[2,3,9,21,30,31,59,61,87,92,93,116,117,118],wait:[84,85,87,94,113,115],wake:[85,87],wall:6,wanda:81,want:[1,3,11,18,50,57,58,59,60,61,80,83,85,87,92,95,97,99,100,102,104,105,106,107,108,110,111,112,113,115,116,120],warn:[1,6,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,93,102,110],warranti:[4,107],watch:97,watchdog:87,watchpoint:[107,111],wdog:67,wear:97,wearabl:9,webfreak:12,welcom:[8,96],well:[8,22,40,55,91,95,101,115],were:[29,73,84,117],werror:[6,50],wes:115,wfi:111,wget:[57,59,80,82],what:[7,8,20,41,55,91,94,100,103,104,105,106,117],whatev:23,wheel:8,when:[1,2,6,7,8,10,12,14,20,22,23,24,26,29,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,61,62,66,72,81,84,85,87,88,89,91,92,93,94,97,98,99,100,103,104,105,106,107,110,111,113,114,116,117,118],whenev:[21,26,102,104],where:[8,9,10,11,22,29,31,35,37,50,55,59,60,61,83,88,90,91,92,93,94,104,105,106,109,110,115],wherea:117,whether:[10,12
 ,22,84,94,100,102,104],which:[1,2,4,8,11,14,19,20,21,30,32,34,39,55,57,58,59,61,62,66,80,81,82,84,85,87,88,91,93,100,101,102,103,104,105,106,107,115,116,117],white:[22,27],whitelist:27,who:10,whose:[61,62],why:10,wide:21,wifi:7,window:[5,6,7,9,12,27,56,66,78,79,88,92,98,107,109,110,111,112,113,114,115],winusb:[111,113],wire:[8,115],wireless:21,wish:[6,10,116],withdraw:10,within:[1,12,20,31,41,55,88,89,91,103,113,116],without:[6,10,22,24,28,30,94,107],wno:6,won:8,word:[6,55,87,102,107,116],work:[2,4,8,10,11,22,24,55,61,62,85,87,88,90,91,92,97,98,101,107,109,115,119],workspac:[1,2,11,39,57,58,59,60,80,82,83],workspaceroot:12,world:[12,21,100,105,106,108,118,120],worri:87,worth:[1,89],would:[5,12,58,59,81,82,87,92,97,113,115,116,117],wrap:109,write:[1,9,14,20,28,61,64,65,80,81,82,89,92,96,101,103,104,115],write_cmd_rx:76,write_cmd_tx:76,write_req_rx:76,write_req_tx:76,write_rsp_rx:76,write_rsp_tx:76,written:[11,20,23,59,82,87,102,104,109,117],wrong:42,wsl:[12,59],www:[98,107],x86:[4,12
 ],x86_64:107,xml:7,xpf:4,xpsr:[107,111,113],xtal_32768:88,xtal_32768_synth:24,xxx:[6,88],xxx_branch_0_8_0:[116,117],xxx_branch_1_0_0:[116,117],xxx_branch_1_0_2:[116,117],xxx_branch_1_1_0:[116,117],xxx_branch_1_1_2:[116,117],xxx_branch_1_2_0:[116,117],xxx_branch_1_2_1:[116,117],xzf:[57,59,60,82,83],yaml:11,year:31,yes:[22,115],yesno:27,yet:[7,84,87,91,97,116,117],yield:87,yml:[1,6,7,41,43,50,52,53,55,61,89,90,92,93,94,97,98,107,109,115,116,118,119],you:[1,3,4,5,6,7,8,9,10,11,12,18,19,30,33,34,35,39,41,43,45,46,47,50,51,52,53,54,55,57,58,59,60,61,63,64,66,68,76,80,81,82,83,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,120],your:[1,3,4,6,8,10,19,30,39,50,52,55,56,58,59,60,61,70,71,79,81,82,83,87,88,89,90,91,93,94,96,97,98,99,100,101,103,104,105,106,108,109,115,117,120],yourself:[2,10,30,87,88,99,120],ype:[105,106],yym:6,zadig:[111,113],zero:[12,24,88,94,104,105,106,108,115,116,120],zip:[4,110]},titles:["&lt;no title&g
 t;","Concepts","Everything You Need in a Docker Container","Setup &amp; Get Started","Installing the Cross Tools for ARM","Native Installation","Installing Native Toolchain","Creating Your First Mynewt Project","Using the Serial Port with Mynewt OS","Mynewt Documentation","FAQ","Contributing to Newt or Newtmgr Tools","Developing Mynewt Applications with Visual Studio Code","Appendix","NimBLE Host ATT Client Reference","NimBLE Host GAP Reference","NimBLE Host GATT Client Reference","NimBLE Host GATT Server Reference","NimBLE Host","NimBLE Host Identity Reference","NimBLE Host Return Codes","BLE User Guide","NimBLE Security","Configure device ddress","Configure clock for controller","NimBLE Setup","Respond to <em>sync</em> and <em>reset</em> events","GAP API for btshell","GATT feature API for btshell","Advertisement Data Fields","API for btshell app","Bluetooth Mesh","Sample application","Mynewt Newt Tool Documentation","newt build","newt clean","newt complete","newt create-image","ne
 wt debug","newt help","newt info","newt install","newt load","newt mfg","newt new","newt pkg","newt resign-image","newt run","newt size","newt sync","newt target","newt test","newt upgrade","newt vals","newt version","Newt Tool Guide","Install","Installing Newt on Linux","Installing Newt on Mac OS","Installing Newt on Windows","Installing Previous Releases of Newt","Theory of Operations","Command Structure","Mynewt Newt Manager Documentation","Command List","newtmgr config","newtmgr conn","newtmgr crash","newtmgr datetime","newtmgr echo","newtmgr fs","newtmgr image","newtmgr log","newtmgr mpstat","newtmgr reset","newtmgr run","newtmgr stat","newtmgr taskstat","Newt Manager Guide","Install","Installing Newtmgr on Linux","Installing Newtmgr on Mac OS","Installing Newtmgr on Windows","Installing Previous Releases of Newtmgr","Core OS API","Scheduler","CPU Time","Mynewt Core OS","BSP Porting","Porting Mynewt to a new CPU Architecture","Porting Mynewt to a new MCU","Porting Mynewt OS","C
 onsole","Validation and Error Messages","System Configuration and Initialization","OS User Guide","Bluetooth Low Energy","Set up a bare bones NimBLE application","Use HCI access to NimBLE controller","BLE Peripheral Project","Advertising","BLE Peripheral App","Characteristic Access","GAP Event callbacks","Service Registration","BLE Eddystone","BLE iBeacon","Blinky, your \u201cHello World!\u201d, on Arduino Zero","Project Blinky","Enabling The Console and Shell for Blinky","Blinky, your \u201cHello World!\u201d, on Arduino Primo","Blinky, your \u201cHello World!\u201d, on STM32F4-Discovery","Blinky, your \u201cHello World!\u201d, on a nRF52 Development Kit","Blinky, your \u201cHello World!\u201d, on Olimex","Blinky, your \u201cHello World!\u201d, on RedBear Nano 2","LoRaWAN App","Adding Repositories to your Project","Create a Repo out of a Project","Accessing a private repository","Upgrade a repo","Tutorials"],titleterms:{"default":109,"function":[88,94,102,104],"new":[7,44,89,90,101
 ],"public":23,"return":20,Adding:[58,81,116],For:4,The:109,Use:[2,98,109],Using:[8,57,80,92],access:[98,102,118],add:[66,88,105,106],addit:116,address:[19,23,30,105,106],administr:10,advertis:[27,29,30,100,105,106],ambigu:93,apach:[9,31],api:[27,28,30,84,85,86,92],app:[9,30,61,98,101,115],appendix:[13,88],applic:[7,12,32,87,97,98,105,106,107,109,110,111,112,113,114,115],apt:[57,80],architectur:89,arduino:[8,107,110],area:93,arm:4,artifact:61,assign:93,associ:12,att:[14,20],attach:98,attribut:[30,104],autocomplet:36,avail:[27,28,39,43,50,108,116],bare:97,bash:36,basic:87,beacon:[105,106],bearer:31,begin:[30,100],being:102,belong:30,binari:[57,59,80,82],bit:6,ble:[21,97,99,101,105,106],blehci:98,bleprph_gap_ev:103,blink_rigado:48,blinki:[7,107,108,109,110,111,112,113,114],bluetooth:[21,31,96,98],bluez:98,board:[91,107,110,111,112,113,114,115],bone:97,bootload:[98,107,110,111,112,113,114,115],branch:[58,81],brew:6,bsp:[53,88,91,93],btmgmt:98,btmon:98,btshell:[27,28,30],bug:10,build:[7,
 9,12,34,55,61,97,98,107,109,110,111,112,113,114,115],callback:103,can:10,categori:120,chang:[33,63],channel:27,characterist:[30,99,102],check:[57,58,59,80,81,82,88],clean:35,clear:114,client:[14,16],clock:24,close:115,code:[12,20,88,89],command:[12,27,28,39,43,50,62,64,66,98],committ:10,commun:[8,109],compil:89,complet:36,compon:[21,116],comput:[57,80],concept:1,conclus:[97,105,106],condit:94,config:65,configur:[1,12,23,24,27,28,30,93,94,105,106,109],conflict:94,conn:66,connect:[27,30,98,107,109,110,111,112,113,114,115],consol:[92,109],contain:2,content:[33,63],contribut:11,control:[24,98,105,106],copi:88,core:[20,84,87,91],cpu:[84,86,89,91],crash:67,creat:[7,37,88,89,97,98,101,105,106,107,110,111,112,113,114,115,117],creation:87,cross:4,crystal:24,data:[29,86,100,115],datetim:68,ddress:23,debian:[57,80],debug:[12,38,61,88],debugg:[4,12],defin:[12,88],definit:[93,94],delet:66,depend:[7,61,88,91,109,117],descript:[34,35,37,38,40,41,42,43,44,45,46,47,48,49,50,51,52,53,65,66,67,68,69,7
 0,71,72,73,74,75,76,77,85,86,91,92],descriptor:[30,99,104,116],determin:102,develop:[12,112],devic:[2,23,27,30,98],direct:30,directori:61,disabl:27,discov:30,discoveri:[27,111],displai:30,docker:2,document:[10,33,63],doe:116,download:[11,57,61,80,88,115],duplic:93,echo:69,eddyston:105,edit:10,editor:10,empti:[105,106],enabl:[2,27,36,109],energi:96,enter:97,environ:11,eras:110,error:93,establish:[30,98],event:[26,103,109],everyth:[2,115],exampl:[8,20,21,26,34,35,37,38,39,43,44,45,46,47,48,50,51,53,54,65,66,67,68,69,70,71,72,73,74,75,76,77,87,93,94],execut:[6,110,111,112,114,115],exist:[109,116],explor:7,express:93,extend:27,extens:[2,12],extern:107,faq:10,featur:[7,10,21,22,28,31,87],fetch:[7,107],field:29,file:[88,117],fill:88,find:116,first:[7,9],flag:[34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,65,66,67,68,69,70,71,72,73,74,75,76,77],flash:[88,93,110,114],from:[57,58,59,80,81,82,92],ft232h:8,full:92,gap:[15,27,103],gatt:[16,17,28],gcc:6,gdb:6,gener:[22,30,94],get:[
 3,57,80],git:[10,59],global:[34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,65,66,67,68,69,70,71,72,73,74,75,76,77],guarante:103,guid:[21,55,78,95],hal:91,hardcod:23,hardwar:[23,115],hci:[20,98],header:[14,15,16,17,19,20],hello:[107,110,111,112,113,114],help:39,homebrew:[58,81],host:[14,15,16,17,18,19,20,105,106],how:[10,94,116],ibeacon:106,ident:19,identifi:116,ignor:93,imag:[37,46,71,98,110,111,112,113,114,115],implement:89,includ:[30,104],indefinit:[105,106],info:40,initi:[30,94],input:92,instal:[2,4,5,6,11,12,36,41,56,57,58,59,60,79,80,81,82,83,115],introduct:[9,14,15,16,17,18,19,20,31,55,88,99],invalid:93,join:115,kei:[22,27],kit:112,l2cap:[20,27],laptop:10,latest:[57,58,59,80,81,82],legaci:27,libc:6,like:10,link:4,linker:88,linux:[2,4,6,8,11,57,60,80,83],list:[10,64,105,106],load:[42,98,107,110,111,112,113,114],log:72,lorawan:115,low:96,mac:[2,4,6,8,11,58,60,81,83],main:109,make:10,manag:[9,20,55,63,78],manual:[57,80],map:88,master:[58,81],mcu:[88,90,91],memori:11
 4,merg:10,mesh:[21,31],messag:93,method:[23,57,80],mfg:43,mingw:59,minim:92,model:31,modifi:109,monitor:98,more:55,mpstat:73,msys2:59,multipl:[12,93],mynewt:[2,7,8,9,10,12,23,31,33,58,63,81,87,88,89,90,91,92,97,116],name:[30,94],nano:114,nativ:[5,6],need:[2,115,116],newt:[2,9,11,12,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,60,63,78],newtmgr:[11,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,83],next:6,nimbl:[14,15,16,17,18,19,20,21,22,25,97,98,105,106],node:31,nordic:8,note:55,notnul:93,nrf52:112,nrf52dk:8,nrf:23,object:[108,115],olimex:113,onto:107,open:[98,115],openocd:4,oper:[55,61],option:110,orient:27,ota:115,other:[7,12,117],out:[116,117],output:[48,53,92],overrid:[93,94],overview:[64,99,100,101,103,108],own:10,pack:2,packag:[1,7,57,61,80,88,91,92,93,94,97,107],passiv:30,patch:10,peer:[20,30],perform:30,peripher:[99,101],pkg:[45,88],platform:8,port:[8,88,89,90,91,115],prerequisit:[7,98,101,107,108,109,110,111,112,113,114,120],preview:[33,63
 ],previou:[60,83],primo:110,prioriti:93,privaci:22,privat:118,pro:8,process:109,produc:[6,61],project:[1,7,10,12,21,97,98,99,107,108,109,110,111,112,113,114,115,116,117],protect:114,protocol:[105,106],provis:31,pull:[2,10],question:10,queue:109,random:23,rational:55,read:[30,102],rebuild:11,redbear:114,refer:[14,15,16,17,19,20,94],referenc:94,registr:104,releas:[57,58,59,60,80,81,82,83],repo:[116,117,119],repositori:[7,10,55,116,117,118],request:10,requir:88,reset:[26,74],resign:46,resolut:117,resolv:[61,94,117],respond:26,restrict:93,review:102,run:[7,12,47,75,107,109],runtim:23,sampl:32,satisfi:88,scan:30,schedul:[84,85],script:[2,88],secur:[20,22,27],segger:4,select:2,semiconductor:8,send:[30,98,115],serial:[8,98,109],server:17,servic:[30,99,104],set:[6,11,30,57,80,88,93,94,97,100,104,109],settl:24,setup:[3,8,25],shell:109,should:117,show:[30,66],sign:[110,111,112,113,114,115],signatur:102,simul:7,size:48,softwar:10,some:10,sourc:[7,11,55,57,59,80,82,105,106],specif:[89,117],spec
 ifi:94,stack:[105,106],start:[3,98],startup:88,stat:76,step:[11,108],stm32f4:111,storag:27,structur:[62,86],stub:92,studio:12,sub:66,submit:10,summari:20,support:[2,31,61,91],sync:[26,49,105,106],syscfg:94,sysinit_app:94,system:[24,55,93,94],tap:[58,81],target:[1,23,50,61,88,97,98,101,107,109,110,111,112,113,114,115],task:[12,93],taskstat:77,templat:88,test:[7,51,88],theori:61,time:[24,84,86],timer:109,tool:[4,11,33,55,59,82],toolchain:[4,6],topolog:31,tutori:[108,120],undefin:93,undirect:30,updat:11,upgrad:[52,57,58,80,81,119],upload:109,usag:[34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,65,66,67,68,69,70,71,72,73,74,75,76,77],usb2:2,use:[10,57,80,87,116],user:[21,95],using:55,val:53,valid:93,valu:[93,94],version:[54,57,58,59,80,81,82,116,117],violat:93,virtualbox:2,visual:12,wait:[105,106],want:10,welcom:9,what:[10,116],where:117,why:[87,116],window:[2,4,8,11,59,60,82,83],work:12,workspac:12,world:[107,110,111,112,113,114],would:10,wrapper:2,write:[30,33,63,102,1
 14],yml:[88,117],you:2,your:[2,7,9,11,12,57,80,107,110,111,112,113,114,116],zero:107}})
\ No newline at end of file
+Search.setIndex({docnames:["_static/common","concepts","get_started/docker","get_started/index","get_started/native_install/cross_tools","get_started/native_install/index","get_started/native_install/native_tools","get_started/project_create","get_started/serial_access","index","misc/faq","misc/go_env","misc/ide","misc/index","network/ble/ble_hs/ble_att","network/ble/ble_hs/ble_gap","network/ble/ble_hs/ble_gattc","network/ble/ble_hs/ble_gatts","network/ble/ble_hs/ble_hs","network/ble/ble_hs/ble_hs_id","network/ble/ble_hs/ble_hs_return_codes","network/ble/ble_intro","network/ble/ble_sec","network/ble/ble_setup/ble_addr","network/ble/ble_setup/ble_lp_clock","network/ble/ble_setup/ble_setup_intro","network/ble/ble_setup/ble_sync_cb","network/ble/btshell/btshell_GAP","network/ble/btshell/btshell_GATT","network/ble/btshell/btshell_advdata","network/ble/btshell/btshell_api","network/ble/mesh/index","network/ble/mesh/sample","newt/README","newt/command_list/newt_build","newt/command_list/n
 ewt_clean","newt/command_list/newt_complete","newt/command_list/newt_create_image","newt/command_list/newt_debug","newt/command_list/newt_help","newt/command_list/newt_info","newt/command_list/newt_install","newt/command_list/newt_load","newt/command_list/newt_mfg","newt/command_list/newt_new","newt/command_list/newt_pkg","newt/command_list/newt_resign_image","newt/command_list/newt_run","newt/command_list/newt_size","newt/command_list/newt_sync","newt/command_list/newt_target","newt/command_list/newt_test","newt/command_list/newt_upgrade","newt/command_list/newt_vals","newt/command_list/newt_version","newt/index","newt/install/index","newt/install/newt_linux","newt/install/newt_mac","newt/install/newt_windows","newt/install/prev_releases","newt/newt_operation","newt/newt_ops","newtmgr/README","newtmgr/command_list/index","newtmgr/command_list/newtmgr_config","newtmgr/command_list/newtmgr_conn","newtmgr/command_list/newtmgr_crash","newtmgr/command_list/newtmgr_datetime","newtmgr/com
 mand_list/newtmgr_echo","newtmgr/command_list/newtmgr_fs","newtmgr/command_list/newtmgr_image","newtmgr/command_list/newtmgr_logs","newtmgr/command_list/newtmgr_mpstats","newtmgr/command_list/newtmgr_reset","newtmgr/command_list/newtmgr_run","newtmgr/command_list/newtmgr_stat","newtmgr/command_list/newtmgr_taskstats","newtmgr/index","newtmgr/install/index","newtmgr/install/install_linux","newtmgr/install/install_mac","newtmgr/install/install_windows","newtmgr/install/prev_releases","os/core_os/API","os/core_os/context_switch/context_switch","os/core_os/cputime/os_cputime","os/core_os/mynewt_os","os/core_os/porting/port_bsp","os/core_os/porting/port_cpu","os/core_os/porting/port_mcu","os/core_os/porting/port_os","os/core_os/time/os_time","os/modules/console/console","os/modules/sysinitconfig/sysconfig_error","os/modules/sysinitconfig/sysinitconfig","os/os_user_guide","tutorials/STM32F303","tutorials/add_newtmgr","tutorials/air_quality_ble","tutorials/air_quality_sensor","tutorials/bl
 e/ble","tutorials/ble/ble_bare_bones","tutorials/ble/blehci_project","tutorials/ble/bleprph/bleprph","tutorials/ble/bleprph/bleprph-sections/bleprph-adv","tutorials/ble/bleprph/bleprph-sections/bleprph-app","tutorials/ble/bleprph/bleprph-sections/bleprph-chr-access","tutorials/ble/bleprph/bleprph-sections/bleprph-gap-event","tutorials/ble/bleprph/bleprph-sections/bleprph-svc-reg","tutorials/ble/eddystone","tutorials/ble/ibeacon","tutorials/blinky/arduino_zero","tutorials/blinky/blinky","tutorials/blinky/blinky_console","tutorials/blinky/blinky_primo","tutorials/blinky/blinky_stm32f4disc","tutorials/blinky/nRF52","tutorials/blinky/olimex","tutorials/blinky/rbnano2","tutorials/codesize","tutorials/define_target","tutorials/event_queue","tutorials/lora/lorawanapp","tutorials/nrf52_adc","tutorials/ota_upgrade_nrf52","tutorials/pin-wheel-mods","tutorials/repo/add_repos","tutorials/repo/create_repo","tutorials/repo/private_repo","tutorials/repo/upgrade_repo","tutorials/segger_rtt","tutori
 als/segger_sysview","tutorials/slinky/project-nrf52-slinky","tutorials/slinky/project-sim-slinky","tutorials/slinky/project-slinky","tutorials/slinky/project-stm32-slinky","tutorials/tasks_lesson","tutorials/try_markdown","tutorials/tutorials","tutorials/unit_test","tutorials/wi-fi_on_arduino"],envversion:52,filenames:["_static/common.rst","concepts.rst","get_started/docker.rst","get_started/index.rst","get_started/native_install/cross_tools.rst","get_started/native_install/index.rst","get_started/native_install/native_tools.rst","get_started/project_create.rst","get_started/serial_access.rst","index.rst","misc/faq.rst","misc/go_env.rst","misc/ide.rst","misc/index.rst","network/ble/ble_hs/ble_att.rst","network/ble/ble_hs/ble_gap.rst","network/ble/ble_hs/ble_gattc.rst","network/ble/ble_hs/ble_gatts.rst","network/ble/ble_hs/ble_hs.rst","network/ble/ble_hs/ble_hs_id.rst","network/ble/ble_hs/ble_hs_return_codes.rst","network/ble/ble_intro.rst","network/ble/ble_sec.rst","network/ble/ble_
 setup/ble_addr.rst","network/ble/ble_setup/ble_lp_clock.rst","network/ble/ble_setup/ble_setup_intro.rst","network/ble/ble_setup/ble_sync_cb.rst","network/ble/btshell/btshell_GAP.rst","network/ble/btshell/btshell_GATT.rst","network/ble/btshell/btshell_advdata.rst","network/ble/btshell/btshell_api.rst","network/ble/mesh/index.rst","network/ble/mesh/sample.rst","newt/README.rst","newt/command_list/newt_build.rst","newt/command_list/newt_clean.rst","newt/command_list/newt_complete.rst","newt/command_list/newt_create_image.rst","newt/command_list/newt_debug.rst","newt/command_list/newt_help.rst","newt/command_list/newt_info.rst","newt/command_list/newt_install.rst","newt/command_list/newt_load.rst","newt/command_list/newt_mfg.rst","newt/command_list/newt_new.rst","newt/command_list/newt_pkg.rst","newt/command_list/newt_resign_image.rst","newt/command_list/newt_run.rst","newt/command_list/newt_size.rst","newt/command_list/newt_sync.rst","newt/command_list/newt_target.rst","newt/command_li
 st/newt_test.rst","newt/command_list/newt_upgrade.rst","newt/command_list/newt_vals.rst","newt/command_list/newt_version.rst","newt/index.rst","newt/install/index.rst","newt/install/newt_linux.rst","newt/install/newt_mac.rst","newt/install/newt_windows.rst","newt/install/prev_releases.rst","newt/newt_operation.rst","newt/newt_ops.rst","newtmgr/README.rst","newtmgr/command_list/index.rst","newtmgr/command_list/newtmgr_config.rst","newtmgr/command_list/newtmgr_conn.rst","newtmgr/command_list/newtmgr_crash.rst","newtmgr/command_list/newtmgr_datetime.rst","newtmgr/command_list/newtmgr_echo.rst","newtmgr/command_list/newtmgr_fs.rst","newtmgr/command_list/newtmgr_image.rst","newtmgr/command_list/newtmgr_logs.rst","newtmgr/command_list/newtmgr_mpstats.rst","newtmgr/command_list/newtmgr_reset.rst","newtmgr/command_list/newtmgr_run.rst","newtmgr/command_list/newtmgr_stat.rst","newtmgr/command_list/newtmgr_taskstats.rst","newtmgr/index.rst","newtmgr/install/index.rst","newtmgr/install/install
 _linux.rst","newtmgr/install/install_mac.rst","newtmgr/install/install_windows.rst","newtmgr/install/prev_releases.rst","os/core_os/API.rst","os/core_os/context_switch/context_switch.rst","os/core_os/cputime/os_cputime.rst","os/core_os/mynewt_os.rst","os/core_os/porting/port_bsp.rst","os/core_os/porting/port_cpu.rst","os/core_os/porting/port_mcu.rst","os/core_os/porting/port_os.rst","os/core_os/time/os_time.rst","os/modules/console/console.rst","os/modules/sysinitconfig/sysconfig_error.rst","os/modules/sysinitconfig/sysinitconfig.rst","os/os_user_guide.rst","tutorials/STM32F303.rst","tutorials/add_newtmgr.rst","tutorials/air_quality_ble.rst","tutorials/air_quality_sensor.rst","tutorials/ble/ble.rst","tutorials/ble/ble_bare_bones.rst","tutorials/ble/blehci_project.rst","tutorials/ble/bleprph/bleprph.rst","tutorials/ble/bleprph/bleprph-sections/bleprph-adv.rst","tutorials/ble/bleprph/bleprph-sections/bleprph-app.rst","tutorials/ble/bleprph/bleprph-sections/bleprph-chr-access.rst","tut
 orials/ble/bleprph/bleprph-sections/bleprph-gap-event.rst","tutorials/ble/bleprph/bleprph-sections/bleprph-svc-reg.rst","tutorials/ble/eddystone.rst","tutorials/ble/ibeacon.rst","tutorials/blinky/arduino_zero.rst","tutorials/blinky/blinky.rst","tutorials/blinky/blinky_console.rst","tutorials/blinky/blinky_primo.rst","tutorials/blinky/blinky_stm32f4disc.rst","tutorials/blinky/nRF52.rst","tutorials/blinky/olimex.rst","tutorials/blinky/rbnano2.rst","tutorials/codesize.rst","tutorials/define_target.rst","tutorials/event_queue.rst","tutorials/lora/lorawanapp.rst","tutorials/nrf52_adc.rst","tutorials/ota_upgrade_nrf52.rst","tutorials/pin-wheel-mods.rst","tutorials/repo/add_repos.rst","tutorials/repo/create_repo.rst","tutorials/repo/private_repo.rst","tutorials/repo/upgrade_repo.rst","tutorials/segger_rtt.rst","tutorials/segger_sysview.rst","tutorials/slinky/project-nrf52-slinky.rst","tutorials/slinky/project-sim-slinky.rst","tutorials/slinky/project-slinky.rst","tutorials/slinky/project-s
 tm32-slinky.rst","tutorials/tasks_lesson.rst","tutorials/try_markdown.rst","tutorials/tutorials.rst","tutorials/unit_test.rst","tutorials/wi-fi_on_arduino.rst"],objects:{"":{"os_timeval::tv_sec":[84,4,1,"c.os_timeval::tv_sec"],"os_timeval::tv_usec":[84,4,1,"c.os_timeval::tv_usec"],"os_timezone::tz_dsttime":[84,4,1,"c.os_timezone::tz_dsttime"],"os_timezone::tz_minuteswest":[84,4,1,"c.os_timezone::tz_minuteswest"],CPUTIME_GEQ:[84,0,1,"c.CPUTIME_GEQ"],CPUTIME_GT:[84,0,1,"c.CPUTIME_GT"],CPUTIME_LEQ:[84,0,1,"c.CPUTIME_LEQ"],CPUTIME_LT:[84,0,1,"c.CPUTIME_LT"],CTASSERT:[84,0,1,"c.CTASSERT"],OS_ALIGN:[84,0,1,"c.OS_ALIGN"],OS_IDLE_PRIO:[84,0,1,"c.OS_IDLE_PRIO"],OS_MAIN_STACK_SIZE:[84,0,1,"c.OS_MAIN_STACK_SIZE"],OS_MAIN_TASK_PRIO:[84,0,1,"c.OS_MAIN_TASK_PRIO"],OS_TIMEOUT_NEVER:[84,0,1,"c.OS_TIMEOUT_NEVER"],OS_TIME_MAX:[84,0,1,"c.OS_TIME_MAX"],OS_TIME_TICK_GEQ:[84,0,1,"c.OS_TIME_TICK_GEQ"],OS_TIME_TICK_GT:[84,0,1,"c.OS_TIME_TICK_GT"],OS_TIME_TICK_LT:[84,0,1,"c.OS_TIME_TICK_LT"],OS_WAIT_FOREVER
 :[84,0,1,"c.OS_WAIT_FOREVER"],TAILQ_HEAD:[84,1,1,"c.TAILQ_HEAD"],completion_cb:[93,2,1,"c.completion_cb"],console_append_char_cb:[93,2,1,"c.console_append_char_cb"],console_blocking_mode:[93,1,1,"c.console_blocking_mode"],console_echo:[93,1,1,"c.console_echo"],console_handle_char:[93,1,1,"c.console_handle_char"],console_init:[93,1,1,"c.console_init"],console_input:[93,3,1,"c.console_input"],console_is_init:[93,1,1,"c.console_is_init"],console_is_midline:[93,4,1,"c.console_is_midline"],console_non_blocking_mode:[93,1,1,"c.console_non_blocking_mode"],console_out:[93,1,1,"c.console_out"],console_printf:[93,1,1,"c.console_printf"],console_read:[93,1,1,"c.console_read"],console_rx_cb:[93,2,1,"c.console_rx_cb"],console_set_completion_cb:[93,1,1,"c.console_set_completion_cb"],console_set_queues:[93,1,1,"c.console_set_queues"],console_write:[93,1,1,"c.console_write"],g_current_task:[84,4,1,"c.g_current_task"],g_os_run_list:[84,4,1,"c.g_os_run_list"],g_os_sleep_list:[84,4,1,"c.g_os_sleep_lis
 t"],g_os_started:[84,4,1,"c.g_os_started"],os_cputime_delay_nsecs:[84,1,1,"c.os_cputime_delay_nsecs"],os_cputime_delay_ticks:[84,1,1,"c.os_cputime_delay_ticks"],os_cputime_delay_usecs:[84,1,1,"c.os_cputime_delay_usecs"],os_cputime_get32:[84,1,1,"c.os_cputime_get32"],os_cputime_init:[84,1,1,"c.os_cputime_init"],os_cputime_nsecs_to_ticks:[84,1,1,"c.os_cputime_nsecs_to_ticks"],os_cputime_ticks_to_nsecs:[84,1,1,"c.os_cputime_ticks_to_nsecs"],os_cputime_ticks_to_usecs:[84,1,1,"c.os_cputime_ticks_to_usecs"],os_cputime_timer_init:[84,1,1,"c.os_cputime_timer_init"],os_cputime_timer_relative:[84,1,1,"c.os_cputime_timer_relative"],os_cputime_timer_start:[84,1,1,"c.os_cputime_timer_start"],os_cputime_timer_stop:[84,1,1,"c.os_cputime_timer_stop"],os_cputime_usecs_to_ticks:[84,1,1,"c.os_cputime_usecs_to_ticks"],os_get_return_addr:[84,0,1,"c.os_get_return_addr"],os_get_uptime_usec:[84,1,1,"c.os_get_uptime_usec"],os_gettimeofday:[84,1,1,"c.os_gettimeofday"],os_info_init:[84,1,1,"c.os_info_init"],o
 s_init:[84,1,1,"c.os_init"],os_init_idle_task:[84,1,1,"c.os_init_idle_task"],os_sched:[84,1,1,"c.os_sched"],os_sched_ctx_sw_hook:[84,1,1,"c.os_sched_ctx_sw_hook"],os_sched_get_current_task:[84,1,1,"c.os_sched_get_current_task"],os_sched_insert:[84,1,1,"c.os_sched_insert"],os_sched_next_task:[84,1,1,"c.os_sched_next_task"],os_sched_os_timer_exp:[84,1,1,"c.os_sched_os_timer_exp"],os_sched_remove:[84,1,1,"c.os_sched_remove"],os_sched_resort:[84,1,1,"c.os_sched_resort"],os_sched_set_current_task:[84,1,1,"c.os_sched_set_current_task"],os_sched_sleep:[84,1,1,"c.os_sched_sleep"],os_sched_wakeup:[84,1,1,"c.os_sched_wakeup"],os_sched_wakeup_ticks:[84,1,1,"c.os_sched_wakeup_ticks"],os_settimeofday:[84,1,1,"c.os_settimeofday"],os_start:[84,1,1,"c.os_start"],os_started:[84,1,1,"c.os_started"],os_stime_t:[84,2,1,"c.os_stime_t"],os_time_advance:[84,1,1,"c.os_time_advance"],os_time_delay:[84,1,1,"c.os_time_delay"],os_time_get:[84,1,1,"c.os_time_get"],os_time_ms_to_ticks:[84,1,1,"c.os_time_ms_to_ti
 cks"],os_time_t:[84,2,1,"c.os_time_t"],os_timeradd:[84,0,1,"c.os_timeradd"],os_timersub:[84,0,1,"c.os_timersub"],os_timeval:[84,3,1,"c.os_timeval"],os_timezone:[84,3,1,"c.os_timezone"]}},objnames:{"0":["c","define","define"],"1":["c","function","C function"],"2":["c","typedef","typedef"],"3":["c","struct","struct"],"4":["c","variable","variable"]},objtypes:{"0":"c:define","1":"c:function","2":"c:typedef","3":"c:struct","4":"c:variable"},terms:{"000s":[115,117,123,124],"008s":[115,117,123,124],"00z":140,"01t22":68,"02t22":140,"04x":20,"05t02":140,"093s":[115,117,123,124],"0mb":11,"0ubuntu5":6,"0x0":[112,119,124],"0x00":[20,119,123],"0x0000":[100,103],"0x00000000":[94,95],"0x00000002":119,"0x000000b8":112,"0x000000d8":[131,132],"0x000000dc":[102,131,132],"0x00004000":[94,95],"0x00008000":[88,94,95],"0x00009ef4":119,"0x0000fca6":112,"0x0006":29,"0x0007d000":95,"0x000e0000":94,"0x0010":27,"0x01":[20,27,30,123],"0x0100":27,"0x01000000":118,"0x0101":20,"0x0102":20,"0x0103":20,"0x0104":20,
 "0x0105":20,"0x0106":20,"0x0107":20,"0x0108":20,"0x0109":20,"0x010a":20,"0x010b":20,"0x010c":20,"0x010d":20,"0x010e":20,"0x010f":20,"0x0110":20,"0x0111":20,"0x02":[20,27,30,123],"0x0201":20,"0x0202":20,"0x0203":20,"0x0204":20,"0x0205":20,"0x0206":20,"0x0207":20,"0x0208":20,"0x0209":20,"0x020a":20,"0x020b":20,"0x020c":20,"0x020d":20,"0x020e":20,"0x020f":20,"0x0210":20,"0x0211":20,"0x0212":20,"0x0213":20,"0x0214":20,"0x0215":20,"0x0216":20,"0x0217":20,"0x0218":20,"0x0219":20,"0x021a":20,"0x021b":20,"0x021c":20,"0x021d":20,"0x021e":20,"0x021f":20,"0x0220":20,"0x0221":20,"0x0222":20,"0x0223":20,"0x0224":20,"0x0225":20,"0x0226":20,"0x0227":20,"0x0228":20,"0x0229":20,"0x022a":20,"0x022c":20,"0x022d":20,"0x022e":20,"0x022f":20,"0x0230":20,"0x0232":20,"0x0234":20,"0x0235":20,"0x0236":20,"0x0237":20,"0x0238":20,"0x0239":20,"0x023a":20,"0x023b":20,"0x023c":20,"0x023d":20,"0x023e":20,"0x023f":20,"0x0240":20,"0x03":[20,30],"0x0300":[20,27],"0x0301":20,"0x0302":20,"0x04":[20,27],"0x0401":20,"0x0
 402":20,"0x0403":20,"0x0404":20,"0x0405":20,"0x0406":20,"0x0407":20,"0x0408":20,"0x0409":20,"0x040a":20,"0x040b":20,"0x040c":20,"0x040d":20,"0x040e":20,"0x0483":116,"0x05":20,"0x0501":20,"0x0502":20,"0x0503":20,"0x0504":20,"0x0505":20,"0x0506":20,"0x0507":20,"0x0508":20,"0x0509":20,"0x050a":20,"0x050b":20,"0x050c":20,"0x050d":20,"0x050e":20,"0x06":[20,103],"0x07":20,"0x08":[20,27],"0x08000000":118,"0x08000020":118,"0x08000250":118,"0x08021e90":116,"0x09":20,"0x0a":20,"0x0b":20,"0x0bc11477":112,"0x0c":20,"0x0c80":29,"0x0d":20,"0x0e":20,"0x0f":20,"0x1":124,"0x10":[20,112,119,123],"0x100":20,"0x10000":88,"0x10010000":118,"0x10036413":118,"0x10076413":116,"0x103":20,"0x11":[20,23,111,123],"0x12":20,"0x13":20,"0x14":20,"0x1400":100,"0x15":[20,99,124],"0x16":20,"0x17":20,"0x18":20,"0x1800":30,"0x1808":30,"0x180a":30,"0x19":20,"0x1a":20,"0x1b":20,"0x1c":[20,99,124],"0x1d":20,"0x1e":20,"0x1f":20,"0x20":[20,32,88,99,112,119,124],"0x200":20,"0x20000":124,"0x20000000":88,"0x20002290":116,"0x20
 002408":112,"0x20008000":112,"0x21":[20,32],"0x21000000":112,"0x22":[20,23,32,123],"0x23":[20,32],"0x24":20,"0x25":20,"0x26":20,"0x27":20,"0x28":20,"0x2800":100,"0x29":20,"0x2a":20,"0x2ba01477":119,"0x2c":20,"0x2d":20,"0x2e":20,"0x2f":20,"0x30":[20,112,119],"0x300":20,"0x32":20,"0x33":23,"0x34":20,"0x35":20,"0x36":20,"0x37":20,"0x374b":116,"0x38":20,"0x39":20,"0x3a":20,"0x3a000":88,"0x3b":20,"0x3c":20,"0x3c00":100,"0x3d":20,"0x3e":20,"0x3f":20,"0x40":[20,99,112,119,124],"0x400":20,"0x40007000":124,"0x4001e504":119,"0x4001e50c":119,"0x41000000":116,"0x42000":61,"0x44":23,"0x4400":100,"0x4f":[99,124],"0x50":[112,119],"0x500":20,"0x5000":100,"0x55":23,"0x60":[112,119],"0x61":[99,124],"0x66":23,"0x6c00":100,"0x70":[112,119],"0x72":[99,124],"0x7800":100,"0x7fff8000":124,"0x80":[99,124],"0x8000":61,"0x8000000":118,"0x8801":100,"0x90":[99,124],"0x9c01":100,"0xa001":100,"0xa7":[99,124],"0xaf":[99,124],"0xb3":[99,124],"0xb401":100,"0xb5":[99,124],"0xbead":[99,124],"0xcc01":100,"0xd2":[99,124
 ],"0xd801":100,"0xdead":[99,124],"0xe401":100,"0xe7":[99,124],"0xf":100,"0xf001":100,"0xfe":100,"0xffff":[29,100],"0xffffffff":112,"0xffffffff0xffffffff0xffffffff0xffffffff":119,"1024kbyte":[116,118],"10m":27,"128kb":[9,94],"12c":[115,117,123,124],"12kb":95,"12mhz":9,"132425ssb":30,"132428ssb":30,"132433ssb":30,"132437ssb":30,"132441ssb":30,"14e":131,"14h":131,"16kb":[9,94,95],"16kbram":53,"16mb":9,"190a192":100,"1_amd64":[57,60,80,83],"1c15":[99,124],"1d11":133,"1d13":[136,141],"1st":68,"1ubuntu1":6,"1wx":119,"200mhz":9,"2015q2":[4,12],"2022609336ssb":106,"2022687456ssb":106,"2022789012ssb":106,"2022851508ssb":106,"2042859320ssb":106,"2042937440ssb":106,"248m":6,"250m":122,"256kb":112,"262s":[115,117,123,124],"28a29":100,"28t22":140,"291ebc02a8c345911c96fdf4e7b9015a843697658fd6b5faa0eb257a23e93682":125,"296712s":118,"2a24":48,"2d5217f":81,"2m_interval_max":27,"2m_interval_min":27,"2m_latenc":27,"2m_max_conn_event_len":27,"2m_min_conn_event_len":27,"2m_scan_interv":27,"2m_scan_windo
 w":27,"2m_timeout":27,"2msym":21,"300v":[115,117,123,124],"32kb":[95,112],"32mb":9,"32wx":[112,119],"363s":[115,117,123,124],"3_1":36,"3mb":81,"4_9":4,"4fa7":[99,124],"500m":122,"512kb":88,"6lowpan":21,"73d77f":71,"7b3w9m4n2mg3sqmgw2q1b9p80000gn":55,"8ab6433f8971b05c2a9c3341533e8ddb754e404":129,"9cf8af22b1b573909a8290a90c066d4e190407e97680b7a32243960ec2bf3a7f":136,"9mb":58,"abstract":[9,20,90,91,100,122,139],"boolean":95,"break":[20,100,107],"byte":[19,23,27,46,66,71,73,93,110,111,123,125,137],"case":[2,6,7,20,21,30,55,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,87,88,95,97,99,100,103,107,108,110,111,112,124,132,137,140,141],"catch":20,"char":[84,87,93,95,100,107,110,111,114,122,137,140],"class":123,"const":[88,93,99,100,107,109,110,111,124,140],"default":[1,2,4,6,7,12,20,24,26,27,28,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,61,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,87,88,89,91,93,94,95,97,98,99,100,103,105,107,110,111,112,113,122,123
 ,124,125,127,131],"enum":[99,100],"export":[1,11,23,60,61,80,82,83,93,98],"final":[8,55,88,99,102,105,124,126,137],"float":[64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82],"function":[1,7,9,14,20,23,31,61,84,86,87,89,90,91,93,97,98,99,100,102,105,106,108,110,111,113,114,122,123,124,125,127,131,132,135,139,140],"goto":[99,100,124],"import":[11,55,57,80,88,92,102,105,108,124,137],"int":[1,20,26,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,84,87,93,95,99,100,105,107,108,109,110,111,114,122,124,126,137,140],"long":[3,21,24,28,87,119],"new":[2,3,4,6,10,11,21,23,24,27,30,31,34,39,41,45,46,50,53,57,58,59,61,84,85,88,91,93,95,97,100,101,102,103,108,109,110,111,112,115,116,117,118,119,123,124,125,127,137,139,140,141],"null":[84,87,88,93,94,95,99,100,105,108,109,110,111,114,122,124,137],"public":[19,25,27,29,30,32,57,66,80,84,93,110,111],"return":[18,26,84,87,88,93,95,99,100,105,107,108,109,112,114,122,123,124,1
 34,137,140],"short":137,"static":[19,26,66,87,88,93,97,99,100,103,105,107,108,109,110,111,114,122,124],"switch":[10,12,20,58,71,77,81,84,85,87,88,98,99,100,102,103,107,108,124,131],"transient":108,"true":[8,12,84,92,124,125,133,136,140],"try":[2,20,21,23,97,102,103,106,112,113,114,115,116,117,119,124,126,128,131,141],"var":[50,55,65,66],"void":[20,26,84,87,93,95,99,100,105,107,108,109,110,111,114,122,124,137],"while":[4,6,7,8,21,23,26,49,55,61,87,88,93,95,98,99,100,110,111,114,120,122,124,131,132,137,140],AES:22,ANS:104,Adding:[56,79,139],And:[61,94,99,100,101,106,124,126,137],But:124,CTS:103,FOR:4,For:[2,3,5,6,7,8,11,12,20,22,23,24,29,30,34,37,39,50,53,55,57,58,59,60,61,62,66,83,87,88,91,92,94,95,97,100,102,107,108,109,110,111,112,114,116,117,118,122,123,124,125,127,128,131,132,133,136,139,140,141],IDE:[5,12],Its:[89,92,97,128],NOT:124,Not:[7,20,29,124],One:[6,20,87,97,100,105,141],PCs:8,QoS:[20,21],RTS:103,Such:[110,111,128],TMS:112,That:[2,20,61,95,100,110,111,112,123,124,127,141
 ],The:[1,2,3,4,5,6,7,8,10,11,12,14,15,16,17,18,19,20,21,22,23,24,26,27,29,30,31,33,34,37,43,45,46,47,50,55,57,58,59,61,63,64,66,70,71,72,73,75,76,77,78,80,81,82,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,105,107,108,109,110,111,112,113,115,116,117,118,119,120,122,123,124,125,126,127,128,131,132,133,134,135,136,137,138,139,140,141],Then:[10,33,63,97,100,103,124,131,140],There:[4,8,22,23,28,57,61,80,88,89,93,107,112,123,124,129,131,132,140],These:[5,20,27,50,61,88,89,91,94,98,101,105,109,110,111,112,113,118,127,128],Use:[1,7,8,11,27,28,50,57,58,59,62,71,80,81,82,88,97,107,110,111,112,115,123,127,135,141],Used:88,Uses:[31,42,94],Using:[20,49,114,135,139],Was:123,Will:20,With:[9,20,21,30,87,91,94,100,102,126,131,132,137,139],Yes:[10,19,138],__a:84,__asm:116,__etext:118,__n:84,__t1:84,__t2:84,__wfi:116,_access:107,_adc:124,_addr:110,_addr_:[110,111],_app:110,_build:[33,63],_gatt_ac:107,_imghdr_siz:88,_name:95,_nrf52_adc_h_:124,_senseair_h_:100,_set:110,_stage:95,abbr
 evi:105,abc:140,abil:[6,22,31,55,137],abl:[2,88,98,100,106,110,111,112,124,127,138],abort:[49,94,95,140],about:[1,3,10,23,29,40,57,58,59,62,64,80,81,82,87,88,92,96,97,100,105,108,109,110,111,115,119,122,123,124,128,137],abov:[9,14,19,87,92,94,95,98,99,102,105,107,110,111,114,123,124,127,140],accept:[20,27,97,112,116,118,123,127],access:[15,20,21,27,59,61,64,70,80,81,82,86,87,88,95,100,102,109,112,122,140],access_:109,access_cb:[99,107,109,124],accommod:[24,91,110],accomplish:[9,55,107],accord:88,accordingli:[24,88],account:[10,61],accur:118,achiev:[26,110,111],ack_rxd:123,acknowledg:123,acl:20,acquir:26,across:[30,31,55,61,62],act:[22,30],action:[9,27,62,97,105,109,123,124,137],activ:[12,16,17,21,47,71,88,97,105,123,125,131,132,133,136],actual:[2,7,34,77,88,94,96,100,102,110,111,112,124,127,128,129,137],adafruit:[8,124],adapt:[21,91,112,115,116,141],adapter_nsrst_delai:[112,116],adaptor:118,adc0:124,adc:[9,53],adc_0:124,adc_0_interrupt_prior:124,adc_0_oversampl:124,adc_0_resolut:124
 ,adc_buf_read:124,adc_buf_releas:124,adc_buf_s:124,adc_buf_set:124,adc_chan_config:124,adc_config:124,adc_dev:124,adc_event_handler_set:124,adc_evq:124,adc_hw_impl:53,adc_init:124,adc_nrf52:124,adc_number_channel:124,adc_number_sampl:124,adc_read:124,adc_read_ev:124,adc_result:124,adc_result_mv:124,adc_sampl:124,adc_sns_str:124,adc_sns_typ:124,adc_sns_val:124,adc_stack:124,adc_stack_s:124,adc_task:124,adc_task_handl:124,adc_task_prio:124,add:[1,2,4,6,7,11,12,27,37,39,50,55,57,58,59,61,62,80,87,91,92,93,95,97,98,102,103,106,112,113,114,120,122,125,126,127,133,134,135,136,137,139,140,141],added:[10,12,32,53,55,81,88,93,99,100,112,114,122,125,128,133,134,136,139,141],adding:[2,31,37,55,88,89,92,99,100,102,114,124,127,128,140],addit:[1,12,21,29,43,55,61,62,88,89,91,95,97,98,100,102,105,112,113,115,116,118,119,123,134,137],addition:62,addr:[27,30,103,110,111],addr_typ:[27,30],address:[20,21,22,25,27,29,31,32,55,66,87,103,107,123,125,131,141],aditihilbert:4,adjust:[20,88,122,126],admin:[4
 ,103],adress:27,adsertis:27,adv:[21,27,30,31],adv_data:27,adv_field:[105,110],adv_param:[105,108,110,111],advanc:[59,131,132],advantag:108,advantang:105,adverb:62,adverti:[110,111],advertis:[15,20,21,24,26,31,32,66,99,104,106,108,124,125],advertising_interv:[27,29],advic:[89,90],advinterv:29,aes:[112,115,117,119,133,134,136,141],aesni:[133,134],af80:[99,124],affect:[102,120],aflag:[1,50,61],after:[4,8,11,22,26,30,41,50,55,57,58,61,80,81,84,89,92,94,97,98,103,105,107,108,109,112,113,125,127,137,138,141],again:[8,20,26,57,59,80,88,99,105,112,115,116,117,118,119,123,124,136,137],against:[22,87],agre:[100,124],agreement:[100,124],ah02mie2:100,ahead:92,aid:61,aim:[20,104,139],ain0:124,ain1:124,air:[20,98,123,139],air_q:100,air_qual:[99,100,124],albeit:101,alert:104,algorithm:[21,85],align:137,all201612161220:75,all:[1,2,3,6,7,8,9,10,12,14,15,16,17,18,20,21,22,24,26,27,28,29,30,31,35,40,41,43,49,50,51,52,53,55,61,66,72,75,87,88,89,91,92,93,94,95,96,97,98,99,100,102,103,104,105,106,107,108
 ,109,110,111,114,116,118,120,123,124,126,127,128,129,130,133,136,138,140],alloc:[73,77,105,107],allow:[2,3,4,6,8,9,12,20,21,27,31,39,50,55,57,58,59,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,87,91,93,95,97,98,103,105,108,110,114,115,122,123,124,137,141],almost:[8,137],along:[61,100],alongsid:[110,137],alphabet:95,alreadi:[6,7,8,11,20,24,31,43,58,59,81,82,84,90,91,97,99,100,101,102,112,114,115,116,117,118,119,123,124,126,131,132,133,136,141],also:[1,3,5,6,7,8,11,12,21,23,24,27,34,37,40,55,57,58,59,60,61,66,80,83,87,88,91,92,93,94,95,97,98,99,100,102,105,108,109,113,114,120,122,123,124,127,128,133,134,136,137,140,141],alt:136,altern:[6,107],although:127,altogeth:99,alwai:[8,61,88,92,100,101,107,110,111,118,127,128,139,140],ambigu:20,ambiti:102,amd64:[57,80],amend:[1,32,50,62,120,125,131,132],among:[85,88],amount:[24,90,105,137],analyz:[12,132],ani:[1,4,8,10,14,21,22,27,33,49,50,59,61,63,64,66,73,76,77,80,81,82,84,87,88,90,92,93,95,97,98,99,100,103,105,114,115,123,124,125,128,1
 35,139],announc:[105,110,111],annoy:[107,129],anonym:27,anoth:[10,21,26,27,30,61,87,88,89,90,92,93,94,97,100,105,107,123,124,131,132,134,137],ans:[100,124],answer:87,anymor:137,anyth:[1,8,23,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,97,100,102,110,111,113,124,126,128],apach:[1,2,6,7,10,11,12,21,32,33,37,38,39,43,44,50,51,53,55,57,58,59,61,62,63,80,81,82,88,93,95,97,100,102,103,104,106,110,112,113,114,115,116,117,118,119,123,124,127,128,131,132,133,134,135,136,138,139,140,141],apart:92,api:[1,16,17,18,19,20,21,53,55,61,87,91,92,111,116],app:[1,7,8,12,21,26,29,32,34,37,38,42,43,45,46,47,48,50,53,55,62,73,76,77,88,93,94,95,97,98,99,100,102,104,105,108,109,110,111,112,114,115,116,117,118,119,122,124,125,126,131,133,134,135,136,137,139,140,141],app_error:124,app_util_platform:124,appear:[27,29,91,107,109,137],append:140,append_test:140,appl:[112,131,132],appli:[12,24,93,95,123,140],applic:[1,2,4,5,6,8,9,11,13,14,18,20,21,23,24,25,26,28,30,34,39,42,47,50,55,5
 7,58,59,60,61,73,76,77,78,82,83,88,93,94,95,96,99,100,101,104,107,108,113,124,125,132,134,135,139,140],applicaton:1,applict:12,approach:[31,88,95],appropri:[62,88,91,95,97,100,102,105,108,110,111,113,124,126],approv:10,apps_air_qu:100,apps_blinki:[55,61],apr:[115,117,123,124],apropo:[112,131,132],apt:[4,6,7,56,60,79,83,103],arbitrari:[97,103,112,115,116,117,118,119,123,124,133,134,136,141],arbitrarili:111,arc4:112,arch:[61,88,91,115,116,117,118,119,123],arch_sim:114,architectur:[57,80,84,85,88,90,91,92,137],archiv:[4,7,57,59,61,97,98,100,102,112,114,115,116,117,118,119,123,124,133,134,136,141],arduino:[12,99,100,113,127,137,139],arduino_101:53,arduino_blinki:[12,112,137],arduino_boot:[12,112],arduino_mkr1000:141,arduino_primo_nrf52:[53,100,115],arduino_zero:112,arduino_zero_debug:112,arduinowifi:141,area:[88,95],arg:[12,84,87,99,100,107,108,122,124,137],argc:[84,87,95,100,110,111,114,122,137,140],argument:[11,12,20,45,50,55,62,93,105,108,109,110,111,115,117,127,128,137],argv:[84,95,
 100,110,111,114,122,137,140],arm:[5,6,7,12,88,112,118,131,132,136],around:[30,124],arrai:[23,95,105,109,126,137],arrang:88,articl:129,artifact:[35,39,50,55,57,58,59,127],asf:[1,100,127],ask:[10,87,100,118,127,128,137],aspect:[27,137],assembl:[1,61,88,91,115,116,117,118,119,123],assert:[67,93,99,100,107,108,109,110,111,114,122,124,137],assign:[10,19,21,23,29,37,50,53,66,87,88,95,97,107,112,115,116,117,118,119,123,124,133,136,141],associ:[22,24,95,105,108],assum:[7,12,30,43,59,60,82,83,88,95,97,98,99,100,101,102,114,122,123,124,126,131,132],at91samd21g18:112,at91samd:112,atmel:[2,112,141],att:[18,21,28,107],attach:[8,12,88,102,115,123,124,131,132],attempt:[20,23,27,95,107,108,109,123],attent:3,attr:[28,30],attr_handl:[99,106,107,108,124],attribut:[14,16,17,20,21,28,50,53,62,66,89,91,95,104,107],auth:[27,129],authent:[20,22,30,106],author:[1,20,43,61,93,100,124],auto:29,autocomplet:55,autoconf:55,autom:31,automat:[1,10,21,24,25,42,55,61,89,95,98,100,102,104,105,112,115,116,118,119,127,
 139,140],autoselect:112,avaial:123,avail:[1,2,3,4,7,9,20,21,23,24,29,30,31,32,47,57,58,59,62,64,73,80,81,82,93,95,96,98,110,114,123,124,128,131,132],avail_queu:93,avoid:[61,87,137],awai:[20,88,107,124],await:3,awar:[105,110,111],b0_0:118,b0_1:118,b1_0:118,b1_1:118,b5729002b340:[99,124],b8d17c77a03b37603cd9f89fdcfe0ba726f8ddff6eac63011dee2e959cc316c2:125,back:[8,58,64,69,80,81,82,92,93,98,100,109,118,119,133,134,136],backward:[21,93],bad:128,badli:87,band:[21,22,27],bang:100,bank:118,bar:[12,139],bare:[104,110,111,139],base64:[7,93,123],base:[1,2,4,6,7,12,20,21,24,31,34,39,55,57,58,59,61,94,100,103,109,112,115,116,118,119,137,141],baselibc:[7,48,88],bash:[2,12,55,59,88],bash_complet:36,bash_profil:[11,58,60,81,83],bashrc:55,basi:[9,19,22,100,124,128],basic:[1,14,21,29,30,31,61,88,98,99,102,103,123,125,127,129,134,135,141],batch:88,batteri:[9,24,31,91,110],baud:[66,93,100,103],bd_addr:20,be9699809a049:71,beacon:[14,101,102,113],bearer:[21,32],becaus:[8,12,20,22,26,30,50,94,100,127,129
 ,137,140],becom:[22,31,105,108],been:[4,10,20,26,36,43,55,58,59,61,77,81,82,84,95,99,100,103,108,112,115,123,138,141],befor:[2,4,7,8,12,20,41,50,57,61,80,84,87,88,92,93,95,98,102,103,104,105,107,110,111,113,114,116,122,123,124,135,137,140,141],begin:[26,103,106,108,110,111,127,140],beginn:139,behav:[20,30,87,110,111,140],behavior:[59,87,91,107,109,132,137,140,141],behind:92,being:[20,87,100,106,108,137,139,140],belong:[14,109],below:[1,2,4,6,12,18,20,22,23,24,30,43,62,87,88,89,93,97,99,102,107,109,112,115,116,117,118,119,120,123,124,127,128,129,137,139,140],benefit:[10,87,95,96,122],best:[88,128],beta:124,between:[7,12,21,26,27,31,37,46,55,92,93,94,95,98,103,115,122,123,124,128],bhd:66,big:[23,61,123,128],bin:[2,4,7,11,12,34,35,37,38,43,46,48,50,55,57,58,59,60,61,80,81,82,83,88,95,97,98,100,102,103,106,112,114,115,116,117,118,119,123,124,125,126,131,132,133,134,136,140,141],bin_basenam:61,binari:[4,7,11,34,37,39,55,58,60,61,79,81,83,100,114],binutil:4,bit:[7,14,23,25,27,29,57,58,59,
 66,81,82,84,86,92,100,102,107,108,109,110,111,124,128,131,132,137,141],bits0x00:27,ble:[14,18,19,23,26,30,31,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,95,98,99,100,101,103,105,107,108,109,113,125,139],ble_:107,ble_addr_t:[110,111],ble_addr_type_publ:108,ble_app:[102,110,111],ble_app_advertis:[110,111],ble_app_on_sync:[110,111],ble_app_set_addr:[110,111],ble_att:[76,98,107],ble_att_err_attr_not_found:20,ble_att_err_attr_not_long:20,ble_att_err_insufficient_authen:20,ble_att_err_insufficient_author:20,ble_att_err_insufficient_enc:20,ble_att_err_insufficient_key_sz:20,ble_att_err_insufficient_r:[20,99,124],ble_att_err_invalid_attr_value_len:[20,107],ble_att_err_invalid_handl:20,ble_att_err_invalid_offset:20,ble_att_err_invalid_pdu:20,ble_att_err_prepare_queue_ful:20,ble_att_err_read_not_permit:20,ble_att_err_req_not_support:20,ble_att_err_unlik:[20,99,124],ble_att_err_unsupported_group:20,ble_att_err_write_not_permit:20,ble_att_svr_entry_pool:73,ble_att_svr_prep_entry_pool:
 73,ble_eddystone_set_adv_data_uid:110,ble_eddystone_set_adv_data_url:110,ble_eddystone_url_scheme_http:110,ble_eddystone_url_suffix_org:110,ble_err_acl_conn_exist:20,ble_err_auth_fail:20,ble_err_chan_class:20,ble_err_cmd_disallow:20,ble_err_coarse_clk_adj:20,ble_err_conn_accept_tmo:20,ble_err_conn_establish:20,ble_err_conn_limit:20,ble_err_conn_parm:20,ble_err_conn_rej_bd_addr:20,ble_err_conn_rej_channel:20,ble_err_conn_rej_resourc:20,ble_err_conn_rej_secur:20,ble_err_conn_spvn_tmo:20,ble_err_conn_term_loc:20,ble_err_conn_term_m:20,ble_err_ctlr_busi:20,ble_err_diff_trans_col:20,ble_err_dir_adv_tmo:20,ble_err_encryption_mod:20,ble_err_host_busy_pair:20,ble_err_hw_fail:20,ble_err_inq_rsp_too_big:20,ble_err_instant_pass:20,ble_err_insufficient_sec:20,ble_err_inv_hci_cmd_parm:20,ble_err_inv_lmp_ll_parm:20,ble_err_link_key_chang:20,ble_err_lmp_collis:20,ble_err_lmp_ll_rsp_tmo:20,ble_err_lmp_pdu:20,ble_err_mac_conn_fail:20,ble_err_mem_capac:20,ble_err_no_pair:20,ble_err_no_role_chang:20,b
 le_err_page_tmo:20,ble_err_parm_out_of_rang:20,ble_err_pending_role_sw:20,ble_err_pinkey_miss:20,ble_err_qos_parm:20,ble_err_qos_reject:20,ble_err_rd_conn_term_pwroff:20,ble_err_rd_conn_term_resrc:20,ble_err_rem_user_conn_term:20,ble_err_repeated_attempt:20,ble_err_reserved_slot:20,ble_err_role_sw_fail:20,ble_err_sco_air_mod:20,ble_err_sco_itvl:20,ble_err_sco_offset:20,ble_err_sec_simple_pair:20,ble_err_synch_conn_limit:20,ble_err_unit_key_pair:20,ble_err_unk_conn_id:20,ble_err_unk_lmp:20,ble_err_unknown_hci_cmd:20,ble_err_unspecifi:20,ble_err_unsupp_lmp_ll_parm:20,ble_err_unsupp_qo:20,ble_err_unsupp_rem_featur:20,ble_err_unsupport:20,ble_ga:109,ble_gap:76,ble_gap_adv_param:[110,111],ble_gap_adv_set_field:105,ble_gap_adv_start:[105,108,110,111],ble_gap_chr_uuid16_appear:[107,109],ble_gap_chr_uuid16_device_nam:[107,109],ble_gap_chr_uuid16_periph_pref_conn_param:107,ble_gap_chr_uuid16_periph_priv_flag:107,ble_gap_chr_uuid16_reconnect_addr:107,ble_gap_conn_desc:108,ble_gap_conn_find:10
 8,ble_gap_conn_fn:105,ble_gap_conn_mode_und:[105,108],ble_gap_disc_mode_gen:[105,108],ble_gap_ev:108,ble_gap_event_conn_upd:108,ble_gap_event_connect:108,ble_gap_event_disconnect:108,ble_gap_event_enc_chang:108,ble_gap_event_fn:[110,111],ble_gap_event_subscrib:108,ble_gap_svc_uuid16:[107,109],ble_gap_upd:73,ble_gatt:76,ble_gatt_access_ctxt:[99,107,124],ble_gatt_access_op_read_chr:[99,107,124],ble_gatt_access_op_write_chr:[99,107,124],ble_gatt_chr_def:[99,107,109,124],ble_gatt_chr_f_notifi:[99,124],ble_gatt_chr_f_read:[99,107,109,124],ble_gatt_chr_f_read_enc:[99,124],ble_gatt_chr_f_writ:[99,124],ble_gatt_chr_f_write_enc:[99,124],ble_gatt_register_fn:109,ble_gatt_svc_def:[99,107,109,124],ble_gatt_svc_type_primari:[99,107,109,124],ble_gattc:76,ble_gattc_proc_pool:73,ble_gatts_chr_upd:[99,124],ble_gatts_clt_cfg_pool:73,ble_gatts_find_chr:[99,124],ble_gatts_register_svc:109,ble_h:[14,15,16,17,19,20,23,26,76,110,111],ble_hci_ram_evt_hi_pool:73,ble_hci_ram_evt_lo_pool:73,ble_hci_uart_baud:
 103,ble_hs_:109,ble_hs_adv_field:[105,110],ble_hs_att_err:20,ble_hs_cfg:[26,110,111],ble_hs_conn_pool:73,ble_hs_eagain:20,ble_hs_ealreadi:20,ble_hs_eapp:20,ble_hs_eauthen:20,ble_hs_eauthor:20,ble_hs_ebaddata:20,ble_hs_ebusi:20,ble_hs_econtrol:20,ble_hs_edon:20,ble_hs_eencrypt:20,ble_hs_eencrypt_key_sz:20,ble_hs_einv:20,ble_hs_emsgs:20,ble_hs_eno:20,ble_hs_enoaddr:20,ble_hs_enomem:20,ble_hs_enomem_evt:20,ble_hs_enotconn:20,ble_hs_enotsup:20,ble_hs_enotsync:20,ble_hs_eo:20,ble_hs_ereject:20,ble_hs_erol:20,ble_hs_err_sm_peer_bas:20,ble_hs_err_sm_us_bas:20,ble_hs_estore_cap:20,ble_hs_estore_fail:20,ble_hs_etimeout:20,ble_hs_etimeout_hci:20,ble_hs_eunknown:20,ble_hs_forev:[108,110,111],ble_hs_hci_err:20,ble_hs_hci_ev_pool:73,ble_hs_id:23,ble_hs_id_gen_rnd:[23,110,111],ble_hs_id_set_rnd:[19,23,110,111],ble_hs_l2c_err:20,ble_hs_reset_fn:26,ble_hs_sm_peer_err:20,ble_hs_sm_us_err:20,ble_hs_sync_fn:26,ble_ibeacon_set_adv_data:111,ble_l2cap:76,ble_l2cap_chan_pool:73,ble_l2cap_sig_err_cmd_not_u
 nderstood:20,ble_l2cap_sig_err_invalid_cid:20,ble_l2cap_sig_err_mtu_exceed:20,ble_l2cap_sig_proc_pool:73,ble_ll:[76,77,100],ble_ll_conn:76,ble_ll_prio:95,ble_lp_clock:24,ble_mesh_dev_uuid:32,ble_mesh_pb_gatt:32,ble_own:[110,111],ble_own_addr_random:[110,111],ble_phi:76,ble_prph:100,ble_public_dev_addr:23,ble_rigado:47,ble_sm_err_alreadi:20,ble_sm_err_authreq:20,ble_sm_err_cmd_not_supp:20,ble_sm_err_confirm_mismatch:20,ble_sm_err_cross_tran:20,ble_sm_err_dhkei:20,ble_sm_err_enc_key_sz:20,ble_sm_err_inv:20,ble_sm_err_numcmp:20,ble_sm_err_oob:20,ble_sm_err_pair_not_supp:20,ble_sm_err_passkei:20,ble_sm_err_rep:20,ble_sm_err_unspecifi:20,ble_svc_gap_device_name_set:124,ble_tgt:[102,110,111],ble_uu:109,ble_uuid128_init:[99,124],ble_uuid128_t:[99,124],ble_uuid16:[107,109],ble_uuid16_declar:[99,124],ble_uuid_128_to_16:107,ble_uuid_u16:[99,124],ble_xtal_settle_tim:24,bleadc:124,blecent:[7,61],blehci:[7,61],blehciproj:103,blehostd:66,blemesh:[21,32],blenano:53,bleprph:[7,21,61,66,99,100,104,1
 05,106,107,108,109,124,125,132],bleprph_advertis:[105,108],bleprph_appear:107,bleprph_device_nam:[105,107],bleprph_log:[99,105,108,124],bleprph_oic:[7,61],bleprph_on_connect:105,bleprph_pref_conn_param:107,bleprph_print_conn_desc:108,bleprph_privacy_flag:107,bleprph_reconnect_addr:107,blesplit:[7,61],bletest:[7,61],bletini:[7,21,37,38,45,46,50,61,71,98,103,106],bletiny_chr_pool:73,bletiny_dsc_pool:73,bletiny_svc_pool:73,bleuart:[7,61],blink:[1,7,61,88,100,112,113,115,116,117,118,119,122,124,126,137,139],blink_nord:132,blink_nrf:100,blink_primo:100,blink_rigado:47,blinki:[1,12,34,43,44,48,55,61,88,100,102,103,123,124,131,132,133,134,136,137,139,141],blinky_callout:114,blinky_primo:100,blinky_sim:61,blksz:[73,134],blob:20,block:[20,29,73,84,100,122,134],blue:119,bluetooth:[1,9,20,22,23,24,27,29,32,100,104,105,110,111,113,124,125,139],bmd300eval:[48,53,117,124],bmd:[117,124],board:[1,2,4,5,7,8,12,23,24,30,39,42,47,53,55,57,58,59,61,87,88,94,95,97,98,99,100,103,106,110,111,113,114,122,1
 24,125,126,131,132,135,137,139],bold:[97,138],bond:[22,27,29,30,106],bondabl:27,bone:[104,110,111,139],boot:[7,43,61,88,92,93,97,98,100,103,112,115,116,117,118,119,123,124,125,133,134,136,141],boot_boot_serial_test:7,boot_load:88,boot_nrf:100,boot_olimex:118,boot_primo:100,boot_seri:[7,93],boot_serial_setup:7,boot_test:7,bootabl:[125,133,136],bootload:[1,12,43,47,88,91,93,97,100,113,114,124,125,135,137],bootutil:[7,93,112,115,116,117,118,119,123,133,134,136,141],bootutil_misc:[7,112,115,116,117,119,133,134,136],both:[6,9,11,14,20,22,27,29,39,55,57,58,59,62,88,94,95,96,112,114,123,124,129,140,141],bottl:[58,81],bottom:[12,88,106],bound:88,boundari:88,box:[12,132],branch:[1,4,7,10,11,55,56,57,59,60,79,80,82,83,112,127,128,138,141],branchnam:10,brand:119,bread:124,breadboard:124,breakout:8,breakpoint:[112,116],breviti:[97,134],brew:[3,4,7,11,36,55,58,60,81,83],brief:[19,110,111,123],briefli:88,bring:[12,88],broad:139,broadca:[110,111],broadcast:[14,27,31,105,110,111],brows:[106,115,127
 ],browser:138,bsp:[1,7,24,32,34,37,38,42,43,45,47,50,55,61,62,87,95,97,100,102,103,106,112,114,115,116,117,118,119,122,123,124,131,132,133,134,136,139,141],bsp_arduino_zero:112,bsp_arduino_zero_pro:[112,141],bsppackag:88,bss:[48,88],bssnz_t:[99,100,124],btattach:103,btshell:29,buad:66,buffer:[20,87,91,93,94,111,124],buffer_len:124,buffer_size_down:131,bug:[4,7,11,112,116,131,132],bui:124,build:[1,2,3,4,5,6,11,31,32,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,80,82,87,88,89,91,94,95,99,100,104,105,106,113,122,125,135,139,140],build_arduino_blinki:12,build_arduino_boot:12,build_profil:[1,32,37,38,43,50,53,61,88,97,100,102,103,106,112,115,116,117,118,119,123,124,133,134,136,141],buildabl:7,builder:138,built:[1,4,7,8,9,21,33,34,38,39,42,43,55,57,58,59,60,61,63,81,82,83,97,98,99,100,102,103,106,110,111,112,113,114,115,116,117,118,119,123,124,133,134,136,138,140,141],bunch:100,bundl:55,burn:[110,111],bus:2,busi:[20,100,137],button1_pin:122,button:[2,4,10,12,112,11
 5,122],cabl:[98,103,112,113,115,116,117,118,122,123,124,125,133,135,136,137,141],cach:[58,81],cache_large_file_test:140,calcul:[20,29,48,92],calendar:9,call:[6,7,9,11,19,21,23,26,36,61,84,85,87,88,92,93,95,98,100,101,102,105,106,107,108,109,110,111,112,114,122,123,124,127,135,137,140],callback:[20,26,84,93,95,100,105,107,109,110,111,114,122],caller:93,callout:[87,114],callout_l:122,came:103,can:[1,2,3,4,5,6,7,8,9,11,12,19,20,21,22,23,24,27,30,31,33,34,35,42,45,50,55,57,58,59,60,61,62,63,64,66,72,76,80,81,82,83,84,85,87,88,89,91,93,94,95,96,97,98,99,100,102,103,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,122,123,124,125,126,127,128,131,132,133,134,136,137,138,139,140,141],cancel:[20,27],candid:127,cannot:[4,19,20,71,84,87,95,98,112,127,128,129,141],capabl:[20,22,27,29,90,93,114,131,137],capac:20,captian:81,carbon:99,care:[87,99,110,111,127,128],cascad:[1,61],cast:107,cat:[80,100,124],catastroph:26,categor:88,categori:[10,91],caus:[87,94,124,125,131,137],cb_arg:[10
 5,109,110,111],cbmem:7,cborattr:7,cccd:27,ccm:22,cdc:115,cell:22,cellar:[4,6,11,36,58,60,81,83],central:[20,30,104,105,106,108],certain:[1,21,87,88,103,128],certainli:124,cess_op_:107,cfg:[70,116],cflag:[1,50,61,88],challeng:120,chanc:87,chang:[1,4,6,7,10,11,19,20,21,22,24,28,30,46,49,50,52,57,61,62,80,88,89,94,95,97,98,99,100,103,106,108,110,111,112,116,122,124,126,131,132,137,138],channel:[20,21,29,124],channel_map:27,chapter:[2,21,91],charact:[93,95,109,131,141],character:24,characteri:[107,109],characterist:[9,16,17,21,27,28,99,106,109,124],check:[4,6,8,11,20,22,55,56,79,94,95,97,100,102,103,104,115,118,123,125,128,135,140],checkbox:59,checkin:77,checkout:[10,80,82,113],chip:[4,91,100,112,113,115,116,119,127,141],chipset:[112,141],choic:[2,10,103],choos:[6,7,10,98,99,102,105,114,115,117,124,137],chosen:[88,124],chr:[99,107,124],chr_access:107,chr_val_handl:[99,124],ci40:53,cid:106,circular:[94,95],circularli:128,clang:6,clarif:10,classif:20,clean:[1,11,33,39,50,57,58,59,63,81,12
 3,137],cleanli:95,clear:72,clearli:[8,20],cli:93,click:[2,4,10,12,106,110,111,112,115,116,118,136,138],client:[12,17,18,20,21,27,31,99,110],clock:[20,25,86,112,116],clock_freq:84,clone:[10,11,45,50,55,58,81],close:[2,59,112,115,116,118,119],cmake:1,cmd:[55,61,88,100],cmd_len:100,cmd_queue:93,cmd_read_co2:100,cmp:100,cmsi:[2,7,48,88,112,115,116,117,118,119],cmsis_nvic:[88,115,116,117,118,119],cn4:97,cnt:[73,93,134],co2:[99,100],co2_evq:99,co2_read_ev:99,co2_sns_str:99,co2_sns_typ:99,co2_sns_val:99,co2_stack:99,co2_stack_s:99,co2_task:99,co2_task_handl:99,co2_task_prio:99,coars:20,coc:27,code:[1,5,7,9,10,11,13,18,21,24,26,27,29,55,85,87,90,91,92,93,95,98,100,104,105,107,108,109,112,113,114,122,123,124,127,134,135,137,139,141],codebas:[112,141],coded_interval_max:27,coded_interval_min:27,coded_lat:27,coded_max_conn_event_len:27,coded_min_conn_event_len:27,coded_scan_interv:27,coded_scan_window:27,coded_timeout:27,coding_standard:7,collect:[1,7,43,55,61,97,127],collis:20,colon:66,color:
 [124,126],column:19,com11:8,com1:66,com3:[8,114,133,136,141],com6:8,com:[8,10,11,12,33,55,57,58,59,63,80,81,82,97,103,114,127,129,133,134,136,141],combin:[1,20,22,26,43,61,87,88,102,110,111,127,128],come:[3,21,30,55,61,88,93,100,112,118,119,124,136,141],comm:[97,113],comma:[51,66],command:[1,2,4,7,8,11,20,30,34,35,36,37,38,40,41,42,44,45,46,47,48,49,51,52,53,54,57,58,59,60,61,67,68,70,71,72,75,76,78,80,81,82,83,88,91,94,95,97,102,110,111,112,114,115,116,117,118,119,120,121,123,124,125,126,127,129,130,131,132,133,136,137,140,141],comment:[3,10,88,96,139],commerci:100,commit:[10,11],common:[55,61,91,109,116],commonli:110,commun:[9,21,26,27,31,66,78,93,97,100,103,105,108,113,122,123,124,125,126,127,133,134,135,136,137,139,141],compani:29,compar:[10,20,115,116,117,123,124,130,137],comparison:[20,22,92],compat:[4,21,55,93,112,123,131,141],compens:92,compil:[1,4,5,6,7,8,11,20,34,47,53,55,58,61,81,88,91,95,96,97,98,100,102,112,115,116,117,118,119,122,123,124,133,134,136,141],complaint:21,c
 omplementari:31,complet:[9,12,20,22,27,29,30,33,55,59,63,88,90,91,93,96,103,105,110,111,116,122,124,127,133,134,136,137],completion_cb:93,complex:[9,31,87,88,101,137],compli:21,complianc:[100,124],compliant:21,complic:[55,87],compon:[1,7,12,18,39,48,55,57,58,59,61,85,88,91,98,100,103,110,111,113,122,125,135,141],compos:[39,57,58,59,96],comprehens:96,compress:[55,81,110],compris:7,comput:[3,4,6,8,12,31,56,58,59,79,81,93,102,103,112,113,115,116,117,118,119,125,133,135,136,137],concept:[12,22,87,95,101,102,104,112,113,125,135,137,141],concern:3,conclud:[110,111,124],concurr:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,104,105],condit:[4,20,94,100,124,140],condition:[55,94,95],conf:123,conf_load:124,confidenti:22,config:[1,7,32,50,61,62,64,78,80,81,82,94,95,98,100,102,124],config_fcb:94,config_fcb_flash_area:[94,95],config_newtmgr:[50,98],config_nff:94,config_pkg_init:95,configur:[6,7,9,19,20,25,26,31,32,50,55,57,58,59,61,62,86,87,88,89,91,93,102,105,109,11
 2,115,118,119,120,122,123,124,129,131,132,134,137],confirm:[8,20,27,71,123,125,133,136],confirmbe9699809a049:71,conflict:[61,94,128],confluenc:10,confus:[124,127],congratul:[7,97,99,100,106,124],conjunct:31,conn:[27,28,30,64,65,67,68,69,70,71,72,73,74,75,76,77,78,80,81,82,108,110,111,125,133,134,136],conn_handl:[20,99,106,107,108,124],conn_interval_max:29,conn_interval_min:29,conn_itvl:[30,106],conn_lat:[30,106],conn_mod:108,conn_profil:[65,66,67,68,69,70,71,72,73,74,75,76,77],conn_upd:108,connect:[4,7,8,9,12,15,20,21,22,24,26,28,29,31,38,42,43,55,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,81,82,91,93,97,99,100,104,105,106,107,108,110,111,113,122,124,135],connect_don:141,connectable_mod:105,connection_profil:71,connectionless:27,connector:[4,98,103,115,118,123,136],connintervalmax:29,connintervalmin:29,connstr:[66,125,133,134,136],consequ:20,conserv:[9,91],consid:[21,62,87,109,127],consist:[1,21,31,61,94,95,109],consol:[1,7,8,12,26,55,61,91,95,100,102,103,106,110,111,113,122,12
 4,134,140],console_append_char_cb:93,console_blocking_mod:93,console_compat:93,console_echo:93,console_handle_char:93,console_init:93,console_input:93,console_is_init:93,console_is_midlin:93,console_max_input_len:93,console_non_blocking_mod:93,console_out:93,console_pkg_init:95,console_printf:[20,26,93,99,100,124],console_prompt:100,console_read:93,console_rtt:[93,131],console_rx_cb:93,console_set_completion_cb:93,console_set_queu:93,console_tick:[93,100],console_uart:[93,131],console_uart_baud:93,console_uart_dev:93,console_uart_flow_control:93,console_uart_tx_buf_s:93,console_writ:93,constantli:[105,124,139,141],constitu:43,constrain:[9,55,120],constraint:112,construct:11,consumpt:22,contact:[89,90,97],contain:[1,3,7,11,29,31,34,50,55,61,88,90,91,92,93,95,96,102,103,105,107,109,110,111,123,127,128,139,140],content:[12,49,61,80,88,97,105,109,110,111,118,123,128,129,137,140],context:[55,77,84,85,87,93,95,98,108,114,122],continu:[6,88,98,103,112,113,118,122,124,126,131,134,135,137,13
 8,141],contrast:95,contribut:[13,22,57,58,59,80,81,82,101,140],contributor:[100,124],control:[8,9,18,19,20,21,22,23,25,26,29,31,55,66,91,93,95,100,102,116,118,124,127,128],contruct:106,conveni:[12,20],convent:[123,140],convers:107,convert:[1,8,20,71,84,92,95,100,107,109,124],copi:[1,4,45,49,50,62,80,82,89,90,100,105,108,112,124,125,131,132],copyright:[4,100,112,118,124,131,132],core:[1,6,7,12,21,29,32,37,38,43,48,50,51,53,55,61,62,71,88,90,97,100,102,103,104,105,106,112,113,114,115,116,117,118,119,123,127,128,131,132,133,134,135,136,137,139,140,141],core_cminstr:116,core_o:93,core_path:61,coreconvert:71,coredownload:71,coredump:7,coredump_flash_area:95,coreeras:71,corelist:71,corner:118,corp:[2,112],correct:[1,2,4,41,88,95,103,116,117,118,123,124,137,140],correctli:[2,103,112,116,124,126,140],correspo:109,correspond:[12,20,84,88,105,107,110,111,124,128],corrupt_block_test:140,corrupt_scratch_test:140,cortex:[4,115,117,123,124,141],cortex_m0:61,cortex_m4:[61,88,115,116,117,118,119,12
 3],cortex_m:112,cost:9,could:[20,100,107],couldn:[100,105],count:[55,81],counter:[85,123],countri:21,coupl:[1,100,118,124],cours:99,cover:[8,61,95,96,109,137],cpptool:12,cpu:[85,88,90,112,116,137],cputim:[24,84,86],cputime_geq:[84,86],cputime_gt:[84,86],cputime_leq:[84,86],cputime_lt:[84,86],crank:124,crash:[64,78,80,81,82,98],crash_test:[7,98],crash_test_newtmgr:98,crc:[7,93,100],creat:[1,2,3,4,5,6,8,10,11,12,22,27,32,34,39,41,43,44,45,46,47,50,55,57,58,59,61,62,66,71,80,81,82,87,90,93,94,95,99,104,109,113,114,122,126,127,129,135,137,139],create_arduino_blinki:12,creation:[47,97,123,124],credenti:129,criteria:20,critic:3,cross:[5,6,7,9,91],crt0:48,crti:48,crtn:48,crw:8,crypto:[7,112,115,117,119,133,134,136,141],cryptograph:22,cryptographi:22,crystal:25,csrk:27,css:138,cssv6:29,csw:[77,100,133,136],ctassert:84,ctlr_name:66,ctlr_path:66,ctrl:[12,100,102,131],ctxt:[99,107,108,124],cur_ind:108,cur_notifi:108,curi:[106,108],curiou:[3,138],curl:[11,58],curn:[106,108],currantlab:[81,82],c
 urrent:[11,24,27,31,39,40,41,44,45,46,50,51,57,58,59,60,71,81,82,83,84,85,87,88,92,93,94,97,98,110,112,113,116,118,120,123,125,127,128,130,137],custom:[23,71,95],cvs:[112,118,131,132],cwd:12,cycl:[19,21,31],cylind:124,daemon:[2,103],dai:92,dap:[2,112,115,119],darwin10:[112,131,132],darwin:6,data:[9,14,20,21,27,28,30,31,43,48,64,69,80,81,82,84,87,88,91,93,95,99,100,107,108,110,111,124,132,137,139],data_len:100,databas:28,datalen:27,datasheet:88,date:[11,68,100,123,140],datetim:[7,64,78,80,81,82,93,98,140],datetime_pars:140,daunt:105,daylight:92,dbm:[21,27,29],ddress:25,deal:[87,88],deb:[57,60,80,83],debian:[4,6],debug:[1,2,4,5,6,7,39,43,47,50,55,57,58,59,62,89,94,97,100,102,103,112,114,115,116,117,118,119,124,125,131,132,133,134,136,141],debug_arduino_blinki:12,debug_arduinoblinki:12,debugg:[5,38,39,55,57,58,59,61,112,115,116,118,119,123,131,132,136],dec:48,decemb:22,decid:[55,85,91,100,137],decim:22,declar:[12,122,127,140],decompress:110,dedic:[88,91,98,107,122,131,132],deeper:[97,1
 23,124],def:[7,94,95,124],defaultdevic:82,defin:[1,6,19,20,21,24,27,28,29,31,34,42,43,47,50,53,61,84,86,87,94,95,97,99,100,101,103,105,107,113,122,123,124,127,128,131,133,135,136,137,140],defininig:31,definit:[1,12,29,35,37,42,50,61,88,99,100,103,107,109,124,127],defint:94,del:27,delai:[26,84,92,123,126,137],delet:[1,6,10,12,27,35,39,45,49,50,55,57,58,59,61,62,99,120,126],delimit:50,delta:[55,81,97],demo:99,demonstr:[20,26,123],dep:[1,50,55,61,62,88,93,95,98,100,102,114,122,124],depend:[1,4,6,8,20,22,24,27,39,41,49,50,52,55,57,58,59,62,66,90,93,95,100,102,112,124,127,130,133,135,136,137,140,141],deploi:[43,114],deploy:31,deprec:95,depth:[4,90],dequeu:122,deriv:20,desc:108,describ:[1,2,7,10,11,12,24,28,33,63,87,88,89,91,94,95,97,98,100,102,104,109,110,116,119,123,124,127,138],descript:[1,7,10,19,27,28,30,55,61,88,89,90,94,95,97,100,120,123,124,127,128,132],descriptor:[16,17,27,28,61,107],design:[21,22,23,55,91,92,109,137,140],desir:[84,130,140],desktop:10,destin:[4,31],detail:[1,10,1
 2,21,22,29,55,87,97,98,102,105,107,109,110,111,112,123,127,131,132],detect:[20,55,94,95,103],determin:[20,95,96,105,108,127],dev:[1,2,3,4,7,8,10,11,12,48,61,66,82,93,95,96,97,100,102,103,106,112,114,115,116,117,118,119,123,124,125,126,127,128,129,133,134,136,139,141],dev_found:103,develop:[3,5,6,7,8,9,13,20,55,59,61,82,87,89,90,91,95,96,99,100,103,104,107,110,112,113,115,118,119,124,125,127,128,131,132,136,137,139],devic:[3,4,8,9,14,19,20,21,22,25,28,29,31,32,43,55,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,81,82,91,93,94,95,98,99,101,102,104,105,106,107,109,110,111,112,114,115,116,117,118,119,123,124,131,132,133,134,135,136,139,141],deviceaddr:23,deviceaddrtyp:23,dhcp:141,dhkei:20,diagram:[116,118,137],dialog:[12,59,132],dictat:[11,62],diff:100,differ:[4,6,7,8,11,12,20,24,27,30,45,55,57,80,87,88,89,90,91,94,95,98,99,102,103,114,115,116,118,120,122,125,127,128,130,132,136,137,140,141],differenti:127,difficult:[21,90,94],dig:[7,104],digit:[22,124],dioxid:99,dir:27,direct:[10,20,
 27,128],direct_addr:[110,111],directli:[7,11,14,18,36,95,110,112,120,140,141],directori:[1,4,6,7,8,10,11,12,34,35,37,41,43,45,50,55,57,59,60,80,82,83,88,89,90,97,100,102,103,112,113,115,116,117,118,119,124,126,127,128,132,133,135,136,139,140,141],dirti:97,disabl:[6,20,22,24,30,84,93,94,95,98,108,120,131,141],disallow:20,disc_mod:108,discard:141,disciplin:103,disclaim:[7,11,55,102],disconnec:27,disconnect:[27,108],discov:[22,27,28,103],discover:[27,29,105],discoverable_mod:105,discoveri:[28,103,108,113],discuss:[10,89,105],disjoint:20,disk:7,dispatch:[87,95,122],displai:[1,6,22,27,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,61,62,64,66,69,71,72,73,76,77,80,81,82,95,100,103,118,123,133,136],displayonli:27,displayyesno:27,dist:[57,80],distanc:21,distinct:22,distribut:[1,4,6,20,21,27,55,100,127],distro:6,div0:67,divid:[18,20,67],dle:27,dll:[115,117,123,124],dm00063382:97,dndebug:50,dnrf52:88,doc:[4,6,7,10,23,33,63,112,113,116,138],docker:[3,7,112,139],dockertest
 :2,document:[1,4,8,12,14,18,20,23,25,59,62,64,88,97,104,107,109,110,111,112,115,117,125,127,131,132,133,134,137,140,141],doe:[7,20,22,35,50,61,66,71,87,88,89,93,94,95,98,102,105,112,115,116,117,119,120,122,123,125,129,135,137],doesn:[8,20,32,102,103,105,126,137],doing:[92,100,107,114,137],domain:2,don:[1,10,31,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,97,100,107,109,110,111,124,127],done:[6,7,8,23,25,55,81,87,88,92,93,97,98,103,109,110,111,112,115,116,117,123,124,125,131,132,137,141],dont:131,doorbel:55,doubl:[2,118],doubt:109,down:[1,12,61,80,82,98,116,118,136],downgrad:[6,7],download:[1,2,4,7,10,12,29,39,41,42,55,58,59,60,70,71,81,82,83,100,102,103,112,115,116,117,118,119,124,129,131,132,133,134,136,138,140,141],doxygen:[4,7,112,116],dpidr:119,dpkg:[57,60,80,83],drag:20,drain:24,draw:24,drive:[9,61,92],driver:[7,55,102,112,115,116,117,118,119,131,136],drop:[12,26,116,118,136],dsc:107,dsimmon:100,dst:[45,50,70],dsym:[55,61],dtest:50,due:[20,112,116,118
 ],dump:131,duplex:21,duplic:27,durat:[19,27,30,92,107],duration_m:[110,111],dure:[20,22,71,85,88,93,95,102,107,114,137],duti:[21,31],dwarf:61,dylib:4,e407:[118,136],e407_:118,e407_devboard:[53,118,136],e407_devboard_download:118,e407_sch:136,e761d2af:[99,124],e_gatt:109,eabi:[4,7,12,88,112,131,132],each:[1,2,10,11,12,19,20,21,22,23,28,32,43,48,49,50,61,62,64,66,73,77,87,88,92,93,95,98,107,108,109,110,111,112,122,127,137,139,140],eager:3,earlier:[10,30,57,58,59,80,81,82,99,100,107,110,111,124,131],easi:[1,2,3,8,9,94,115,124,138],easier:[24,88,100],easiest:100,easili:[9,95],east:92,eavesdropp:19,echo:[12,60,64,78,80,81,82,83,93,98,100,133,134,136,141],echocommand:12,eclips:12,ectabl:[110,111],edbg:[2,112],eddyston:[27,113],eddystone_url:[27,29],edit:[7,89,97,120,123,126,127],editign:138,editor:[59,61,97,116,126],ediv:27,edr:[20,29,103],edu:[115,131],ee02:123,eeirili:99,effect:92,effici:[21,31,112],eid:110,einval:84,eir:29,eir_len:103,either:[1,4,6,11,21,27,29,30,57,59,61,80,85,93,95,9
 8,100,110,111,123,124],elaps:[20,84,92],electron:139,element:[39,53,55,57,58,59,137],elf:[7,12,34,38,48,55,61,71,97,98,100,102,103,106,112,114,115,116,117,118,119,123,124,131,132,133,134,136,140,141],elfifi:71,els:[23,85,99,100,124,131],elsewher:[104,107,127],emac:100,email:[3,96,139],embed:[1,3,4,12,39,55,57,58,59,96,97,112,118,131,132],emit:[55,61],emploi:21,empti:[50,95,101,109,140],emptiv:9,emul:[123,141],enabl:[1,8,9,24,30,31,32,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,62,73,76,77,78,88,93,94,95,97,99,100,102,105,108,113,122,124,125,131,132,135,139],enc_chang:108,encapsul:21,encod:[7,51,93,123,140],encompass:[14,20],encount:[7,20,57,137],encrypt:[20,22,27,30,106,108],encrypt_connect:20,end:[9,20,28,30,55,95,100,101,102,123],endian:[23,61,123],endif:[95,100,114,124,140],energi:[9,21,22,113,139],enjoi:124,enough:[55,91,100],ensur:[11,12,21,59,88,92,94,95,98,103,107,113,122,125,127,128,135,137,141],enter:[12,22,47,88,112,114,116,137],entir:[2,88,100,
 109,137],entiti:[43,104],entri:[20,22,72,109],environ:[3,4,9,12,55,58,59,61,82,91,103,134],eof:[57,80],ephemer:110,epoch:92,equal:[29,72,94,95],equat:29,equival:[46,61,124,139],eras:[71,112,116,117,118,123,124],erase_sector:118,err:[99,124],error:[1,2,4,6,7,20,21,26,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,80,82,84,87,88,95,99,100,105,107,108,109,112,115,116,118,119,123,124,128,136,140,141],error_rsp_rx:[76,98],error_rsp_tx:[76,98],escap:[131,141],especi:92,essenti:[43,61,95,137],establish:[20,27,78,98,105,106,108,115,117,122,123,124],etc:[1,21,24,26,36,43,57,80,87,90,91,100,101,108,124,137],etyp:124,eui:123,ev_arg:93,ev_cb:[93,122],eval:[117,124],evalu:[12,84,92,94,95,117,123,124,127],evalut:92,even:[4,10,84,91,99,124],event:[20,24,25,27,87,93,95,98,99,100,103,105,106,110,111,124,137,139],event_q:124,event_queu:93,eventq:[99,100,124],eventq_exampl:122,eventu:[4,92],everi:[1,32,61,100,108,110,112,114,128],everyon:[10,137],everyth:[1,88,100,124,137,140,
 141],exact:91,exactli:[88,95],examin:[105,107,134],exampl:[1,2,3,6,7,9,12,22,23,24,25,30,31,55,57,58,59,60,61,62,64,80,82,83,84,88,89,91,92,93,96,97,98,100,101,103,104,108,112,114,116,123,127,128,129,131,132,133,134,136,137,139,140,141],exce:131,exceed:20,except:[7,51,100,105,110,111,124],excerpt:[93,94,95,107,109],exchang:[14,21,22,27,28],excit:[7,97,102],exclud:51,exclus:22,exe:[12,59,60,82,83],exec_write_req_rx:[76,98],exec_write_req_tx:[76,98],exec_write_rsp_rx:[76,98],exec_write_rsp_tx:[76,98],execut:[1,2,7,11,12,30,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,61,62,67,80,82,85,87,88,91,95,98,100,105,107,108,109,110,111,114,124,137,140],exhaust:20,exisit:27,exist:[2,20,24,29,41,46,49,50,71,89,95,100,106,112,115,116,117,118,119,124,126,128,131,132,133,135,136,139,141],exit:[8,80,100,115,117,123,124,131],expect:[6,20,43,61,87,88,93,103,110,111,123,137,140],experi:[22,120],expertis:127,expir:[84,122],explain:[4,12,98,101,102,103,110,111,113,128,135,139,1
 41],explan:[34,35,37,38,39,43,44,45,46,47,48,50,51,53,54,65,66,67,68,69,70,71,72,73,74,75,76,77,105],explanatori:[30,89,110,111],explicit:140,explicitli:105,explor:107,expos:[1,14,21,87,95,104,109],express:[23,95,100,109,124],ext:[12,116],extend:[20,29,30,124],extended_dur:27,extended_period:27,extens:[21,30,123],extent:[112,131,132],extern:[12,29,40,88,124,127,128,131,132],extra:[38,42,47,105,125,131,138],extra_gdb_cmd:61,extract:[4,11,58,59,60,82,83,97,115],extrajtagcmd:[38,42,47],extrem:9,f2853f:124,f401re:53,f411a55d7a5f54eb8880d380bf47521d8c41ed77fd0a7bd5373b0ae87ddabd42:133,f4discoveri:116,facil:[19,122],fact:127,factor:9,factori:119,fail:[20,42,57,80,102,108,115,116,119,123,124,127,131,140],failur:[20,107,108,109,140],fairli:[24,55,61],fall:[91,139],fallback:27,fals:94,famili:[4,103],familiar:[3,12,95,97,98,100,101,102,104,124,131,139],faq:[11,13],far:102,fashion:[87,97],fast:100,fat2n:[7,61],fatf:7,fault:93,favorit:[97,126],fcb:7,fe80:131,feat:124,featur:[1,3,11,19,20,30,91,
 95,96,105,123],feedback:[97,113,124,126],feel:3,femal:136,fetch:[1,12,40,57,80,98,100,103,113,122,125,127,128,135],few:[1,6,14,25,31,55,61,88,89,102,107,110,123,124,139,140],ffffffff:118,ffs2nativ:[7,61],fhss:21,ficr:23,fictiti:[127,128],field:[20,27,85,88,93,95,105,107,109,110,111,127,128],file:[1,2,4,6,7,10,11,12,34,36,37,41,43,46,48,50,55,57,58,59,60,61,64,70,71,80,81,82,83,89,90,91,93,94,95,97,98,100,102,103,109,112,114,115,116,118,119,120,122,123,124,126,127,129,132,134,138,140,141],file_nam:61,filenam:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,70,71,88,100,103],filesystem:55,fill:[10,48,90,100,102,107,110,111,124,140],filter:[2,22,27,30,72,112],find:[1,2,3,20,28,34,55,61,89,91,94,96,97,102,103,112,115,116,119,131,132,133,136,139,141],find_info_req_rx:[76,98],find_info_req_tx:[76,98],find_info_rsp_rx:[76,98],find_info_rsp_tx:[76,98],find_type_value_req_rx:[76,98],find_type_value_req_tx:76,find_type_value_rsp_rx:76,find_type_value_rsp_tx:76,fine:[
 9,110,111],finish:[4,100,123],fip:21,fire:[106,137],firmwar:[98,100,115,117,123,124,131,132],first:[2,3,6,8,12,21,22,29,33,57,58,59,60,63,82,83,84,88,95,97,98,99,100,101,104,105,106,107,109,110,111,113,114,123,124,135,137,139,141],fit:[4,105,106,120],five:[20,21,22,98],fix:[6,11,92,129],flag:[1,6,12,27,29,55,57,58,59,61,62,64,80,81,82,89,99,100,103,107,109,124,125,133,136],flash:[1,9,39,43,48,55,57,58,59,61,90,91,95,98,112,116,117,118,120,123,124],flash_area_bootload:[88,94,95],flash_area_image_0:88,flash_area_image_1:[88,95],flash_area_image_scratch:[88,94],flash_area_nff:[94,95],flash_area_noexist:94,flash_area_reboot_log:[94,95],flash_map:[7,94,95],flash_map_init:95,flash_own:[94,95],flash_test:[7,93],flavor:112,flexibl:[91,96,105,127,128],flg:100,flood:31,flow:[21,93,103,110,111],fmt:93,focu:137,folder:[4,10,12,33,55,59,63,115,126],follow:[1,2,3,4,6,7,8,11,12,19,20,21,23,24,26,27,29,30,31,32,37,38,43,50,51,55,57,58,59,60,61,64,66,67,71,72,73,77,78,80,81,82,83,86,88,89,91,92,93,9
 4,95,97,98,99,100,102,103,104,105,107,109,110,111,112,113,114,115,116,117,118,119,122,123,124,125,126,127,128,129,133,135,136,137,140,141],font:124,footer:114,footprint:9,forc:[41,49,52],forgeri:22,forget:[80,97,99,100,124],forgot:100,fork:10,form:[1,19,22,23,26,66,95,107,108,110,123,127,140],formal:[7,20],format:[8,29,50,66,68,71,72,93,95,103,110,114,127,128,133,136,141],formula:[3,60,83],fortun:55,forver:27,forward:105,found:[1,20,33,55,63,88,103,108,109,110,112,116,118,136],foundat:[4,21,31,100,112,118,124,127,131,132],four:[19,22,47],fraction:[92,140],frame:[123,137],framework:[21,28,103],frdm:53,free:[2,4,73,106,108,112,118,131,132,134],freedom:[108,110,111],frequenc:[21,24,84,86,88,92,123,137],frequent:[10,19,21,22,110,111],friend:31,from:[1,4,6,7,8,9,10,11,12,19,20,22,23,26,27,30,31,32,35,36,38,39,41,43,44,45,46,47,49,50,51,55,56,60,61,62,64,65,66,68,69,70,71,72,73,76,77,79,83,84,85,87,88,89,90,91,92,94,95,97,98,100,101,102,103,104,107,108,109,110,111,112,113,114,115,116,117,
 118,119,122,123,124,125,127,128,131,132,133,134,136,137,140,141],fs_cli:7,fs_dirent:7,fs_file:7,fs_mkdir:7,fs_mount:7,fs_nmgr:7,fssl:[11,58],fsutil:7,ftdichip:103,fulfil:107,full:[1,7,8,20,21,28,30,48,55,88,94,95,98,100,102,105,108,109,114,124,126,139],fulli:[9,21,102,111,124,127,128],fun:[97,100],fundament:[1,139],further:[6,88],furthermor:[87,110,111,137],fuse:55,futur:[95,123,127,128,129],g_current_task:84,g_led_pin:[114,126,137],g_os_run_list:[84,85],g_os_sleep_list:[84,85],g_os_start:84,g_task1_loop:114,gain:[102,124],gap:[18,19,20,21,30,100,104,107,109,124],gatewai:123,gatt:[14,18,21,27,30,31,32,100,104,107,109,124],gatt_acc:107,gatt_adc_v:124,gatt_co2_v:99,gatt_co2_val_len:99,gatt_srv:124,gatt_srv_sns_access:124,gatt_svr:[99,109,124],gatt_svr_chr_access_gap:[107,109],gatt_svr_chr_access_sec_test:[99,109,124],gatt_svr_chr_sec_test_rand_uuid:[99,109,124],gatt_svr_chr_sec_test_static_uuid:[99,109,124],gatt_svr_chr_writ:[99,124],gatt_svr_register_cb:109,gatt_svr_sns_access:[99,12
 4],gatt_svr_svc:[99,107,109,124],gatt_svr_svc_adc_uuid:124,gatt_svr_svc_co2_uuid:99,gatt_svr_svc_sec_test_uuid:[99,109,124],gaussian:21,gavin:58,gc_on_oom_test:140,gc_test:140,gcc:[4,7,57],gcc_startup_:88,gcc_startup_myboard:88,gcc_startup_myboard_split:88,gcc_startup_nrf52:[88,115,117],gcc_startup_nrf52_split:[115,117,119,123],gdb:[4,7,12,38,47,61,62,88,102,112,114,115,116,118,119,124,131,132,137],gdb_arduino_blinki:12,gdbmacro:7,gdbpath:12,gdbserver:6,gen:[27,30],gen_task:122,gen_task_ev:122,gen_task_prio:122,gen_task_stack:122,gen_task_stack_sz:122,gen_task_str:122,gener:[1,11,15,16,17,18,19,20,21,23,27,28,29,31,34,35,43,55,61,62,88,94,97,98,99,100,102,103,105,106,109,110,111,112,113,114,115,116,117,118,119,123,124,125,126,127,131,132,133,136,137,138,140,141],get32:84,get:[2,4,6,7,8,9,10,11,23,55,56,58,59,60,61,64,76,79,81,82,83,85,87,88,90,91,92,95,97,99,100,101,103,105,107,109,110,111,112,113,115,116,118,119,122,123,124,126,136,137,139,140,141],gettng:120,gfsk:21,ggdb:6,ghz:[21
 ,141],git:[11,55,58,80,81,82,112,127,128,129,141],github:[1,7,10,11,33,55,57,58,59,63,80,81,82,97,100,112,127,128,129,141],githublogin:129,githubpassword:129,githubusercont:[11,57,58,59,80,81,82],give:[55,97,102,110,111,123,124,127,128,137],given:[12,20,42,84,91,92,128,137],glanc:105,glibc:57,global:[1,29,62,100,107],gnd:[8,123,124,136],gnu:[3,4,12,38,47,112,116,118,119,131,132],goal:[55,135],gobjcopi:6,gobjdump:6,gobl:81,goe:[61,100,140],going:[91,100,110,114,124],golang:[11,59,82],gone:106,good:[7,9,22,55,88,100,102,105,111,123],googl:110,gopath:[11,57,58,59,60,80,81,82,83],got:[99,100,124],govern:[100,124],gpg:[57,80],gpio:[8,91,122],gpio_ev:122,gpio_l:122,gpl:[4,112,116,118,119,131,132],gplv3:[112,118,131,132],graduat:124,grain:9,graph:[1,50,62,124],great:[8,21,94,100,124,126],greater:[21,29,94],green:[2,10,12,112,116,117,133,141],grid:55,ground:124,group:[2,10,20,76,95,98,123],grow:[53,137],guard:87,guid:[7,11,12,18,59,62,64,82,95,98,104,109,111,120,122,127,133,136,137,140],gui
 nea:138,h_mynewt_syscfg_:95,hack:[7,9,12,97,124,126],had:87,hal:[1,7,9,48,55,61,86,90,102,112,116,118,122,124,139],hal_bsp:[7,88,100,112,115,116,118],hal_bsp_flash_dev:88,hal_common:[7,102,116,118],hal_flash:[7,88,112,116,118],hal_gpio:[7,122],hal_gpio_init_out:[114,122,126,137],hal_gpio_irq_en:122,hal_gpio_irq_init:122,hal_gpio_pull_up:122,hal_gpio_toggl:[114,122,126],hal_gpio_trig_ris:122,hal_gpio_writ:137,hal_os_tick:115,hal_tim:[84,86],hal_timer_cb:84,hal_uart:100,hal_uart_config:100,hal_uart_flow_ctl_non:100,hal_uart_init_cb:100,hal_uart_parity_non:100,hal_uart_start_tx:100,half:[16,17,88,92],halt:[87,112,116,118],hand:[97,137,140],handbook:[115,119],handi:[88,124],handl:[17,20,27,28,30,61,98,99,100,106,107,108,122,124],handler:[87,88,99,100,122,124,137],happen:[9,20,26,106,109,110,111,112,128,141],happi:[7,9],har:136,hard:93,hardcod:[25,27],hardwar:[2,3,5,6,7,9,20,21,24,25,31,34,84,86,88,90,91,95,100,102,103,110,111,112,114,115,116,117,120,122,127,137,139,141],has:[2,3,4,7,10,
 11,12,20,22,24,26,30,34,36,43,50,55,57,58,59,61,62,77,80,81,82,84,85,87,88,91,93,95,98,99,100,107,108,109,112,114,115,116,123,125,127,128,131,132,137,138,139,140,141],hash:[34,37,43,46,71,125,133,136],have:[1,2,3,6,7,8,9,10,11,12,19,20,22,24,30,32,43,50,52,54,55,57,58,59,60,61,62,64,80,81,82,83,87,88,90,91,93,94,95,96,97,98,99,100,101,102,103,106,107,109,110,111,112,113,114,115,116,117,118,119,122,123,124,125,126,127,128,130,131,132,133,134,135,136,138,139,140,141],haven:[3,96,100,124,128,139],hci1:103,hci:[21,101],hci_adv_param:105,hci_common:98,head:[11,58,80,81,82,138],header:[1,37,39,46,55,57,58,59,61,88,95,98,100,114,124],heading1:138,heading2:138,heading5:138,headless:2,health:110,heap:[87,88],heart:137,held:127,hello:[12,69,98,113,133,134,136,139,141],help:[1,8,12,31,34,35,37,38,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,64,65,67,68,69,70,71,72,73,74,75,76,77,80,81,82,87,89,90,92,94,100,101,102,105,112,114,115,117,120,123,124,129,131,132,137,138,140],helper:[1,6
 1,89,110,111],henc:96,her:87,here:[1,3,8,10,11,29,32,55,73,76,77,88,89,93,94,95,96,97,100,103,107,109,110,111,112,114,115,116,119,122,123,124,127,128,134,138,139,140,141],hertz:84,hex:[7,37,43,48,71,99,118,123],hexidecim:66,hfxo:24,hidapi:4,hidraw:4,hierarchi:95,high:[9,18,21,64,86,122,131,137],high_duti:27,higher:[11,14,20,21,55,58,59,72,80,81,82,87,94,95,96,103,128,137,140],highest:[84,85,87,94,95,137],highli:96,highlight:[2,6,30,97,112,115,117,119,124,141],hint:55,his:87,histori:94,hit:[36,114],hl_line:[124,141],hog:137,hold:[33,43,63,97,123,124,127,137],hole:124,home:[7,11,59,88,100,102,114,129,140],homebrew:[4,6,7,11,36,56,60,79,83],homepag:[1,43,61,93,100,124],hook:[100,118,136],hop:21,host:[7,9,21,22,23,26,29,30,66,70,71,100,102,103,107,108,109,112,124,131,132,138,140,141],hotkei:131,hour:92,how:[2,3,4,5,6,7,8,11,12,20,21,23,30,55,57,58,59,60,66,80,81,82,83,88,91,92,93,96,97,98,99,100,101,102,103,106,107,108,110,111,112,113,114,115,116,117,118,119,123,124,125,126,133,134,135,
 136,137,138,139,140,141],how_to_edit_doc:138,howev:[3,57,80,91,93,115,125,127],htm:103,html:[4,33,63,112,116,118,131,132,140],http:[1,4,10,11,12,33,39,55,57,58,59,61,63,80,81,82,93,97,100,103,110,112,115,116,118,119,124,127,129,131,132,136],httperror404:[57,80],hub:141,human:[103,127],hw_bsp_nativ:61,hw_hal:55,hypothet:20,i2c:8,i2s:112,i2s_callback:112,i386:[4,6],iOS:[99,106,124],ibeacon:[23,102,113,139],icon:[10,12],id16:109,id3:[33,63],id_init:95,idcod:112,idea:[61,105],ideal:21,ident:[18,20,22,23,27,30,66],identifi:[1,8,19,20,27,29,34,71,88,110,111,115,117,123,124,133,136,141],idl:[27,77,100,102,133,136,137],idx:27,ifdef:[95,114],ifndef:[95,100,124],ignor:[6,27,82,95,131],illustr:[12,87,124,137],imag:[2,6,7,10,12,31,34,38,39,42,43,47,55,57,58,59,61,64,78,80,81,82,88,89,91,93,94,96,99,100,102,106,112,113,114,120,124,131,132,134,135,139],image_ec256:[112,115,116,117,118,119,123,133,134,136,141],image_ec:[7,112,115,116,117,118,119,123,133,134,136,141],image_rsa:[7,112,115,116,117,11
 8,119,123,133,134,136,141],image_valid:[7,112,116,117,119,133,134,136,141],img:[37,46,71,97,98,100,102,103,106,112,115,116,117,118,119,123,124,125,126,131,132,133,136,141],imgmgr:[7,93,95,98,124],imgmgr_module_init:95,immedi:[26,88,105,110,111,138],impact:24,impl:61,implemen:66,implement:[9,10,21,32,61,66,88,90,91,93,95,104,107,109,110,122,123,124,140],impli:[100,110,111,124,128,140],implicit:140,imposs:19,impract:109,impress:124,improv:114,inc:[4,112,118,131,132],includ:[1,4,7,9,10,14,15,16,17,19,20,21,22,26,27,28,31,43,50,59,61,84,88,90,91,93,94,95,97,98,100,103,104,105,107,110,111,115,122,124,125,127,128,131,135,137,140],include_tx_pow:27,incom:[20,122],incompat:[57,80,127],incomplet:[29,88],incomplete_block_test:140,incorrect:[42,92],increas:[21,22,95,131,137],increment:92,incub:[7,55,95,97,124],inde:[87,118],indefini:[110,111],indent:6,independ:[22,91,95,100],indetermin:140,index:[31,72,103],indian:92,indic:[7,19,20,26,28,29,30,88,93,94,95,107,109,112,115,116,119,125,140,141],i
 ndirect:124,individu:[11,95,98,127],industri:21,infinit:[87,95,114,137],info:[39,57,58,59,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,99,108,112,116,118,119,124,125],inform:[1,6,7,12,20,22,23,27,29,34,37,39,40,57,58,59,61,62,64,66,71,80,81,82,88,90,91,95,96,97,100,102,105,108,109,110,111,112,114,122,123,124,125,127,128,129,132,133,136,137],infrastructur:102,ing:[110,111],inher:[1,23,107],inherit:[1,4,59],init:[50,55,84,95,100,124],init_app_task:87,init_func_nam:95,init_funct:95,init_stag:95,init_task:[122,137],init_tim:114,initi:[16,19,21,23,25,26,27,28,61,84,86,87,88,93,98,99,100,103,104,108,110,111,114,122,124,126,140],initialis:112,inoper:[26,110,111],input:[20,22,27,118,122,131,140],inquiri:[20,29],insid:[24,87,114,118,140],insight:137,inspect:[48,108],instal:[3,7,9,33,39,54,55,63,78,87,88,89,98,100,101,102,103,112,113,115,116,117,118,119,122,124,125,126,128,130,131,133,134,135,136,137,139,140,141],instanc:[2,3,9,27,62,105,110,111,112],instant:20,instantan:137,instanti
 :87,instead:[7,11,12,24,93,95,98,99,100,106,112,114,115,116,117,118,119,122,124,129,140],instruct:[3,4,7,11,55,57,62,80,85,91,98,112,115,119,122,131,132,134],insuffici:20,int16_t:[84,92],int32_max:27,int32_t:[84,92,110,111],int64_t:[84,92],integ:95,integr:[12,22],intend:[24,29,36,96],inter:122,interact:[2,8,93,106,114,120,131],interconnect:9,interdepend:95,interest:[7,14,18,88,102,105,110,126,139],interfac:[4,18,21,30,31,97,100,101,103,104,112,116,118,136],intern:[7,20,87,88,112,124],internet:[7,12,21,98,103,113,122,125,135,141],interrog:124,interrupt:[84,88,124],interrupt_prior:124,interv:[20,27,29,122],interval_max:27,interval_min:27,intervent:91,intiat:88,introduc:[1,30,94,95],introduct:[137,139],invalid:[20,84,107,140],invoc:[6,109],invok:[2,129,140],involv:[16,17,19,22,88,91,140],io_cap:27,iot:21,ipsp:21,ipv6:21,irk:[19,27],isbuildcommand:12,ism:21,ismylaptop:[100,124],isn:[88,102],isol:88,isshellcommand:12,issu:[1,6,10,30,55,66,87,98,100,115,116,117,119,123,124,130],ist:92,ita
 l:138,ite_chr:107,item:[1,88,111],its:[7,10,11,18,19,20,55,61,85,87,88,91,93,94,95,97,100,101,102,105,107,108,109,110,111,123,125,126,127,134,137,138,139],itself:[26,61,95,97,100,115,124,140],jan:92,javascript:55,jira:10,jlink:[61,88,115,117,125,133,141],jlink_debug:61,jlink_dev:61,jlinkex:[115,117,123,124],jlinkgdbserv:131,job:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,85,87,88,107],join:[3,96,139,141],json:[7,12,34,37,51,55,61,97,98,100,124,126,140],json_decod:140,json_encod:140,json_simple_decod:140,json_simple_encod:140,jtag:[4,38,42,47,112,115,116,118,136,141],jul:80,jump0:67,jumper:[8,97,100,118,124,136],just:[1,7,8,20,22,23,62,88,89,97,100,106,107,110,111,112,114,123,124,129,130],k30:[99,100],k64f:53,keep:[9,22,24,87,93,97,124,126,137,140],keg:[60,83],kei:[8,19,20,21,31,37,46,57,80,88,95,100,107,123],kept:85,kernel:[1,7,9,51,55,61,88,93,95,100,102,103,122,124],keyboard:[12,22,93],keyboarddisplai:27,keyboardonli:27,keychain:[57,80],keystor:27,ke
 yword:[1,61,89,93,100,124,127],khz:[112,116],kick:[110,111],kilobyt:91,kind:[31,100,124,131],kit:[8,47,61,97,113,115,124,125,126,131,132,139],know:[1,8,12,30,61,93,94,100,107,108,110,111,113,114,124,135,137,139,141],known:[21,55,92,105,137],l13:115,l2cap:21,lab:32,label:[8,88,118,124],lag:109,languag:[11,12,55,91,100,124],laptop:[3,8,97,98,100,103,122,123,124,126],larg:[20,24,31,137],large_system_test:140,large_unlink_test:140,large_write_test:140,larger:31,largest:138,las_app_port:123,las_app_tx:123,las_join:123,las_link_chk:123,las_rd_app_eui:123,las_rd_app_kei:123,las_rd_dev_eui:123,las_rd_mib:123,las_wr_app_eui:123,las_wr_app_kei:123,las_wr_dev_eui:123,las_wr_mib:123,last:[20,26,72,77,95,105,109,110,111,112,123,124,141],last_checkin:[77,133,136],latenc:27,later:[7,8,72,102,108,112,123,124,126,131,132,140],latest:[1,2,4,7,11,49,52,55,56,60,79,83,97,100,112,124,127,128,141],latter:20,launch:12,launchpad:4,law:[100,112,124,131,132],layer:[9,20,21,90,91,95,104,122,124,139],layout:[9
 1,136],lcheck:100,ld4:116,ldebug:94,ldflag:50,ldr:118,lead:[87,108,124],learn:[7,26,61,97,113,126],least:[22,98,114,123,124,139],led1:[117,122],led2:122,led3:122,led:[1,7,61,88,91,98,100,103,112,113,114,115,116,117,118,119,122,124,133,136,137,139,141],led_blink_pin:[88,114,126,137],led_blink_pin_1:126,led_blink_pin_2:126,led_blink_pin_3:126,led_blink_pin_4:126,led_blink_pin_5:126,led_blink_pin_6:126,led_blink_pin_7:126,led_blink_pin_8:126,led_pin:126,left:[84,99,118,139],legaci:[30,95,137],len:[100,107,123],length:[20,21,27,88,93,107,123],less:[87,109,110,111],lesson:[137,139],let:[4,8,55,88,97,99,100,102,104,105,106,107,108,109,110,111,114,118,124,127,128,137,140],level:[1,2,9,14,18,20,23,27,29,30,31,32,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,61,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,88,94,95,96,99,100,106,107,110,111,112,116,123,124,128,140,141],level_list:72,leverag:[101,124],lflag:[1,50,61],lib:[1,4,45,53,55,82,93,94,95,100,124],lib
 c6:6,libc:[7,88],libc_baselibc:118,libftdi1:4,libftdi:4,libg:48,libgcc:48,libhidapi:4,librari:[1,4,48,50,55,58,81,88,89,91,93,100,102,127,128,140],libusb:4,libusb_error_access:116,libusb_open:116,licens:[4,7,11,55,61,100,102,112,116,118,119,124,127,131,132,141],lieu:66,life:[24,110],light:[9,31,97,113,116,117,118,119,122,126,133,136],lightblu:[99,106,124],like:[2,3,5,8,12,31,55,58,59,62,81,82,87,88,91,93,97,100,102,112,116,118,124,126,127,131,132,136,140],likewis:62,limit:[3,20,27,29,98,100,105,110,124,131],line:[2,6,7,12,36,38,39,47,62,88,93,97,100,103,109,114,116,117,124,126,127,129,131],lines_queu:93,link:[2,3,7,20,21,22,27,34,38,42,60,61,81,83,85,95,96,97,100,102,103,106,111,112,114,115,116,117,118,119,123,124,131,132,133,134,136,139,141],linker:[1,61,89,102,118],linkerscript:[61,88],linux:[5,7,9,12,56,66,78,79,103,112,114,115,116,118,119,125,133,134,135,136,141],liquid:124,list:[3,6,7,8,12,22,27,29,34,35,48,50,51,53,57,59,61,66,71,72,73,75,76,77,78,80,85,88,89,90,93,95,96,97,10
 0,102,105,108,109,112,113,114,115,116,117,118,119,123,124,125,126,127,128,133,134,136,139],listen:[2,14,30,31,66,105],lit:[98,103,126,137],littl:[6,20,23,97,100,102,109,123,126,128],live:[97,108,109,112,127,128,141],lma:118,lmp:20,load:[2,4,5,7,12,34,39,43,47,55,57,58,59,61,88,97,99,100,106,113,114,122,123,124,125,126,128,131,132,137],load_arduino_blinki:12,load_arduino_boot:12,loader:[43,50,88,93,112,115,116,117,119,133,134,136,141],local:[1,4,6,7,10,11,20,27,28,36,40,49,55,58,60,71,81,83,89,92,105,112,138,141],localhost:[66,131],locat:[1,8,11,19,31,61,88,100,109,114,118,127,133,134,136,137,141],lock:[9,87,122],log:[1,7,10,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,64,65,66,67,68,69,70,71,73,74,75,76,77,78,80,81,82,94,95,97,98,100,102,112,115,116,118,119,120,124,131,134],log_cli:120,log_fcb:95,log_init:95,log_level:[50,95,120,125],log_nam:72,log_newmgr:94,log_newtmgr:[50,94,95,98],log_nmgr_register_group:95,log_shel:97,logic:[1,21,23,29,100,123],login:1
 29,loglevel:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,100],logxi:81,long_filename_test:140,longer:[3,8,11,21,24,94,100,103],longrange_interv:27,longrange_pass:27,longrange_window:27,look:[8,24,55,61,88,90,93,97,99,100,105,107,108,109,124,126,128,130,137,138,139,140],lookup:107,loop:[87,95,98,99,100,102,114,124,137],lora:123,lora_app_shel:123,lora_app_shell_telee02:123,lora_app_shell_telee0:123,lora_mac_timer_num:123,lose:26,loss:[26,29],lost_found_test:140,lot:[7,94,105,124,140],low:[9,20,21,22,31,84,88,107,110,111,112,113,116,137,139,141],lower:[20,84,86,87,94,95,104,114,118,125,137],lowest:[73,85,95,137],lrwxr:[4,81],lst:[34,55,61],ltbase:95,ltd:27,ltk:27,ltk_sc:27,ltrequir:95,luckili:100,m32:6,mac:[3,5,7,9,12,20,55,56,78,79,97,99,103,106,112,114,115,116,118,119,123,124,125,126,133,134,135,136,141],machin:[2,3,7,8,89,103,139],maco:[4,66],macro:[20,88,95,109,124,137,140],made:[2,10,11,20,55,71,84,12
 3,124,137,138],magic:61,mai:[2,4,6,7,8,12,22,27,29,30,31,51,53,57,58,62,80,81,82,87,88,91,93,94,95,98,100,102,103,112,114,115,116,117,118,119,123,124,127,131,133,136,137,141],mail:[3,10,96,97,102,113,124,126,139],main:[7,12,26,31,57,61,77,80,87,90,93,95,98,99,100,102,105,110,111,112,115,116,117,118,119,122,124,126,133,134,136,140],maintain:[4,49,85,95,127,128,140],major:[55,61,91,111,127,128,137],major_num:[127,128],make:[1,2,3,7,8,9,19,20,21,24,30,31,33,55,57,63,71,85,88,97,99,100,101,102,103,105,107,108,110,111,112,114,118,123,124,125,126,127,137,139,140],makerbeacon:98,malloc:[88,124,137],man:[6,27],manag:[6,8,16,17,21,27,31,39,45,57,58,59,61,64,66,68,71,72,73,76,77,80,81,82,87,88,89,91,93,95,114,115,120,125,128,133,135,136,139,141],mandatori:[20,88,109,110,111],mani:[20,31,55,61,88,90,107,112,127],manifest:[34,37,43,55,61,97,98,100,124,126],manipul:[1,39,45],manner:[27,29,87],manual:[21,25,60,83,87,97,112,118,131,132,136],manufactur:[19,27,29,39,43,57,58,59,66,105,112,141],many_
 children_test:140,map:[2,3,8,20,27,28,61,91,94,95,107,114,127,128,131,133,136,141],mar:[92,115,117,123,124],march:68,mark:[27,28,71,88,118],marker:88,market:[31,117],mask:27,mass:[103,116],mass_eras:[115,116],master:[1,7,11,27,56,57,59,60,79,80,82,83,112,127,128,138,141],match:[2,7,20,88,89,91,112,116,127,128,141],matter:10,max_conn_event_len:27,max_ev:27,maxim:9,maximum:[21,27,29,93,131,140],mayb:[131,132],mb_crc:100,mb_crc_check:100,mb_crc_tbl:100,mbed:[115,119],mbedtl:[7,112,115,117,119,133,134,136,141],mblehciproj:103,mbuf:87,mcu:[7,9,53,89,97,112,115,126,137,141],mcu_sim_parse_arg:114,mdw:118,mean:[2,12,20,92,95,100,109,116,124,128],meant:1,measur:[9,123,137],mechan:[1,22,87,95,100,122,127,129],medic:[21,55],meet:[103,112,113,115,116,117,118,119,125,133,134,135,136],mem:[7,95],member:[84,93,105,107],memcpi:107,memori:[9,20,48,73,87,88,91,94,98,107,118,120,122,123,131,134,137],mempool:[64,80,81,82,100],memset:[105,108,111,124],mention:[12,124],menu:[12,59,116,118,136],merchant:4
 ,merg:138,mesh:32,messag:[2,4,22,31,42,57,58,59,75,93,100,112,116,122,123,141],messi:124,messsag:62,met:[20,98,122,141],meta:8,metadata:43,meter:21,method:[25,107,127],mfg:[7,39,57,58,59,70,95],mfg_data:29,mfg_init:95,mgmt:[7,93,94,95,98,100,124],mgmt_evq_set:98,mgutz:81,mhz:[21,24],mib:[55,81,123],mic:20,micro:[55,112,113,115,117,118,123,124,125,131,132,133,135,136,137,141],microcontrol:[9,118,136],microsecond:[24,84],microsoft:12,mid:[14,116],middl:[27,124],might:[1,2,18,20,61,88,91,93,94,102,104,105,110,111,112,116,127,128,130,131,132],migrat:95,milisecond:27,millisecond:[27,92,123],millivolt:124,min:[72,73,134],min_conn_event_len:27,mind:102,mingw32:59,mingw64:59,mingw:[4,7,8,12,56,82,114,133,136,141],mini:116,minicom:[8,100,114,141],minim:[88,102],minimum:[27,29,72,102],minor:[111,127,128],minor_num:[127,128],minut:[81,110,140],mip:[7,61],mirror:[1,10,11,100,127],mislead:6,mismatch:20,miss:[20,57,88,94,97,102,113,124,126],misspel:94,mitm:27,mkdir:[11,43,80,82,88,97,100,112,115,
 116,117,118,119,123,124,127,141],mkdir_test:140,mkdoc:138,mkr1000_boot:141,mkr1000_wifi:141,mlme:123,mman:57,mn_socket:7,mobil:31,mod:[30,106],modbu:100,mode:[9,20,22,27,29,105,112,116,118,140],model:[21,22,32,115],modern:8,modif:[11,97,140],modifi:[6,62,88,100,124,126,137],modul:[72,84,86,87,114,123,136,140],module_list:72,modulo:92,moment:[107,128],mon:[112,115,116],monitor:[93,118,139],monolith:109,month:140,more:[1,4,7,9,10,12,20,21,22,29,30,34,35,39,43,51,53,57,58,59,61,62,64,80,81,82,85,87,88,92,95,99,100,102,105,109,110,111,112,114,115,123,124,125,126,128,131,133,136,137,139,140,141],most:[1,8,14,19,21,23,24,25,61,88,89,94,99,100,105,124,137,140],mostli:[6,9,110,111],motor:9,mou:138,mount:124,move:[8,45,57,58,59,81,84,87,114,118,124],mpool:123,mpstat:[64,78,80,81,82,98,134],msdo:88,msec:27,msg_data:27,msp:[112,118],msy:59,msys2:56,msys2_path_typ:59,msys64:59,msys_1:[73,134],mtu:[20,27,28,106],much:[88,100],multi:[1,9,50,62,91],multilib:[6,7,57],multipl:[4,23,27,29,34,35,50,51
 ,55,87,95,105,109,110,127],multiplex:21,multiplexor:91,multipli:137,multitask:[87,137],must:[1,2,4,5,7,8,9,11,12,14,22,24,25,33,37,41,46,53,55,57,59,61,63,66,68,71,80,84,86,87,88,91,93,94,95,97,98,100,102,105,107,114,117,118,123,124,125,127,128,131,133,136,137,141],mutex:87,my_blinki:50,my_blinky_sim:[7,34,35,43,55,61,100,102,103,115,116],my_blocking_enc_proc:20,my_callout:122,my_config_nam:95,my_driv:[100,124],my_ev_cb:122,my_eventq:98,my_gpio_irq:122,my_interrupt_ev_cb:122,my_new_target:50,my_newt_target:50,my_proj1:102,my_proj:102,my_project:[1,112,124,127,141],my_result_mv:124,my_target1:62,my_timer_ev_cb:122,my_timer_interrupt_eventq:122,my_timer_interrupt_task:122,my_timer_interrupt_task_prio:122,my_timer_interrupt_task_stack:122,my_timer_interrupt_task_stack_sz:122,my_timer_interrupt_task_str:122,myadc:124,myapp1:131,myapp_console_buf:93,myapp_console_ev:93,myapp_init:93,myapp_process_input:93,mybl:[34,35,46,50,66,73,76,77,98],myble2:[37,38,103],myblehostd:66,mybleprph:[66,12
 5],mybletyp:66,myboard:[45,88],myboard_debug:88,myboard_download:88,myconn:98,mycor:71,mylora:123,mymcu:90,mymfg:70,mynewt:[1,3,4,5,6,11,13,20,21,25,30,32,37,38,39,43,44,50,51,53,55,56,57,59,60,61,62,71,78,79,80,82,83,86,92,94,95,96,97,98,99,100,101,103,104,106,110,111,112,113,114,115,116,117,118,119,120,122,123,124,125,128,131,132,133,134,135,136,137,139,140,141],mynewt_0_8_0_b2_tag:[127,128],mynewt_0_8_0_tag:127,mynewt_0_9_0_tag:127,mynewt_1_0_0_b1_tag:127,mynewt_1_0_0_b2_tag:127,mynewt_1_0_0_rc1_tag:127,mynewt_1_0_0_tag:127,mynewt_1_3_0_tag:[57,59,80,82],mynewt_arduino_zero:[112,127,141],mynewt_nord:124,mynewt_stm32f3:97,mynewt_v:[93,95,124,140],mynewt_val_:95,mynewt_val_log_level:95,mynewt_val_log_newtmgr:95,mynewt_val_msys_1_block_count:95,mynewt_val_msys_1_block_s:95,mynewt_val_my_config_nam:95,mynewtsan:75,myperiph:[106,125],myproj:[2,7,12,88,97,100,112,114,115,116,117,118,119,125,126,127,132],myriad:9,myseri:[73,76,77],myserial01:66,myserial02:66,myserial03:66,mytask:137,myt
 ask_handl:137,mytask_prio:137,mytask_stack:137,mytask_stack_s:137,myudp5683:66,myvar:65,name1:50,name2:50,name:[1,2,4,7,8,10,11,12,20,21,27,29,34,35,37,38,42,43,44,45,47,48,50,51,53,55,57,58,59,61,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,88,89,90,92,93,94,97,98,100,102,105,107,109,110,111,112,114,115,116,117,118,119,122,124,127,128,129,131,133,134,136,137,140,141],name_is_complet:105,name_len:105,namespac:110,nano2:[43,53,88,119],nano2_debug:[88,119],nano:[113,139],nanosecond:84,nativ:[2,3,7,12,43,50,53,55,59,61,66,94,95,97,100,103,115,116,122,124,134,139],natur:88,navig:[10,139],ncheck:100,nding:109,nearest:115,neatli:105,necessari:[6,24,39,47,57,58,59,97,102,107,112,123,124,140],need:[4,5,6,7,8,9,10,11,12,14,23,24,32,43,50,52,55,57,58,59,60,61,64,66,80,81,83,84,87,88,90,91,93,94,95,98,99,102,103,105,107,108,109,110,111,112,114,115,116,117,118,119,122,125,128,129,133,134,136,137,140,141],neg:[92,109],net:[4,7,24,51,95,100,102,103,107,109,124,141],network:[1,9,23,27,31,
 32,55,87,123,137,141],never:[19,87,95,102,107,137],new_bletini:45,new_slinki:45,newer:6,newest:[94,137],newli:[1,10,19,43,103,110,111,127],newlin:93,newt:[1,3,5,6,7,13,32,56,61,62,73,76,77,80,81,82,83,87,88,89,91,94,95,97,100,101,102,103,106,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,139,140,141],newt_1:[57,60],newt_1_1_0_windows_amd64:60,newt_1_3_0_windows_amd64:59,newt_group:2,newt_host:2,newt_us:2,newtgmr:[81,82,83],newtmgr:[1,7,9,13,57,58,59,63,64,78,79,93,94,95,100,122,124,135,139],newtmgr_1:[80,83],newtmgr_1_1_0_windows_amd64:83,newtmgr_1_3_0_windows_amd64:82,newtron:[94,95],newtvm:11,next:[7,8,24,30,71,77,82,84,85,93,95,99,100,102,105,109,110,111,112,115,118,124,125,126,128,137,138],next_checkin:[77,133,136],next_t:84,nff:[7,94,95,140],nffs_flash_area:[94,95],nffs_test:140,nffs_test_debug:140,nffs_test_priv:140,nffs_test_system_01:140,nffs_test_util:140,nice:99,nil:67,nim:109,nimbl:[7,23,24,26,29,66,95,98,10
 0,101,104,105,106,107,108,109,124,125],nmgr_shell:[93,95,98],nmgr_shell_pkg_init:95,nmgr_uart:98,nmgr_urart_spe:98,nmxact:11,no_rsp:28,no_wl:[27,30],no_wl_inita:27,node:[21,32,55],nodup:27,nogdb:[38,47],noinputnooutput:27,non:[7,18,19,21,24,27,31,32,95,110,111,123,127],none:[4,7,8,12,20,27,30,82,88,97,112,116,123,124,131,132],nonsens:140,nonzero:[108,140],nor:22,nordic:[23,88,100,115,117,122,124,125,135,139],nordicsemi:[115,117,123,124],normal:[2,99],notat:[55,118],note:[1,2,4,6,7,10,11,12,21,22,23,24,29,32,43,47,50,57,58,59,60,61,66,68,71,80,81,82,83,84,87,88,89,93,94,95,97,98,100,102,103,105,107,109,110,111,112,114,115,116,117,118,119,120,123,125,127,128,129,131,133,134,136,137,138,139,141],noth:[11,100,110,111,124],notic:[7,11,55,61,87,88,99,100,102,124,128,137],notif:[10,27,28,93,99,104,124],notifi:[10,28,108,109],notnul:95,nov:8,now:[2,8,9,59,84,88,97,98,99,100,102,104,105,106,108,109,110,111,112,115,123,124,125,126,127,131,132,134,137,140],nreset:112,nrf51:[24,53,88,120],nrf51
 dk:53,nrf52840pdk:32,nrf52:[4,24,61,88,100,103,113,114,115,122,123,125,131,132,135,139],nrf52_adc:124,nrf52_adc_dev_init:124,nrf52_blinki:[114,117,119,131],nrf52_boot:[98,103,117,124,133],nrf52_hal:88,nrf52_slinki:133,nrf52dk:[37,38,53,61,62,88,95,102,103,106,114,117,122,124,133],nrf52dk_debug:[61,88,114],nrf52dk_download:88,nrf52k_flash_dev:88,nrf52pdk:[103,117],nrf52serial:133,nrf52xxx:[48,88,115],nrf5x:24,nrf:[25,124],nrf_drv_saadc:124,nrf_drv_saadc_config_t:124,nrf_drv_saadc_default_channel_config_s:124,nrf_drv_saadc_default_config:124,nrf_saadc_channel_config_t:124,nrf_saadc_gain1_6:124,nrf_saadc_input_ain1:124,nrf_saadc_reference_intern:124,nrf_saadc_typ:124,nrpa:[19,110,111],nsec:84,ntick:84,ntrst:112,nucleo:53,number:[1,8,9,10,22,27,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,60,61,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,83,84,86,87,88,92,94,95,98,99,100,103,109,110,111,112,114,118,122,123,124,125,127,128,131,133,136,137,141],numer:[20,
 22,85,88],nvm:112,objcopi:6,objdump:6,object:[4,11,48,55,61,81,84,87,88,91,108,140],objsiz:[6,48],observ:[14,27,103],obtain:[27,100,124,127],obvious:53,oc_serv:98,oc_transport_gatt:98,oc_transport_ip:98,oc_transport_seri:98,occur:[26,27,92,94,107,108,110,111],occurr:95,ocf_sampl:[7,61],oct:100,octet:[27,29,31],off:[2,20,21,31,32,91,93,98,102,103,110,111,114,118,122,125,126,139],offer:[1,21,124],offset:[20,28,71,88,92,94,95],often:[9,55,88],ohm:124,oic:[7,51,66,139],oic_bhd:66,oic_bl:66,oic_seri:66,oic_udp:66,oic_udpconnstr:66,oicmgr:[7,66],old:45,older:[59,82,116],oldest:94,olimex:[100,113,135,139],olimex_blinki:118,olimex_stm32:[53,118,136],omit:[47,94],on_reset:26,on_sync:26,onboard:[131,132,139],onc:[19,29,55,57,61,80,84,87,97,98,100,105,110,113,114,123,124,125,126,127],one:[1,4,7,8,10,11,12,19,20,21,22,23,27,29,30,31,34,35,39,43,45,50,51,53,57,58,59,61,67,85,87,88,91,93,94,95,99,100,102,103,109,110,111,112,113,114,115,116,117,118,119,123,124,126,127,128,129,133,136,137,138,139,1
 40,141],ones:[14,103,139],ongo:27,onli:[1,2,7,8,10,11,12,14,19,20,24,27,29,31,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,60,61,62,66,72,80,83,84,86,87,88,91,93,94,95,96,98,100,105,107,110,112,114,120,123,124,125,126,127,128,129,134,137,138,140,141],onlin:[112,131,132],onto:[1,20,42,43,47,88,99,100,113,115,116,117,118,119,133,136],oob:[20,27,29],open:[4,8,9,10,12,20,21,38,39,47,55,57,58,59,61,91,100,110,112,115,116,118,119,134,140],open_test:140,openocd:[12,88,112,115,116,118,119,136],openocd_debug:[100,115],oper:[1,9,12,15,18,20,21,26,31,39,57,58,59,84,87,91,92,93,95,96,99,100,102,103,107,108,109,110,111,112,123,124,128,129,140,141],oppos:[31,129],opt:4,optim:[1,24,32,37,38,43,50,61,88,89,97,100,102,103,106,112,115,116,117,118,119,123,124,133,136,137,141],optimis:31,option:[2,3,4,6,7,8,12,22,23,27,36,37,46,51,55,62,66,72,84,88,94,95,100,102,103,109,112,116,118,123,124,127,128,136,138],orang:[115,119],order:[1,8,9,22,33,55,61,63,85,94,95,98,100,123,124,12
 6,128,130,131,132,137,140],org:[1,4,10,11,39,57,58,59,61,80,82,93,100,110,112,115,116,118,119,124,131,132],organ:[11,127,140],origin:[11,46,88,100,118],os_align:84,os_arch:[61,92],os_arch_ctx_sw:85,os_bsp_adc0:124,os_bsp_adc0_config:124,os_callout:[61,114,122],os_callout_init:[114,122],os_callout_reset:[114,122],os_cfg:61,os_cli:95,os_cputim:61,os_cputime_delay_nsec:[84,86],os_cputime_delay_tick:[84,86],os_cputime_delay_usec:[84,86],os_cputime_freq:24,os_cputime_get32:[84,86],os_cputime_init:[84,86],os_cputime_nsecs_to_tick:[84,86],os_cputime_ticks_to_nsec:[84,86],os_cputime_ticks_to_usec:[84,86],os_cputime_timer_init:[84,86],os_cputime_timer_num:[24,86],os_cputime_timer_rel:[84,86],os_cputime_timer_start:[84,86],os_cputime_timer_stop:[84,86],os_cputime_usecs_to_tick:[84,86],os_dev:[61,124],os_dev_cr:124,os_dev_init_kernel:124,os_dev_init_prio_default:124,os_dev_open:124,os_error_t:84,os_ev:[93,114,122],os_eventq:[61,93,99,100,122,124],os_eventq_dflt_get:[26,87,93,95,110,111,114,122
 ],os_eventq_dflt_set:100,os_eventq_init:[93,99,100,122,124],os_eventq_put:[93,122],os_eventq_run:[26,87,95,100,110,111,114,122],os_exit_crit:84,os_fault:61,os_get_return_addr:84,os_get_uptime_usec:[84,92],os_gettimeofdai:[84,92],os_heap:61,os_idle_prio:84,os_info_init:84,os_init:84,os_init_idle_task:84,os_main_stack_s:84,os_main_task_prio:[84,95,137],os_main_task_stack_s:95,os_malloc:61,os_mbuf:61,os_mbuf_append:[99,124],os_mempool:61,os_mutex:[61,84],os_mutex_releas:84,os_ok:84,os_pkg_init:95,os_san:61,os_sch:[61,84,85],os_sched_ctx_sw_hook:[84,85],os_sched_get_current_t:137,os_sched_get_current_task:[84,85,137],os_sched_insert:[84,85],os_sched_next_task:[84,85],os_sched_os_timer_exp:[84,85],os_sched_remov:[84,85],os_sched_resort:[84,85],os_sched_set_current_task:[84,85],os_sched_sleep:[84,85],os_sched_wakeup:[84,85],os_sched_wakeup_tick:84,os_sem:[61,87,100],os_sem_init:[87,100],os_sem_pend:[87,100],os_sem_releas:[87,100],os_settimeofdai:[84,92],os_stack_align:[99,100,124,137],os_
 stack_t:[99,100,122,124,137],os_start:84,os_stime_t:84,os_sysview:132,os_task:[61,84,87,99,100,122,124,137],os_task_init:[87,99,100,122,124,137],os_task_list:84,os_test:61,os_tick_idl:[112,115],os_ticks_per_sec:[92,99,100,114,122,124,137],os_tim:[61,84,140],os_time_adv:[84,92],os_time_delai:[84,92,99,122,124,126,137],os_time_get:[84,92],os_time_max:84,os_time_ms_to_tick:[84,92],os_time_t:[84,92],os_time_tick_geq:[84,92],os_time_tick_gt:[84,92],os_time_tick_lt:[84,92],os_timeout:100,os_timeout_nev:[84,87],os_timeradd:[84,92],os_timersub:[84,92],os_timev:[84,92,140],os_timezon:[84,92,140],os_wait_forev:[84,87,99,100,122,124,137],ostick:84,osx:[97,126],ota:98,otg1:118,otg2:[118,136],other:[1,6,10,11,20,22,24,29,31,50,55,61,84,87,88,89,92,93,95,97,99,102,103,104,105,107,108,112,113,114,115,120,122,124,127,131,132,137,140],otherwis:[87,127,128],oui:[19,123],our:[20,55,88,97,98,99,100,102,105,110,111,113,114,124,126,128,133,136,137,140],our_id_addr:[30,106],our_id_addr_typ:106,our_key_dis
 t:27,our_ota_addr:[30,106],our_ota_addr_typ:[30,106],out:[8,9,11,20,21,22,23,26,27,61,80,81,82,90,93,100,102,104,106,110,111,113,118,135,141],out_id_addr_typ:30,out_tick:84,outdat:58,outfil:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,100],outlin:5,output:[1,7,12,21,22,27,30,34,35,37,38,39,40,41,42,43,44,45,46,47,49,50,51,52,54,57,58,59,62,69,73,75,76,77,81,88,94,97,100,112,114,115,116,118,119,122,123,131,134,140,141],outsid:[20,21],over:[20,21,22,23,27,29,31,65,66,67,68,69,70,71,72,73,74,75,76,77,98,99,100,107,113,114,116,123,131,135,137,139,141],overal:[10,24],overlap:20,overrid:[50,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,88,98,103],overridden:[23,95,103],oversampl:124,overwrit:[6,49,50,59,60,82,83,88,93,112,120,141],overwrite_many_test:140,overwrite_one_test:140,overwrite_three_test:140,overwrite_two_test:140,own:[2,11,19,20,39,57,58,59,61,87,91,100,101,102,124,138],own_addr_t:[110,111],own_addr_typ:[27,66,110,111],owner:129,ownership:[
 100,124],pacakg:102,pacif:92,pack:[4,55,81,115,117,125,133,141],packag:[6,9,11,23,24,26,34,39,40,41,43,45,50,51,52,53,55,56,58,59,60,79,83,87,89,97,103,113,114,115,122,123,124,127,128,139],packet:[20,21,27,29,110,123],pacman:[7,59],page:[1,4,5,6,7,8,10,20,22,57,58,60,80,81,83,88,97,102,104,108,110,111,113,124,126,138],pair:[20,21,22,27,66,95,106,108],panel:12,param:[27,108],paramet:[1,20,26,27,28,30,61,66,72,84,92,95,98,105,107,108,109,110,111,140],parameter_nam:95,parameter_valu:95,parlanc:11,parmaet:27,parmet:[27,28],pars:[55,110,140],part:[22,29,90,100,105,106,109,124],parti:[110,112,141],partial:[64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82],particular:[4,20,47,61,87,88,91,93,108,110,111],particularli:120,partit:[20,88],pass:[1,7,12,20,27,61,84,93,105,109,110,111,124,140],passiv:27,passkei:[20,22,27],password:[11,58,80,103,129],past:[20,124],patch:[115,116,119],path:[2,4,6,11,12,29,50,57,58,59,60,61,66,80,81,82,83,88,89,95,100,124,127],pathloss:29,pattern:[27,88,137],pc6:1
 36,pc7:136,pca100040:103,pca:[117,124,125],pcb:100,pdf:[97,136],pdt:[92,140],pdu:[20,27],peek:137,peer:[10,22,28,66,107,109,110,111,125],peer_addr:[27,30,66,105],peer_addr_typ:[27,30,66,105],peer_id:66,peer_id_addr:106,peer_id_addr_typ:106,peer_nam:[66,125],peer_ota_addr:106,peer_ota_addr_typ:106,pem:[37,46],pencil:10,pend:[20,125],per:[11,19,100,128,137,140],perform:[3,4,5,9,11,12,20,22,25,27,36,57,58,59,64,80,81,82,84,87,88,93,95,97,99,100,107,112,114,115,123,124,125,128],perhap:127,period:[9,19,22,27,122,137],peripher:[9,20,21,24,26,29,30,88,91,99,100,101,102,105,108,109,110,124,125],perman:[71,105,108,125],permiss:[100,124],permit:[20,109,112,131,132],pertain:108,phone:[22,31],php:55,phy:[21,27],phy_opt:27,physic:[21,27,29,66,93],pick:[85,87,110,111],pictur:[97,115],pid:116,piec:[21,88,100],pig:138,pin:[7,8,20,88,91,97,100,114,115,118,122,123,124,136,141],ping:87,pinout:90,piqu:139,pkg1:94,pkg2:94,pkg:[1,7,11,39,43,50,53,55,57,58,59,61,89,90,93,94,95,98,100,102,114,122,124,140],
 pkg_init_func1_nam:95,pkg_init_func1_stag:95,pkg_init_func2_nam:95,pkg_init_func2_stag:95,pkg_init_func:95,pkg_init_funcn_nam:95,pkg_init_funcn_stag:95,pkga_syscfg_nam:95,pkga_syscfg_name1:95,pkga_syscfg_name2:95,pkgn_syscfg_name1:95,pkt:100,place:[3,55,61,95,98,100,102,103,109,110,111,118,126,128,137],plai:[12,21],plain:[116,128],plan:2,platform:[2,7,9,11,12,23,24,57,58,59,66,80,81,82,87,88,89,91,100,102,112,114,115,116,118,119,124,125,133,134,135,136,137,141],pleas:[39,57,58,59,89,90,97,112,113,124,126,127,131,132],plenti:[100,137],plist:61,plug:[8,97,100,118,119,124],plumb:99,point:[2,4,6,31,85,88,90,93,100,102,107,108,110,111,124],pointer:[67,84,85,88,92,93,107,108,137],poke:124,polici:[27,127],poll:87,pong:87,pool:[73,80,87,123,134],popul:[1,7,12,50,62,92,113,135,139,141],port:[2,12,66,87,93,98,100,103,112,114,115,116,117,118,119,133,134,135,136,139,141],portingto:89,portion:[99,124],posit:[92,118],posix:59,possibilti:[131,132],possibl:[21,22,24,27,28,30,32,36,53,92,109,127,131
 ],post:[49,102,122],potenti:[91,128],pour:[58,81],power:[2,9,20,21,22,27,29,31,55,88,91,93,98,103,112,117,118,123,125,133,136,141],ppa:4,pre:[4,9,127,128],precaut:107,preced:23,precis:[6,20],predict:137,preempt:87,preemptiv:[87,137],prefer:[3,27,29,100,107,125],preference0x01:27,prefix:[61,95,124],prepar:[20,115,117,123,124],prerequisit:12,presenc:[88,105,110,111,127],present:[1,88,93,103,118,124,140],press:[8,12,100,102,122,132,137],presum:123,pretti:124,prev_ind:108,prev_notifi:108,prevent:[87,107],previ:[106,108],preview:[103,117,138],previou:[21,56,57,58,59,78,79,80,81,82,94,95,99,102,103,114,127],previous:[6,12,57,58,59,60,80,81,82,83,98,106,124,130],prevn:[106,108],pri:[77,100,133,136],primari:[27,88,99,109,111,125],primary_phi:27,primo:[99,100,113],primo_boot:115,primo_debug:115,primoblinki:115,print:[48,57,58,59,62,93,94],prior:[22,24,49,87,123],prioriti:[77,84,85,87,95,103,122,124,139],priv:27,privaci:[19,21,27],privat:[19,22,32,37,46,57,66,80,110,111],privileg:2,pro:[112,1
 15,137],probabl:[7,88,100,104,129],probe:[115,141],problem:[7,94],proce:[3,6,11,100,112,115,116,117,118,119,133,136,140,141],procedur:[6,11,16,19,20,22,27,28,64,75,80,81,82],proceed:[7,104,110,111],process:[3,6,9,10,20,22,26,27,31,61,85,88,93,95,97,98,110,111,122,131,132,137],processor:[4,9,112,118,131,132,137],produc:116,product:[55,91,100,103,136],profil:[14,15,16,17,21,27,28,31,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,81,82,102,112,133,135,136],profile01:[65,67,68,69,70,71,72,73,74,75,76,77],profile0:77,program:[4,6,8,12,23,85,93,97,112,114,115,117,123,124,137,141],programat:93,programm:[116,131,132],progress:[7,20,101],project:[3,6,8,11,33,34,39,40,41,44,49,50,52,55,57,58,59,61,63,93,106,122,126,129,130,131,137,138,139,140],prompt:[7,8,11,12,47,58,59,88,100,102,112,114,115,116,117,118,119],prone:109,proper:124,properli:[24,61,87,99,100,103,107,124,137],properti:[12,19,31,59,88,97,104,115],propos:10,propper:100,protect:22,protocol:[14,20,21,28,61,66,135],prototyp:[91,95,11
 0,111],provid:[1,2,7,9,11,12,19,20,21,22,27,30,31,37,39,45,50,57,58,59,66,70,71,72,75,80,86,87,88,90,91,92,93,96,98,100,104,110,111,112,123,127,128,140,141],provis:[21,32],provision:31,proxi:[21,31],pseln:124,pselp:124,psm:27,psp:[112,116],pst:[68,92,140],pth:118,public_id:27,public_id_addr:30,public_target_address:29,publish:22,pull:[11,49,80,82,114,118,122],purpos:[4,22,50,55,88,107,123,124,137],push:[10,138],put:[1,2,7,43,61,80,82,88,92,105,110,111,124,137,140],putti:[8,114,141],pwd:[2,11],pwm:9,pwr:[116,118],px4:4,python:[33,63],qualifi:107,queri:[9,19,50,55,57,58,59,61,62,105,134],question:102,queu:[20,122],queue:[26,61,84,87,93,95,98,99,110,111,139],quick:[2,3],quickli:[92,124,137],quickstart:[2,137],quiet:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,100],quit:[19,88,102,105,110,111,112,115,116,118,119,131],quot:66,radio:[21,24,103],raff:81,ram:[48,88,90,100,102,112,124],ram_siz:88,rand:27,random:[19,20,25,27,30,66,99,103,109,110,111,124],random_i
 d:27,random_id_addr:30,randomli:19,rang:[9,20,21,29,123],rate:[66,93,103,123],rather:[14,20,88,124],raw:[11,57,58,59,80,81,82,93,95,124],rb_bletini:50,rb_blinki:[43,50],rb_blinky_rsa:43,rb_boot:43,rbnano2_blinki:119,rbnano2_boot:119,rdy:84,read:[4,6,7,11,12,14,18,19,20,23,27,28,55,61,64,65,68,73,76,77,80,81,82,93,95,97,98,99,100,106,108,109,110,111,112,113,116,119,122,123,124,125,127,131,132,135,137,140,141],read_chr:107,read_rsp_rx:76,read_rsp_tx:76,read_test:140,read_type_req_rx:76,read_type_req_tx:[76,98],read_type_rsp_rx:[76,98],read_type_rsp_tx:[76,98],readabl:[103,129],readdesc:7,readdir_test:140,reader:[99,124,140],readi:[10,84,85,93,100,112,131,137],readm:[7,11,55,61,88,102,140],readnow:61,real:[1,7,9,87,93,96,102,109,122,131],realist:140,realli:124,reason:[20,26,27,106,108,123,127,137,140],reassembl:21,rebas:11,reboot:[7,71,94,125],reboot_log:72,reboot_log_flash_area:[94,95],rebuild:[32,61,82],recal:[107,127],receiv:[10,14,20,27,29,31,55,81,93,98,105,108,109,116,123,133,136
 ],recent:115,recip:6,recipi:29,recogn:[55,124],recommend:[3,4,7,12,57,58,80,81,93,94,95,98,105,109,115,119,120,122,131],reconnect:107,record:132,recreat:128,recurs:[55,61],red:[27,28,97,116,118,136],redbear:[113,139],redefin:94,redistribut:[55,112,127,131,132],reduc:[9,10,22,24,31,98,122],reenter:120,ref0:67,refer:[7,8,10,18,22,23,29,55,67,88,100,105,110,111,112,114,118,124,136,138,141],referenc:1,reflect:106,refrain:26,refresh:[2,49,112,138],refus:131,regard:[100,124,140],regardless:41,region:88,regist:[23,75,85,89,95,100,107,109,124,137],registr:[17,107],regular:140,reject:[20,140],rel:[84,87],relai:[21,31],relat:[10,27,31,43,105,108,112,123,131,132],relationship:27,releas:[3,4,7,31,49,56,78,79,87,95,112,127,128,141],release_not:[7,11],relev:90,reli:[1,7,55,95],reliabl:[21,110,111,128],remain:[88,107,137],remaind:[88,105,127,140],rememb:[2,41,80,82,99,112],remind:112,remot:[1,7,9,12,20,27,28,49,55,66,78,80,81,82,97,98,100,103,112,113,114,122,124,125,134,135,139,141],remov:[2,4,6,2
 7,35,45,60,83,84,93,107,112],rename_test:140,repeat:[2,11,20,107,126],repeatedli:29,replac:[4,6,88,90,95,99,112,114,126,133,136],repli:27,repo814721459:55,repo:[1,6,7,10,11,41,55,57,61,80,88,97,100,102,112,114,115,116,117,118,119,123,124,129,131,132,133,134,136,138,140,141],repop:7,report:[1,4,6,10,20,88,100,112,116,131,132,140],reposistori:7,repositori:[1,4,11,12,40,41,44,49,51,52,57,61,80,97,100,101,102,104,112,113,123,130,135,138,139,141],repres:[1,12,61,86,92,93,109,137],reproduc:[1,61,110,111],req_api:[61,93],request:[12,20,27,66,67,74,78,88,98,99,106,107,112,116,118,123,124,127,128,133,136],requir:[1,2,4,6,9,11,20,24,30,31,53,59,61,66,80,82,87,89,90,91,93,94,95,97,98,99,100,102,105,107,112,115,119,122,123,124,127,128,137,139,140],resch:84,reserv:[20,88,91,123,137],reset:[25,64,78,80,81,82,98,102,103,106,115,116,117,119,124,131,132],reset_cb:26,reset_config:112,reset_handl:[88,118],resid:[91,100,109,126],resign:[57,58,59],resist:124,resistor:[122,124],resolut:[22,86,124],resolv
 :[1,19,20,22,27,32,55,66,81,94,97,110,111,127],resourc:[9,20,29,61,97,112,122,131,132,136],respect:92,respond:[17,25,99,100,105,107,109],respons:[15,20,28,29,69,85,87,93,100,105,107,133,134,136,137,141],rest:[1,46,61],restart:[2,112],restor:[115,117,123,124],restrict:[95,107,108],restructuredtext:10,result:[12,20,58,62,92,95,99,100,109,116,124,140],resum:[21,105,108],resynchron:49,retain:[95,108],retransmit:31,retri:[119,123],retriev:[57,80,92,102],reus:[55,81,95],reusabl:55,revdep:[1,50,62],revers:[1,23,50,62,107,118],revert:125,review:[10,105,140],revis:4,revision_num:[127,128],revisit:[102,108],rfc:[68,140],ribbon:[118,136],rigado:[48,117,124],right:[2,3,10,55,61,84,105,118,124,138],rimari:109,ristic:109,role:[20,21,30,31,107],room:137,root:[2,4,8,31,80,97,127],routin:[84,100],rpa:[19,27],rpa_pub:[27,66],rpa_rnd:[27,66],rsp:27,rssi:[27,29,103],rtc:9,rto:[55,87,137],rtt:[93,139],rtt_buffer_size_down:131,rubi:[11,55,58],rule:[95,116,140],run:[2,3,4,5,6,8,9,11,23,24,30,34,39,41,43,5
 0,52,55,57,58,59,60,61,64,66,67,77,78,80,81,82,83,84,85,87,88,91,94,96,97,98,100,102,103,110,111,113,115,116,117,118,119,123,124,125,126,133,135,136,137,139,140,141],runner:12,runtest:[7,98],runtest_newtmgr:98,runtim:[25,77,100,112,133,136,141],runtimeco:[57,58,59,80,81,82,97,112,124,127,141],rwx:88,rwxr:[80,82],rx_cb:93,rx_data:100,rx_off:100,rx_phys_mask:27,rx_power:27,saadc_config_irq_prior:124,saadc_config_oversampl:124,saadc_config_resolut:124,safeguard:87,safeti:107,sai:[61,100,112,127,128,141],said:124,sam0:112,sam3u128:[115,117,123,124],samd21:[112,141],samd21g18a:112,samd21xx:112,samd:112,same:[6,10,12,22,29,34,37,47,51,59,61,78,88,89,93,94,95,97,105,107,108,113,115,117,122,123,124,126,127,128,129,137],sampl:[1,12,21,30,61,89,95,124,135],sample_buffer1:124,sample_buffer2:124,sample_target:53,saniti:[77,87,102],satisfactori:127,satisfi:128,save:[12,31,49,50,71,92,93,107,137],saw:108,sbrk:[88,115,116,117,118,119],sc_cmd:100,sc_cmd_func:100,scale:31,scan:[15,21,24,26,27,29,103
 ,105],scan_interv:27,scan_req:27,scan_req_notif:27,scan_result:141,scan_rsp:27,scan_window:27,scannabl:[27,30],scenario:22,scene:31,schedul:[9,24,87,91,92,137],schemat:[88,136],scheme:[19,29,88],scientif:21,sco:20,scope:[12,137],scratch:88,screen:[8,123],script:[7,42,61,118],scroll:[12,98,106],sdk:[45,53,95],search:[12,89,102,112,118,127,131,132],second:[22,26,27,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,88,92,97,99,100,105,110,111,114,118,124,126,137,140],secondar:109,secondari:[27,71,88,100,109,125],secondary_phi:27,secret:[22,27],section:[1,5,6,7,11,12,14,24,25,29,30,61,87,88,94,95,98,101,105,108,109,112,113,124,125,127,128,134,135,137,141],sector:118,secur:[21,99,109,124,129],see:[2,4,5,6,7,8,10,11,12,21,22,23,24,33,36,43,55,57,58,59,61,63,64,66,80,81,82,87,88,91,94,95,97,98,99,100,102,103,105,106,107,109,110,111,112,113,114,115,116,117,118,119,120,123,124,125,126,127,128,129,131,132,133,135,136,137,138,141],seem:[105,124],seen:[127,139],segger:[93,115,117,123,124,12
 5,133,139,141],segger_rtt_conf:131,segment:21,sel:136,select:[4,12,19,21,55,59,112,114,115,116,118,132,136],self:[3,30,89,110,111,140],selftest:140,sema:100,semant:108,semaphor:[87,100],semi:100,send:[3,14,20,27,28,31,38,42,47,64,66,67,69,74,78,80,81,82,93,96,97,99,105,113,124,126,134,139],sender:105,sens:[20,124],senseair:[99,100],senseair_cmd:100,senseair_co2:[99,100],senseair_init:100,senseair_read:[99,100],senseair_read_typ:[99,100],senseair_rx_char:100,senseair_shell_func:100,senseair_tx:100,senseair_tx_char:100,sensibl:95,sensor:[9,31,139],sent:[20,29,93,107,109,123],sentenc:[62,138],sep:[4,81,82],separ:[20,26,34,35,50,51,66,107,110,111,112,115,116,118,119,123],seper:131,sequenc:[87,93],seri:[109,139],serial:[66,93,98,100,115,119,122,123,125,134,135],serv:[18,55,88],server:[12,14,18,20,21,27,31,99,109,123,138],servic:[16,17,21,27,28,29,31,87,91,96,100,105,106,107,108,128,141],service_data_uuid128:[27,29],service_data_uuid16:29,service_data_uuid32:[27,29],session:[12,38,39,47,5
 5,57,58,59,61,88,112,115,116,118,119,131],set:[1,2,7,8,9,10,12,19,20,23,24,27,28,29,31,32,34,36,37,39,50,53,55,56,58,59,61,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,79,81,82,84,86,91,92,93,97,99,103,106,107,110,111,112,113,115,116,117,118,119,120,122,123,124,125,127,128,129,131,133,135,136,137,140,141],setting1:94,setting2:94,settl:25,setup:[11,57,59,60,71,80,82,83,98,99,100,102,103,113,114,124,125,133,134,135,136],sever:[3,20,21,23,27,61,88,89,91,92,95,96,109,110,111,117,118,127],shall:[24,27,29],share:[4,22,87,122,127],shell:[1,7,8,21,30,55,59,80,91,93,94,95,97,98,99,100,113,120,123,131,137],shell_cmd:100,shell_cmd_argc_max:123,shell_cmd_help:120,shell_cmd_regist:100,shell_evq:100,shell_init:95,shell_newtmgr:98,shell_os_modul:120,shell_prompt_modul:114,shell_stack:100,shell_stack_s:100,shell_task:[94,95,98,100,114,120],shell_task_handl:100,shell_task_prio:100,shell_task_prior:94,shield:87,shift:[12,21],ship:6,shortcut:[12,100],shorten:105,shorter:126,shorthand:127,shortli:124,s
 hot:123,should:[4,8,10,12,19,26,30,32,55,57,59,61,81,84,85,88,91,93,95,97,100,103,105,106,107,108,110,111,112,114,115,116,117,118,119,123,124,126,127,130,131,132,133,136,137,140,141],show:[1,4,5,6,7,8,11,12,27,28,31,36,39,40,43,50,53,57,58,59,60,61,62,72,80,81,82,83,93,94,95,96,97,98,99,100,103,109,112,113,114,115,116,117,118,119,122,123,124,125,131,132,133,134,136,137,138,139,141],shown:[6,7,12,43,55,61,87,97,99,107,112,115,117,123,124,127,129,134,140],sibl:[11,128],sid:27,side:[12,21,30,100],sierra:[58,81],sig:[20,29,31],sign:[6,10,37,46,47,57,58,59,80,103,113,124,126],signal:[20,21,26,29,108],signatuar:12,signatur:[27,46],signific:[19,123],significantli:31,silent:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,95,100],silicon:32,sim1:[133,134,136],sim:[6,7,61,89,100,133,135,136],sim_slinki:[94,134],similar:[1,8,12,87,88,99,103,123,140],simpl:[12,20,21,61,85,87,88,97,104,105,110,111,114,124,137],simplehttpserv:[33,63],simpler:[88,109],simplest:[133,136],
 simpli:[6,10,93,97,99,101,106,112,137],simplic:[110,111],simplifi:20,simul:[2,3,5,6,50,134,137],simultan:[27,29,30],sinc:[3,20,24,32,61,87,88,92,99,100,102,103,110,111,112,114,124,125,126,127,137,141],singl:[2,3,7,22,39,47,55,57,58,59,95,104,105,109,110,127,140],sit:[14,18],site:[104,115,119],situat:87,six:[22,23],size:[9,10,20,27,29,39,55,57,58,59,61,73,77,88,92,93,94,95,96,98,112,116,118,123,137],sizeof:[99,100,105,107,108,111,124,137],skelet:103,skeleton:[7,44,50,97,102,103,112,115,116,117,118,119,123,124,133,134,136,141],skip:[6,11,47,59,112,115,116,117,118,119,133,136,141],slave:[27,29],slave_interval_rang:29,sleep:[9,84,85,92,114,122,137],slightli:91,slink:[133,134,136],slinki:[7,45,61,93,94,95],slinky_o:[7,61],slinky_sim:94,slinky_task_prior:94,slot:[7,20,61,71,100,103,106,112,114,115,116,117,118,119,120,123,125,131,132,133,136,141],slower:[3,91],small:[20,24,93,100,109,116,124,140],smaller:[112,138],smart:[21,31,55,61,100],smarter:128,smp:[20,21],snapshot:[43,115,119,128],sn
 ip:[1,36,43,55,61,98,102,103],snippet:107,soc:91,socket:2,soft:[64,80,81,82],softwar:[1,3,4,6,21,38,42,47,50,91,96,100,112,115,117,118,124,125,127,131,133,141],solder:100,solut:[55,110,111],some:[1,8,12,30,64,76,87,88,91,93,94,97,98,100,104,105,106,107,108,110,111,114,115,116,119,120,123,124,127,131,132,133,136,137,139,140,141],somebodi:100,somehow:61,someon:[10,85,124],someth:[20,97,102,103,129,131,141],sometim:[112,131,141],somewhat:87,somewher:124,soon:[21,124,128],sophist:137,sort:106,sourc:[1,4,9,21,24,50,56,58,60,61,79,81,83,91,95,104,112,115,116,118,122,124,127,128,136,141],space:[12,21,34,35,50,51,66,91,102,110,113,135,139,141],spec:20,special:[8,91,100,109,110,111,127,128,140],specif:[11,20,21,22,23,29,31,57,58,59,61,62,84,85,87,88,90,91,92,95,98,100,103,105,107,108,110,111,112,118,123,124,127,133,136,137,140,141],specifi:[1,4,6,7,11,12,20,27,30,34,35,37,39,41,43,45,46,50,51,53,55,57,58,59,61,65,66,67,68,69,70,71,72,73,74,75,76,77,86,88,91,92,93,94,98,102,105,107,108,109,11
 0,111,112,117,118,120,124,125,127,128,129,131,133,136,141],spectrum:21,speed:[9,21,112,115,116,117,123,124,131],spew:141,sphinx:[33,63],spi:[8,21,91],spitest:[7,61],split:[7,71,88,94,124,125,133,134,136],split_app:7,split_app_init:95,split_config:[133,134],split_elf_nam:61,split_file_test:140,split_load:95,splitti:[7,61,94],spot:88,spread:21,spuriou:140,sram:118,src:[6,7,11,45,50,55,61,70,80,82,88,90,95,99,100,102,112,115,116,117,118,119,123,124,126,133,134,136,137,140,141],ss_op_wr:107,ssec:27,sstatic:99,stabil:[127,128],stabl:[1,7,57,58,80,81,127,128],stack:[1,9,18,21,24,26,27,30,55,77,85,87,95,100,101,102,103,104,105,107,108,109,123],staff:[80,81],stage:95,stale:[2,112],standard:[7,21,31,92,99,100,105,110,111,123],standbi:21,start:[2,4,8,9,10,12,26,27,28,30,38,47,59,62,71,82,84,87,88,90,95,97,99,100,101,102,105,112,113,114,115,116,118,119,123,124,127,132,134,137,138,139,140],starter:126,startup:[19,21,26,30,95,110,111,137],startup_stm32f40x:[116,118],stash:49,stat:[1,7,64,78,80,8
 1,82,95,98,100,102,120,123,124,131],state:[6,21,26,31,52,55,84,85,88,92,112,118,122,125,128,130,137],statement:[11,95,98],statist:[1,48,64,73,76,77,80,81,82,123,131,133,134,136],stats_cli:[1,100,120],stats_module_init:95,stats_nam:[1,37,38,76],stats_newtmgr:[1,94,95,98],statu:[10,11,20,100,106,108,110,112,123,125,133,134,136],step:[2,4,6,7,12,47,55,57,59,80,82,87,88,89,93,100,102,103,110,111,112,115,116,117,118,119,123,124,127,133,134,136,138,141],sterli:128,sterlinghugh:128,stic:[107,109],still:[5,59,66,84,91,106,131],stitch:1,stksz:[77,100,133,136],stkuse:[77,100,133,136],stlink:116,stm32:[116,118,136],stm32_boot:136,stm32_slinki:136,stm32f2x:116,stm32f303vc:[97,126],stm32f3discoveri:97,stm32f4:113,stm32f4disc_blinki:116,stm32f4disc_boot:116,stm32f4discoveri:[53,116],stm32f4discovery_debug:116,stm32f4x:116,stm32serial:136,stm32x:116,stm:136,stmf303:97,stmf3:97,stmf3_blinki:[97,126],stmf3_boot:[97,126],stop:[2,27,84,105,141],storag:[20,103,127],store:[1,11,22,27,31,34,35,37,50,55,5
 7,59,61,80,85,92,93,100,102,105,107,108,124,127],str:93,straight:[100,105],straightforward:[102,124],strategi:137,strcmp:100,stream:21,strength:29,strict:[107,112],strictli:124,string:[1,27,29,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,93,95,99,100,110,111,124,127,128,134,140],strip:46,strlen:[105,107],struct:[84,86,87,88,92,93,99,100,105,107,108,109,110,111,114,122,124,137,140],structur:[7,11,12,18,28,55,61,78,87,88,93,100,107,113,124,135,139,140,141],stub:[61,100,110,111,114,122,124,140],studio:[5,13],stuff:127,style:[93,138],sub:[28,43,45,50,70,71,72,75,76,111,130],subcommand:[45,50,62,64,66,70,71,72,75,76],subcompon:21,subdirectori:[2,140],subfold:115,submit:11,subrang:20,subscrib:[28,106,108,124],subsequ:[21,22,105,108,140],subset:22,substitut:[6,102,103,138],subsystem:[30,59,93],subtract:92,succe:140,succesfulli:[100,102,103,106,112,114,115,116,117,118,119,123,125,126,131,132,133,136,141],success:[
 3,20,55,84,87,97,107,109,118,123,124,126,140],successfuli:[88,140],successfulli:[7,20,55,88,97,98,100,102,103,106,108,110,111,112,115,116,117,118,119,123,124,125,126,133,134,136,141],sudo:[4,6,7,11,57,58,60,80,83,103],suffix:140,suggest:[3,6,96,120,139],suit:[6,55,102],suitabl:[20,88],summar:88,summari:[6,11,19,36,111],supervision_timeout:[30,106],supplement:[29,105],supplementari:88,suppli:140,support:[1,3,4,6,7,12,14,19,20,21,22,29,30,32,53,58,66,81,86,87,88,90,93,95,100,102,103,104,105,109,110,112,113,115,122,125,127,128,134,135,139,141],suppos:43,suppress:134,suppresstasknam:12,sure:[2,7,8,57,99,100,102,103,105,107,112,114,123,124,127,140],svc:109,swap:[2,84,85,88,112,131],swclk:112,swd:[112,115,116,117,118,119,123,124,141],swdio:112,swim:116,swo:[115,141],symbol:[4,7,12,61,112,116,131,132],symlink:[60,83],sync:[20,25,39,57,58,59],sync_cb:[26,110,111],synchron:[20,39,49,57,58,59,91],syntax:[95,120,123,138],synthes:24,sys:[1,7,55,57,61,93,94,95,98,100,102,114,122,124,132,140,141]
 ,sys_config_test:7,sys_flash_map:[116,118],sys_mfg:[7,112,115,116,117,118,133,136],sys_sysinit:[7,112,115,116,117,118,119,133,136],syscfg:[23,24,32,37,38,50,61,88,93,94,98,100,103,112,114,115,120,123,124,125,131,132,140,141],sysconfig:98,sysflash:[112,118],sysinit:[7,25,26,87,93,95,100,110,111,112,114,122,123,124,140,141],sysinit_assert_act:95,sysinit_panic_assert:95,sysresetreq:112,system:[1,3,6,8,9,25,39,50,57,58,59,61,62,84,86,87,88,91,92,93,96,100,102,103,112,114,115,118,120,123,127,128,132,137,141],system_stm32f4xx:[116,118],systemview:139,sysview:132,sysview_mynewt:132,syuu:59,t_func:137,t_prio:85,tab:[30,36],tabl:[19,20,88,95,107,109,123],tag:128,tailq_head:84,take:[6,7,23,45,50,55,62,87,99,105,107,108,109,110,111,124,137,140],taken:[7,61,87,99,107,127,128],talk:[103,105,134],tap:[4,56,79],tar:[4,57,58,59,60,81,82,83],tarbal:4,target:[3,4,5,7,12,25,29,32,34,35,36,37,38,39,42,43,46,47,48,53,55,57,58,59,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,91,94,95,100,101,110,
 111,113,120,125,135,137,140],target_nam:34,targetin:[110,111],task1:[87,133,136],task1_handl:87,task1_init:87,task1_prio:87,task1_sem:87,task1_stack:87,task1_stack_s:87,task2:[87,133,136],task2_handl:87,task2_init:87,task2_prio:87,task2_sem:87,task2_stack:87,task2_stack_s:87,task:[9,11,55,64,77,80,81,82,84,85,87,88,90,91,92,93,95,98,99,100,107,114,123,133,134,136,139],task_l:122,task_prior:[94,95],tasknam:12,taskstat:[64,78,80,81,82,98,133,136],tbd:[109,124],tck:112,tcp:[112,116],tdi:112,tdo:112,teach:137,team:[4,138],technic:[10,97],technolog:21,tee:[1,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,100],telee02:123,telee02_boot:123,telemetri:110,telenor:123,teli:[110,111],tell:[30,55,95,97,99,105,107,110,111,118,124,128],telnet:[131,141],templat:[7,45,100,102,140],temporari:20,term:[3,127],termin:[2,4,7,8,10,12,20,21,27,59,82,93,103,105,108,109,112,114,115,116,117,118,119,123,131,141],terribl:[7,102],test:[4,6,12,39,50,57,58,59,61,64,67,71,75,80,81,82,93,95
 ,98,99,103,109,110,111,112,114,115,117,124,125,127,131,134,139],test_assert:140,test_assert_fat:140,test_cas:140,test_datetime_parse_simpl:140,test_datetime_suit:140,test_json:140,test_json_util:140,test_project:44,test_suit:140,testbench:[7,61],testcas:[7,140],testnam:75,testutil:[7,140],text:[39,48,69,93,116,133,136],textual:1,tgz:4,than:[3,7,14,20,29,72,87,88,91,92,94,103,109,110,111,115,124,131,137],thank:30,thee:91,thei:[1,6,20,29,30,61,87,88,95,96,99,105,106,107,109,110,111,120,123,126,127,128,130,140],their_key_dist:27,them:[2,9,55,88,95,103,105,110,111,112,124,127,137,139,140,141],themselv:[87,109],theori:[55,95],therefor:[20,129,137],thi:[1,2,3,4,5,6,7,8,9,10,11,12,14,18,20,21,22,23,24,25,26,27,29,30,31,32,33,34,41,43,52,53,55,57,58,59,60,61,63,64,66,71,72,80,81,82,83,84,85,87,88,89,90,91,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,122,123,125,126,127,128,129,131,132,133,134,135,136,137,138,139,140,141],thing:[1,2
 1,24,26,55,61,88,91,99,100,110,111,124,128,140],thingi:[131,132],thingy_debug:[131,132],think:[10,124],third:[6,19,103,105,112,124,141],thorough:128,those:[1,31,32,39,55,57,58,59,61,88,91,96,99,100,124,128],thought:124,thread:[9,102,112,116,118],three:[2,11,19,59,61,93,95,102,104,105,111,112,118,122,123,137],through:[21,23,61,62,98,99,100,104,106,108,111,112,114,118,124,140,141],throughout:[1,88,140],throughput:21,thrown:6,thu:[88,137],tick:[84,91,92,93,100,114,115,137],ticket:10,tid:[77,100,133,136],ties:102,time:[1,7,9,11,12,19,20,21,22,25,27,31,34,43,57,58,59,60,61,77,82,83,87,88,91,93,96,99,100,102,105,107,109,110,111,115,117,122,123,124,126,131,137,140,141],time_datetime_test:140,timeout:[20,27,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,100,125],timer:[24,84,86,88],timer_0:24,timer_4:123,timer_5:24,timer_ev_cb:114,timer_interrupt_task:122,timestamp:72,timev:92,timezon:[92,140],timtest:[7,61],ting:[110,111],tini:[118,136],tinycbor:7,tinycrypt:7,titl:[8,135],tlm:110,tlv:2
 7,tmp:[57,59,80,82],todo:[61,110,111],togeth:[1,43,55,61,106,118,124],toggl:[7,114,122,137],token:[75,87,129],too:[20,87,94,100],took:116,tool:[1,2,3,5,6,7,9,12,13,39,54,57,58,61,62,63,66,78,79,80,81,87,88,89,91,94,95,97,98,101,102,103,112,113,118,120,122,123,124,125,127,128,129,131,132,134,135,139,140,141],toolbox:2,toolchain:[2,3,5,7,12,33,59,63,98,103,113,125,135,139,141],toolkit:3,tools_1:[57,58,59,81,82],top:[1,10,12,35,61,94,103,110,111,124,140],topic:1,total:[9,55,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,115,117,123,124],tour:104,track:[19,21,22],transact:20,transfer:[22,100],translat:110,transmiss:[20,27,123],transmit:[29,31,93,123],transport:[20,21,27,80,93,95,100,102,103,112,116,124,125],tree:[1,6,7,50,55,61,88,102],tri:[3,64,65,66,67,68,69,70,71,72,73,74,75,76,77,80,81,82,94,123],trial:88,trigger:[6,10],troubleshoot:94,truncate_test:140,trust:[22,27,100],tt_chr_f:109,tt_svc_type_p:109,ttl:[103,136],tty:[8,100,114,133,136,141],ttys002:66,ttys003:66,ttys005:134,tt
 ys012:[133,136],ttys10:8,ttys2:[8,114,133,136,141],ttys5:8,ttyusb0:[66,103],ttyusb2:[8,133,136,141],ttyusb:[8,114,133,136,141],tu_any_fail:140,tupl:92,turn:[24,98,102,103,113,114,117,127,128,133],tutiori:[73,76],tutori:[2,3,6,7,8,12,21,23,59,77,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,118,119,122,123,124,125,133,134,136,137,140,141],tv_sec:[84,92,140],tv_usec:[84,92,140],tvp:[84,92],two:[2,3,12,18,19,21,22,23,27,31,43,45,50,55,61,66,87,88,90,92,93,94,95,97,98,100,102,103,105,107,110,111,112,114,115,116,117,118,119,122,123,124,127,128,129,130,133,136,137,140,141],tx_data:100,tx_len:100,tx_off:100,tx_phys_mask:27,tx_power_level:[27,29],tx_time_on_air:123,txd:123,txpower:123,txt:[70,132],type:[1,7,8,10,12,19,20,23,27,29,30,31,39,43,45,46,53,55,57,58,59,61,66,88,91,93,94,95,97,99,100,102,103,105,106,107,108,109,110,112,115,116,117,118,122,123,124,125,127,128,129,131,132,133,134,136,137,140,141],typedef:[26,84,93],typic:[3,9,21,26,31,55,61,87,88,89,93,
 95,105,110,111,140],tz_dsttime:[84,92,140],tz_minuteswest:[84,92,140],uart0:[93,100,134],uart1:100,uart:[7,8,21,55,91,93,98,100,102,103,115,116,117,118,119,123,131],uart_0_pin_rx:100,uart_0_pin_tx:100,uart_bitbang:115,uart_flow_control_non:93,uart_hal:[7,116,117,118],uartno:100,ubuntu:[4,6,7,57,80],uci:23,udev:116,udp:66,uext:136,uicr:23,uid:110,uint16:[27,28],uint16_max:27,uint16_t:[20,99,100,107,124],uint32:[27,71],uint32_max:27,uint32_t:[84,86],uint64:27,uint8:27,uint8_max:27,uint8_t:[23,32,88,93,100,105,107,110,111,124],ultim:107,unabl:[2,112,115,116,119],unaccept:20,unadorn:20,unam:2,unchang:88,unconfirm:123,und:[27,30],undefin:[82,95],under:[4,7,10,11,12,20,26,34,55,61,71,100,109,112,116,117,119,124],underli:91,underlin:138,understand:[7,92,96,97,123,124,125,127],undesir:87,undirect:[27,105],unexpect:20,unexpectedli:[20,140],unicast:31,unidirect:27,uniform:[29,59],uniformli:62,uninstal:7,unint32:71,uninterpret:95,union:107,uniqu:[9,19,32,88,94,95,110,123],unit:[1,7,20,27,39,51
 ,57,58,59,95,139,140],unittest:[7,45,55,61,95,100,102,140],unix:[2,59,97],unknown:[20,94],unlabel:100,unless:[27,95,100,124],unlicens:21,unlik:[20,140],unlink:[58,60,81,83],unlink_test:140,unmet:88,unpack:[57,59],unplug:119,unprovis:31,unresolv:140,unrespons:20,unset:50,unsign:119,unspecifi:[20,42],unstabl:[57,58,80,81],unsupport:[20,109],unsync:26,untar:4,until:[20,26,61,84,87,93,105,110,111,123,127],unuesd:108,unus:[71,99,100,124],updat:[2,4,15,20,27,30,36,37,49,52,57,58,59,60,80,81,83,95,99,106,108,114,115,120,124,140],upgrad:[2,39,56,59,79,88,93,97,98,103,112,131,139,141],uplink:123,uplink_cntr:123,uplink_freq:123,upload:[43,70,71,115,125],upon:[1,3,10,26,55,108],upper:[23,95],uri:[27,29],url:[27,110,127],url_bodi:110,url_body_len:110,url_schem:110,url_suffix:110,usabl:[1,88,102,110],usag:[1,9,57,58,59,62,80,81,82,95,100,123,134,137],usart6_rx:136,usart6_tx:136,usb:[2,3,8,21,42,66,98,103,112,113,115,116,117,118,119,122,123,124,125,133,135,136,137,141],usbmodem14211:66,usbmodem14
 221:66,usbmodem401322:8,usbseri:[8,100,114,133,136,141],usbttlseri:103,use:[1,4,5,6,7,8,11,12,14,19,20,21,22,24,27,30,32,41,45,50,51,55,56,58,59,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,79,81,82,86,88,89,91,93,94,95,97,98,99,100,101,102,103,105,106,107,108,110,111,112,113,114,115,118,120,121,122,123,124,125,126,128,129,131,132,133,134,135,136,137,140,141],use_wl:27,use_wl_inita:27,usec:84,used:[6,7,11,12,19,20,22,23,24,27,29,30,31,34,46,49,61,66,72,84,86,88,92,93,94,95,96,97,103,105,107,108,109,110,111,112,123,124,126,127,128,137,140,141],useful:[3,20,87,102,127],user:[1,2,4,6,7,8,9,18,20,22,24,48,55,58,59,61,78,80,81,82,88,89,93,94,95,97,100,109,112,118,122,123,124,127,128,129,136,141],user_id:[94,95],user_manu:97,usernam:[10,48,59,127],uses:[2,4,6,7,8,12,14,20,21,22,23,24,30,32,55,65,66,67,68,69,70,71,72,73,74,75,76,77,78,86,88,92,93,94,95,98,100,107,108,109,112,114,117,122,125,127,129,133,136,141],using:[1,2,4,6,7,8,10,11,12,19,20,21,24,26,27,28,29,31,33,36,37,43,44,57,58,59,
 60,61,63,66,76,80,81,82,83,86,87,89,90,91,92,95,97,98,99,100,102,103,109,111,112,113,114,115,116,117,118,119,122,123,124,125,131,132,134,135,137,138,140,141],usr:[4,6,11,36,57,58,59,60,80,81,82,83],usu:90,usual:24,utc:[68,92,140],utctim:84,utf:29,util:[7,11,20,21,31,87,93,95,98,140],util_cbmem_test:7,util_crc:[134,136],util_mem:[7,112,114,115,116,117,118,119,123,133,134,136,141],util_pars:123,uuid128:[27,29,107,109,111],uuid128_is_complet:[27,29],uuid16:[27,28,29,99,107,124],uuid16_is_complet:[27,29],uuid32:[27,29],uuid32_is_complet:[27,29],uuid:[27,28,29,30,32,66,99,107,109,111,124],uvp:[84,92],v14:116,v25:116,val:[23,24,39,50,57,58,59,61,88,94,95,98,100,110,111,114,123],valid:[20,39,50,53,57,58,59,61,66,72,100,107,124,140],valu:[1,4,7,12,20,23,24,27,28,29,30,37,39,42,46,50,53,57,58,59,61,62,64,65,66,68,71,72,75,80,81,82,85,88,92,98,99,100,103,106,107,108,109,110,111,120,122,124,125,127,128,131],valuabl:127,value1:[50,95],value2:[50,95],valuen:95,vari:[9,91],variabl:[1,4,11,24,34,3
 7,50,59,61,62,65,84,93,97,105,107,123,127,128,137],variant:[22,90],variat:12,varieti:[4,108],variou:[23,24,61,108,113,123],vdd:124,vendor:127,ver:[1,7,55,97,100,103,112,124,127,128,129,141],verb:62,verbos:[1,7,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,100,112,141],veri:[1,9,31,55,101,109,114,115,124,127,131,138],verif:22,verifi:[22,57,59,80,82,115,116,117,119,123,124,125,137,140],versa:8,version:[1,2,4,6,7,11,12,21,22,34,37,39,41,43,47,55,56,60,79,83,93,95,97,98,100,103,111,112,114,115,116,117,118,119,123,124,125,130,131,132,133,136,141],via:[8,20,26,42,55,93,95,100,103,104,105,107,115,117,123,124,125,127],vice:8,vid:116,view:[1,7,10,12,30,50,62,66,95,124,127,132],vim:59,violat:20,viper:11,virtual:66,virtualbox:112,visibl:[2,28],visit:[39,57,58,59],visual:[5,13,132],visualstudio:12,vol:22,volatil:116,voltag:[116,124],volum:29,vscode:12,vtref:[115,117,123,124],vvp:[84,92],wai:[2,3,9,21,30,31,59,61,87,92,93,94,100,124,127,128,129,138],wait:[84,85,87,95,99
 ,100,118,122,123,124,137],wake:[85,87,137],walk:124,wall:6,wallclock:92,wanda:81,want:[1,3,11,18,50,57,58,59,60,61,80,83,85,87,93,96,98,100,102,104,105,107,109,110,111,112,113,115,116,117,118,120,123,124,126,127,131,139,140],warn:[1,6,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,57,58,59,62,94,100,107,115],warranti:[4,100,112,124,131,132],watch:102,watchdog:87,watchpoint:[112,116],wdog:67,wear:102,wear_level_test:140,wearabl:9,web:[97,138],webfreak:12,websit:138,welcom:[8,100,101],well:[8,22,40,55,91,96,100,106,123,124],were:[29,73,84,99,100,128],werror:[6,50],wes:123,west:92,wfi:116,wget:[57,59,80,82],what:[7,8,20,41,55,91,95,99,100,105,108,109,110,111,121,124,128,137,140],whatev:[23,141],wheel:[8,97],when:[1,2,6,7,8,10,12,14,20,22,23,24,26,29,34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,61,62,66,72,81,84,85,87,88,89,91,92,93,94,95,98,100,102,103,104,105,108,109,110,111,112,115,116,118,119,122,124,125,127,128,129,131,134,137,138,140],whenev
 :[21,26,107,109],where:[8,9,10,11,22,29,31,35,37,50,55,59,60,61,83,88,90,91,93,94,95,98,100,109,110,111,114,115,123,124,133,136,137,141],wherea:128,whether:[10,12,22,84,92,95,105,107,109,140],which:[1,2,4,8,11,14,19,20,21,30,32,34,39,55,57,58,59,61,62,66,80,81,82,84,85,87,88,91,94,97,100,105,106,107,108,109,110,111,112,123,124,125,127,128,131,134,137,140,141],white:[22,27],whitelist:27,who:10,whose:[61,62],why:[10,137],wide:21,wifi:[7,141],wifi_connect:141,wifi_request_scan:141,winc1500_wifi:141,window:[5,6,7,9,12,27,56,66,78,79,88,93,103,112,114,115,116,117,118,119,123,125,131,133,136,141],winusb:[116,118,136],wire:[8,100,123,124,136],wireless:21,wish:[6,10,127,135,137],withdraw:10,within:[1,12,20,31,41,55,88,89,91,100,108,118,127,137,140],without:[6,10,22,24,28,30,95,100,112,124,125,140],wno:6,won:[8,124],wonder:124,word:[6,55,87,107,112,127,131,132],work:[2,4,8,10,11,22,24,55,61,62,85,87,88,90,91,93,97,98,99,100,102,103,106,112,114,123,124,126,130,137,140],work_stack:137,work_sta
 ck_s:137,work_task:137,work_task_handl:137,work_task_prio:137,workspac:[1,2,11,39,57,58,59,60,80,82,83],workspaceroot:12,world:[12,21,105,110,111,113,129,139],worri:87,worth:[1,89,100],would:[5,12,58,59,81,82,87,93,100,102,118,123,124,127,128,136,137,140],wrap:[92,114],write:[1,9,14,20,28,61,64,65,80,81,82,89,93,100,101,106,108,109,122,123,124,137],write_cmd_rx:[76,98],write_cmd_tx:[76,98],write_req_rx:[76,98],write_req_tx:[76,98],write_rsp_rx:[76,98],write_rsp_tx:[76,98],written:[11,20,23,59,82,87,107,109,114,128],wrong:[42,124],wsl:[12,59],www:[97,100,103,112,124,131,132,136],x00:100,x02:100,x08:100,x25:100,x44:100,x86:[4,12],x86_64:[112,131,132],x9f:100,xml:7,xpf:4,xpsr:[112,116,118],xtal_32768:88,xtal_32768_synth:24,xxx:[6,88],xxx_branch_0_8_0:[127,128],xxx_branch_1_0_0:[127,128],xxx_branch_1_0_2:[127,128],xxx_branch_1_1_0:[127,128],xxx_branch_1_1_2:[127,128],xxx_branch_1_2_0:[127,128],xxx_branch_1_2_1:[127,128],xzf:[57,59,60,82,83],yai:100,yaml:11,year:31,yes:[22,123],yesno:27,
 yet:[7,84,87,91,102,124,125,127,128],yield:87,yml:[1,6,7,41,43,50,52,53,55,61,89,90,93,94,95,97,98,100,102,103,112,114,120,122,123,124,127,129,130,140,141],you:[1,3,4,5,6,7,8,9,10,11,12,18,19,30,33,34,35,39,41,43,45,46,47,50,51,52,53,54,55,57,58,59,60,61,63,64,66,68,76,80,81,82,83,87,88,89,90,91,93,94,95,96,98,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,122,123,124,125,127,128,129,131,132,133,134,135,136,137,138,139,140,141],your:[1,3,4,6,8,10,19,30,39,50,52,55,56,58,59,60,61,70,71,79,81,82,83,87,88,89,90,91,94,95,99,100,101,102,103,104,105,106,108,109,110,111,113,114,120,122,123,124,125,126,128,131,132,133,135,136,138,139],yourself:[2,10,30,87,88,100,104,139],ype:[110,111],yym:6,zadig:[116,118,136],zero:[12,24,88,92,95,109,110,111,113,123,127,137,139,140,141],zip:[4,115,124]},titles:["&lt;no title&gt;","Concepts","Everything You Need in a Docker Container","Setup &amp; Get Started","Installing the Cross Tools for ARM","Native Installation","In
 stalling Native Toolchain","Creating Your First Mynewt Project","Using the Serial Port with Mynewt OS","Mynewt Documentation","FAQ","Contributing to Newt or Newtmgr Tools","Developing Mynewt Applications with Visual Studio Code","Appendix","NimBLE Host ATT Client Reference","NimBLE Host GAP Reference","NimBLE Host GATT Client Reference","NimBLE Host GATT Server Reference","NimBLE Host","NimBLE Host Identity Reference","NimBLE Host Return Codes","BLE User Guide","NimBLE Security","Configure device ddress","Configure clock for controller","NimBLE Setup","Respond to <em>sync</em> and <em>reset</em> events","GAP API for btshell","GATT feature API for btshell","Advertisement Data Fields","API for btshell app","Bluetooth Mesh","Sample application","Mynewt Newt Tool Documentation","newt build","newt clean","newt complete","newt create-image","newt debug","newt help","newt info","newt install","newt load","newt mfg","newt new","newt pkg","newt resign-image","newt run","newt size","newt sync
 ","newt target","newt test","newt upgrade","newt vals","newt version","Newt Tool Guide","Install","Installing Newt on Linux","Installing Newt on Mac OS","Installing Newt on Windows","Installing Previous Releases of Newt","Theory of Operations","Command Structure","Mynewt Newt Manager Documentation","Command List","newtmgr config","newtmgr conn","newtmgr crash","newtmgr datetime","newtmgr echo","newtmgr fs","newtmgr image","newtmgr log","newtmgr mpstat","newtmgr reset","newtmgr run","newtmgr stat","newtmgr taskstat","Newt Manager Guide","Install","Installing Newtmgr on Linux","Installing Newtmgr on Mac OS","Installing Newtmgr on Windows","Installing Previous Releases of Newtmgr","Core OS API","Scheduler","CPU Time","Mynewt Core OS","BSP Porting","Porting Mynewt to a new CPU Architecture","Porting Mynewt to a new MCU","Porting Mynewt OS","OS Time","Console","Validation and Error Messages","System Configuration and Initialization","OS User Guide","Blinky, your \u201cHello World!\u201d,
  on STM32F303 Discovery","Enabling Newt Manager in Your Application","Air quality sensor project via Bluetooth","Air quality sensor project","Bluetooth Low Energy","Set up a bare bones NimBLE application","Use HCI access to NimBLE controller","BLE Peripheral Project","Advertising","BLE Peripheral App","Characteristic Access","GAP Event callbacks","Service Registration","BLE Eddystone","BLE iBeacon","Blinky, your \u201cHello World!\u201d, on Arduino Zero","Project Blinky","Enabling The Console and Shell for Blinky","Blinky, your \u201cHello World!\u201d, on Arduino Primo","Blinky, your \u201cHello World!\u201d, on STM32F4-Discovery","Blinky, your \u201cHello World!\u201d, on a nRF52 Development Kit","Blinky, your \u201cHello World!\u201d, on Olimex","Blinky, your \u201cHello World!\u201d, on RedBear Nano 2","How to Reduce Application Code Size","How to Define a Target","How to Use Event Queues to Manage Multiple Events","LoRaWAN App","Adding an Analog Sensor on nRF52","Over-the-Air I
 mage Upgrade","Pin Wheel Modifications to \u201cBlinky\u201d on STM32F3 Discovery","Adding Repositories to your Project","Create a Repo out of a Project","Accessing a private repository","Upgrade a repo","SEGGER RTT Console","SEGGER SystemView","Project Slinky using the Nordic nRF52 Board","Project Sim Slinky","Project Slinky","Project Slinky Using Olimex Board","Tasks and Priority Management","Try Markdown","Tutorials","Write a Test Suite for a Package","Enable Wi-Fi on Arduino MKR1000"],titleterms:{"default":[114,137],"function":[88,92,95,107,109,137],"import":97,"new":[7,44,89,90,106,133,134,136],"public":23,"return":20,"switch":137,"try":[138,140],Adding:[58,81,124,127],For:4,The:114,Use:[2,98,100,103,114,122,124,133,136],Using:[8,57,80,93,136],access:[103,107,129],adc:124,add:[66,88,99,100,110,111,124],addit:[124,127],address:[19,23,30,110,111],administr:10,advertis:[27,29,30,105,110,111],air:[99,100,125],all:122,ambigu:94,analog:124,apach:[9,31],api:[27,28,30,84,85,86,93],app:
 [9,30,61,103,106,123,132],appendix:[13,88],applic:[7,12,32,87,97,98,102,103,110,111,112,114,115,116,117,118,119,120,122,123,133,136,137,141],apt:[57,80],architectur:89,arduino:[8,112,115,141],area:94,arm:4,artifact:61,asf:124,assert:140,assign:94,associ:12,att:[14,20],attach:103,attribut:[30,109],autocomplet:36,automat:124,avail:[27,28,39,43,50,113,127,135],bare:102,bash:36,basic:87,beacon:[110,111],bearer:31,begin:[30,105],being:107,belong:30,between:141,binari:[57,59,80,82],bit:6,ble:[21,102,104,106,110,111,124],blehci:103,bleprph_gap_ev:108,blink:97,blink_rigado:48,blinki:[7,97,112,113,114,115,116,117,118,119,126],bluetooth:[21,31,99,101,103],bluez:103,board:[91,112,115,116,117,118,119,123,133,136,141],bone:102,bootload:[103,112,115,116,117,118,119,123,133,136,141],branch:[58,81],brew:6,bsp:[53,88,91,94],btmgmt:103,btmon:103,btshell:[27,28,30],bug:10,build:[7,9,12,34,55,61,97,98,102,103,112,114,115,116,117,118,119,123,124,126,133,134,136,137,141],callback:108,callout:122,can:10,c
 ategori:139,chang:[33,63],channel:27,characterist:[30,104,107],check:[57,58,59,80,81,82,88],choos:140,clean:35,clear:119,cli:100,client:[14,16],clock:24,close:123,code:[12,20,88,89,120,140],command:[12,27,28,39,43,50,62,64,66,98,100,103,134],committ:10,commun:[8,98,114],compil:89,complet:36,compon:[21,127],comput:[57,80,141],concept:1,conclus:[102,110,111,124],condit:95,config:65,configur:[1,12,23,24,27,28,30,94,95,97,98,110,111,114],conflict:95,congratul:140,conn:66,connect:[27,30,98,103,112,114,115,116,117,118,119,123,125,131,133,134,136,141],consider:137,consol:[93,114,131,141],contain:2,content:[33,63],context:137,contribut:11,control:[24,103,110,111],copi:88,core:[20,84,87,91,124],cpu:[84,86,89,91],crash:67,creat:[7,37,88,89,97,98,100,102,103,106,110,111,112,115,116,117,118,119,123,124,125,128,133,134,136,140,141],creation:87,cross:4,crystal:24,custom:98,data:[29,86,92,105,123],datetim:68,ddress:23,debian:[57,80],debug:[12,38,61,88],debugg:[4,12],defin:[12,88,121],definit:[94,9
 5],delet:66,depend:[7,61,88,91,97,98,114,128],descript:[34,35,37,38,40,41,42,43,44,45,46,47,48,49,50,51,52,53,65,66,67,68,69,70,71,72,73,74,75,76,77,85,86,91,92,93],descriptor:[30,104,109,127],determin:107,develop:[12,117],devic:[2,23,27,30,103,125],direct:30,directori:61,disabl:27,discov:30,discoveri:[27,97,116,126],displai:30,distribut:124,docker:2,document:[10,33,63],doe:127,download:[11,57,61,80,88,97,123,126],driver:[100,124],duplic:94,echo:69,eddyston:110,edit:10,editor:10,empti:[110,111],enabl:[2,27,36,98,114,141],energi:101,enter:102,environ:11,equip:137,eras:115,error:94,establish:[30,103,141],etap:124,event:[26,108,114,122],everyth:[2,123],exampl:[8,20,21,26,34,35,37,38,39,43,44,45,46,47,48,50,51,53,54,65,66,67,68,69,70,71,72,73,74,75,76,77,87,94,95,122],execut:[6,97,115,116,117,119,123,126,131,132,134],exist:[98,114,127],explor:7,express:94,extend:27,extens:[2,12],extern:[97,112,141],faq:10,featur:[7,10,21,22,28,31,87],fetch:[7,112,141],field:29,file:[88,128],fill:88,find
 :127,first:[7,9],flag:[34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,65,66,67,68,69,70,71,72,73,74,75,76,77],flash:[88,94,115,119],framework:98,from:[57,58,59,80,81,82,93],ft232h:8,full:93,gap:[15,27,108],gatt:[16,17,28,99],gcc:6,gdb:6,gener:[22,30,95,122],get:[3,57,80],git:[10,59],github:124,global:[34,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,65,66,67,68,69,70,71,72,73,74,75,76,77],guarante:108,guid:[21,55,78,96],hal:[91,100],hardcod:23,hardwar:[23,97,123,124,131,132],hci:[20,103],header:[14,15,16,17,19,20],heading3:138,heading4:138,hello:[97,112,115,116,117,118,119],help:39,homebrew:[58,81],host:[14,15,16,17,18,19,20,110,111],how:[10,95,120,121,122,127],ibeacon:111,ident:19,identifi:127,ignor:94,imag:[37,46,71,97,98,103,115,116,117,118,119,123,125,126,133,136,141],implement:89,includ:[30,109],indefinit:[110,111],info:40,initi:[30,95,137],input:93,instal:[2,4,5,6,11,12,36,41,56,57,58,59,60,79,80,81,82,83,97,123],interrupt:122,introduct:[9,14,15,16,17,1
 8,19,20,31,55,88,104,122,140],invalid:94,join:123,kei:[22,27],kit:117,l2cap:[20,27],laptop:10,latest:[57,58,59,80,81,82],launch:132,led:[97,126],legaci:27,level:125,libc:6,librari:[97,124],like:10,link:4,linker:88,linux:[2,4,6,8,11,57,60,80,83],list:[10,64,110,111,138],load:[42,98,103,112,115,116,117,118,119,133,136,141],log:[72,125],lorawan:123,low:101,mac:[2,4,6,8,11,58,60,81,83],macro:92,main:[114,137],make:10,manag:[9,20,55,63,78,98,122,137],manual:[57,80],map:88,markdown:138,master:[58,81],mcu:[88,90,91],mechan:124,memori:119,merg:10,mesh:[21,31],messag:94,method:[23,57,80],mfg:43,mingw:59,minim:93,mirror:124,mkr1000:141,model:31,modif:126,modifi:[98,114],monitor:103,more:[55,97],mpstat:73,msys2:59,multipl:[12,94,122],mynewt:[2,7,8,9,10,12,23,31,33,58,63,81,87,88,89,90,91,93,102,127],name:[30,95],nano:119,nativ:[5,6],need:[2,97,100,123,124,126,127,131,132],newt:[2,9,11,12,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,60,63,78,98],newtmgr:[11,65,6
 6,67,68,69,70,71,72,73,74,75,76,77,80,81,82,83,98,125,133,134,136],next:6,nimbl:[14,15,16,17,18,19,20,21,22,25,102,103,110,111],node:31,nordic:[8,133],note:[55,92,124],notnul:94,nrf52:[117,124,133],nrf52dk:8,nrf:23,object:[97,113,123,124,126,131,132],oicmgr:98,olimex:[118,136],onto:[112,141],open:[103,123],openocd:4,oper:[55,61],option:[98,115],orient:27,ota:123,other:[7,12,98,128],out:[127,128,140],output:[48,53,93],over:125,overrid:[94,95],overview:[64,104,105,106,108,113,135],own:10,pack:2,packag:[1,7,57,61,80,88,91,93,94,95,98,100,102,112,140,141],passiv:30,patch:10,peer:[20,30],perform:30,peripher:[104,106],pin:126,pkg:[45,88],platform:8,port:[8,88,89,90,91,123],preempt:137,prerequisit:[7,98,103,106,112,113,114,115,116,117,118,119,122,125,133,134,135,136,137,139,141],preview:[33,63],previou:[60,83],primo:115,prioriti:[94,137],privaci:22,privat:129,pro:8,process:114,produc:[6,61],profil:[98,125,134],project:[1,7,10,12,21,97,98,99,100,102,103,104,112,113,114,115,116,117,118,119,1
 23,124,127,128,133,134,135,136,141],protect:119,protocol:[98,110,111],provid:124,provis:31,pull:[2,10],put:122,qualiti:[99,100],queri:[133,136],question:10,queue:[114,122],random:23,rational:55,read:[30,107],rebuild:11,redbear:119,reduc:[120,125],refer:[14,15,16,17,19,20,95],referenc:95,registr:109,releas:[57,58,59,60,80,81,82,83],repo:[127,128,130],repositori:[7,10,55,124,127,128,129],request:10,requir:88,reset:[26,74],resign:46,resolut:128,resolv:[61,95,128],respond:26,restrict:94,review:[107,137],round:126,rtt:131,run:[7,12,47,75,112,114,131,132,134],runtim:23,sampl:32,satisfi:88,scale:140,scan:30,schedul:[84,85],script:[2,88],secur:[20,22,27],segger:[4,131,132],select:2,semiconductor:8,send:[30,103,123],sensor:[99,100,124],serial:[8,103,114,133,136,141],server:17,servic:[30,99,104,109,124],set:[6,11,30,57,80,88,94,95,98,100,102,105,109,114,134],settl:24,setup:[3,8,25,131,132,141],shell:114,should:128,show:[30,66],sign:[97,115,116,117,118,119,123,133,136,141],signatur:107,sim:134
 ,simul:7,size:[48,120],slinki:[133,134,135,136],softwar:[10,132],some:10,sourc:[7,11,55,57,59,80,82,98,100,110,111],special:92,specif:[89,128],specifi:95,stack:[110,111,137],start:[3,103,141],startup:88,stat:76,step:[11,113,125,135],stm32f303:97,stm32f3:[97,126],stm32f4:116,storag:27,structur:[62,86,92],stub:93,studio:12,stuff:100,sub:66,submit:10,suit:140,summari:20,support:[2,31,61,91,97,98],sync:[26,49,110,111],syscfg:95,sysinit_app:95,system:[24,55,94,95],systemview:132,talk:141,tap:[58,81],target:[1,23,50,61,88,97,98,102,103,106,112,114,115,116,117,118,119,121,123,124,126,131,132,133,134,136,141],task:[12,94,122,124,137],taskstat:77,tcp:141,templat:88,test:[7,51,88,100,140],theori:61,thi:124,time:[24,84,86,92],timer:[114,122],togeth:122,tool:[4,11,33,55,59,82],toolchain:[4,6],topolog:31,transport:98,tree:100,tutori:[113,135,139],undefin:94,under:140,undirect:30,updat:11,upgrad:[52,57,58,80,81,125,130],upload:114,usag:[34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,
 54,65,66,67,68,69,70,71,72,73,74,75,76,77],usb2:2,use:[10,57,80,87,127],user:[21,96],using:[55,133,136],val:53,valid:94,valu:[94,95],version:[54,57,58,59,80,81,82,127,128],via:[99,141],violat:94,virtualbox:2,visual:12,wait:[110,111],want:[10,97],watch:[97,126],water:124,welcom:9,what:[10,97,126,127],wheel:126,where:128,why:[87,127],window:[2,4,8,11,59,60,82,83],work:12,workspac:12,world:[97,112,115,116,117,118,119],would:10,wrapper:2,write:[30,33,63,107,119,140],yml:[88,128],you:[2,97,100,126],your:[2,7,9,11,12,57,80,97,98,112,115,116,117,118,119,127,134,137,140,141],zero:112}})
\ No newline at end of file
diff --git a/develop/tutorials/STM32F303.html b/develop/tutorials/STM32F303.html
new file mode 100644
index 0000000000..26e3651e37
--- /dev/null
+++ b/develop/tutorials/STM32F303.html
@@ -0,0 +1,503 @@
+
+
+<!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">
+
+    
+
+    
+    <title>Blinky, your ?Hello World!?, on STM32F303 Discovery &mdash; Apache Mynewt 1.3.0 documentation</title>
+    
+
+    
+    
+      <link rel="shortcut icon" href="../_static/mynewt-logo-only-newt32x32.png"/>
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+
+    
+      <link rel="stylesheet" href="../_static/css/sphinx_theme.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/v2.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/restructuredtext.css" type="text/css" />
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/overrides.css" type="text/css" />
+          <link rel="index" title="Index"
+                href="../genindex.html"/>
+          <link rel="search" title="Search" href="../search.html"/>
+      <link rel="top" title="Apache Mynewt 1.3.0 documentation" href="../index.html"/> 
+
+    
+    <script src="../_static/js/modernizr.min.js"></script>
+
+    
+    <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="not-front page-documentation" role="document" >
+    <div id="wrapper">
+      <div class="container">
+    <div id="banner" class="row v2-main-banner">
+        <a class="logo-cell" href="/">
+            <img class="logo" src="../_static/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.3.0</a> released (December 13, 2017)
+            </div>
+        </div>
+    </div>
+</div>
+      
+<header>
+    <nav id="navbar" class="navbar navbar-inverse" 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>
+                        <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
+                    </li>
+                    <li class="important">
+                        <a href="/get_started/quick_start.html">Quick Start</a>
+                    </li>
+                    <li>
+                        <a href="/about/">About</a>
+                    </li>
+                    <li>
+                        <a href="/talks/">Talks</a>
+                    </li>
+                    <li class="active">
+                        <a href="/documentation/">Documentation</a>
+                    </li>
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    <li>
+                        <a href="/community/">Community</a>
+                    </li>
+                    <li>
+                        <a href="/events/">Events</a>
+                    </li>
+                </ul>
+
+                <!-- Search, Navigation and Repo links -->
+                <ul class="nav navbar-nav navbar-right">
+                    
+                </ul>
+            </div>
+        </div>
+    </nav>
+</header>
+      <!-- STARTS MAIN CONTENT -->
+      <div id="main-content">
+        
+
+
+
+
+
+<div id="breadcrumb">
+  <div class="container">
+    <a href="/documentation/">Docs</a> /
+    
+    Blinky, your ?Hello World!?, on STM32F303 Discovery
+    
+  <div class="sourcelink">
+    <a href="https://github.com/apache/mynewt-documentation/edit/master/docs/tutorials/STM32F303.rst" class="icon icon-github"
+           rel="nofollow"> Edit on GitHub</a>
+</div>
+  </div>
+</div>
+        <!-- STARTS CONTAINER -->
+        <div class="container">
+          <!-- STARTS .content -->
+          <div id="content" class="row">
+            
+            <!-- STARTS .container-sidebar -->
+<div class="container-sidebar col-xs-12 col-sm-3">
+  <div id="docSidebar" class="sticky-container">
+    <div role="search" class="sphinx-search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+    
+<!-- Note: only works when deployed -->
+<select class="form-control" onchange="if (this.value) window.location.href=this.value">
+    <option
+      value="/develop"
+      selected
+      >
+      Version: develop (latest - mynewt-documentation)
+    </option>
+    <option
+      value="/latest/os/introduction"
+      >
+      Version: master (latest - mynewt-site)
+    </option>
+    <option
+      value="/v1_2_0/os/introduction"
+      >
+      Version: 1.2.0
+    </option>
+    <option
+      value="/v1_1_0/os/introduction">
+      Version: 1.1.0
+    </option>
+    <option
+      value="/v1_0_0/os/introduction">
+      Version: 1.0.0
+    </option>
+    <option
+      value="/v0_9_0/os/introduction">
+      Version: 0_9_0
+    </option>
+</select>
+    <div class="region region-sidebar">
+      <div class="docs-menu">
+      
+        
+        
+            <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../get_started/index.html">Setup &amp; Get Started</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../concepts.html">Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="tutorials.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../os/os_user_guide.html">OS User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../network/ble/ble_intro.html">BLE User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newt/index.html">Newt Tool Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newtmgr/index.html">Newt Manager Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../misc/index.html">Appendix</a></li>
+</ul>
+
+        
+      
+      </div>
+    </div>
+  </div>
+  <!-- ENDS STICKY CONTAINER -->
+</div>
+<!-- ENDS .container-sidebar -->
+
+            <div class="col-xs-12 col-sm-9">
+              <div class="alert alert-info" role="alert">
+  <p>
+    This is the development version of Apache Mynewt documentation. As such it may not be as complete as the latest
+    stable version of the documentation found <a href="/latest/os/introduction/">here</a>.
+  </p>
+  <p>
+    To improve this documentation please visit <a href="https://github.com/apache/mynewt-documentation">https://github.com/apache/mynewt-documentation</a>.
+  </p>
+</div>
+              
+              <div class="">
+                <div class="rst-content">
+                  <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+                   <div itemprop="articleBody">
+                    
+  <div class="section" id="blinky-your-hello-world-on-stm32f303-discovery">
+<h1>Blinky, your ?Hello World!?, on STM32F303 Discovery<a class="headerlink" href="#blinky-your-hello-world-on-stm32f303-discovery" title="Permalink to this headline">?</a></h1>
+<div class="section" id="objective">
+<h2>Objective<a class="headerlink" href="#objective" title="Permalink to this headline">?</a></h2>
+<p>Learn how to use packages from a default application repository of
+Mynewt to build your first <em>Hello World</em> application (Blinky) on a
+target board. Once built using the <em>newt</em> tool, this application will
+blink the LED lights on the target board.</p>
+<p>Create a project with a simple app that blinks an LED on the stmf303
+discovery board. In the process import some external libraries into your
+project. Download the application to the target and watch it blink!</p>
+</div>
+<div class="section" id="what-you-need">
+<h2>What you need<a class="headerlink" href="#what-you-need" title="Permalink to this headline">?</a></h2>
+<ul class="simple">
+<li>Discovery kit with STM32F303VC MCU</li>
+<li>Laptop running Mac OSX.</li>
+<li>It is assumed you have already installed newt tool.</li>
+<li>It is assumed you already installed native tools as described
+<a class="reference external" href="../get_started/native_tools.html">here</a></li>
+</ul>
+<p>Also, we assume that you?re familiar with UNIX shells. Let?s gets
+started!</p>
+</div>
+<div class="section" id="create-a-project">
+<h2>Create a project<a class="headerlink" href="#create-a-project" title="Permalink to this headline">?</a></h2>
+<p>Create a new project to hold your work. For a deeper understanding, you
+can read about project creation in <a class="reference external" href="../get_started/project_create.html">Get Started ? Creating Your First
+Project</a> or just follow the
+commands below.</p>
+<p>If you?ve already created a project from another tutorial, you can
+re-use that project.</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ mkdir ~/dev
+$ cd ~/dev
+$ newt new myproj
+Downloading project skeleton from apache/incubator-mynewt-blinky...
+Installing skeleton in myproj...
+Project myproj successfully created.
+
+$ cd myproj
+</pre></div>
+</div>
+<p><strong>Note:</strong> Don?t forget to change into the <code class="docutils literal notranslate"><span class="pre">myproj</span></code> directory.</p>
+</div>
+<div class="section" id="import-external-stm32f3-library-support">
+<h2>Import External STM32F3 Library support<a class="headerlink" href="#import-external-stm32f3-library-support" title="Permalink to this headline">?</a></h2>
+<p>The STM32F303 support for Mynewt lives in an external repository. It?s
+necessary to add another repository to the project. To do this, edit the
+file <code class="docutils literal notranslate"><span class="pre">project.yml</span></code> in the root directory of your project <code class="docutils literal notranslate"><span class="pre">myproj</span></code></p>
+<p>This requires two changes to this file.</p>
+<ol class="arabic simple">
+<li>You must define the properties of the external repository that you
+want to add</li>
+<li>You must include the repository in your project.</li>
+</ol>
+<p>Edit the file <code class="docutils literal notranslate"><span class="pre">project.yml</span></code> with your favorite editor and add the
+following repository details in the file (after the core repository).
+This gives newt the information to contact the repository and extract
+its contents. In this case, the repository is on github in the
+<code class="docutils literal notranslate"><span class="pre">runtimeco</span></code> collection. Its name is <code class="docutils literal notranslate"><span class="pre">mynewt-stm32f3</span></code> and we will
+accept any version up to the latest. You can look at the contents
+<a class="reference external" href="https://github.com/runtimeco/mynewt_stm32f3">here</a>.</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>repository.mynewt_stm32f3:
+    type: github
+    vers: 0-latest
+    user: runtimeco
+    repo: mynewt_stm32f3
+</pre></div>
+</div>
+<p>In the same file, add the following highlighted line to the
+<code class="docutils literal notranslate"><span class="pre">project.repositories</span></code> variable. This tells newt to download the
+repository contents into your project.</p>
+</div>
+<div class="section" id="install-dependencies">
+<h2>Install dependencies<a class="headerlink" href="#install-dependencies" title="Permalink to this headline">?</a></h2>
+<p>Now you can install this into the project using:</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ newt install -v
+Downloading repository description for apache-mynewt-core... success!
+...
+apache-mynewt-core successfully installed version 0.7.9-none
+...
+Downloading repository description for mynewt_stm32f3... success!
+Downloading repository mynewt_stm32f3
+...
+Resolving deltas: 100% (65/65), done.
+Checking connectivity... done.
+mynewt_stm32f3 successfully installed version 0.0.0-none
+</pre></div>
+</div>
+</div>
+<div class="section" id="create-targets">
+<h2>Create targets<a class="headerlink" href="#create-targets" title="Permalink to this headline">?</a></h2>
+<p>Create two targets to build using the stmf3 board support package and
+the app blinky example from mynewt. The output of these commands are not
+shown here for brevity.</p>
+<p>The first target is the application image itself. The second target is
+the bootloader which allows you to upgrade your mynewt applications.</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ newt target create stmf3_blinky
+$ newt target set stmf3_blinky build_profile=optimized
+$ newt target set stmf3_blinky bsp=@mynewt_stm32f3/hw/bsp/stm32f3discovery
+$ newt target set stmf3_blinky app=apps/blinky
+
+$ newt target create stmf3_boot
+$ newt target set stmf3_boot app=@apache-mynewt-core/apps/boot
+$ newt target set stmf3_boot bsp=@mynewt_stm32f3/hw/bsp/stm32f3discovery
+$ newt target set stmf3_boot build_profile=optimized
+
+$ newt target show
+
+targets/stmf3_blinky
+    app=apps/blinky
+    bsp=@mynewt_stm32f3/hw/bsp/stm32f3discovery
+    build_profile=optimized
+targets/stmf3_boot
+    app=apps/boot
+    bsp=@mynewt_stm32f3/hw/bsp/stm32f3discovery
+    build_profile=optimized
+</pre></div>
+</div>
+</div>
+<div class="section" id="build-the-target-executables">
+<h2>Build the target executables<a class="headerlink" href="#build-the-target-executables" title="Permalink to this headline">?</a></h2>
+<p>To build the images, use the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">build</span></code> command below.</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ newt build stmf3_blinky
+   ...
+Archiving stm32f3discovery.a
+Linking blinky.elf
+App successfully built: ~/dev/myproj/bin/stmf3_blinky/apps/blinky/blinky.elf
+
+$ newt build stmf3_boot
+Compiling log_shell.c
+Archiving log.a
+Linking boot.elf
+App successfully built: ~/dev/myproj/bin/stmf3_boot/apps/boot/boot.elf
+</pre></div>
+</div>
+</div>
+<div class="section" id="sign-and-create-the-blinky-application-image">
+<h2>Sign and create the blinky application image<a class="headerlink" href="#sign-and-create-the-blinky-application-image" title="Permalink to this headline">?</a></h2>
+<p>You must sign and version your application image to download it using
+newt. Use the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">create-image</span></code> command to perform this action. Here
+we assign this image an arbitrary version <code class="docutils literal notranslate"><span class="pre">1.2.3</span></code>.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt create-image stmf3_blinky <span class="m">1</span>.2.3
+<span class="go">App image successfully generated: ~/dev/myproj/bin/stmf3_blinky/apps/blinky/blinky.img</span>
+<span class="go">Build manifest:~/dev/myproj/bin/stmf3_blinky/apps/blinky/manifest.json</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="configure-the-hardware">
+<h2>Configure the hardware<a class="headerlink" href="#configure-the-hardware" title="Permalink to this headline">?</a></h2>
+<p>The STM32F3DISCOVERY board includes an ST-LINK/V2 embedded debug tool
+interface that will be used to program/debug the board. To program the
+MCU on the board, simply plug in the two jumpers on CN4, as shown in the
+picture in red. If you want to learn more about the board you will find
+the User Manual at
+<a class="reference external" href="http://www.st.com/st-web-ui/static/active/jp/resource/technical/document/user_manual/DM00063382.pdf">http://www.st.com/st-web-ui/static/active/jp/resource/technical/document/user_manual/DM00063382.pdf</a></p>
+<ul class="simple">
+<li><img alt="STMdiscovery" src="../_images/STM32f3discovery_connector.png" /></li>
+</ul>
+</div>
+<div class="section" id="download-the-images">
+<h2>Download the Images<a class="headerlink" href="#download-the-images" title="Permalink to this headline">?</a></h2>
+<p>Use the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">load</span></code> command to download the images to the target
+board.</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ newt -v load stmf3_boot
+$ newt -v load stmf3_blinky
+</pre></div>
+</div>
+</div>
+<div class="section" id="watch-the-led-blink">
+<h2>Watch the LED blink<a class="headerlink" href="#watch-the-led-blink" title="Permalink to this headline">?</a></h2>
+<p>Congratulations! You have built, downloaded, and run your first
+application using mynewt for the stm32f3 discovery board. One of the
+LEDs on the LED wheel should be blinking at 1 Hz.</p>
+</div>
+<div class="section" id="want-more">
+<h2>Want more?<a class="headerlink" href="#want-more" title="Permalink to this headline">?</a></h2>
+<p>Want to make your board do something a little more exciting with the
+LEDs? Then try making the modifications to the Blinky app to make it a
+<a class="reference external" href="pin-wheel-mods.html">pin-wheel app</a> and you can light all the LEDs in
+a pin-wheel fashion.</p>
+<p>We have more fun tutorials for you to get your hands dirty. Be bold and
+try other Blinky-like <a class="reference external" href="../tutorials/nRF52.html">tutorials</a> or try
+enabling additional functionality such as <a class="reference external" href="project-slinky.html">remote
+comms</a> on the current board.</p>
+<p>If you see anything missing or want to send us feedback, please do so by
+signing up for appropriate mailing lists on our <a class="reference external" href="../../community.html">Community
+Page</a>.</p>
+<p>Keep on hacking and blinking!</p>
+</div>
+</div>
+
+
+                   </div>
+                  </div>
+                  
+                </div>
+              </div>
+            </div>
+            <!-- ENDS CONTENT SECTION -->
+          </div>
+          <!-- ENDS .content -->
+        </div>
+      </div>
+      <footer>
+  <div class="container">
+    <div class="row">
+      <div class="col-xs-12">
+          
+              <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
+          
+      </div>
+      <div class="col-xs-12">
+          <div class="logos">
+              <img src="../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
+              <small class="footnote">
+                Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
+                registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
+              </small>
+              <a href="https://join.slack.com/mynewt/shared_invite/MTkwMTg1ODM1NTg5LTE0OTYxNzQ4NzQtZTU1YmNhYjhkMg">
+                <img src="../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
+              </a>
+          </div>
+      </div>
+    </div>
+  </div>
+</footer>
+    </div>
+    <!-- ENDS #wrapper -->
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'1.3.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true,
+            SOURCELINK_SUFFIX: '.txt'
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="../_static/js/bootstrap-3.0.3.min.js"></script>
+      <script type="text/javascript" src="../_static/js/affix.js"></script>
+      <script type="text/javascript" src="../_static/js/main.js"></script>
+
+   
+
+  </body>
+</html>
\ No newline at end of file
diff --git a/develop/tutorials/add_newtmgr.html b/develop/tutorials/add_newtmgr.html
new file mode 100644
index 0000000000..0c8c8fae31
--- /dev/null
+++ b/develop/tutorials/add_newtmgr.html
@@ -0,0 +1,594 @@
+
+
+<!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">
+
+    
+
+    
+    <title>Enabling Newt Manager in Your Application &mdash; Apache Mynewt 1.3.0 documentation</title>
+    
+
+    
+    
+      <link rel="shortcut icon" href="../_static/mynewt-logo-only-newt32x32.png"/>
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+
+    
+      <link rel="stylesheet" href="../_static/css/sphinx_theme.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/v2.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/restructuredtext.css" type="text/css" />
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/overrides.css" type="text/css" />
+          <link rel="index" title="Index"
+                href="../genindex.html"/>
+          <link rel="search" title="Search" href="../search.html"/>
+      <link rel="top" title="Apache Mynewt 1.3.0 documentation" href="../index.html"/> 
+
+    
+    <script src="../_static/js/modernizr.min.js"></script>
+
+    
+    <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="not-front page-documentation" role="document" >
+    <div id="wrapper">
+      <div class="container">
+    <div id="banner" class="row v2-main-banner">
+        <a class="logo-cell" href="/">
+            <img class="logo" src="../_static/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.3.0</a> released (December 13, 2017)
+            </div>
+        </div>
+    </div>
+</div>
+      
+<header>
+    <nav id="navbar" class="navbar navbar-inverse" 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>
+                        <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
+                    </li>
+                    <li class="important">
+                        <a href="/get_started/quick_start.html">Quick Start</a>
+                    </li>
+                    <li>
+                        <a href="/about/">About</a>
+                    </li>
+                    <li>
+                        <a href="/talks/">Talks</a>
+                    </li>
+                    <li class="active">
+                        <a href="/documentation/">Documentation</a>
+                    </li>
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    <li>
+                        <a href="/community/">Community</a>
+                    </li>
+                    <li>
+                        <a href="/events/">Events</a>
+                    </li>
+                </ul>
+
+                <!-- Search, Navigation and Repo links -->
+                <ul class="nav navbar-nav navbar-right">
+                    
+                </ul>
+            </div>
+        </div>
+    </nav>
+</header>
+      <!-- STARTS MAIN CONTENT -->
+      <div id="main-content">
+        
+
+
+
+
+
+<div id="breadcrumb">
+  <div class="container">
+    <a href="/documentation/">Docs</a> /
+    
+    Enabling Newt Manager in Your Application
+    
+  <div class="sourcelink">
+    <a href="https://github.com/apache/mynewt-documentation/edit/master/docs/tutorials/add_newtmgr.rst" class="icon icon-github"
+           rel="nofollow"> Edit on GitHub</a>
+</div>
+  </div>
+</div>
+        <!-- STARTS CONTAINER -->
+        <div class="container">
+          <!-- STARTS .content -->
+          <div id="content" class="row">
+            
+            <!-- STARTS .container-sidebar -->
+<div class="container-sidebar col-xs-12 col-sm-3">
+  <div id="docSidebar" class="sticky-container">
+    <div role="search" class="sphinx-search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+    
+<!-- Note: only works when deployed -->
+<select class="form-control" onchange="if (this.value) window.location.href=this.value">
+    <option
+      value="/develop"
+      selected
+      >
+      Version: develop (latest - mynewt-documentation)
+    </option>
+    <option
+      value="/latest/os/introduction"
+      >
+      Version: master (latest - mynewt-site)
+    </option>
+    <option
+      value="/v1_2_0/os/introduction"
+      >
+      Version: 1.2.0
+    </option>
+    <option
+      value="/v1_1_0/os/introduction">
+      Version: 1.1.0
+    </option>
+    <option
+      value="/v1_0_0/os/introduction">
+      Version: 1.0.0
+    </option>
+    <option
+      value="/v0_9_0/os/introduction">
+      Version: 0_9_0
+    </option>
+</select>
+    <div class="region region-sidebar">
+      <div class="docs-menu">
+      
+        
+        
+            <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../get_started/index.html">Setup &amp; Get Started</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../concepts.html">Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="tutorials.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../os/os_user_guide.html">OS User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../network/ble/ble_intro.html">BLE User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newt/index.html">Newt Tool Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newtmgr/index.html">Newt Manager Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../misc/index.html">Appendix</a></li>
+</ul>
+
+        
+      
+      </div>
+    </div>
+  </div>
+  <!-- ENDS STICKY CONTAINER -->
+</div>
+<!-- ENDS .container-sidebar -->
+
+            <div class="col-xs-12 col-sm-9">
+              <div class="alert alert-info" role="alert">
+  <p>
+    This is the development version of Apache Mynewt documentation. As such it may not be as complete as the latest
+    stable version of the documentation found <a href="/latest/os/introduction/">here</a>.
+  </p>
+  <p>
+    To improve this documentation please visit <a href="https://github.com/apache/mynewt-documentation">https://github.com/apache/mynewt-documentation</a>.
+  </p>
+</div>
+              
+              <div class="">
+                <div class="rst-content">
+                  <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+                   <div itemprop="articleBody">
+                    
+  <div class="section" id="enabling-newt-manager-in-your-application">
+<h1>Enabling Newt Manager in Your Application<a class="headerlink" href="#enabling-newt-manager-in-your-application" title="Permalink to this headline">?</a></h1>
+<p>In order for your application to communicate with the newtmgr tool and
+process Newt Manager commands, you must enable Newt Manager device
+management and the support to process Newt Manager commands in your
+application. This tutorial explains how to add the support to your
+application.</p>
+<p>This tutorial assumes that you have read the <a class="reference external" href="/os/modules/devmgmt/newtmgr/">Device Management with
+Newt Manager</a> guide and are familiar
+with the <code class="docutils literal notranslate"><span class="pre">newtmgr</span></code> and <code class="docutils literal notranslate"><span class="pre">oicmgr</span></code> frameworks and all the options that
+are available to customize your application.</p>
+<p>This tutorial shows you how to configure your application to:</p>
+<ul class="simple">
+<li>Use the newtmgr framework.</li>
+<li>Use serial transport to communicate with the newtmgr tool.</li>
+<li>Support all Newt Manager commands.</li>
+</ul>
+<p>See <a class="reference external" href="#other-configuration-options">Other Configuration Options</a> on
+how to customize your application.</p>
+<div class="section" id="prerequisites">
+<h2>Prerequisites<a class="headerlink" href="#prerequisites" title="Permalink to this headline">?</a></h2>
+<p>Ensure that you have met the following prerequisites before continuing
+with this tutorial:</p>
+<ul class="simple">
+<li>Have Internet connectivity to fetch remote Mynewt components.</li>
+<li>Have a cable to establish a serial USB connection between the board
+and the laptop.</li>
+<li>Install the newt tool and toolchains (See <a class="reference external" href="/os/get_started/get_started.html">Basic
+Setup</a>).</li>
+<li>Install the <a class="reference external" href="../../newtmgr/install_mac.html">newtmgr tool</a>.</li>
+</ul>
+</div>
+<div class="section" id="use-an-existing-project">
+<h2>Use an Existing Project<a class="headerlink" href="#use-an-existing-project" title="Permalink to this headline">?</a></h2>
+<p>We assume that you have worked through at least some of the other
+tutorials and have an existing project. In this example, we modify the
+<code class="docutils literal notranslate"><span class="pre">bletiny</span></code> app to enable Newt Manager support. We call our target
+<code class="docutils literal notranslate"><span class="pre">myble</span></code>. You can create the target using any name you choose.</p>
+</div>
+<div class="section" id="modify-package-dependencies-and-configurations">
+<h2>Modify Package Dependencies and Configurations<a class="headerlink" href="#modify-package-dependencies-and-configurations" title="Permalink to this headline">?</a></h2>
+<p>Add the following packages to the <code class="docutils literal notranslate"><span class="pre">pkg.deps</span></code> parameter in your target
+or application <code class="docutils literal notranslate"><span class="pre">pkg.yml</span></code> file:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">pkg.deps:</span>
+<span class="go">    - mgmt/newtmgr</span>
+<span class="go">    - mgmt/newtmgr/transport/nmgr_shell</span>
+<span class="go">    - mgmt/imgmgr</span>
+<span class="go">    - sys/log/full</span>
+<span class="go">    - sys/stats/full</span>
+<span class="go">    - sys/config</span>
+<span class="go">    - test/crash_test</span>
+<span class="go">    - test/runtest</span>
+</pre></div>
+</div>
+<p>Each package provides the following Newt Manager functionality:</p>
+<ul class="simple">
+<li><code class="docutils literal notranslate"><span class="pre">mgmt/newtmgr</span></code>: Supports the newtmgr framework and the Newt Manager
+<code class="docutils literal notranslate"><span class="pre">echo</span></code>, <code class="docutils literal notranslate"><span class="pre">taskstat</span></code> <code class="docutils literal notranslate"><span class="pre">mpstat</span></code>, <code class="docutils literal notranslate"><span class="pre">datetime</span></code>, and <code class="docutils literal notranslate"><span class="pre">reset</span></code>
+commands.</li>
+<li><code class="docutils literal notranslate"><span class="pre">mgmt/newtmgr/transport/nmgr_shell</span></code>: Supports serial transport.</li>
+<li><code class="docutils literal notranslate"><span class="pre">mgmt/imgmgr</span></code>: Supports the <code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">image</span></code> command</li>
+<li><code class="docutils literal notranslate"><span class="pre">sys/log/full</span></code> : Supports the <code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">log</span></code> command.</li>
+<li><code class="docutils literal notranslate"><span class="pre">sys/stats/full</span></code>: Supports the <code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">stat</span></code> command.</li>
+<li><code class="docutils literal notranslate"><span class="pre">sys/config</span></code>: Supports the <code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">config</span></code> command.</li>
+<li><code class="docutils literal notranslate"><span class="pre">test/crash_test</span></code>: Supports the <code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">crash</span></code> command.</li>
+<li><code class="docutils literal notranslate"><span class="pre">test/runtest</span></code>: Supports the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">run</span></code> command.</li>
+</ul>
+<p>Add the following configuration setting values to the <code class="docutils literal notranslate"><span class="pre">syscfg.vals</span></code>
+parameter in the target or application <code class="docutils literal notranslate"><span class="pre">syscfg.yml</span></code> file:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">syscfg.vals:</span>
+<span class="go">    LOG_NEWTMGR: 1</span>
+<span class="go">    STATS_NEWTMGR: 1</span>
+<span class="go">    CONFIG_NEWTMGR: 1</span>
+<span class="go">    CRASH_TEST_NEWTMGR: 1</span>
+<span class="go">    RUNTEST_NEWTMGR: 1</span>
+<span class="go">    SHELL_TASK: 1</span>
+<span class="go">    SHELL_NEWTMGR: 1</span>
+</pre></div>
+</div>
+<p>The first five configuration settings enable support for the Newt
+Manager <code class="docutils literal notranslate"><span class="pre">log</span></code>, <code class="docutils literal notranslate"><span class="pre">stat</span></code>, <code class="docutils literal notranslate"><span class="pre">config</span></code>, <code class="docutils literal notranslate"><span class="pre">crash</span></code>, and <code class="docutils literal notranslate"><span class="pre">run</span></code> commands.
+The <code class="docutils literal notranslate"><span class="pre">SHELL_TASK</span></code> setting enables the shell for serial transport. The
+<code class="docutils literal notranslate"><span class="pre">SHELL_NEWTMGR</span></code> setting enables newtmgr support in the shell.</p>
+<p>Note that you may need to override additional configuration settings
+that are specific to each package to customize the package
+functionality.</p>
+</div>
+<div class="section" id="modify-the-source">
+<h2>Modify the Source<a class="headerlink" href="#modify-the-source" title="Permalink to this headline">?</a></h2>
+<p>By default, the <code class="docutils literal notranslate"><span class="pre">mgmt</span></code> package uses the Mynewt default event queue to
+receive request events from the newtmgr tool. These events are processed
+in the context of the application main task.</p>
+<p>You can specify a different event queue for the package to use. If you
+choose to use a dedicated event queue, you must create a task to process
+events from this event queue. The <code class="docutils literal notranslate"><span class="pre">mgmt</span></code> package executes and handles
+newtmgr request events in the context of this task. The <code class="docutils literal notranslate"><span class="pre">mgmt</span></code> package
+exports the <code class="docutils literal notranslate"><span class="pre">mgmt_evq_set()</span></code> function that allows you to specify an
+event queue.</p>
+<p>This example uses the Mynewt default event queue and you do not need to
+modify your application source.</p>
+<p>If you choose to use a different event queue, see <a class="reference external" href="event_queue.html">Events and Event
+Queues</a> for details on how to initialize an event
+queue and create a task to process the events. You will also need to
+modify your <code class="docutils literal notranslate"><span class="pre">main.c</span></code> to add the call to the <code class="docutils literal notranslate"><span class="pre">mgmt_evq_set()</span></code>
+function as follows:</p>
+<p>Add the <code class="docutils literal notranslate"><span class="pre">mgmt/mgmt.h</span></code> header file:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">#</span>include &lt;mgmt/mgmt.h&gt;
+</pre></div>
+</div>
+<p>Add the call to specify the event queue. In the <code class="docutils literal notranslate"><span class="pre">main()</span></code> function,
+scroll down to the <code class="docutils literal notranslate"><span class="pre">while</span> <span class="pre">(1)</span></code> loop and add the following statement
+above the loop:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">mgmt_evq_set(&amp;my_eventq)</span>
+</pre></div>
+</div>
+<p>where <code class="docutils literal notranslate"><span class="pre">my_eventq</span></code> is an event queue that you have initialized.</p>
+</div>
+<div class="section" id="build-the-targets">
+<h2>Build the Targets<a class="headerlink" href="#build-the-targets" title="Permalink to this headline">?</a></h2>
+<p>Build the two targets as follows:</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ newt build nrf52_boot
+&lt;snip&gt;
+App successfully built: ./bin/nrf52_boot/apps/boot/boot.elf
+$ newt build myble
+Compiling hci_common.c
+Compiling util.c
+Archiving nimble.a
+Compiling os.c
+&lt;snip&gt;
+</pre></div>
+</div>
+</div>
+<div class="section" id="create-the-application-image">
+<h2>Create the Application Image<a class="headerlink" href="#create-the-application-image" title="Permalink to this headline">?</a></h2>
+<p>Generate an application image for the <code class="docutils literal notranslate"><span class="pre">myble</span></code> target. You can use any
+version number you choose.</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ newt create-image myble 1.0.0
+App image successfully generated: ./bin/makerbeacon/apps/bletiny/bletiny.img
+Build manifest: ./bin/makerbeacon/apps/bletiny/manifest.json
+</pre></div>
+</div>
+</div>
+<div class="section" id="load-the-image">
+<h2>Load the Image<a class="headerlink" href="#load-the-image" title="Permalink to this headline">?</a></h2>
+<p>Ensure the USB connector is in place and the power LED on the board is
+lit. Turn the power switch on your board off, then back on to reset the
+board after loading the image.</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ newt load nrf52_boot
+$ newt load myble
+</pre></div>
+</div>
+</div>
+<div class="section" id="set-up-a-connection-profile">
+<h2>Set Up a Connection Profile<a class="headerlink" href="#set-up-a-connection-profile" title="Permalink to this headline">?</a></h2>
+<p>The newtmgr tool requires a connection profile in order to connect to
+your board. If you have not done so, follow the
+<a class="reference external" href="../../newtmgr/command_list/newtmgr_conn.html">instructions</a> for
+setting up your connection profile.</p>
+</div>
+<div class="section" id="communicate-with-your-application">
+<h2>Communicate with Your Application<a class="headerlink" href="#communicate-with-your-application" title="Permalink to this headline">?</a></h2>
+<p>Once you have a connection profile set up, you can connect to your
+device with <code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">-c</span> <span class="pre">myconn</span> <span class="pre">&lt;command&gt;</span></code> to run commands in your
+application.</p>
+<p>Issue the <code class="docutils literal notranslate"><span class="pre">echo</span></code> command to ensure that your application is
+communicating with the newtmgr tool:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">#</span> newtmgr -c myconn <span class="nb">echo</span> hello
+<span class="go">hello</span>
+</pre></div>
+</div>
+<p>Test your application to ensure that it can process a Newt Manager
+command that is supported by a different package. Issue the <code class="docutils literal notranslate"><span class="pre">stat</span></code>
+command to see the BLE stats.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">stat group: ble_att</span>
+<span class="go">         0 error_rsp_rx</span>
+<span class="go">         0 error_rsp_tx</span>
+<span class="go">         0 exec_write_req_rx</span>
+<span class="go">         0 exec_write_req_tx</span>
+<span class="go">         0 exec_write_rsp_rx</span>
+<span class="go">         0 exec_write_rsp_tx</span>
+<span class="go">         0 find_info_req_rx</span>
+<span class="go">         0 find_info_req_tx</span>
+<span class="go">         0 find_info_rsp_rx</span>
+<span class="go">         0 find_info_rsp_tx</span>
+<span class="go">         0 find_type_value_req_rx</span>
+
+<span class="go">               ...</span>
+
+<span class="go">         0 read_type_req_tx</span>
+<span class="go">         0 read_type_rsp_rx</span>
+<span class="go">         0 read_type_rsp_tx</span>
+<span class="go">         0 write_cmd_rx</span>
+<span class="go">         0 write_cmd_tx</span>
+<span class="go">         0 write_req_rx</span>
+<span class="go">         0 write_req_tx</span>
+<span class="go">         0 write_rsp_rx</span>
+<span class="go">         0 write_rsp_tx</span>
+</pre></div>
+</div>
+<p>Your application is now able to communicate with the newtmgr tool.</p>
+</div>
+<div class="section" id="other-configuration-options">
+<h2>Other Configuration Options<a class="headerlink" href="#other-configuration-options" title="Permalink to this headline">?</a></h2>
+<p>This section explains how to customize your application to use other
+Newt Manager protocol options.</p>
+<div class="section" id="newtmgr-framework-transport-protocol-options">
+<h3>Newtmgr Framework Transport Protocol Options<a class="headerlink" href="#newtmgr-framework-transport-protocol-options" title="Permalink to this headline">?</a></h3>
+<p>The newtmgr framework currently supports BLE and serial transport
+protocols. To configure the transport protocols that are supported,
+modify the <code class="docutils literal notranslate"><span class="pre">pkg.yml</span></code> and <code class="docutils literal notranslate"><span class="pre">syscfg.yml</span></code> files as follows:</p>
+<ul class="simple">
+<li>Add the <code class="docutils literal notranslate"><span class="pre">mgmt/newtmgr/transport/ble</span></code> package to the <code class="docutils literal notranslate"><span class="pre">pkg.deps</span></code>
+parameter to enable BLE transport.</li>
+<li>Add the <code class="docutils literal notranslate"><span class="pre">mgmt/newtmgr/transport/nmgr_shell</span></code> package to the
+<code class="docutils literal notranslate"><span class="pre">pkg.deps</span></code> parameter, and add <code class="docutils literal notranslate"><span class="pre">SHELL_TASK:</span> <span class="pre">1</span></code> and
+<code class="docutils literal notranslate"><span class="pre">SHELL_NEWTMGR</span></code> to the <code class="docutils literal notranslate"><span class="pre">syscfg.vals</span></code> parameter to enable serial
+transport when your application also uses the
+<a class="reference external" href="/os/modules/shell/shell.html">Shell</a>.</li>
+<li>Add the <code class="docutils literal notranslate"><span class="pre">mgmt/newtmgr/transport/nmgr_uart</span></code> package to the
+<code class="docutils literal notranslate"><span class="pre">pkg.deps</span></code> parameter to enable serial transport over a UART port.
+You can use this package instead of the <code class="docutils literal notranslate"><span class="pre">nmgr_shell</span></code> package when
+your application does not use the
+<a class="reference external" href="/os/modules/shell/shell.html">Shell</a> or you want to use a dedicated
+UART port to communicate with newtmgr. You can change the
+<code class="docutils literal notranslate"><span class="pre">NMGR_UART</span></code> and <code class="docutils literal notranslate"><span class="pre">NMGR_URART_SPEED</span></code> sysconfig values to specify a
+different port.</li>
+</ul>
+</div>
+<div class="section" id="oicmgr-framework-options">
+<h3>Oicmgr Framework Options<a class="headerlink" href="#oicmgr-framework-options" title="Permalink to this headline">?</a></h3>
+<p>To use the oicmgr framework instead of the newtmgr framework, modify the
+<code class="docutils literal notranslate"><span class="pre">pkg.yml</span></code> and <code class="docutils literal notranslate"><span class="pre">syscfg.yml</span></code> files as follows:</p>
+<ul class="simple">
+<li>Add the <code class="docutils literal notranslate"><span class="pre">mgmt/oicmgr</span></code> package (instead of the <code class="docutils literal notranslate"><span class="pre">mgmt/newtmgr</span></code> and
+<code class="docutils literal notranslate"><span class="pre">mgmt/newtmgr/transport</span></code> packages as described previously) to the
+<code class="docutils literal notranslate"><span class="pre">pkg.deps</span></code> parameter.</li>
+<li>Add <code class="docutils literal notranslate"><span class="pre">OC_SERVER:</span> <span class="pre">1</span></code> to the <code class="docutils literal notranslate"><span class="pre">syscfg.vals</span></code> parameter.</li>
+</ul>
+<p>Oicmgr supports the IP, serial, and BLE transport protocols. To
+configure the transport protocols that are supported, set the
+configuration setting values in the <code class="docutils literal notranslate"><span class="pre">syscfg.vals</span></code> parameter as
+follows:</p>
+<ul class="simple">
+<li>Add <code class="docutils literal notranslate"><span class="pre">OC_TRANSPORT_IP:</span> <span class="pre">1</span></code> to enable IP transport.</li>
+<li>Add <code class="docutils literal notranslate"><span class="pre">OC_TRANSPORT_GATT:</span> <span class="pre">1</span></code> to enable BLE transport.</li>
+<li>Add <code class="docutils literal notranslate"><span class="pre">OC_TRANSPORT_SERIAL:</span> <span class="pre">1</span></code>, <code class="docutils literal notranslate"><span class="pre">SHELL_TASK:</span> <span class="pre">1</span></code>,
+<code class="docutils literal notranslate"><span class="pre">SHELL_NEWTMGR:1</span></code> to enable serial transport.</li>
+</ul>
+</div>
+<div class="section" id="customize-the-newt-manager-commands-that-your-application-supports">
+<h3>Customize the Newt Manager Commands that Your Application Supports<a class="headerlink" href="#customize-the-newt-manager-commands-that-your-application-supports" title="Permalink to this headline">?</a></h3>
+<p>We recommend that you only enable support for the Newt Manager commands
+that your application uses to reduce your application code size. To
+configure the commands that are supported, set the configuration setting
+values in the <code class="docutils literal notranslate"><span class="pre">syscfg.vals</span></code> parameter as follows:</p>
+<ul class="simple">
+<li>Add <code class="docutils literal notranslate"><span class="pre">LOG_NEWTMGR:</span> <span class="pre">1</span></code> to enable support for the <code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">log</span></code>
+command.</li>
+<li>Add <code class="docutils literal notranslate"><span class="pre">STATS_NEWTMGR:</span> <span class="pre">1</span></code> to enable support for the <code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">stat</span></code>
+command.</li>
+<li>Add <code class="docutils literal notranslate"><span class="pre">CONFIG_NEWTMGR:</span> <span class="pre">1</span></code> to enable support for the
+<code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">config</span></code> command.</li>
+<li>Add <code class="docutils literal notranslate"><span class="pre">CRASH_TEST_NEWTMGR:</span> <span class="pre">1</span></code> to enable support for the
+<code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">crash</span></code> command.</li>
+<li>Add <code class="docutils literal notranslate"><span class="pre">RUNTEST_NEWTMGR:</span> <span class="pre">1</span></code> to enable support for the
+<code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">crash</span></code> command.</li>
+</ul>
+<p>Notes:</p>
+<ul class="simple">
+<li>When you enable Newt Manager support, using either the newtmgr or
+oicmgr framework, your application automatically supports the Newt
+Manager <code class="docutils literal notranslate"><span class="pre">echo</span></code>, <code class="docutils literal notranslate"><span class="pre">taskstat</span></code>, <code class="docutils literal notranslate"><span class="pre">mpstat</span></code>, <code class="docutils literal notranslate"><span class="pre">datetime</span></code>, and
+<code class="docutils literal notranslate"><span class="pre">reset</span></code> commands. These commands cannot be configured individually.</li>
+<li>The <code class="docutils literal notranslate"><span class="pre">mgmt/imgmgr</span></code> package does not provide a configuration setting
+to enable or disable support for the <code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">image</span></code> command. Do
+not specify the package in the <code class="docutils literal notranslate"><span class="pre">pkg.deps</span></code> parameter if your device
+has limited flash memory and cannot support Over-The-Air (OTA)
+firmware upgrades.</li>
+</ul>
+</div>
+</div>
+</div>
+
+
+                   </div>
+                  </div>
+                  
+                </div>
+              </div>
+            </div>
+            <!-- ENDS CONTENT SECTION -->
+          </div>
+          <!-- ENDS .content -->
+        </div>
+      </div>
+      <footer>
+  <div class="container">
+    <div class="row">
+      <div class="col-xs-12">
+          
+              <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
+          
+      </div>
+      <div class="col-xs-12">
+          <div class="logos">
+              <img src="../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
+              <small class="footnote">
+                Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
+                registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
+              </small>
+              <a href="https://join.slack.com/mynewt/shared_invite/MTkwMTg1ODM1NTg5LTE0OTYxNzQ4NzQtZTU1YmNhYjhkMg">
+                <img src="../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
+              </a>
+          </div>
+      </div>
+    </div>
+  </div>
+</footer>
+    </div>
+    <!-- ENDS #wrapper -->
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'1.3.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true,
+            SOURCELINK_SUFFIX: '.txt'
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="../_static/js/bootstrap-3.0.3.min.js"></script>
+      <script type="text/javascript" src="../_static/js/affix.js"></script>
+      <script type="text/javascript" src="../_static/js/main.js"></script>
+
+   
+
+  </body>
+</html>
\ No newline at end of file
diff --git a/develop/tutorials/air_quality_ble.html b/develop/tutorials/air_quality_ble.html
new file mode 100644
index 0000000000..bddbc2d055
--- /dev/null
+++ b/develop/tutorials/air_quality_ble.html
@@ -0,0 +1,521 @@
+
+
+<!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">
+
+    
+
+    
+    <title>Air quality sensor project via Bluetooth &mdash; Apache Mynewt 1.3.0 documentation</title>
+    
+
+    
+    
+      <link rel="shortcut icon" href="../_static/mynewt-logo-only-newt32x32.png"/>
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+
+    
+      <link rel="stylesheet" href="../_static/css/sphinx_theme.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/v2.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/restructuredtext.css" type="text/css" />
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/overrides.css" type="text/css" />
+          <link rel="index" title="Index"
+                href="../genindex.html"/>
+          <link rel="search" title="Search" href="../search.html"/>
+      <link rel="top" title="Apache Mynewt 1.3.0 documentation" href="../index.html"/> 
+
+    
+    <script src="../_static/js/modernizr.min.js"></script>
+
+    
+    <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="not-front page-documentation" role="document" >
+    <div id="wrapper">
+      <div class="container">
+    <div id="banner" class="row v2-main-banner">
+        <a class="logo-cell" href="/">
+            <img class="logo" src="../_static/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.3.0</a> released (December 13, 2017)
+            </div>
+        </div>
+    </div>
+</div>
+      
+<header>
+    <nav id="navbar" class="navbar navbar-inverse" 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>
+                        <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
+                    </li>
+                    <li class="important">
+                        <a href="/get_started/quick_start.html">Quick Start</a>
+                    </li>
+                    <li>
+                        <a href="/about/">About</a>
+                    </li>
+                    <li>
+                        <a href="/talks/">Talks</a>
+                    </li>
+                    <li class="active">
+                        <a href="/documentation/">Documentation</a>
+                    </li>
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    <li>
+                        <a href="/community/">Community</a>
+                    </li>
+                    <li>
+                        <a href="/events/">Events</a>
+                    </li>
+                </ul>
+
+                <!-- Search, Navigation and Repo links -->
+                <ul class="nav navbar-nav navbar-right">
+                    
+                </ul>
+            </div>
+        </div>
+    </nav>
+</header>
+      <!-- STARTS MAIN CONTENT -->
+      <div id="main-content">
+        
+
+
+
+
+
+<div id="breadcrumb">
+  <div class="container">
+    <a href="/documentation/">Docs</a> /
+    
+    Air quality sensor project via Bluetooth
+    
+  <div class="sourcelink">
+    <a href="https://github.com/apache/mynewt-documentation/edit/master/docs/tutorials/air_quality_ble.rst" class="icon icon-github"
+           rel="nofollow"> Edit on GitHub</a>
+</div>
+  </div>
+</div>
+        <!-- STARTS CONTAINER -->
+        <div class="container">
+          <!-- STARTS .content -->
+          <div id="content" class="row">
+            
+            <!-- STARTS .container-sidebar -->
+<div class="container-sidebar col-xs-12 col-sm-3">
+  <div id="docSidebar" class="sticky-container">
+    <div role="search" class="sphinx-search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+    
+<!-- Note: only works when deployed -->
+<select class="form-control" onchange="if (this.value) window.location.href=this.value">
+    <option
+      value="/develop"
+      selected
+      >
+      Version: develop (latest - mynewt-documentation)
+    </option>
+    <option
+      value="/latest/os/introduction"
+      >
+      Version: master (latest - mynewt-site)
+    </option>
+    <option
+      value="/v1_2_0/os/introduction"
+      >
+      Version: 1.2.0
+    </option>
+    <option
+      value="/v1_1_0/os/introduction">
+      Version: 1.1.0
+    </option>
+    <option
+      value="/v1_0_0/os/introduction">
+      Version: 1.0.0
+    </option>
+    <option
+      value="/v0_9_0/os/introduction">
+      Version: 0_9_0
+    </option>
+</select>
+    <div class="region region-sidebar">
+      <div class="docs-menu">
+      
+        
+        
+            <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../get_started/index.html">Setup &amp; Get Started</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../concepts.html">Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="tutorials.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../os/os_user_guide.html">OS User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../network/ble/ble_intro.html">BLE User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newt/index.html">Newt Tool Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newtmgr/index.html">Newt Manager Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../misc/index.html">Appendix</a></li>
+</ul>
+
+        
+      
+      </div>
+    </div>
+  </div>
+  <!-- ENDS STICKY CONTAINER -->
+</div>
+<!-- ENDS .container-sidebar -->
+
+            <div class="col-xs-12 col-sm-9">
+              <div class="alert alert-info" role="alert">
+  <p>
+    This is the development version of Apache Mynewt documentation. As such it may not be as complete as the latest
+    stable version of the documentation found <a href="/latest/os/introduction/">here</a>.
+  </p>
+  <p>
+    To improve this documentation please visit <a href="https://github.com/apache/mynewt-documentation">https://github.com/apache/mynewt-documentation</a>.
+  </p>
+</div>
+              
+              <div class="">
+                <div class="rst-content">
+                  <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+                   <div itemprop="articleBody">
+                    
+  <div class="section" id="air-quality-sensor-project-via-bluetooth">
+<h1>Air quality sensor project via Bluetooth<a class="headerlink" href="#air-quality-sensor-project-via-bluetooth" title="Permalink to this headline">?</a></h1>
+<p>This is a follow-on project to the <a class="reference external" href="air_quality_sensor.html">Basic Air Quality
+Sensor</a> project; so it is assumed that you
+have worked through that project and have your CO2 sensor working
+properly with your Arduino Primo board.</p>
+<p>So let?s get started making this thing Bluetooth enabled!</p>
+<div class="section" id="add-bluetooth-gatt-services">
+<h2>Add Bluetooth GATT Services<a class="headerlink" href="#add-bluetooth-gatt-services" title="Permalink to this headline">?</a></h2>
+<p>Since we already built the previous demo on the <a class="reference external" href="bleprph/bleprph-app.html">bluetooth
+peripheral</a> basic app most of the bluetooth
+plumbing has already been taken care of for us. What?s left is for us to
+add the required GATT services for advertising the Carbon Dioxide sensor
+so that other devices can get those values.</p>
+<p>First, we?ll define the GATT Services in
+<code class="docutils literal notranslate"><span class="pre">apps/air_quality/src/bleprph.h</span></code>.</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>/* Sensor Data */
+/* e761d2af-1c15-4fa7-af80-b5729002b340 */
+static const ble_uuid128_t gatt_svr_svc_co2_uuid =
+    BLE_UUID128_INIT(0x40, 0xb3, 0x20, 0x90, 0x72, 0xb5, 0x80, 0xaf,
+                     0xa7, 0x4f, 0x15, 0x1c, 0xaf, 0xd2, 0x61, 0xe7);
+#define CO2_SNS_TYPE          0xDEAD
+#define CO2_SNS_STRING &quot;SenseAir K30 CO2 Sensor&quot;
+#define CO2_SNS_VAL           0xBEAD
+
+uint16_t gatt_co2_val;
+</pre></div>
+</div>
+<p>You can use any hex values you choose for the sensor type and sensor
+values, and you can even forget the sensor type and sensor string
+definitions altogether but they make the results look nice in our
+Bluetooth App for Mac OS X and iOS.</p>
+<p>Next we?ll add those services to <code class="docutils literal notranslate"><span class="pre">apps/air_quality/src/gatt_svr.c</span></code>.</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>static int
+gatt_svr_sns_access(uint16_t conn_handle, uint16_t attr_handle,
+    struct ble_gatt_access_ctxt *ctxt,
+    void *arg);
+
+static uint16_t gatt_co2_val_len;
+</pre></div>
+</div>
+<p>Make sure it is added as <em>primary</em> service.</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>static const struct ble_gatt_svc_def gatt_svr_svcs[] = {
+    {
+        /*** Service: Security test. */
+        .type = BLE_GATT_SVC_TYPE_PRIMARY,
+        .uuid = &amp;gatt_svr_svc_sec_test_uuid.u,
+        .characteristics = (struct ble_gatt_chr_def[]) { {
+            /*** Characteristic: Random number generator. */
+            .uuid = &amp;gatt_svr_chr_sec_test_rand_uuid.u,
+            .access_cb = gatt_svr_chr_access_sec_test,
+            .flags = BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_READ_ENC,
+        }, {
+            /*** Characteristic: Static value. */
+            .uuid = &amp;gatt_svr_chr_sec_test_static_uuid,.u
+            .access_cb = gatt_svr_chr_access_sec_test,
+            .flags = BLE_GATT_CHR_F_READ |
+                     BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_WRITE_ENC,
+        }, {
+            0, /* No more characteristics in this service. */
+        } },
+    },
+        {
+            /*** CO2 Level Notification Service. */
+            .type = BLE_GATT_SVC_TYPE_PRIMARY,
+            .uuid = &amp;gatt_svr_svc_co2_uuid.u,
+            .characteristics = (struct ble_gatt_chr_def[]) { {
+                .uuid = BLE_UUID16_DECLARE(CO2_SNS_TYPE),
+                .access_cb = gatt_svr_sns_access,
+                .flags = BLE_GATT_CHR_F_READ,
+            }, {
+                .uuid = BLE_UUID16_DECLARE(CO2_SNS_VAL),
+                .access_cb = gatt_svr_sns_access,
+                .flags = BLE_GATT_CHR_F_NOTIFY,
+            }, {
+                0, /* No more characteristics in this service. */
+            } },
+        },
+
+        {
+            0, /* No more services. */
+        },
+    };
+</pre></div>
+</div>
+<p>Next we need to tell the GATT Server how to handle requests for CO2
+readings :</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>sstatic int
+gatt_svr_sns_access(uint16_t conn_handle, uint16_t attr_handle,
+                          struct ble_gatt_access_ctxt *ctxt,
+                          void *arg)
+{
+    uint16_t uuid16;
+    int rc;
+
+    uuid16 = ble_uuid_u16(ctxt-&gt;chr-&gt;uuid);
+
+    switch (uuid16) {
+    case CO2_SNS_TYPE:
+        assert(ctxt-&gt;op == BLE_GATT_ACCESS_OP_READ_CHR);
+        rc = os_mbuf_append(ctxt-&gt;om, CO2_SNS_STRING, sizeof CO2_SNS_STRING);
+        BLEPRPH_LOG(INFO, &quot;CO2 SENSOR TYPE READ: %s\n&quot;, CO2_SNS_STRING);
+        return rc == 0 ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES;
+
+    case CO2_SNS_VAL:
+        if (ctxt-&gt;op == BLE_GATT_ACCESS_OP_WRITE_CHR) {
+            rc = gatt_svr_chr_write(ctxt-&gt;om, 0,
+                                    sizeof gatt_co2_val,
+                                    &amp;gatt_co2_val,
+                                    &amp;gatt_co2_val_len);
+            return rc;
+        } else if (ctxt-&gt;op == BLE_GATT_ACCESS_OP_READ_CHR) {
+            rc = os_mbuf_append(ctxt-&gt;om, &amp;gatt_co2_val,
+                                sizeof gatt_co2_val);
+            return rc == 0 ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES;
+        }
+
+    default:
+        assert(0);
+        return BLE_ATT_ERR_UNLIKELY;
+    }
+}
+</pre></div>
+</div>
+<p>Now it?s time to go into our <code class="docutils literal notranslate"><span class="pre">apps/air_quality/src/main.c</span></code> and change
+how we read CO2 readings and respond to requests.</p>
+<p>We?ll need a task handler with an event queue for the CO2 readings ?
+they were handled by the shell task in the previous tutorial but now it
+needs to be replaced by a different handler as shown below.</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>/* CO2 Task settings */
+#define CO2_TASK_PRIO           5
+#define CO2_STACK_SIZE          (OS_STACK_ALIGN(336))
+struct os_eventq co2_evq;
+struct os_task co2_task;
+bssnz_t os_stack_t co2_stack[CO2_STACK_SIZE];
+</pre></div>
+</div>
+<p>And of course we?ll need to go to our <code class="docutils literal notranslate"><span class="pre">main()</span></code> and do all the standard
+task and event setup we normally do by adding the following. Again,
+remember to delete all the shell event queues and tasks.</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>/* Initialize sensor eventq */
+os_eventq_init(&amp;co2_evq);
+
+/* Create the CO2 reader task.
+ * All sensor reading operations are performed in this task.
+ */
+os_task_init(&amp;co2_task, &quot;sensor&quot;, co2_task_handler,
+            NULL, CO2_TASK_PRIO, OS_WAIT_FOREVER,
+            co2_stack, CO2_STACK_SIZE);
+</pre></div>
+</div>
+<p>We?ll also need to add a task handler ? since we initialized it above:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>/**
+ * Event loop for the sensor task.
+ */
+static void
+co2_task_handler(void *unused)
+{
+    while (1) {
+        co2_read_event();
+        /* Wait 2 second */
+        os_time_delay(OS_TICKS_PER_SEC * 2);
+
+    }
+}
+</pre></div>
+</div>
+<p>And finally, we?ll take care of that <code class="docutils literal notranslate"><span class="pre">co2_read_event()</span></code> function:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>int
+co2_read_event(void)
+{
+    int value;
+    enum senseair_read_type type = SENSEAIR_CO2;
+    uint16_t chr_val_handle;
+    int rc;
+
+    value = senseair_read(type);
+    if (value &gt;= 0) {
+        console_printf(&quot;Got %d\n&quot;, value);
+    } else {
+        console_printf(&quot;Error while reading: %d\n&quot;, value);
+        goto err;
+    }
+    gatt_co2_val = value;
+    rc = ble_gatts_find_chr(&amp;gatt_svr_svc_co2_uuid.u, BLE_UUID16_DECLARE(CO2_SNS_VAL), NULL, &amp;chr_val_handle);
+    assert(rc == 0);
+    ble_gatts_chr_updated(chr_val_handle);
+    return (0);
+err:
+    return (rc);
+}
+</pre></div>
+</div>
+<p>You?ll notice that it looks eeirily similar to a portion of the shell
+event we created earlier. This one simply reads and updates the CO2
+value and sends that over BLE to any connected clients instead.</p>
+<p>We can now build, create-image and load the app onto our Arduino Primo
+board, and then connect and see the updated values! The image below
+shows the results using MyNewt Sensor Reader, a Mac OS X app developed
+for connecting to MyNewt devices over Bluetooth but you can also use
+LightBlue or any other application that can connect to, and read,
+Bluetooth data.</p>
+<div class="figure" id="id1">
+<img alt="MyNewt Sensor Reader" src="../_images/MyNewtSensorReader.jpg" />
+<p class="caption"><span class="caption-text">MyNewt Sensor Reader</span></p>
+</div>
+<p>Congratulations!!</p>
+</div>
+</div>
+
+
+                   </div>
+                  </div>
+                  
+                </div>
+              </div>
+            </div>
+            <!-- ENDS CONTENT SECTION -->
+          </div>
+          <!-- ENDS .content -->
+        </div>
+      </div>
+      <footer>
+  <div class="container">
+    <div class="row">
+      <div class="col-xs-12">
+          
+              <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
+          
+      </div>
+      <div class="col-xs-12">
+          <div class="logos">
+              <img src="../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
+              <small class="footnote">
+                Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
+                registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
+              </small>
+              <a href="https://join.slack.com/mynewt/shared_invite/MTkwMTg1ODM1NTg5LTE0OTYxNzQ4NzQtZTU1YmNhYjhkMg">
+                <img src="../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
+              </a>
+          </div>
+      </div>
+    </div>
+  </div>
+</footer>
+    </div>
+    <!-- ENDS #wrapper -->
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'1.3.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true,
+            SOURCELINK_SUFFIX: '.txt'
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="../_static/js/bootstrap-3.0.3.min.js"></script>
+      <script type="text/javascript" src="../_static/js/affix.js"></script>
+      <script type="text/javascript" src="../_static/js/main.js"></script>
+
+   
+
+  </body>
+</html>
\ No newline at end of file
diff --git a/develop/tutorials/air_quality_sensor.html b/develop/tutorials/air_quality_sensor.html
new file mode 100644
index 0000000000..aef23f0196
--- /dev/null
+++ b/develop/tutorials/air_quality_sensor.html
@@ -0,0 +1,1147 @@
+
+
+<!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">
+
+    
+
+    
+    <title>Air quality sensor project &mdash; Apache Mynewt 1.3.0 documentation</title>
+    
+
+    
+    
+      <link rel="shortcut icon" href="../_static/mynewt-logo-only-newt32x32.png"/>
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+
+    
+      <link rel="stylesheet" href="../_static/css/sphinx_theme.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/v2.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/restructuredtext.css" type="text/css" />
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/overrides.css" type="text/css" />
+          <link rel="index" title="Index"
+                href="../genindex.html"/>
+          <link rel="search" title="Search" href="../search.html"/>
+      <link rel="top" title="Apache Mynewt 1.3.0 documentation" href="../index.html"/> 
+
+    
+    <script src="../_static/js/modernizr.min.js"></script>
+
+    
+    <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="not-front page-documentation" role="document" >
+    <div id="wrapper">
+      <div class="container">
+    <div id="banner" class="row v2-main-banner">
+        <a class="logo-cell" href="/">
+            <img class="logo" src="../_static/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.3.0</a> released (December 13, 2017)
+            </div>
+        </div>
+    </div>
+</div>
+      
+<header>
+    <nav id="navbar" class="navbar navbar-inverse" 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>
+                        <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
+                    </li>
+                    <li class="important">
+                        <a href="/get_started/quick_start.html">Quick Start</a>
+                    </li>
+                    <li>
+                        <a href="/about/">About</a>
+                    </li>
+                    <li>
+                        <a href="/talks/">Talks</a>
+                    </li>
+                    <li class="active">
+                        <a href="/documentation/">Documentation</a>
+                    </li>
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    <li>
+                        <a href="/community/">Community</a>
+                    </li>
+                    <li>
+                        <a href="/events/">Events</a>
+                    </li>
+                </ul>
+
+                <!-- Search, Navigation and Repo links -->
+                <ul class="nav navbar-nav navbar-right">
+                    
+                </ul>
+            </div>
+        </div>
+    </nav>
+</header>
+      <!-- STARTS MAIN CONTENT -->
+      <div id="main-content">
+        
+
+
+
+
+
+<div id="breadcrumb">
+  <div class="container">
+    <a href="/documentation/">Docs</a> /
+    
+    Air quality sensor project
+    
+  <div class="sourcelink">
+    <a href="https://github.com/apache/mynewt-documentation/edit/master/docs/tutorials/air_quality_sensor.rst" class="icon icon-github"
+           rel="nofollow"> Edit on GitHub</a>
+</div>
+  </div>
+</div>
+        <!-- STARTS CONTAINER -->
+        <div class="container">
+          <!-- STARTS .content -->
+          <div id="content" class="row">
+            
+            <!-- STARTS .container-sidebar -->
+<div class="container-sidebar col-xs-12 col-sm-3">
+  <div id="docSidebar" class="sticky-container">
+    <div role="search" class="sphinx-search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+    
+<!-- Note: only works when deployed -->
+<select class="form-control" onchange="if (this.value) window.location.href=this.value">
+    <option
+      value="/develop"
+      selected
+      >
+      Version: develop (latest - mynewt-documentation)
+    </option>
+    <option
+      value="/latest/os/introduction"
+      >
+      Version: master (latest - mynewt-site)
+    </option>
+    <option
+      value="/v1_2_0/os/introduction"
+      >
+      Version: 1.2.0
+    </option>
+    <option
+      value="/v1_1_0/os/introduction">
+      Version: 1.1.0
+    </option>
+    <option
+      value="/v1_0_0/os/introduction">
+      Version: 1.0.0
+    </option>
+    <option
+      value="/v0_9_0/os/introduction">
+      Version: 0_9_0
+    </option>
+</select>
+    <div class="region region-sidebar">
+      <div class="docs-menu">
+      
+        
+        
+            <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../get_started/index.html">Setup &amp; Get Started</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../concepts.html">Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="tutorials.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../os/os_user_guide.html">OS User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../network/ble/ble_intro.html">BLE User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newt/index.html">Newt Tool Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newtmgr/index.html">Newt Manager Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../misc/index.html">Appendix</a></li>
+</ul>
+
+        
+      
+      </div>
+    </div>
+  </div>
+  <!-- ENDS STICKY CONTAINER -->
+</div>
+<!-- ENDS .container-sidebar -->
+
+            <div class="col-xs-12 col-sm-9">
+              <div class="alert alert-info" role="alert">
+  <p>
+    This is the development version of Apache Mynewt documentation. As such it may not be as complete as the latest
+    stable version of the documentation found <a href="/latest/os/introduction/">here</a>.
+  </p>
+  <p>
+    To improve this documentation please visit <a href="https://github.com/apache/mynewt-documentation">https://github.com/apache/mynewt-documentation</a>.
+  </p>
+</div>
+              
+              <div class="">
+                <div class="rst-content">
+                  <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+                   <div itemprop="articleBody">
+                    
+  <div class="section" id="air-quality-sensor-project">
+<h1>Air quality sensor project<a class="headerlink" href="#air-quality-sensor-project" title="Permalink to this headline">?</a></h1>
+<div class="section" id="setting-up-source-tree-for-stuff-you-need">
+<h2>Setting up source tree for stuff you need<a class="headerlink" href="#setting-up-source-tree-for-stuff-you-need" title="Permalink to this headline">?</a></h2>
+<p>To start with, you need to create a new project under which you will do
+this development. So you type in:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> mkdir <span class="nv">$HOME</span>/src
+<span class="gp">$</span> <span class="nb">cd</span> <span class="nv">$HOME</span>/src
+<span class="gp">$</span> newt new air_quality
+</pre></div>
+</div>
+<p>Let?s say you are using Arduino Primo ? which is based on the Nordic
+Semi NRF52 chip ? as the platform. You know you need the board support
+package for that hardware. You can look up its location, add it your
+project, and fetch that along with the core OS components. Luckily, the
+Arduino Primo is supported in the Mynewt Core, so there?s nothing much
+to do here.</p>
+<p>Your project.yml file should look like this:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span>[user@IsMyLaptop:~/src/air_quality]$ emacs project.yml &amp;
+[user@IsMyLaptop:~/src/air_quality]$ cat project.yml
+project.name: &quot;air_quality&quot;
+
+project.repositories:
+    - apache-mynewt-core
+
+# Use github&#39;s distribution mechanism for core ASF libraries.
+# This provides mirroring automatically for us.
+#
+repository.apache-mynewt-core:
+    type: github
+    vers: 0-latest
+    user: apache
+    repo: mynewt-core
+
+[user@IsMyLaptop:~/src/air_quality]$ newt install
+apache-mynewt-core
+[user@IsMyLaptop:~/src/air_quality]$ ls repos/
+apache-mynewt-core
+</pre></div>
+</div>
+<p>Good. You want to make sure you have all the needed bits for supporting
+your board; so you decide to build the blinky project for the platform
+first.</p>
+<p>Now create a target for it and build it. Easiest way to proceed is to
+copy the existing target for blinky, and modify it to build for Arduino
+Primo board.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> newt target copy my_blinky_sim blink_primo
+<span class="go">Target successfully copied; targets/my_blinky_sim --&gt; targets/blink_primo</span>
+<span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> newt target <span class="nb">set</span> blink_primo <span class="nv">bsp</span><span class="o">=</span>@apache-mynewt-core/hw/bsp/arduino_primo_nrf52
+<span class="go">Target targets/blink_nrf successfully set target.bsp to @apache-mynewt-core/hw/bsp/arduino_primo_nrf52</span>
+<span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> newt build blink_primo
+<span class="go">Compiling hal_bsp.c</span>
+<span class="go">...</span>
+<span class="go">Linking blinky.elf</span>
+<span class="go">App successfully built: /Users/user/src/air_quality/bin/blink_primo/apps/blinky/blinky.elf</span>
+</pre></div>
+</div>
+<p>Good.</p>
+<p>You know that this platform uses bootloader, which means you have to
+create a target for that too.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> newt target create boot_primo
+<span class="go">Target targets/boot_nrf successfully created</span>
+<span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> newt target show
+<span class="go">@apache-mynewt-core/targets/unittest</span>
+<span class="go">    bsp=hw/bsp/native</span>
+<span class="go">    build_profile=debug</span>
+<span class="go">    compiler=compiler/sim</span>
+<span class="go">targets/blink_primo</span>
+<span class="go">    app=apps/blinky</span>
+<span class="go">    bsp=@apache-mynewt-core/hw/bsp/arduino_primo_nrf52</span>
+<span class="go">    build_profile=debug</span>
+<span class="go">targets/boot_primo</span>
+<span class="go">targets/my_blinky_sim</span>
+<span class="go">    app=apps/blinky</span>
+<span class="go">    bsp=@apache-mynewt-core/hw/bsp/native</span>
+<span class="go">    build_profile=debug</span>
+<span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> newt target <span class="nb">set</span> boot_nrf <span class="nv">bsp</span><span class="o">=</span>@apache-mynewt-core/hw/bsp/arduino_primo_nrf52
+<span class="go">Target targets/boot_nrf successfully set target.bsp to @apache-mynewt-core/hw/bsp/arduino_primo_nrf52</span>
+<span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> newt target <span class="nb">set</span> boot_nrf <span class="nv">app</span><span class="o">=</span>@apache-mynewt-core/apps/boot
+<span class="go">Target targets/boot_nrf successfully set target.app to @apache-mynewt-core/apps/boot</span>
+<span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> newt target <span class="nb">set</span> boot_nrf <span class="nv">build_profile</span><span class="o">=</span>optimized
+<span class="go">Target targets/boot_nrf successfully set target.build_profile to optimized</span>
+</pre></div>
+</div>
+<p>And then build it, and load it onto the board.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">newt build boot_primo</span>
+<span class="go">....</span>
+<span class="go">Linking boot.elf</span>
+<span class="go">App successfully built: /Users/user/src/air_quality/bin/boot_primo/apps/boot/boot.elf</span>
+<span class="go">[user@IsMyLaptop:~/src/air_quality]</span>
+<span class="gp">$</span> newt load boot_primo
+</pre></div>
+</div>
+<p>At this point, you may (or may not) see a bunch of error messages about
+not being able to connect to your board, not being able to load the
+image, etc. If that?s the case, and you haven?t already, you should most
+definitely go worth through the <a class="reference external" href="blinky_primo.html">blinky_primo</a>
+tutorial so that you can properly communicate with your board.</p>
+<p>Next you must download the targets to board, and see that the LED
+actually blinks. You plug in the Arduino Primo board to your laptop, and
+say:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> newt load blink_primo
+<span class="go">Loading app image into slot 1</span>
+<span class="go">Error: couldn&#39;t open /Users/user/src/air_quality/bin/blink_primo/apps/blinky/blinky.img</span>
+
+<span class="go">Error: exit status 1</span>
+
+<span class="go">load - Load app image to target for &lt;target-name&gt;.</span>
+
+<span class="go">Usage:</span>
+<span class="go">  newt load [flags]</span>
+
+<span class="go">Examples:</span>
+<span class="go">  newt load &lt;target-name&gt;</span>
+
+
+<span class="go">Global Flags:</span>
+<span class="go">  -l, --loglevel string   Log level, defaults to WARN. (default &quot;WARN&quot;)</span>
+<span class="go">  -o, --outfile string    Filename to tee log output to</span>
+<span class="go">  -q, --quiet             Be quiet; only display error output.</span>
+<span class="go">  -s, --silent            Be silent; don&#39;t output anything.</span>
+<span class="go">  -v, --verbose           Enable verbose output when executing commands.</span>
+<span class="go">exit status 1</span>
+</pre></div>
+</div>
+<p>Ah. Forgot to create an image out of the blinky binary. Note that every
+time you want to build and load a new firmware image to a target board,
+you need to run ?create-image? on it.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> newt create-image blink_primo <span class="m">0</span>.0.1
+<span class="go">App image successfully generated: /Users/user/src/air_quality/bin/blink_primo/apps/blinky/blinky.img</span>
+<span class="go">Build manifest: /Users/user/src/air_quality/bin/blink_nrf/apps/blinky/manifest.json</span>
+<span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> newt load blink_primo
+</pre></div>
+</div>
+<p>And it?s blinking.</p>
+<p>Shortcut for doing build/create-image/load/debug steps all in one is
+?newt run? command. Check out the usage from command line help.</p>
+</div>
+<div class="section" id="create-test-project">
+<h2>Create test project<a class="headerlink" href="#create-test-project" title="Permalink to this headline">?</a></h2>
+<p>Now that you have your system setup, you can start creating your own
+stuff. First you want to create a project for yourself - you could start
+by using blinky as a project template, but since we?re going to want to
+be able to access the data via Bluetooth, let?s use the <code class="docutils literal notranslate"><span class="pre">bleprph</span></code>
+Bluetooth Peripheral project instead.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> mkdir apps/air_quality
+<span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> cp repos/apache-mynewt-core/apps/bleprph/pkg.yml apps/air_quality/
+<span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> cp -Rp repos/apache-mynewt-core/apps/bleprph/src apps/air_quality/
+</pre></div>
+</div>
+<p>Then you modify the apps/air_quality/pkg.yml for air_quality in order
+to change the <em>pkg.name</em> to be <em>apps/air_quality</em>. You?ll need to add
+the <code class="docutils literal notranslate"><span class="pre">&#64;apache-mynewt-core/</span></code> path to all the package dependencies, since
+the app no longer resides within the apache-mynewt-core repository.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> cat apps/air_quality/pkg.yml
+<span class="go">pkg.name: apps/air_quality</span>
+<span class="go">pkg.type: app</span>
+<span class="go">pkg.description: BLE Air Quality application.</span>
+<span class="go">pkg.author: &quot;Apache Mynewt &lt;dev@mynewt.apache.org&gt;&quot;</span>
+<span class="go">pkg.homepage: &quot;http://mynewt.apache.org/&quot;</span>
+<span class="go">pkg.keywords:</span>
+
+<span class="go">pkg.deps:</span>
+<span class="go">    - &quot;@apache-mynewt-core/kernel/os&quot;</span>
+<span class="go">    - &quot;@apache-mynewt-core/sys/shell&quot;</span>
+<span class="go">    - &quot;@apache-mynewt-core/sys/stats/full&quot;</span>
+<span class="go">    - &quot;@apache-mynewt-core/sys/log/full&quot;</span>
+<span class="go">    - &quot;@apache-mynewt-core/mgmt/newtmgr&quot;</span>
+<span class="go">    - &quot;@apache-mynewt-core/mgmt/newtmgr/transport/ble&quot;</span>
+<span class="go">    - &quot;@apache-mynewt-core/net/nimble/controller&quot;</span>
+<span class="go">    - &quot;@apache-mynewt-core/net/nimble/host&quot;</span>
+<span class="go">    - &quot;@apache-mynewt-core/net/nimble/host/services/ans&quot;</span>
+<span class="go">    - &quot;@apache-mynewt-core/net/nimble/host/services/gap&quot;</span>
+<span class="go">    - &quot;@apache-mynewt-core/net/nimble/host/services/gatt&quot;</span>
+<span class="go">    - &quot;@apache-mynewt-core/net/nimble/host/store/ram&quot;</span>
+<span class="go">    - &quot;@apache-mynewt-core/net/nimble/transport/ram&quot;</span>
+<span class="go">    - &quot;@apache-mynewt-core/sys/console/full&quot;</span>
+<span class="go">    - &quot;@apache-mynewt-core/sys/sysinit&quot;</span>
+<span class="go">    - &quot;@apache-mynewt-core/sys/id&quot;</span>
+</pre></div>
+</div>
+<p>And create a target for it:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> newt target create air_q
+<span class="go">Target targets/air_q successfully created</span>
+<span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> newt target <span class="nb">set</span> air_q <span class="nv">bsp</span><span class="o">=</span>@apache-mynewt-core/hw/bsp/arduino_primo_nrf52
+<span class="go">Target targets/air_q successfully set target.bsp to @apache-mynewt-core/hw/bsp/arduino_primo_nrf52</span>
+<span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> newt target <span class="nb">set</span> air_q <span class="nv">app</span><span class="o">=</span>apps/air_quality
+<span class="go">Target targets/air_q successfully set target.app to apps/air_quality</span>
+<span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> newt target <span class="nb">set</span> air_q <span class="nv">build_profile</span><span class="o">=</span>debug
+<span class="go">Target targets/air_q successfully set target.build_profile to debug</span>
+<span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> newt build air_q
+<span class="go"> ....</span>
+<span class="go">Linking /Users/dsimmons/dev/myproj/bin/targets/air_q/app/apps/air_quality/air_quality.elf</span>
+<span class="go">Target successfully built: targets/air_q</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="create-packages-for-drivers">
+<h2>Create packages for drivers<a class="headerlink" href="#create-packages-for-drivers" title="Permalink to this headline">?</a></h2>
+<p>One of the sensors you want to enable is SenseAir K30, which will
+connect to the board over a serial port. To start development of the
+driver, you first need to create a package description for it, and add
+stubs for sources.</p>
+<p>The first thing to do is to create the directory structure for your
+driver:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> mkdir -p libs/my_drivers/senseair/include/senseair
+<span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> mkdir -p libs/my_drivers/senseair/src
+</pre></div>
+</div>
+<p>Now you can add the files you need. You?ll need a pkg.yml to describe
+the driver, and then header stub followed by source stub.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> cat libs/my_drivers/senseair/pkg.yml
+</pre></div>
+</div>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# &quot;License&quot;); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+pkg.name: libs/my_drivers/senseair
+pkg.description: Host side of the nimble Bluetooth Smart stack.
+pkg.author: &quot;Apache Mynewt &lt;dev@mynewt.apache.org&gt;&quot;
+pkg.homepage: &quot;http://mynewt.apache.org/&quot;
+pkg.keywords:
+    - ble
+    - bluetooth
+
+pkg.deps:
+    - &quot;@apache-mynewt-core/kernel/os&quot;
+</pre></div>
+</div>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> cat libs/my_drivers/senseair/include/senseair/senseair.h
+</pre></div>
+</div>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * &quot;License&quot;); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+*/
+#ifndef _SENSEAIR_H_
+#define _SENSEAIR_H_
+
+void senseair_init(void);
+
+#endif /* _SENSEAIR_H_ */
+</pre></div>
+</div>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> cat libs/my_drivers/senseair/src/senseair.c
+</pre></div>
+</div>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * &quot;License&quot;); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+void
+senseair_init(void)
+{
+}
+</pre></div>
+</div>
+<p>And add dependency to this package in your project yml file.</p>
+<p>Here?s the listing from apps/air_quality/pkg.yml</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">pkg.name: apps/air_quality</span>
+<span class="go">pkg.type: app</span>
+<span class="go">pkg.description: Air quality sensor test</span>
+<span class="go">pkg.keywords:</span>
+
+<span class="go">pkg.deps:</span>
+<span class="go">    - &quot;@apache-mynewt-core/libs/console/full&quot;</span>
+<span class="go">    - &quot;@apache-mynewt-core/libs/newtmgr&quot;</span>
+<span class="go">    - &quot;@apache-mynewt-core/libs/os&quot;</span>
+<span class="go">    - &quot;@apache-mynewt-core/libs/shell&quot;</span>
+<span class="go">    - &quot;@apache-mynewt-core/sys/config&quot;</span>
+<span class="go">    - &quot;@apache-mynewt-core/sys/log/full&quot;</span>
+<span class="go">    - &quot;@apache-mynewt-core/sys/stats/full&quot;</span>
+<span class="go">    - libs/my_drivers/senseair</span>
+</pre></div>
+</div>
+<p>And add a call to your main() to initialize this driver.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> diff project/blinky/src/main.c project/air_quality/src/main.c
+<span class="go">28a29</span>
+<span class="gp">&gt;</span> <span class="c1">#include &lt;senseair/senseair.h&gt;</span>
+<span class="go">190a192</span>
+<span class="gp">&gt;</span> senseair_init<span class="o">()</span><span class="p">;</span>
+<span class="go">[user@IsMyLaptop:~/src/air_quality</span>
+</pre></div>
+</div>
+<p>The ble_prph app runs everything in one task handler. For this project,
+we?re going to add a second task handler to respond to the shell, and
+then handle communicating with the senseair sensor for us.</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>/** shell task settings. */
+#define SHELL_TASK_PRIO           2
+#define SHELL_STACK_SIZE          (OS_STACK_ALIGN(336))
+
+struct os_eventq shell_evq;
+struct os_task shell_task;
+bssnz_t os_stack_t shell_stack[SHELL_STACK_SIZE];
+</pre></div>
+</div>
+<p>That defines the task, now we need to initialize it, add a task handler,
+and we?re going to use this task as our default task handler.</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>/**
+ * Event loop for the main shell task.
+ */
+static void
+shell_task_handler(void *unused)
+{
+    while (1) {
+        os_eventq_run(&amp;shell_evq);
+    }
+}
+</pre></div>
+</div>
+<p>And in your <code class="docutils literal notranslate"><span class="pre">main()</span></code> add:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>/* Initialize shell eventq */
+os_eventq_init(&amp;shell_evq);
+
+/* Create the shell task.
+ * All shell operations are performed in this task.
+ */
+os_task_init(&amp;shell_task, &quot;shell&quot;, shell_task_handler,
+                          NULL, SHELL_TASK_PRIO, OS_WAIT_FOREVER,
+                          shell_stack, SHELL_STACK_SIZE);
+</pre></div>
+</div>
+<p>Don?t forget to change your default task handler!</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>os_eventq_dflt_set(&amp;shell_evq);
+</pre></div>
+</div>
+<p>And then build it to make sure all goes well.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> newt build air_q
+<span class="go">Compiling senseair.c</span>
+<span class="go">Archiving senseair.a</span>
+<span class="go">Linking air_quality.elf</span>
+<span class="go">App successfully built: /Users/user/src/air_quality/bin/air_q/apps/air_quality/air_quality.elf</span>
+</pre></div>
+</div>
+<p>All looks good.</p>
+</div>
+<div class="section" id="add-cli-commands-for-testing-drivers">
+<h2>Add CLI commands for testing drivers<a class="headerlink" href="#add-cli-commands-for-testing-drivers" title="Permalink to this headline">?</a></h2>
+<p>While developing the driver, you want to issue operations from console
+asking it to do stuff. We?ll assume that you?ve already worked through
+the tutorial on how to <a class="reference external" href="blinky_console.html">enable the CLI</a>, so all
+we?ll need to do is add the propper values to the project?s
+<code class="docutils literal notranslate"><span class="pre">syscfg.yml</span></code> file:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> cat targets/air_q/syscfg.yml
+<span class="go">syscfg.vals:</span>
+<span class="gp">    #</span> Set as per blinky_primo
+<span class="go">    OPENOCD_DEBUG: 1</span>
+<span class="gp">    #</span> Enable the shell task.
+<span class="go">    SHELL_TASK: 1</span>
+<span class="go">    STATS_CLI: 1</span>
+<span class="go">    CONSOLE_TICKS: 1</span>
+<span class="go">    CONSOLE_PROMPT: 1</span>
+</pre></div>
+</div>
+<p>Then register your senseair command with the shell by adding the
+following to <code class="docutils literal notranslate"><span class="pre">libs/my_drivers/senseair/src/senseair.c</span></code></p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>#include &lt;shell/shell.h&gt;
+#include &lt;console/console.h&gt;
+#include &lt;assert.h&gt;
+
+
+static int senseair_shell_func(int argc, char **argv);
+static struct shell_cmd senseair_cmd = {
+    .sc_cmd = &quot;senseair&quot;,
+    .sc_cmd_func = senseair_shell_func,
+};
+
+void
+senseair_init(void)
+{
+    int rc;
+
+    rc = shell_cmd_register(&amp;senseair_cmd);
+    assert(rc == 0);
+}
+
+static int
+senseair_shell_func(int argc, char **argv)
+{
+    console_printf(&quot;Yay! Somebody called!\n&quot;);
+    return 0;
+
+}
+</pre></div>
+</div>
+<p>Now you can you build this, download to target, and start minicom on
+your console port. If you haven?t already, familiarize yourself with the
+tutorial on how to connect a serial port to your board
+<a class="reference external" href="../get_started/serial_access.html">here</a>.</p>
+<p>You?ll need to wire up your Board to a Serial converter first. On the
+Arduino Primo Board pin 1 is TX and pin 0 is RX so wire 1 to RX on your
+serial board, and 0 to TX on your serial board.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">[user@IsMyLaptop:~]$</span> minicom -D /dev/tty.usbserial-AH02MIE2
+
+
+<span class="go">Welcome to minicom 2.7</span>
+
+<span class="go">OPTIONS:</span>
+<span class="go">Compiled on Oct 12 2015, 07:48:30.</span>
+<span class="go">Port /dev/tty.usbserial-AH02MIE2, 13:44:40</span>
+
+<span class="go">Press CTRL-X Z for help on special keys</span>
+
+<span class="go">?</span>
+<span class="go">419: &gt; ?</span>
+<span class="go">Commands:</span>
+<span class="go">641:     stat      echo         ?    prompt     ticks     tasks</span>
+<span class="go">643: mempools      date  senseair</span>
+<span class="go">644: &gt; senseair</span>
+<span class="go">Yay! Somebody called!</span>
+<span class="go">1125: &gt;</span>
+<span class="go">53611: &gt; tasks</span>
+<span class="go">Tasks:</span>
+<span class="go">54047:    task pri tid  runtime      csw    stksz   stkuse   lcheck   ncheck flg</span>
+<span class="go">54057:    idle 255   0    54048    66890       64       30        0        0   0</span>
+<span class="go">54068:  ble_ll   0   1        9    64986       80       58        0        0   0</span>
+<span class="go">54079: bleprph   1   2        0        1      336       32        0        0   0</span>
+<span class="go">54090:   shell   2   3        0     2077      336      262        0        0   0</span>
+<span class="go">54101: &gt;</span>
+</pre></div>
+</div>
+<p>That?s great. Your shell task is running, and is responding
+appropriately! You can connect the hardware to your board and start
+developing code for the driver itself.</p>
+</div>
+<div class="section" id="use-of-hal-for-drivers">
+<h2>Use of HAL for drivers<a class="headerlink" href="#use-of-hal-for-drivers" title="Permalink to this headline">?</a></h2>
+<p>The sensor has a serial port connection, and that?s how you are going to
+connect to it. Your original BSP, hw/bsp/arduino_primo_nrf52, has two
+UARTs set up. We?re using one for our shell/console. It also has a
+second UART set up as a ?bit-bang? UART but since the SenseAir only
+needs to communicate at 9600 baud, this bit-banged uart is plenty fast
+enough.</p>
+<p>You?ll have to make a small change to the <code class="docutils literal notranslate"><span class="pre">syscfg.yml</span></code> file in your
+project?s target directory to change the pin definitions for this second
+UART. Those changes are as follows:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">UART_0_PIN_TX: 23</span>
+<span class="go">UART_0_PIN_RX: 24</span>
+</pre></div>
+</div>
+<p>With this in place, you can refer to serial port where your SenseAir
+sensor by a logical number. This makes the code more platform
+independent - you could connect this sensor to another board, like
+Olimex. You will also use the HAL UART abstraction to do the UART port
+setup and data transfer. That way you don?t need to have any platform
+dependent pieces within your little driver.</p>
+<p>You will now see what the driver code ends up looking like. Here?s the
+header file, filled in from the stub you created earlier.</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * &quot;License&quot;); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+*/
+#ifndef _SENSEAIR_H_
+#define _SENSEAIR_H_
+
+enum senseair_read_type {
+        SENSEAIR_CO2,
+};
+
+int senseair_init(int uartno);
+
+int senseair_read(enum senseair_read_type);
+
+#endif /* _SENSEAIR_H_ */
+</pre></div>
+</div>
+<p>As you can see, logical UART number has been added to the init routine.
+A ?read? function has been added, which is a blocking read. If you were
+making a commercial product, you would probably have a callback for
+reporting the results.</p>
+<p>And here is the source for the driver.</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * &quot;License&quot;); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+#include &lt;string.h&gt;
+
+#include &lt;shell/shell.h&gt;
+#include &lt;console/console.h&gt;
+#include &lt;os/os.h&gt;
+
+#include &lt;hal/hal_uart.h&gt;
+
+#include &quot;senseair/senseair.h&quot;
+
+static const uint8_t cmd_read_co2[] = {
+    0xFE, 0X44, 0X00, 0X08, 0X02, 0X9F, 0X25
+};
+
+static int senseair_shell_func(int argc, char **argv);
+static struct shell_cmd senseair_cmd = {
+    .sc_cmd = &quot;senseair&quot;,
+    .sc_cmd_func = senseair_shell_func,
+};
+
+struct senseair {
+    int uart;
+    struct os_sem sema;
+    const uint8_t *tx_data;
+    int tx_off;
+    int tx_len;
+    uint8_t rx_data[32];
+    int rx_off;
+    int value;
+} senseair;
+
+static int
+senseair_tx_char(void *arg)
+{
+    struct senseair *s = &amp;senseair;
+    int rc;
+
+    if (s-&gt;tx_off &gt;= s-&gt;tx_len) {
+    /*
+         * Command tx finished.
+         */
+        s-&gt;tx_data = NULL;
+        return -1;
+    }
+
+    rc = s-&gt;tx_data[s-&gt;tx_off];
+    s-&gt;tx_off++;
+    return rc;
+}
+
+/*
+ * CRC for modbus over serial port.
+ */
+static const uint16_t mb_crc_tbl[] = {
+    0x0000, 0xcc01, 0xd801, 0x1400, 0xf001, 0x3c00, 0x2800, 0xe401,
+    0xa001, 0x6c00, 0x7800, 0xb401, 0x5000, 0x9c01, 0x8801, 0x4400
+};
+
+static uint16_t
+mb_crc(const uint8_t *data, int len, uint16_t crc)
+{
+    while (len-- &gt; 0) {
+        crc ^= *data++;
+        crc = (crc &gt;&gt; 4) ^ mb_crc_tbl[crc &amp; 0xf];
+        crc = (crc &gt;&gt; 4) ^ mb_crc_tbl[crc &amp; 0xf];
+    }
+    return crc;
+}
+
+static int
+mb_crc_check(const void *pkt, int len)
+{
+    uint16_t crc, cmp;
+    uint8_t *bp = (uint8_t *)pkt;
+
+    if (len &lt; sizeof(crc) + 1) {
+        return -1;
+    }
+    crc = mb_crc(pkt, len - 2, 0xffff);
+    cmp = bp[len - 2] | (bp[len - 1] &lt;&lt; 8);
+    if (crc != cmp) {
+        return -1;
+    } else {
+        return 0;
+    }
+}
+
+static int
+senseair_rx_char(void *arg, uint8_t data)
+{
+    struct senseair *s = (struct senseair *)arg;
+    int rc;
+
+    if (s-&gt;rx_off &gt;= sizeof(s-&gt;rx_data)) {
+        s-&gt;rx_off = 0;
+    }
+    s-&gt;rx_data[s-&gt;rx_off] = data;
+    s-&gt;rx_off++;
+
+    if (s-&gt;rx_off == 7) {
+        rc = mb_crc_check(s-&gt;rx_data, s-&gt;rx_off);
+        if (rc == 0) {
+            s-&gt;value = s-&gt;rx_data[3] * 256 + s-&gt;rx_data[4];
+            os_sem_release(&amp;s-&gt;sema);
+        }
+    }
+    return 0;
+}
+
+void
+senseair_tx(struct senseair *s, const uint8_t *tx_data, int data_len)
+{
+    s-&gt;tx_data = tx_data;
+    s-&gt;tx_len = data_len;
+    s-&gt;tx_off = 0;
+    s-&gt;rx_off = 0;
+
+    hal_uart_start_tx(s-&gt;uart);
+}
+
+int
+senseair_read(enum senseair_read_type type)
+{
+    struct senseair *s = &amp;senseair;
+    const uint8_t *cmd;
+    int cmd_len;
+    int rc;
+
+    if (s-&gt;tx_data) {
+        /*
+         * busy
+         */
+        return -1;
+    }
+    switch (type) {
+    case SENSEAIR_CO2:
+        cmd = cmd_read_co2;
+        cmd_len = sizeof(cmd_read_co2);
+        break;
+    default:
+        return -1;
+    }
+    senseair_tx(s, cmd, cmd_len);
+    rc = os_sem_pend(&amp;s-&gt;sema, OS_TICKS_PER_SEC / 2);
+    if (rc == OS_TIMEOUT) {
+        /*
+         * timeout
+         */
+        return -2;
+    }
+    return s-&gt;value;
+}
+
+static int
+senseair_shell_func(int argc, char **argv)
+{
+    int value;
+    enum senseair_read_type type;
+
+    if (argc &lt; 2) {
+usage:
+        console_printf(&quot;%s co2\n&quot;, argv[0]);
+        return 0;
+    }
+    if (!strcmp(argv[1], &quot;co2&quot;)) {
+        type = SENSEAIR_CO2;
+    } else {
+        goto usage;
+    }
+    value = senseair_read(type);
+    if (value &gt;= 0) {
+        console_printf(&quot;Got %d\n&quot;, value);
+    } else {
+        console_printf(&quot;Error while reading: %d\n&quot;, value);
+    }
+    return 0;
+}
+
+int
+senseair_init(int uartno)
+{
+    int rc;
+    struct senseair *s = &amp;senseair;
+
+    rc = shell_cmd_register(&amp;senseair_cmd);
+    if (rc) {
+        return rc;
+    }
+
+    rc = os_sem_init(&amp;s-&gt;sema, 1);
+    if (rc) {
+        return rc;
+    }
+    rc = hal_uart_init_cbs(uartno, senseair_tx_char, NULL,
+      senseair_rx_char, &amp;senseair);
+    if (rc) {
+        return rc;
+    }
+    rc = hal_uart_config(uartno, 9600, 8, 1, HAL_UART_PARITY_NONE,
+      HAL_UART_FLOW_CTL_NONE);
+    if (rc) {
+        return rc;
+    }
+    s-&gt;uart = uartno;
+
+    return 0;
+}
+</pre></div>
+</div>
+<p>And your modified main() for senseair driver init.</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>int
+main(int argc, char **argv)
+{
+    ....
+    senseair_init(0);
+    ....
+    }
+</pre></div>
+</div>
+<p>You can see from the code that you are using the HAL interface to open a
+UART port, and using OS semaphore as a way of blocking the task when
+waiting for read response to come back from the sensor.</p>
+<p>Now comes the fun part: Hooking up the sensor! It?s fun because a)
+hooking up a sensor is always fun and b) the SenseAir sensor?s PCB is
+entirely unlabeled, so you?ll have to trust us on how to hook it up.</p>
+<p>So here we go.</p>
+<p>You?ll have to do a little soldering. I soldered some header pins to the
+SenseAir K30 board to make connecting wires easier using standard jumper
+wires, but you can also just solder wires straight to the board if you
+prefer.</p>
+<p>Here?s what your SenseAir board should look like once it?s wired up:</p>
+<div class="figure" id="id1">
+<img alt="SenseAir Wiring" src="../_images/Senseair1.png" />
+<p class="caption"><span class="caption-text">SenseAir Wiring</span></p>
+</div>
+<p>Now that you have that wired up, let?s get the Arduino Primo wired up. A
+couple of things to note:</p>
+<ul class="simple">
+<li>The Arduino Primo?s ?console? UART is actually UART1.</li>
+<li>The secondary (bit-banged) UART is UART0, so that?s where we?ll have
+to hook up the SenseAir.</li>
+</ul>
+<p>Here?s what your Arduino Primo should now look like with everything
+wired in:</p>
+<div class="figure" id="id2">
+<img alt="SenseAir and Arduino Primo Wiring" src="../_images/Senseair2.png" />
+<p class="caption"><span class="caption-text">SenseAir and Arduino Primo Wiring</span></p>
+</div>
+<p>Everything is wired and you?re ready to go! Build and load your new app:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt build air_q
+<span class="go">Building target targets/air_q</span>
+<span class="go">Compiling apps/air_quality/src/main.c</span>
+<span class="go">Archiving apps_air_quality.a</span>
+<span class="go">Linking myproj/bin/targets/air_q/app/apps/air_quality/air_quality.elf</span>
+<span class="go">Target successfully built: targets/air_q</span>
+<span class="gp">$</span> newt create-image air_q <span class="m">1</span>.0.0
+<span class="go">App image succesfully generated: myproj/bin/targets/air_q/app/apps/air_quality/air_quality.img</span>
+<span class="gp">$</span> newt load air_q
+<span class="go">Loading app image into slot 1</span>
+</pre></div>
+</div>
+<p>Now, you should be able to connect to your serial port and read values:</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>user@IsMyLaptop:~]$ minicom -D /dev/tty.usbserial-AH02MIE2
+
+
+    Welcome to minicom 2.7
+
+    OPTIONS:
+    Compiled on Oct 12 2015, 07:48:30.
+    Port /dev/tty.usbserial-AH02MIE2, 13:44:40
+
+    Press CTRL-X Z for help on special keys
+
+    1185: &gt; ?
+    Commands:
+    1382:     stat      echo         ?    prompt     ticks     tasks
+    1390: mempools      date  senseair
+    1395: &gt; senseair
+    senseair co2
+    2143: &gt; senseair co2
+    Got 973
+</pre></div>
+</div>
+<p>And you?re getting valid readings! Congratulations!</p>
+<p>Next we?ll hook this all up via Bluetooth so that you can read those
+values remotely.</p>
+</div>
+</div>
+
+
+                   </div>
+                  </div>
+                  
+                </div>
+              </div>
+            </div>
+            <!-- ENDS CONTENT SECTION -->
+          </div>
+          <!-- ENDS .content -->
+        </div>
+      </div>
+      <footer>
+  <div class="container">
+    <div class="row">
+      <div class="col-xs-12">
+          
+              <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
+          
+      </div>
+      <div class="col-xs-12">
+          <div class="logos">
+              <img src="../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
+              <small class="footnote">
+                Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
+                registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
+              </small>
+              <a href="https://join.slack.com/mynewt/shared_invite/MTkwMTg1ODM1NTg5LTE0OTYxNzQ4NzQtZTU1YmNhYjhkMg">
+                <img src="../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
+              </a>
+          </div>
+      </div>
+    </div>
+  </div>
+</footer>
+    </div>
+    <!-- ENDS #wrapper -->
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'1.3.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true,
+            SOURCELINK_SUFFIX: '.txt'
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="../_static/js/bootstrap-3.0.3.min.js"></script>
+      <script type="text/javascript" src="../_static/js/affix.js"></script>
+      <script type="text/javascript" src="../_static/js/main.js"></script>
+
+   
+
+  </body>
+</html>
\ No newline at end of file
diff --git a/develop/tutorials/ble/ble.html b/develop/tutorials/ble/ble.html
index 2b5e0e6969..036ccdea79 100644
--- a/develop/tutorials/ble/ble.html
+++ b/develop/tutorials/ble/ble.html
@@ -43,7 +43,7 @@
       <link rel="top" title="Apache Mynewt 1.3.0 documentation" href="../../index.html"/>
           <link rel="up" title="Tutorials" href="../tutorials.html"/>
           <link rel="next" title="Set up a bare bones NimBLE application" href="ble_bare_bones.html"/>
-          <link rel="prev" title="Upgrade a repo" href="../repo/upgrade_repo.html"/> 
+          <link rel="prev" title="Project Slinky Using Olimex Board" href="../slinky/project-stm32-slinky.html"/> 
 
     
     <script src="../../_static/js/modernizr.min.js"></script>
@@ -223,6 +223,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 <li class="toctree-l1 current"><a class="reference internal" href="../tutorials.html">Tutorials</a><ul class="current">
 <li class="toctree-l2"><a class="reference internal" href="../blinky/blinky.html">Project Blinky</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../repo/add_repos.html">Working with repositories</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
 <li class="toctree-l2 current"><a class="current reference internal" href="#">Bluetooth Low Energy</a><ul>
 <li class="toctree-l3"><a class="reference internal" href="ble_bare_bones.html">Set up a bare bones NimBLE application</a></li>
 <li class="toctree-l3"><a class="reference internal" href="ibeacon.html">BLE iBeacon</a></li>
@@ -283,7 +284,7 @@ <h1>Bluetooth Low Energy<a class="headerlink" href="#bluetooth-low-energy" title
         <a href="ble_bare_bones.html" class="btn btn-neutral float-right" title="Set up a bare bones NimBLE application" accesskey="n">Next: Set up a bare bones NimBLE application <span class="fa fa-arrow-circle-right"></span></a>
       
       
-        <a href="../repo/upgrade_repo.html" class="btn btn-neutral" title="Upgrade a repo" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous: Upgrade a repo</a>
+        <a href="../slinky/project-stm32-slinky.html" class="btn btn-neutral" title="Project Slinky Using Olimex Board" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous: Project Slinky Using Olimex Board</a>
       
     </div>
 
diff --git a/develop/tutorials/ble/ble_bare_bones.html b/develop/tutorials/ble/ble_bare_bones.html
index 7ca8102730..22ae6ad80c 100644
--- a/develop/tutorials/ble/ble_bare_bones.html
+++ b/develop/tutorials/ble/ble_bare_bones.html
@@ -225,6 +225,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 <li class="toctree-l1 current"><a class="reference internal" href="../tutorials.html">Tutorials</a><ul class="current">
 <li class="toctree-l2"><a class="reference internal" href="../blinky/blinky.html">Project Blinky</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../repo/add_repos.html">Working with repositories</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
 <li class="toctree-l2 current"><a class="reference internal" href="ble.html">Bluetooth Low Energy</a><ul class="current">
 <li class="toctree-l3 current"><a class="current reference internal" href="#">Set up a bare bones NimBLE application</a></li>
 <li class="toctree-l3"><a class="reference internal" href="ibeacon.html">BLE iBeacon</a></li>
diff --git a/develop/tutorials/ble/blehci_project.html b/develop/tutorials/ble/blehci_project.html
index 2cf6efeaac..09b723fc41 100644
--- a/develop/tutorials/ble/blehci_project.html
+++ b/develop/tutorials/ble/blehci_project.html
@@ -225,6 +225,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 <li class="toctree-l1 current"><a class="reference internal" href="../tutorials.html">Tutorials</a><ul class="current">
 <li class="toctree-l2"><a class="reference internal" href="../blinky/blinky.html">Project Blinky</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../repo/add_repos.html">Working with repositories</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
 <li class="toctree-l2 current"><a class="reference internal" href="ble.html">Bluetooth Low Energy</a><ul class="current">
 <li class="toctree-l3"><a class="reference internal" href="ble_bare_bones.html">Set up a bare bones NimBLE application</a></li>
 <li class="toctree-l3"><a class="reference internal" href="ibeacon.html">BLE iBeacon</a></li>
diff --git a/develop/tutorials/ble/bleprph/bleprph-sections/bleprph-adv.html b/develop/tutorials/ble/bleprph/bleprph-sections/bleprph-adv.html
index ba2ebf1210..1602ff871a 100644
--- a/develop/tutorials/ble/bleprph/bleprph-sections/bleprph-adv.html
+++ b/develop/tutorials/ble/bleprph/bleprph-sections/bleprph-adv.html
@@ -227,6 +227,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 <li class="toctree-l1 current"><a class="reference internal" href="../../../tutorials.html">Tutorials</a><ul class="current">
 <li class="toctree-l2"><a class="reference internal" href="../../../blinky/blinky.html">Project Blinky</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../repo/add_repos.html">Working with repositories</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
 <li class="toctree-l2 current"><a class="reference internal" href="../../ble.html">Bluetooth Low Energy</a><ul class="current">
 <li class="toctree-l3"><a class="reference internal" href="../../ble_bare_bones.html">Set up a bare bones NimBLE application</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../../ibeacon.html">BLE iBeacon</a></li>
diff --git a/develop/tutorials/ble/bleprph/bleprph-sections/bleprph-app.html b/develop/tutorials/ble/bleprph/bleprph-sections/bleprph-app.html
index e7eaef4031..be85c38d66 100644
--- a/develop/tutorials/ble/bleprph/bleprph-sections/bleprph-app.html
+++ b/develop/tutorials/ble/bleprph/bleprph-sections/bleprph-app.html
@@ -227,6 +227,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 <li class="toctree-l1 current"><a class="reference internal" href="../../../tutorials.html">Tutorials</a><ul class="current">
 <li class="toctree-l2"><a class="reference internal" href="../../../blinky/blinky.html">Project Blinky</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../repo/add_repos.html">Working with repositories</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
 <li class="toctree-l2 current"><a class="reference internal" href="../../ble.html">Bluetooth Low Energy</a><ul class="current">
 <li class="toctree-l3"><a class="reference internal" href="../../ble_bare_bones.html">Set up a bare bones NimBLE application</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../../ibeacon.html">BLE iBeacon</a></li>
diff --git a/develop/tutorials/ble/bleprph/bleprph-sections/bleprph-chr-access.html b/develop/tutorials/ble/bleprph/bleprph-sections/bleprph-chr-access.html
index 4a872fec62..74dc50b74d 100644
--- a/develop/tutorials/ble/bleprph/bleprph-sections/bleprph-chr-access.html
+++ b/develop/tutorials/ble/bleprph/bleprph-sections/bleprph-chr-access.html
@@ -227,6 +227,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 <li class="toctree-l1 current"><a class="reference internal" href="../../../tutorials.html">Tutorials</a><ul class="current">
 <li class="toctree-l2"><a class="reference internal" href="../../../blinky/blinky.html">Project Blinky</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../repo/add_repos.html">Working with repositories</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
 <li class="toctree-l2 current"><a class="reference internal" href="../../ble.html">Bluetooth Low Energy</a><ul class="current">
 <li class="toctree-l3"><a class="reference internal" href="../../ble_bare_bones.html">Set up a bare bones NimBLE application</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../../ibeacon.html">BLE iBeacon</a></li>
diff --git a/develop/tutorials/ble/bleprph/bleprph-sections/bleprph-gap-event.html b/develop/tutorials/ble/bleprph/bleprph-sections/bleprph-gap-event.html
index 4b9e56c2c2..d331acce7f 100644
--- a/develop/tutorials/ble/bleprph/bleprph-sections/bleprph-gap-event.html
+++ b/develop/tutorials/ble/bleprph/bleprph-sections/bleprph-gap-event.html
@@ -227,6 +227,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 <li class="toctree-l1 current"><a class="reference internal" href="../../../tutorials.html">Tutorials</a><ul class="current">
 <li class="toctree-l2"><a class="reference internal" href="../../../blinky/blinky.html">Project Blinky</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../repo/add_repos.html">Working with repositories</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
 <li class="toctree-l2 current"><a class="reference internal" href="../../ble.html">Bluetooth Low Energy</a><ul class="current">
 <li class="toctree-l3"><a class="reference internal" href="../../ble_bare_bones.html">Set up a bare bones NimBLE application</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../../ibeacon.html">BLE iBeacon</a></li>
diff --git a/develop/tutorials/ble/bleprph/bleprph-sections/bleprph-svc-reg.html b/develop/tutorials/ble/bleprph/bleprph-sections/bleprph-svc-reg.html
index 1e5db1d4f2..a07eb5430d 100644
--- a/develop/tutorials/ble/bleprph/bleprph-sections/bleprph-svc-reg.html
+++ b/develop/tutorials/ble/bleprph/bleprph-sections/bleprph-svc-reg.html
@@ -227,6 +227,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 <li class="toctree-l1 current"><a class="reference internal" href="../../../tutorials.html">Tutorials</a><ul class="current">
 <li class="toctree-l2"><a class="reference internal" href="../../../blinky/blinky.html">Project Blinky</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../repo/add_repos.html">Working with repositories</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
 <li class="toctree-l2 current"><a class="reference internal" href="../../ble.html">Bluetooth Low Energy</a><ul class="current">
 <li class="toctree-l3"><a class="reference internal" href="../../ble_bare_bones.html">Set up a bare bones NimBLE application</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../../ibeacon.html">BLE iBeacon</a></li>
diff --git a/develop/tutorials/ble/bleprph/bleprph.html b/develop/tutorials/ble/bleprph/bleprph.html
index 6ab8e02639..46f70db56c 100644
--- a/develop/tutorials/ble/bleprph/bleprph.html
+++ b/develop/tutorials/ble/bleprph/bleprph.html
@@ -225,6 +225,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 <li class="toctree-l1 current"><a class="reference internal" href="../../tutorials.html">Tutorials</a><ul class="current">
 <li class="toctree-l2"><a class="reference internal" href="../../blinky/blinky.html">Project Blinky</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../repo/add_repos.html">Working with repositories</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
 <li class="toctree-l2 current"><a class="reference internal" href="../ble.html">Bluetooth Low Energy</a><ul class="current">
 <li class="toctree-l3"><a class="reference internal" href="../ble_bare_bones.html">Set up a bare bones NimBLE application</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../ibeacon.html">BLE iBeacon</a></li>
diff --git a/develop/tutorials/ble/eddystone.html b/develop/tutorials/ble/eddystone.html
index 5eeb5ef128..3139aa8a15 100644
--- a/develop/tutorials/ble/eddystone.html
+++ b/develop/tutorials/ble/eddystone.html
@@ -225,6 +225,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 <li class="toctree-l1 current"><a class="reference internal" href="../tutorials.html">Tutorials</a><ul class="current">
 <li class="toctree-l2"><a class="reference internal" href="../blinky/blinky.html">Project Blinky</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../repo/add_repos.html">Working with repositories</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
 <li class="toctree-l2 current"><a class="reference internal" href="ble.html">Bluetooth Low Energy</a><ul class="current">
 <li class="toctree-l3"><a class="reference internal" href="ble_bare_bones.html">Set up a bare bones NimBLE application</a></li>
 <li class="toctree-l3"><a class="reference internal" href="ibeacon.html">BLE iBeacon</a></li>
diff --git a/develop/tutorials/ble/ibeacon.html b/develop/tutorials/ble/ibeacon.html
index b14bd0365d..e218687c1f 100644
--- a/develop/tutorials/ble/ibeacon.html
+++ b/develop/tutorials/ble/ibeacon.html
@@ -225,6 +225,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 <li class="toctree-l1 current"><a class="reference internal" href="../tutorials.html">Tutorials</a><ul class="current">
 <li class="toctree-l2"><a class="reference internal" href="../blinky/blinky.html">Project Blinky</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../repo/add_repos.html">Working with repositories</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
 <li class="toctree-l2 current"><a class="reference internal" href="ble.html">Bluetooth Low Energy</a><ul class="current">
 <li class="toctree-l3"><a class="reference internal" href="ble_bare_bones.html">Set up a bare bones NimBLE application</a></li>
 <li class="toctree-l3 current"><a class="current reference internal" href="#">BLE iBeacon</a></li>
diff --git a/develop/tutorials/blinky/arduino_zero.html b/develop/tutorials/blinky/arduino_zero.html
index db55a11240..855813ac49 100644
--- a/develop/tutorials/blinky/arduino_zero.html
+++ b/develop/tutorials/blinky/arduino_zero.html
@@ -234,6 +234,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 </ul>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../repo/add_repos.html">Working with repositories</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../ble/ble.html">Bluetooth Low Energy</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../lora/lorawanapp.html">LoRa</a></li>
 </ul>
diff --git a/develop/tutorials/blinky/blinky.html b/develop/tutorials/blinky/blinky.html
index bd9f40ca04..4d45cb9914 100644
--- a/develop/tutorials/blinky/blinky.html
+++ b/develop/tutorials/blinky/blinky.html
@@ -232,6 +232,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 </ul>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../repo/add_repos.html">Working with repositories</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../ble/ble.html">Bluetooth Low Energy</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../lora/lorawanapp.html">LoRa</a></li>
 </ul>
@@ -334,8 +335,8 @@ <h2><a class="toc-backref" href="#id4">Overview of Steps</a><a class="headerlink
 <li>See the LED on your board blink.</li>
 </ul>
 <p>After you try the Blinky application on your boards, checkout out other
-tutorials to enable additional functionality such as <span class="xref std std-doc">remote
-comms</span> on the current board. If you have BLE
+tutorials to enable additional functionality such as <a class="reference internal" href="../slinky/project-slinky.html"><span class="doc">remote
+comms</span></a> on the current board. If you have BLE
 (Bluetooth Low Energy) chip (e.g. nRF52) on your board, you can try
 turning it into an :doc`iBeacon &lt;../ble/ibeacon&gt;` or <a class="reference internal" href="../ble/eddystone.html"><span class="doc">Eddystone
 Beacon</span></a>!</p>
diff --git a/develop/tutorials/blinky/blinky_console.html b/develop/tutorials/blinky/blinky_console.html
index c5daa2fe48..368ebe85da 100644
--- a/develop/tutorials/blinky/blinky_console.html
+++ b/develop/tutorials/blinky/blinky_console.html
@@ -234,6 +234,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 </ul>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../repo/add_repos.html">Working with repositories</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../ble/ble.html">Bluetooth Low Energy</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../lora/lorawanapp.html">LoRa</a></li>
 </ul>
diff --git a/develop/tutorials/blinky/blinky_primo.html b/develop/tutorials/blinky/blinky_primo.html
index 78fd444ddf..c79b5a9372 100644
--- a/develop/tutorials/blinky/blinky_primo.html
+++ b/develop/tutorials/blinky/blinky_primo.html
@@ -234,6 +234,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 </ul>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../repo/add_repos.html">Working with repositories</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../ble/ble.html">Bluetooth Low Energy</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../lora/lorawanapp.html">LoRa</a></li>
 </ul>
diff --git a/develop/tutorials/blinky/blinky_stm32f4disc.html b/develop/tutorials/blinky/blinky_stm32f4disc.html
index efe5ef70ed..a122de2589 100644
--- a/develop/tutorials/blinky/blinky_stm32f4disc.html
+++ b/develop/tutorials/blinky/blinky_stm32f4disc.html
@@ -234,6 +234,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 </ul>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../repo/add_repos.html">Working with repositories</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../ble/ble.html">Bluetooth Low Energy</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../lora/lorawanapp.html">LoRa</a></li>
 </ul>
diff --git a/develop/tutorials/blinky/nRF52.html b/develop/tutorials/blinky/nRF52.html
index d5951970b3..3082a37b47 100644
--- a/develop/tutorials/blinky/nRF52.html
+++ b/develop/tutorials/blinky/nRF52.html
@@ -234,6 +234,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 </ul>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../repo/add_repos.html">Working with repositories</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../ble/ble.html">Bluetooth Low Energy</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../lora/lorawanapp.html">LoRa</a></li>
 </ul>
diff --git a/develop/tutorials/blinky/olimex.html b/develop/tutorials/blinky/olimex.html
index d0877c196d..6a2aa81560 100644
--- a/develop/tutorials/blinky/olimex.html
+++ b/develop/tutorials/blinky/olimex.html
@@ -234,6 +234,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 </ul>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../repo/add_repos.html">Working with repositories</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../ble/ble.html">Bluetooth Low Energy</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../lora/lorawanapp.html">LoRa</a></li>
 </ul>
diff --git a/develop/tutorials/blinky/rbnano2.html b/develop/tutorials/blinky/rbnano2.html
index 7a3844dc4b..4e5f0d1794 100644
--- a/develop/tutorials/blinky/rbnano2.html
+++ b/develop/tutorials/blinky/rbnano2.html
@@ -234,6 +234,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 </ul>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="../repo/add_repos.html">Working with repositories</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../ble/ble.html">Bluetooth Low Energy</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../lora/lorawanapp.html">LoRa</a></li>
 </ul>
diff --git a/develop/tutorials/codesize.html b/develop/tutorials/codesize.html
new file mode 100644
index 0000000000..95e09d1d97
--- /dev/null
+++ b/develop/tutorials/codesize.html
@@ -0,0 +1,363 @@
+
+
+<!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">
+
+    
+
+    
+    <title>How to Reduce Application Code Size &mdash; Apache Mynewt 1.3.0 documentation</title>
+    
+
+    
+    
+      <link rel="shortcut icon" href="../_static/mynewt-logo-only-newt32x32.png"/>
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+
+    
+      <link rel="stylesheet" href="../_static/css/sphinx_theme.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/v2.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/restructuredtext.css" type="text/css" />
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/overrides.css" type="text/css" />
+          <link rel="index" title="Index"
+                href="../genindex.html"/>
+          <link rel="search" title="Search" href="../search.html"/>
+      <link rel="top" title="Apache Mynewt 1.3.0 documentation" href="../index.html"/> 
+
+    
+    <script src="../_static/js/modernizr.min.js"></script>
+
+    
+    <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="not-front page-documentation" role="document" >
+    <div id="wrapper">
+      <div class="container">
+    <div id="banner" class="row v2-main-banner">
+        <a class="logo-cell" href="/">
+            <img class="logo" src="../_static/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.3.0</a> released (December 13, 2017)
+            </div>
+        </div>
+    </div>
+</div>
+      
+<header>
+    <nav id="navbar" class="navbar navbar-inverse" 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>
+                        <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
+                    </li>
+                    <li class="important">
+                        <a href="/get_started/quick_start.html">Quick Start</a>
+                    </li>
+                    <li>
+                        <a href="/about/">About</a>
+                    </li>
+                    <li>
+                        <a href="/talks/">Talks</a>
+                    </li>
+                    <li class="active">
+                        <a href="/documentation/">Documentation</a>
+                    </li>
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    <li>
+                        <a href="/community/">Community</a>
+                    </li>
+                    <li>
+                        <a href="/events/">Events</a>
+                    </li>
+                </ul>
+
+                <!-- Search, Navigation and Repo links -->
+                <ul class="nav navbar-nav navbar-right">
+                    
+                </ul>
+            </div>
+        </div>
+    </nav>
+</header>
+      <!-- STARTS MAIN CONTENT -->
+      <div id="main-content">
+        
+
+
+
+
+
+<div id="breadcrumb">
+  <div class="container">
+    <a href="/documentation/">Docs</a> /
+    
+    How to Reduce Application Code Size
+    
+  <div class="sourcelink">
+    <a href="https://github.com/apache/mynewt-documentation/edit/master/docs/tutorials/codesize.rst" class="icon icon-github"
+           rel="nofollow"> Edit on GitHub</a>
+</div>
+  </div>
+</div>
+        <!-- STARTS CONTAINER -->
+        <div class="container">
+          <!-- STARTS .content -->
+          <div id="content" class="row">
+            
+            <!-- STARTS .container-sidebar -->
+<div class="container-sidebar col-xs-12 col-sm-3">
+  <div id="docSidebar" class="sticky-container">
+    <div role="search" class="sphinx-search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+    
+<!-- Note: only works when deployed -->
+<select class="form-control" onchange="if (this.value) window.location.href=this.value">
+    <option
+      value="/develop"
+      selected
+      >
+      Version: develop (latest - mynewt-documentation)
+    </option>
+    <option
+      value="/latest/os/introduction"
+      >
+      Version: master (latest - mynewt-site)
+    </option>
+    <option
+      value="/v1_2_0/os/introduction"
+      >
+      Version: 1.2.0
+    </option>
+    <option
+      value="/v1_1_0/os/introduction">
+      Version: 1.1.0
+    </option>
+    <option
+      value="/v1_0_0/os/introduction">
+      Version: 1.0.0
+    </option>
+    <option
+      value="/v0_9_0/os/introduction">
+      Version: 0_9_0
+    </option>
+</select>
+    <div class="region region-sidebar">
+      <div class="docs-menu">
+      
+        
+        
+            <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../get_started/index.html">Setup &amp; Get Started</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../concepts.html">Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="tutorials.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../os/os_user_guide.html">OS User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../network/ble/ble_intro.html">BLE User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newt/index.html">Newt Tool Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newtmgr/index.html">Newt Manager Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../misc/index.html">Appendix</a></li>
+</ul>
+
+        
+      
+      </div>
+    </div>
+  </div>
+  <!-- ENDS STICKY CONTAINER -->
+</div>
+<!-- ENDS .container-sidebar -->
+
+            <div class="col-xs-12 col-sm-9">
+              <div class="alert alert-info" role="alert">
+  <p>
+    This is the development version of Apache Mynewt documentation. As such it may not be as complete as the latest
+    stable version of the documentation found <a href="/latest/os/introduction/">here</a>.
+  </p>
+  <p>
+    To improve this documentation please visit <a href="https://github.com/apache/mynewt-documentation">https://github.com/apache/mynewt-documentation</a>.
+  </p>
+</div>
+              
+              <div class="">
+                <div class="rst-content">
+                  <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+                   <div itemprop="articleBody">
+                    
+  <div class="section" id="how-to-reduce-application-code-size">
+<h1>How to Reduce Application Code Size<a class="headerlink" href="#how-to-reduce-application-code-size" title="Permalink to this headline">?</a></h1>
+<p>Gettng your application to fit in an image slot can be challenging,
+particularly on flash constrained hardware such as the nRF51. Below are
+some suggested system configuration settings that reduce the code size
+of your Mynewt image.</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="35%" />
+<col width="65%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Setting</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>LOG_LEVEL: 255</td>
+<td>Disable all logging.</td>
+</tr>
+<tr class="row-odd"><td>LOG_CLI: 0</td>
+<td>Disable log shell commands.</td>
+</tr>
+<tr class="row-even"><td>STATS_CLI: 0</td>
+<td>Disable stats shell commands.</td>
+</tr>
+<tr class="row-odd"><td>SHELL_TASK: 0</td>
+<td>Disable the interactive shell.</td>
+</tr>
+<tr class="row-even"><td>SHELL_OS_MODULE: 0</td>
+<td>Disable memory management shell commands.</td>
+</tr>
+<tr class="row-odd"><td>SHELL_CMD_HELP: 0</td>
+<td>Disable help for shell commands.</td>
+</tr>
+</tbody>
+</table>
+<p>You can use the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">target</span> <span class="pre">set</span></code> command to set the syscfg settings
+in the <code class="docutils literal notranslate"><span class="pre">syscfg.yml</span></code> file for the target. See the <a class="reference external" href="/newt/command_list/newt_target">Newt Tool Command
+Guide</a> for the command syntax.</p>
+<p><strong>Note:</strong> The <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">target</span> <span class="pre">set</span></code> command deletes all the current syscfg
+settings in the target <code class="docutils literal notranslate"><span class="pre">syscfg.yml</span></code> file and only sets the syscfg
+settings specified in the command. If you are experimenting with
+different settings to see how they affect the code size and do not want
+to reenter all the setting values in the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">target</span> <span class="pre">set</span></code> command,
+you can use the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">target</span> <span class="pre">amend</span></code> command. This command adds or
+updates only the settings specified in the command and does not
+overwrite other setting values. While you can also edit the target
+<code class="docutils literal notranslate"><span class="pre">syscfg.yml</span></code> file directly, we recommend that you use the
+<code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">target</span></code> commands.</p>
+</div>
+
+
+                   </div>
+                  </div>
+                  
+                </div>
+              </div>
+            </div>
+            <!-- ENDS CONTENT SECTION -->
+          </div>
+          <!-- ENDS .content -->
+        </div>
+      </div>
+      <footer>
+  <div class="container">
+    <div class="row">
+      <div class="col-xs-12">
+          
+              <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
+          
+      </div>
+      <div class="col-xs-12">
+          <div class="logos">
+              <img src="../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
+              <small class="footnote">
+                Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
+                registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
+              </small>
+              <a href="https://join.slack.com/mynewt/shared_invite/MTkwMTg1ODM1NTg5LTE0OTYxNzQ4NzQtZTU1YmNhYjhkMg">
+                <img src="../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
+              </a>
+          </div>
+      </div>
+    </div>
+  </div>
+</footer>
+    </div>
+    <!-- ENDS #wrapper -->
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'1.3.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true,
+            SOURCELINK_SUFFIX: '.txt'
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="../_static/js/bootstrap-3.0.3.min.js"></script>
+      <script type="text/javascript" src="../_static/js/affix.js"></script>
+      <script type="text/javascript" src="../_static/js/main.js"></script>
+
+   
+
+  </body>
+</html>
\ No newline at end of file
diff --git a/develop/tutorials/define_target.html b/develop/tutorials/define_target.html
new file mode 100644
index 0000000000..1f27894db4
--- /dev/null
+++ b/develop/tutorials/define_target.html
@@ -0,0 +1,316 @@
+
+
+<!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">
+
+    
+
+    
+    <title>How to Define a Target &mdash; Apache Mynewt 1.3.0 documentation</title>
+    
+
+    
+    
+      <link rel="shortcut icon" href="../_static/mynewt-logo-only-newt32x32.png"/>
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+
+    
+      <link rel="stylesheet" href="../_static/css/sphinx_theme.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/v2.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/restructuredtext.css" type="text/css" />
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/overrides.css" type="text/css" />
+          <link rel="index" title="Index"
+                href="../genindex.html"/>
+          <link rel="search" title="Search" href="../search.html"/>
+      <link rel="top" title="Apache Mynewt 1.3.0 documentation" href="../index.html"/> 
+
+    
+    <script src="../_static/js/modernizr.min.js"></script>
+
+    
+    <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="not-front page-documentation" role="document" >
+    <div id="wrapper">
+      <div class="container">
+    <div id="banner" class="row v2-main-banner">
+        <a class="logo-cell" href="/">
+            <img class="logo" src="../_static/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.3.0</a> released (December 13, 2017)
+            </div>
+        </div>
+    </div>
+</div>
+      
+<header>
+    <nav id="navbar" class="navbar navbar-inverse" 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>
+                        <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
+                    </li>
+                    <li class="important">
+                        <a href="/get_started/quick_start.html">Quick Start</a>
+                    </li>
+                    <li>
+                        <a href="/about/">About</a>
+                    </li>
+                    <li>
+                        <a href="/talks/">Talks</a>
+                    </li>
+                    <li class="active">
+                        <a href="/documentation/">Documentation</a>
+                    </li>
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    <li>
+                        <a href="/community/">Community</a>
+                    </li>
+                    <li>
+                        <a href="/events/">Events</a>
+                    </li>
+                </ul>
+
+                <!-- Search, Navigation and Repo links -->
+                <ul class="nav navbar-nav navbar-right">
+                    
+                </ul>
+            </div>
+        </div>
+    </nav>
+</header>
+      <!-- STARTS MAIN CONTENT -->
+      <div id="main-content">
+        
+
+
+
+
+
+<div id="breadcrumb">
+  <div class="container">
+    <a href="/documentation/">Docs</a> /
+    
+    How to Define a Target
+    
+  <div class="sourcelink">
+    <a href="https://github.com/apache/mynewt-documentation/edit/master/docs/tutorials/define_target.rst" class="icon icon-github"
+           rel="nofollow"> Edit on GitHub</a>
+</div>
+  </div>
+</div>
+        <!-- STARTS CONTAINER -->
+        <div class="container">
+          <!-- STARTS .content -->
+          <div id="content" class="row">
+            
+            <!-- STARTS .container-sidebar -->
+<div class="container-sidebar col-xs-12 col-sm-3">
+  <div id="docSidebar" class="sticky-container">
+    <div role="search" class="sphinx-search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+    
+<!-- Note: only works when deployed -->
+<select class="form-control" onchange="if (this.value) window.location.href=this.value">
+    <option
+      value="/develop"
+      selected
+      >
+      Version: develop (latest - mynewt-documentation)
+    </option>
+    <option
+      value="/latest/os/introduction"
+      >
+      Version: master (latest - mynewt-site)
+    </option>
+    <option
+      value="/v1_2_0/os/introduction"
+      >
+      Version: 1.2.0
+    </option>
+    <option
+      value="/v1_1_0/os/introduction">
+      Version: 1.1.0
+    </option>
+    <option
+      value="/v1_0_0/os/introduction">
+      Version: 1.0.0
+    </option>
+    <option
+      value="/v0_9_0/os/introduction">
+      Version: 0_9_0
+    </option>
+</select>
+    <div class="region region-sidebar">
+      <div class="docs-menu">
+      
+        
+        
+            <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../get_started/index.html">Setup &amp; Get Started</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../concepts.html">Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="tutorials.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../os/os_user_guide.html">OS User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../network/ble/ble_intro.html">BLE User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newt/index.html">Newt Tool Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newtmgr/index.html">Newt Manager Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../misc/index.html">Appendix</a></li>
+</ul>
+
+        
+      
+      </div>
+    </div>
+  </div>
+  <!-- ENDS STICKY CONTAINER -->
+</div>
+<!-- ENDS .container-sidebar -->
+
+            <div class="col-xs-12 col-sm-9">
+              <div class="alert alert-info" role="alert">
+  <p>
+    This is the development version of Apache Mynewt documentation. As such it may not be as complete as the latest
+    stable version of the documentation found <a href="/latest/os/introduction/">here</a>.
+  </p>
+  <p>
+    To improve this documentation please visit <a href="https://github.com/apache/mynewt-documentation">https://github.com/apache/mynewt-documentation</a>.
+  </p>
+</div>
+              
+              <div class="">
+                <div class="rst-content">
+                  <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+                   <div itemprop="articleBody">
+                    
+  <div class="section" id="how-to-define-a-target">
+<h1>How to Define a Target<a class="headerlink" href="#how-to-define-a-target" title="Permalink to this headline">?</a></h1>
+<p>What newt commands to use?</p>
+</div>
+
+
+                   </div>
+                  </div>
+                  
+                </div>
+              </div>
+            </div>
+            <!-- ENDS CONTENT SECTION -->
+          </div>
+          <!-- ENDS .content -->
+        </div>
+      </div>
+      <footer>
+  <div class="container">
+    <div class="row">
+      <div class="col-xs-12">
+          
+              <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
+          
+      </div>
+      <div class="col-xs-12">
+          <div class="logos">
+              <img src="../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
+              <small class="footnote">
+                Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
+                registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
+              </small>
+              <a href="https://join.slack.com/mynewt/shared_invite/MTkwMTg1ODM1NTg5LTE0OTYxNzQ4NzQtZTU1YmNhYjhkMg">
+                <img src="../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
+              </a>
+          </div>
+      </div>
+    </div>
+  </div>
+</footer>
+    </div>
+    <!-- ENDS #wrapper -->
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'1.3.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true,
+            SOURCELINK_SUFFIX: '.txt'
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="../_static/js/bootstrap-3.0.3.min.js"></script>
+      <script type="text/javascript" src="../_static/js/affix.js"></script>
+      <script type="text/javascript" src="../_static/js/main.js"></script>
+
+   
+
+  </body>
+</html>
\ No newline at end of file
diff --git a/develop/tutorials/event_queue.html b/develop/tutorials/event_queue.html
new file mode 100644
index 0000000000..f67e1bf293
--- /dev/null
+++ b/develop/tutorials/event_queue.html
@@ -0,0 +1,806 @@
+
+
+<!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">
+
+    
+
+    
+    <title>How to Use Event Queues to Manage Multiple Events &mdash; Apache Mynewt 1.3.0 documentation</title>
+    
+
+    
+    
+      <link rel="shortcut icon" href="../_static/mynewt-logo-only-newt32x32.png"/>
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+
+    
+      <link rel="stylesheet" href="../_static/css/sphinx_theme.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/v2.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/restructuredtext.css" type="text/css" />
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/overrides.css" type="text/css" />
+          <link rel="index" title="Index"
+                href="../genindex.html"/>
+          <link rel="search" title="Search" href="../search.html"/>
+      <link rel="top" title="Apache Mynewt 1.3.0 documentation" href="../index.html"/> 
+
+    
+    <script src="../_static/js/modernizr.min.js"></script>
+
+    
+    <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="not-front page-documentation" role="document" >
+    <div id="wrapper">
+      <div class="container">
+    <div id="banner" class="row v2-main-banner">
+        <a class="logo-cell" href="/">
+            <img class="logo" src="../_static/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.3.0</a> released (December 13, 2017)
+            </div>
+        </div>
+    </div>
+</div>
+      
+<header>
+    <nav id="navbar" class="navbar navbar-inverse" 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>
+                        <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
+                    </li>
+                    <li class="important">
+                        <a href="/get_started/quick_start.html">Quick Start</a>
+                    </li>
+                    <li>
+                        <a href="/about/">About</a>
+                    </li>
+                    <li>
+                        <a href="/talks/">Talks</a>
+                    </li>
+                    <li class="active">
+                        <a href="/documentation/">Documentation</a>
+                    </li>
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    <li>
+                        <a href="/community/">Community</a>
+                    </li>
+                    <li>
+                        <a href="/events/">Events</a>
+                    </li>
+                </ul>
+
+                <!-- Search, Navigation and Repo links -->
+                <ul class="nav navbar-nav navbar-right">
+                    
+                </ul>
+            </div>
+        </div>
+    </nav>
+</header>
+      <!-- STARTS MAIN CONTENT -->
+      <div id="main-content">
+        
+
+
+
+
+
+<div id="breadcrumb">
+  <div class="container">
+    <a href="/documentation/">Docs</a> /
+    
+    How to Use Event Queues to Manage Multiple Events
+    
+  <div class="sourcelink">
+    <a href="https://github.com/apache/mynewt-documentation/edit/master/docs/tutorials/event_queue.rst" class="icon icon-github"
+           rel="nofollow"> Edit on GitHub</a>
+</div>
+  </div>
+</div>
+        <!-- STARTS CONTAINER -->
+        <div class="container">
+          <!-- STARTS .content -->
+          <div id="content" class="row">
+            
+            <!-- STARTS .container-sidebar -->
+<div class="container-sidebar col-xs-12 col-sm-3">
+  <div id="docSidebar" class="sticky-container">
+    <div role="search" class="sphinx-search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+    
+<!-- Note: only works when deployed -->
+<select class="form-control" onchange="if (this.value) window.location.href=this.value">
+    <option
+      value="/develop"
+      selected
+      >
+      Version: develop (latest - mynewt-documentation)
+    </option>
+    <option
+      value="/latest/os/introduction"
+      >
+      Version: master (latest - mynewt-site)
+    </option>
+    <option
+      value="/v1_2_0/os/introduction"
+      >
+      Version: 1.2.0
+    </option>
+    <option
+      value="/v1_1_0/os/introduction">
+      Version: 1.1.0
+    </option>
+    <option
+      value="/v1_0_0/os/introduction">
+      Version: 1.0.0
+    </option>
+    <option
+      value="/v0_9_0/os/introduction">
+      Version: 0_9_0
+    </option>
+</select>
+    <div class="region region-sidebar">
+      <div class="docs-menu">
+      
+        
+        
+            <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../get_started/index.html">Setup &amp; Get Started</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../concepts.html">Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="tutorials.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../os/os_user_guide.html">OS User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../network/ble/ble_intro.html">BLE User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newt/index.html">Newt Tool Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newtmgr/index.html">Newt Manager Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../misc/index.html">Appendix</a></li>
+</ul>
+
+        
+      
+      </div>
+    </div>
+  </div>
+  <!-- ENDS STICKY CONTAINER -->
+</div>
+<!-- ENDS .container-sidebar -->
+
+            <div class="col-xs-12 col-sm-9">
+              <div class="alert alert-info" role="alert">
+  <p>
+    This is the development version of Apache Mynewt documentation. As such it may not be as complete as the latest
+    stable version of the documentation found <a href="/latest/os/introduction/">here</a>.
+  </p>
+  <p>
+    To improve this documentation please visit <a href="https://github.com/apache/mynewt-documentation">https://github.com/apache/mynewt-documentation</a>.
+  </p>
+</div>
+              
+              <div class="">
+                <div class="rst-content">
+                  <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+                   <div itemprop="articleBody">
+                    
+  <div class="section" id="how-to-use-event-queues-to-manage-multiple-events">
+<h1>How to Use Event Queues to Manage Multiple Events<a class="headerlink" href="#how-to-use-event-queues-to-manage-multiple-events" title="Permalink to this headline">?</a></h1>
+<div class="section" id="introduction">
+<h2>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">?</a></h2>
+<p>The event queue mechanism allows you to serialize incoming events for
+your task. You can use it to get information about hardware interrupts,
+callout expirations, and messages from other tasks.</p>
+<p>The benefit of using events for inter-task communication is that it can
+reduce the number of resources that need to be shared and locked.</p>
+<p>The benefit of processing interrupts in a task context instead of the
+interrupt context is that other interrupts and high priority tasks are
+not blocked waiting for the interrupt handler to complete processing. A
+task can also access other OS facilities and sleep.</p>
+<p>This tutorial assumes that you have read about <a class="reference external" href="../core_os/event_queue/event_queue.html">Event
+Queues</a>, the <a class="reference external" href="../modules/hal/hal.html">Hardware
+Abstraction Layer</a>, and <a class="reference external" href="../core_os/callout/callout.html">OS
+Callouts</a> in the OS User?s Guide.</p>
+<p>This tutorial shows you how to create an application that uses events
+for:</p>
+<ul class="simple">
+<li>Inter-task communication</li>
+<li>OS callouts for timer expiration</li>
+<li>GPIO interrupts</li>
+</ul>
+<p>It also shows you how to:</p>
+<ul class="simple">
+<li>Use the Mynewt default event queue and application main task to
+process your events.</li>
+<li>Create a dedicated event queue and task for your events.</li>
+</ul>
+<p>To reduce an application?s memory requirement, we recommend that you use
+the Mynewt default event queue if your application or package does not
+have real-time timing requirements.</p>
+</div>
+<div class="section" id="prerequisites">
+<h2>Prerequisites<a class="headerlink" href="#prerequisites" title="Permalink to this headline">?</a></h2>
+<p>Ensure that you have met the following prerequisites before continuing
+with this tutorial:</p>
+<ul class="simple">
+<li>Install the newt tool.</li>
+<li>Install the newtmgr tool.</li>
+<li>Have Internet connectivity to fetch remote Mynewt components.</li>
+<li>Install the compiler tools to support native compiling to build the
+project this tutorial creates.</li>
+<li>Have a cable to establish a serial USB connection between the board
+and the laptop.</li>
+</ul>
+</div>
+<div class="section" id="example-application">
+<h2>Example Application<a class="headerlink" href="#example-application" title="Permalink to this headline">?</a></h2>
+<p>In this example, you will write an application, for the Nordic nRF52
+board, that uses events from three input sources to toggle three GPIO
+outputs and light up the LEDs. If you are using a different board, you
+will need to adjust the GPIO pin numbers in the code example.</p>
+<p>The application handles events from three sources on two event queues:</p>
+<ul class="simple">
+<li>Events generated by an application task at periodic intervals are
+added to the Mynewt default event queue.</li>
+<li>OS callouts for timer events are added to the
+<code class="docutils literal notranslate"><span class="pre">my_timer_interrupt_eventq</span></code> event queue.</li>
+<li>GPIO interrupt events are added to the <code class="docutils literal notranslate"><span class="pre">my_timer_interrupt_eventq</span></code>
+event queue. #### Create the Project Follow the instructions in the
+<a class="reference external" href="nRF52.html">nRF52 tutorial</a> to create a project. #### Create the
+Application Create the <code class="docutils literal notranslate"><span class="pre">pkg.yml</span></code> file for the application:</li>
+</ul>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">pkg.name: apps/eventq_example</span>
+<span class="go">pkg.type: app</span>
+
+<span class="go">pkg.deps:</span>
+<span class="go">    - kernel/os</span>
+<span class="go">    - hw/hal</span>
+<span class="go">    - sys/console/stub</span>
+</pre></div>
+</div>
+<div class="section" id="application-task-generated-events">
+<h3>Application Task Generated Events<a class="headerlink" href="#application-task-generated-events" title="Permalink to this headline">?</a></h3>
+<p>The application creates a task that generates events, at periodic
+intervals, to toggle the LED at pin <code class="docutils literal notranslate"><span class="pre">TASK_LED</span></code>. The event is queued on
+the Mynewt default event queue and is processed in the context of the
+application main task.</p>
+<p>Declare and initialize the <code class="docutils literal notranslate"><span class="pre">gen_task_ev</span></code> event with the <code class="docutils literal notranslate"><span class="pre">my_ev_cb()</span></code>
+callback function to process the event:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>/* Callback function for application task event */
+static void my_ev_cb(struct os_event *);
+
+/* Initialize the event with the callback function */
+static struct os_event gen_task_ev = {
+    .ev_cb = my_ev_cb,
+};
+</pre></div>
+</div>
+<p>Implement the <code class="docutils literal notranslate"><span class="pre">my_ev_cb()</span></code> callback function to process a task
+generated event and toggle the LED at pin <code class="docutils literal notranslate"><span class="pre">TASK_LED</span></code>:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>/* LED 1 (P0.17 on the board) */
+#define TASK_LED        17
+
+/*
+ * Event callback function for events generated by gen_task. It toggles
+ * the LED at pin TASK_LED.
+ */
+static void my_ev_cb(struct os_event *ev)
+{
+    assert(ev);
+    hal_gpio_toggle(TASK_LED);
+    return;
+}
+</pre></div>
+</div>
+<p>Create a task that generates an event at periodic intervals and adds,
+using the <code class="docutils literal notranslate"><span class="pre">os_eventq_put()</span></code> function, the event to the Mynewt default
+event queue:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>#define GEN_TASK_PRIO       3
+#define GEN_TASK_STACK_SZ   512
+
+static os_stack_t gen_task_stack[GEN_TASK_STACK_SZ];
+static struct os_task gen_task_str;
+
+/*
+ * Task handler to generate an event to toggle the LED at pin TASK_LED.
+ * The event is added to the Mynewt default event queue.
+ */
+static void
+gen_task(void *arg)
+{
+    while (1) {
+        os_time_delay(OS_TICKS_PER_SEC / 4);
+        os_eventq_put(os_eventq_dflt_get(), &amp;gen_task_ev);
+    }
+}
+
+static void
+init_tasks(void)
+{
+
+    /* Create a task to generate events to toggle the LED at pin TASK_LED */
+
+    os_task_init(&amp;gen_task_str, &quot;gen_task&quot;, gen_task, NULL, GEN_TASK_PRIO,
+                 OS_WAIT_FOREVER, gen_task_stack, GEN_TASK_STACK_SZ);
+
+      ...
+
+}
+</pre></div>
+</div>
+<p>Implement the application <code class="docutils literal notranslate"><span class="pre">main()</span></code> function to call the
+<code class="docutils literal notranslate"><span class="pre">os_eventq_run()</span></code> function to dequeue an event from the Mynewt default
+event queue and call the callback function to process the event.</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>int
+main(int argc, char **argv)
+{
+    sysinit();
+
+    init_tasks();
+
+    while (1) {
+       os_eventq_run(os_eventq_dflt_get());
+    }
+    assert(0);
+}
+</pre></div>
+</div>
+</div>
+<div class="section" id="os-callout-timer-events">
+<h3>OS Callout Timer Events<a class="headerlink" href="#os-callout-timer-events" title="Permalink to this headline">?</a></h3>
+<p>Set up OS callout timer events. For this example, we use a dedicated
+event queue for timer events to show you how to create a dedicated event
+queue and a task to process the events.</p>
+<p>Implement the <code class="docutils literal notranslate"><span class="pre">my_timer_ev_cb()</span></code> callback function to process a timer
+event and toggle the LED at pin <code class="docutils literal notranslate"><span class="pre">CALLOUT_LED</span></code>:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>/* LED 2 (P0.18 on the board) */
+#define CALLOUT_LED     18
+
+/* The timer callout */
+static struct os_callout my_callout;
+
+/*
+ * Event callback function for timer events. It toggles the LED at pin CALLOUT_LED.
+ */
+static void my_timer_ev_cb(struct os_event *ev)
+{
+    assert(ev != NULL);
+
+    hal_gpio_toggle(CALLOUT_LED);
+
+    os_callout_reset(&amp;my_callout, OS_TICKS_PER_SEC / 2);
+}
+</pre></div>
+</div>
+<p>In the <code class="docutils literal notranslate"><span class="pre">init_tasks()</span></code> function, initialize the
+<code class="docutils literal notranslate"><span class="pre">my_timer_interrupt_eventq</span></code> event queue, create a task to process
+events from the queue, and initialize the OS callout for the timer:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>#define MY_TIMER_INTERRUPT_TASK_PRIO  4
+#define MY_TIMER_INTERRUPT_TASK_STACK_SZ    512
+
+static os_stack_t my_timer_interrupt_task_stack[MY_TIMER_INTERRUPT_TASK_STACK_SZ];
+static struct os_task my_timer_interrupt_task_str;
+
+static void
+init_tasks(void)
+{
+    /* Use a dedicate event queue for timer and interrupt events */
+
+    os_eventq_init(&amp;my_timer_interrupt_eventq);
+
+    /*
+     * Create the task to process timer and interrupt events from the
+     * my_timer_interrupt_eventq event queue.
+     */
+    os_task_init(&amp;my_timer_interrupt_task_str, &quot;timer_interrupt_task&quot;,
+                 my_timer_interrupt_task, NULL,
+                 MY_TIMER_INTERRUPT_TASK_PRIO, OS_WAIT_FOREVER,
+                 my_timer_interrupt_task_stack,
+                 MY_TIMER_INTERRUPT_TASK_STACK_SZ);
+     /*
+      * Initialize the callout for a timer event.
+      * The my_timer_ev_cb callback function processes the timer events.
+      */
+    os_callout_init(&amp;my_callout, &amp;my_timer_interrupt_eventq,
+                    my_timer_ev_cb, NULL);
+
+    os_callout_reset(&amp;my_callout, OS_TICKS_PER_SEC);
+
+}
+</pre></div>
+</div>
+<p>Implement the <code class="docutils literal notranslate"><span class="pre">my_timer_interrupt_task()</span></code> task handler to dispatch
+events from the <code class="docutils literal notranslate"><span class="pre">my_timer_interrupt_eventq</span></code> event queue:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>static void
+my_timer_interrupt_task(void *arg)
+{
+    while (1) {
+        os_eventq_run(&amp;my_timer_interrupt_eventq);
+    }
+}
+</pre></div>
+</div>
+</div>
+<div class="section" id="interrupt-events">
+<h3>Interrupt Events<a class="headerlink" href="#interrupt-events" title="Permalink to this headline">?</a></h3>
+<p>The application toggles the LED each time button 1 on the board is
+pressed. The interrupt handler generates an event when the GPIO for
+button 1 (P0.13) changes state. The events are added to the
+<code class="docutils literal notranslate"><span class="pre">my_timer_interrupt_eventq</span></code> event queue, the same queue as the timer
+events.</p>
+<p>Declare and initialize the <code class="docutils literal notranslate"><span class="pre">gpio_ev</span></code> event with the
+<code class="docutils literal notranslate"><span class="pre">my_interrupt_ev_cb()</span></code> callback function to process the event:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>static struct os_event gpio_ev {
+    .ev_cb = my_interrupt_ev_cb,
+};
+</pre></div>
+</div>
+<p>Implement the <code class="docutils literal notranslate"><span class="pre">my_interrupt_ev_cb()</span></code> callback function to process an
+interrupt event and toggle the LED at pin <code class="docutils literal notranslate"><span class="pre">GPIO_LED</span></code>:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>/* LED 3 (P0.19 on the board) */
+#define GPIO_LED     19
+
+/*
+ * Event callback function for interrupt events. It toggles the LED at pin GPIO_LED.
+ */
+static void my_interrupt_ev_cb(struct os_event *ev)
+{
+    assert(ev != NULL);
+
+    hal_gpio_toggle(GPIO_LED);
+}
+</pre></div>
+</div>
+<p>Implement the <code class="docutils literal notranslate"><span class="pre">my_gpio_irq()</span></code> handler to post an interrupt event to
+the <code class="docutils literal notranslate"><span class="pre">my_timer_interrupt_eventq</span></code> event queue:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>static void
+my_gpio_irq(void *arg)
+{
+    os_eventq_put(&amp;my_timer_interrupt_eventq, &amp;gpio_ev);
+}
+</pre></div>
+</div>
+<p>In the <code class="docutils literal notranslate"><span class="pre">init_tasks()</span></code> function, add the code to set up and enable the
+GPIO input pin for the button and initialize the GPIO output pins for
+the LEDs:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>/* LED 1 (P0.17 on the board) */
+#define TASK_LED        17
+
+/*  2 (P0.18 on the board) */
+#define CALLOUT_LED     18
+
+/* LED 3 (P0.19 on the board) */
+#define GPIO_LED        19
+
+/* Button 1 (P0.13 on the board) */
+#define BUTTON1_PIN     13
+
+void
+init_tasks()
+
+    /* Initialize OS callout for timer events. */
+
+          ....
+
+    /*
+     * Initialize and enable interrupts for the pin for button 1 and
+     * configure the button with pull up resistor on the nrf52dk.
+     */
+    hal_gpio_irq_init(BUTTON1_PIN, my_gpio_irq, NULL, HAL_GPIO_TRIG_RISING, HAL_GPIO_PULL_UP);
+
+    hal_gpio_irq_enable(BUTTON1_PIN);
+
+    /* Initialize the GPIO output pins. Value 1 is off for these LEDs.  */
+
+    hal_gpio_init_out(TASK_LED, 1);
+    hal_gpio_init_out(CALLOUT_LED, 1);
+    hal_gpio_init_out(GPIO_LED, 1);
+}
+</pre></div>
+</div>
+</div>
+</div>
+<div class="section" id="putting-it-all-together">
+<h2>Putting It All Together<a class="headerlink" href="#putting-it-all-together" title="Permalink to this headline">?</a></h2>
+<p>Here is the complete <code class="docutils literal notranslate"><span class="pre">main.c</span></code> source for your application. Build the
+application and load it on your board. The task LED (LED1) blinks at an
+interval of 250ms, the callout LED (LED2) blinks at an interval of
+500ms, and the GPIO LED (LED3) toggles on or off each time you press
+Button 1.</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>#include &lt;os/os.h&gt;
+#include &lt;bsp/bsp.h&gt;
+#include &lt;hal/hal_gpio.h&gt;
+#include &lt;assert.h&gt;
+#include &lt;sysinit/sysinit.h&gt;
+
+
+#define MY_TIMER_INTERRUPT_TASK_PRIO  4
+#define MY_TIMER_INTERRUPT_TASK_STACK_SZ    512
+
+#define GEN_TASK_PRIO       3
+#define GEN_TASK_STACK_SZ   512
+
+/* LED 1 (P0.17 on the board) */
+#define TASK_LED        17
+
+/* LED 2 (P0.18 on the board) */
+#define CALLOUT_LED     18
+
+/* LED 3 (P0.19 on the board) */
+#define GPIO_LED        19
+
+/* Button 1 (P0.13 on the board) */
+#define BUTTON1_PIN     13
+
+
+static void my_ev_cb(struct os_event *);
+static void my_timer_ev_cb(struct os_event *);
+static void my_interrupt_ev_cb(struct os_event *);
+
+static struct os_eventq my_timer_interrupt_eventq;
+
+static os_stack_t my_timer_interrupt_task_stack[MY_TIMER_INTERRUPT_TASK_STACK_SZ];
+static struct os_task my_timer_interrupt_task_str;
+
+static os_stack_t gen_task_stack[GEN_TASK_STACK_SZ];
+static struct os_task gen_task_str;
+
+static struct os_event gen_task_ev = {
+    .ev_cb = my_ev_cb,
+};
+
+static struct os_event gpio_ev = {
+    .ev_cb = my_interrupt_ev_cb,
+};
+
+
+static struct os_callout my_callout;
+
+/*
+ * Task handler to generate an event to toggle the LED at pin TASK_LED.
+ * The event is added to the Mynewt default event queue.
+ */
+
+static void
+gen_task(void *arg)
+{
+    while (1) {
+        os_time_delay(OS_TICKS_PER_SEC / 4);
+        os_eventq_put(os_eventq_dflt_get(), &amp;gen_task_ev);
+    }
+}
+
+/*
+ * Event callback function for events generated by gen_task. It toggles the LED at pin TASK_LED.
+ */
+static void my_ev_cb(struct os_event *ev)
+{
+    assert(ev);
+    hal_gpio_toggle(TASK_LED);
+    return;
+}
+
+/*
+ * Event callback function for timer events. It toggles the LED at pin CALLOUT_LED.
+ */
+static void my_timer_ev_cb(struct os_event *ev)
+{
+    assert(ev != NULL);
+
+    hal_gpio_toggle(CALLOUT_LED);
+    os_callout_reset(&amp;my_callout, OS_TICKS_PER_SEC / 2);
+}
+
+/*
+ * Event callback function for interrupt events. It toggles the LED at pin GPIO_LED.
+ */
+static void my_interrupt_ev_cb(struct os_event *ev)
+{
+    assert(ev != NULL);
+
+    hal_gpio_toggle(GPIO_LED);
+}
+
+static void
+my_gpio_irq(void *arg)
+{
+    os_eventq_put(&amp;my_timer_interrupt_eventq, &amp;gpio_ev);
+}
+
+
+
+static void
+my_timer_interrupt_task(void *arg)
+{
+    while (1) {
+        os_eventq_run(&amp;my_timer_interrupt_eventq);
+    }
+}
+
+void
+init_tasks(void)
+{
+
+    /* Create a task to generate events to toggle the LED at pin TASK_LED */
+
+    os_task_init(&amp;gen_task_str, &quot;gen_task&quot;, gen_task, NULL, GEN_TASK_PRIO,
+        OS_WAIT_FOREVER, gen_task_stack, GEN_TASK_STACK_SZ);
+
+
+    /* Use a dedicate event queue for timer and interrupt events */
+    os_eventq_init(&amp;my_timer_interrupt_eventq);
+
+    /*
+     * Create the task to process timer and interrupt events from the
+     * my_timer_interrupt_eventq event queue.
+     */
+    os_task_init(&amp;my_timer_interrupt_task_str, &quot;timer_interrupt_task&quot;,
+                 my_timer_interrupt_task, NULL,
+                 MY_TIMER_INTERRUPT_TASK_PRIO, OS_WAIT_FOREVER,
+                 my_timer_interrupt_task_stack,
+                 MY_TIMER_INTERRUPT_TASK_STACK_SZ);
+
+    /*
+     * Initialize the callout for a timer event.
+     * The my_timer_ev_cb callback function processes the timer event.
+     */
+    os_callout_init(&amp;my_callout, &amp;my_timer_interrupt_eventq,
+                    my_timer_ev_cb, NULL);
+
+    os_callout_reset(&amp;my_callout, OS_TICKS_PER_SEC);
+
+    /*
+     * Initialize and enable interrupt for the pin for button 1 and
+     * configure the button with pull up resistor on the nrf52dk.
+     */
+    hal_gpio_irq_init(BUTTON1_PIN, my_gpio_irq, NULL, HAL_GPIO_TRIG_RISING, HAL_GPIO_PULL_UP);
+
+    hal_gpio_irq_enable(BUTTON1_PIN);
+
+    hal_gpio_init_out(TASK_LED, 1);
+    hal_gpio_init_out(CALLOUT_LED, 1);
+    hal_gpio_init_out(GPIO_LED, 1);
+}
+
+int
+main(int argc, char **argv)
+{
+    sysinit();
+
+    init_tasks();
+
+    while (1) {
+       os_eventq_run(os_eventq_dflt_get());
+    }
+    assert(0);
+}
+</pre></div>
+</div>
+</div>
+</div>
+
+
+                   </div>
+                  </div>
+                  
+                </div>
+              </div>
+            </div>
+            <!-- ENDS CONTENT SECTION -->
+          </div>
+          <!-- ENDS .content -->
+        </div>
+      </div>
+      <footer>
+  <div class="container">
+    <div class="row">
+      <div class="col-xs-12">
+          
+              <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
+          
+      </div>
+      <div class="col-xs-12">
+          <div class="logos">
+              <img src="../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
+              <small class="footnote">
+                Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
+                registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
+              </small>
+              <a href="https://join.slack.com/mynewt/shared_invite/MTkwMTg1ODM1NTg5LTE0OTYxNzQ4NzQtZTU1YmNhYjhkMg">
+                <img src="../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
+              </a>
+          </div>
+      </div>
+    </div>
+  </div>
+</footer>
+    </div>
+    <!-- ENDS #wrapper -->
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'1.3.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true,
+            SOURCELINK_SUFFIX: '.txt'
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="../_static/js/bootstrap-3.0.3.min.js"></script>
+      <script type="text/javascript" src="../_static/js/affix.js"></script>
+      <script type="text/javascript" src="../_static/js/main.js"></script>
+
+   
+
+  </body>
+</html>
\ No newline at end of file
diff --git a/develop/tutorials/lora/lorawanapp.html b/develop/tutorials/lora/lorawanapp.html
index 8b52f09b3e..995d271a54 100644
--- a/develop/tutorials/lora/lorawanapp.html
+++ b/develop/tutorials/lora/lorawanapp.html
@@ -223,6 +223,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 <li class="toctree-l1 current"><a class="reference internal" href="../tutorials.html">Tutorials</a><ul class="current">
 <li class="toctree-l2"><a class="reference internal" href="../blinky/blinky.html">Project Blinky</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../repo/add_repos.html">Working with repositories</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../ble/ble.html">Bluetooth Low Energy</a></li>
 <li class="toctree-l2 current"><a class="current reference internal" href="#">LoRa</a></li>
 </ul>
diff --git a/develop/tutorials/nrf52_adc.html b/develop/tutorials/nrf52_adc.html
new file mode 100644
index 0000000000..5f87c19279
--- /dev/null
+++ b/develop/tutorials/nrf52_adc.html
@@ -0,0 +1,1038 @@
+
+
+<!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">
+
+    
+
+    
+    <title>Adding an Analog Sensor on nRF52 &mdash; Apache Mynewt 1.3.0 documentation</title>
+    
+
+    
+    
+      <link rel="shortcut icon" href="../_static/mynewt-logo-only-newt32x32.png"/>
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+
+    
+      <link rel="stylesheet" href="../_static/css/sphinx_theme.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/v2.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/restructuredtext.css" type="text/css" />
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/overrides.css" type="text/css" />
+          <link rel="index" title="Index"
+                href="../genindex.html"/>
+          <link rel="search" title="Search" href="../search.html"/>
+      <link rel="top" title="Apache Mynewt 1.3.0 documentation" href="../index.html"/> 
+
+    
+    <script src="../_static/js/modernizr.min.js"></script>
+
+    
+    <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="not-front page-documentation" role="document" >
+    <div id="wrapper">
+      <div class="container">
+    <div id="banner" class="row v2-main-banner">
+        <a class="logo-cell" href="/">
+            <img class="logo" src="../_static/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.3.0</a> released (December 13, 2017)
+            </div>
+        </div>
+    </div>
+</div>
+      
+<header>
+    <nav id="navbar" class="navbar navbar-inverse" 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>
+                        <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
+                    </li>
+                    <li class="important">
+                        <a href="/get_started/quick_start.html">Quick Start</a>
+                    </li>
+                    <li>
+                        <a href="/about/">About</a>
+                    </li>
+                    <li>
+                        <a href="/talks/">Talks</a>
+                    </li>
+                    <li class="active">
+                        <a href="/documentation/">Documentation</a>
+                    </li>
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    <li>
+                        <a href="/community/">Community</a>
+                    </li>
+                    <li>
+                        <a href="/events/">Events</a>
+                    </li>
+                </ul>
+
+                <!-- Search, Navigation and Repo links -->
+                <ul class="nav navbar-nav navbar-right">
+                    
+                </ul>
+            </div>
+        </div>
+    </nav>
+</header>
+      <!-- STARTS MAIN CONTENT -->
+      <div id="main-content">
+        
+
+
+
+
+
+<div id="breadcrumb">
+  <div class="container">
+    <a href="/documentation/">Docs</a> /
+    
+    Adding an Analog Sensor on nRF52
+    
+  <div class="sourcelink">
+    <a href="https://github.com/apache/mynewt-documentation/edit/master/docs/tutorials/nrf52_adc.rst" class="icon icon-github"
+           rel="nofollow"> Edit on GitHub</a>
+</div>
+  </div>
+</div>
+        <!-- STARTS CONTAINER -->
+        <div class="container">
+          <!-- STARTS .content -->
+          <div id="content" class="row">
+            
+            <!-- STARTS .container-sidebar -->
+<div class="container-sidebar col-xs-12 col-sm-3">
+  <div id="docSidebar" class="sticky-container">
+    <div role="search" class="sphinx-search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+    
+<!-- Note: only works when deployed -->
+<select class="form-control" onchange="if (this.value) window.location.href=this.value">
+    <option
+      value="/develop"
+      selected
+      >
+      Version: develop (latest - mynewt-documentation)
+    </option>
+    <option
+      value="/latest/os/introduction"
+      >
+      Version: master (latest - mynewt-site)
+    </option>
+    <option
+      value="/v1_2_0/os/introduction"
+      >
+      Version: 1.2.0
+    </option>
+    <option
+      value="/v1_1_0/os/introduction">
+      Version: 1.1.0
+    </option>
+    <option
+      value="/v1_0_0/os/introduction">
+      Version: 1.0.0
+    </option>
+    <option
+      value="/v0_9_0/os/introduction">
+      Version: 0_9_0
+    </option>
+</select>
+    <div class="region region-sidebar">
+      <div class="docs-menu">
+      
+        
+        
+            <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../get_started/index.html">Setup &amp; Get Started</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../concepts.html">Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="tutorials.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../os/os_user_guide.html">OS User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../network/ble/ble_intro.html">BLE User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newt/index.html">Newt Tool Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newtmgr/index.html">Newt Manager Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../misc/index.html">Appendix</a></li>
+</ul>
+
+        
+      
+      </div>
+    </div>
+  </div>
+  <!-- ENDS STICKY CONTAINER -->
+</div>
+<!-- ENDS .container-sidebar -->
+
+            <div class="col-xs-12 col-sm-9">
+              <div class="alert alert-info" role="alert">
+  <p>
+    This is the development version of Apache Mynewt documentation. As such it may not be as complete as the latest
+    stable version of the documentation found <a href="/latest/os/introduction/">here</a>.
+  </p>
+  <p>
+    To improve this documentation please visit <a href="https://github.com/apache/mynewt-documentation">https://github.com/apache/mynewt-documentation</a>.
+  </p>
+</div>
+              
+              <div class="">
+                <div class="rst-content">
+                  <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+                   <div itemprop="articleBody">
+                    
+  <div class="section" id="adding-an-analog-sensor-on-nrf52">
+<h1>Adding an Analog Sensor on nRF52<a class="headerlink" href="#adding-an-analog-sensor-on-nrf52" title="Permalink to this headline">?</a></h1>
+<div class="section" id="objective">
+<h2>Objective<a class="headerlink" href="#objective" title="Permalink to this headline">?</a></h2>
+<p>We will be adding an analog sensor to the NRF52DK development board and
+using the Analog to Digital Converter (ADC) to read the values from the
+sensor. It?s also using Bluetooth to allow you to connect to the app and
+read the value of the sensor. Please see the following section for the
+required hardware in order to complete this tutorial.</p>
+</div>
+<div class="section" id="hardware-needed">
+<h2>Hardware needed<a class="headerlink" href="#hardware-needed" title="Permalink to this headline">?</a></h2>
+<ul class="simple">
+<li>nRF52 Development Kit (one of the following)<ul>
+<li>Dev Kit from Nordic - PCA 10040</li>
+<li>Eval Kit from Rigado - BMD-300-EVAL-ES</li>
+</ul>
+</li>
+<li>eTape Liquid Sensor ? buy from
+<a class="reference external" href="https://www.adafruit.com/products/1786">Adafruit</a></li>
+<li>Laptop running Mac OS</li>
+<li>It is assumed you have already installed newt tool.</li>
+<li>It is assumed you already installed native tools as described
+<a class="reference external" href="../get_started/native_tools.html">here</a></li>
+</ul>
+</div>
+<div class="section" id="create-a-project">
+<h2>Create a project.<a class="headerlink" href="#create-a-project" title="Permalink to this headline">?</a></h2>
+<p>Create a new project to hold your work. For a deeper understanding, you
+can read about project creation in <a class="reference external" href="../get_started/project_create.html">Get Started ? Creating Your First
+Project</a> or just follow the
+commands below.</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ mkdir ~/dev
+$ cd ~/dev
+$ newt new myadc
+Downloading project skeleton from apache/mynewt-blinky...
+Installing skeleton in myadc...
+Project myadc successfully created.
+$ cd myadc
+</pre></div>
+</div>
+</div>
+<div class="section" id="add-additional-repositories">
+<h2>Add Additional Repositories<a class="headerlink" href="#add-additional-repositories" title="Permalink to this headline">?</a></h2>
+<p>The board-specific libraries for the NRF52dk board are in an external
+repository at present, so you?ll need to include that remote repository
+and install it as well. If you?re not familiar with using repositories,
+see the section on <a class="reference external" href="repo/add_repos.html">repositories</a> before
+continuing. Or just copy and paste the following.</p>
+<p>In your <code class="docutils literal notranslate"><span class="pre">project.yml</span></code> file, add <code class="docutils literal notranslate"><span class="pre">mynewt_nordic</span></code> to the
+<code class="docutils literal notranslate"><span class="pre">project.repositories</span></code> section, and then add the proper repository
+definition. When you?re done, your <code class="docutils literal notranslate"><span class="pre">project.yml</span></code> file should look like
+this:</p>
+<p>```hl_lines=?5 15 16 17 18 19? project.name: ?my_project?</p>
+<p>project.repositories: - apache-mynewt-core - mynewt_nordic</p>
+<div class="section" id="use-github-s-distribution-mechanism-for-core-asf-libraries">
+<h3>Use github?s distribution mechanism for core ASF libraries.<a class="headerlink" href="#use-github-s-distribution-mechanism-for-core-asf-libraries" title="Permalink to this headline">?</a></h3>
+</div>
+<div class="section" id="this-provides-mirroring-automatically-for-us">
+<h3>This provides mirroring automatically for us.<a class="headerlink" href="#this-provides-mirroring-automatically-for-us" title="Permalink to this headline">?</a></h3>
+<p>repository.apache-mynewt-core: type: github vers: 1-latest user: apache
+repo: incubator-mynewt-core repository.mynewt_nordic: type: github
+vers: 1-latest user: runtimeco repo: mynewt_nordic</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>&lt;br&gt;
+
+### Install Everything
+
+Now that you have defined the needed repositories, it&#39;s time to install everything so
+that you can get started.
+</pre></div>
+</div>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ newt install -v
+apache-mynewt-core
+Downloading repository description for apache-mynewt-core... success!
+...
+apache-mynewt-core successfully installed version 0.9.0-none
+...
+mynewt_nordic
+Downloading repository description for mynewt_nordic... success!
+...
+mynewt_nordic successfully installed version 0.9.9-none
+</pre></div>
+</div>
+<p>```</p>
+</div>
+</div>
+<div class="section" id="create-the-targets">
+<h2>Create the targets<a class="headerlink" href="#create-the-targets" title="Permalink to this headline">?</a></h2>
+<p>Create two targets - one for the bootloader and one for the nrf52 board.</p>
+<p>Note: The correct bsp must be chosen for the board you are using.</p>
+<ul class="simple">
+<li>For the Nordic Dev Kit choose &#64;apache-mynewt-core/hw/bsp/nrf52dk
+instead (in the highlighted lines)</li>
+<li>For the Rigado Eval Kit choose &#64;apache-mynewt-core/hw/bsp/bmd300eval
+instead (in the highlighted lines)</li>
+</ul>
+<p>For the app itself we?re going to extend the
+<a class="reference external" href="belpprph/bleprph-app.html">bleprph</a> app so that we get the Bluetooth
+communications built in, so the first thing we?ll need to do is copy
+that app into our own app directory:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> mkdir -p apps/nrf52_adc
+<span class="gp">$</span> cp -Rp repos/apache-mynewt-core/apps/bleprph/* apps/nrf52_adc
+</pre></div>
+</div>
+<p>Next, you?ll modify the <code class="docutils literal notranslate"><span class="pre">pkg.yml</span></code> file for your app. Note the change
+in <code class="docutils literal notranslate"><span class="pre">pkg.name</span></code> and <code class="docutils literal notranslate"><span class="pre">pkg.description</span></code>. Also make sure that you specify
+the full path of all the packages with the prefix
+<code class="docutils literal notranslate"><span class="pre">&#64;apache-mynewt-core/</span></code> as shown in the third highlighted line.</p>
+<p>```hl_lines=?3 5 11? $ cat apps/nrf52_adc/pkg.yml ? pkg.name:
+apps/nrf52_adc pkg.type: app pkg.description: Simple BLE peripheral
+application for ADC Sensors. pkg.author: ?Apache Mynewt
+<a class="reference external" href="mailto:dev&#37;&#52;&#48;mynewt&#46;incubator&#46;apache&#46;org">dev<span>&#64;</span>mynewt<span>&#46;</span>incubator<span>&#46;</span>apache<span>&#46;</span>org</a>? pkg.homepage:
+?<a class="reference external" href="http://mynewt.apache.org/">http://mynewt.apache.org/</a>? pkg.keywords:</p>
+<p>pkg.deps: - ?&#64;apache-mynewt-core/boot/split? -
+?&#64;apache-mynewt-core/kernel/os? - ?&#64;apache-mynewt-core/mgmt/imgmgr? -
+?&#64;apache-mynewt-core/mgmt/newtmgr? -
+?&#64;apache-mynewt-core/mgmt/newtmgr/transport/ble? -
+?&#64;apache-mynewt-core/net/nimble/controller? -
+?&#64;apache-mynewt-core/net/nimble/host? -
+?&#64;apache-mynewt-core/net/nimble/host/services/ans? -
+?&#64;apache-mynewt-core/net/nimble/host/services/gap? -
+?&#64;apache-mynewt-core/net/nimble/host/services/gatt? -
+?&#64;apache-mynewt-core/net/nimble/host/store/ram? -
+?&#64;apache-mynewt-core/net/nimble/transport/ram? -
+?&#64;apache-mynewt-core/sys/console/full? -
+?&#64;apache-mynewt-core/sys/log/full? -
+?&#64;apache-mynewt-core/sys/stats/full? - ?&#64;apache-mynewt-core/sys/sysinit?
+- ?&#64;apache-mynewt-core/sys/id? ```</p>
+<p>Great! We have our very own app so let?s make sure we have all of our
+targets set correctly:</p>
+<p>```hl_lines=?3 8? $ newt target create nrf52_adc $ newt target set
+nrf52_adc app=apps/nrf52_adc Target targets/nrf52_adc successfully
+set target.app to apps/nrf52_adc $ newt target set nrf52_adc
+<a class="reference external" href="mailto:bsp=&#37;&#52;&#48;apache-mynewt-core/hw/bsp/nrf52dk">bsp=<span>&#64;</span>apache-mynewt-core/hw/bsp/nrf52dk</a> $ newt target set nrf52_adc
+build_profile=debug</p>
+<p>$ newt target create nrf52_boot $ newt target set nrf52_boot
+<a class="reference external" href="mailto:app=&#37;&#52;&#48;apache-mynewt-core/apps/boot">app=<span>&#64;</span>apache-mynewt-core/apps/boot</a> $ newt target set nrf52_boot
+<a class="reference external" href="mailto:bsp=&#37;&#52;&#48;apache-mynewt-core/hw/bsp/nrf52dk">bsp=<span>&#64;</span>apache-mynewt-core/hw/bsp/nrf52dk</a> $ newt target set nrf52_boot
+build_profile=optimized</p>
+<p>$ newt target show targets/nrf52_adc app=apps/nrf52_adc
+<a class="reference external" href="mailto:bsp=&#37;&#52;&#48;apache-mynewt-core/hw/bsp/nrf52dk">bsp=<span>&#64;</span>apache-mynewt-core/hw/bsp/nrf52dk</a> build_profile=debug
+targets/nrf52_boot <a class="reference external" href="mailto:app=&#37;&#52;&#48;apache-mynewt-core/apps/boot">app=<span>&#64;</span>apache-mynewt-core/apps/boot</a>
+<a class="reference external" href="mailto:bsp=&#37;&#52;&#48;apache-mynewt-core/hw/bsp/nrf52dk">bsp=<span>&#64;</span>apache-mynewt-core/hw/bsp/nrf52dk</a> build_profile=optimized</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>&lt;font color=&quot;#F2853F&quot;&gt;
+Note: If you&#39;ve already built and installed a bootloader for your NRF52dk then you do
+not need to create a target for it here, or build and load it as below. &lt;/font&gt;
+&lt;br&gt;
+
+### Build the target executables
+</pre></div>
+</div>
+<p>$ newt build nrf52_boot ? Compiling boot.c Archiving boot.a Linking
+boot.elf App successfully built:
+~/dev/myadc/bin/nrf52_boot/apps/boot/boot.elf</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ newt build nrf52\_adc ... Compiling main.c Archiving nrf52\_adc.a
+</pre></div>
+</div>
+<p>Linking nrf52_adc.elf App successfully built:
+~/dev/myadc/bin/nrf52_adc/apps/nrf52_adc/nrf52_adc.elf</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>&lt;br&gt;
+
+### Sign and create the nrf52_adc application image
+
+You must sign and version your application image to download it using newt to the board.
+Use the newt create-image command to perform this action. You may assign an arbitrary
+version (e.g. 1.0.0) to the image.
+</pre></div>
+</div>
+<p>$ newt create-image nrf52_adc 1.0.0 App image successfully generated:
+~/dev/myadc/bin/nrf52_adc/apps/nrf52_adc/nrf52_adc.img Build
+manifest: ~/dev/myadc/bin/nrf52_adc/apps/nrf52_adc/manifest.json</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>&lt;br&gt;
+
+### Connect the board
+
+Connect the evaluation board via micro-USB to your PC via USB cable.
+
+&lt;br&gt;
+
+### Download to the target
+
+Download the bootloader first and then the nrf52_adc executable to the target platform.
+Don&#39;t forget to reset the board if you don&#39;t see the LED blinking right away!
+</pre></div>
+</div>
+<p>$ newt load nrf52_boot $ newt load nrf52_adc</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>&lt;br&gt;
+
+**Note:** If you want to erase the flash and load the image again, you can use JLinkExe to issue an `erase` command.
+</pre></div>
+</div>
+<p>$ JLinkExe -device nRF52 -speed 4000 -if SWD SEGGER J-Link Commander
+V5.12c (Compiled Apr 21 2016 16:05:51) DLL version V5.12c, compiled Apr
+21 2016 16:05:45</p>
+<p>Connecting to J-Link via USB?O.K. Firmware: J-Link
+OB-SAM3U128-V2-NordicSemi compiled Mar 15 2016 18:03:17 Hardware
+version: V1.00 S/N: 682863966 VTref = 3.300V</p>
+<p>Type ?connect? to establish a target connection, ??? for help
+J-Link&gt;erase Cortex-M4 identified. Erasing device (0;?i?)? Comparing
+flash [100%] Done. Erasing flash [100%] Done. Verifying flash [100%]
+Done. J-Link: Flash download: Total time needed: 0.363s (Prepare:
+0.093s, Compare: 0.000s, Erase: 0.262s, Program: 0.000s, Verify: 0.000s,
+Restore: 0.008s) Erasing done. J-Link&gt;exit $ ```</p>
+<p>So you have a BLE app, but really all you?ve done is change the name of
+the <strong>bleprph</strong> app to <strong>nrf52_adc</strong> and load that. Not all that
+impressive, and it certainly won?t read an Analog Sensor right now. So
+let?s do that next. In order to read an ADC sensor, and since the ADC
+package is in an external, licensed, repository, we?ll create a driver
+for it here in our app that will leverage the existing driver in the
+external repository. It adds another layer of indirection, but it will
+also give us a look at building our own driver, so we?ll do it this way.</p>
+</div>
+<div class="section" id="building-a-driver">
+<h2>Building a Driver<a class="headerlink" href="#building-a-driver" title="Permalink to this headline">?</a></h2>
+<p>The first thing to do is to create the directory structure for your
+driver:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> mkdir -p libs/my_drivers/myadc/include/myadc
+<span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> mkdir -p libs/my_drivers/myadc/src
+</pre></div>
+</div>
+<p>Now you can add the files you need. You?ll need a pkg.yml to describe
+the driver, and then header stub followed by source stub.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">[user@IsMyLaptop:~/src/air_quality]$</span> cat libs/my_drivers/myadc/pkg.yml
+</pre></div>
+</div>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# &quot;License&quot;); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+pkg.name: libs/my_drivers/myadc
+pkg.deps:
+    - &quot;@apache-mynewt-core/hw/hal&quot;
+    - &quot;@mynewt_nordic/hw/drivers/adc/adc_nrf52&quot;
+</pre></div>
+</div>
+<p>First, let?s create the required header file <code class="docutils literal notranslate"><span class="pre">myadc.h</span></code> in the includes
+directory i.e. <code class="docutils literal notranslate"><span class="pre">libs/my_drivers/myadc/include/myadc/myadc.h</span></code>. It?s a
+pretty straightforward header file, since we only need to do 2 things:</p>
+<ul class="simple">
+<li>Initialize the ADC device</li>
+<li>Read ADC Values</li>
+</ul>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>#ifndef _NRF52_ADC_H_
+#define _NRF52_ADC_H_
+
+void * adc_init(void);
+int adc_read(void *buffer, int buffer_len);
+
+#endif /* _NRF52_ADC_H_ */
+</pre></div>
+</div>
+<p>Next we?ll need a corresponding source file <code class="docutils literal notranslate"><span class="pre">myadc.c</span></code> in the src
+directory. This is where we?ll implement the specifics of the driver:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>#include &lt;assert.h&gt;
+#include &lt;os/os.h&gt;
+/* ADC */
+#include &quot;myadc/myadc.h&quot;
+#include &quot;nrf.h&quot;
+#include &quot;app_util_platform.h&quot;
+#include &quot;app_error.h&quot;
+#include &lt;adc/adc.h&gt;
+#include &lt;adc_nrf52/adc_nrf52.h&gt;
+#include &quot;nrf_drv_saadc.h&quot;
+
+
+#define ADC_NUMBER_SAMPLES (2)
+#define ADC_NUMBER_CHANNELS (1)
+
+nrf_drv_saadc_config_t adc_config = NRF_DRV_SAADC_DEFAULT_CONFIG;
+
+struct adc_dev *adc;
+uint8_t *sample_buffer1;
+uint8_t *sample_buffer2;
+
+static struct adc_dev os_bsp_adc0;
+static nrf_drv_saadc_config_t os_bsp_adc0_config = {
+    .resolution         = MYNEWT_VAL(ADC_0_RESOLUTION),
+    .oversample         = MYNEWT_VAL(ADC_0_OVERSAMPLE),
+    .interrupt_priority = MYNEWT_VAL(ADC_0_INTERRUPT_PRIORITY),
+};
+void *
+adc_init(void)
+{
+    int rc = 0;
+
+    rc = os_dev_create((struct os_dev *) &amp;os_bsp_adc0, &quot;adc0&quot;,
+            OS_DEV_INIT_KERNEL, OS_DEV_INIT_PRIO_DEFAULT,
+            nrf52_adc_dev_init, &amp;os_bsp_adc0_config);
+    assert(rc == 0);
+    nrf_saadc_channel_config_t cc = NRF_DRV_SAADC_DEFAULT_CHANNEL_CONFIG_SE(NRF_SAADC_INPUT_AIN1);
+    cc.gain = NRF_SAADC_GAIN1_6;
+    cc.reference = NRF_SAADC_REFERENCE_INTERNAL;
+    adc = (struct adc_dev *) os_dev_open(&quot;adc0&quot;, 0, &amp;adc_config);
+    assert(adc != NULL);
+    adc_chan_config(adc, 0, &amp;cc);
+    sample_buffer1 = malloc(adc_buf_size(adc, ADC_NUMBER_CHANNELS, ADC_NUMBER_SAMPLES));
+    sample_buffer2 = malloc(adc_buf_size(adc, ADC_NUMBER_CHANNELS, ADC_NUMBER_SAMPLES));
+    memset(sample_buffer1, 0, adc_buf_size(adc, ADC_NUMBER_CHANNELS, ADC_NUMBER_SAMPLES));
+    memset(sample_buffer2, 0, adc_buf_size(adc, ADC_NUMBER_CHANNELS, ADC_NUMBER_SAMPLES));
+    adc_buf_set(adc, sample_buffer1, sample_buffer2,
+        adc_buf_size(adc, ADC_NUMBER_CHANNELS, ADC_NUMBER_SAMPLES));
+    return adc;
+}
+
+
+int
+adc_read(void *buffer, int buffer_len)
+{
+    int i;
+    int adc_result;
+    int my_result_mv = 0;
+    int rc;
+    for (i = 0; i &lt; ADC_NUMBER_SAMPLES; i++) {
+        rc = adc_buf_read(adc, buffer, buffer_len, i, &amp;adc_result);
+        if (rc != 0) {
+            goto err;
+        }
+        my_result_mv = adc_result_mv(adc, 0, adc_result);
+    }
+    adc_buf_release(adc, buffer, buffer_len);
+    return my_result_mv;
+err:
+    return (rc);
+}
+</pre></div>
+</div>
+<p>There?s a lot going on in here, so let?s walk through it step by step.</p>
+<p>First, we define a default configuration, with the resolution,
+oversample and interrupt priority. You?ll see that these are
+<code class="docutils literal notranslate"><span class="pre">MYNEWT_VAL</span></code> values, which means that we?ll define them shortly in a
+<code class="docutils literal notranslate"><span class="pre">syscfg.yml</span></code> file to be passed to the compiler at build time.</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>static struct adc_dev os_bsp_adc0;
+static nrf_drv_saadc_config_t os_bsp_adc0_config = {
+    .resolution         = MYNEWT_VAL(ADC_0_RESOLUTION),
+    .oversample         = MYNEWT_VAL(ADC_0_OVERSAMPLE),
+    .interrupt_priority = MYNEWT_VAL(ADC_0_INTERRUPT_PRIORITY),
+};
+</pre></div>
+</div>
+<p>Next, in <code class="docutils literal notranslate"><span class="pre">adc_init()</span></code> , we need to tell the OS to create the device.</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>void *
+adc_init(void)
+{
+    int rc = 0;
+
+    rc = os_dev_create((struct os_dev *) &amp;os_bsp_adc0, &quot;adc0&quot;,
+            OS_DEV_INIT_KERNEL, OS_DEV_INIT_PRIO_DEFAULT,
+            nrf52_adc_dev_init, &amp;os_bsp_adc0_config);
+    assert(rc == 0);
+    nrf_saadc_channel_config_t cc = NRF_DRV_SAADC_DEFAULT_CHANNEL_CONFIG_SE(NRF_SAADC_INPUT_AIN1);
+    cc.gain = NRF_SAADC_GAIN1_6;
+    cc.reference = NRF_SAADC_REFERENCE_INTERNAL;
+    adc = (struct adc_dev *) os_dev_open(&quot;adc0&quot;, 0, &amp;adc_config);
+    assert(adc != NULL);
+    adc_chan_config(adc, 0, &amp;cc);
+    sample_buffer1 = malloc(adc_buf_size(adc, ADC_NUMBER_CHANNELS, ADC_NUMBER_SAMPLES));
+    sample_buffer2 = malloc(adc_buf_size(adc, ADC_NUMBER_CHANNELS, ADC_NUMBER_SAMPLES));
+    memset(sample_buffer1, 0, adc_buf_size(adc, ADC_NUMBER_CHANNELS, ADC_NUMBER_SAMPLES));
+    memset(sample_buffer2, 0, adc_buf_size(adc, ADC_NUMBER_CHANNELS, ADC_NUMBER_SAMPLES));
+    adc_buf_set(adc, sample_buffer1, sample_buffer2,
+        adc_buf_size(adc, ADC_NUMBER_CHANNELS, ADC_NUMBER_SAMPLES));
+    return adc;
+}
+</pre></div>
+</div>
+<p>A few things need to be said about this part, as it is the most
+confusing. First, we?re using a <strong>default</strong> configuration for the ADC
+Channel via the <code class="docutils literal notranslate"><span class="pre">NRF_DRV_SAADC_DEFAULT_CHANNEL_CONFIG_SE</span></code> macro. The
+important part here is that we?re actually using <code class="docutils literal notranslate"><span class="pre">AIN1</span></code>. I know what
+you?re thinking, ?But we want ADC-0!? and that?s true. The board is
+actually labelled ?A0, A1, A2? etc., and the actual pin numbers are also
+listed on the board, which seems handy. At first. But it gets messy very
+quickly.</p>
+<p>If you try to use AIN0, and then go poke around in the registers while
+this is running,</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>(gdb) p/x {NRF_SAADC_Type}0x40007000
+...
+ CH = {{
+      PSELP = 0x1,
+      PSELN = 0x0,
+      CONFIG = 0x20000,
+      LIMIT = 0x7fff8000
+    },
+</pre></div>
+</div>
+<p>You?ll see that the pin for channel 0 is set to 1, which corresponds to
+AIN0, but that?s <strong>NOT</strong> the same as A0 ? pin P0.03, the one we?re
+using. For that, you use AIN1, which would set the pin value to 2.
+Messy. Someone, somewhere, thought this made sense.</p>
+<p>The only other thing to note here is that we?re using the internal
+reference voltage, rather than setting our own. There?s nothing wrong
+with that, but since we are, we?ll have to crank up the gain a bit by
+using <code class="docutils literal notranslate"><span class="pre">NRF_SAADC_GAIN1_6</span></code>.</p>
+<p>Then, in <code class="docutils literal notranslate"><span class="pre">adc_read()</span></code> we will take readings, convert the raw readings
+to a millivolt equivalent, and return the result.</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>int
+adc_read(void *buffer, int buffer_len)
+{
+    int i;
+    int adc_result;
+    int my_result_mv = 0;
+    int rc;
+    for (i = 0; i &lt; ADC_NUMBER_SAMPLES; i++) {
+        rc = adc_buf_read(adc, buffer, buffer_len, i, &amp;adc_result);
+        if (rc != 0) {
+            goto err;
+        }
+        my_result_mv = adc_result_mv(adc, 0, adc_result);
+    }
+    adc_buf_release(adc, buffer, buffer_len);
+    return my_result_mv;
+err:
+    return (rc);
+}
+</pre></div>
+</div>
+<p>Finally, we?ll need some settings for our driver, as mentioned earlier.
+In the <code class="docutils literal notranslate"><span class="pre">myadc</span></code> directory you?ll need to add a <code class="docutils literal notranslate"><span class="pre">syscfg.yml</span></code> file:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">#</span> Package: libs/my_driver/myadc
+
+<span class="go">syscfg.defs:</span>
+<span class="go">    ADC_0:</span>
+<span class="go">        description: &#39;TBD&#39;</span>
+<span class="go">        value:  1</span>
+<span class="go">    ADC_0_RESOLUTION:</span>
+<span class="go">        description: &#39;TBD&#39;</span>
+<span class="go">        value: &#39;SAADC_CONFIG_RESOLUTION&#39;</span>
+<span class="go">    ADC_0_OVERSAMPLE:</span>
+<span class="go">        description: &#39;TBD&#39;</span>
+<span class="go">        value: &#39;SAADC_CONFIG_OVERSAMPLE&#39;</span>
+<span class="go">    ADC_0_INTERRUPT_PRIORITY:</span>
+<span class="go">        description: &#39;TBD&#39;</span>
+<span class="go">        value: &#39;SAADC_CONFIG_IRQ_PRIORITY&#39;</span>
+</pre></div>
+</div>
+<p>Once that?s all done, you should have a working ADC Driver for your
+NRF52DK board. The last step in getting the driver set up is to include
+it in the package dependency defined by <code class="docutils literal notranslate"><span class="pre">pkg.deps</span></code> in the <code class="docutils literal notranslate"><span class="pre">pkg.yml</span></code>
+file of your app. Add it in <code class="docutils literal notranslate"><span class="pre">apps/nrf52_adc/pkg.yml</span></code> as shown by the
+highlighted line below.</p>
+</div>
+<div class="section" id="creating-the-adc-task">
+<h2>Creating the ADC Task<a class="headerlink" href="#creating-the-adc-task" title="Permalink to this headline">?</a></h2>
+<p>Now that the driver is done, we?ll need to add calls to the main app?s
+<code class="docutils literal notranslate"><span class="pre">main.c</span></code> file, as well as a few other things. First, we?ll need to
+update the includes, and add a task for our ADC sampling.</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>#include &quot;myadc/myadc.h&quot;
+...
+/* ADC Task settings */
+#define ADC_TASK_PRIO           5
+#define ADC_STACK_SIZE          (OS_STACK_ALIGN(336))
+struct os_eventq adc_evq;
+struct os_task adc_task;
+bssnz_t os_stack_t adc_stack[ADC_STACK_SIZE];
+</pre></div>
+</div>
+<p>Next we?ll need o initialize the task <code class="docutils literal notranslate"><span class="pre">event_q</span></code> so we?ll add the
+highlighted code to <code class="docutils literal notranslate"><span class="pre">main()</span></code> as shown below:</p>
+<p>```c hl_lines=?7 8 9 10 11 12 13 14 15? /* Set the default device
+name. */ rc = ble_svc_gap_device_name_set(?nimble-adc?); assert(rc
+== 0);</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>conf_load();
+
+/* Initialize adc sensor task eventq */
+os_eventq_init(&amp;adc_evq);
+
+/* Create the ADC reader task.
+ * All sensor operations are performed in this task.
+ */
+os_task_init(&amp;adc_task, &quot;sensor&quot;, adc_task_handler,
+        NULL, ADC_TASK_PRIO, OS_WAIT_FOREVER,
+        adc_stack, ADC_STACK_SIZE);
+</pre></div>
+</div>
+<p>``<code class="docutils literal notranslate"><span class="pre">We'll</span> <span class="pre">need</span> <span class="pre">that</span></code>adc_task_handler()<code class="docutils literal notranslate"><span class="pre">function</span> <span class="pre">to</span> <span class="pre">exist,</span> <span class="pre">and</span> <span class="pre">that's</span> <span class="pre">where</span> <span class="pre">we'll</span> <span class="pre">initialize</span> <span class="pre">the</span> <span class="pre">ADC</span> <span class="pre">Device</span> <span class="pre">and</span> <span class="pre">set</span> <span class="pre">the</span> <span class="pre">event</span> <span class="pre">handler.</span> <span class="pre">In</span> <span class="pre">the</span> <span class="pre">task's</span> <span class="pre">while()</span> <span class="pre">loop,</span> <span class="pre">we'll</span> <span class="pre">just</span> <span class="pre">make</span> <span class="pre">a</span> <span class="pre">call</s
 pan> <span class="pre">to</span></code>adc_sample()`
+to cause the ADC driver to sample the adc device.</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>/**
+ * Event loop for the sensor task.
+ */
+static void
+adc_task_handler(void *unused)
+{
+    struct adc_dev *adc;
+    int rc;
+    /* ADC init */
+    adc = adc_init();
+    rc = adc_event_handler_set(adc, adc_read_event, (void *) NULL);
+    assert(rc == 0);
+
+    while (1) {
+        adc_sample(adc);
+        /* Wait 2 second */
+        os_time_delay(OS_TICKS_PER_SEC * 2);
+    }
+}
+</pre></div>
+</div>
+<p>Above the <code class="docutils literal notranslate"><span class="pre">adc_task_handler</span></code>, add code to handle the
+<code class="docutils literal notranslate"><span class="pre">adc_read_event()</span></code> calls:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>int
+adc_read_event(struct adc_dev *dev, void *arg, uint8_t etype,
+        void *buffer, int buffer_len)
+{
+    int value;
+    uint16_t chr_val_handle;
+    int rc;
+
+    value = adc_read(buffer, buffer_len);
+    if (value &gt;= 0) {
+        console_printf(&quot;Got %d\n&quot;, value);
+    } else {
+        console_printf(&quot;Error while reading: %d\n&quot;, value);
+        goto err;
+    }
+    gatt_adc_val = value;
+    rc = ble_gatts_find_chr(&amp;gatt_svr_svc_adc_uuid.u, BLE_UUID16_DECLARE(ADC_SNS_VAL), NULL, &amp;chr_val_handle);
+    assert(rc == 0);
+    ble_gatts_chr_updated(chr_val_handle);
+    return (0);
+err:
+    return (rc);
+}
+</pre></div>
+</div>
+<p>This is where we actually read the ADC value and then update the BLE
+Characteristic for that value.</p>
+<p>But wait, we haven?t defined those BLE services and characteristics yet!
+Right, so don?t try to build and run this app just yet or it will surely
+fail. Instead, move on to the next section and get all of those services
+defined.</p>
+</div>
+<div class="section" id="building-the-ble-services">
+<h2>Building the BLE Services<a class="headerlink" href="#building-the-ble-services" title="Permalink to this headline">?</a></h2>
+<p>If the nrf52_adc app is going to be a Bluetooth-enabled sensor app that
+will allow you to read the value of the eTape Water Level Sensor via
+Bluetooth we?ll need to actually define those Services and
+Characteristics.</p>
+<p>As with the <a class="reference external" href="bleprph/bleprph-app.html">ble peripheral</a> app, we will
+advertise a couple of values from our app. The first is not strictly
+necessary, but it will help us build an iOS app later. We?ve defined a
+service and the characteristics in that service in <code class="docutils literal notranslate"><span class="pre">bleadc.h</span></code> in the
+<code class="docutils literal notranslate"><span class="pre">apps/nrf52_adc/src/</span></code> directory as follows:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>/* Sensor Data */
+/* e761d2af-1c15-4fa7-af80-b5729002b340 */
+static const ble_uuid128_t gatt_svr_svc_adc_uuid =
+        BLE_UUID128_INIT(0x40, 0xb3, 0x20, 0x90, 0x72, 0xb5, 0x80, 0xaf,
+                         0xa7, 0x4f, 0x15, 0x1c, 0xaf, 0xd2, 0x61, 0xe7);
+#define ADC_SNS_TYPE          0xDEAD
+#define ADC_SNS_STRING &quot;eTape Liquid Level Sensor&quot;
+#define ADC_SNS_VAL           0xBEAD
+extern uint16_t gatt_adc_val;
+</pre></div>
+</div>
+<p>The first is the UUID of the service, followed by the 2 characteristics
+we are going to offer. The first characteristic is going to advertise
+the <em>type</em> of sensor we are advertising, and it will be a read-only
+characteristic. The second characteristic will be the sensor value
+itself, and we will allow connected devices to ?subscribe? to it in
+order to get constantly-updated values.</p>
+<p><strong>Note:</strong> You can choose any valid Characteristic UUIDs to go here.
+We?re using these values for illustrative purposes only.</p>
+<p>The value that we?ll be updating is also defined here as
+<code class="docutils literal notranslate"><span class="pre">gatt_adc_val</span></code>.</p>
+<p>If we then go look at <code class="docutils literal notranslate"><span class="pre">gatt_srv.c</span></code> we can see the structure of the
+service and characteristic offering that we set up:</p>
+<p>```c hl_lines=?21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37?
+static const struct ble_gatt_svc_def gatt_svr_svcs` &lt;#section&gt;`__
+= { { /*** Service: Security test. <em>/ .type =
+BLE_GATT_SVC_TYPE_PRIMARY, .uuid =
+&amp;gatt_svr_svc_sec_test_uuid.u, .characteristics = (struct
+ble_gatt_chr_def` &lt;#section&gt;`__) { { /</em>** Characteristic:
+Random number generator. <em>/ .uuid =
+&amp;gatt_svr_chr_sec_test_rand_uuid.u, .access_cb =
+gatt_svr_chr_access_sec_test, .flags = BLE_GATT_CHR_F_READ |
+BLE_GATT_CHR_F_READ_ENC, }, { /</em>** Characteristic: Static
+value. <em>/ .uuid = &amp;gatt_svr_chr_sec_test_static_uuid.u,
+.access_cb = gatt_svr_chr_access_sec_test, .flags =
+BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_WRITE |
+BLE_GATT_CHR_F_WRITE_ENC, }, { 0, /</em> No more characteristics in
+this service. <em>/ } }, }, { /</em>** ADC Level Notification Service. <em>/
+.type = BLE_GATT_SVC_TYPE_PRIMARY, .uuid =
+&amp;gatt_svr_svc_adc_uuid.u, .characteristics = (struct
+ble_gatt_chr_def` &lt;#section&gt;`__) { { .uuid =
+BLE_UUID16_DECLARE(ADC_SNS_TYPE), .access_cb =
+gatt_svr_sns_access, .flags = BLE_GATT_CHR_F_READ, }, { .uuid =
+BLE_UUID16_DECLARE(ADC_SNS_VAL), .access_cb =
+gatt_svr_sns_access, .flags = BLE_GATT_CHR_F_NOTIFY, }, { 0, /</em>
+No more characteristics in this service. */ } }, },</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>{
+    0, /* No more services. */
+},
+</pre></div>
+</div>
+<p>}; ```</p>
+<p>You should recognize the first services from the <a class="reference external" href="bleprph/bleprph-intro.html">BLE
+Peripheral</a> tutorial earlier. We?re just
+adding another Service, with 2 new Characteristics, to that application.</p>
+<p>We?ll need to fill in the function that will be called for this service,
+<code class="docutils literal notranslate"><span class="pre">gatt_srv_sns_access</span></code> next so that the service knows what to do.</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>static int
+gatt_svr_sns_access(uint16_t conn_handle, uint16_t attr_handle,
+                          struct ble_gatt_access_ctxt *ctxt,
+                          void *arg)
+{
+    uint16_t uuid16;
+    int rc;
+
+    uuid16 = ble_uuid_u16(ctxt-&gt;chr-&gt;uuid);
+
+    switch (uuid16) {
+    case ADC_SNS_TYPE:
+        assert(ctxt-&gt;op == BLE_GATT_ACCESS_OP_READ_CHR);
+        rc = os_mbuf_append(ctxt-&gt;om, ADC_SNS_STRING, sizeof ADC_SNS_STRING);
+        BLEPRPH_LOG(INFO, &quot;ADC SENSOR TYPE READ: %s\n&quot;, ADC_SNS_STRING);
+        return rc == 0 ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES;
+
+    case ADC_SNS_VAL:
+        if (ctxt-&gt;op == BLE_GATT_ACCESS_OP_WRITE_CHR) {
+            rc = gatt_svr_chr_write(ctxt-&gt;om, 0,
+                                    sizeof gatt_adc_val,
+                                    &amp;gatt_adc_val,
+                                    NULL);
+            return rc;
+        } else if (ctxt-&gt;op == BLE_GATT_ACCESS_OP_READ_CHR) {
+            rc = os_mbuf_append(ctxt-&gt;om, &amp;gatt_adc_val,
+                                sizeof gatt_adc_val);
+            return rc == 0 ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES;
+        }
+
+    default:
+        assert(0);
+        return BLE_ATT_ERR_UNLIKELY;
+    }
+}
+</pre></div>
+</div>
+<p>You can see that when request is for the <code class="docutils literal notranslate"><span class="pre">ADC_SNS_TYPE</span></code>, we return the
+Sensor Type we defined earlier. If the request if for <code class="docutils literal notranslate"><span class="pre">ADC_SNS_VAL</span></code>
+we?ll return the <code class="docutils literal notranslate"><span class="pre">gatt_adc_val</span></code> value.</p>
+<p>Don?t forget to include the <code class="docutils literal notranslate"><span class="pre">bleadc.h</span></code> include file at the top of the
+<code class="docutils literal notranslate"><span class="pre">gatt_svr.c</span></code> file!</p>
+<p>If you build, load and run this application now, you will see all those
+Services and Characteristics advertised, and you will even be able to
+read the ?Sensor Type? String via the ADC_SNS_TYPE Characteristic.</p>
+</div>
+<div class="section" id="adding-the-etape-water-sensor">
+<h2>Adding the eTape Water Sensor<a class="headerlink" href="#adding-the-etape-water-sensor" title="Permalink to this headline">?</a></h2>
+<p>Now that we have a fully functioning BLE App that we can subscribe to
+sensor values from, it?s time to actually wire up the sensor!</p>
+<p>As previously mentioned, we?re going to be using an eTape Water Level
+Sensor. You can get one from
+<a class="reference external" href="https://www.adafruit.com/products/1786">Adafruit</a>.</p>
+<p>We?re going to use the sensor as a resistive sensor, and the setup is
+very simple. I?ll be using a ?breadboard` to put this all together for
+illustrative purposes. First, attach a jumper-wire from Vdd on the board
+to the breadboard. Next, attach a jumper wire from pin P0.03 on the
+board to the breadboard. This will be our ADC-in. The sensor should have
+come with a 560 ohm resistor, so plug that into the board between Vdd
+and ADC-in holes. Finally, attach a jumper from GND on the board to your
+breadboard. At this point, your breadboard should look like this:</p>
+<div class="figure" id="id1">
+<img alt="Bread Board Setup" src="../_images/breadboard.png" />
+<p class="caption"><span class="caption-text">Bread Board Setup</span></p>
+</div>
+<p>Now attach one of the middle 2 leads from the sensor to ground on the
+breadboard and the other middle lead to the ADC-in on the breadboard.
+Your breadboard should now look like this:</p>
+<div class="figure" id="id2">
+<img alt="Bread Board Final" src="../_images/adc-demo-1.png" />
+<p class="caption"><span class="caption-text">Bread Board Final</span></p>
+</div>
+<p>And your eTape Sensor should look like this (at least if you have it
+mounted in a graduated cylinder as I do).</p>
+<div class="figure" id="id3">
+<img alt="eTape Sensor Setup" src="../_images/adc-demo-2.png" />
+<p class="caption"><span class="caption-text">eTape Sensor Setup</span></p>
+</div>
+<p>That concludes the hardware portion. Easy!</p>
+<p>At this point you should be able to build, create-image and load your
+application and see it properly sending readings.</p>
+</div>
+<div class="section" id="conclusion">
+<h2>Conclusion<a class="headerlink" href="#conclusion" title="Permalink to this headline">?</a></h2>
+<p>Congratulations, you?ve now completed both a hardware project and a
+software project by connecting a sensor to your device and using Mynewt
+to read data from that sensor and send it via Bluetooth to a connected
+device. That?s no small feat!</p>
+<p>If you see anything missing or want to send us feedback, please do so by
+signing up for appropriate mailing lists on our <a class="reference external" href="../../community.html">Community
+Page</a>.</p>
+<p>Keep on hacking and sensing!</p>
+</div>
+<div class="section" id="note">
+<h2>Note<a class="headerlink" href="#note" title="Permalink to this headline">?</a></h2>
+<p>If you?re wondering how to actually view these sensor readings via
+Bluetooth, you have a couple of options. On Mac OS or iOS you can
+download the <a class="reference external" href="https://itunes.apple.com/us/app/lightblue-explorer-bluetooth/id557428110?mt=8">LightBlue
+app</a>.
+This app lets you connect to, and interrogate, BLE devices like the one
+you just built.</p>
+<p>If you used the BLE Service and Characteristic UUIDs used in this
+tutorial, you can also download and use a Mac OS <a class="reference external" href="https://dragonflyiot.com/MyNewtSensorReader.zip">MyNewt Sensor Reader
+App</a> (Zip Archive)
+that allows you to graph your data, etc. An iOS version is in Beta
+testing and should be available soon.</p>
+<div class="figure" id="id4">
+<img alt="My Newt Sensor Reader" src="../_images/MyNewtSensorReader006.jpg" />
+<p class="caption"><span class="caption-text">My Newt Sensor Reader</span></p>
+</div>
+<p>Enjoy!</p>
+</div>
+</div>
+
+
+                   </div>
+                  </div>
+                  
+                </div>
+              </div>
+            </div>
+            <!-- ENDS CONTENT SECTION -->
+          </div>
+          <!-- ENDS .content -->
+        </div>
+      </div>
+      <footer>
+  <div class="container">
+    <div class="row">
+      <div class="col-xs-12">
+          
+              <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
+          
+      </div>
+      <div class="col-xs-12">
+          <div class="logos">
+              <img src="../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
+              <small class="footnote">
+                Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
+                registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
+              </small>
+              <a href="https://join.slack.com/mynewt/shared_invite/MTkwMTg1ODM1NTg5LTE0OTYxNzQ4NzQtZTU1YmNhYjhkMg">
+                <img src="../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
+              </a>
+          </div>
+      </div>
+    </div>
+  </div>
+</footer>
+    </div>
+    <!-- ENDS #wrapper -->
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'1.3.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true,
+            SOURCELINK_SUFFIX: '.txt'
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="../_static/js/bootstrap-3.0.3.min.js"></script>
+      <script type="text/javascript" src="../_static/js/affix.js"></script>
+      <script type="text/javascript" src="../_static/js/main.js"></script>
+
+   
+
+  </body>
+</html>
\ No newline at end of file
diff --git a/develop/tutorials/ota_upgrade_nrf52.html b/develop/tutorials/ota_upgrade_nrf52.html
new file mode 100644
index 0000000000..79415d36a3
--- /dev/null
+++ b/develop/tutorials/ota_upgrade_nrf52.html
@@ -0,0 +1,511 @@
+
+
+<!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">
+
+    
+
+    
+    <title>Over-the-Air Image Upgrade &mdash; Apache Mynewt 1.3.0 documentation</title>
+    
+
+    
+    
+      <link rel="shortcut icon" href="../_static/mynewt-logo-only-newt32x32.png"/>
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+
+    
+      <link rel="stylesheet" href="../_static/css/sphinx_theme.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/v2.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/restructuredtext.css" type="text/css" />
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/overrides.css" type="text/css" />
+          <link rel="index" title="Index"
+                href="../genindex.html"/>
+          <link rel="search" title="Search" href="../search.html"/>
+      <link rel="top" title="Apache Mynewt 1.3.0 documentation" href="../index.html"/> 
+
+    
+    <script src="../_static/js/modernizr.min.js"></script>
+
+    
+    <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="not-front page-documentation" role="document" >
+    <div id="wrapper">
+      <div class="container">
+    <div id="banner" class="row v2-main-banner">
+        <a class="logo-cell" href="/">
+            <img class="logo" src="../_static/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.3.0</a> released (December 13, 2017)
+            </div>
+        </div>
+    </div>
+</div>
+      
+<header>
+    <nav id="navbar" class="navbar navbar-inverse" 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>
+                        <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
+                    </li>
+                    <li class="important">
+                        <a href="/get_started/quick_start.html">Quick Start</a>
+                    </li>
+                    <li>
+                        <a href="/about/">About</a>
+                    </li>
+                    <li>
+                        <a href="/talks/">Talks</a>
+                    </li>
+                    <li class="active">
+                        <a href="/documentation/">Documentation</a>
+                    </li>
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    <li>
+                        <a href="/community/">Community</a>
+                    </li>
+                    <li>
+                        <a href="/events/">Events</a>
+                    </li>
+                </ul>
+
+                <!-- Search, Navigation and Repo links -->
+                <ul class="nav navbar-nav navbar-right">
+                    
+                </ul>
+            </div>
+        </div>
+    </nav>
+</header>
+      <!-- STARTS MAIN CONTENT -->
+      <div id="main-content">
+        
+
+
+
+
+
+<div id="breadcrumb">
+  <div class="container">
+    <a href="/documentation/">Docs</a> /
+    
+    Over-the-Air Image Upgrade
+    
+  <div class="sourcelink">
+    <a href="https://github.com/apache/mynewt-documentation/edit/master/docs/tutorials/ota_upgrade_nrf52.rst" class="icon icon-github"
+           rel="nofollow"> Edit on GitHub</a>
+</div>
+  </div>
+</div>
+        <!-- STARTS CONTAINER -->
+        <div class="container">
+          <!-- STARTS .content -->
+          <div id="content" class="row">
+            
+            <!-- STARTS .container-sidebar -->
+<div class="container-sidebar col-xs-12 col-sm-3">
+  <div id="docSidebar" class="sticky-container">
+    <div role="search" class="sphinx-search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+    
+<!-- Note: only works when deployed -->
+<select class="form-control" onchange="if (this.value) window.location.href=this.value">
+    <option
+      value="/develop"
+      selected
+      >
+      Version: develop (latest - mynewt-documentation)
+    </option>
+    <option
+      value="/latest/os/introduction"
+      >
+      Version: master (latest - mynewt-site)
+    </option>
+    <option
+      value="/v1_2_0/os/introduction"
+      >
+      Version: 1.2.0
+    </option>
+    <option
+      value="/v1_1_0/os/introduction">
+      Version: 1.1.0
+    </option>
+    <option
+      value="/v1_0_0/os/introduction">
+      Version: 1.0.0
+    </option>
+    <option
+      value="/v0_9_0/os/introduction">
+      Version: 0_9_0
+    </option>
+</select>
+    <div class="region region-sidebar">
+      <div class="docs-menu">
+      
+        
+        
+            <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../get_started/index.html">Setup &amp; Get Started</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../concepts.html">Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="tutorials.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../os/os_user_guide.html">OS User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../network/ble/ble_intro.html">BLE User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newt/index.html">Newt Tool Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newtmgr/index.html">Newt Manager Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../misc/index.html">Appendix</a></li>
+</ul>
+
+        
+      
+      </div>
+    </div>
+  </div>
+  <!-- ENDS STICKY CONTAINER -->
+</div>
+<!-- ENDS .container-sidebar -->
+
+            <div class="col-xs-12 col-sm-9">
+              <div class="alert alert-info" role="alert">
+  <p>
+    This is the development version of Apache Mynewt documentation. As such it may not be as complete as the latest
+    stable version of the documentation found <a href="/latest/os/introduction/">here</a>.
+  </p>
+  <p>
+    To improve this documentation please visit <a href="https://github.com/apache/mynewt-documentation">https://github.com/apache/mynewt-documentation</a>.
+  </p>
+</div>
+              
+              <div class="">
+                <div class="rst-content">
+                  <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+                   <div itemprop="articleBody">
+                    
+  <div class="section" id="over-the-air-image-upgrade">
+<h1>Over-the-Air Image Upgrade<a class="headerlink" href="#over-the-air-image-upgrade" title="Permalink to this headline">?</a></h1>
+<p>Mynewt OS supports over-the-air image upgrades. This tutorial shows you
+how to use the newtmgr tool to upgrade an image on a device over BLE
+communication.</p>
+<p>To support over-the-air image upgrade over BLE, a device must be running
+a Mynewt application that has newtmgr image management over BLE
+transport enabled. For this tutorial, we use the
+<a class="reference external" href="/os/tutorials/bleprph/bleprph-app/">bleprph</a> application, which
+includes image management over BLE functionality, on an nRF52-DK board.
+If you prefer to use a different BLE application, see <a class="reference external" href="/os/tutorials/add_newtmgr/">Enable Newt
+Manager in any app</a> to enable newtmgr
+image management over BLE transport support in your application.</p>
+<p><strong>Note:</strong> Over-the-air upgrade via newtmgr BLE transport is supported on
+Mac OS and Linux. It is not supported on Windows platforms.</p>
+<div class="section" id="prerequisites">
+<h2>Prerequisites<a class="headerlink" href="#prerequisites" title="Permalink to this headline">?</a></h2>
+<p>Ensure that you meet the following prerequisites:</p>
+<ul class="simple">
+<li>Have Internet connectivity to fetch remote Mynewt components.</li>
+<li>Have a computer that supports Bluetooth to communicate with the board
+and to build a Mynewt application.</li>
+<li>Have a Micro-USB cable to connect the board and the computer.</li>
+<li>Have a Nordic nRF52-DK Development Kit - PCA 10040</li>
+<li>Install the <a class="reference external" href="https://www.segger.com/jlink-software.html">Segger JLINK software and documentation
+pack</a>.</li>
+<li>Install the newt tool and toolchains (See <a class="reference external" href="/os/get_started/get_started.html">Basic
+Setup</a>).</li>
+<li>Read the Mynewt OS <a class="reference external" href="/os/get_started/vocabulary.html">Concepts</a>
+section.</li>
+<li>Read the <a class="reference external" href="/os/modules/bootloader/bootloader">Bootloader</a> section
+and understand the Mynewt bootloader concepts.</li>
+<li>Build and load the <strong>bleprph</strong> application on to an nRF52-DK board
+via a serial connection. See <a class="reference external" href="/os/tutorials/bleprph/bleprph-app/">BLE Peripheral
+App</a>.</li>
+</ul>
+</div>
+<div class="section" id="reducing-the-log-level">
+<h2>Reducing the Log Level<a class="headerlink" href="#reducing-the-log-level" title="Permalink to this headline">?</a></h2>
+<p>You need to build your application with log level set to INFO or lower.
+The default log level for the <strong>bleprph</strong> app is set to DEBUG. The extra
+logging causes the communication to timeout. Perform the following to
+reduce the log level to INFO, build, and load the application.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt target amend myperiph <span class="nv">syscfg</span><span class="o">=</span><span class="s2">&quot;LOG_LEVEL=1&quot;</span>
+<span class="gp">$</span> newt build myperiph
+<span class="gp">$</span> newt create-image myperiph <span class="m">1</span>.0.0
+<span class="gp">$</span> newt load myperiph
+</pre></div>
+</div>
+</div>
+<div class="section" id="upgrading-an-image-on-a-device">
+<h2>Upgrading an Image on a Device<a class="headerlink" href="#upgrading-an-image-on-a-device" title="Permalink to this headline">?</a></h2>
+<p>Once you have an application with newtmgr image management with BLE transport support running on a device,
+you can use the newtmgr tool to upgrade an image over-the-air.</p>
+<p>You must perform the following steps to upgrade an image:</p>
+<p>Step 1: Create a newtmgr connection profile to communicate with the
+device over BLE. Step 2: Upload the image to the secondary slot (slot 1)
+on the device. Step 3: Test the image. Step 4: Confirm and make the
+image permanent.</p>
+<p>See the <a class="reference external" href="/os/modules/bootloader/bootloader">Bootloader</a> section for
+more information on the bootloader, image slots, and boot states.</p>
+</div>
+<div class="section" id="step-1-creating-a-newtmgr-connection-profile">
+<h2>Step 1: Creating a Newtmgr Connection Profile<a class="headerlink" href="#step-1-creating-a-newtmgr-connection-profile" title="Permalink to this headline">?</a></h2>
+<p>The <strong>bleprph</strong> application sets and advertises <code class="docutils literal notranslate"><span class="pre">nimble-bleprph</span></code> as its bluetooth
+device address. Run the <code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">conn</span> <span class="pre">add</span></code> command to create a newtmgr
+connection profile that uses this peer address to communicate with the
+device over BLE:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newtmgr conn add mybleprph <span class="nv">type</span><span class="o">=</span>ble <span class="nv">connstring</span><span class="o">=</span><span class="s2">&quot;peer_name=nimble-bleprph&quot;</span>
+<span class="go">Connection profile mybleprph successfully added</span>
+</pre></div>
+</div>
+<p>Verify that the newtmgr tool can communicate with the device and check
+the image status on the device:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newtmgr image list -c mybleprph
+<span class="go">Images:</span>
+<span class="go"> slot=0</span>
+<span class="go">    version: 1.0.0</span>
+<span class="go">    bootable: true</span>
+<span class="go">    flags: active confirmed</span>
+<span class="go">    hash: b8d17c77a03b37603cd9f89fdcfe0ba726f8ddff6eac63011dee2e959cc316c2</span>
+<span class="go">Split status: N/A (0)</span>
+</pre></div>
+</div>
+<p>The device only has an image loaded on the primary slot (slot 0). It
+does not have an image loaded on the secondary slot (slot 1). ### Step
+2: Uploading an Image to the Device We create an image with version
+2.0.0 for the bleprph application from the <code class="docutils literal notranslate"><span class="pre">myperiph</span></code> target and
+upload the new image. You can upload a different image.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt create-image myperiph <span class="m">2</span>.0.0
+<span class="go">App image succesfully generated: ~/dev/myproj/bin/targets/myperiph/app/apps/bleprph/bleprph.img</span>
+</pre></div>
+</div>
+<p>Run the <code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">image</span> <span class="pre">upload</span></code> command to upload the image:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newtmgr image upload -c mybleprph ~/dev/myproj/bin/targets/myperiph/app/apps/bleprph/bleprph.img
+<span class="go">215</span>
+<span class="go">429</span>
+<span class="go">642</span>
+<span class="go">855</span>
+<span class="go">1068</span>
+<span class="go">1281</span>
+
+<span class="go">...</span>
+
+<span class="go">125953</span>
+<span class="go">126164</span>
+<span class="go">126375</span>
+<span class="go">126586</span>
+<span class="go">126704</span>
+<span class="go">Done</span>
+</pre></div>
+</div>
+<p>The numbers indicate the number of bytes that the newtmgr tool has
+uploaded.</p>
+<p>Verify that the image uploaded to the secondary slot on the device
+successfully:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newtmgr image list -c mybleprph
+<span class="go">Images:</span>
+<span class="go"> slot=0</span>
+<span class="go">    version: 1.0.0</span>
+<span class="go">    bootable: true</span>
+<span class="go">    flags: active confirmed</span>
+<span class="go">    hash: b8d17c77a03b37603cd9f89fdcfe0ba726f8ddff6eac63011dee2e959cc316c2</span>
+<span class="go"> slot=1</span>
+<span class="go">    version: 2.0.0</span>
+<span class="go">    bootable: true</span>
+<span class="go">    flags:</span>
+<span class="go">    hash: 291ebc02a8c345911c96fdf4e7b9015a843697658fd6b5faa0eb257a23e93682</span>
+<span class="go">Split status: N/A (0)</span>
+</pre></div>
+</div>
+<p>The device now has the uploaded image in the secondary slot (slot 1).
+### Step 3: Testing the Image The image is uploaded to the secondary
+slot but is not yet active. You must run the <code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">image</span> <span class="pre">test</span></code>
+command to set the image status to <strong>pending</strong> and reboot the device.
+When the device reboots, the bootloader copies this image to the primary
+slot and runs the image.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newtmgr image <span class="nb">test</span> -c mybleprph 291ebc02a8c345911c96fdf4e7b9015a843697658fd6b5faa0eb257a23e93682
+<span class="go">Images:</span>
+<span class="go"> slot=0</span>
+<span class="go">    version: 1.0.0</span>
+<span class="go">    bootable: true</span>
+<span class="go">    flags: active confirmed</span>
+<span class="go">    hash: b8d17c77a03b37603cd9f89fdcfe0ba726f8ddff6eac63011dee2e959cc316c2</span>
+<span class="go"> slot=1</span>
+<span class="go">    version: 2.0.0</span>
+<span class="go">    bootable: true</span>
+<span class="go">    flags: pending</span>
+<span class="go">    hash: 291ebc02a8c345911c96fdf4e7b9015a843697658fd6b5faa0eb257a23e93682</span>
+<span class="go">Split status: N/A (0)</span>
+</pre></div>
+</div>
+<p>The status of the image in the secondary slot is now set to <strong>pending</strong>.</p>
+<p>Power the device OFF and ON and run the <code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">image</span> <span class="pre">list</span></code> command
+to check the image status on the device after the reboot:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newtmgr image list -c mybleprph
+<span class="go">Images:</span>
+<span class="go"> slot=0</span>
+<span class="go">    version: 2.0.0</span>
+<span class="go">    bootable: true</span>
+<span class="go">    flags: active</span>
+<span class="go">    hash: 291ebc02a8c345911c96fdf4e7b9015a843697658fd6b5faa0eb257a23e93682</span>
+<span class="go"> slot=1</span>
+<span class="go">    version: 1.0.0</span>
+<span class="go">    bootable: true</span>
+<span class="go">    flags: confirmed</span>
+<span class="go">    hash: b8d17c77a03b37603cd9f89fdcfe0ba726f8ddff6eac63011dee2e959cc316c2</span>
+<span class="go">Split status: N/A (0)</span>
+</pre></div>
+</div>
+<p>The uploaded image is now active and running in the primary slot. The
+image, however, is not confirmed. The confirmed image is in the
+secondary slot. On the next reboot, the bootloader reverts to using the
+confirmed image. It copies the confirmed image to the primary slot and
+runs the image when the device reboots. You need to confirm and make the
+uploaded image in the primary slot permanent. ### Step 4: Confirming the
+Image Run the <code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">image</span> <span class="pre">confirm</span></code> command to confirm and make the
+uploaded image permanent. Since the uploaded image is currently the
+active image, you can confirm the image setup without specifying the
+image hash value in the command:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newtmgr image confirm -c mybleprph
+<span class="go">Images:</span>
+<span class="go"> slot=0</span>
+<span class="go">    version: 2.0.0</span>
+<span class="go">    bootable: true</span>
+<span class="go">    flags: active confirmed</span>
+<span class="go">    hash: 291ebc02a8c345911c96fdf4e7b9015a843697658fd6b5faa0eb257a23e93682</span>
+<span class="go"> slot=1</span>
+<span class="go">    version: 1.0.0</span>
+<span class="go">    bootable: true</span>
+<span class="go">    flags:</span>
+<span class="go">    hash: b8d17c77a03b37603cd9f89fdcfe0ba726f8ddff6eac63011dee2e959cc316c2</span>
+<span class="go">Split status: N/A (0)</span>
+</pre></div>
+</div>
+<p>The uploaded image is now the active and confirmed image. You have
+successfully upgraded an image over-the-air.</p>
+</div>
+</div>
+
+
+                   </div>
+                  </div>
+                  
+                </div>
+              </div>
+            </div>
+            <!-- ENDS CONTENT SECTION -->
+          </div>
+          <!-- ENDS .content -->
+        </div>
+      </div>
+      <footer>
+  <div class="container">
+    <div class="row">
+      <div class="col-xs-12">
+          
+              <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
+          
+      </div>
+      <div class="col-xs-12">
+          <div class="logos">
+              <img src="../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
+              <small class="footnote">
+                Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
+                registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
+              </small>
+              <a href="https://join.slack.com/mynewt/shared_invite/MTkwMTg1ODM1NTg5LTE0OTYxNzQ4NzQtZTU1YmNhYjhkMg">
+                <img src="../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
+              </a>
+          </div>
+      </div>
+    </div>
+  </div>
+</footer>
+    </div>
+    <!-- ENDS #wrapper -->
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'1.3.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true,
+            SOURCELINK_SUFFIX: '.txt'
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="../_static/js/bootstrap-3.0.3.min.js"></script>
+      <script type="text/javascript" src="../_static/js/affix.js"></script>
+      <script type="text/javascript" src="../_static/js/main.js"></script>
+
+   
+
+  </body>
+</html>
\ No newline at end of file
diff --git a/develop/tutorials/pin-wheel-mods.html b/develop/tutorials/pin-wheel-mods.html
new file mode 100644
index 0000000000..9d40c1b7b9
--- /dev/null
+++ b/develop/tutorials/pin-wheel-mods.html
@@ -0,0 +1,395 @@
+
+
+<!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">
+
+    
+
+    
+    <title>Pin Wheel Modifications to ?Blinky? on STM32F3 Discovery &mdash; Apache Mynewt 1.3.0 documentation</title>
+    
+
+    
+    
+      <link rel="shortcut icon" href="../_static/mynewt-logo-only-newt32x32.png"/>
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+
+    
+      <link rel="stylesheet" href="../_static/css/sphinx_theme.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/v2.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/restructuredtext.css" type="text/css" />
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/overrides.css" type="text/css" />
+          <link rel="index" title="Index"
+                href="../genindex.html"/>
+          <link rel="search" title="Search" href="../search.html"/>
+      <link rel="top" title="Apache Mynewt 1.3.0 documentation" href="../index.html"/> 
+
+    
+    <script src="../_static/js/modernizr.min.js"></script>
+
+    
+    <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="not-front page-documentation" role="document" >
+    <div id="wrapper">
+      <div class="container">
+    <div id="banner" class="row v2-main-banner">
+        <a class="logo-cell" href="/">
+            <img class="logo" src="../_static/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.3.0</a> released (December 13, 2017)
+            </div>
+        </div>
+    </div>
+</div>
+      
+<header>
+    <nav id="navbar" class="navbar navbar-inverse" 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>
+                        <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
+                    </li>
+                    <li class="important">
+                        <a href="/get_started/quick_start.html">Quick Start</a>
+                    </li>
+                    <li>
+                        <a href="/about/">About</a>
+                    </li>
+                    <li>
+                        <a href="/talks/">Talks</a>
+                    </li>
+                    <li class="active">
+                        <a href="/documentation/">Documentation</a>
+                    </li>
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    <li>
+                        <a href="/community/">Community</a>
+                    </li>
+                    <li>
+                        <a href="/events/">Events</a>
+                    </li>
+                </ul>
+
+                <!-- Search, Navigation and Repo links -->
+                <ul class="nav navbar-nav navbar-right">
+                    
+                </ul>
+            </div>
+        </div>
+    </nav>
+</header>
+      <!-- STARTS MAIN CONTENT -->
+      <div id="main-content">
+        
+
+
+
+
+
+<div id="breadcrumb">
+  <div class="container">
+    <a href="/documentation/">Docs</a> /
+    
+    Pin Wheel Modifications to ?Blinky? on STM32F3 Discovery
+    
+  <div class="sourcelink">
+    <a href="https://github.com/apache/mynewt-documentation/edit/master/docs/tutorials/pin-wheel-mods.rst" class="icon icon-github"
+           rel="nofollow"> Edit on GitHub</a>
+</div>
+  </div>
+</div>
+        <!-- STARTS CONTAINER -->
+        <div class="container">
+          <!-- STARTS .content -->
+          <div id="content" class="row">
+            
+            <!-- STARTS .container-sidebar -->
+<div class="container-sidebar col-xs-12 col-sm-3">
+  <div id="docSidebar" class="sticky-container">
+    <div role="search" class="sphinx-search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+    
+<!-- Note: only works when deployed -->
+<select class="form-control" onchange="if (this.value) window.location.href=this.value">
+    <option
+      value="/develop"
+      selected
+      >
+      Version: develop (latest - mynewt-documentation)
+    </option>
+    <option
+      value="/latest/os/introduction"
+      >
+      Version: master (latest - mynewt-site)
+    </option>
+    <option
+      value="/v1_2_0/os/introduction"
+      >
+      Version: 1.2.0
+    </option>
+    <option
+      value="/v1_1_0/os/introduction">
+      Version: 1.1.0
+    </option>
+    <option
+      value="/v1_0_0/os/introduction">
+      Version: 1.0.0
+    </option>
+    <option
+      value="/v0_9_0/os/introduction">
+      Version: 0_9_0
+    </option>
+</select>
+    <div class="region region-sidebar">
+      <div class="docs-menu">
+      
+        
+        
+            <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../get_started/index.html">Setup &amp; Get Started</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../concepts.html">Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="tutorials.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../os/os_user_guide.html">OS User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../network/ble/ble_intro.html">BLE User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newt/index.html">Newt Tool Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newtmgr/index.html">Newt Manager Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../misc/index.html">Appendix</a></li>
+</ul>
+
+        
+      
+      </div>
+    </div>
+  </div>
+  <!-- ENDS STICKY CONTAINER -->
+</div>
+<!-- ENDS .container-sidebar -->
+
+            <div class="col-xs-12 col-sm-9">
+              <div class="alert alert-info" role="alert">
+  <p>
+    This is the development version of Apache Mynewt documentation. As such it may not be as complete as the latest
+    stable version of the documentation found <a href="/latest/os/introduction/">here</a>.
+  </p>
+  <p>
+    To improve this documentation please visit <a href="https://github.com/apache/mynewt-documentation">https://github.com/apache/mynewt-documentation</a>.
+  </p>
+</div>
+              
+              <div class="">
+                <div class="rst-content">
+                  <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+                   <div itemprop="articleBody">
+                    
+  <div class="section" id="pin-wheel-modifications-to-blinky-on-stm32f3-discovery">
+<h1>Pin Wheel Modifications to ?Blinky? on STM32F3 Discovery<a class="headerlink" href="#pin-wheel-modifications-to-blinky-on-stm32f3-discovery" title="Permalink to this headline">?</a></h1>
+<div class="section" id="objective">
+<h2>Objective<a class="headerlink" href="#objective" title="Permalink to this headline">?</a></h2>
+<p>Learn how to modify an existing app ? the <a class="reference external" href="STM32F303.html">blinky</a> app
+? to light all the LEDs on the STM32F3 Discovery board.</p>
+</div>
+<div class="section" id="what-you-need">
+<h2>What you need<a class="headerlink" href="#what-you-need" title="Permalink to this headline">?</a></h2>
+<ul class="simple">
+<li>Discovery kit with STM32F303VC MCU</li>
+<li>Laptop running Mac OSX.</li>
+<li>It is assumed you have already installed and run the
+<a class="reference external" href="STM32F303.html">blinky</a> app succesfully.</li>
+</ul>
+<p>Since you?ve already successfully created your blinky app project,
+you?ll need to modify only one file, main.c, in order to get this app
+working.</p>
+<p>The main.c file resides in the apps/blinky/src directory in your project
+folder so you can edit it with your favorite editor. You?ll make the
+following changes:</p>
+<p>Replace the line:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>int g_led_pin;
+</pre></div>
+</div>
+<p>With the line:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>int g_led_pins[8] = {LED_BLINK_PIN_1, LED_BLINK_PIN_2, LED_BLINK_PIN_3, LED_BLINK_PIN_4, LED_BLINK_PIN_5, LED_BLINK_PIN_6, LED_BLINK_PIN_7, LED_BLINK_PIN_8};
+</pre></div>
+</div>
+<p>So that you now have an array of all 8 LED Pins on the board.</p>
+<p>Delete the line:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>g_led_pin = LED_BLINK_PIN;
+</pre></div>
+</div>
+<p>And in its place, add the following lines to initialize all the
+LED_PINS correctly:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>int x;
+for(x = 0; x &lt; 8; x++){
+    hal_gpio_init_out(g_led_pins[x], 1);
+}
+int p = 0;
+</pre></div>
+</div>
+<p>We?ll use that ?p? later. Next you?ll want to change the line:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>os_time_delay(1000);
+</pre></div>
+</div>
+<p>to a shorter time in order to make it a little more interesting. A full
+1 second delay doesn?t look great, so try 100 for starters and then you
+can adjust it to your liking.</p>
+<p>Finally, change the line:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>hal_gpio_toggle(g_led_pin);
+</pre></div>
+</div>
+<p>to look like this:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>hal_gpio_toggle(g_led_pins[p++]);
+p = (p &gt; 7) ? 0 : p;
+</pre></div>
+</div>
+</div>
+<div class="section" id="build-the-target-and-executables-and-download-the-images">
+<h2>Build the target and executables and download the images<a class="headerlink" href="#build-the-target-and-executables-and-download-the-images" title="Permalink to this headline">?</a></h2>
+<p>Run the same commands you used on the blinky app to build and load this
+one:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt create-image stmf3_blinky <span class="m">1</span>.2.3
+<span class="go">App image successfully generated: ~/dev/myproj/bin/stmf3_blinky/apps/blinky/blinky.img</span>
+<span class="go">Build manifest:~/dev/myproj/bin/stmf3_blinky/apps/blinky/manifest.json</span>
+<span class="gp">$</span> newt -v load stmf3_boot
+<span class="gp">$</span> newt -v load stmf3_blinky
+</pre></div>
+</div>
+</div>
+<div class="section" id="watch-the-leds-go-round-and-round">
+<h2>Watch the LEDs go round and round<a class="headerlink" href="#watch-the-leds-go-round-and-round" title="Permalink to this headline">?</a></h2>
+<p>The colored LEDs should now all light up in succession, and once they?re
+all lit, they should then go off in the same order. This should repeat
+continuously.</p>
+<p>If you see anything missing or want to send us feedback, please do so by
+signing up for appropriate mailing lists on our <a class="reference external" href="../../community.html">Community
+Page</a>.</p>
+<p>Keep on hacking and blinking!</p>
+</div>
+</div>
+
+
+                   </div>
+                  </div>
+                  
+                </div>
+              </div>
+            </div>
+            <!-- ENDS CONTENT SECTION -->
+          </div>
+          <!-- ENDS .content -->
+        </div>
+      </div>
+      <footer>
+  <div class="container">
+    <div class="row">
+      <div class="col-xs-12">
+          
+              <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
+          
+      </div>
+      <div class="col-xs-12">
+          <div class="logos">
+              <img src="../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
+              <small class="footnote">
+                Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
+                registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
+              </small>
+              <a href="https://join.slack.com/mynewt/shared_invite/MTkwMTg1ODM1NTg5LTE0OTYxNzQ4NzQtZTU1YmNhYjhkMg">
+                <img src="../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
+              </a>
+          </div>
+      </div>
+    </div>
+  </div>
+</footer>
+    </div>
+    <!-- ENDS #wrapper -->
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'1.3.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true,
+            SOURCELINK_SUFFIX: '.txt'
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="../_static/js/bootstrap-3.0.3.min.js"></script>
+      <script type="text/javascript" src="../_static/js/affix.js"></script>
+      <script type="text/javascript" src="../_static/js/main.js"></script>
+
+   
+
+  </body>
+</html>
\ No newline at end of file
diff --git a/develop/tutorials/repo/add_repos.html b/develop/tutorials/repo/add_repos.html
index 115c648948..b5321cfc5b 100644
--- a/develop/tutorials/repo/add_repos.html
+++ b/develop/tutorials/repo/add_repos.html
@@ -228,6 +228,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 <li class="toctree-l3"><a class="reference internal" href="upgrade_repo.html">Upgrade a repo</a></li>
 </ul>
 </li>
+<li class="toctree-l2"><a class="reference internal" href="../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../ble/ble.html">Bluetooth Low Energy</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../lora/lorawanapp.html">LoRa</a></li>
 </ul>
diff --git a/develop/tutorials/repo/create_repo.html b/develop/tutorials/repo/create_repo.html
index 1b87927e2f..a511078626 100644
--- a/develop/tutorials/repo/create_repo.html
+++ b/develop/tutorials/repo/create_repo.html
@@ -230,6 +230,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 <li class="toctree-l3"><a class="reference internal" href="upgrade_repo.html">Upgrade a repo</a></li>
 </ul>
 </li>
+<li class="toctree-l2"><a class="reference internal" href="../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../ble/ble.html">Bluetooth Low Energy</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../lora/lorawanapp.html">LoRa</a></li>
 </ul>
diff --git a/develop/tutorials/repo/private_repo.html b/develop/tutorials/repo/private_repo.html
index b4e6f286ed..ffabe5d9f3 100644
--- a/develop/tutorials/repo/private_repo.html
+++ b/develop/tutorials/repo/private_repo.html
@@ -230,6 +230,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 <li class="toctree-l3"><a class="reference internal" href="upgrade_repo.html">Upgrade a repo</a></li>
 </ul>
 </li>
+<li class="toctree-l2"><a class="reference internal" href="../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../ble/ble.html">Bluetooth Low Energy</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../lora/lorawanapp.html">LoRa</a></li>
 </ul>
diff --git a/develop/tutorials/repo/upgrade_repo.html b/develop/tutorials/repo/upgrade_repo.html
index 20509a5dce..5e5f941df4 100644
--- a/develop/tutorials/repo/upgrade_repo.html
+++ b/develop/tutorials/repo/upgrade_repo.html
@@ -42,7 +42,7 @@
           <link rel="search" title="Search" href="../../search.html"/>
       <link rel="top" title="Apache Mynewt 1.3.0 documentation" href="../../index.html"/>
           <link rel="up" title="Adding Repositories to your Project" href="add_repos.html"/>
-          <link rel="next" title="Bluetooth Low Energy" href="../ble/ble.html"/>
+          <link rel="next" title="Project Slinky" href="../slinky/project-slinky.html"/>
           <link rel="prev" title="Accessing a private repository" href="private_repo.html"/> 
 
     
@@ -230,6 +230,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 <li class="toctree-l3 current"><a class="current reference internal" href="#">Upgrade a repo</a></li>
 </ul>
 </li>
+<li class="toctree-l2"><a class="reference internal" href="../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../ble/ble.html">Bluetooth Low Energy</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../lora/lorawanapp.html">LoRa</a></li>
 </ul>
@@ -286,7 +287,7 @@ <h1>Upgrade a repo<a class="headerlink" href="#upgrade-a-repo" title="Permalink
                   
     <div class="rst-footer-buttons row" role="navigation" aria-label="footer navigation">
       
-        <a href="../ble/ble.html" class="btn btn-neutral float-right" title="Bluetooth Low Energy" accesskey="n">Next: Bluetooth Low Energy <span class="fa fa-arrow-circle-right"></span></a>
+        <a href="../slinky/project-slinky.html" class="btn btn-neutral float-right" title="Project Slinky" accesskey="n">Next: Project Slinky <span class="fa fa-arrow-circle-right"></span></a>
       
       
         <a href="private_repo.html" class="btn btn-neutral" title="Accessing a private repository" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous: Accessing a private repository</a>
diff --git a/develop/tutorials/segger_rtt.html b/develop/tutorials/segger_rtt.html
new file mode 100644
index 0000000000..a4d913e5fb
--- /dev/null
+++ b/develop/tutorials/segger_rtt.html
@@ -0,0 +1,410 @@
+
+
+<!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">
+
+    
+
+    
+    <title>SEGGER RTT Console &mdash; Apache Mynewt 1.3.0 documentation</title>
+    
+
+    
+    
+      <link rel="shortcut icon" href="../_static/mynewt-logo-only-newt32x32.png"/>
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+
+    
+      <link rel="stylesheet" href="../_static/css/sphinx_theme.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/v2.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/restructuredtext.css" type="text/css" />
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/overrides.css" type="text/css" />
+          <link rel="index" title="Index"
+                href="../genindex.html"/>
+          <link rel="search" title="Search" href="../search.html"/>
+      <link rel="top" title="Apache Mynewt 1.3.0 documentation" href="../index.html"/> 
+
+    
+    <script src="../_static/js/modernizr.min.js"></script>
+
+    
+    <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="not-front page-documentation" role="document" >
+    <div id="wrapper">
+      <div class="container">
+    <div id="banner" class="row v2-main-banner">
+        <a class="logo-cell" href="/">
+            <img class="logo" src="../_static/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.3.0</a> released (December 13, 2017)
+            </div>
+        </div>
+    </div>
+</div>
+      
+<header>
+    <nav id="navbar" class="navbar navbar-inverse" 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>
+                        <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
+                    </li>
+                    <li class="important">
+                        <a href="/get_started/quick_start.html">Quick Start</a>
+                    </li>
+                    <li>
+                        <a href="/about/">About</a>
+                    </li>
+                    <li>
+                        <a href="/talks/">Talks</a>
+                    </li>
+                    <li class="active">
+                        <a href="/documentation/">Documentation</a>
+                    </li>
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    <li>
+                        <a href="/community/">Community</a>
+                    </li>
+                    <li>
+                        <a href="/events/">Events</a>
+                    </li>
+                </ul>
+
+                <!-- Search, Navigation and Repo links -->
+                <ul class="nav navbar-nav navbar-right">
+                    
+                </ul>
+            </div>
+        </div>
+    </nav>
+</header>
+      <!-- STARTS MAIN CONTENT -->
+      <div id="main-content">
+        
+
+
+
+
+
+<div id="breadcrumb">
+  <div class="container">
+    <a href="/documentation/">Docs</a> /
+    
+    SEGGER RTT Console
+    
+  <div class="sourcelink">
+    <a href="https://github.com/apache/mynewt-documentation/edit/master/docs/tutorials/segger_rtt.rst" class="icon icon-github"
+           rel="nofollow"> Edit on GitHub</a>
+</div>
+  </div>
+</div>
+        <!-- STARTS CONTAINER -->
+        <div class="container">
+          <!-- STARTS .content -->
+          <div id="content" class="row">
+            
+            <!-- STARTS .container-sidebar -->
+<div class="container-sidebar col-xs-12 col-sm-3">
+  <div id="docSidebar" class="sticky-container">
+    <div role="search" class="sphinx-search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+    
+<!-- Note: only works when deployed -->
+<select class="form-control" onchange="if (this.value) window.location.href=this.value">
+    <option
+      value="/develop"
+      selected
+      >
+      Version: develop (latest - mynewt-documentation)
+    </option>
+    <option
+      value="/latest/os/introduction"
+      >
+      Version: master (latest - mynewt-site)
+    </option>
+    <option
+      value="/v1_2_0/os/introduction"
+      >
+      Version: 1.2.0
+    </option>
+    <option
+      value="/v1_1_0/os/introduction">
+      Version: 1.1.0
+    </option>
+    <option
+      value="/v1_0_0/os/introduction">
+      Version: 1.0.0
+    </option>
+    <option
+      value="/v0_9_0/os/introduction">
+      Version: 0_9_0
+    </option>
+</select>
+    <div class="region region-sidebar">
+      <div class="docs-menu">
+      
+        
+        
+            <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../get_started/index.html">Setup &amp; Get Started</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../concepts.html">Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="tutorials.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../os/os_user_guide.html">OS User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../network/ble/ble_intro.html">BLE User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newt/index.html">Newt Tool Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newtmgr/index.html">Newt Manager Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../misc/index.html">Appendix</a></li>
+</ul>
+
+        
+      
+      </div>
+    </div>
+  </div>
+  <!-- ENDS STICKY CONTAINER -->
+</div>
+<!-- ENDS .container-sidebar -->
+
+            <div class="col-xs-12 col-sm-9">
+              <div class="alert alert-info" role="alert">
+  <p>
+    This is the development version of Apache Mynewt documentation. As such it may not be as complete as the latest
+    stable version of the documentation found <a href="/latest/os/introduction/">here</a>.
+  </p>
+  <p>
+    To improve this documentation please visit <a href="https://github.com/apache/mynewt-documentation">https://github.com/apache/mynewt-documentation</a>.
+  </p>
+</div>
+              
+              <div class="">
+                <div class="rst-content">
+                  <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+                   <div itemprop="articleBody">
+                    
+  <div class="section" id="segger-rtt-console">
+<h1>SEGGER RTT Console<a class="headerlink" href="#segger-rtt-console" title="Permalink to this headline">?</a></h1>
+<div class="section" id="objective">
+<h2>Objective<a class="headerlink" href="#objective" title="Permalink to this headline">?</a></h2>
+<p>Sometimes you dont have UART on your board, or you want to use it for
+something else while still having newt logs/shell capability. With
+<a class="reference external" href="https://www.segger.com/jlink-rtt.html">SEGGER?s RTT</a> capability you
+can swap UART for RTT, which is a very high-speed memory-mapped I/O.</p>
+</div>
+<div class="section" id="hardware-needed">
+<h2>Hardware needed<a class="headerlink" href="#hardware-needed" title="Permalink to this headline">?</a></h2>
+<p>You?ll need a SEGGER J-Link programmer in order to use this advanced
+functionality. You might have an external J-Link programmer you?re
+already using, or maybe your board has a dedicated J-Link onboard as
+some development kits do. Another possibilty is J-Link OB firmware
+available for some devices like the micro:bit.</p>
+</div>
+<div class="section" id="setup-the-target">
+<h2>Setup the target<a class="headerlink" href="#setup-the-target" title="Permalink to this headline">?</a></h2>
+<p>We?ll assume you have an existing project with some kind of
+console/shell like <a class="reference external" href="blinky_console.html">Blinky with console and shell</a>
+that we?re switching over to RTT from UART.</p>
+<p><strong>Note:</strong> We have tested RTT with J-Link version V6.14h. We recommend
+that you upgrade your J-Link if you have an earlier version of J-Link
+installed. Earlier versions of J-Link use the BUFFER_SIZE_DOWN value
+defined in hw/drivers/rtt/include/rtt/SEGGER_RTT_Conf.h for the
+maximum number of input characters. If an input line exceeds the
+BUFFER_SIZE_DOWN number of characters, RTT ignores the extra
+characters. The default value is 16 characters. For example, this limit
+causes shell commands with more than 16 characters of input to fail. You
+may set the Mynewt <code class="docutils literal notranslate"><span class="pre">RTT_BUFFER_SIZE_DOWN</span></code> syscfg setting in your
+target to increase this value if you do not upgrade your J-Link version.</p>
+<p>We can disable uart and enable rtt with the newt target command:</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>newt target amend nrf52_blinky syscfg=CONSOLE_UART=0
+newt target amend nrf52_blinky syscfg=CONSOLE_RTT=1
+</pre></div>
+</div>
+</div>
+<div class="section" id="run-the-target-executables">
+<h2>Run the target executables<a class="headerlink" href="#run-the-target-executables" title="Permalink to this headline">?</a></h2>
+<p>Now ?run? the newt target as you?ll need an active debugger process to
+attach to:</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ newt run nrf52_blinky 0
+App image succesfully generated: ~/Downloads/myapp1/bin/targets/nrf52_blinky/app/apps/blinky/blinky.img
+Loading app image into slot 1
+[~Downloads/myapp1/repos/apache-mynewt-core/hw/bsp/nrf52-thingy/nrf52-thingy_debug.sh ~/Downloads/myapp1/repos/apache-mynewt-core/hw/bsp/nrf52-thingy ~/Downloads/myapp1/bin/targets/nrf52_blinky/app/apps/blinky/blinky]
+Debugging ~/Downloads/myapp1/bin/targets/nrf52_blinky/app/apps/blinky/blinky.elf
+GNU gdb (GNU Tools for ARM Embedded Processors) 7.8.0.20150604-cvs
+Copyright (C) 2014 Free Software Foundation, Inc.
+License GPLv3+: GNU GPL version 3 or later &lt;http://gnu.org/licenses/gpl.html&gt;
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.  Type &quot;show copying&quot;
+and &quot;show warranty&quot; for details.
+This GDB was configured as &quot;--host=x86_64-apple-darwin10 --target=arm-none-eabi&quot;.
+Type &quot;show configuration&quot; for configuration details.
+For bug reporting instructions, please see:
+&lt;http://www.gnu.org/software/gdb/bugs/&gt;.
+Find the GDB manual and other documentation resources online at:
+&lt;http://www.gnu.org/software/gdb/documentation/&gt;.
+For help, type &quot;help&quot;.
+Type &quot;apropos word&quot; to search for commands related to &quot;word&quot;...
+Reading symbols from ~/Downloads/myapp1/bin/targets/nrf52_blinky/app/apps/blinky/blinky.elf...done.
+0x000000d8 in ?? ()
+Resetting target
+0x000000dc in ?? ()
+(gdb)
+</pre></div>
+</div>
+</div>
+<div class="section" id="connect-to-console">
+<h2>Connect to console<a class="headerlink" href="#connect-to-console" title="Permalink to this headline">?</a></h2>
+<p>In a seperate terminal window <code class="docutils literal notranslate"><span class="pre">telnet</span> <span class="pre">localhost</span> <span class="pre">19021</span></code> and when you
+continue your gdb session you should see your output. If you?re not
+familiar with telnet, when you?re ready to exit you may by using the
+hotkey ctrl+] then typing quit</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ telnet localhost 19021
+Trying ::1...
+telnet: connect to address ::1: Connection refused
+Trying fe80::1...
+telnet: connect to address fe80::1: Connection refused
+Trying 127.0.0.1...
+Connected to localhost.
+Escape character is &#39;^]&#39;.
+SEGGER J-Link V6.14e - Real time terminal output
+SEGGER J-Link EDU V8.0, SN=268006294
+Process: JLinkGDBServer
+</pre></div>
+</div>
+<p>Then you can interact with the device:</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>stat
+stat
+000262 Must specify a statistic name to dump, possible names are:
+000262  stat
+000262 compat&gt;
+</pre></div>
+</div>
+</div>
+</div>
+
+
+                   </div>
+                  </div>
+                  
+                </div>
+              </div>
+            </div>
+            <!-- ENDS CONTENT SECTION -->
+          </div>
+          <!-- ENDS .content -->
+        </div>
+      </div>
+      <footer>
+  <div class="container">
+    <div class="row">
+      <div class="col-xs-12">
+          
+              <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
+          
+      </div>
+      <div class="col-xs-12">
+          <div class="logos">
+              <img src="../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
+              <small class="footnote">
+                Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
+                registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
+              </small>
+              <a href="https://join.slack.com/mynewt/shared_invite/MTkwMTg1ODM1NTg5LTE0OTYxNzQ4NzQtZTU1YmNhYjhkMg">
+                <img src="../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
+              </a>
+          </div>
+      </div>
+    </div>
+  </div>
+</footer>
+    </div>
+    <!-- ENDS #wrapper -->
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'1.3.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true,
+            SOURCELINK_SUFFIX: '.txt'
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="../_static/js/bootstrap-3.0.3.min.js"></script>
+      <script type="text/javascript" src="../_static/js/affix.js"></script>
+      <script type="text/javascript" src="../_static/js/main.js"></script>
+
+   
+
+  </body>
+</html>
\ No newline at end of file
diff --git a/develop/tutorials/segger_sysview.html b/develop/tutorials/segger_sysview.html
new file mode 100644
index 0000000000..c968064e90
--- /dev/null
+++ b/develop/tutorials/segger_sysview.html
@@ -0,0 +1,397 @@
+
+
+<!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">
+
+    
+
+    
+    <title>SEGGER SystemView &mdash; Apache Mynewt 1.3.0 documentation</title>
+    
+
+    
+    
+      <link rel="shortcut icon" href="../_static/mynewt-logo-only-newt32x32.png"/>
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+
+    
+      <link rel="stylesheet" href="../_static/css/sphinx_theme.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/v2.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/restructuredtext.css" type="text/css" />
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/overrides.css" type="text/css" />
+          <link rel="index" title="Index"
+                href="../genindex.html"/>
+          <link rel="search" title="Search" href="../search.html"/>
+      <link rel="top" title="Apache Mynewt 1.3.0 documentation" href="../index.html"/> 
+
+    
+    <script src="../_static/js/modernizr.min.js"></script>
+
+    
+    <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="not-front page-documentation" role="document" >
+    <div id="wrapper">
+      <div class="container">
+    <div id="banner" class="row v2-main-banner">
+        <a class="logo-cell" href="/">
+            <img class="logo" src="../_static/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.3.0</a> released (December 13, 2017)
+            </div>
+        </div>
+    </div>
+</div>
+      
+<header>
+    <nav id="navbar" class="navbar navbar-inverse" 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>
+                        <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
+                    </li>
+                    <li class="important">
+                        <a href="/get_started/quick_start.html">Quick Start</a>
+                    </li>
+                    <li>
+                        <a href="/about/">About</a>
+                    </li>
+                    <li>
+                        <a href="/talks/">Talks</a>
+                    </li>
+                    <li class="active">
+                        <a href="/documentation/">Documentation</a>
+                    </li>
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    <li>
+                        <a href="/community/">Community</a>
+                    </li>
+                    <li>
+                        <a href="/events/">Events</a>
+                    </li>
+                </ul>
+
+                <!-- Search, Navigation and Repo links -->
+                <ul class="nav navbar-nav navbar-right">
+                    
+                </ul>
+            </div>
+        </div>
+    </nav>
+</header>
+      <!-- STARTS MAIN CONTENT -->
+      <div id="main-content">
+        
+
+
+
+
+
+<div id="breadcrumb">
+  <div class="container">
+    <a href="/documentation/">Docs</a> /
+    
+    SEGGER SystemView
+    
+  <div class="sourcelink">
+    <a href="https://github.com/apache/mynewt-documentation/edit/master/docs/tutorials/segger_sysview.rst" class="icon icon-github"
+           rel="nofollow"> Edit on GitHub</a>
+</div>
+  </div>
+</div>
+        <!-- STARTS CONTAINER -->
+        <div class="container">
+          <!-- STARTS .content -->
+          <div id="content" class="row">
+            
+            <!-- STARTS .container-sidebar -->
+<div class="container-sidebar col-xs-12 col-sm-3">
+  <div id="docSidebar" class="sticky-container">
+    <div role="search" class="sphinx-search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+    
+<!-- Note: only works when deployed -->
+<select class="form-control" onchange="if (this.value) window.location.href=this.value">
+    <option
+      value="/develop"
+      selected
+      >
+      Version: develop (latest - mynewt-documentation)
+    </option>
+    <option
+      value="/latest/os/introduction"
+      >
+      Version: master (latest - mynewt-site)
+    </option>
+    <option
+      value="/v1_2_0/os/introduction"
+      >
+      Version: 1.2.0
+    </option>
+    <option
+      value="/v1_1_0/os/introduction">
+      Version: 1.1.0
+    </option>
+    <option
+      value="/v1_0_0/os/introduction">
+      Version: 1.0.0
+    </option>
+    <option
+      value="/v0_9_0/os/introduction">
+      Version: 0_9_0
+    </option>
+</select>
+    <div class="region region-sidebar">
+      <div class="docs-menu">
+      
+        
+        
+            <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../get_started/index.html">Setup &amp; Get Started</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../concepts.html">Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="tutorials.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../os/os_user_guide.html">OS User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../network/ble/ble_intro.html">BLE User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newt/index.html">Newt Tool Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newtmgr/index.html">Newt Manager Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../misc/index.html">Appendix</a></li>
+</ul>
+
+        
+      
+      </div>
+    </div>
+  </div>
+  <!-- ENDS STICKY CONTAINER -->
+</div>
+<!-- ENDS .container-sidebar -->
+
+            <div class="col-xs-12 col-sm-9">
+              <div class="alert alert-info" role="alert">
+  <p>
+    This is the development version of Apache Mynewt documentation. As such it may not be as complete as the latest
+    stable version of the documentation found <a href="/latest/os/introduction/">here</a>.
+  </p>
+  <p>
+    To improve this documentation please visit <a href="https://github.com/apache/mynewt-documentation">https://github.com/apache/mynewt-documentation</a>.
+  </p>
+</div>
+              
+              <div class="">
+                <div class="rst-content">
+                  <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+                   <div itemprop="articleBody">
+                    
+  <div class="section" id="segger-systemview">
+<h1>SEGGER SystemView<a class="headerlink" href="#segger-systemview" title="Permalink to this headline">?</a></h1>
+<div class="section" id="objective">
+<h2>Objective<a class="headerlink" href="#objective" title="Permalink to this headline">?</a></h2>
+<p>With <a class="reference external" href="https://www.segger.com/systemview.html">SEGGER?s SystemView</a>
+you can ?record data from the target system while it is running. The
+recorded data is analyzed and the system behavior is visualized in
+different views.?</p>
+</div>
+<div class="section" id="hardware-needed">
+<h2>Hardware needed<a class="headerlink" href="#hardware-needed" title="Permalink to this headline">?</a></h2>
+<p>You?ll need a SEGGER J-Link programmer in order to use this advanced
+functionality. You might have an external J-Link programmer you?re
+already using, or maybe your board has a dedicated J-Link onboard as
+some development kits do. Another possibilty is J-Link OB firmware
+available for some devices like the micro:bit.</p>
+</div>
+<div class="section" id="software-needed">
+<h2>Software needed<a class="headerlink" href="#software-needed" title="Permalink to this headline">?</a></h2>
+<ul class="simple">
+<li>Download <a class="reference external" href="https://www.segger.com/downloads/free-utilities/">SEGGER?s SystemView
+app</a>.</li>
+<li>Copy the description file from sys/sysview/SYSVIEW_Mynewt.txt to the
+/Description/ directory of SystemView</li>
+</ul>
+</div>
+<div class="section" id="setup-the-target">
+<h2>Setup the target<a class="headerlink" href="#setup-the-target" title="Permalink to this headline">?</a></h2>
+<p>We?ll assume you have an existing example we?re enabling SystemView on,
+in this case <a class="reference external" href="nRF52.html">blinky on nrf52</a>. We can do so with the newt
+target amend command:</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>newt target amend blink_nordic syscfg=OS_SYSVIEW=1
+</pre></div>
+</div>
+</div>
+<div class="section" id="run-the-target-executables">
+<h2>Run the target executables<a class="headerlink" href="#run-the-target-executables" title="Permalink to this headline">?</a></h2>
+<p>Now ?run? the newt target as you?ll need an active debugger process to
+attach to:</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ newt run blink_nordic 0
+App image succesfully generated: ~/Downloads/myproj/bin/targets/blink_nordic/app/apps/bleprph/bleprph.img
+Loading app image into slot 1
+[~/Downloads/myproj/repos/apache-mynewt-core/hw/bsp/nrf52-thingy/nrf52-thingy_debug.sh ~/Downloads/myproj/repos/apache-mynewt-core/hw/bsp/nrf52-thingy ~/Downloads/myproj/bin/targets/blink_nordic/app/apps/bleprph/bleprph]
+Debugging ~/Downloads/myproj/bin/targets/blink_nordic/app/apps/bleprph/bleprph.elf
+GNU gdb (GNU Tools for ARM Embedded Processors) 7.8.0.20150604-cvs
+Copyright (C) 2014 Free Software Foundation, Inc.
+License GPLv3+: GNU GPL version 3 or later &lt;http://gnu.org/licenses/gpl.html&gt;
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.  Type &quot;show copying&quot;
+and &quot;show warranty&quot; for details.
+This GDB was configured as &quot;--host=x86_64-apple-darwin10 --target=arm-none-eabi&quot;.
+Type &quot;show configuration&quot; for configuration details.
+For bug reporting instructions, please see:
+&lt;http://www.gnu.org/software/gdb/bugs/&gt;.
+Find the GDB manual and other documentation resources online at:
+&lt;http://www.gnu.org/software/gdb/documentation/&gt;.
+For help, type &quot;help&quot;.
+Type &quot;apropos word&quot; to search for commands related to &quot;word&quot;...
+Reading symbols from ~/Downloads/myproj/bin/targets/blink_nordic/app/apps/bleprph/bleprph.elf...done.
+0x000000d8 in ?? ()
+Resetting target
+0x000000dc in ?? ()
+</pre></div>
+</div>
+</div>
+<div class="section" id="launch-the-app">
+<h2>Launch the app<a class="headerlink" href="#launch-the-app" title="Permalink to this headline">?</a></h2>
+<p>Launch the app and press <strong>OK</strong> in the System Information dialog box.</p>
+<div class="figure" id="id1">
+<img alt="SEGGER SystemView" src="../_images/segger_sysview1.png" />
+<p class="caption"><span class="caption-text">SEGGER SystemView</span></p>
+</div>
+<p>Select ** Target &gt; Start Recording ** and press <strong>OK</strong> in the
+Configuration dialog box.</p>
+<div class="figure" id="id2">
+<img alt="SEGGER SystemView Start Recording" src="../_images/segger_sysview_start_record.png" />
+<p class="caption"><span class="caption-text">SEGGER SystemView Start Recording</span></p>
+</div>
+<p>You should see the recording for your Mynewt application.</p>
+<div class="figure" id="id3">
+<img alt="SEGGER SystemView Recording" src="../_images/segger_sysview_recording.png" />
+<p class="caption"><span class="caption-text">SEGGER SystemView Recording</span></p>
+</div>
+</div>
+</div>
+
+
+                   </div>
+                  </div>
+                  
+                </div>
+              </div>
+            </div>
+            <!-- ENDS CONTENT SECTION -->
+          </div>
+          <!-- ENDS .content -->
+        </div>
+      </div>
+      <footer>
+  <div class="container">
+    <div class="row">
+      <div class="col-xs-12">
+          
+              <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
+          
+      </div>
+      <div class="col-xs-12">
+          <div class="logos">
+              <img src="../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
+              <small class="footnote">
+                Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
+                registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
+              </small>
+              <a href="https://join.slack.com/mynewt/shared_invite/MTkwMTg1ODM1NTg5LTE0OTYxNzQ4NzQtZTU1YmNhYjhkMg">
+                <img src="../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
+              </a>
+          </div>
+      </div>
+    </div>
+  </div>
+</footer>
+    </div>
+    <!-- ENDS #wrapper -->
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'1.3.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true,
+            SOURCELINK_SUFFIX: '.txt'
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="../_static/js/bootstrap-3.0.3.min.js"></script>
+      <script type="text/javascript" src="../_static/js/affix.js"></script>
+      <script type="text/javascript" src="../_static/js/main.js"></script>
+
+   
+
+  </body>
+</html>
\ No newline at end of file
diff --git a/develop/tutorials/slinky/project-nrf52-slinky.html b/develop/tutorials/slinky/project-nrf52-slinky.html
new file mode 100644
index 0000000000..3fc4455511
--- /dev/null
+++ b/develop/tutorials/slinky/project-nrf52-slinky.html
@@ -0,0 +1,581 @@
+
+
+<!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">
+
+    
+
+    
+    <title>Project Slinky using the Nordic nRF52 Board &mdash; Apache Mynewt 1.3.0 documentation</title>
+    
+
+    
+    
+      <link rel="shortcut icon" href="../../_static/mynewt-logo-only-newt32x32.png"/>
+    
+
+    
+
+    <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
+
+    
+      <link rel="stylesheet" href="../../_static/css/sphinx_theme.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../../_static/css/v2.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../../_static/css/restructuredtext.css" type="text/css" />
+    
+
+    
+
+    <link rel="stylesheet" href="../../_static/css/overrides.css" type="text/css" />
+          <link rel="index" title="Index"
+                href="../../genindex.html"/>
+          <link rel="search" title="Search" href="../../search.html"/>
+      <link rel="top" title="Apache Mynewt 1.3.0 documentation" href="../../index.html"/>
+          <link rel="up" title="Project Slinky" href="project-slinky.html"/>
+          <link rel="next" title="Project Slinky Using Olimex Board" href="project-stm32-slinky.html"/>
+          <link rel="prev" title="Project Sim Slinky" href="project-sim-slinky.html"/> 
+
+    
+    <script src="../../_static/js/modernizr.min.js"></script>
+
+    
+    <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="not-front page-documentation" role="document" >
+    <div id="wrapper">
+      <div class="container">
+    <div id="banner" class="row v2-main-banner">
+        <a class="logo-cell" href="/">
+            <img class="logo" src="../../_static/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.3.0</a> released (December 13, 2017)
+            </div>
+        </div>
+    </div>
+</div>
+      
+<header>
+    <nav id="navbar" class="navbar navbar-inverse" 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>
+                        <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
+                    </li>
+                    <li class="important">
+                        <a href="/get_started/quick_start.html">Quick Start</a>
+                    </li>
+                    <li>
+                        <a href="/about/">About</a>
+                    </li>
+                    <li>
+                        <a href="/talks/">Talks</a>
+                    </li>
+                    <li class="active">
+                        <a href="/documentation/">Documentation</a>
+                    </li>
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    <li>
+                        <a href="/community/">Community</a>
+                    </li>
+                    <li>
+                        <a href="/events/">Events</a>
+                    </li>
+                </ul>
+
+                <!-- Search, Navigation and Repo links -->
+                <ul class="nav navbar-nav navbar-right">
+                    
+                </ul>
+            </div>
+        </div>
+    </nav>
+</header>
+      <!-- STARTS MAIN CONTENT -->
+      <div id="main-content">
+        
+
+
+
+
+
+<div id="breadcrumb">
+  <div class="container">
+    <a href="/documentation/">Docs</a> /
+    
+      <a href="../tutorials.html">Tutorials</a> /
+    
+      <a href="project-slinky.html">Project Slinky</a> /
+    
+    Project Slinky using the Nordic nRF52 Board
+    
+  <div class="sourcelink">
+    <a href="https://github.com/apache/mynewt-documentation/edit/master/docs/tutorials/slinky/project-nrf52-slinky.rst" class="icon icon-github"
+           rel="nofollow"> Edit on GitHub</a>
+</div>
+  </div>
+</div>
+        <!-- STARTS CONTAINER -->
+        <div class="container">
+          <!-- STARTS .content -->
+          <div id="content" class="row">
+            
+            <!-- STARTS .container-sidebar -->
+<div class="container-sidebar col-xs-12 col-sm-3">
+  <div id="docSidebar" class="sticky-container">
+    <div role="search" class="sphinx-search">
+  <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
+    <input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+    
+<!-- Note: only works when deployed -->
+<select class="form-control" onchange="if (this.value) window.location.href=this.value">
+    <option
+      value="/develop"
+      selected
+      >
+      Version: develop (latest - mynewt-documentation)
+    </option>
+    <option
+      value="/latest/os/introduction"
+      >
+      Version: master (latest - mynewt-site)
+    </option>
+    <option
+      value="/v1_2_0/os/introduction"
+      >
+      Version: 1.2.0
+    </option>
+    <option
+      value="/v1_1_0/os/introduction">
+      Version: 1.1.0
+    </option>
+    <option
+      value="/v1_0_0/os/introduction">
+      Version: 1.0.0
+    </option>
+    <option
+      value="/v0_9_0/os/introduction">
+      Version: 0_9_0
+    </option>
+</select>
+    <div class="region region-sidebar">
+      <div class="docs-menu">
+      
+        
+        
+            <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../index.html">Introduction</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../get_started/index.html">Setup &amp; Get Started</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../concepts.html">Concepts</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../tutorials.html">Tutorials</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../blinky/blinky.html">Project Blinky</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../repo/add_repos.html">Working with repositories</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="project-slinky.html">Project Slinky for Remote Comms</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="project-sim-slinky.html">Slinky on Simulated device</a></li>
+<li class="toctree-l3 current"><a class="current reference internal" href="#">Slinky on nRF52</a></li>
+<li class="toctree-l3"><a class="reference internal" href="project-stm32-slinky.html">Slinky on Olimex</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../ble/ble.html">Bluetooth Low Energy</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../lora/lorawanapp.html">LoRa</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../os/os_user_guide.html">OS User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../network/ble/ble_intro.html">BLE User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../newt/index.html">Newt Tool Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../newtmgr/index.html">Newt Manager Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../misc/index.html">Appendix</a></li>
+</ul>
+
+        
+      
+      </div>
+    </div>
+  </div>
+  <!-- ENDS STICKY CONTAINER -->
+</div>
+<!-- ENDS .container-sidebar -->
+
+            <div class="col-xs-12 col-sm-9">
+              <div class="alert alert-info" role="alert">
+  <p>
+    This is the development version of Apache Mynewt documentation. As such it may not be as complete as the latest
+    stable version of the documentation found <a href="/latest/os/introduction/">here</a>.
+  </p>
+  <p>
+    To improve this documentation please visit <a href="https://github.com/apache/mynewt-documentation">https://github.com/apache/mynewt-documentation</a>.
+  </p>
+</div>
+              
+              <div class="">
+                <div class="rst-content">
+                  <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+                   <div itemprop="articleBody">
+                    
+  <div class="section" id="project-slinky-using-the-nordic-nrf52-board">
+<h1>Project Slinky using the Nordic nRF52 Board<a class="headerlink" href="#project-slinky-using-the-nordic-nrf52-board" title="Permalink to this headline">?</a></h1>
+<p>This tutorial shows you how to create, build and run the Slinky
+application and communicate with newtmgr for a Nordic nRF52 board.</p>
+<div class="contents local topic" id="contents">
+<ul class="simple">
+<li><a class="reference internal" href="#prerequisites" id="id1">Prerequisites</a></li>
+<li><a class="reference internal" href="#create-a-new-project" id="id2">Create a New Project</a></li>
+<li><a class="reference internal" href="#create-the-targets" id="id3">Create the Targets</a></li>
+<li><a class="reference internal" href="#build-the-targets" id="id4">Build the Targets</a></li>
+<li><a class="reference internal" href="#sign-and-create-the-slinky-application-image" id="id5">Sign and Create the Slinky Application Image</a></li>
+<li><a class="reference internal" href="#connect-to-the-board" id="id6">Connect to the Board</a></li>
+<li><a class="reference internal" href="#load-the-bootloader-and-the-slinky-application-image" id="id7">Load the Bootloader and the Slinky Application Image</a></li>
+<li><a class="reference internal" href="#connect-newtmgr-with-the-board-using-a-serial-connection" id="id8">Connect Newtmgr with the Board using a Serial Connection</a></li>
+<li><a class="reference internal" href="#use-newtmgr-to-query-the-board" id="id9">Use Newtmgr to Query the Board</a></li>
+</ul>
+</div>
+<div class="section" id="prerequisites">
+<h2><a class="toc-backref" href="#id1">Prerequisites</a><a class="headerlink" href="#prerequisites" title="Permalink to this headline">?</a></h2>
+<ul class="simple">
+<li>Meet the prerequisites listed in <a class="reference internal" href="project-slinky.html"><span class="doc">Project
+Slinky</span></a></li>
+<li>Have a Nordic nRF52-DK board.</li>
+<li>Install the <a class="reference external" href="https://www.segger.com/jlink-software.html">Segger JLINK Software and documentation
+pack</a>.</li>
+</ul>
+</div>
+<div class="section" id="create-a-new-project">
+<h2><a class="toc-backref" href="#id2">Create a New Project</a><a class="headerlink" href="#create-a-new-project" title="Permalink to this headline">?</a></h2>
+<p>Create a new project if you do not have an existing one. You can skip
+this step and proceed to <a class="reference internal" href="#create-the-targets">create the targets</a> if you
+already have a project created or completed the <a class="reference internal" href="project-slinky.html"><span class="doc">Sim
+Slinky</span></a> tutorial.</p>
+<p>Run the following commands to create a new project. We name the project
+<code class="docutils literal notranslate"><span class="pre">slinky</span></code>.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt new slinky
+<span class="go">Downloading project skeleton from apache/mynewt-blinky...</span>
+<span class="go">...</span>
+<span class="go">Installing skeleton in slink...</span>
+<span class="go">Project slinky successfully created</span>
+<span class="gp">$</span> <span class="nb">cd</span> slinky
+<span class="gp">$</span>newt install
+<span class="go">apache-mynewt-core</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="create-the-targets">
+<h2><a class="toc-backref" href="#id3">Create the Targets</a><a class="headerlink" href="#create-the-targets" title="Permalink to this headline">?</a></h2>
+<p>Create two targets for the nRF52-DK board - one for the bootloader and
+one for the Slinky application.</p>
+<p>Run the following <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">target</span></code> commands, from your project directory,
+to create a bootloader target. We name the target <code class="docutils literal notranslate"><span class="pre">nrf52_boot</span></code>.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt target create nrf52_boot
+<span class="gp">$</span> newt target <span class="nb">set</span> nrf52_boot <span class="nv">bsp</span><span class="o">=</span>@apache-mynewt-core/hw/bsp/nrf52dk
+<span class="gp">$</span> newt target <span class="nb">set</span> nrf52_boot <span class="nv">build_profile</span><span class="o">=</span>optimized
+<span class="gp">$</span> newt target <span class="nb">set</span> nrf52_boot <span class="nv">app</span><span class="o">=</span>@apache-mynewt-core/apps/boot
+</pre></div>
+</div>
+<p>Run the following <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">target</span></code> commands to create a target for the
+Slinky application. We name the target <code class="docutils literal notranslate"><span class="pre">nrf52_slinky</span></code>.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt target create nrf52_slinky
+<span class="gp">$</span> newt target <span class="nb">set</span> nrf52_slinky <span class="nv">bsp</span><span class="o">=</span>@apache-mynewt-core/hw/bsp/nrf52dk
+<span class="gp">$</span> newt target <span class="nb">set</span> nrf52_slinky <span class="nv">build_profile</span><span class="o">=</span>debug
+<span class="gp">$</span> newt target <span class="nb">set</span> nrf52_slinky <span class="nv">app</span><span class="o">=</span>@apache-mynewt-core/apps/slinky
+</pre></div>
+</div>
+</div>
+<div class="section" id="build-the-targets">
+<h2><a class="toc-backref" href="#id4">Build the Targets</a><a class="headerlink" href="#build-the-targets" title="Permalink to this headline">?</a></h2>
+<p>Run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">build</span> <span class="pre">nrf52_boot</span></code> command to build the bootloader:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt build nrf52-boot
+<span class="go">Building target targets/nrf52_boot</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec256.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_rsa.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/crypto/mbedtls/src/aes.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/loader.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_validate.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/bootutil_misc.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/apps/boot/src/boot.c</span>
+<span class="go">    ...</span>
+
+<span class="go">Archiving sys_mfg.a</span>
+<span class="go">Archiving sys_sysinit.a</span>
+<span class="go">Archiving util_mem.a</span>
+<span class="go">Linking ~/dev/slinky/bin/targets/nrf52_boot/app/apps/boot/boot.elf</span>
+<span class="go">Target successfully built: targets/nrf52_boot</span>
+</pre></div>
+</div>
+<p>Run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">build</span> <span class="pre">nrf52_slinky</span></code> command to build the Slinky
+application:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span>newt build nrf52_slinky
+<span class="go">Building target targets/nrf52_slinky</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec256.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_rsa.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/split/src/split.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/loader.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/bootutil_misc.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/split/src/split_config.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/crypto/mbedtls/src/aesni.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_validate.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/crypto/mbedtls/src/aes.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/apps/slinky/src/main.c</span>
+
+<span class="go">       ...</span>
+
+<span class="go">Archiving util_mem.a</span>
+<span class="go">Linking ~/dev/slinky/bin/targets/nrf52_slinky/app/apps/slinky/slinky.elf</span>
+<span class="go">Target successfully built: targets/nrf52_slinky</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="sign-and-create-the-slinky-application-image">
+<h2><a class="toc-backref" href="#id5">Sign and Create the Slinky Application Image</a><a class="headerlink" href="#sign-and-create-the-slinky-application-image" title="Permalink to this headline">?</a></h2>
+<p>Run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">create-image</span> <span class="pre">nrf52_slinky</span> <span class="pre">1.0.0</span></code> command to create and
+sign the application image. You may assign an arbitrary version (e.g.
+1.0.0) to the image.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt create-image nrf52_slinky <span class="m">1</span>.0.0
+<span class="go">App image succesfully generated: ~/dev/slinky/bin/targets/nrf52_slinky/app/apps/slinky/slinky.img</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="connect-to-the-board">
+<h2><a class="toc-backref" href="#id6">Connect to the Board</a><a class="headerlink" href="#connect-to-the-board" title="Permalink to this headline">?</a></h2>
+<ul class="simple">
+<li>Connect a micro-USB cable from your computer to the micro-USB port on
+the nRF52-DK board.</li>
+<li>Turn the power on the board to ON. You should see the green LED light
+up on the board.</li>
+</ul>
+</div>
+<div class="section" id="load-the-bootloader-and-the-slinky-application-image">
+<h2><a class="toc-backref" href="#id7">Load the Bootloader and the Slinky Application Image</a><a class="headerlink" href="#load-the-bootloader-and-the-slinky-application-image" title="Permalink to this headline">?</a></h2>
+<p>Run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">load</span> <span class="pre">nrf52_boot</span></code> command to load the bootloader onto the
+board:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt load nrf52_boot
+<span class="go">Loading bootloader</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+<p>Run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">load</span> <span class="pre">nrf52_slinky</span></code> command to load the Slinky
+application image onto the board:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt load nrf52_slinky
+<span class="go">Loading app image into slot 1</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="connect-newtmgr-with-the-board-using-a-serial-connection">
+<h2><a class="toc-backref" href="#id8">Connect Newtmgr with the Board using a Serial Connection</a><a class="headerlink" href="#connect-newtmgr-with-the-board-using-a-serial-connection" title="Permalink to this headline">?</a></h2>
+<p>Set up a serial connection from your computer to the nRF52-DK board (See
+<a class="reference internal" href="../../get_started/serial_access.html"><span class="doc">Serial Port Setup</span></a>).</p>
+<p>Locate the port, in the /dev directory on your computer, that the serial
+connection uses. The format of the port name is platform dependent:</p>
+<ul>
+<li><p class="first">Mac OS uses the format <code class="docutils literal notranslate"><span class="pre">tty.usbserial-&lt;some</span> <span class="pre">identifier&gt;</span></code>.</p>
+</li>
+<li><p class="first">Linux uses the format <code class="docutils literal notranslate"><span class="pre">TTYUSB&lt;N&gt;</span></code>, where <code class="docutils literal notranslate"><span class="pre">N</span></code> is a number. For
+example, TTYUSB2.</p>
+</li>
+<li><p class="first">MinGW on Windows uses the format <code class="docutils literal notranslate"><span class="pre">ttyS&lt;N&gt;</span></code>, where <code class="docutils literal notranslate"><span class="pre">N</span></code> is a
+number. You must map the port name to a Windows COM port:
+<code class="docutils literal notranslate"><span class="pre">/dev/ttyS&lt;N&gt;</span></code> maps to <code class="docutils literal notranslate"><span class="pre">COM&lt;N+1&gt;</span></code>. For example, <code class="docutils literal notranslate"><span class="pre">/dev/ttyS2</span></code>
+maps to <code class="docutils literal notranslate"><span class="pre">COM3</span></code>.</p>
+<p>You can also use the Windows Device Manager to find the COM port
+number.</p>
+</li>
+</ul>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> ls /dev/tty*usbserial*
+<span class="go">/dev/tty.usbserial-1d11</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+<p>Setup a newtmgr connection profile for the serial port. For our example,
+the port is <code class="docutils literal notranslate"><span class="pre">/dev/tty.usbserial-1d11</span></code>.</p>
+<p>Run the <code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">conn</span> <span class="pre">add</span></code> command to define a newtmgr connection
+profile for the serial port. We name the connection profile
+<code class="docutils literal notranslate"><span class="pre">nrf52serial</span></code>.</p>
+<p><strong>Note</strong>:</p>
+<ul class="simple">
+<li>You will need to replace the <code class="docutils literal notranslate"><span class="pre">connstring</span></code> with the specific port
+for your serial connection.</li>
+<li>On Windows, you must specify <code class="docutils literal notranslate"><span class="pre">COM&lt;N+1&gt;</span></code> for the connstring if
+<code class="docutils literal notranslate"><span class="pre">/dev/ttyS&lt;N&gt;</span></code> is the serial port.</li>
+</ul>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newtmgr conn add nrf52serial <span class="nv">type</span><span class="o">=</span>serial <span class="nv">connstring</span><span class="o">=</span>/dev/tty.usbserial-1d11
+<span class="go">Connection profile nrf52serial successfully added</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+<p>You can run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">conn</span> <span class="pre">show</span></code> command to see all the newtmgr
+connection profiles:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newtmgr conn show
+<span class="go">Connection profiles:</span>
+<span class="go">  nrf52serial: type=serial, connstring=&#39;/dev/tty.usbserial-1d11&#39;</span>
+<span class="go">  sim1: type=serial, connstring=&#39;/dev/ttys012&#39;</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="use-newtmgr-to-query-the-board">
+<h2><a class="toc-backref" href="#id9">Use Newtmgr to Query the Board</a><a class="headerlink" href="#use-newtmgr-to-query-the-board" title="Permalink to this headline">?</a></h2>
+<p>Run some newtmgr commands to query and receive responses back from the board
+(See the
+<a class="reference internal" href="../../newtmgr/index.html"><span class="doc">Newt Manager Guide</span></a> for more
+information on the newtmgr commands)</p>
+<p>Run the <code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">echo</span> <span class="pre">hello</span> <span class="pre">-c</span> <span class="pre">nrf52serial</span></code> command. This is the
+simplest command that requests the board to echo back the text.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newtmgr <span class="nb">echo</span> hello -c nrf52serial
+<span class="go">hello</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+<p>Run the <code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">image</span> <span class="pre">list</span> <span class="pre">-c</span> <span class="pre">nrf52serial</span></code> command to list the
+images on the board:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newtmgr image list -c nrf52serial
+<span class="go">Images:</span>
+<span class="go"> slot=0</span>
+<span class="go">    version: 1.0.0</span>
+<span class="go">    bootable: true</span>
+<span class="go">    flags: active confirmed</span>
+<span class="go">    hash: f411a55d7a5f54eb8880d380bf47521d8c41ed77fd0a7bd5373b0ae87ddabd42</span>
+<span class="go">Split status: N/A</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+<p>Run the <code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">taskstat</span> <span class="pre">-c</span> <span class="pre">nrf52serial</span></code> command to display the task
+statistics on the board:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newtmgr taskstat -c nrf52serial
+<span class="go">      task pri tid  runtime      csw    stksz   stkuse last_checkin next_checkin</span>
+<span class="go">      idle 255   0    43484      539       64       32        0        0</span>
+<span class="go">      main 127   1        1       90     1024      353        0        0</span>
+<span class="go">     task1   8   2        0      340      192      114        0        0</span>
+<span class="go">     task2   9   3        0      340       64       31        0        0</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+</div>
+</div>
+
+
+                   </div>
+                  </div>
+                  
+    <div class="rst-footer-buttons row" role="navigation" aria-label="footer navigation">
+      
+        <a href="project-stm32-slinky.html" class="btn btn-neutral float-right" title="Project Slinky Using Olimex Board" accesskey="n">Next: Project Slinky Using Olimex Board <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="project-sim-slinky.html" class="btn btn-neutral" title="Project Sim Slinky" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous: Project Sim Slinky</a>
+      
+    </div>
+
+                </div>
+              </div>
+            </div>
+            <!-- ENDS CONTENT SECTION -->
+          </div>
+          <!-- ENDS .content -->
+        </div>
+      </div>
+      <footer>
+  <div class="container">
+    <div class="row">
+      <div class="col-xs-12">
+          
+              <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
+          
+      </div>
+      <div class="col-xs-12">
+          <div class="logos">
+              <img src="../../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
+              <small class="footnote">
+                Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
+                registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
+              </small>
+              <a href="https://join.slack.com/mynewt/shared_invite/MTkwMTg1ODM1NTg5LTE0OTYxNzQ4NzQtZTU1YmNhYjhkMg">
+                <img src="../../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
+              </a>
+          </div>
+      </div>
+    </div>
+  </div>
+</footer>
+    </div>
+    <!-- ENDS #wrapper -->
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../../',
+            VERSION:'1.3.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true,
+            SOURCELINK_SUFFIX: '.txt'
+        };
+    </script>
+      <script type="text/javascript" src="../../_static/jquery.js"></script>
+      <script type="text/javascript" src="../../_static/underscore.js"></script>
+      <script type="text/javascript" src="../../_static/doctools.js"></script>
+      <script type="text/javascript" src="../../_static/js/bootstrap-3.0.3.min.js"></script>
+      <script type="text/javascript" src="../../_static/js/affix.js"></script>
+      <script type="text/javascript" src="../../_static/js/main.js"></script>
+
+   
+
+  </body>
+</html>
\ No newline at end of file
diff --git a/develop/tutorials/slinky/project-sim-slinky.html b/develop/tutorials/slinky/project-sim-slinky.html
new file mode 100644
index 0000000000..43d1e49b86
--- /dev/null
+++ b/develop/tutorials/slinky/project-sim-slinky.html
@@ -0,0 +1,464 @@
+
+
+<!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">
+
+    
+
+    
+    <title>Project Sim Slinky &mdash; Apache Mynewt 1.3.0 documentation</title>
+    
+
+    
+    
+      <link rel="shortcut icon" href="../../_static/mynewt-logo-only-newt32x32.png"/>
+    
+
+    
+
+    <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
+
+    
+      <link rel="stylesheet" href="../../_static/css/sphinx_theme.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../../_static/css/v2.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../../_static/css/restructuredtext.css" type="text/css" />
+    
+
+    
+
+    <link rel="stylesheet" href="../../_static/css/overrides.css" type="text/css" />
+          <link rel="index" title="Index"
+                href="../../genindex.html"/>
+          <link rel="search" title="Search" href="../../search.html"/>
+      <link rel="top" title="Apache Mynewt 1.3.0 documentation" href="../../index.html"/>
+          <link rel="up" title="Project Slinky" href="project-slinky.html"/>
+          <link rel="next" title="Project Slinky using the Nordic nRF52 Board" href="project-nrf52-slinky.html"/>
+          <link rel="prev" title="Project Slinky" href="project-slinky.html"/> 
+
+    
+    <script src="../../_static/js/modernizr.min.js"></script>
+
+    
+    <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="not-front page-documentation" role="document" >
+    <div id="wrapper">
+      <div class="container">
+    <div id="banner" class="row v2-main-banner">
+        <a class="logo-cell" href="/">
+            <img class="logo" src="../../_static/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.3.0</a> released (December 13, 2017)
+            </div>
+        </div>
+    </div>
+</div>
+      
+<header>
+    <nav id="navbar" class="navbar navbar-inverse" 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>
+                        <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
+                    </li>
+                    <li class="important">
+                        <a href="/get_started/quick_start.html">Quick Start</a>
+                    </li>
+                    <li>
+                        <a href="/about/">About</a>
+                    </li>
+                    <li>
+                        <a href="/talks/">Talks</a>
+                    </li>
+                    <li class="active">
+                        <a href="/documentation/">Documentation</a>
+                    </li>
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    <li>
+                        <a href="/community/">Community</a>
+                    </li>
+                    <li>
+                        <a href="/events/">Events</a>
+                    </li>
+                </ul>
+
+                <!-- Search, Navigation and Repo links -->
+                <ul class="nav navbar-nav navbar-right">
+                    
+                </ul>
+            </div>
+        </div>
+    </nav>
+</header>
+      <!-- STARTS MAIN CONTENT -->
+      <div id="main-content">
+        
+
+
+
+
+
+<div id="breadcrumb">
+  <div class="container">
+    <a href="/documentation/">Docs</a> /
+    
+      <a href="../tutorials.html">Tutorials</a> /
+    
+      <a href="project-slinky.html">Project Slinky</a> /
+    
+    Project Sim Slinky
+    
+  <div class="sourcelink">
+    <a href="https://github.com/apache/mynewt-documentation/edit/master/docs/tutorials/slinky/project-sim-slinky.rst" class="icon icon-github"
+           rel="nofollow"> Edit on GitHub</a>
+</div>
+  </div>
+</div>
+        <!-- STARTS CONTAINER -->
+        <div class="container">
+          <!-- STARTS .content -->
+          <div id="content" class="row">
+            
+            <!-- STARTS .container-sidebar -->
+<div class="container-sidebar col-xs-12 col-sm-3">
+  <div id="docSidebar" class="sticky-container">
+    <div role="search" class="sphinx-search">
+  <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
+    <input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+    
+<!-- Note: only works when deployed -->
+<select class="form-control" onchange="if (this.value) window.location.href=this.value">
+    <option
+      value="/develop"
+      selected
+      >
+      Version: develop (latest - mynewt-documentation)
+    </option>
+    <option
+      value="/latest/os/introduction"
+      >
+      Version: master (latest - mynewt-site)
+    </option>
+    <option
+      value="/v1_2_0/os/introduction"
+      >
+      Version: 1.2.0
+    </option>
+    <option
+      value="/v1_1_0/os/introduction">
+      Version: 1.1.0
+    </option>
+    <option
+      value="/v1_0_0/os/introduction">
+      Version: 1.0.0
+    </option>
+    <option
+      value="/v0_9_0/os/introduction">
+      Version: 0_9_0
+    </option>
+</select>
+    <div class="region region-sidebar">
+      <div class="docs-menu">
+      
+        
+        
+            <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../index.html">Introduction</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../get_started/index.html">Setup &amp; Get Started</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../concepts.html">Concepts</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../tutorials.html">Tutorials</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../blinky/blinky.html">Project Blinky</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../repo/add_repos.html">Working with repositories</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="project-slinky.html">Project Slinky for Remote Comms</a><ul class="current">
+<li class="toctree-l3 current"><a class="current reference internal" href="#">Slinky on Simulated device</a></li>
+<li class="toctree-l3"><a class="reference internal" href="project-nrf52-slinky.html">Slinky on nRF52</a></li>
+<li class="toctree-l3"><a class="reference internal" href="project-stm32-slinky.html">Slinky on Olimex</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../ble/ble.html">Bluetooth Low Energy</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../lora/lorawanapp.html">LoRa</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../os/os_user_guide.html">OS User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../network/ble/ble_intro.html">BLE User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../newt/index.html">Newt Tool Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../newtmgr/index.html">Newt Manager Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../misc/index.html">Appendix</a></li>
+</ul>
+
+        
+      
+      </div>
+    </div>
+  </div>
+  <!-- ENDS STICKY CONTAINER -->
+</div>
+<!-- ENDS .container-sidebar -->
+
+            <div class="col-xs-12 col-sm-9">
+              <div class="alert alert-info" role="alert">
+  <p>
+    This is the development version of Apache Mynewt documentation. As such it may not be as complete as the latest
+    stable version of the documentation found <a href="/latest/os/introduction/">here</a>.
+  </p>
+  <p>
+    To improve this documentation please visit <a href="https://github.com/apache/mynewt-documentation">https://github.com/apache/mynewt-documentation</a>.
+  </p>
+</div>
+              
+              <div class="">
+                <div class="rst-content">
+                  <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+                   <div itemprop="articleBody">
+                    
+  <div class="section" id="project-sim-slinky">
+<h1>Project Sim Slinky<a class="headerlink" href="#project-sim-slinky" title="Permalink to this headline">?</a></h1>
+<p>This tutorial shows you how to create, build and run the Slinky
+application and communicate with newtmgr for a simulated device. This is
+supported on Mac OS and Linux platforms.</p>
+<div class="contents local topic" id="contents">
+<ul class="simple">
+<li><a class="reference internal" href="#prerequisites" id="id1">Prerequisites</a></li>
+<li><a class="reference internal" href="#creating-a-new-project" id="id2">Creating a new project</a></li>
+<li><a class="reference internal" href="#setting-up-your-target-build" id="id3">Setting up your target build</a></li>
+<li><a class="reference internal" href="#building-your-target" id="id4">Building Your target</a></li>
+<li><a class="reference internal" href="#run-the-target" id="id5">Run the target</a></li>
+<li><a class="reference internal" href="#setting-up-a-connection-profile" id="id6">Setting up a connection profile</a></li>
+<li><a class="reference internal" href="#executing-newtmgr-commands-with-the-target" id="id7">Executing newtmgr commands with the target</a></li>
+</ul>
+</div>
+<div class="section" id="prerequisites">
+<h2><a class="toc-backref" href="#id1">Prerequisites</a><a class="headerlink" href="#prerequisites" title="Permalink to this headline">?</a></h2>
+<p>Meet the prerequisites listed in <a class="reference internal" href="project-slinky.html"><span class="doc">Project Slinky</span></a></p>
+</div>
+<div class="section" id="creating-a-new-project">
+<h2><a class="toc-backref" href="#id2">Creating a new project</a><a class="headerlink" href="#creating-a-new-project" title="Permalink to this headline">?</a></h2>
+<p>Instructions for creating a project are located in the
+<a class="reference internal" href="../../get_started/project_create.html"><span class="doc">Basic Setup</span></a> section of the
+<a class="reference internal" href="../../index.html"><span class="doc">Mynewt Documentation</span></a></p>
+<p>We will list only the steps here for brevity.
+We will name the project <code class="docutils literal notranslate"><span class="pre">slinky</span></code>.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt new slinky
+<span class="go">Downloading project skeleton from apache/mynewt-blinky...</span>
+<span class="go">...</span>
+<span class="go">Installing skeleton in slink...</span>
+<span class="go">Project slinky successfully created</span>
+<span class="gp">$</span> <span class="nb">cd</span> slinky
+<span class="gp">$</span>newt install
+<span class="go">apache-mynewt-core</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="setting-up-your-target-build">
+<h2><a class="toc-backref" href="#id3">Setting up your target build</a><a class="headerlink" href="#setting-up-your-target-build" title="Permalink to this headline">?</a></h2>
+<p>Create a target for <code class="docutils literal notranslate"><span class="pre">slinky</span></code> using the native bsp. We will list only
+the steps and suppress the tool output here for brevity.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt target create sim_slinky
+<span class="gp">$</span> newt target <span class="nb">set</span> sim_slinky <span class="nv">bsp</span><span class="o">=</span>@apache-mynewt-core/hw/bsp/native
+<span class="gp">$</span> newt target <span class="nb">set</span> sim_slinky <span class="nv">build_profile</span><span class="o">=</span>debug
+<span class="gp">$</span> newt target <span class="nb">set</span> sim_slinky <span class="nv">app</span><span class="o">=</span>@apache-mynewt-core/apps/slinky
+</pre></div>
+</div>
+</div>
+<div class="section" id="building-your-target">
+<h2><a class="toc-backref" href="#id4">Building Your target</a><a class="headerlink" href="#building-your-target" title="Permalink to this headline">?</a></h2>
+<p>To build your target, use <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">build</span></code>. When complete, an executable
+file is created.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt build sim_slinky
+<span class="go">Building target targets/sim_slinky</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec256.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_rsa.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/split/src/split.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_validate.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/loader.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/bootutil_misc.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/crypto/mbedtls/src/aesni.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/crypto/mbedtls/src/aes.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/split/src/split_config.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/apps/slinky/src/main.c</span>
+
+<span class="go">          ...</span>
+
+<span class="go">Archiving util_crc.a</span>
+<span class="go">Archiving util_mem.a</span>
+<span class="go">Linking ~/dev/slinky/bin/targets/sim_slinky/app/apps/slinky/slinky.elf</span>
+<span class="go">Target successfully built: targets/sim_slinky</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="run-the-target">
+<h2><a class="toc-backref" href="#id5">Run the target</a><a class="headerlink" href="#run-the-target" title="Permalink to this headline">?</a></h2>
+<p>Run the executable you have build for the simulated environment. The
+serial port name on which the simulated target is connected is shown in
+the output when mynewt slinky starts.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> ~/dev/slinky/bin/targets/sim_slinky/app/apps/slinky/slinky.elf
+<span class="go">uart0 at /dev/ttys005</span>
+</pre></div>
+</div>
+<p>In this example, the slinky app opened up a com port <code class="docutils literal notranslate"><span class="pre">/dev/ttys005</span></code>
+for communications with newtmgr.</p>
+<p><strong>NOTE:</strong> This application will block. You will need to open a new
+console (or execute this in another console) to continue the tutorial.*</p>
+</div>
+<div class="section" id="setting-up-a-connection-profile">
+<h2><a class="toc-backref" href="#id6">Setting up a connection profile</a><a class="headerlink" href="#setting-up-a-connection-profile" title="Permalink to this headline">?</a></h2>
+<p>You will now set up a connection profile using <code class="docutils literal notranslate"><span class="pre">newtmgr</span></code> for the
+serial port connection and start communicating with the simulated remote
+device.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newtmgr conn add sim1 <span class="nv">type</span><span class="o">=</span>serial <span class="nv">connstring</span><span class="o">=</span>/dev/ttys005
+<span class="go">Connection profile sim1 successfully added</span>
+<span class="gp">$</span> newtmgr conn show
+<span class="go">Connection profiles:</span>
+<span class="go">  sim1: type=serial, connstring=&#39;/dev/ttys005&#39;</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="executing-newtmgr-commands-with-the-target">
+<h2><a class="toc-backref" href="#id7">Executing newtmgr commands with the target</a><a class="headerlink" href="#executing-newtmgr-commands-with-the-target" title="Permalink to this headline">?</a></h2>
+<p>You can now use connection profile <code class="docutils literal notranslate"><span class="pre">sim1</span></code> to talk to the running
+sim_slinky. As an example, we will query the running mynewt OS for the
+usage of its memory pools.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newtmgr -c sim1 mpstat
+<span class="go">Return Code = 0</span>
+<span class="go">                        name blksz  cnt free  min</span>
+<span class="go">                      msys_1   292   12   10   10</span>
+</pre></div>
+</div>
+<p>As a test command, you can send an arbitrary string to the target and it
+will echo that string back in a response to newtmgr.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newtmgr -c sim1 <span class="nb">echo</span> <span class="s2">&quot;Hello Mynewt&quot;</span>
+<span class="go">Hello Mynewt</span>
+</pre></div>
+</div>
+<p>In addition to these, you can also examine running tasks, statistics,
+logs, image status (not on sim), and configuration.</p>
+</div>
+</div>
+
+
+                   </div>
+                  </div>
+                  
+    <div class="rst-footer-buttons row" role="navigation" aria-label="footer navigation">
+      
+        <a href="project-nrf52-slinky.html" class="btn btn-neutral float-right" title="Project Slinky using the Nordic nRF52 Board" accesskey="n">Next: Project Slinky using the Nordic nRF52 Board <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="project-slinky.html" class="btn btn-neutral" title="Project Slinky" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous: Project Slinky</a>
+      
+    </div>
+
+                </div>
+              </div>
+            </div>
+            <!-- ENDS CONTENT SECTION -->
+          </div>
+          <!-- ENDS .content -->
+        </div>
+      </div>
+      <footer>
+  <div class="container">
+    <div class="row">
+      <div class="col-xs-12">
+          
+              <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
+          
+      </div>
+      <div class="col-xs-12">
+          <div class="logos">
+              <img src="../../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
+              <small class="footnote">
+                Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
+                registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
+              </small>
+              <a href="https://join.slack.com/mynewt/shared_invite/MTkwMTg1ODM1NTg5LTE0OTYxNzQ4NzQtZTU1YmNhYjhkMg">
+                <img src="../../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
+              </a>
+          </div>
+      </div>
+    </div>
+  </div>
+</footer>
+    </div>
+    <!-- ENDS #wrapper -->
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../../',
+            VERSION:'1.3.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true,
+            SOURCELINK_SUFFIX: '.txt'
+        };
+    </script>
+      <script type="text/javascript" src="../../_static/jquery.js"></script>
+      <script type="text/javascript" src="../../_static/underscore.js"></script>
+      <script type="text/javascript" src="../../_static/doctools.js"></script>
+      <script type="text/javascript" src="../../_static/js/bootstrap-3.0.3.min.js"></script>
+      <script type="text/javascript" src="../../_static/js/affix.js"></script>
+      <script type="text/javascript" src="../../_static/js/main.js"></script>
+
+   
+
+  </body>
+</html>
\ No newline at end of file
diff --git a/develop/tutorials/slinky/project-slinky.html b/develop/tutorials/slinky/project-slinky.html
new file mode 100644
index 0000000000..eef3118d84
--- /dev/null
+++ b/develop/tutorials/slinky/project-slinky.html
@@ -0,0 +1,396 @@
+
+
+<!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">
+
+    
+
+    
+    <title>Project Slinky &mdash; Apache Mynewt 1.3.0 documentation</title>
+    
+
+    
+    
+      <link rel="shortcut icon" href="../../_static/mynewt-logo-only-newt32x32.png"/>
+    
+
+    
+
+    <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
+
+    
+      <link rel="stylesheet" href="../../_static/css/sphinx_theme.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../../_static/css/v2.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../../_static/css/restructuredtext.css" type="text/css" />
+    
+
+    
+
+    <link rel="stylesheet" href="../../_static/css/overrides.css" type="text/css" />
+          <link rel="index" title="Index"
+                href="../../genindex.html"/>
+          <link rel="search" title="Search" href="../../search.html"/>
+      <link rel="top" title="Apache Mynewt 1.3.0 documentation" href="../../index.html"/>
+          <link rel="up" title="Tutorials" href="../tutorials.html"/>
+          <link rel="next" title="Project Sim Slinky" href="project-sim-slinky.html"/>
+          <link rel="prev" title="Upgrade a repo" href="../repo/upgrade_repo.html"/> 
+
+    
+    <script src="../../_static/js/modernizr.min.js"></script>
+
+    
+    <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="not-front page-documentation" role="document" >
+    <div id="wrapper">
+      <div class="container">
+    <div id="banner" class="row v2-main-banner">
+        <a class="logo-cell" href="/">
+            <img class="logo" src="../../_static/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.3.0</a> released (December 13, 2017)
+            </div>
+        </div>
+    </div>
+</div>
+      
+<header>
+    <nav id="navbar" class="navbar navbar-inverse" 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>
+                        <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
+                    </li>
+                    <li class="important">
+                        <a href="/get_started/quick_start.html">Quick Start</a>
+                    </li>
+                    <li>
+                        <a href="/about/">About</a>
+                    </li>
+                    <li>
+                        <a href="/talks/">Talks</a>
+                    </li>
+                    <li class="active">
+                        <a href="/documentation/">Documentation</a>
+                    </li>
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    <li>
+                        <a href="/community/">Community</a>
+                    </li>
+                    <li>
+                        <a href="/events/">Events</a>
+                    </li>
+                </ul>
+
+                <!-- Search, Navigation and Repo links -->
+                <ul class="nav navbar-nav navbar-right">
+                    
+                </ul>
+            </div>
+        </div>
+    </nav>
+</header>
+      <!-- STARTS MAIN CONTENT -->
+      <div id="main-content">
+        
+
+
+
+
+
+<div id="breadcrumb">
+  <div class="container">
+    <a href="/documentation/">Docs</a> /
+    
+      <a href="../tutorials.html">Tutorials</a> /
+    
+    Project Slinky
+    
+  <div class="sourcelink">
+    <a href="https://github.com/apache/mynewt-documentation/edit/master/docs/tutorials/slinky/project-slinky.rst" class="icon icon-github"
+           rel="nofollow"> Edit on GitHub</a>
+</div>
+  </div>
+</div>
+        <!-- STARTS CONTAINER -->
+        <div class="container">
+          <!-- STARTS .content -->
+          <div id="content" class="row">
+            
+            <!-- STARTS .container-sidebar -->
+<div class="container-sidebar col-xs-12 col-sm-3">
+  <div id="docSidebar" class="sticky-container">
+    <div role="search" class="sphinx-search">
+  <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
+    <input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+    
+<!-- Note: only works when deployed -->
+<select class="form-control" onchange="if (this.value) window.location.href=this.value">
+    <option
+      value="/develop"
+      selected
+      >
+      Version: develop (latest - mynewt-documentation)
+    </option>
+    <option
+      value="/latest/os/introduction"
+      >
+      Version: master (latest - mynewt-site)
+    </option>
+    <option
+      value="/v1_2_0/os/introduction"
+      >
+      Version: 1.2.0
+    </option>
+    <option
+      value="/v1_1_0/os/introduction">
+      Version: 1.1.0
+    </option>
+    <option
+      value="/v1_0_0/os/introduction">
+      Version: 1.0.0
+    </option>
+    <option
+      value="/v0_9_0/os/introduction">
+      Version: 0_9_0
+    </option>
+</select>
+    <div class="region region-sidebar">
+      <div class="docs-menu">
+      
+        
+        
+            <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../index.html">Introduction</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../get_started/index.html">Setup &amp; Get Started</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../concepts.html">Concepts</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../tutorials.html">Tutorials</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../blinky/blinky.html">Project Blinky</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../repo/add_repos.html">Working with repositories</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="#">Project Slinky for Remote Comms</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="project-sim-slinky.html">Slinky on Simulated device</a></li>
+<li class="toctree-l3"><a class="reference internal" href="project-nrf52-slinky.html">Slinky on nRF52</a></li>
+<li class="toctree-l3"><a class="reference internal" href="project-stm32-slinky.html">Slinky on Olimex</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../ble/ble.html">Bluetooth Low Energy</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../lora/lorawanapp.html">LoRa</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../os/os_user_guide.html">OS User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../network/ble/ble_intro.html">BLE User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../newt/index.html">Newt Tool Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../newtmgr/index.html">Newt Manager Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../misc/index.html">Appendix</a></li>
+</ul>
+
+        
+      
+      </div>
+    </div>
+  </div>
+  <!-- ENDS STICKY CONTAINER -->
+</div>
+<!-- ENDS .container-sidebar -->
+
+            <div class="col-xs-12 col-sm-9">
+              <div class="alert alert-info" role="alert">
+  <p>
+    This is the development version of Apache Mynewt documentation. As such it may not be as complete as the latest
+    stable version of the documentation found <a href="/latest/os/introduction/">here</a>.
+  </p>
+  <p>
+    To improve this documentation please visit <a href="https://github.com/apache/mynewt-documentation">https://github.com/apache/mynewt-documentation</a>.
+  </p>
+</div>
+              
+              <div class="">
+                <div class="rst-content">
+                  <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+                   <div itemprop="articleBody">
+                    
+  <div class="section" id="project-slinky">
+<span id="slinky-tutorials"></span><h1>Project Slinky<a class="headerlink" href="#project-slinky" title="Permalink to this headline">?</a></h1>
+<div class="toctree-wrapper compound">
+</div>
+<p>The goal of the project is to use a sample application called ?Slinky?
+included in the Mynewt repository to enable remote communications with a
+device running the Mynewt OS. The protocol for remote communications is
+called newt manager (newtmgr).</p>
+<p>If you have an existing project using a target that does not use the Slinky application and you wish to add newtmgr functionality to
+it, check out the tutorial titled <a class="reference internal" href="../add_newtmgr.html"><span class="doc">Enable newtmgr in any app</span></a></p>
+<div class="contents local topic" id="contents">
+<ul class="simple">
+<li><a class="reference internal" href="#available-tutorials" id="id1">Available Tutorials</a></li>
+<li><a class="reference internal" href="#prerequisites" id="id2">Prerequisites</a></li>
+<li><a class="reference internal" href="#overview-of-steps" id="id3">Overview of Steps</a></li>
+</ul>
+</div>
+<div class="section" id="available-tutorials">
+<h2><a class="toc-backref" href="#id1">Available Tutorials</a><a class="headerlink" href="#available-tutorials" title="Permalink to this headline">?</a></h2>
+<p>Tutorials are available for the following boards:</p>
+<ul class="simple">
+<li><a class="reference internal" href="project-sim-slinky.html"><span class="doc">Project Sim Slinky</span></a>. This is supported on Mac OS and Linux platforms.</li>
+<li><a class="reference internal" href="project-nrf52-slinky.html"><span class="doc">Project Slinky using the Nordic nRF52 Board</span></a>.</li>
+<li><a class="reference internal" href="project-stm32-slinky.html"><span class="doc">Project Slinky Using Olimex Board</span></a>.</li>
+</ul>
+</div>
+<div class="section" id="prerequisites">
+<h2><a class="toc-backref" href="#id2">Prerequisites</a><a class="headerlink" href="#prerequisites" title="Permalink to this headline">?</a></h2>
+<p>Ensure that you meet the following prerequisites before continuing with
+this tutorial:</p>
+<ul class="simple">
+<li>Have Internet connectivity to fetch remote Mynewt components.</li>
+<li>Have a computer to build a Mynewt application and connect to the
+board over USB.</li>
+<li>Have a Micro-USB cable to connect the board and the computer.</li>
+<li>Have a <a class="reference internal" href="../../get_started/serial_access.html"><span class="doc">serial port setup</span></a>.</li>
+<li>Install the newt tool and the toolchains (See <a class="reference internal" href="../../get_started/index.html"><span class="doc">Basic Setup</span></a>).</li>
+<li>Install the <a class="reference internal" href="../../newtmgr/install/install_mac.html"><span class="doc">newtmgr tool</span></a>.</li>
+<li>Read the Mynewt OS <a class="reference internal" href="../../concepts.html"><span class="doc">Concepts</span></a> section.</li>
+<li>Create a project space (directory structure) and populated it with
+the core code repository (apache-mynewt-core) or know how to as
+explained in <a class="reference internal" href="../../get_started/project_create.html"><span class="doc">Creating Your First Project</span></a>.</li>
+</ul>
+</div>
+<div class="section" id="overview-of-steps">
+<h2><a class="toc-backref" href="#id3">Overview of Steps</a><a class="headerlink" href="#overview-of-steps" title="Permalink to this headline">?</a></h2>
+<ul class="simple">
+<li>Install dependencies.</li>
+<li>Define the bootloader and Slinky application target for the target
+board.</li>
+<li>Build the bootloader target.</li>
+<li>Build the Slinky application target and create an application image.</li>
+<li>Set a up serial connection with the targets.</li>
+<li>Create a connection profile using the newtmgr tool.</li>
+<li>Use the newtmgr tool to communicate with the targets.</li>
+</ul>
+</div>
+</div>
+
+
+                   </div>
+                  </div>
+                  
+    <div class="rst-footer-buttons row" role="navigation" aria-label="footer navigation">
+      
+        <a href="project-sim-slinky.html" class="btn btn-neutral float-right" title="Project Sim Slinky" accesskey="n">Next: Project Sim Slinky <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="../repo/upgrade_repo.html" class="btn btn-neutral" title="Upgrade a repo" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous: Upgrade a repo</a>
+      
+    </div>
+
+                </div>
+              </div>
+            </div>
+            <!-- ENDS CONTENT SECTION -->
+          </div>
+          <!-- ENDS .content -->
+        </div>
+      </div>
+      <footer>
+  <div class="container">
+    <div class="row">
+      <div class="col-xs-12">
+          
+              <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
+          
+      </div>
+      <div class="col-xs-12">
+          <div class="logos">
+              <img src="../../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
+              <small class="footnote">
+                Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
+                registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
+              </small>
+              <a href="https://join.slack.com/mynewt/shared_invite/MTkwMTg1ODM1NTg5LTE0OTYxNzQ4NzQtZTU1YmNhYjhkMg">
+                <img src="../../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
+              </a>
+          </div>
+      </div>
+    </div>
+  </div>
+</footer>
+    </div>
+    <!-- ENDS #wrapper -->
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../../',
+            VERSION:'1.3.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true,
+            SOURCELINK_SUFFIX: '.txt'
+        };
+    </script>
+      <script type="text/javascript" src="../../_static/jquery.js"></script>
+      <script type="text/javascript" src="../../_static/underscore.js"></script>
+      <script type="text/javascript" src="../../_static/doctools.js"></script>
+      <script type="text/javascript" src="../../_static/js/bootstrap-3.0.3.min.js"></script>
+      <script type="text/javascript" src="../../_static/js/affix.js"></script>
+      <script type="text/javascript" src="../../_static/js/main.js"></script>
+
+   
+
+  </body>
+</html>
\ No newline at end of file
diff --git a/develop/tutorials/slinky/project-stm32-slinky.html b/develop/tutorials/slinky/project-stm32-slinky.html
new file mode 100644
index 0000000000..d101dded8e
--- /dev/null
+++ b/develop/tutorials/slinky/project-stm32-slinky.html
@@ -0,0 +1,616 @@
+
+
+<!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">
+
+    
+
+    
+    <title>Project Slinky Using Olimex Board &mdash; Apache Mynewt 1.3.0 documentation</title>
+    
+
+    
+    
+      <link rel="shortcut icon" href="../../_static/mynewt-logo-only-newt32x32.png"/>
+    
+
+    
+
+    <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
+
+    
+      <link rel="stylesheet" href="../../_static/css/sphinx_theme.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../../_static/css/v2.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../../_static/css/restructuredtext.css" type="text/css" />
+    
+
+    
+
+    <link rel="stylesheet" href="../../_static/css/overrides.css" type="text/css" />
+          <link rel="index" title="Index"
+                href="../../genindex.html"/>
+          <link rel="search" title="Search" href="../../search.html"/>
+      <link rel="top" title="Apache Mynewt 1.3.0 documentation" href="../../index.html"/>
+          <link rel="up" title="Project Slinky" href="project-slinky.html"/>
+          <link rel="next" title="Bluetooth Low Energy" href="../ble/ble.html"/>
+          <link rel="prev" title="Project Slinky using the Nordic nRF52 Board" href="project-nrf52-slinky.html"/> 
+
+    
+    <script src="../../_static/js/modernizr.min.js"></script>
+
+    
+    <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="not-front page-documentation" role="document" >
+    <div id="wrapper">
+      <div class="container">
+    <div id="banner" class="row v2-main-banner">
+        <a class="logo-cell" href="/">
+            <img class="logo" src="../../_static/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.3.0</a> released (December 13, 2017)
+            </div>
+        </div>
+    </div>
+</div>
+      
+<header>
+    <nav id="navbar" class="navbar navbar-inverse" 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>
+                        <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
+                    </li>
+                    <li class="important">
+                        <a href="/get_started/quick_start.html">Quick Start</a>
+                    </li>
+                    <li>
+                        <a href="/about/">About</a>
+                    </li>
+                    <li>
+                        <a href="/talks/">Talks</a>
+                    </li>
+                    <li class="active">
+                        <a href="/documentation/">Documentation</a>
+                    </li>
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    <li>
+                        <a href="/community/">Community</a>
+                    </li>
+                    <li>
+                        <a href="/events/">Events</a>
+                    </li>
+                </ul>
+
+                <!-- Search, Navigation and Repo links -->
+                <ul class="nav navbar-nav navbar-right">
+                    
+                </ul>
+            </div>
+        </div>
+    </nav>
+</header>
+      <!-- STARTS MAIN CONTENT -->
+      <div id="main-content">
+        
+
+
+
+
+
+<div id="breadcrumb">
+  <div class="container">
+    <a href="/documentation/">Docs</a> /
+    
+      <a href="../tutorials.html">Tutorials</a> /
+    
+      <a href="project-slinky.html">Project Slinky</a> /
+    
+    Project Slinky Using Olimex Board
+    
+  <div class="sourcelink">
+    <a href="https://github.com/apache/mynewt-documentation/edit/master/docs/tutorials/slinky/project-stm32-slinky.rst" class="icon icon-github"
+           rel="nofollow"> Edit on GitHub</a>
+</div>
+  </div>
+</div>
+        <!-- STARTS CONTAINER -->
+        <div class="container">
+          <!-- STARTS .content -->
+          <div id="content" class="row">
+            
+            <!-- STARTS .container-sidebar -->
+<div class="container-sidebar col-xs-12 col-sm-3">
+  <div id="docSidebar" class="sticky-container">
+    <div role="search" class="sphinx-search">
+  <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
+    <input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+    
+<!-- Note: only works when deployed -->
+<select class="form-control" onchange="if (this.value) window.location.href=this.value">
+    <option
+      value="/develop"
+      selected
+      >
+      Version: develop (latest - mynewt-documentation)
+    </option>
+    <option
+      value="/latest/os/introduction"
+      >
+      Version: master (latest - mynewt-site)
+    </option>
+    <option
+      value="/v1_2_0/os/introduction"
+      >
+      Version: 1.2.0
+    </option>
+    <option
+      value="/v1_1_0/os/introduction">
+      Version: 1.1.0
+    </option>
+    <option
+      value="/v1_0_0/os/introduction">
+      Version: 1.0.0
+    </option>
+    <option
+      value="/v0_9_0/os/introduction">
+      Version: 0_9_0
+    </option>
+</select>
+    <div class="region region-sidebar">
+      <div class="docs-menu">
+      
+        
+        
+            <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="../../index.html">Introduction</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../get_started/index.html">Setup &amp; Get Started</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../concepts.html">Concepts</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../tutorials.html">Tutorials</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../blinky/blinky.html">Project Blinky</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../repo/add_repos.html">Working with repositories</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="project-slinky.html">Project Slinky for Remote Comms</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="project-sim-slinky.html">Slinky on Simulated device</a></li>
+<li class="toctree-l3"><a class="reference internal" href="project-nrf52-slinky.html">Slinky on nRF52</a></li>
+<li class="toctree-l3 current"><a class="current reference internal" href="#">Slinky on Olimex</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../ble/ble.html">Bluetooth Low Energy</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../lora/lorawanapp.html">LoRa</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../os/os_user_guide.html">OS User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../network/ble/ble_intro.html">BLE User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../newt/index.html">Newt Tool Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../newtmgr/index.html">Newt Manager Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../misc/index.html">Appendix</a></li>
+</ul>
+
+        
+      
+      </div>
+    </div>
+  </div>
+  <!-- ENDS STICKY CONTAINER -->
+</div>
+<!-- ENDS .container-sidebar -->
+
+            <div class="col-xs-12 col-sm-9">
+              <div class="alert alert-info" role="alert">
+  <p>
+    This is the development version of Apache Mynewt documentation. As such it may not be as complete as the latest
+    stable version of the documentation found <a href="/latest/os/introduction/">here</a>.
+  </p>
+  <p>
+    To improve this documentation please visit <a href="https://github.com/apache/mynewt-documentation">https://github.com/apache/mynewt-documentation</a>.
+  </p>
+</div>
+              
+              <div class="">
+                <div class="rst-content">
+                  <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+                   <div itemprop="articleBody">
+                    
+  <div class="section" id="project-slinky-using-olimex-board">
+<h1>Project Slinky Using Olimex Board<a class="headerlink" href="#project-slinky-using-olimex-board" title="Permalink to this headline">?</a></h1>
+<p>This tutorial shows you how to create, build and run the Slinky
+application and communicate with newtmgr for an Olimex STM-E407 board.</p>
+<div class="contents local topic" id="contents">
+<ul class="simple">
+<li><a class="reference internal" href="#prerequisites" id="id2">Prerequisites</a></li>
+<li><a class="reference internal" href="#create-a-new-project" id="id3">Create a New Project</a></li>
+<li><a class="reference internal" href="#create-the-targets" id="id4">Create the Targets</a></li>
+<li><a class="reference internal" href="#build-the-targets" id="id5">Build the Targets</a></li>
+<li><a class="reference internal" href="#sign-and-create-the-slinky-application-image" id="id6">Sign and Create the Slinky Application Image</a></li>
+<li><a class="reference internal" href="#connect-to-the-board" id="id7">Connect to the Board</a></li>
+<li><a class="reference internal" href="#load-the-bootloader-and-the-slinky-application-image" id="id8">Load the Bootloader and the Slinky Application Image</a></li>
+<li><a class="reference internal" href="#connect-newtmgr-with-the-board-using-a-serial-connection" id="id9">Connect Newtmgr with the Board using a Serial Connection</a></li>
+<li><a class="reference internal" href="#use-newtmgr-to-query-the-board" id="id10">Use Newtmgr to Query the Board</a></li>
+</ul>
+</div>
+<div class="section" id="prerequisites">
+<h2><a class="toc-backref" href="#id2">Prerequisites</a><a class="headerlink" href="#prerequisites" title="Permalink to this headline">?</a></h2>
+<ul class="simple">
+<li>Meet the prerequisites listed in <a class="reference internal" href="project-slinky.html"><span class="doc">Project Slinky</span></a></li>
+<li>Have a STM32-E407 development board from Olimex.</li>
+<li>Have a ARM-USB-TINY-H connector with JTAG interface for debugging ARM
+microcontrollers (comes with the ribbon cable to hook up to the board)</li>
+<li>Have a USB A-B type cable to connect the debugger to your computer.</li>
+<li>Have a USB to TTL Serial Cable with female wiring harness.</li>
+<li>Install the <a class="reference internal" href="../../get_started/native_install/cross_tools.html"><span class="doc">OpenOCD debugger</span></a>.</li>
+</ul>
+</div>
+<div class="section" id="create-a-new-project">
+<h2><a class="toc-backref" href="#id3">Create a New Project</a><a class="headerlink" href="#create-a-new-project" title="Permalink to this headline">?</a></h2>
+<p>Create a new project if you do not have an existing one. You can skip
+this step and proceed to <cite>Create the Targets</cite> if you
+already have a project created or completed the
+<a class="reference internal" href="project-slinky.html"><span class="doc">Sim Slinky</span></a> tutorial.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt new slinky
+<span class="go">Downloading project skeleton from apache/mynewt-blinky...</span>
+<span class="go">...</span>
+<span class="go">Installing skeleton in slink...</span>
+<span class="go">Project slink successfully created</span>
+<span class="gp">$</span> <span class="nb">cd</span> slinky
+<span class="gp">$</span>newt install
+<span class="go">apache-mynewt-core</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="create-the-targets">
+<h2><a class="toc-backref" href="#id4">Create the Targets</a><a class="headerlink" href="#create-the-targets" title="Permalink to this headline">?</a></h2>
+<p>Create two targets for the STM32-E407 board - one for the bootloader and
+one for the Slinky application.</p>
+<p>Run the following <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">target</span></code> commands, from your project directory,
+to create a bootloader target. We name the target <code class="docutils literal notranslate"><span class="pre">stm32_boot</span></code>.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt target create stm32_boot
+<span class="gp">$</span> newt target <span class="nb">set</span> stm32_boot <span class="nv">bsp</span><span class="o">=</span>@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard
+<span class="gp">$</span> newt target <span class="nb">set</span> stm32_boot <span class="nv">build_profile</span><span class="o">=</span>optimized
+<span class="gp">$</span> newt target <span class="nb">set</span> stm32_boot target.app<span class="o">=</span>@apache-mynewt-core/apps/boot
+</pre></div>
+</div>
+<p>Run the following <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">target</span></code> commands to create a target for the
+Slinky application. We name the target <code class="docutils literal notranslate"><span class="pre">stm32_slinky</span></code>.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt target create stm32_slinky
+<span class="gp">$</span> newt target <span class="nb">set</span> stm32_slinky <span class="nv">bsp</span><span class="o">=</span>@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard
+<span class="gp">$</span> newt target <span class="nb">set</span> stm32_slinky <span class="nv">build_profile</span><span class="o">=</span>debug
+<span class="gp">$</span> newt target <span class="nb">set</span> stm32_slinky <span class="nv">app</span><span class="o">=</span>@apache-mynewt-core/apps/slinky
+</pre></div>
+</div>
+</div>
+<div class="section" id="build-the-targets">
+<h2><a class="toc-backref" href="#id5">Build the Targets</a><a class="headerlink" href="#build-the-targets" title="Permalink to this headline">?</a></h2>
+<p>Run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">build</span> <span class="pre">stm32_boot</span></code> command to build the bootloader:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt build stm32_boot
+<span class="go">Building target targets/stm32_boot</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec256.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_rsa.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/loader.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_validate.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/crypto/mbedtls/src/aes.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/bootutil_misc.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/apps/boot/src/boot.c</span>
+
+<span class="go">      ...</span>
+
+<span class="go">Archiving sys_mfg.a</span>
+<span class="go">Archiving sys_sysinit.a</span>
+<span class="go">Archiving util_mem.a</span>
+<span class="go">Linking ~/dev/slinky/bin/targets/stm32_boot/app/apps/boot/boot.elf</span>
+<span class="go">Target successfully built: targets/stm32_boot</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+<p>Run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">build</span> <span class="pre">stm32_slinky</span></code> command to build the Slinky
+application:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span>newt build stm32_slinky
+<span class="go">Building target targets/stm32_slinky</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_rsa.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec256.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/loader.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_validate.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/split/src/split.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/bootutil_misc.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/apps/slinky/src/main.c</span>
+
+<span class="go">       ...</span>
+
+<span class="go">Archiving util_crc.a</span>
+<span class="go">Archiving util_mem.a</span>
+<span class="go">Linking ~/dev/slinky/bin/targets/stm32_slinky/app/apps/slinky/slinky.elf</span>
+<span class="go">Target successfully built: targets/stm32_slinky</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="sign-and-create-the-slinky-application-image">
+<h2><a class="toc-backref" href="#id6">Sign and Create the Slinky Application Image</a><a class="headerlink" href="#sign-and-create-the-slinky-application-image" title="Permalink to this headline">?</a></h2>
+<p>Run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">create-image</span> <span class="pre">stm32_slinky</span> <span class="pre">1.0.0</span></code> command to create and
+sign the application image. You may assign an arbitrary version (e.g.
+1.0.0) to the image.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">newt create-image stm32_slinky 1.0.0</span>
+<span class="go">App image succesfully generated: ~/dev/slinky/bin/targets/stm32_slinky/app/apps/slinky/slinky.img</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="connect-to-the-board">
+<h2><a class="toc-backref" href="#id7">Connect to the Board</a><a class="headerlink" href="#connect-to-the-board" title="Permalink to this headline">?</a></h2>
+<ul class="simple">
+<li>Connect the USB A-B type cable to the ARM-USB-TINY-H debugger
+connector.</li>
+<li>Connect the ARM-USB-Tiny-H debugger connector to your computer and
+the board.</li>
+<li>Connect the USB Micro-A cable to the USB-OTG2 port on the board.</li>
+<li>Set the Power Sel jumper on the board to pins 5 and 6 to select USB-OTG2 as
+the power source. If you would like to use a different power source, refer
+to the <a class="reference external" href="https://www.olimex.com/Products/ARM/ST/STM32-E407/resources/STM32-E407.pdf">OLIMEX STM32-E407 user manual</a>
+for pin specifications.</li>
+</ul>
+<p>You should see a red LED light up on the board.</p>
+</div>
+<div class="section" id="load-the-bootloader-and-the-slinky-application-image">
+<h2><a class="toc-backref" href="#id8">Load the Bootloader and the Slinky Application Image</a><a class="headerlink" href="#load-the-bootloader-and-the-slinky-application-image" title="Permalink to this headline">?</a></h2>
+<p>Run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">load</span> <span class="pre">stm32_boot</span></code> command to load the bootloader onto the
+board:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt load stm32_boot
+<span class="go">Loading bootloader</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+<p>Note: If you are using Windows and get a <code class="docutils literal notranslate"><span class="pre">no</span> <span class="pre">device</span> <span class="pre">found</span></code> error, you
+will need to install the usb driver. Download <a class="reference external" href="http://zadig.akeo.ie">Zadig</a>
+and run it:</p>
+<ul class="simple">
+<li>Select Options &gt; List All Devices.</li>
+<li>Select <code class="docutils literal notranslate"><span class="pre">Olimex</span> <span class="pre">OpenOCD</span> <span class="pre">JTAG</span> <span class="pre">ARM-USB-TINY-H</span></code> from the drop down
+menu.</li>
+<li>Select the <code class="docutils literal notranslate"><span class="pre">WinUSB</span></code> driver.</li>
+<li>Click Install Driver.</li>
+<li>Run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">load</span> <span class="pre">stm32_boot</span></code> command again.</li>
+</ul>
+<p>Run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">load</span> <span class="pre">stm32_slinky</span></code> command to load the Slinky
+application image onto the board:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt load stm32_slinky
+<span class="go">Loading app image into slot 1</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="connect-newtmgr-with-the-board-using-a-serial-connection">
+<h2><a class="toc-backref" href="#id9">Connect Newtmgr with the Board using a Serial Connection</a><a class="headerlink" href="#connect-newtmgr-with-the-board-using-a-serial-connection" title="Permalink to this headline">?</a></h2>
+<p>Locate the PC6/USART6_TX (pin 3), PC7/USART6_RX (pin 4), and GND (pin
+2) of the UEXT connector on the Olimex board. More information on the
+UEXT connector can be found at
+<a class="reference external" href="https://www.olimex.com/Products/Modules/UEXT/">https://www.olimex.com/Products/Modules/UEXT/</a>. The schematic of the
+board can be found at
+<a class="reference external" href="https://www.olimex.com/Products/ARM/ST/STM32-E407/resources/STM32-E407_sch.pdf">https://www.olimex.com/Products/ARM/ST/STM32-E407/resources/STM32-E407_sch.pdf</a>
+for reference.</p>
+<div class="figure" id="id1">
+<img alt="Alt Layout - Serial Connection" src="../../_images/serial_conn.png" />
+<p class="caption"><span class="caption-text">Alt Layout - Serial Connection</span></p>
+</div>
+<ul class="simple">
+<li>Connect the female RX pin of the USB-TTL serial cable to the TX (Pin
+3) of the UEXT connector on the board.</li>
+<li>Connect the female TX pin of the USB-TTL serial cable to the RX (Pin
+4) of the UEXT connector on the board.</li>
+<li>Connect the GND pin of the USB-TTL serial cable to the GND (Pin 2) of
+the UEXT connector on the board.</li>
+</ul>
+<p>Locate the port, in the /dev directory on your computer, that the
+serial connection uses. The format of the port name is platform
+dependent:</p>
+<ul>
+<li><p class="first">Mac OS uses the format <code class="docutils literal notranslate"><span class="pre">tty.usbserial-&lt;some</span> <span class="pre">identifier&gt;</span></code>.</p>
+</li>
+<li><p class="first">Linux uses the format <code class="docutils literal notranslate"><span class="pre">TTYUSB&lt;N&gt;</span></code>, where <code class="docutils literal notranslate"><span class="pre">N</span></code> is a number. For
+example, TTYUSB2.</p>
+</li>
+<li><p class="first">MinGW on Windows uses the format <code class="docutils literal notranslate"><span class="pre">ttyS&lt;N&gt;</span></code>, where <code class="docutils literal notranslate"><span class="pre">N</span></code> is a
+number. You must map the port name to a Windows COM port:
+<code class="docutils literal notranslate"><span class="pre">/dev/ttyS&lt;N&gt;</span></code> maps to <code class="docutils literal notranslate"><span class="pre">COM&lt;N+1&gt;</span></code>. For example, <code class="docutils literal notranslate"><span class="pre">/dev/ttyS2</span></code>
+maps to <code class="docutils literal notranslate"><span class="pre">COM3</span></code>.</p>
+<p>You can also use the Windows Device Manager to find the COM port
+number.</p>
+</li>
+</ul>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> ls /dev/tty*usbserial*
+<span class="go">/dev/tty.usbserial-1d13</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+<p>Setup a newtmgr connection profile for the serial port. For our
+example, the port is <code class="docutils literal notranslate"><span class="pre">/dev/tty.usbserial-1d13</span></code>.</p>
+<p>Run the <code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">conn</span> <span class="pre">add</span></code> command to define a newtmgr connection
+profile for the serial port. We name the connection profile
+<code class="docutils literal notranslate"><span class="pre">stm32serial</span></code>.</p>
+<p><strong>Note</strong>:</p>
+<ul class="simple">
+<li>You will need to replace the <code class="docutils literal notranslate"><span class="pre">connstring</span></code> with the specific port
+for your serial connection.</li>
+<li>On Windows, you must specify <code class="docutils literal notranslate"><span class="pre">COM&lt;N+1&gt;</span></code> for the connstring if
+<code class="docutils literal notranslate"><span class="pre">/dev/ttyS&lt;N&gt;</span></code> is the serial port.</li>
+</ul>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newtmgr conn add stm32serial <span class="nv">type</span><span class="o">=</span>serial <span class="nv">connstring</span><span class="o">=</span>/dev/tty.usbserial-1d13
+<span class="go">Connection profile stm32serial successfully added</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+<p>You can run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">conn</span> <span class="pre">show</span></code> command to see all the newtmgr
+connection profiles:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newtmgr conn show
+<span class="go">Connection profiles:</span>
+<span class="go">  stm32serial: type=serial, connstring=&#39;/dev/tty.usbserial-1d13&#39;</span>
+<span class="go">  sim1: type=serial, connstring=&#39;/dev/ttys012&#39;</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="use-newtmgr-to-query-the-board">
+<h2><a class="toc-backref" href="#id10">Use Newtmgr to Query the Board</a><a class="headerlink" href="#use-newtmgr-to-query-the-board" title="Permalink to this headline">?</a></h2>
+<p>Run some newtmgr commands to query and receive responses back from the board
+(See the <a class="reference internal" href="../../newtmgr/index.html"><span class="doc">Newt Manager Guide</span></a> for more information on the
+newtmgr commands).</p>
+<p>Run the <code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">echo</span> <span class="pre">hello</span> <span class="pre">-c</span> <span class="pre">stm32serial</span></code> command. This is the
+simplest command that requests the board to echo back the text.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newtmgr <span class="nb">echo</span> hello -c stm32serial
+<span class="go">hello</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+<p>Run the <code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">image</span> <span class="pre">list</span> <span class="pre">-c</span> <span class="pre">stm32serial</span></code> command to list the
+images on the board:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newtmgr image list -c stm32serial
+<span class="go">Images:</span>
+<span class="go"> slot=0</span>
+<span class="go">    version: 1.0.0</span>
+<span class="go">    bootable: true</span>
+<span class="go">    flags: active confirmed</span>
+<span class="go">    hash: 9cf8af22b1b573909a8290a90c066d4e190407e97680b7a32243960ec2bf3a7f</span>
+<span class="go">Split status: N/A</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+<p>Run the <code class="docutils literal notranslate"><span class="pre">newtmgr</span> <span class="pre">taskstat</span> <span class="pre">-c</span> <span class="pre">stm32serial</span></code> command to display the task
+statistics on the board:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newtmgr taskstat -c stm32serial
+<span class="go">      task pri tid  runtime      csw    stksz   stkuse last_checkin next_checkin</span>
+<span class="go">      idle 255   0   157179   157183       64       25        0        0</span>
+<span class="go">      main 127   1        4       72     1024      356        0        0</span>
+<span class="go">     task1   8   2        0      158      192      114        0        0</span>
+<span class="go">     task2   9   3        0      158       64       30        0        0</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+</div>
+</div>
+
+
+                   </div>
+                  </div>
+                  
+    <div class="rst-footer-buttons row" role="navigation" aria-label="footer navigation">
+      
+        <a href="../ble/ble.html" class="btn btn-neutral float-right" title="Bluetooth Low Energy" accesskey="n">Next: Bluetooth Low Energy <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="project-nrf52-slinky.html" class="btn btn-neutral" title="Project Slinky using the Nordic nRF52 Board" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous: Project Slinky using the Nordic nRF52 Board</a>
+      
+    </div>
+
+                </div>
+              </div>
+            </div>
+            <!-- ENDS CONTENT SECTION -->
+          </div>
+          <!-- ENDS .content -->
+        </div>
+      </div>
+      <footer>
+  <div class="container">
+    <div class="row">
+      <div class="col-xs-12">
+          
+              <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
+          
+      </div>
+      <div class="col-xs-12">
+          <div class="logos">
+              <img src="../../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
+              <small class="footnote">
+                Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
+                registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
+              </small>
+              <a href="https://join.slack.com/mynewt/shared_invite/MTkwMTg1ODM1NTg5LTE0OTYxNzQ4NzQtZTU1YmNhYjhkMg">
+                <img src="../../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
+              </a>
+          </div>
+      </div>
+    </div>
+  </div>
+</footer>
+    </div>
+    <!-- ENDS #wrapper -->
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../../',
+            VERSION:'1.3.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true,
+            SOURCELINK_SUFFIX: '.txt'
+        };
+    </script>
+      <script type="text/javascript" src="../../_static/jquery.js"></script>
+      <script type="text/javascript" src="../../_static/underscore.js"></script>
+      <script type="text/javascript" src="../../_static/doctools.js"></script>
+      <script type="text/javascript" src="../../_static/js/bootstrap-3.0.3.min.js"></script>
+      <script type="text/javascript" src="../../_static/js/affix.js"></script>
+      <script type="text/javascript" src="../../_static/js/main.js"></script>
+
+   
+
+  </body>
+</html>
\ No newline at end of file
diff --git a/develop/tutorials/tasks_lesson.html b/develop/tutorials/tasks_lesson.html
new file mode 100644
index 0000000000..2b439823e0
--- /dev/null
+++ b/develop/tutorials/tasks_lesson.html
@@ -0,0 +1,587 @@
+
+
+<!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">
+
+    
+
+    
+    <title>Tasks and Priority Management &mdash; Apache Mynewt 1.3.0 documentation</title>
+    
+
+    
+    
+      <link rel="shortcut icon" href="../_static/mynewt-logo-only-newt32x32.png"/>
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+
+    
+      <link rel="stylesheet" href="../_static/css/sphinx_theme.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/v2.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/restructuredtext.css" type="text/css" />
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/overrides.css" type="text/css" />
+          <link rel="index" title="Index"
+                href="../genindex.html"/>
+          <link rel="search" title="Search" href="../search.html"/>
+      <link rel="top" title="Apache Mynewt 1.3.0 documentation" href="../index.html"/> 
+
+    
+    <script src="../_static/js/modernizr.min.js"></script>
+
+    
+    <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="not-front page-documentation" role="document" >
+    <div id="wrapper">
+      <div class="container">
+    <div id="banner" class="row v2-main-banner">
+        <a class="logo-cell" href="/">
+            <img class="logo" src="../_static/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.3.0</a> released (December 13, 2017)
+            </div>
+        </div>
+    </div>
+</div>
+      
+<header>
+    <nav id="navbar" class="navbar navbar-inverse" 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>
+                        <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
+                    </li>
+                    <li class="important">
+                        <a href="/get_started/quick_start.html">Quick Start</a>
+                    </li>
+                    <li>
+                        <a href="/about/">About</a>
+                    </li>
+                    <li>
+                        <a href="/talks/">Talks</a>
+                    </li>
+                    <li class="active">
+                        <a href="/documentation/">Documentation</a>
+                    </li>
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    <li>
+                        <a href="/community/">Community</a>
+                    </li>
+                    <li>
+                        <a href="/events/">Events</a>
+                    </li>
+                </ul>
+
+                <!-- Search, Navigation and Repo links -->
+                <ul class="nav navbar-nav navbar-right">
+                    
+                </ul>
+            </div>
+        </div>
+    </nav>
+</header>
+      <!-- STARTS MAIN CONTENT -->
+      <div id="main-content">
+        
+
+
+
+
+
+<div id="breadcrumb">
+  <div class="container">
+    <a href="/documentation/">Docs</a> /
+    
+    Tasks and Priority Management
+    
+  <div class="sourcelink">
+    <a href="https://github.com/apache/mynewt-documentation/edit/master/docs/tutorials/tasks_lesson.rst" class="icon icon-github"
+           rel="nofollow"> Edit on GitHub</a>
+</div>
+  </div>
+</div>
+        <!-- STARTS CONTAINER -->
+        <div class="container">
+          <!-- STARTS .content -->
+          <div id="content" class="row">
+            
+            <!-- STARTS .container-sidebar -->
+<div class="container-sidebar col-xs-12 col-sm-3">
+  <div id="docSidebar" class="sticky-container">
+    <div role="search" class="sphinx-search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+    
+<!-- Note: only works when deployed -->
+<select class="form-control" onchange="if (this.value) window.location.href=this.value">
+    <option
+      value="/develop"
+      selected
+      >
+      Version: develop (latest - mynewt-documentation)
+    </option>
+    <option
+      value="/latest/os/introduction"
+      >
+      Version: master (latest - mynewt-site)
+    </option>
+    <option
+      value="/v1_2_0/os/introduction"
+      >
+      Version: 1.2.0
+    </option>
+    <option
+      value="/v1_1_0/os/introduction">
+      Version: 1.1.0
+    </option>
+    <option
+      value="/v1_0_0/os/introduction">
+      Version: 1.0.0
+    </option>
+    <option
+      value="/v0_9_0/os/introduction">
+      Version: 0_9_0
+    </option>
+</select>
+    <div class="region region-sidebar">
+      <div class="docs-menu">
+      
+        
+        
+            <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../get_started/index.html">Setup &amp; Get Started</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../concepts.html">Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="tutorials.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../os/os_user_guide.html">OS User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../network/ble/ble_intro.html">BLE User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newt/index.html">Newt Tool Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newtmgr/index.html">Newt Manager Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../misc/index.html">Appendix</a></li>
+</ul>
+
+        
+      
+      </div>
+    </div>
+  </div>
+  <!-- ENDS STICKY CONTAINER -->
+</div>
+<!-- ENDS .container-sidebar -->
+
+            <div class="col-xs-12 col-sm-9">
+              <div class="alert alert-info" role="alert">
+  <p>
+    This is the development version of Apache Mynewt documentation. As such it may not be as complete as the latest
+    stable version of the documentation found <a href="/latest/os/introduction/">here</a>.
+  </p>
+  <p>
+    To improve this documentation please visit <a href="https://github.com/apache/mynewt-documentation">https://github.com/apache/mynewt-documentation</a>.
+  </p>
+</div>
+              
+              <div class="">
+                <div class="rst-content">
+                  <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+                   <div itemprop="articleBody">
+                    
+  <div class="section" id="tasks-and-priority-management">
+<h1>Tasks and Priority Management<a class="headerlink" href="#tasks-and-priority-management" title="Permalink to this headline">?</a></h1>
+<p><strong>Target Platform: Arduino M0 Pro</strong> (or legacy Arduino Zero or Zero Pro,
+but not Arduino M0)</p>
+<p>This lesson is designed to teach core OS concepts and strategies
+encountered when building applications using Mynewt. Specifically, this
+lesson will cover tasks, simple multitasking, and priority management
+running on an Arduino M0 Pro.</p>
+<div class="section" id="prerequisites">
+<h2>Prerequisites<a class="headerlink" href="#prerequisites" title="Permalink to this headline">?</a></h2>
+<p>Before starting, you should read about Mynewt in the
+<a class="reference external" href="http://mynewt.apache.org/os/introduction/">*Introduction*</a> section
+and complete the
+<a class="reference external" href="http://mynewt.apache.org/os/get_started/get_started/">*QuickStart*</a>
+guide and the
+<a class="reference external" href="http://mynewt.apache.org/os/tutorials/arduino_zero/">*Blinky*</a>
+tutorial. Furthermore, it may be helpful to take a peek at the <a class="reference external" href="http://mynewt.apache.org/os/core_os/task/task/">*task
+documentation*</a> for
+additional insights.</p>
+</div>
+<div class="section" id="equipment">
+<h2>Equipment<a class="headerlink" href="#equipment" title="Permalink to this headline">?</a></h2>
+<p>You will need the following equipment:</p>
+<ul class="simple">
+<li>Arduino M0 Pro (or legacy Arduino Zero or Zero Pro, but not Arduino
+M0)</li>
+<li>Computer with Mynewt installed</li>
+<li>USB to Micro USB Cable</li>
+</ul>
+</div>
+<div class="section" id="build-your-application">
+<h2>Build Your Application<a class="headerlink" href="#build-your-application" title="Permalink to this headline">?</a></h2>
+<p>To save time, we will simply modify the Blinky application. We?ll add
+the Task Management code to the Blinky application. Follow the <a class="reference external" href="http://mynewt.apache.org/os/tutorials/arduino_zero/">*Arduino
+Zero Blinky
+tutorial*</a> to
+create a new project and build your bootloader and application. Finally,
+build and load the application to your Arduino to verify that everything
+is in order. Now let?s get started!</p>
+</div>
+<div class="section" id="default-main-task">
+<h2>Default Main Task<a class="headerlink" href="#default-main-task" title="Permalink to this headline">?</a></h2>
+<p>During Mynewt system startup, Mynewt creates a default main task and
+executes the application <code class="docutils literal notranslate"><span class="pre">main()</span></code> function in the context of this
+task. The main task priority defaults to 127 and can be configured with
+the <code class="docutils literal notranslate"><span class="pre">OS_MAIN_TASK_PRIO</span></code> system configuration setting.</p>
+<p>The blinky application only has the <code class="docutils literal notranslate"><span class="pre">main</span></code> task. The <code class="docutils literal notranslate"><span class="pre">main()</span></code>
+function executes an infinite loop that toggles the led and sleeps for
+one second. ##Create a New Task</p>
+<p>The purpose of this section is to give an introduction to the important
+aspects of tasks and how to properly initialize them. First, let?s
+define a second task called <code class="docutils literal notranslate"><span class="pre">work_task</span></code> in main.c (located in
+apps/blinky/src):</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>struct os_task work_task;
+</pre></div>
+</div>
+<p>A task is represented by the
+<a class="reference external" href="http://mynewt.apache.org/os/core_os/task/task/#data-structures">*os_task*</a>
+struct which will hold the task?s information (name, state, priority,
+etc.). A task is made up of two main elements, a task function (also
+known as a task handler) and a task stack.</p>
+<p>Next, let?s take a look at what is required to initialize our new task.</p>
+<div class="section" id="task-stack">
+<h3>Task Stack<a class="headerlink" href="#task-stack" title="Permalink to this headline">?</a></h3>
+<p>The task stack is an array of type <code class="docutils literal notranslate"><span class="pre">os_stack_t</span></code> which holds the
+program stack frames. Mynewt gives us the ability to set the stack size
+for a task giving the application developer room to optimize memory
+usage. Since we?re not short on memory, our <code class="docutils literal notranslate"><span class="pre">work_stack</span></code> is plenty
+large for the purpose of this lesson. Notice that the elements in our
+task stack are of type <code class="docutils literal notranslate"><span class="pre">os_stack_t</span></code> which are generally 32 bits,
+making our entire stack 1024 Bytes.</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>#define WORK_STACK_SIZE OS_STACK_ALIGN(256)
+</pre></div>
+</div>
+<p>Note: The <code class="docutils literal notranslate"><span class="pre">OS_STACK_ALIGN</span></code> macro is used to align the stack based on
+the hardware architecture.</p>
+</div>
+<div class="section" id="task-function">
+<h3>Task Function<a class="headerlink" href="#task-function" title="Permalink to this headline">?</a></h3>
+<p>A task function is essentially an infinite loop that waits for some
+?event? to wake it up. In general, the task function is where the
+majority of work is done by a task. Let?s write a task function for
+<code class="docutils literal notranslate"><span class="pre">work_task</span></code> called <code class="docutils literal notranslate"><span class="pre">work_task_handler()</span></code>:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>void
+work_task_handler(void *arg)
+{
+    struct os_task *t;
+
+    g_led_pin = LED_BLINK_PIN;
+    hal_gpio_init_out(g_led_pin, 1);
+
+    while (1) {
+        t = os_sched_get_current_task();
+        assert(t-&gt;t_func == work_task_handler);
+        /* Do work... */
+    }
+}
+</pre></div>
+</div>
+<p>The task function is called when the task is initially put into the
+<em>running</em> state by the scheduler. We use an infinite loop to ensure that
+the task function never returns. Our assertion that the current task?s
+handler is the same as our task handler is for illustration purposes
+only and does not need to be in most task functions.</p>
+</div>
+<div class="section" id="task-priority">
+<h3>Task Priority<a class="headerlink" href="#task-priority" title="Permalink to this headline">?</a></h3>
+<p>As a preemptive, multitasking RTOS, Mynewt decides which tasks to run
+based on which has a higher priority; the highest priority being 0 and
+the lowest 255. Thus, before initializing our task, we must choose a
+priority defined as a macro variable.</p>
+<p>Let?s set the priority of <code class="docutils literal notranslate"><span class="pre">work_task</span></code> to 0, because everyone knows
+that work is more important than blinking.</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>#define WORK_TASK_PRIO (0)
+</pre></div>
+</div>
+</div>
+<div class="section" id="initialization">
+<h3>Initialization<a class="headerlink" href="#initialization" title="Permalink to this headline">?</a></h3>
+<p>To initialize a new task we use
+<a class="reference external" href="http://mynewt.apache.org/os/core_os/task/os_task_init/">*os_task_init()*</a>
+which takes a number of arguments including our new task function,
+stack, and priority.</p>
+<p>Add the <code class="docutils literal notranslate"><span class="pre">init_tasks()</span></code> function to initialize <code class="docutils literal notranslate"><span class="pre">work_task</span></code> to keep
+our main function clean.</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>int
+init_tasks(void)
+{
+    /* ? */
+    os_stack_t *work_stack;
+    work_stack = malloc(sizeof(os_stack_t)*WORK_STACK_SIZE);
+
+    assert(work_stack);
+    os_task_init(&amp;work_task, &quot;work&quot;, work_task_handler, NULL,
+            WORK_TASK_PRIO, OS_WAIT_FOREVER, work_stack,
+            WORK_STACK_SIZE);
+
+    return 0;
+}
+</pre></div>
+</div>
+<p>Add the call to <code class="docutils literal notranslate"><span class="pre">init_tasks()</span></code> in <code class="docutils literal notranslate"><span class="pre">main()</span></code> before the <code class="docutils literal notranslate"><span class="pre">while</span></code>
+loop:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>int
+main(int argc, char **argv)
+{
+
+        ...
+
+    /* Initialize the work task */
+    init_tasks();
+
+    while (1) {
+         ...
+    }
+}
+</pre></div>
+</div>
+<p>And that?s it! Now run your application using the newt run command.</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ newt run arduino_blinky 0.0.0
+</pre></div>
+</div>
+<p>When GDB appears press C then Enter to continue and ? <em>wait, why
+doesn?t our LED blink anymore?</em></p>
+<div class="section" id="review">
+<h4>Review<a class="headerlink" href="#review" title="Permalink to this headline">?</a></h4>
+<p>Before we run our new app, let?s review what we need in
+order to create a task. This is a general case for a new task called
+mytask:</p>
+<p><strong>1)</strong> Define a new task, task stack, and priority:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>/* My Task */
+struct os_task mytask
+/* My Task Stack */
+#define MYTASK_STACK_SIZE OS_STACK_ALIGN(256)
+os_stack_t mytask_stack[MYTASK_STACK_SIZE];
+/* My Task Priority */
+#define MYTASK_PRIO (0)
+</pre></div>
+</div>
+<p><strong>2)</strong> Define task function:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>void
+mytask_handler(void *arg)
+{
+  while (1) {
+      /* ... */
+  }
+}
+</pre></div>
+</div>
+<p><strong>3)</strong> Initialize the task:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>os_task_init(&amp;mytask, &quot;mytask&quot;, mytask_handler, NULL,
+            MYTASK_PRIO, OS_WAIT_FOREVER, mytask_stack,
+            MYTASK_STACK_SIZE);
+</pre></div>
+</div>
+</div>
+</div>
+</div>
+<div class="section" id="task-priority-preempting-and-context-switching">
+<h2>Task Priority, Preempting, and Context Switching<a class="headerlink" href="#task-priority-preempting-and-context-switching" title="Permalink to this headline">?</a></h2>
+<p>A preemptive RTOS is one in which a higher priority task that is <em>ready
+to run</em> will preempt (i.e. take the place of) the lower priority task
+which is <em>running</em>. When a lower priority task is preempted by a higher
+priority task, the lower priority task?s context data (stack pointer,
+registers, etc.) is saved and the new task is switched in.</p>
+<p>In our example, <code class="docutils literal notranslate"><span class="pre">work_task</span></code> (priority 0) has a higher priority than
+the <code class="docutils literal notranslate"><span class="pre">main</span></code> task (priority 127). Since <code class="docutils literal notranslate"><span class="pre">work_task</span></code> is never put into
+a <em>sleep</em> state, it holds the processor focus on its context.</p>
+<p>Let?s give <code class="docutils literal notranslate"><span class="pre">work_task</span></code> a delay and some simulated work to keep it
+busy. The delay is measured in os ticks and the actual number of ticks
+per second is dependent on the board. We multiply <code class="docutils literal notranslate"><span class="pre">OS_TICKS_PER_SEC</span></code>,
+which is defined in the MCU, by the number of seconds we wish to delay.</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>void
+work_task_handler(void *arg)
+{
+    struct os_task *t;
+
+    g_led_pin = LED_BLINK_PIN;
+    hal_gpio_init_out(g_led_pin, 1);
+
+    while (1) {
+        t = os_sched_get_current_t:ask();
+        assert(t-&gt;t_func == work_task_handler);
+        /* Do work... */
+        int i;
+        for(i = 0; i &lt; 1000000; ++i) {
+            /* Simulate doing a noticeable amount of work */
+            hal_gpio_write(g_led_pin, 1);
+        }
+        os_time_delay(3 * OS_TICKS_PER_SEC);
+    }
+}
+</pre></div>
+</div>
+<p>In order to notice the LED changing, modify the time delay in
+<code class="docutils literal notranslate"><span class="pre">main()</span></code> to blink at a higher frequency.</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>os_time_delay(OS_TICKS_PER_SEC/10);
+</pre></div>
+</div>
+<p>Before we run the app, let?s predict the behavior. With the newest
+additions to <code class="docutils literal notranslate"><span class="pre">work_task_handler()</span></code>, our first action will be to sleep
+for three seconds. This allows the <code class="docutils literal notranslate"><span class="pre">main</span></code> task, running <code class="docutils literal notranslate"><span class="pre">main()</span></code>, to
+take over the CPU and blink to its heart?s content. After three seconds,
+<code class="docutils literal notranslate"><span class="pre">work_task</span></code> will wake up and be made <em>ready to run</em>. This causes it to
+preempt the <code class="docutils literal notranslate"><span class="pre">main</span></code> task. The LED will then remain lit for a short
+period while <code class="docutils literal notranslate"><span class="pre">work_task</span></code> loops, then blink again for another three
+seconds while <code class="docutils literal notranslate"><span class="pre">work_task</span></code> sleeps.</p>
+<p>You should see that our prediction was correct!</p>
+<div class="section" id="priority-management-considerations">
+<h3>Priority Management Considerations<a class="headerlink" href="#priority-management-considerations" title="Permalink to this headline">?</a></h3>
+<p>When projects grow in scope, from blinking LEDs into more sophisticated
+applications, the number of tasks needed increases alongside complexity.
+It remains important, then, that each of our tasks is capable of doing
+its work within a reasonable amount of time.</p>
+<p>Some tasks, such as the Shell task, execute quickly and require almost
+instantaneous response. Therefore, the Shell task should be given a high
+priority. On the other hand, tasks which may be communicating over a
+network, or processing data, should be given a low priority in order to
+not hog the CPU.</p>
+<p>The diagram below shows the different scheduling patterns we would
+expect when we set the <code class="docutils literal notranslate"><span class="pre">work_task</span></code> priority higher and lower than the
+<code class="docutils literal notranslate"><span class="pre">main</span></code> task priority.</p>
+<div class="figure" id="id1">
+<img alt="Task Scheduling" src="../_images/task_lesson.png" />
+<p class="caption"><span class="caption-text">Task Scheduling</span></p>
+</div>
+<p>In the second case where the <code class="docutils literal notranslate"><span class="pre">main</span></code> task has a higher priority,
+<code class="docutils literal notranslate"><span class="pre">work_task</span></code> runs and executes ?work? when the <code class="docutils literal notranslate"><span class="pre">main</span></code> task sleeps,
+saving us idle time compared to the first case.</p>
+<p><strong>Note:</strong> Defining the same priority for two tasks fires an assert in
+os_task_init() and must be avoided. Priority 127 is reserved for main
+task, 255 for idle task.</p>
+</div>
+</div>
+</div>
+
+
+                   </div>
+                  </div>
+                  
+                </div>
+              </div>
+            </div>
+            <!-- ENDS CONTENT SECTION -->
+          </div>
+          <!-- ENDS .content -->
+        </div>
+      </div>
+      <footer>
+  <div class="container">
+    <div class="row">
+      <div class="col-xs-12">
+          
+              <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
+          
+      </div>
+      <div class="col-xs-12">
+          <div class="logos">
+              <img src="../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
+              <small class="footnote">
+                Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
+                registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
+              </small>
+              <a href="https://join.slack.com/mynewt/shared_invite/MTkwMTg1ODM1NTg5LTE0OTYxNzQ4NzQtZTU1YmNhYjhkMg">
+                <img src="../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
+              </a>
+          </div>
+      </div>
+    </div>
+  </div>
+</footer>
+    </div>
+    <!-- ENDS #wrapper -->
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'1.3.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true,
+            SOURCELINK_SUFFIX: '.txt'
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="../_static/js/bootstrap-3.0.3.min.js"></script>
+      <script type="text/javascript" src="../_static/js/affix.js"></script>
+      <script type="text/javascript" src="../_static/js/main.js"></script>
+
+   
+
+  </body>
+</html>
\ No newline at end of file
diff --git a/develop/tutorials/try_markdown.html b/develop/tutorials/try_markdown.html
new file mode 100644
index 0000000000..ef453c27ce
--- /dev/null
+++ b/develop/tutorials/try_markdown.html
@@ -0,0 +1,352 @@
+
+
+<!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">
+
+    
+
+    
+    <title>Try Markdown &mdash; Apache Mynewt 1.3.0 documentation</title>
+    
+
+    
+    
+      <link rel="shortcut icon" href="../_static/mynewt-logo-only-newt32x32.png"/>
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+
+    
+      <link rel="stylesheet" href="../_static/css/sphinx_theme.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/v2.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/restructuredtext.css" type="text/css" />
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/overrides.css" type="text/css" />
+          <link rel="index" title="Index"
+                href="../genindex.html"/>
+          <link rel="search" title="Search" href="../search.html"/>
+      <link rel="top" title="Apache Mynewt 1.3.0 documentation" href="../index.html"/> 
+
+    
+    <script src="../_static/js/modernizr.min.js"></script>
+
+    
+    <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="not-front page-documentation" role="document" >
+    <div id="wrapper">
+      <div class="container">
+    <div id="banner" class="row v2-main-banner">
+        <a class="logo-cell" href="/">
+            <img class="logo" src="../_static/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.3.0</a> released (December 13, 2017)
+            </div>
+        </div>
+    </div>
+</div>
+      
+<header>
+    <nav id="navbar" class="navbar navbar-inverse" 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>
+                        <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
+                    </li>
+                    <li class="important">
+                        <a href="/get_started/quick_start.html">Quick Start</a>
+                    </li>
+                    <li>
+                        <a href="/about/">About</a>
+                    </li>
+                    <li>
+                        <a href="/talks/">Talks</a>
+                    </li>
+                    <li class="active">
+                        <a href="/documentation/">Documentation</a>
+                    </li>
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    <li>
+                        <a href="/community/">Community</a>
+                    </li>
+                    <li>
+                        <a href="/events/">Events</a>
+                    </li>
+                </ul>
+
+                <!-- Search, Navigation and Repo links -->
+                <ul class="nav navbar-nav navbar-right">
+                    
+                </ul>
+            </div>
+        </div>
+    </nav>
+</header>
+      <!-- STARTS MAIN CONTENT -->
+      <div id="main-content">
+        
+
+
+
+
+
+<div id="breadcrumb">
+  <div class="container">
+    <a href="/documentation/">Docs</a> /
+    
+    Try Markdown
+    
+  <div class="sourcelink">
+    <a href="https://github.com/apache/mynewt-documentation/edit/master/docs/tutorials/try_markdown.rst" class="icon icon-github"
+           rel="nofollow"> Edit on GitHub</a>
+</div>
+  </div>
+</div>
+        <!-- STARTS CONTAINER -->
+        <div class="container">
+          <!-- STARTS .content -->
+          <div id="content" class="row">
+            
+            <!-- STARTS .container-sidebar -->
+<div class="container-sidebar col-xs-12 col-sm-3">
+  <div id="docSidebar" class="sticky-container">
+    <div role="search" class="sphinx-search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+    
+<!-- Note: only works when deployed -->
+<select class="form-control" onchange="if (this.value) window.location.href=this.value">
+    <option
+      value="/develop"
+      selected
+      >
+      Version: develop (latest - mynewt-documentation)
+    </option>
+    <option
+      value="/latest/os/introduction"
+      >
+      Version: master (latest - mynewt-site)
+    </option>
+    <option
+      value="/v1_2_0/os/introduction"
+      >
+      Version: 1.2.0
+    </option>
+    <option
+      value="/v1_1_0/os/introduction">
+      Version: 1.1.0
+    </option>
+    <option
+      value="/v1_0_0/os/introduction">
+      Version: 1.0.0
+    </option>
+    <option
+      value="/v0_9_0/os/introduction">
+      Version: 0_9_0
+    </option>
+</select>
+    <div class="region region-sidebar">
+      <div class="docs-menu">
+      
+        
+        
+            <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../get_started/index.html">Setup &amp; Get Started</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../concepts.html">Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="tutorials.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../os/os_user_guide.html">OS User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../network/ble/ble_intro.html">BLE User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newt/index.html">Newt Tool Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newtmgr/index.html">Newt Manager Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../misc/index.html">Appendix</a></li>
+</ul>
+
+        
+      
+      </div>
+    </div>
+  </div>
+  <!-- ENDS STICKY CONTAINER -->
+</div>
+<!-- ENDS .container-sidebar -->
+
+            <div class="col-xs-12 col-sm-9">
+              <div class="alert alert-info" role="alert">
+  <p>
+    This is the development version of Apache Mynewt documentation. As such it may not be as complete as the latest
+    stable version of the documentation found <a href="/latest/os/introduction/">here</a>.
+  </p>
+  <p>
+    To improve this documentation please visit <a href="https://github.com/apache/mynewt-documentation">https://github.com/apache/mynewt-documentation</a>.
+  </p>
+</div>
+              
+              <div class="">
+                <div class="rst-content">
+                  <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+                   <div itemprop="articleBody">
+                    
+  <div class="section" id="try-markdown">
+<h1>Try Markdown<a class="headerlink" href="#try-markdown" title="Permalink to this headline">?</a></h1>
+<div class="section" id="heading3">
+<h2>Heading3<a class="headerlink" href="#heading3" title="Permalink to this headline">?</a></h2>
+<div class="section" id="heading4">
+<h3>Heading4<a class="headerlink" href="#heading4" title="Permalink to this headline">?</a></h3>
+<hr class="docutils" />
+<div class="section" id="list">
+<h4>List<a class="headerlink" href="#list" title="Permalink to this headline">?</a></h4>
+<ul class="simple">
+<li>Start with one # for the largest heading (Heading1). The next smaller
+heading (Heading2) starts with ##. You can go all the way up to
+Heading 6 (######).</li>
+<li>Heading4 (####) and Heading5 (#####) has been styled to show up
+underlined. Yes, it can be changed. If you are curious, you can look
+at the extra.css file in your repo branch.</li>
+<li>It?s <strong>very</strong> easy to do <strong>bold</strong> and <em>italics</em>.</li>
+<li>See how this list has been made using *</li>
+<li>Click on ?Help? in Mou and then on ?Markdown Syntax Reference?.</li>
+<li>Substitute a sentence of your own here</li>
+<li>Guinea Pig!!!</li>
+</ul>
+<hr class="docutils" />
+<blockquote>
+<div><blockquote>
+<div>Note! &gt; You will not be able to see the change immediately by</div></blockquote>
+<p>refreshing your browser right after editign the Markdown file. You
+can only push the change to the Apache repository. So continue with
+the steps in <a class="reference external" href="how_to_edit_docs.html">how_to_edit_docs.md</a>. &gt; &gt;
+You can see the change on the website if/when a doc builder on the
+project team merges your changes to the master branch and generates
+the pages for the website. &gt; &gt; You do have the option to download
+MkDocs and preview the change by hosting the pages locally using its
+built-in web server. The steps are described in
+<a class="reference external" href="how_to_edit_docs.html">how_to_edit_docs.md</a>.</p>
+</div></blockquote>
+</div>
+</div>
+</div>
+</div>
+
+
+                   </div>
+                  </div>
+                  
+                </div>
+              </div>
+            </div>
+            <!-- ENDS CONTENT SECTION -->
+          </div>
+          <!-- ENDS .content -->
+        </div>
+      </div>
+      <footer>
+  <div class="container">
+    <div class="row">
+      <div class="col-xs-12">
+          
+              <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
+          
+      </div>
+      <div class="col-xs-12">
+          <div class="logos">
+              <img src="../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
+              <small class="footnote">
+                Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
+                registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
+              </small>
+              <a href="https://join.slack.com/mynewt/shared_invite/MTkwMTg1ODM1NTg5LTE0OTYxNzQ4NzQtZTU1YmNhYjhkMg">
+                <img src="../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
+              </a>
+          </div>
+      </div>
+    </div>
+  </div>
+</footer>
+    </div>
+    <!-- ENDS #wrapper -->
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'1.3.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true,
+            SOURCELINK_SUFFIX: '.txt'
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="../_static/js/bootstrap-3.0.3.min.js"></script>
+      <script type="text/javascript" src="../_static/js/affix.js"></script>
+      <script type="text/javascript" src="../_static/js/main.js"></script>
+
+   
+
+  </body>
+</html>
\ No newline at end of file
diff --git a/develop/tutorials/tutorials.html b/develop/tutorials/tutorials.html
index 073ff5515f..9f271e791f 100644
--- a/develop/tutorials/tutorials.html
+++ b/develop/tutorials/tutorials.html
@@ -220,6 +220,7 @@ <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.3.0</a> released (Dece
 <li class="toctree-l1 current"><a class="current reference internal" href="#">Tutorials</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="blinky/blinky.html">Project Blinky</a></li>
 <li class="toctree-l2"><a class="reference internal" href="repo/add_repos.html">Working with repositories</a></li>
+<li class="toctree-l2"><a class="reference internal" href="slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
 <li class="toctree-l2"><a class="reference internal" href="ble/ble.html">Bluetooth Low Energy</a></li>
 <li class="toctree-l2"><a class="reference internal" href="lora/lorawanapp.html">LoRa</a></li>
 </ul>
diff --git a/develop/tutorials/unit_test.html b/develop/tutorials/unit_test.html
new file mode 100644
index 0000000000..e0d91402d6
--- /dev/null
+++ b/develop/tutorials/unit_test.html
@@ -0,0 +1,629 @@
+
+
+<!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">
+
+    
+
+    
+    <title>Write a Test Suite for a Package &mdash; Apache Mynewt 1.3.0 documentation</title>
+    
+
+    
+    
+      <link rel="shortcut icon" href="../_static/mynewt-logo-only-newt32x32.png"/>
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+
+    
+      <link rel="stylesheet" href="../_static/css/sphinx_theme.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/v2.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/restructuredtext.css" type="text/css" />
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/overrides.css" type="text/css" />
+          <link rel="index" title="Index"
+                href="../genindex.html"/>
+          <link rel="search" title="Search" href="../search.html"/>
+      <link rel="top" title="Apache Mynewt 1.3.0 documentation" href="../index.html"/> 
+
+    
+    <script src="../_static/js/modernizr.min.js"></script>
+
+    
+    <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="not-front page-documentation" role="document" >
+    <div id="wrapper">
+      <div class="container">
+    <div id="banner" class="row v2-main-banner">
+        <a class="logo-cell" href="/">
+            <img class="logo" src="../_static/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.3.0</a> released (December 13, 2017)
+            </div>
+        </div>
+    </div>
+</div>
+      
+<header>
+    <nav id="navbar" class="navbar navbar-inverse" 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>
+                        <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
+                    </li>
+                    <li class="important">
+                        <a href="/get_started/quick_start.html">Quick Start</a>
+                    </li>
+                    <li>
+                        <a href="/about/">About</a>
+                    </li>
+                    <li>
+                        <a href="/talks/">Talks</a>
+                    </li>
+                    <li class="active">
+                        <a href="/documentation/">Documentation</a>
+                    </li>
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    <li>
+                        <a href="/community/">Community</a>
+                    </li>
+                    <li>
+                        <a href="/events/">Events</a>
+                    </li>
+                </ul>
+
+                <!-- Search, Navigation and Repo links -->
+                <ul class="nav navbar-nav navbar-right">
+                    
+                </ul>
+            </div>
+        </div>
+    </nav>
+</header>
+      <!-- STARTS MAIN CONTENT -->
+      <div id="main-content">
+        
+
+
+
+
+
+<div id="breadcrumb">
+  <div class="container">
+    <a href="/documentation/">Docs</a> /
+    
+    Write a Test Suite for a Package
+    
+  <div class="sourcelink">
+    <a href="https://github.com/apache/mynewt-documentation/edit/master/docs/tutorials/unit_test.rst" class="icon icon-github"
+           rel="nofollow"> Edit on GitHub</a>
+</div>
+  </div>
+</div>
+        <!-- STARTS CONTAINER -->
+        <div class="container">
+          <!-- STARTS .content -->
+          <div id="content" class="row">
+            
+            <!-- STARTS .container-sidebar -->
+<div class="container-sidebar col-xs-12 col-sm-3">
+  <div id="docSidebar" class="sticky-container">
+    <div role="search" class="sphinx-search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+    
+<!-- Note: only works when deployed -->
+<select class="form-control" onchange="if (this.value) window.location.href=this.value">
+    <option
+      value="/develop"
+      selected
+      >
+      Version: develop (latest - mynewt-documentation)
+    </option>
+    <option
+      value="/latest/os/introduction"
+      >
+      Version: master (latest - mynewt-site)
+    </option>
+    <option
+      value="/v1_2_0/os/introduction"
+      >
+      Version: 1.2.0
+    </option>
+    <option
+      value="/v1_1_0/os/introduction">
+      Version: 1.1.0
+    </option>
+    <option
+      value="/v1_0_0/os/introduction">
+      Version: 1.0.0
+    </option>
+    <option
+      value="/v0_9_0/os/introduction">
+      Version: 0_9_0
+    </option>
+</select>
+    <div class="region region-sidebar">
+      <div class="docs-menu">
+      
+        
+        
+            <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../get_started/index.html">Setup &amp; Get Started</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../concepts.html">Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="tutorials.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../os/os_user_guide.html">OS User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../network/ble/ble_intro.html">BLE User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newt/index.html">Newt Tool Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newtmgr/index.html">Newt Manager Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../misc/index.html">Appendix</a></li>
+</ul>
+
+        
+      
+      </div>
+    </div>
+  </div>
+  <!-- ENDS STICKY CONTAINER -->
+</div>
+<!-- ENDS .container-sidebar -->
+
+            <div class="col-xs-12 col-sm-9">
+              <div class="alert alert-info" role="alert">
+  <p>
+    This is the development version of Apache Mynewt documentation. As such it may not be as complete as the latest
+    stable version of the documentation found <a href="/latest/os/introduction/">here</a>.
+  </p>
+  <p>
+    To improve this documentation please visit <a href="https://github.com/apache/mynewt-documentation">https://github.com/apache/mynewt-documentation</a>.
+  </p>
+</div>
+              
+              <div class="">
+                <div class="rst-content">
+                  <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+                   <div itemprop="articleBody">
+                    
+  <div class="section" id="write-a-test-suite-for-a-package">
+<h1>Write a Test Suite for a Package<a class="headerlink" href="#write-a-test-suite-for-a-package" title="Permalink to this headline">?</a></h1>
+<p>This document guides the reader through creating a test suite for a
+Mynewt package.</p>
+<div class="section" id="introduction">
+<h2>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">?</a></h2>
+<p>Writing a test suite involves using the
+<code class="docutils literal notranslate"><span class="pre">`test/testutil</span></code> &lt;../modules/testutil/testutil.html&gt;`__ package. The
+testutil library provides the functionality needed to define test suites
+and test cases.</p>
+</div>
+<div class="section" id="choose-your-package-under-test">
+<h2>Choose Your Package Under Test<a class="headerlink" href="#choose-your-package-under-test" title="Permalink to this headline">?</a></h2>
+<p>Choose the package you want to write a test suite for. In this tutorial,
+we will use the <code class="docutils literal notranslate"><span class="pre">time/datetime</span></code> in the apache-mynewt-core repo.
+Throughout this tutorial, we will be inside the apache-mynewt-core repo
+directory, unlike most tutorials which operate from the top-level
+project directory.</p>
+</div>
+<div class="section" id="create-a-test-package">
+<h2>Create A Test Package<a class="headerlink" href="#create-a-test-package" title="Permalink to this headline">?</a></h2>
+<p>Typically, a library has only one test package. The convention is name
+the test package by appending <code class="docutils literal notranslate"><span class="pre">/test</span></code> to the host library name. For
+example, the test package for <code class="docutils literal notranslate"><span class="pre">encoding/json</span></code> is
+<code class="docutils literal notranslate"><span class="pre">encoding/json/test</span></code>. The directory structure of the json package is
+shown below:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>encoding/json
+??? include
+??? ??? json
+???     ??? json.h
+??? pkg.yml
+??? src
+??? ??? json_decode.c
+??? ??? json_encode.c
+??? test
+    ??? pkg.yml
+    ??? src
+        ??? test_json.c
+        ??? test_json.h
+        ??? test_json_utils.c
+        ??? testcases
+            ??? json_simple_decode.c
+            ??? json_simple_encode.c
+</pre></div>
+</div>
+<p>The top-level <code class="docutils literal notranslate"><span class="pre">test</span></code> directory contains the json test package. To
+create a test package for the datetime package, we need to create a
+similar package called <code class="docutils literal notranslate"><span class="pre">time/datetime/test</span></code>.</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ newt pkg new time/datetime/test -t unittest
+Download package template for package type pkg.
+Package successfuly installed into /home/me/mynewt-core/time/datetime/test.
+</pre></div>
+</div>
+<p>We now have a test package inside <code class="docutils literal notranslate"><span class="pre">time/datetime</span></code>:</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>time/datetime
+??? include
+??? ??? datetime
+???     ??? datetime.h
+??? pkg.yml
+??? src
+??? ??? datetime.c
+??? test
+    ??? README.md
+    ??? pkg.yml
+    ??? src
+    ??? ??? main.c
+    ??? syscfg.yml
+</pre></div>
+</div>
+<p>There is one modification we need to make to the new package before we
+can start writing unit test code. A test package needs access to the
+code it will be testing, so we need to add a dependency on
+<code class="docutils literal notranslate"><span class="pre">&#64;apache-mynewt-core/time/datetime</span></code> to our <code class="docutils literal notranslate"><span class="pre">pkg.yml</span></code> file:</p>
+<p>While we have the <code class="docutils literal notranslate"><span class="pre">pkg.yml</span></code> file open, let?s take a look at what newt
+filled in automatically:</p>
+<ul class="simple">
+<li><code class="docutils literal notranslate"><span class="pre">pkg.type:</span> <span class="pre">unittest</span></code> designates this as a test package. A <em>test
+package</em> is special in that it can be built and executed using the
+<code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">test</span></code> command.</li>
+<li>A test package always depends on
+<code class="docutils literal notranslate"><span class="pre">&#64;apache-mynewt-core/test/testutil</span></code>. The testutil library provides
+the tools necessary for verifying package behavior,</li>
+<li>The <code class="docutils literal notranslate"><span class="pre">SELFTEST</span></code> suffix indicates that a setting should only be
+applied when the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">test</span></code> command is used.</li>
+</ul>
+<p>Regarding the conditional dependency on <code class="docutils literal notranslate"><span class="pre">sys/console/stub</span></code>, the
+datetime package requires some form of console to function. In a regular
+application, the console dependency would be supplied by a higher order
+package. Because <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">test</span></code> runs the test package without an
+application present, the test package needs to supply all unresolved
+dependencies itself when run in self-test mode.</p>
+</div>
+<div class="section" id="create-your-test-suite-code">
+<h2>Create Your Test Suite Code<a class="headerlink" href="#create-your-test-suite-code" title="Permalink to this headline">?</a></h2>
+<p>We will be adding a <em>test suite</em> to the <code class="docutils literal notranslate"><span class="pre">main.c</span></code> file. The test suite
+will be empty for now. We also need to invoke the test suite from
+<code class="docutils literal notranslate"><span class="pre">main()</span></code>.</p>
+<p>Our <code class="docutils literal notranslate"><span class="pre">main.c</span></code> file now looks like this:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>#include &quot;sysinit/sysinit.h&quot;
+#include &quot;testutil/testutil.h&quot;
+
+TEST_SUITE(test_datetime_suite) {
+    /* Empty for now; add test cases later. */
+}
+
+#if MYNEWT_VAL(SELFTEST)
+int
+main(int argc, char **argv)
+{
+    /* Initialize all packages. */
+    sysinit();
+
+    test_datetime_suite();
+
+    /* Indicate whether all test cases passed. */
+    return tu_any_failed;
+}
+#endif
+</pre></div>
+</div>
+</div>
+<div class="section" id="try-it-out">
+<h2>Try It Out<a class="headerlink" href="#try-it-out" title="Permalink to this headline">?</a></h2>
+<p>We now have a working test suite with no tests. Let?s make sure we get a
+passing result when we run <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">test</span></code>:</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ newt test time/datetime
+&lt;build output&gt;
+Executing test: /home/me/mynewt-core/bin/targets/unittest/time_datetime_test/app/time/datetime/test/time_datetime_test.elf
+Passed tests: [time/datetime/test]
+All tests passed
+</pre></div>
+</div>
+</div>
+<div class="section" id="create-a-test">
+<h2>Create a Test<a class="headerlink" href="#create-a-test" title="Permalink to this headline">?</a></h2>
+<p>To create a test within your test suite, there are two things to do.</p>
+<ol class="arabic simple">
+<li>Implement the test case function using the <code class="docutils literal notranslate"><span class="pre">testutil</span></code> macros.</li>
+<li>Call the test case function from within the test suite.</li>
+</ol>
+<p>For this tutorial we will create a test case to verify the
+<code class="docutils literal notranslate"><span class="pre">datetime_parse()</span></code> function. The <code class="docutils literal notranslate"><span class="pre">datetime_parse()</span></code> function is
+declared as follows:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>/**
+ * Parses an RFC 3339 datetime string.  Some examples of valid datetime strings
+ * are:
+ * 2016-03-02T22:44:00                  UTC time (implicit)
+ * 2016-03-02T22:44:00Z                 UTC time (explicit)
+ * 2016-03-02T22:44:00-08:00            PST timezone
+ * 2016-03-02T22:44:00.1                fractional seconds
+ * 2016-03-02T22:44:00.101+05:30        fractional seconds with timezone
+ *
+ * On success, the two output parameters are filled in (tv and tz).
+ *
+ * @return                      0 on success;
+ *                              nonzero on parse error.
+ */
+int
+datetime_parse(const char *input, struct os_timeval *tv, struct os_timezone *tz)
+</pre></div>
+</div>
+<p>Our test case should make sure this function rejects invalid input, and
+that it parses valid input correctly. The updated <code class="docutils literal notranslate"><span class="pre">main.c</span></code> file looks
+like this:</p>
+<div class="code c highlight-none notranslate"><div class="highlight"><pre><span></span>#include &quot;sysinit/sysinit.h&quot;
+#include &quot;testutil/testutil.h&quot;
+#include &quot;os/os_time.h&quot;
+#include &quot;datetime/datetime.h&quot;
+
+TEST_SUITE(test_datetime_suite)
+{
+    test_datetime_parse_simple();
+}
+
+TEST_CASE(test_datetime_parse_simple)
+{
+    struct os_timezone tz;
+    struct os_timeval tv;
+    int rc;
+
+    /*** Valid input. */
+
+    /* No timezone; UTC implied. */
+    rc = datetime_parse(&quot;2017-06-28T22:37:59&quot;, &amp;tv, &amp;tz);
+    TEST_ASSERT_FATAL(rc == 0);
+    TEST_ASSERT(tv.tv_sec == 1498689479);
+    TEST_ASSERT(tv.tv_usec == 0);
+    TEST_ASSERT(tz.tz_minuteswest == 0);
+    TEST_ASSERT(tz.tz_dsttime == 0);
+
+    /* PDT timezone. */
+    rc = datetime_parse(&quot;2013-12-05T02:43:07-07:00&quot;, &amp;tv, &amp;tz);
+    TEST_ASSERT_FATAL(rc == 0);
+    TEST_ASSERT(tv.tv_sec == 1386236587);
+    TEST_ASSERT(tv.tv_usec == 0);
+    TEST_ASSERT(tz.tz_minuteswest == 420);
+    TEST_ASSERT(tz.tz_dsttime == 0);
+
+    /*** Invalid input. */
+
+    /* Nonsense. */
+    rc = datetime_parse(&quot;abc&quot;, &amp;tv, &amp;tz);
+    TEST_ASSERT(rc != 0);
+
+    /* Date-only. */
+    rc = datetime_parse(&quot;2017-01-02&quot;, &amp;tv, &amp;tz);
+    TEST_ASSERT(rc != 0);
+
+    /* Zero month. */
+    rc = datetime_parse(&quot;2017-00-28T22:37:59&quot;, &amp;tv, &amp;tz);
+    TEST_ASSERT(rc != 0);
+
+    /* 13 month. */
+    rc = datetime_parse(&quot;2017-13-28T22:37:59&quot;, &amp;tv, &amp;tz);
+    TEST_ASSERT(rc != 0);
+}
+
+#if MYNEWT_VAL(SELFTEST)
+int
+main(int argc, char **argv)
+{
+    /* Initialize all packages. */
+    sysinit();
+
+    test_datetime_suite();
+
+    /* Indicate whether all test cases passed. */
+    return tu_any_failed;
+}
+#endif
+</pre></div>
+</div>
+<p>Take a few minutes to review the above code. Then keep reading for some
+specifics.</p>
+<div class="section" id="asserting">
+<h3>Asserting<a class="headerlink" href="#asserting" title="Permalink to this headline">?</a></h3>
+<p>The <code class="docutils literal notranslate"><span class="pre">test/testutil</span></code> package provides two tools for verifying the
+correctness of a package:</p>
+<ul class="simple">
+<li><code class="docutils literal notranslate"><span class="pre">TEST_ASSERT</span></code></li>
+<li><code class="docutils literal notranslate"><span class="pre">TEST_ASSERT_FATAL</span></code></li>
+</ul>
+<p>Both of these macros check if the supplied condition is true. They
+differ in how they behave when the condition is not true. On failure,
+<code class="docutils literal notranslate"><span class="pre">TEST_ASSERT</span></code> reports the error and proceeds with the remainder of the
+test case. <code class="docutils literal notranslate"><span class="pre">TEST_ASSERT_FATAL</span></code>, on the other hand, aborts the test
+case on failure.</p>
+<p>The general rule is to only use <code class="docutils literal notranslate"><span class="pre">TEST_ASSERT_FATAL</span></code> when subsequent
+assertions depend on the condition being checked. For example, when
+<code class="docutils literal notranslate"><span class="pre">datetime_parse()</span></code> is expected to succeed, the return code is checked
+with <code class="docutils literal notranslate"><span class="pre">TEST_ASSERT_FATAL</span></code>. If <code class="docutils literal notranslate"><span class="pre">datetime_parse()</span></code> unexpectedly failed,
+the contents of the <code class="docutils literal notranslate"><span class="pre">tv</span></code> and <code class="docutils literal notranslate"><span class="pre">tz</span></code> objects would be indeterminate, so
+it is desirable to abort the test instead of checking them and reporting
+spurious failures.</p>
+</div>
+<div class="section" id="scaling-up">
+<h3>Scaling Up<a class="headerlink" href="#scaling-up" title="Permalink to this headline">?</a></h3>
+<p>The above example is small and self contained, so it is reasonable to
+put everything in a single C file. A typical package will need a lot
+more test code, and it helps to follow some conventions to maintain
+organization. Let?s take a look at a more realistic example. Here is the
+directory structure of the <code class="docutils literal notranslate"><span class="pre">fs/nffs/test</span></code> package:</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>fs/nffs/test
+??? pkg.yml
+??? src
+    ??? nffs_test.c
+    ??? nffs_test.h
+    ??? nffs_test_debug.c
+    ??? nffs_test_priv.h
+    ??? nffs_test_system_01.c
+    ??? nffs_test_utils.c
+    ??? nffs_test_utils.h
+    ??? testcases
+        ??? append_test.c
+        ??? cache_large_file_test.c
+        ??? corrupt_block_test.c
+        ??? corrupt_scratch_test.c
+        ??? gc_on_oom_test.c
+        ??? gc_test.c
+        ??? incomplete_block_test.c
+        ??? large_system_test.c
+        ??? large_unlink_test.c
+        ??? large_write_test.c
+        ??? long_filename_test.c
+        ??? lost_found_test.c
+        ??? many_children_test.c
+        ??? mkdir_test.c
+        ??? open_test.c
+        ??? overwrite_many_test.c
+        ??? overwrite_one_test.c
+        ??? overwrite_three_test.c
+        ??? overwrite_two_test.c
+        ??? read_test.c
+        ??? readdir_test.c
+        ??? rename_test.c
+        ??? split_file_test.c
+        ??? truncate_test.c
+        ??? unlink_test.c
+        ??? wear_level_test.c
+</pre></div>
+</div>
+<p>The <code class="docutils literal notranslate"><span class="pre">fs/nffs/test</span></code> package follows these conventions:</p>
+<ol class="arabic simple">
+<li>A maximum of one test case per C file.</li>
+<li>Each test case file goes in the <code class="docutils literal notranslate"><span class="pre">testcases</span></code> subdirectory.</li>
+<li>Test suites and utility functions go directly in the <code class="docutils literal notranslate"><span class="pre">src</span></code>
+directory.</li>
+</ol>
+<p>Test packages contributed to the Mynewt project should follow these
+conventions.</p>
+</div>
+</div>
+<div class="section" id="congratulations">
+<h2>Congratulations<a class="headerlink" href="#congratulations" title="Permalink to this headline">?</a></h2>
+<p>Now you can begin the work of validating your packages.</p>
+</div>
+</div>
+
+
+                   </div>
+                  </div>
+                  
+                </div>
+              </div>
+            </div>
+            <!-- ENDS CONTENT SECTION -->
+          </div>
+          <!-- ENDS .content -->
+        </div>
+      </div>
+      <footer>
+  <div class="container">
+    <div class="row">
+      <div class="col-xs-12">
+          
+              <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
+          
+      </div>
+      <div class="col-xs-12">
+          <div class="logos">
+              <img src="../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
+              <small class="footnote">
+                Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
+                registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
+              </small>
+              <a href="https://join.slack.com/mynewt/shared_invite/MTkwMTg1ODM1NTg5LTE0OTYxNzQ4NzQtZTU1YmNhYjhkMg">
+                <img src="../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
+              </a>
+          </div>
+      </div>
+    </div>
+  </div>
+</footer>
+    </div>
+    <!-- ENDS #wrapper -->
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'1.3.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true,
+            SOURCELINK_SUFFIX: '.txt'
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="../_static/js/bootstrap-3.0.3.min.js"></script>
+      <script type="text/javascript" src="../_static/js/affix.js"></script>
+      <script type="text/javascript" src="../_static/js/main.js"></script>
+
+   
+
+  </body>
+</html>
\ No newline at end of file
diff --git a/develop/tutorials/wi-fi_on_arduino.html b/develop/tutorials/wi-fi_on_arduino.html
new file mode 100644
index 0000000000..c73ba2bcfe
--- /dev/null
+++ b/develop/tutorials/wi-fi_on_arduino.html
@@ -0,0 +1,601 @@
+
+
+<!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">
+
+    
+
+    
+    <title>Enable Wi-Fi on Arduino MKR1000 &mdash; Apache Mynewt 1.3.0 documentation</title>
+    
+
+    
+    
+      <link rel="shortcut icon" href="../_static/mynewt-logo-only-newt32x32.png"/>
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+
+    
+      <link rel="stylesheet" href="../_static/css/sphinx_theme.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/v2.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" />
+    
+      <link rel="stylesheet" href="../_static/css/restructuredtext.css" type="text/css" />
+    
+
+    
+
+    <link rel="stylesheet" href="../_static/css/overrides.css" type="text/css" />
+          <link rel="index" title="Index"
+                href="../genindex.html"/>
+          <link rel="search" title="Search" href="../search.html"/>
+      <link rel="top" title="Apache Mynewt 1.3.0 documentation" href="../index.html"/> 
+
+    
+    <script src="../_static/js/modernizr.min.js"></script>
+
+    
+    <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="not-front page-documentation" role="document" >
+    <div id="wrapper">
+      <div class="container">
+    <div id="banner" class="row v2-main-banner">
+        <a class="logo-cell" href="/">
+            <img class="logo" src="../_static/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.3.0</a> released (December 13, 2017)
+            </div>
+        </div>
+    </div>
+</div>
+      
+<header>
+    <nav id="navbar" class="navbar navbar-inverse" 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>
+                        <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
+                    </li>
+                    <li class="important">
+                        <a href="/get_started/quick_start.html">Quick Start</a>
+                    </li>
+                    <li>
+                        <a href="/about/">About</a>
+                    </li>
+                    <li>
+                        <a href="/talks/">Talks</a>
+                    </li>
+                    <li class="active">
+                        <a href="/documentation/">Documentation</a>
+                    </li>
+                    <li>
+                        <a href="/download/">Download</a>
+                    </li>
+                    <li>
+                        <a href="/community/">Community</a>
+                    </li>
+                    <li>
+                        <a href="/events/">Events</a>
+                    </li>
+                </ul>
+
+                <!-- Search, Navigation and Repo links -->
+                <ul class="nav navbar-nav navbar-right">
+                    
+                </ul>
+            </div>
+        </div>
+    </nav>
+</header>
+      <!-- STARTS MAIN CONTENT -->
+      <div id="main-content">
+        
+
+
+
+
+
+<div id="breadcrumb">
+  <div class="container">
+    <a href="/documentation/">Docs</a> /
+    
+    Enable Wi-Fi on Arduino MKR1000
+    
+  <div class="sourcelink">
+    <a href="https://github.com/apache/mynewt-documentation/edit/master/docs/tutorials/wi-fi_on_arduino.rst" class="icon icon-github"
+           rel="nofollow"> Edit on GitHub</a>
+</div>
+  </div>
+</div>
+        <!-- STARTS CONTAINER -->
+        <div class="container">
+          <!-- STARTS .content -->
+          <div id="content" class="row">
+            
+            <!-- STARTS .container-sidebar -->
+<div class="container-sidebar col-xs-12 col-sm-3">
+  <div id="docSidebar" class="sticky-container">
+    <div role="search" class="sphinx-search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+    
+<!-- Note: only works when deployed -->
+<select class="form-control" onchange="if (this.value) window.location.href=this.value">
+    <option
+      value="/develop"
+      selected
+      >
+      Version: develop (latest - mynewt-documentation)
+    </option>
+    <option
+      value="/latest/os/introduction"
+      >
+      Version: master (latest - mynewt-site)
+    </option>
+    <option
+      value="/v1_2_0/os/introduction"
+      >
+      Version: 1.2.0
+    </option>
+    <option
+      value="/v1_1_0/os/introduction">
+      Version: 1.1.0
+    </option>
+    <option
+      value="/v1_0_0/os/introduction">
+      Version: 1.0.0
+    </option>
+    <option
+      value="/v0_9_0/os/introduction">
+      Version: 0_9_0
+    </option>
+</select>
+    <div class="region region-sidebar">
+      <div class="docs-menu">
+      
+        
+        
+            <ul>
+<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../get_started/index.html">Setup &amp; Get Started</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../concepts.html">Concepts</a></li>
+<li class="toctree-l1"><a class="reference internal" href="tutorials.html">Tutorials</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../os/os_user_guide.html">OS User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../network/ble/ble_intro.html">BLE User Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newt/index.html">Newt Tool Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../newtmgr/index.html">Newt Manager Guide</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../misc/index.html">Appendix</a></li>
+</ul>
+
+        
+      
+      </div>
+    </div>
+  </div>
+  <!-- ENDS STICKY CONTAINER -->
+</div>
+<!-- ENDS .container-sidebar -->
+
+            <div class="col-xs-12 col-sm-9">
+              <div class="alert alert-info" role="alert">
+  <p>
+    This is the development version of Apache Mynewt documentation. As such it may not be as complete as the latest
+    stable version of the documentation found <a href="/latest/os/introduction/">here</a>.
+  </p>
+  <p>
+    To improve this documentation please visit <a href="https://github.com/apache/mynewt-documentation">https://github.com/apache/mynewt-documentation</a>.
+  </p>
+</div>
+              
+              <div class="">
+                <div class="rst-content">
+                  <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+                   <div itemprop="articleBody">
+                    
+  <div class="section" id="enable-wi-fi-on-arduino-mkr1000">
+<h1>Enable Wi-Fi on Arduino MKR1000<a class="headerlink" href="#enable-wi-fi-on-arduino-mkr1000" title="Permalink to this headline">?</a></h1>
+<p>This tutorial shows you how to enable Wi-Fi on an Arduino MKR1000 board
+and connect to a Wi-Fi network.</p>
+<div class="section" id="prerequisites">
+<h2>Prerequisites<a class="headerlink" href="#prerequisites" title="Permalink to this headline">?</a></h2>
+<p>Ensure that you have met the following prerequisites before continuing
+with this tutorial:</p>
+<ul class="simple">
+<li>Have an Arduino MKR1000 board.</li>
+<li>Have Internet connectivity to fetch remote Mynewt components.</li>
+<li>Have a computer to build a Mynewt application and connect to the
+board over USB.</li>
+<li>Have a Micro-USB cable to connect the board and the computer.</li>
+<li>Have local Wi-Fi network that the computer is connected to and that
+the MKR1000 board can join.</li>
+<li>Have a <a class="reference external" href="/os/get_started/serial_access.html">Serial Port Setup</a>.</li>
+<li>Have a <a class="reference external" href="https://www.segger.com/jlink-debug-probes.html">Segger J-Link Debug
+Probe</a>.</li>
+<li>Have a <a class="reference external" href="https://www.segger.com/jlink-adapters.html#CM_9pin">J-Link 9 pin Cortex-M
+Adapter</a> that
+allows JTAG, SWD and SWO connections between J-Link and Cortex M
+based target hardware systems</li>
+<li>Install the <a class="reference external" href="https://www.segger.com/jlink-software.html">Segger JLINK Software and documentation
+pack</a>.</li>
+<li>Install the Newt tool and toolchains (See <a class="reference external" href="/os/get_started/get_started.html">Basic
+Setup</a>).</li>
+<li>Create a project space (directory structure) and populated it with
+the core code repository (apache-mynewt-core) or know how to as
+explained in <a class="reference external" href="/os/get_started/project_create">Creating Your First
+Project</a>.</li>
+<li>Read the Mynewt OS <a class="reference external" href="/os/get_started/vocabulary.html">Concepts</a>
+section.</li>
+</ul>
+</div>
+<div class="section" id="create-a-project">
+<h2>Create a Project<a class="headerlink" href="#create-a-project" title="Permalink to this headline">?</a></h2>
+<p>Create a new project if you do not have an existing one. You can skip
+this step and proceed to <a class="reference external" href="#%20fetchexternal">fetch external packages</a>
+if you already created a project.</p>
+<p>Run the following commands to create a new project:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> mkdir ~/dev
+<span class="gp">$</span> <span class="nb">cd</span> ~/dev
+<span class="gp">$</span> newt new arduinowifi
+<span class="go">Downloading project skeleton from apache/mynewt-blinky...</span>
+<span class="go">Installing skeleton in arduinowifi...</span>
+<span class="go">Project arduinowifi successfully created.</span>
+<span class="gp">$</span> <span class="nb">cd</span> arduinowifi
+<span class="gp">$</span> newt install
+<span class="go">apache-mynewt-core</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="fetch-external-packages">
+<h2>Fetch External Packages<a class="headerlink" href="#fetch-external-packages" title="Permalink to this headline">?</a></h2>
+<p>Mynewt uses source code provided directly from the chip manufacturer for
+low level operations. Sometimes this code is licensed only for the
+specific manufacturer of the chipset and cannot live in the Apache
+Mynewt repository. That happens to be the case for the Arduino Zero
+board which uses Atmel SAMD21. Runtime?s git hub repository hosts such
+external third-party packages and the Newt tool can fetch them.</p>
+<p>To fetch the package with MCU support for Atmel SAMD21 for Arduino Zero
+from the Runtime git repository, you need to add the repository to the
+<code class="docutils literal notranslate"><span class="pre">project.yml</span></code> file in your base project directory.</p>
+<p>Mynewt uses source code provided directly from the chip manufacturer for
+low level operations. Sometimes this code is licensed only for the
+specific manufacturer of the chipset and cannot live in the Apache
+Mynewt repository. That happens to be the case for the Arduino Zero
+board which uses Atmel SAMD21. Runtime?s github repository hosts such
+external third-party packages and the Newt tool can fetch them.</p>
+<p>To fetch the package with MCU support for Atmel SAMD21 for Arduino Zero
+from the Runtime git repository, you need to add the repository to the
+<code class="docutils literal notranslate"><span class="pre">project.yml</span></code> file in your base project directory (<code class="docutils literal notranslate"><span class="pre">arduinowifi</span></code>).</p>
+<p>Here is an example <code class="docutils literal notranslate"><span class="pre">project.yml</span></code> file with the Arduino Zero repository
+added. The sections with <code class="docutils literal notranslate"><span class="pre">mynewt_arduino_zero</span></code> that need to be added
+to your project file are highlighted.</p>
+<p><strong>Note:</strong> On Windows platforms: You need to set <code class="docutils literal notranslate"><span class="pre">vers</span></code> to <code class="docutils literal notranslate"><span class="pre">0-dev</span></code>
+and use the latest master branch for both repositories.</p>
+<p>```hl_lines=?6 14 15 16 17 18? $ more project.yml project.name:
+?my_project?</p>
+<p>project.repositories: - apache-mynewt-core - mynewt_arduino_zero</p>
+<p>repository.apache-mynewt-core: type: github vers: 1-latest user: apache
+repo: mynewt-core</p>
+<p>repository.mynewt_arduino_zero: type: github vers: 1-latest user:
+runtimeco repo: mynewt_arduino_zero $ ```</p>
+<p>Install the project dependencies using the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">install</span></code> command
+(you can specify <code class="docutils literal notranslate"><span class="pre">-v</span></code> for verbose output):</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt install
+<span class="go">apache-mynewt-core</span>
+<span class="go">mynewt_arduino_zero</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+<p><strong>NOTE:</strong> If there has been a new release of a repo used in your project
+since you last installed it, the <code class="docutils literal notranslate"><span class="pre">1-latest</span></code> version for the repo in
+the <code class="docutils literal notranslate"><span class="pre">project.yml</span></code> file will refer to the new release and will not
+match the installed files. In that case you will get an error message
+saying so and you will need to run <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">upgrade</span></code> to overwrite the
+existing files with the latest codebase.</p>
+</div>
+<div class="section" id="create-a-target-for-the-bootloader">
+<h2>Create a Target for the Bootloader<a class="headerlink" href="#create-a-target-for-the-bootloader" title="Permalink to this headline">?</a></h2>
+<p>You need to create two targets for the MKR1000 board, one for the
+bootloader and one for the <code class="docutils literal notranslate"><span class="pre">winc1500_wifi</span></code> application. Run the
+following <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">target</span></code> commands, from your project directory, to
+create a bootloader target. We name the target <code class="docutils literal notranslate"><span class="pre">mkr1000_boot</span></code>.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt target create mkr1000_boot
+<span class="gp">$</span> newt target <span class="nb">set</span> mkr1000_boot <span class="nv">bsp</span><span class="o">=</span>@mynewt_arduino_zero/hw/bsp/arduino_mkr1000
+<span class="gp">$</span> newt target <span class="nb">set</span> mkr1000_boot <span class="nv">app</span><span class="o">=</span>@apache-mynewt-core/apps/boot
+<span class="gp">$</span> newt target <span class="nb">set</span> mkr1000_boot <span class="nv">build_profile</span><span class="o">=</span>optimized
+<span class="gp">$</span> newt target <span class="nb">set</span> mkr1000_boot <span class="nv">syscfg</span><span class="o">=</span><span class="nv">BSP_ARDUINO_ZERO_PRO</span><span class="o">=</span><span class="m">1</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="create-a-target-for-the-wi-fi-application">
+<h2>Create a Target for the Wi-Fi Application<a class="headerlink" href="#create-a-target-for-the-wi-fi-application" title="Permalink to this headline">?</a></h2>
+<p>Run the following <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">target</span></code> commands to create a target for the
+<code class="docutils literal notranslate"><span class="pre">winc1500_wifi</span></code> application in the arduino repository. We name the
+application target <code class="docutils literal notranslate"><span class="pre">mkr1000_wifi</span></code>.</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ newt target create mkr1000_wifi
+$ newt target set mkr1000_wifi app=@mynewt_arduino_zero/apps/winc1500_wifi
+$ newt target set mkr1000_wifi bsp=@mynewt_arduino_zero/hw/bsp/arduino_mkr1000
+$ newt target set mkr1000_wifi build_profile=debug
+$ newt target set mkr1000_boot syscfg=BSP_ARDUINO_ZERO_PRO=1
+</pre></div>
+</div>
+</div>
+<div class="section" id="build-the-bootloader">
+<h2>Build the Bootloader<a class="headerlink" href="#build-the-bootloader" title="Permalink to this headline">?</a></h2>
+<p>Run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">build</span> <span class="pre">mkr1000_boot</span></code> command to build the bootloader:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt build mkr1000_boot
+<span class="go">Building target targets/mkr1000_boot</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_rsa.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec256.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/crypto/mbedtls/src/aes.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_validate.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/apps/boot/src/boot.c</span>
+
+<span class="go">       ...</span>
+
+<span class="go">Archiving util_mem.a</span>
+<span class="go">Linking ~/dev/arduinowifi/bin/targets/mkr1000_boot/app/apps/boot/boot.elf</span>
+<span class="go">Target successfully built: targets/mkr1000_boot</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="build-the-wi-fi-application">
+<h2>Build the Wi-Fi Application<a class="headerlink" href="#build-the-wi-fi-application" title="Permalink to this headline">?</a></h2>
+<p>Run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">build</span> <span class="pre">mkr1000_wifi</span></code> command to build the wi-fi
+application image:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span>newt build mkr1000_wifi
+<span class="go">Building target targets/mkr1000_wifi</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_ec256.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_rsa.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/image_validate.c</span>
+<span class="go">Compiling repos/apache-mynewt-core/boot/bootutil/src/loader.c</span>
+<span class="go">           ...</span>
+
+<span class="go">Archiving util_mem.a</span>
+<span class="go">Linking ~/dev/arduinowifi/bin/targets/mkr1000_wifi/app/apps/winc1500_wifi/winc1500_wifi.elf</span>
+<span class="go">Target successfully built: targets/mkr1000_wifi</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="sign-and-create-the-wi-fi-application-image">
+<h2>Sign and Create the Wi-Fi Application Image<a class="headerlink" href="#sign-and-create-the-wi-fi-application-image" title="Permalink to this headline">?</a></h2>
+<p>Run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">create-image</span> <span class="pre">mkr1000_wifi</span> <span class="pre">1.0.0</span></code> command to sign and
+create an image file for the Wi-Fi application. You may assign an
+arbitrary version (e.g. 1.0.0) number.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span>newt create-image  mkr1000_wifi <span class="m">1</span>.0.0
+<span class="go">Compiling bin/targets/mkr1000_wifi/generated/src/mkr1000_wifi-sysinit-app.c</span>
+<span class="go">Archiving mkr1000_wifi-sysinit-app.a</span>
+<span class="go">Linking ~/dev/arduinowifi/bin/targets/mkr1000_wifi/app/apps/winc1500_wifi/winc1500_wifi.elf</span>
+<span class="go">App image succesfully generated: ~/dev/arduinowifi/bin/targets/mkr1000_wifi/app/apps/winc1500_wifi/winc1500_wifi.img</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="connect-to-the-board">
+<h2>Connect to the Board<a class="headerlink" href="#connect-to-the-board" title="Permalink to this headline">?</a></h2>
+<ul class="simple">
+<li>Connect your computer to the MKR1000 board with the Micro-USB cable.</li>
+<li>Connect the debug probe to the JTAG port on the board using the Jlink
+9-pin adapter and cable.</li>
+</ul>
+<blockquote>
+<div><img alt="J-Link debug probe to MKR1000" src="../_images/mkr1000-jlink.jpg" /></div></blockquote>
+<p><p>Mynewt will download and debug the target through this port. You should
+see a green LED come on and indicates the board has power.</p>
+</div>
+<div class="section" id="load-the-bootloader-onto-the-board">
+<h2>Load the Bootloader onto the Board<a class="headerlink" href="#load-the-bootloader-onto-the-board" title="Permalink to this headline">?</a></h2>
+<p>Run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">load</span> <span class="pre">mkr1000_boot</span></code> command to load the bootloader onto
+the board:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt load mkr1000_boot
+<span class="go">Loading bootloader</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="load-the-wi-fi-application-image-onto-the-board">
+<h2>Load the Wi-Fi Application Image onto the Board<a class="headerlink" href="#load-the-wi-fi-application-image-onto-the-board" title="Permalink to this headline">?</a></h2>
+<p>Run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">load</span> <span class="pre">mkr1000_wifi</span></code> command to load the wifi application
+onto the board:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> newt load mkr1000_wifi
+<span class="go">Loading app image into slot 1</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="setup-a-serial-connection-between-your-computer-and-the-board">
+<h2>Setup a Serial Connection Between Your Computer and the Board<a class="headerlink" href="#setup-a-serial-connection-between-your-computer-and-the-board" title="Permalink to this headline">?</a></h2>
+<p>Set up a serial connection from your computer to the MKR1000 board (See
+<a class="reference external" href="/os/get_started/serial_access.html">Serial Port Setup</a>). On the
+MKR1000 board, the TX pin is PIN 14 and the RX pin in PIN 13. <img alt="Serial Connection to MKR1000" src="../_images/mkr1000-serial.jpg" /></p>
+<p><p>Locate the port, in the /dev directory on your computer, that the
+serial connection uses. The format of the port name is platform
+dependent:</p>
+<ul>
+<li><p class="first">Mac OS uses the format <code class="docutils literal notranslate"><span class="pre">tty.usbserial-&lt;some</span> <span class="pre">identifier&gt;</span></code>.</p>
+</li>
+<li><p class="first">Linux uses the format <code class="docutils literal notranslate"><span class="pre">TTYUSB&lt;N&gt;</span></code>, where <code class="docutils literal notranslate"><span class="pre">N</span></code> is a number. For
+example, TTYUSB2.</p>
+</li>
+<li><p class="first">MinGW on Windows uses the format <code class="docutils literal notranslate"><span class="pre">ttyS&lt;N&gt;</span></code>, where <code class="docutils literal notranslate"><span class="pre">N</span></code> is a
+number. You must map the port name to a Windows COM port:
+<code class="docutils literal notranslate"><span class="pre">/dev/ttyS&lt;N&gt;</span></code> maps to <code class="docutils literal notranslate"><span class="pre">COM&lt;N+1&gt;</span></code>. For example, <code class="docutils literal notranslate"><span class="pre">/dev/ttyS2</span></code>
+maps to <code class="docutils literal notranslate"><span class="pre">COM3</span></code>.</p>
+<p>You can also use the Windows Device Manager to find the COM port
+number.</p>
+</li>
+</ul>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> ls /dev/tty*usbserial*
+<span class="go">/dev/tty.usbserial-1d13</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="start-wi-fi-via-console">
+<h2>Start Wi-Fi via console<a class="headerlink" href="#start-wi-fi-via-console" title="Permalink to this headline">?</a></h2>
+<p>Use a terminal emulation program to communicate with the board over the
+serial port. This tutorial shows a Minicom set up. Run the minicom
+command with the serial port you located on your computer:</p>
+<p><strong>Note:</strong> On Windows, you can use the PuTTY application.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> minicom -D /dev/tty.usbserial-1d13 -b <span class="m">115200</span>
+</pre></div>
+</div>
+<p>Type <code class="docutils literal notranslate"><span class="pre">wifi</span> <span class="pre">start</span></code> to start Wi-Fi.</p>
+<p>Connect to the local Wi-Fi network. Note that the MKR1000 board only
+supports 2.4 GHz Wi-Fi networks.</p>
+<p>Run the <code class="docutils literal notranslate"><span class="pre">wifi</span> <span class="pre">connect</span></code> command and specify your network and . After
+you are connected to your wi-fi network, run the <code class="docutils literal notranslate"><span class="pre">net</span> <span class="pre">service</span></code> command
+to start network services.</p>
+<p>```hl_lines=?2 9?</p>
+<p>wifi connect 037624 wifi_request_scan : 0 037627 compat&gt; scan_results
+7: 0 038454 wifi_connect : 0 039451 connect_done : 0 039958 dhcp done
+192.168.0.135 040169 get sys time response 2017.7.12-22.41.33 net
+service</p>
+<p>```</p>
+<p>The board is connected to the network succesfully and has IP address:
+192.168.0.135</p>
+</div>
+<div class="section" id="establish-tcp-connection-and-talk">
+<h2>Establish TCP Connection and Talk!<a class="headerlink" href="#establish-tcp-connection-and-talk" title="Permalink to this headline">?</a></h2>
+<p>From a terminal on your computer, telnet to ports 7, 9, or 19 using the
+IP address your board has been assigned. Type something on this terminal
+and see the console output (on minicom). Can you see the difference in
+the behaviors?</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span>telnet  <span class="m">192</span>.168.0.135 <span class="m">7</span>
+<span class="go">Trying 192.168.0.135...</span>
+<span class="go">Connected to 192.168.0.135.</span>
+<span class="go">Escape character is &#39;^]&#39;.</span>
+<span class="go">hello</span>
+<span class="go">hello</span>
+<span class="go">^]</span>
+<span class="go">telnet&gt; q</span>
+<span class="gp">$</span>
+</pre></div>
+</div>
+<p>One port echoes whatever is typed, one discards everything it gets, and
+the third spews out bits constantly. Type <code class="docutils literal notranslate"><span class="pre">wifi</span> <span class="pre">stop</span></code> to disable WiFi
+on the Arduino board.</p>
+</div>
+</div>
+
+
+                   </div>
+                  </div>
+                  
+                </div>
+              </div>
+            </div>
+            <!-- ENDS CONTENT SECTION -->
+          </div>
+          <!-- ENDS .content -->
+        </div>
+      </div>
+      <footer>
+  <div class="container">
+    <div class="row">
+      <div class="col-xs-12">
+          
+              <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
+          
+      </div>
+      <div class="col-xs-12">
+          <div class="logos">
+              <img src="../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
+              <small class="footnote">
+                Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
+                registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
+              </small>
+              <a href="https://join.slack.com/mynewt/shared_invite/MTkwMTg1ODM1NTg5LTE0OTYxNzQ4NzQtZTU1YmNhYjhkMg">
+                <img src="../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
+              </a>
+          </div>
+      </div>
+    </div>
+  </div>
+</footer>
+    </div>
+    <!-- ENDS #wrapper -->
+
+  
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'../',
+            VERSION:'1.3.0',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'.html',
+            HAS_SOURCE:  true,
+            SOURCELINK_SUFFIX: '.txt'
+        };
+    </script>
+      <script type="text/javascript" src="../_static/jquery.js"></script>
+      <script type="text/javascript" src="../_static/underscore.js"></script>
+      <script type="text/javascript" src="../_static/doctools.js"></script>
+      <script type="text/javascript" src="../_static/js/bootstrap-3.0.3.min.js"></script>
+      <script type="text/javascript" src="../_static/js/affix.js"></script>
+      <script type="text/javascript" src="../_static/js/main.js"></script>
+
+   
+
+  </body>
+</html>
\ No newline at end of file
diff --git a/master/sitemap.xml b/master/sitemap.xml
index 9d56a01918..57b04987cb 100644
--- a/master/sitemap.xml
+++ b/master/sitemap.xml
@@ -4,7 +4,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -13,13 +13,13 @@
         
     <url>
      <loc>http://mynewt.apache.org/pages/ble/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/pages/securitybullets/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -28,7 +28,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/quick-start/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -36,7 +36,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/about/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -44,7 +44,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/talks/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -52,7 +52,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/download/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -60,7 +60,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/community/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -68,7 +68,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/events/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -76,7 +76,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/documentation/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -85,7 +85,7 @@
         
     <url>
      <loc>http://mynewt.apache.org/os/introduction/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -97,7 +97,7 @@
         
     <url>
      <loc>http://mynewt.apache.org/os/get_started/vocabulary/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -133,7 +133,7 @@
         
     <url>
      <loc>http://mynewt.apache.org/known_issues/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -143,37 +143,37 @@
         
     <url>
      <loc>http://mynewt.apache.org/newt/install/prev_releases/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/newtmgr/prev_releases/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/faq/go_env/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/faq/ide/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/faq/how_to_edit_docs/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/faq/answers/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
diff --git a/sitemap.xml b/sitemap.xml
index 9d56a01918..57b04987cb 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -4,7 +4,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -13,13 +13,13 @@
         
     <url>
      <loc>http://mynewt.apache.org/pages/ble/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/pages/securitybullets/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -28,7 +28,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/quick-start/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -36,7 +36,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/about/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -44,7 +44,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/talks/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -52,7 +52,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/download/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -60,7 +60,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/community/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -68,7 +68,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/events/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -76,7 +76,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/documentation/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -85,7 +85,7 @@
         
     <url>
      <loc>http://mynewt.apache.org/os/introduction/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -97,7 +97,7 @@
         
     <url>
      <loc>http://mynewt.apache.org/os/get_started/vocabulary/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -133,7 +133,7 @@
         
     <url>
      <loc>http://mynewt.apache.org/known_issues/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -143,37 +143,37 @@
         
     <url>
      <loc>http://mynewt.apache.org/newt/install/prev_releases/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/newtmgr/prev_releases/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/faq/go_env/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/faq/ide/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/faq/how_to_edit_docs/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/faq/answers/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
diff --git a/v0_9_0/sitemap.xml b/v0_9_0/sitemap.xml
index 18892c0bf3..8480377961 100644
--- a/v0_9_0/sitemap.xml
+++ b/v0_9_0/sitemap.xml
@@ -4,7 +4,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -12,7 +12,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/quick-start/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -20,7 +20,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/about/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -28,7 +28,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/download/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -36,7 +36,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/community/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -44,7 +44,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/events/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -53,7 +53,7 @@
         
     <url>
      <loc>http://mynewt.apache.org/os/introduction/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -65,7 +65,7 @@
         
     <url>
      <loc>http://mynewt.apache.org/os/get_started/vocabulary/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -101,7 +101,7 @@
         
     <url>
      <loc>http://mynewt.apache.org/known_issues/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -111,13 +111,13 @@
         
     <url>
      <loc>http://mynewt.apache.org/faq/how_to_edit_docs/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/faq/answers/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
diff --git a/v1_0_0/sitemap.xml b/v1_0_0/sitemap.xml
index 46dd4e2dbc..19fe7914bd 100644
--- a/v1_0_0/sitemap.xml
+++ b/v1_0_0/sitemap.xml
@@ -4,7 +4,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -13,7 +13,7 @@
         
     <url>
      <loc>http://mynewt.apache.org/pages/ble/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -22,7 +22,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/quick-start/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -30,7 +30,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/about/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -38,7 +38,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/talks/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -46,7 +46,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/download/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -54,7 +54,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/community/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -62,7 +62,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/events/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -71,7 +71,7 @@
         
     <url>
      <loc>http://mynewt.apache.org/os/introduction/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -83,7 +83,7 @@
         
     <url>
      <loc>http://mynewt.apache.org/os/get_started/vocabulary/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -119,7 +119,7 @@
         
     <url>
      <loc>http://mynewt.apache.org/known_issues/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -129,25 +129,25 @@
         
     <url>
      <loc>http://mynewt.apache.org/faq/go_env/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/faq/ide/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/faq/how_to_edit_docs/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/faq/answers/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
diff --git a/v1_1_0/sitemap.xml b/v1_1_0/sitemap.xml
index d3711f47ad..73c44b2714 100644
--- a/v1_1_0/sitemap.xml
+++ b/v1_1_0/sitemap.xml
@@ -4,7 +4,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -13,13 +13,13 @@
         
     <url>
      <loc>http://mynewt.apache.org/pages/ble/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/pages/securitybullets/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -28,7 +28,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/quick-start/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -36,7 +36,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/about/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -44,7 +44,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/talks/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -52,7 +52,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/download/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -60,7 +60,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/community/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -68,7 +68,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/events/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -77,7 +77,7 @@
         
     <url>
      <loc>http://mynewt.apache.org/os/introduction/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -89,7 +89,7 @@
         
     <url>
      <loc>http://mynewt.apache.org/os/get_started/vocabulary/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -125,7 +125,7 @@
         
     <url>
      <loc>http://mynewt.apache.org/known_issues/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -135,25 +135,25 @@
         
     <url>
      <loc>http://mynewt.apache.org/faq/go_env/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/faq/ide/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/faq/how_to_edit_docs/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/faq/answers/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
diff --git a/v1_2_0/sitemap.xml b/v1_2_0/sitemap.xml
index 13c7c6874d..cef022aefe 100644
--- a/v1_2_0/sitemap.xml
+++ b/v1_2_0/sitemap.xml
@@ -4,7 +4,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -13,13 +13,13 @@
         
     <url>
      <loc>http://mynewt.apache.org/pages/ble/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/pages/securitybullets/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -28,7 +28,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/quick-start/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -36,7 +36,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/about/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -44,7 +44,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/talks/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -52,7 +52,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/download/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -60,7 +60,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/community/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -68,7 +68,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/events/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -77,7 +77,7 @@
         
     <url>
      <loc>http://mynewt.apache.org/os/introduction/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -89,7 +89,7 @@
         
     <url>
      <loc>http://mynewt.apache.org/os/get_started/vocabulary/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -125,7 +125,7 @@
         
     <url>
      <loc>http://mynewt.apache.org/known_issues/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -135,37 +135,37 @@
         
     <url>
      <loc>http://mynewt.apache.org/newt/install/prev_releases/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/newtmgr/prev_releases/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/faq/go_env/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/faq/ide/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/faq/how_to_edit_docs/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/faq/answers/</loc>
-     <lastmod>2018-01-27</lastmod>
+     <lastmod>2018-01-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services