documentation/sphinx: Prepare source and configuration files for PDF docs release

Fixes broken references to other documents/sections/websites.
Moves misplaced tutorials from the `mynewt-core` repository.
Sets fixed width for some images that were too big for PDF output.
Removes incompatible emojis from code snippets.
Adjusts Sphinx config to:
 - ignore all `README` files,
 - add Mynewt logo on the first page.
diff --git a/docs/_static/common.rst b/docs/_static/common.rst
deleted file mode 100644
index b4dd62c..0000000
--- a/docs/_static/common.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. role:: red
diff --git a/docs/conf.py b/docs/conf.py
index 7440819..7229e5e 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -77,7 +77,7 @@
 # List of patterns, relative to source directory, that match files and
 # directories to ignore when looking for source files.
 # This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = ['_build', 'README.rst', 'Thumbs.db', '.DS_Store', 'themes']
+exclude_patterns = ['_build', '**README.rst', 'Thumbs.db', '.DS_Store', 'themes']
 
 # The name of the Pygments (syntax highlighting) style to use.
 pygments_style = 'sphinx'
@@ -147,6 +147,7 @@
      u'The Apache Software Foundation', 'manual'),
 ]
 
+latex_logo = '_static/img/logo.png'
 
 # -- Options for manual page output ---------------------------------------
 
diff --git a/docs/get_started/native_install/native_tools.rst b/docs/get_started/native_install/native_tools.rst
index 0682722..ba9027d 100644
--- a/docs/get_started/native_install/native_tools.rst
+++ b/docs/get_started/native_install/native_tools.rst
@@ -33,7 +33,7 @@
     ...
     ...
     ==> Pouring gcc-10.2.0_2.big_sur.bottle.tar.gz
