blob: 8e74ecb94f9bf74c09721c8d98a67200efe55074 [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>Tutorials &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="next" title="Project Blinky" href="blinky/blinky.html"/>
<link rel="prev" title="Concepts" href="../concepts.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> /
Tutorials
<div class="sourcelink">
<a href="https://github.com/apache/mynewt-documentation/edit/master/docs/tutorials/tutorials.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" selected="selected" >
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" >
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="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>
<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.11.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="tutorials">
<span id="id1"></span><h1>Tutorials<a class="headerlink" href="#tutorials" title="Permalink to this headline"></a></h1>
<div class="toctree-wrapper compound">
</div>
<p>If the introduction to Mynewt has piqued your interest and you want to
familiarize yourself with some of its functionality, this series of
tutorials is for you. The lessons are aimed at the beginner.</p>
<p>The full list of tutorials can be seen in the navigation bar on the
left. New ones are being constantly added and will show up there
automatically.</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="#tutorial-categories" id="id3">Tutorial categories</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>You have installed Docker container of Newt tool and toolchains or
you have installed them natively on your machine</p></li>
<li><p>You have created a new 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 Mynewt Project</span></a>.</p></li>
<li><p>You have at least one of the supported development boards:</p>
<ul>
<li><p><a class="reference internal" href="blinky/arduino_zero.html"><span class="doc">Arduino Zero</span></a></p></li>
<li><p><a class="reference internal" href="blinky/olimex.html"><span class="doc">Olimex</span></a></p></li>
<li><p><a class="reference internal" href="blinky/nRF52.html"><span class="doc">nRF52</span></a></p></li>
</ul>
</li>
</ul>
<p>The Nordic nrf52 developer kit supports Bluetooth Low Energy. We are
always looking to add new hardware to the list, so if you want to
develop the required Board Support Package (bsp) and/or Hardware
Abstraction Layer (HAL) for a new board, you can look
<a class="reference internal" href="../os/core_os/porting/port_os.html"><span class="doc">Porting Mynewt OS</span></a> to get started.</p>
</div>
<div class="section" id="tutorial-categories">
<h2><a class="toc-backref" href="#id3">Tutorial categories</a><a class="headerlink" href="#tutorial-categories" title="Permalink to this headline"></a></h2>
<p>The tutorials fall into a few broad categories. Some examples in each
category are listed below.</p>
<ul class="simple">
<li><p>Making an LED Blink (the “Hello World” equivalent in the electronics
world)</p>
<ul>
<li><p><a class="reference internal" href="blinky/arduino_zero.html"><span class="doc">Blinky, your “Hello World!”, on Arduino Zero</span></a></p></li>
<li><p><a class="reference internal" href="blinky/olimex.html"><span class="doc">Blinky, your “Hello World!”, on Olimex</span></a></p></li>
<li><p><a class="reference internal" href="blinky/nRF52.html"><span class="doc">Blinky, your “Hello World!”, on a nRF52 Development Kit</span></a> <strong>Note:</strong> This supports BLE.</p></li>
<li><p><a class="reference internal" href="blinky/rbnano2.html"><span class="doc">Blinky, your “Hello World!”, on RedBear Nano 2</span></a></p></li>
</ul>
</li>
<li><p>Navigating the Code and Adding Functionality</p>
<ul>
<li><p><a class="reference internal" href="repo/add_repos.html"><span class="doc">Adding More Repositories to Your Project</span></a></p></li>
<li><p><a class="reference internal" href="other/unit_test.html"><span class="doc">Adding a Unit Test For a Package</span></a></p></li>
</ul>
</li>
<li><p>Using Newtmgr</p>
<ul>
<li><p><a class="reference internal" href="slinky/project-slinky.html"><span class="doc">Enabling Remote Communication With a Device Running Mynewt
OS</span></a></p></li>
</ul>
</li>
<li><p>Bluetooth Low Energy</p>
<ul>
<li><p><a class="reference internal" href="ble/ble_bare_bones.html"><span class="doc">Building a Bare Bones BLE Application</span></a></p></li>
<li><p><a class="reference internal" href="ble/ibeacon.html"><span class="doc">Building a BLE iBeacon Application</span></a></p></li>
</ul>
</li>
<li><p>OS Fundamentals</p>
<ul>
<li><p><a class="reference internal" href="os_fundamentals/event_queue.html"><span class="doc">Events and Event Queues</span></a></p></li>
<li><p><a class="reference internal" href="os_fundamentals/tasks_lesson.html"><span class="doc">Task and Priority Management</span></a></p></li>
</ul>
</li>
<li><p>Remote Device Management</p>
<ul>
<li><p><a class="reference internal" href="devmgmt/add_newtmgr.html"><span class="doc">Enabling Newt Manager in Any App</span></a></p></li>
<li><p><a class="reference internal" href="devmgmt/ota_upgrade_nrf52.html"><span class="doc">Upgrading an Image Over-The-Air</span></a></p></li>
</ul>
</li>
<li><p>Sensors</p>
<ul>
<li><p><a class="reference internal" href="sensors/sensor_nrf52_bno055.html"><span class="doc">Enabling an Off-Board Sensor in an Existing
Application</span></a></p></li>
<li><p><a class="reference internal" href="sensors/sensor_thingy_lis2dh12_onb.html"><span class="doc">Developing an Application for an Onboard
Sensor</span></a></p></li>
<li><p><a class="reference internal" href="sensors/sensor_oic_overview.html"><span class="doc">Enabling OIC Sensor Data
Monitoring</span></a></p></li>
</ul>
</li>
<li><p>Tooling</p>
<ul>
<li><p><a class="reference internal" href="tooling/segger_rtt.html"><span class="doc">SEGGER RTT</span></a></p></li>
<li><p><a class="reference internal" href="tooling/segger_sysview.html"><span class="doc">SEGGER SystemView</span></a></p></li>
</ul>
</li>
</ul>
<p><strong>Send us an email on the dev&#64; mailing list if you have comments or
suggestions!</strong> If you haven’t joined the mailing list, you will find the
links <a class="reference external" href="https://mynewt.apache.org/community/">here</a>.</p>
</div>
</div>
</div>
</div>
<div class="rst-footer-buttons row" role="navigation" aria-label="footer navigation">
<a href="blinky/blinky.html" class="btn btn-neutral float-right" title="Project Blinky" accesskey="n">Next: Project Blinky <span class="fa fa-arrow-circle-right"></span></a>
<a href="../concepts.html" class="btn btn-neutral" title="Concepts" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous: Concepts</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>