blob: 32b98e331056d976d3b7b3aa075fef9abab1bdce [file] [log] [blame]
<!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>Using the Serial Port with Mynewt OS &mdash; Apache Mynewt latest 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 latest documentation" href="../index.html"/>
<link rel="up" title="Setup &amp; Get Started" href="index.html"/>
<link rel="next" title="Debugging Mynewt" href="debug.html"/>
<link rel="prev" title="Creating Your First Mynewt Project" href="project_create.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.11.0, Apache NimBLE 1.6.0 </a> released September 7, 2023)
</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="/quick-start/">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="index.html">Setup &amp; Get Started</a> /
Using the Serial Port with Mynewt OS
<div class="sourcelink">
<a href="https://github.com/apache/mynewt-documentation/edit/master/docs/get_started/serial_access.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="/latest" selected>
Version: latest
</option>
<option value="/v1_11_0" >
Version: 1.11.0
</option>
<option value="/v1_10_0" selected="selected" >
Version: 1.10.0
</option>
<option value="/v1_9_0" >
Version: 1.9.0
</option>
<option value="/v1_8_0" >
Version: 1.8.0
</option>
<option value="/v1_7_0" >
Version: 1.7.0
</option>
<option value="/v1_6_0" >
Version: 1.6.0
</option>
<option value="/v1_5_0" >
Version: 1.5.0
</option>
<option value="/v1_4_0" >
Version: 1.4.0
</option>
<option value="/v1_3_0/os/introduction" >
Version: 1.3.0
</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 current"><a class="reference internal" href="index.html">Setup &amp; Get Started</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="native_install/index.html">Native Installation</a></li>
<li class="toctree-l2"><a class="reference internal" href="docker.html">Docker Container</a></li>
<li class="toctree-l2"><a class="reference internal" href="project_create.html">Create Your First Project</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Serial Port Setup</a></li>
<li class="toctree-l2"><a class="reference internal" href="debug.html">Debugging Mynewt</a></li>
</ul>
</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"><a class="reference internal" href="../external_links.html">Third-party Resources</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/index.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="../mynewt_faq/index.html">Mynewt FAQ</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-warning">
<p>
Version 1.10.0 is not the most recent version of the
Apache Mynewt documentation. Click <a href="/latest">here</a> to
read the latest version.
</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="using-the-serial-port-with-mynewt-os">
<h1>Using the Serial Port with Mynewt OS<a class="headerlink" href="#using-the-serial-port-with-mynewt-os" title="Permalink to this headline"></a></h1>
<p>Some of the projects and tutorials here will allow you to use a serial
port to interact with your Mynewt project. While most modern PCs and
laptops no longer have a true serial port, almost all can use their USB
ports as serial ports.</p>
<p>This page will show you how to connect to some of the development boards we
use via a serial port.</p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><p><a class="reference internal" href="#using-the-usb-port-on-the-nrf52dk" id="id4">Using the USB port on the nRF52DK</a></p></li>
<li><p><a class="reference internal" href="#using-a-usb-to-serial-breakout-board" id="id5">Using a USB to Serial Breakout Board</a></p>
<ul>
<li><p><a class="reference internal" href="#setup-ft232h" id="id6">Setup FT232H</a></p></li>
<li><p><a class="reference internal" href="#setup-nordic-semiconductor-nrf52dk" id="id7">Setup Nordic Semiconductor NRF52DK</a></p></li>
<li><p><a class="reference internal" href="#setup-arduino-m0-pro" id="id8">Setup Arduino M0 Pro</a></p></li>
<li><p><a class="reference internal" href="#setup-serial-communications" id="id9">Setup Serial Communications</a></p>
<ul>
<li><p><a class="reference internal" href="#example-for-mac-os-and-linux-platforms" id="id10">Example for Mac OS and Linux Platforms</a></p></li>
<li><p><a class="reference internal" href="#example-for-windows-platforms" id="id11">Example for Windows Platforms</a></p></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="section" id="using-the-usb-port-on-the-nrf52dk">
<h2><a class="toc-backref" href="#id4">Using the USB port on the nRF52DK</a><a class="headerlink" href="#using-the-usb-port-on-the-nrf52dk" title="Permalink to this headline"></a></h2>
<p>The nRF52DK can communicate via a serial port directly through its USB port. By default, it uses the UART onboard, so if you need to use the UART for other purposes, consider using a USB&lt;–&gt;Serial converter or the Segger RTT Console instead, instructions provided below.</p>
<p>To see your device, check the USB devices that are connected to your computer (macOS):</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>ls<span class="w"> </span>-l<span class="w"> </span>/dev/*USB*
<span class="go">crw-rw-rw- 1 &lt;user&gt; None 117, 5 May 9 04:24 /dev/cu.usbmodem1411</span>
<span class="go">crw-rw-rw- 1 &lt;user&gt; None 117, 5 May 9 04:24 /dev/tty.usbmodem1411</span>
<span class="gp">$</span>
</pre></div>
</div>
<p>The <code class="docutils literal notranslate"><span class="pre">/dev/cu.usbmodem####</span></code> and <code class="docutils literal notranslate"><span class="pre">/dev/tty.usbmodem####</span></code> represent your device. To get console access, you can either use the screen command or Minicom:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>minicom<span class="w"> </span>-D<span class="w"> </span>/dev/tty.usbmodem1411
<span class="go">Welcome to minicom 2.7</span>
<span class="go">OPTIONS:</span>
<span class="go">Compiled on Apr 26 2018, 13:21:44</span>
<span class="go">Port /dev/tty.usbmodem1411, 11:12:13</span>
<span class="go">Press Meta-Z for help on special keys</span>
</pre></div>
</div>
</div>
<div class="section" id="using-a-usb-to-serial-breakout-board">
<h2><a class="toc-backref" href="#id5">Using a USB to Serial Breakout Board</a><a class="headerlink" href="#using-a-usb-to-serial-breakout-board" title="Permalink to this headline"></a></h2>
<p>If you need to use an external USB to Serial converter, this guide will show you how to set it up. The development boards covered here are:</p>
<ul class="simple">
<li><p>Nordic Semiconductor nRF52dk</p></li>
<li><p>Arduino M0 Pro</p></li>
</ul>
<p>For this tutorial, we’ll be using the <a class="reference external" href="https://www.adafruit.com/products/2264">AdaFruit FT232H Breakout
Board</a>, but almost
any similar board should work just as well. You will also need Minicom
or a similar Serial communications application. We’ll show you how to
use the <code class="docutils literal notranslate"><span class="pre">screen</span></code> command built in to Mac OS X, but later tutorials
will also show Minicom setup.</p>
<div class="section" id="setup-ft232h">
<h3><a class="toc-backref" href="#id6">Setup FT232H</a><a class="headerlink" href="#setup-ft232h" title="Permalink to this headline"></a></h3>
<p>This is a great board because it’s so easy to set up, and it can do
Serial UART, SPI, I2C and GPIO as well. There’s full documentation on
the board
<a class="reference external" href="https://learn.adafruit.com/adafruit-ft232h-breakout/overview">here</a>
but we’re only covering the wiring for the Serial UART.</p>
<p>Start by connecting a jumper wire to Pin D0. This will be the UART Tx
pin, which we’ll then connect to the Rx pin on the Development Board.</p>
<p>Next connect a jumper wire to pin D1. This will be the UART Rx pin,
which we’ll connect to the Tx pin on the development board.</p>
<p>Finally connect a jumper wire to the GND pin.</p>
<p>It should look like this:</p>
<div class="figure align-default" id="id1">
<img alt="FT232H Wiring" src="../_images/ft232h.png" />
<p class="caption"><span class="caption-text">FT232H Wiring</span><a class="headerlink" href="#id1" title="Permalink to this image"></a></p>
</div>
</div>
<div class="section" id="setup-nordic-semiconductor-nrf52dk">
<h3><a class="toc-backref" href="#id7">Setup Nordic Semiconductor NRF52DK</a><a class="headerlink" href="#setup-nordic-semiconductor-nrf52dk" title="Permalink to this headline"></a></h3>
<p>On the NRF52DK developer kit board, the Rx pin is P0.08, so you’ll
attach your jumper wire from the Tx pin (D0) of the FT232H board here.</p>
<p>The TX Pin is pin P0.06, so you’ll attache the jumper wire from the Rx
Pin (D1) on the FT232H board here.</p>
<p>Finally, the GND wire should go to the GND Pin on the NRF52DK. When
you’re done, your wiring should look like this:</p>
<div class="figure align-default" id="id2">
<img alt="NRF52DK Wiring" src="../_images/nrf52dk.png" />
<p class="caption"><span class="caption-text">NRF52DK Wiring</span><a class="headerlink" href="#id2" title="Permalink to this image"></a></p>
</div>
</div>
<div class="section" id="setup-arduino-m0-pro">
<h3><a class="toc-backref" href="#id8">Setup Arduino M0 Pro</a><a class="headerlink" href="#setup-arduino-m0-pro" title="Permalink to this headline"></a></h3>
<p>On the Arduino M0 Pro, the Tx and Rx pins are clearly labeled as such,
as is the GND pin. Just make sure you wire Rx from the FT232H to TX on
the M0 Pro, and vice-versa.</p>
<p>Your Arduino M0 Pro should look like this:</p>
<div class="figure align-default" id="id3">
<img alt="Arduino M0 Pro Wiring" src="../_images/m0pro.png" />
<p class="caption"><span class="caption-text">Arduino M0 Pro Wiring</span><a class="headerlink" href="#id3" title="Permalink to this image"></a></p>
</div>
</div>
<div class="section" id="setup-serial-communications">
<h3><a class="toc-backref" href="#id9">Setup Serial Communications</a><a class="headerlink" href="#setup-serial-communications" title="Permalink to this headline"></a></h3>
<p>You will need to know the serial port to connect to and use a terminal
program to connect to the board.</p>
<div class="section" id="example-for-mac-os-and-linux-platforms">
<h4><a class="toc-backref" href="#id10">Example for Mac OS and Linux Platforms</a><a class="headerlink" href="#example-for-mac-os-and-linux-platforms" title="Permalink to this headline"></a></h4>
<p>First check what USB devices are already connected before connecting the
FT232H board to your computer. The ports are listed in the <strong>/dev</strong>
directory and the format of the port name is platform dependent:</p>
<ul class="simple">
<li><p>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>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>
</ul>
<p>This example is run on a Mac OS system.</p>
<p>Check what USB devices are already connected:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>ls<span class="w"> </span>-la<span class="w"> </span>/dev/*usb*
<span class="go">0 crw-rw-rw- 1 root wheel 20, 63 Nov 23 11:13 /dev/cu.usbmodem401322</span>
<span class="go">0 crw-rw-rw- 1 root wheel 20, 62 Nov 23 11:13 /dev/tty.usbmodem401322</span>
<span class="gp">$</span>
</pre></div>
</div>
<p>Plug in the FT232H board and check the ports again:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>ls<span class="w"> </span>-la<span class="w"> </span>/dev/*usb*
<span class="go">0 crw-rw-rw- 1 root wheel 20, 63 Nov 23 11:13 /dev/cu.usbmodem401322</span>
<span class="go">0 crw-rw-rw- 1 root wheel 20, 65 Nov 23 11:26 /dev/cu.usbserial-0020124</span>
<span class="go">0 crw-rw-rw- 1 root wheel 20, 62 Nov 23 11:13 /dev/tty.usbmodem401322</span>
<span class="go">0 crw-rw-rw- 1 root wheel 20, 64 Nov 23 11:26 /dev/tty.usbserial-0020124</span>
<span class="gp">$</span>
</pre></div>
</div>
<p>The FT232H is connected to <code class="docutils literal notranslate"><span class="pre">/dev/tty.usbserial-0020124</span></code> (The number
after tty.usbserial will be different on your machine.) Use the screen
command to connect to the board:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>screen<span class="w"> </span>/dev/tty.usbserial-0020124<span class="w"> </span><span class="m">115200</span>
</pre></div>
</div>
<p>To exit out of <code class="docutils literal notranslate"><span class="pre">screen</span></code> you’ll type <code class="docutils literal notranslate"><span class="pre">control-A</span></code> followed by
<code class="docutils literal notranslate"><span class="pre">control-\</span></code> and you’ll be back to a terminal prompt.</p>
<p>You can also use minicom:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>minicom<span class="w"> </span>-D<span class="w"> </span>/dev/tty.usbserial-0020124
<span class="go">Welcome to minicom 2.7</span>
<span class="go">OPTIONS:</span>
<span class="go">Compiled on Nov 24 2015, 16:14:21.</span>
<span class="go">Port /dev/tty.usbserial-0020124, 09:57:17</span>
<span class="go">Press Meta-Z for help on special keys</span>
</pre></div>
</div>
<p>If there’s no Mynewt app running, or the Mynewt app doesn’t have the
Shell and Console enabled, you won’t see anything there, but you can
always refer back to this page from later tutorials if you need to.</p>
</div>
<div class="section" id="example-for-windows-platforms">
<h4><a class="toc-backref" href="#id11">Example for Windows Platforms</a><a class="headerlink" href="#example-for-windows-platforms" title="Permalink to this headline"></a></h4>
<p>First check what USB devices are already connected before connecting the
FT232H board to your computer. You can locate the ports from a MinGW
terminal or use the Windows Device Manager.</p>
<p>On a MinGW terminal, the ports are listed in the /dev directory and the
format of the port name is <code class="docutils literal notranslate"><span class="pre">ttyS&lt;N&gt;</span></code> where N 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>Check what USB devices are already connected:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>ls<span class="w"> </span>-l<span class="w"> </span>/dev/ttyS*
<span class="go">crw-rw-rw- 1 &lt;user&gt; None 117, 5 May 9 04:24 /dev/ttyS5</span>
<span class="gp">$</span>
</pre></div>
</div>
<p>/dev/ttyS5 maps to the Windows COM6 port. You can run Windows Device
Manager to confirm:</p>
<p><img alt="Device Manager - USB Devices" src="../_images/device_manager_no_ft232H.png" /></p>
<p>Plug in the FT232H board and check the ports again:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>ls<span class="w"> </span>-l<span class="w"> </span>/dev/ttyS*
<span class="go">ls -l /dev/ttyS*</span>
<span class="go">crw-rw-rw- 1 &lt;user&gt; None 117, 10 May 9 04:55 /dev/ttyS10</span>
<span class="go">crw-rw-rw- 1 &lt;user&gt; None 117, 5 May 9 04:55 /dev/ttyS5</span>
<span class="gp">$</span>
</pre></div>
</div>
<p>The FT232H board is connected to port /dev/ttyS10 (or COM11):</p>
<p><img alt="Device Manager - FT232H" src="../_images/device_manager_ft232H.png" /></p>
<p>We use the PuTTY terminal application to connect to the board on the
COM11 port: <img alt="PuTTY" src="../_images/putty.png" /></p>
<p>Press Open and you should get a terminal screen titled “COM11 - PuTTY”</p>
<p>If there’s no Mynewt app running, or the Mynewt app doesn’t have the
Shell and Console enabled, you won’t see anything there, but you can
always refer back to this page from later tutorials if you need to.</p>
<p>Now that you know how to communicate with your Mynewt application, let’s
move on to creating one!</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="rst-footer-buttons row" role="navigation" aria-label="footer navigation">
<a href="debug.html" class="btn btn-neutral float-right" title="Debugging Mynewt" accesskey="n">Next: Debugging Mynewt <span class="fa fa-arrow-circle-right"></span></a>
<a href="project_create.html" class="btn btn-neutral" title="Creating Your First Mynewt Project" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous: Creating Your First Mynewt Project</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="">
<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:'latest',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt',
LINK_SUFFIX: '.html'
};
</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>