-    🍺  /usr/local/Cellar/gcc/10.2.0_2: 1,455 files, 338.1MB
+        /usr/local/Cellar/gcc/10.2.0_2: 1,455 files, 338.1MB
 
 
 Check the GCC version you have installed (either using ``brew`` or
@@ -68,7 +68,7 @@
     ...
     ...
     ==> Summary
-    🍺  /usr/local/Cellar/gdb/7.10.1: XXX files,YYM
+        /usr/local/Cellar/gdb/7.10.1: XXX files,YYM
 
 **NOTE:** When running a program with GDB, you may need to sign your ``gdb``
 executable. `This
diff --git a/docs/get_started/serial_access.rst b/docs/get_started/serial_access.rst
index 63c7f51..4cbc6da 100644
--- a/docs/get_started/serial_access.rst
+++ b/docs/get_started/serial_access.rst
@@ -76,6 +76,7 @@
 
 .. figure:: pics/ft232h.png
    :alt: FT232H Wiring
+   :width: 180
 
    FT232H Wiring
 
@@ -93,6 +94,7 @@
 
 .. figure:: pics/nrf52dk.png
    :alt: NRF52DK Wiring
+   :width: 180
 
    NRF52DK Wiring
 
@@ -107,6 +109,7 @@
 
 .. figure:: pics/m0pro.png
    :alt: Arduino M0 Pro Wiring
+   :width: 180
 
    Arduino M0 Pro Wiring
 
diff --git a/docs/misc/go_env.rst b/docs/misc/go_env.rst
index 510efca..8e63fe5 100644
--- a/docs/misc/go_env.rst
+++ b/docs/misc/go_env.rst
@@ -26,7 +26,7 @@
   :depth: 2
 
 **Note:** You will also need to read and follow the instructions from
-the :doc:`faq` to set up your git repos to submit changes.
+the :doc:`../mynewt_faq/index` to set up your git repos to submit changes.
 
 Step 1: Installing Go
 ~~~~~~~~~~~~~~~~~~~~~
@@ -57,7 +57,7 @@
     ...
     ...
     ==> Summary
-    🍺  /usr/local/Cellar/go/1.8.3: 7,035 files, 282.0MB
+        /usr/local/Cellar/go/1.8.3: 7,035 files, 282.0MB
 
 You can also download the Go package directly from
 (https://golang.org/dl/) and install it in /usr/local/bin instead of
@@ -219,7 +219,7 @@
    is installed.
 2. Pull the latest changes from the master branch. If you made changes
    you will need to rebase with **origin master** (See
-   :doc:`faq`).
+   :doc:`../mynewt_faq/index`).
 3. Build and install the tool.
 
 Change to the directory where the source for the tool is installed.
diff --git a/docs/mynewt_faq/syntax_faq.rst b/docs/mynewt_faq/syntax_faq.rst
index f58f16e..efe2cf1 100644
--- a/docs/mynewt_faq/syntax_faq.rst
+++ b/docs/mynewt_faq/syntax_faq.rst
@@ -43,7 +43,7 @@
 
 **A**: ``mfghash`` is computed if you’re using ``newt mfg`` to construct your flash image, and it identifies the build of 
 your bootloader. ``newt mfg`` bundles togetherthe bootloader, target image, and other data you’d want to bundle when creating 
-an image to burn to flash. See the ``newt mfg`` :doc:`documentation <../../../../command_list/newt_mfg>` for the construction 
+an image to burn to flash. See the ``newt mfg`` :doc:`documentation <../newt/command_list/newt_mfg>` for the construction
 side of things and ``apache-mynewt-core/sys/mfg/src/mfg.c`` for the firmware side. ``serial`` was intended to be used if you 
 want to have your own naming scheme per device when building products; i.e. you want something other than the mcu serial 
 number, or if you don’t have serial number available.
diff --git a/docs/mynewt_faq/troubleshoot_faq.rst b/docs/mynewt_faq/troubleshoot_faq.rst
index c7c71bb..7138cd9 100644
--- a/docs/mynewt_faq/troubleshoot_faq.rst
+++ b/docs/mynewt_faq/troubleshoot_faq.rst
@@ -85,8 +85,7 @@
     pkg.type: "target"
     pkg.description: 
     pkg.author: 
-    pkg.homepage: 
-    ​
+    pkg.homepage:
     pkg.cflags:
       - -DENABLE_TRACE
 
diff --git a/docs/tutorials/ble/bleprph/bleprph-sections/bleprph-gap-event.rst b/docs/tutorials/ble/bleprph/bleprph-sections/bleprph-gap-event.rst
index 8ffcb0f..e611bab 100644
--- a/docs/tutorials/ble/bleprph/bleprph-sections/bleprph-gap-event.rst
+++ b/docs/tutorials/ble/bleprph/bleprph-sections/bleprph-gap-event.rst
@@ -138,8 +138,7 @@
 to a connection. An application determines the type of event that
 occurred by inspecting the value of the *event->type* parameter. The
 full list of event codes can be found on the :doc:`GAP
-events <../../../../network/ble/ble_hs/ble_gap/definitions/ble_gap_defs/>`
-page.
+page <../../../../network/ble_hs/ble_gap>`.
 
 Guarantees
 ^^^^^^^^^^
diff --git a/docs/tutorials/ble/bleprph/bleprph-sections/bleprph-svc-reg.rst b/docs/tutorials/ble/bleprph/bleprph-sections/bleprph-svc-reg.rst
index a7453c4..f9a7df5 100644
--- a/docs/tutorials/ble/bleprph/bleprph-sections/bleprph-svc-reg.rst
+++ b/docs/tutorials/ble/bleprph/bleprph-sections/bleprph-svc-reg.rst
@@ -233,8 +233,7 @@
 *BLE_HS_E[...]* error code on failure.
 
 More detailed information about the registration callback function can
-be found in the :doc:`BLE User Guide <../../../network/ble/ble_intro>`
-(TBD).
+be found in the :doc:`BLE User Guide <../../../../network/index>`.
 
 The *bleprph* app registers its services as follows:
 
@@ -251,4 +250,4 @@
 Your peripheral can also expose descriptors and included services. These
 are less common, so they are not covered in this tutorial. For more
 information, see the :doc:`BLE User
-Guide <../../../network/ble/ble_intro>`.
+Guide <../../../../network/index>`.
diff --git a/docs/tutorials/ble/bleprph/bleprph.rst b/docs/tutorials/ble/bleprph/bleprph.rst
index 84b37aa..206ccda 100644
--- a/docs/tutorials/ble/bleprph/bleprph.rst
+++ b/docs/tutorials/ble/bleprph/bleprph.rst
@@ -38,7 +38,7 @@
 
 -  :doc:`Create Your First Mynewt Project <../../../get_started/project_create>`
 -  :doc:`BLE Bare Bones Application Tutorial <../ble_bare_bones>`
--  :doc:`NimBLE Stack Initialization <../../../network/ble/ini_stack/ble_ini_intro>`
+-  :doc:`NimBLE Stack Initialization <../../../network/ble_setup/ble_setup_intro>`
 
 Services, Characteristics, Descriptors
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/docs/tutorials/ble/eddystone.rst b/docs/tutorials/ble/eddystone.rst
index d6cc862..545c849 100644
--- a/docs/tutorials/ble/eddystone.rst
+++ b/docs/tutorials/ble/eddystone.rst
@@ -35,7 +35,7 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 This tutorial picks up where the :doc:`BLE bare bones application
-tutorial <ble_bare_bones.html>` concludes. The first
+tutorial <../ble/ble_bare_bones>` concludes. The first
 step in creating a beaconing device is to create an empty BLE app, as
 explained in that tutorial. Before proceeding, you should have:
 
diff --git a/docs/tutorials/ble/ibeacon.rst b/docs/tutorials/ble/ibeacon.rst
index 90f0656..394809f 100644
--- a/docs/tutorials/ble/ibeacon.rst
+++ b/docs/tutorials/ble/ibeacon.rst
@@ -22,7 +22,7 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 This tutorial picks up where the :doc:`BLE bare bones application
-tutorial <../ble_bare_bones>` document concludes.
+tutorial <../ble/ble_bare_bones>` document concludes.
 The first step in creating a beaconing device is to create an empty BLE
 app, as explained in that tutorial. Before proceeding, you should have:
 
diff --git a/docs/tutorials/blinky/arduino_zero.rst b/docs/tutorials/blinky/arduino_zero.rst
index b4d1e3d..edd9629 100644
--- a/docs/tutorials/blinky/arduino_zero.rst
+++ b/docs/tutorials/blinky/arduino_zero.rst
@@ -1,8 +1,6 @@
 Blinky, your "Hello World!", on Arduino Zero
 --------------------------------------------
 
-.. include common.rst
-
 This tutorial shows you how to create, build and run the Blinky
 application on an Arduino Zero board.
 
@@ -24,19 +22,7 @@
 tested on the following three Arduino Zero boards - Zero, M0 Pro, and
 Zero-Pro.
 
-  .. figure:: ../../images/Zero_Usb_Ports.jpg
-     :alt:  Arduino Zero
-     :width: 200
-     :align: left
-
-  .. figure:: ../../images/Arduino-M0Pro-flat.jpg
-     :alt:  Arduino M0 Pro
-     :width: 160
-     :align: left
-
-  .. figure:: ../../images/ArduinoZeroPro-flat-org.jpg
-     :alt:  Arduino Zero Pro
-     :width: 160
+|arduino_zero| |arduino_m0_pro| |arduino_zero_pro|
 
 Mynewt has not been tested on Arduino M0 which has no internal debugger
 support.
@@ -252,14 +238,7 @@
 
 The images below show the Arduino Zero Programming Port.
 
-    .. figure:: ../../images/Zero_Usb_Ports.jpg
-       :alt:  Arduino Zero
-       :width: 280
-       :align: left
-
-    .. figure:: ../../images/ArduinoZeroPro-flat-org.jpg
-       :alt:  Arduino Zero Pro
-       :width: 240
+|arduino_zero| |arduino_zero_pro|
 
 
 Load the Bootloader onto the Board
@@ -429,3 +408,15 @@
 and run on the Arduino on next boot!
 
 You should see the LED blink!
+
+  .. |arduino_zero| image:: ../../images/Zero_Usb_Ports.jpg
+     :alt:  Arduino Zero
+     :width: 30%
+
+  .. |arduino_m0_pro| image:: ../../images/Arduino-M0Pro-flat.jpg
+     :alt:  Arduino M0 Pro
+     :width: 30%
+
+  .. |arduino_zero_pro| image:: ../../images/ArduinoZeroPro-flat-org.jpg
+     :alt:  Arduino Zero Pro
+     :width: 30%
\ No newline at end of file
diff --git a/docs/tutorials/blinky/blinky.rst b/docs/tutorials/blinky/blinky.rst
index aacbba5..503c227 100644
--- a/docs/tutorials/blinky/blinky.rst
+++ b/docs/tutorials/blinky/blinky.rst
@@ -13,6 +13,7 @@
    Blinky on PineTime <pinetime>
    Blinky on RedBear Nano 2 <rbnano2>
    Blinky on STM32F4-Discovery <blinky_stm32f4disc>
+   Blinky on STM32F303-Discovery <blinky_STM32F303>
    Add Console and Shell to Blinky <blinky_console>
 
 The set of Blinky tutorials show you how to create, build, and run a
@@ -44,6 +45,7 @@
 -  :doc:`pinetime`
 -  :doc:`rbnano2`
 -  :doc:`blinky_stm32f4disc`
+-  :doc:`blinky_STM32F303`
 
 We also have a tutorial that shows you how to add :doc:`blinky_console`.
 
diff --git a/docs/tutorials/blinky/blinky_STM32F303.rst b/docs/tutorials/blinky/blinky_STM32F303.rst
new file mode 100644
index 0000000..641ec1f
--- /dev/null
+++ b/docs/tutorials/blinky/blinky_STM32F303.rst
@@ -0,0 +1,183 @@
+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.
+
+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=@apache-mynewt-core/hw/bsp/stm32f3discovery
+    $ newt target set stmf3_blinky app=apps/blinky
+
+    $ newt target create stmf3_boot
+    $ newt target set stmf3_boot app=@mcuboot/boot/mynewt
+    $ newt target set stmf3_boot bsp=@apache-mynewt-core/hw/bsp/stm32f3discovery
+    $ newt target set stmf3_boot build_profile=optimized
+
+    $ newt target show
+
+    targets/stmf3_blinky
+        app=apps/blinky
+        bsp=@apache-mynewt-core/hw/bsp/stm32f3discovery
+        build_profile=optimized
+    targets/stmf3_boot
+        app=@mcuboot/boot/mynewt
+        bsp=@apache-mynewt-core/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
+
+.. figure:: ../pics/STM32f3discovery_connector.png
+
+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!
diff --git a/docs/tutorials/blinky/blinky_pin-wheel-mods.rst b/docs/tutorials/blinky/blinky_pin-wheel-mods.rst
new file mode 100644
index 0000000..3bc1041
--- /dev/null
+++ b/docs/tutorials/blinky/blinky_pin-wheel-mods.rst
@@ -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/docs/tutorials/devmgmt/add_newtmgr.rst b/docs/tutorials/devmgmt/add_newtmgr.rst
index 14f3973..411909e 100644
--- a/docs/tutorials/devmgmt/add_newtmgr.rst
+++ b/docs/tutorials/devmgmt/add_newtmgr.rst
@@ -18,7 +18,7 @@
 -  Use serial transport to communicate with the newtmgr tool.
 -  Support all Newt Manager commands.
 
-See :doc:`Other Configuration Options <#other-configuration-options>` on
+See `Other Configuration Options`_ on
 how to customize your application.
 
 .. contents::
@@ -36,7 +36,7 @@
    and the laptop.
 -  Install the newt tool and toolchains (See :doc:`Basic
    Setup <../../get_started/index>`).
--  Install the :doc:`newtmgr tool <../../newtmgr/docs/install/index>`.
+-  Install the :doc:`newtmgr tool <../../newtmgr/install/index>`.
 
 Use an Existing Project
 ~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/docs/tutorials/devmgmt/ota_upgrade_nrf52.rst b/docs/tutorials/devmgmt/ota_upgrade_nrf52.rst
index be70b1d..10a0afc 100644
--- a/docs/tutorials/devmgmt/ota_upgrade_nrf52.rst
+++ b/docs/tutorials/devmgmt/ota_upgrade_nrf52.rst
@@ -8,10 +8,10 @@
 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
-:doc:`bleprph </os/tutorials/bleprph/bleprph-app/>` application, which
+:doc:`bleprph <../ble/bleprph//bleprph-sections/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 :doc:`Enable Newt
-Manager in any app </os/tutorials/add_newtmgr/>` to enable newtmgr
+Manager in any app <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
@@ -31,8 +31,8 @@
    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 :doc:`Segger JLINK software and documentation
-   pack <https://www.segger.com/jlink-software.html>`.
+-  Install the `Segger JLINK software and documentation
+   pack <https://www.segger.com/jlink-software.html>`_.
 -  Install the newt tool and toolchains (See :doc:`Setup & Get Started <../../get_started/index>`).
 -  Read the Mynewt OS :doc:`Concepts <../../concepts>`
    section.
diff --git a/docs/tutorials/os_fundamentals/event_queue.rst b/docs/tutorials/os_fundamentals/event_queue.rst
index 788e7ae..39aee47 100644
--- a/docs/tutorials/os_fundamentals/event_queue.rst
+++ b/docs/tutorials/os_fundamentals/event_queue.rst
@@ -72,7 +72,7 @@
 Create the Project 
 ~~~~~~~~~~~~~~~~~~
 
-Follow the instructions in the :doc:`nRF52 tutorial for Blinky </tutorials/blinky/nrf52>` to create a project. 
+Follow the instructions in the :doc:`nRF52 tutorial for Blinky <../blinky/nRF52>` to create a project.
 
 Create the Application 
 ~~~~~~~~~~~~~~~~~~~~~~
diff --git a/docs/tutorials/os_fundamentals/tasks_lesson.rst b/docs/tutorials/os_fundamentals/tasks_lesson.rst
index 4ed3690..c60d631 100644
--- a/docs/tutorials/os_fundamentals/tasks_lesson.rst
+++ b/docs/tutorials/os_fundamentals/tasks_lesson.rst
@@ -72,7 +72,7 @@
    struct os_task work_task;
 
 A task is represented by the
-:doc:`os_task <../../../core_os/task/task>`
+:doc:`os_task <../../os/core_os/task/task>`
 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.
diff --git a/docs/tutorials/other/unit_test.rst b/docs/tutorials/other/unit_test.rst
index 251b2c3..492c7b4 100644
--- a/docs/tutorials/other/unit_test.rst
+++ b/docs/tutorials/other/unit_test.rst
@@ -8,7 +8,7 @@
 ------------
 
 Writing a test suite involves using the
-:doc:`test/testutil <../../os/modules/testutil>` package. The
+:doc:`test/testutil <../../os/modules/testutil/testutil>` package. The
 testutil library provides the functionality needed to define test suites
 and test cases.
 
diff --git a/docs/tutorials/other/wi-fi_on_arduino.rst b/docs/tutorials/other/wi-fi_on_arduino.rst
index 59b887e..42381d9 100644
--- a/docs/tutorials/other/wi-fi_on_arduino.rst
+++ b/docs/tutorials/other/wi-fi_on_arduino.rst
@@ -32,7 +32,7 @@
    the core code repository (apache-mynewt-core) or know how to as
    explained in :doc:`Creating Your First
    Project <../../get_started/project_create>`.
--  Read the Mynewt OS :doc:`Concepts <../../get_started/vocabulary>`
+-  Read the Mynewt OS :doc:`Concepts <../../concepts>`
    section.
 
 .. contents::
@@ -43,7 +43,7 @@
 ~~~~~~~~~~~~~~~~
 
 Create a new project if you do not have an existing one. You can skip
-this step and proceed to `fetch external packages <#%20fetchexternal>`__
+this step and proceed to `Fetch External Packages`_
 if you already created a project.
 
 Run the following commands to create a new project:
diff --git a/docs/tutorials/sensors/air_quality_ble.rst b/docs/tutorials/sensors/air_quality_ble.rst
index 9af23f1..dbb7c65 100644
--- a/docs/tutorials/sensors/air_quality_ble.rst
+++ b/docs/tutorials/sensors/air_quality_ble.rst
@@ -8,7 +8,7 @@
 Add Bluetooth GATT Services
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-Since we already built the previous demo on the :doc:`bluetooth peripheral <../ble/bleprph/bleprph-app>` 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.
+Since we already built the previous demo on the :doc:`bluetooth peripheral <../ble/bleprph/bleprph-sections/bleprph-app>` 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``. Be sure to include the header files as well. 
 
@@ -207,6 +207,7 @@
 We can now build, create-image and load the app onto our nRF52DK board, and then connect and see the updated values! To view the results over Bluetooth, you can use LightBlue or any other application that can connect to, and read, Bluetooth data. By default, the device will show up as nimble-bleprph, since we used the ``bleprph`` app as our template. I've changed mine to something a bit more applicable: BLE CO2 Sensor.
 
 .. figure:: ../pics/airquality_lightblue.png
+   :width: 180
 
    LightBlue app connected to BLE CO2 Sensor
 
diff --git a/docs/tutorials/sensors/nrf52_adc.rst b/docs/tutorials/sensors/nrf52_adc.rst
index 27ee869..8371846 100644
--- a/docs/tutorials/sensors/nrf52_adc.rst
+++ b/docs/tutorials/sensors/nrf52_adc.rst
@@ -90,7 +90,7 @@
 
 Create the App and Targets
 ~~~~~~~~~~~~~~~~~~~~~~~~~~
-For the sensor app we will be building and modifying on top of the :doc:`bleprph <../ble/bleprph/bleprph-app>` app so that we get the Bluetooth communications built in. The first thing we'll need to do is copy that app into our own app directory:
+For the sensor app we will be building and modifying on top of the :doc:`bleprph <../ble/bleprph/bleprph-sections/bleprph-app>` app so that we get the Bluetooth communications built in. The first thing we'll need to do is copy that app into our own app directory:
 
 .. code-block:: console
 
@@ -623,7 +623,7 @@
 Bluetooth we'll need to actually define those Services and
 Characteristics.
 
-As with the :doc:`ble peripheral <../ble/bleprph/bleprph-app>` app, we will
+As with the :doc:`ble peripheral <../ble/bleprph/bleprph-sections/bleprph-app>` 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 ``bleprph.h`` in the
@@ -704,7 +704,7 @@
     };
 
 You should recognize the first services from the :doc:`BLE
-Peripheral <../ble/bleprph/bleprph-intro>` tutorial earlier. We're just
+Peripheral <../ble/bleprph/bleprph>` 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,
@@ -776,6 +776,7 @@
 
 .. figure:: ../pics/breadboard.png
    :alt: Bread Board Setup
+   :width: 430
 
    Bread Board Setup
 
@@ -785,6 +786,7 @@
 
 .. figure:: ../pics/adc-demo-1.png
    :alt: Bread Board Final
+   :width: 430
 
    Bread Board Final
 
@@ -793,6 +795,7 @@
 
 .. figure:: ../pics/adc-demo-2.png
    :alt: eTape Sensor Setup
+   :width: 430
 
    eTape Sensor Setup
 
@@ -807,7 +810,8 @@
 
 .. figure:: ../pics/lightblue-adc.png
    :alt: LightBlue connected to the ADC app
-   
+   :width: 360
+
    LightBlue connected to the ADC app
 
 Conclusion
@@ -819,8 +823,7 @@
 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 :doc:`Community
