blob: 045645643fcaf987207515be189286dcde9792e8 [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 Blinky &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="Tutorials" href="../tutorials.html"/>
<link rel="next" title="Blinky, your “Hello World!”, on Arduino Zero" href="arduino_zero.html"/>
<link rel="prev" title="Tutorials" href="../tutorials.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> /
Project Blinky
<div class="sourcelink">
<a href="https://github.com/apache/mynewt-documentation/edit/master/docs/tutorials/blinky/blinky.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="reference internal" href="../tutorials.html">Tutorials</a><ul class="current">
<li class="toctree-l2 current"><a class="current reference internal" href="#">Project Blinky</a><ul>
<li class="toctree-l3"><a class="reference internal" href="arduino_zero.html">Blinky on Arduino Zero</a></li>
<li class="toctree-l3"><a class="reference internal" href="blinky_primo.html">Blinky on Arduino Primo</a></li>
<li class="toctree-l3"><a class="reference internal" href="olimex.html">Blinky on Olimex</a></li>
<li class="toctree-l3"><a class="reference internal" href="nRF52.html">Blinky on nRF52 DK</a></li>
<li class="toctree-l3"><a class="reference internal" href="pinetime.html">Blinky on PineTime</a></li>
<li class="toctree-l3"><a class="reference internal" href="rbnano2.html">Blinky on RedBear Nano 2</a></li>
<li class="toctree-l3"><a class="reference internal" href="blinky_stm32f4disc.html">Blinky on STM32F4-Discovery</a></li>
<li class="toctree-l3"><a class="reference internal" href="blinky_console.html">Add Console and Shell to Blinky</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../repo/add_repos.html">Working with repositories</a></li>
<li class="toctree-l2"><a class="reference internal" href="../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
<li class="toctree-l2"><a class="reference internal" href="../ble/ble.html">Bluetooth Low Energy</a></li>
<li class="toctree-l2"><a class="reference internal" href="../lora/lorawanapp.html">LoRa</a></li>
<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="project-blinky">
<span id="blinky-tutorials"></span><h1>Project Blinky<a class="headerlink" href="#project-blinky" title="Permalink to this headline"></a></h1>
<div class="toctree-wrapper compound">
</div>
<p>The set of Blinky tutorials show you how to create, build, and run a
“Hello World” application that blinks a LED on the various target boards
that Mynewt supports. The tutorials use the same Blinky application from
the <a class="reference internal" href="../../get_started/project_create.html"><span class="doc">Creating Your First Mynewt Project</span></a> tutorial.</p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><p><a class="reference internal" href="#objective" id="id1">Objective</a></p></li>
<li><p><a class="reference internal" href="#available-tutorials" id="id2">Available Tutorials</a></p></li>
<li><p><a class="reference internal" href="#prerequisites" id="id3">Prerequisites</a></p></li>
<li><p><a class="reference internal" href="#overview-of-steps" id="id4">Overview of Steps</a></p></li>
</ul>
</div>
<div class="section" id="objective">
<h2><a class="toc-backref" href="#id1">Objective</a><a class="headerlink" href="#objective" title="Permalink to this headline"></a></h2>
<p>Learn how to use packages from a default application repository of
Mynewt to build your first <em>Hello World</em> application (Blinky) on a
target board. Once built using the <em>newt</em> tool, this application will
blink a LED light on the target board.</p>
</div>
<div class="section" id="available-tutorials">
<h2><a class="toc-backref" href="#id2">Available Tutorials</a><a class="headerlink" href="#available-tutorials" title="Permalink to this headline"></a></h2>
<p>Tutorials are available for the following boards:</p>
<ul class="simple">
<li><p><a class="reference internal" href="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_primo.html"><span class="doc">Blinky, your “Hello World!”, on Arduino Primo</span></a></p></li>
<li><p><a class="reference internal" href="olimex.html"><span class="doc">Blinky, your “Hello World!”, on Olimex</span></a></p></li>
<li><p><a class="reference internal" href="nRF52.html"><span class="doc">Blinky, your “Hello World!”, on a nRF52 Development Kit</span></a></p></li>
<li><p><a class="reference internal" href="pinetime.html"><span class="doc">Blinky, your “Hello World!”, on a PineTime smartwatch</span></a></p></li>
<li><p><a class="reference internal" href="rbnano2.html"><span class="doc">Blinky, your “Hello World!”, on RedBear Nano 2</span></a></p></li>
<li><p><a class="reference internal" href="blinky_stm32f4disc.html"><span class="doc">Blinky, your “Hello World!”, on STM32F4-Discovery</span></a></p></li>
</ul>
<p>We also have a tutorial that shows you how to add <a class="reference internal" href="blinky_console.html"><span class="doc">Enabling The Console and Shell for Blinky</span></a>.</p>
</div>
<div class="section" id="prerequisites">
<h2><a class="toc-backref" href="#id3">Prerequisites</a><a class="headerlink" href="#prerequisites" title="Permalink to this headline"></a></h2>
<p>Ensure that you meet the following prerequisites before
continuing with one of the tutorials.</p>
<ul class="simple">
<li><p>Have Internet connectivity to fetch remote Mynewt components.</p></li>
<li><p>Have a computer to build a Mynewt application and connect to the
board over USB.</p></li>
<li><p>Have a Micro-USB cable to connect the board and the computer.</p></li>
<li><p>Install the newt tool and toolchains (See <a class="reference internal" href="../../get_started/index.html"><span class="doc">Setup &amp; Get Started</span></a>).</p></li>
<li><p>Read the Mynewt OS <a class="reference internal" href="../../concepts.html"><span class="doc">Concepts</span></a> section.</p></li>
<li><p>Create a project space (directory structure) and populate 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>
</ul>
</div>
<div class="section" id="overview-of-steps">
<h2><a class="toc-backref" href="#id4">Overview of Steps</a><a class="headerlink" href="#overview-of-steps" title="Permalink to this headline"></a></h2>
<p>These are the general steps to create, load and run the Blinky application on your board:</p>
<ul class="simple">
<li><p>Create a project.</p></li>
<li><p>Define the bootloader and Blinky application targets for the board.</p></li>
<li><p>Build the bootloader target.</p></li>
<li><p>Build the Blinky application target and create an application image.</p></li>
<li><p>Connect to the board.</p></li>
<li><p>Load the bootloader onto the board.</p></li>
<li><p>Load the Blinky application image onto the board.</p></li>
<li><p>See the LED on your board blink.</p></li>
</ul>
<p>After you try the Blinky application on your boards, checkout out other
tutorials to enable additional functionality such as <a class="reference internal" href="../slinky/project-slinky.html"><span class="doc">remote
comms</span></a> on the current board. If you have BLE
(Bluetooth Low Energy) chip (e.g. nRF52) on your board, you can try
turning it into an <a class="reference internal" href="../ble/ibeacon.html"><span class="doc">iBeacon</span></a> or <a class="reference internal" href="../ble/eddystone.html"><span class="doc">Eddystone
Beacon</span></a>!</p>
<p>If you see anything missing or want to send us feedback, please sign up
for appropriate mailing lists on our <a class="reference external" href="/community">Community
Page</a>.</p>
</div>
</div>
</div>
</div>
<div class="rst-footer-buttons row" role="navigation" aria-label="footer navigation">
<a href="arduino_zero.html" class="btn btn-neutral float-right" title="Blinky, your “Hello World!”, on Arduino Zero" accesskey="n">Next: Blinky, your “Hello World!”, on Arduino Zero <span class="fa fa-arrow-circle-right"></span></a>
<a href="../tutorials.html" class="btn btn-neutral" title="Tutorials" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous: Tutorials</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>