blob: 77e66eacbe3d5651c738c11bd5812a8ee9167bf3 [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>Project Slinky Using Olimex Board &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="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.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="../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="/latest" selected>
Version: latest
</option>
<option value="/v1_11_0" >
Version: 1.11.0
</option>
<option value="/v1_10_0" >
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" selected="selected" >
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"><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>
<li class="toctree-l2"><a class="reference internal" href="../os_fundamentals/os_fundamentals.html">OS Fundamentals</a></li>
<li class="toctree-l2"><a class="reference internal" href="../devmgmt/devmgmt.html">Remote Device Management</a></li>
<li class="toctree-l2"><a class="reference internal" href="../sensors/sensors.html">Sensors</a></li>
<li class="toctree-l2"><a class="reference internal" href="../tooling/tooling.html">Tooling</a></li>
<li class="toctree-l2"><a class="reference internal" href="../other/other.html">Other</a></li>
</ul>
</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.6.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="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><p><a class="reference internal" href="#prerequisites" id="id2">Prerequisites</a></p></li>
<li><p><a class="reference internal" href="#create-a-new-project" id="id3">Create a New Project</a></p></li>
<li><p><a class="reference internal" href="#create-the-targets" id="id4">Create the Targets</a></p></li>
<li><p><a class="reference internal" href="#build-the-targets" id="id5">Build the Targets</a></p></li>
<li><p><a class="reference internal" href="#sign-and-create-the-slinky-application-image" id="id6">Sign and Create the Slinky Application Image</a></p></li>
<li><p><a class="reference internal" href="#connect-to-the-board" id="id7">Connect to the Board</a></p></li>
<li><p><a class="reference internal" href="#load-the-bootloader-and-the-slinky-application-image" id="id8">Load the Bootloader and the Slinky Application Image</a></p></li>
<li><p><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></p></li>
<li><p><a class="reference internal" href="#use-newtmgr-to-query-the-board" id="id10">Use Newtmgr to Query the Board</a></p></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><p>Meet the prerequisites listed in <a class="reference internal" href="project-slinky.html"><span class="doc">Project Slinky</span></a></p></li>
<li><p>Have a STM32-E407 development board from Olimex.</p></li>
<li><p>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)</p></li>
<li><p>Have a USB A-B type cable to connect the debugger to your computer.</p></li>
<li><p>Have a USB to TTL Serial Cable with female wiring harness.</p></li>
<li><p>Install the <a class="reference internal" href="../../get_started/native_install/cross_tools.html"><span class="doc">OpenOCD debugger</span></a>.</p></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<span class="w"> </span>new<span class="w"> </span>slinky
<span class="go">Downloading project skeleton from apache/mynewt-blinky...</span>
<span class="go">...</span>
<span class="go">Installing skeleton in slinky...</span>
<span class="go">Project slink successfully created</span>
<span class="gp">$ </span><span class="nb">cd</span><span class="w"> </span>slinky
<span class="gp">$ </span>newt<span class="w"> </span>upgrade
<span class="go">Downloading repository mynewt-core (commit: master) ...</span>
<span class="go">...</span>
<span class="go">apache-mynewt-core successfully upgraded to version 1.7.0</span>
<span class="go">mcuboot successfully upgraded to version 1.3.1</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<span class="w"> </span>target<span class="w"> </span>create<span class="w"> </span>stm32_boot
<span class="gp">$ </span>newt<span class="w"> </span>target<span class="w"> </span><span class="nb">set</span><span class="w"> </span>stm32_boot<span class="w"> </span><span class="nv">bsp</span><span class="o">=</span>@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard
<span class="gp">$ </span>newt<span class="w"> </span>target<span class="w"> </span><span class="nb">set</span><span class="w"> </span>stm32_boot<span class="w"> </span><span class="nv">build_profile</span><span class="o">=</span>optimized
<span class="gp">$ </span>newt<span class="w"> </span>target<span class="w"> </span><span class="nb">set</span><span class="w"> </span>stm32_boot<span class="w"> </span>target.app<span class="o">=</span>@mcuboot/boot/mynewt
</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<span class="w"> </span>target<span class="w"> </span>create<span class="w"> </span>stm32_slinky
<span class="gp">$ </span>newt<span class="w"> </span>target<span class="w"> </span><span class="nb">set</span><span class="w"> </span>stm32_slinky<span class="w"> </span><span class="nv">bsp</span><span class="o">=</span>@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard
<span class="gp">$ </span>newt<span class="w"> </span>target<span class="w"> </span><span class="nb">set</span><span class="w"> </span>stm32_slinky<span class="w"> </span><span class="nv">build_profile</span><span class="o">=</span>debug
<span class="gp">$ </span>newt<span class="w"> </span>target<span class="w"> </span><span class="nb">set</span><span class="w"> </span>stm32_slinky<span class="w"> </span><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<span class="w"> </span>build<span class="w"> </span>stm32_boot
<span class="go">Building target targets/stm32_boot</span>
<span class="go">Compiling repos/mcuboot/boot/bootutil/src/caps.c</span>
<span class="go">Compiling repos/mcuboot/boot/bootutil/src/encrypted.c</span>
<span class="go">Compiling repos/mcuboot/boot/bootutil/src/bootutil_misc.c</span>
<span class="go">Compiling repos/apache-mynewt-core/apps/slinky/src/main.c</span>
<span class="go">Compiling repos/mcuboot/boot/bootutil/src/image_ec.c</span>
<span class="go">Compiling repos/mcuboot/boot/bootutil/src/image_ec256.c</span>
<span class="go">Compiling repos/mcuboot/boot/bootutil/src/image_ed25519.c</span>
<span class="go">Compiling repos/mcuboot/boot/bootutil/src/image_rsa.c</span>
<span class="go">Compiling repos/apache-mynewt-core/boot/split/src/split_config.c</span>
<span class="go"> ...</span>
<span class="go">Archiving @apache-mynewt-core_util_rwlock.a</span>
<span class="go">Archiving @apache-mynewt-core_util_streamer.a</span>
<span class="go">Linking ~/dev/slinky/bin/targets/stm32_boot/app/@mcuboot/boot/mynewt/mynewt.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<span class="w"> </span>build<span class="w"> </span>stm32_slinky
<span class="go">Building target targets/stm32_slinky</span>
<span class="go">Compiling repos/mcuboot/boot/bootutil/src/caps.c</span>
<span class="go">Compiling repos/mcuboot/boot/bootutil/src/encrypted.c</span>
<span class="go">Compiling repos/mcuboot/boot/bootutil/src/bootutil_misc.c</span>
<span class="go">Compiling repos/apache-mynewt-core/apps/slinky/src/main.c</span>
<span class="go">Compiling repos/mcuboot/boot/bootutil/src/image_ec.c</span>
<span class="go">Compiling repos/mcuboot/boot/bootutil/src/image_ec256.c</span>
<span class="go">Compiling repos/mcuboot/boot/bootutil/src/image_ed25519.c</span>
<span class="go">Compiling repos/mcuboot/boot/bootutil/src/image_rsa.c</span>
<span class="go">Compiling repos/apache-mynewt-core/boot/split/src/split_config.c</span>
<span class="go"> ...</span>
<span class="go">Archiving @apache-mynewt-core_util_rwlock.a</span>
<span class="go">Archiving @apache-mynewt-core_util_streamer.a</span>
<span class="go">Linking ~/dev/slinky/bin/targets/stm32_slinky/app/@apache-mynewt-core/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><p>Connect the USB A-B type cable to the ARM-USB-TINY-H debugger
connector.</p></li>
<li><p>Connect the ARM-USB-Tiny-H debugger connector to your computer and
the board.</p></li>
<li><p>Connect the USB Micro-A cable to the USB-OTG2 port on the board.</p></li>
<li><p>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.</p></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<span class="w"> </span>load<span class="w"> </span>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><p>Select Options &gt; List All Devices.</p></li>
<li><p>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.</p></li>
<li><p>Select the <code class="docutils literal notranslate"><span class="pre">WinUSB</span></code> driver.</p></li>
<li><p>Click Install Driver.</p></li>
<li><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 again.</p></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<span class="w"> </span>load<span class="w"> </span>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 align-default" 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><a class="headerlink" href="#id1" title="Permalink to this image">ΒΆ</a></p>
</div>
<ul class="simple">
<li><p>Connect the female RX pin of the USB-TTL serial cable to the TX (Pin
3) of the UEXT connector on the board.</p></li>
<li><p>Connect the female TX pin of the USB-TTL serial cable to the RX (Pin
4) of the UEXT connector on the board.</p></li>
<li><p>Connect the GND pin of the USB-TTL serial cable to the GND (Pin 2) of
the UEXT connector on the board.</p></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>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>
<li><p>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<span class="w"> </span>/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><p>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.</p></li>
<li><p>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.</p></li>
</ul>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>newtmgr<span class="w"> </span>conn<span class="w"> </span>add<span class="w"> </span>stm32serial<span class="w"> </span><span class="nv">type</span><span class="o">=</span>serial<span class="w"> </span><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<span class="w"> </span>conn<span class="w"> </span>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="w"> </span><span class="nb">echo</span><span class="w"> </span>hello<span class="w"> </span>-c<span class="w"> </span>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<span class="w"> </span>image<span class="w"> </span>list<span class="w"> </span>-c<span class="w"> </span>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<span class="w"> </span>taskstat<span class="w"> </span>-c<span class="w"> </span>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="">
<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>