-Page <community>`.
+signing up for appropriate mailing lists on our `Community Page </community>`_.
 
 Keep on hacking and sensing!
 
diff --git a/docs/tutorials/sensors/sensor_nrf52_bno055.rst b/docs/tutorials/sensors/sensor_nrf52_bno055.rst
index 7d7faeb..929074d 100644
--- a/docs/tutorials/sensors/sensor_nrf52_bno055.rst
+++ b/docs/tutorials/sensors/sensor_nrf52_bno055.rst
@@ -7,8 +7,8 @@
 sensor data from a sensor device.
 
 We use the **sensors\_test** application running on an nRF52-DK board to
-communicate, via the I2C interface, with the :doc:`Adafruit
-BNO055 <https://learn.adafruit.com/adafruit-bno055-absolute-orientation-sensor/overview>`
+communicate, via the I2C interface, with the `Adafruit
+BNO055 <https://learn.adafruit.com/adafruit-bno055-absolute-orientation-sensor/overview>`_
 sensor. The sensors\_test application is a sample application that
 demonstrates all the features of the Mynewt sensor framework. The
 application includes the sensor framework ``sensor`` shell command that
diff --git a/docs/tutorials/sensors/sensor_nrf52_drv2605.rst b/docs/tutorials/sensors/sensor_nrf52_drv2605.rst
index 652d742..0ae9dfa 100644
--- a/docs/tutorials/sensors/sensor_nrf52_drv2605.rst
+++ b/docs/tutorials/sensors/sensor_nrf52_drv2605.rst
@@ -2,8 +2,8 @@
 -------------------------------------------------------
 
 This tutorial shows you how to run the **sensors\_test** application
-on an nRF52-DK board to communicate, via the I2C interface, with the :doc:`Adafruit
-DRV2605 <https://learn.adafruit.com/adafruit-drv2605-haptic-controller-breakout/overview>`
+on an nRF52-DK board to communicate, via the I2C interface, with the `Adafruit
+DRV2605 <https://learn.adafruit.com/adafruit-drv2605-haptic-controller-breakout/overview>`_
 device. The DRV2605 driver includes the ``drv2605`` shell command that allows you
 to quickly to view the status, calibrate and actuate your motor in
 preperation for using it programmatically in your own app.
diff --git a/docs/tutorials/slinky/project-slinky.rst b/docs/tutorials/slinky/project-slinky.rst
index f443e5b..bea40d2 100644
--- a/docs/tutorials/slinky/project-slinky.rst
+++ b/docs/tutorials/slinky/project-slinky.rst
@@ -16,7 +16,7 @@
 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>`
+it, check out the tutorial titled :doc:`../devmgmt/add_newtmgr`
 
 .. contents::
   :local:
diff --git a/docs/tutorials/slinky/project-stm32-slinky.rst b/docs/tutorials/slinky/project-stm32-slinky.rst
index 4c7902a..6dd1bd0 100644
--- a/docs/tutorials/slinky/project-stm32-slinky.rst
+++ b/docs/tutorials/slinky/project-stm32-slinky.rst
@@ -191,6 +191,7 @@
 
 .. figure:: ../pics/serial_conn.png
    :alt: Alt Layout - Serial Connection
+   :width: 400
 
    Alt Layout - Serial Connection