blob: db0eb05a69453bee5d5ebc24615c64ad5c8227fd [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>Changing the Default Configuration for a Sensor &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="Sensor Tutorials Overview" href="sensors_framework.html"/>
<link rel="next" title="Developing an Application for an Onboard Sensor" href="sensor_thingy_lis2dh12_onb.html"/>
<link rel="prev" title="Enabling an Off-Board Sensor in an Existing Application" href="sensor_nrf52_bno055.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.12.0, Apache NimBLE 1.7.0 </a> released April 4, 2024)
</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="sensors.html">Sensors</a> /
<a href="sensors_framework.html">Sensor Tutorials Overview</a> /
Changing the Default Configuration for a Sensor
<div class="sourcelink">
<a href="https://github.com/apache/mynewt-documentation/edit/master/docs/tutorials/sensors/sensor_offboard_config.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_12_0" >
Version: 1.12.0
</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"><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 current"><a class="reference internal" href="sensors.html">Sensors</a><ul class="current">
<li class="toctree-l3 current"><a class="reference internal" href="sensors_framework.html">Sensor Framework</a><ul class="current">
<li class="toctree-l4"><a class="reference internal" href="sensor_nrf52_bno055.html">Enable an Off-Board Sensor in an Existing Application</a></li>
<li class="toctree-l4 current"><a class="current reference internal" href="#">Change the Default Configuration For a Sensor</a></li>
<li class="toctree-l4"><a class="reference internal" href="sensor_thingy_lis2dh12_onb.html">Develope an Application for an Onboard Sensor</a></li>
<li class="toctree-l4"><a class="reference internal" href="sensor_oic_overview.html">Enable OIC Sensor Data Monitoring</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="air_quality.html">Air Quality Sensor Project</a></li>
<li class="toctree-l3"><a class="reference internal" href="nrf52_adc.html">Add an Analog Sensor</a></li>
<li class="toctree-l3"><a class="reference internal" href="sensor_nrf52_drv2605.html">Connect a DRV2605 actuator device</a></li>
</ul>
</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="changing-the-default-configuration-for-a-sensor">
<h1>Changing the Default Configuration for a Sensor<a class="headerlink" href="#changing-the-default-configuration-for-a-sensor" title="Permalink to this headline"></a></h1>
<p>This tutorial shows you how to change default configuration values for
an off-board sensor. It continues with the example in the <a class="reference internal" href="sensor_nrf52_bno055.html"><span class="doc">Enabling an
Off-Board Sensor in an Existing Application tutorial</span></a></p>
<p><strong>Note:</strong> You can also follow most of the instructions in this
tutorial to change the default configuration for an onboard sensor. The
difference is that the BSP, instead of the sensor creator package,
creates and configures the onboard sensor devices in the <code class="docutils literal notranslate"><span class="pre">hal_bsp.c</span></code>
file. You should check the BSP to determine whether the default
configuration for a sensor meets your application requirements.</p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><p><a class="reference internal" href="#prerequisites" id="id1">Prerequisites</a></p></li>
<li><p><a class="reference internal" href="#overview-on-how-to-initialize-the-configuration-values-for-a-sensor" id="id2">Overview on How to Initialize the Configuration Values for a Sensor</a></p></li>
<li><p><a class="reference internal" href="#changing-the-default-configuration" id="id3">Changing the Default Configuration</a></p>
<ul>
<li><p><a class="reference internal" href="#step-1-adding-the-sensor-device-driver-header-file" id="id4">Step 1: Adding the Sensor Device Driver Header File</a></p></li>
<li><p><a class="reference internal" href="#step-2-adding-a-new-configuration-function" id="id5">Step 2: Adding a New Configuration Function</a></p></li>
<li><p><a class="reference internal" href="#step-3-changing-the-default-configuration-settings" id="id6">Step 3: Changing the Default Configuration Settings</a></p></li>
<li><p><a class="reference internal" href="#step-4-calling-the-configuration-function-from-main" id="id7">Step 4: Calling the Configuration Function From main()</a></p></li>
<li><p><a class="reference internal" href="#step-5-building-a-new-application-image" id="id8">Step 5: Building a New Application Image</a></p></li>
<li><p><a class="reference internal" href="#step-6-loading-the-new-image-and-rebooting-the-device" id="id9">Step 6: Loading the New Image and Rebooting the Device</a></p></li>
<li><p><a class="reference internal" href="#step-7-verifing-the-sensor-is-configured-with-the-new-values" id="id10">Step 7: Verifing the Sensor is Configured with the New Values</a></p></li>
<li><p><a class="reference internal" href="#step-8-verifying-that-the-accelerometer-data-samples-cannot-be-read" id="id11">Step 8: Verifying that the Accelerometer Data Samples Cannot be Read</a></p></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="prerequisites">
<h2><a class="toc-backref" href="#id1">Prerequisites</a><a class="headerlink" href="#prerequisites" title="Permalink to this headline"></a></h2>
<p>Complete the tasks described in the <a class="reference internal" href="sensor_nrf52_bno055.html"><span class="doc">Enabling an Off-Board Sensor in an
Existing Application tutorial</span></a></p>
</div>
<div class="section" id="overview-on-how-to-initialize-the-configuration-values-for-a-sensor">
<h2><a class="toc-backref" href="#id2">Overview on How to Initialize the Configuration Values for a Sensor</a><a class="headerlink" href="#overview-on-how-to-initialize-the-configuration-values-for-a-sensor" title="Permalink to this headline"></a></h2>
<p>The sensor creator package, <code class="docutils literal notranslate"><span class="pre">hw/sensor/creator</span></code>, creates, for each
enabled sensor, an os device in the kernel for the sensor and
initializes the sensor with its default configuration when the package
is initialized. The steps to configure a sensor device are:</p>
<ol class="arabic simple">
<li><p>Open the os device for the sensor.</p></li>
<li><p>Initialize the sensor driver configuration data structure with
default values.</p></li>
<li><p>Call the <code class="docutils literal notranslate"><span class="pre">&lt;sensorname&gt;_config()</span></code> function that the sensor device
driver package exports.</p></li>
<li><p>Close the os device for the sensor.</p></li>
</ol>
<p>For the BNO055 sensor device, the creator package calls the local
<code class="docutils literal notranslate"><span class="pre">config_bno055_sensor()</span></code> function to configure the sensor. A code
excerpt for this function is shown below:</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">static</span><span class="w"> </span><span class="kt">int</span>
<span class="nf">config_bno055_sensor</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span>
<span class="p">{</span>
<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">rc</span><span class="p">;</span>
<span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">os_dev</span><span class="w"> </span><span class="o">*</span><span class="n">dev</span><span class="p">;</span>
<span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">bno055_cfg</span><span class="w"> </span><span class="n">bcfg</span><span class="p">;</span>
<span class="w"> </span><span class="n">dev</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">os_dev</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="n">os_dev_open</span><span class="p">(</span><span class="s">&quot;bno055_0&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">OS_TIMEOUT_NEVER</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span>
<span class="w"> </span><span class="n">assert</span><span class="p">(</span><span class="n">dev</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span>
<span class="w"> </span><span class="n">bcfg</span><span class="p">.</span><span class="n">bc_units</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">BNO055_ACC_UNIT_MS2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">BNO055_ANGRATE_UNIT_DPS</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="n">BNO055_EULER_UNIT_DEG</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">BNO055_TEMP_UNIT_DEGC</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="n">BNO055_DO_FORMAT_ANDROID</span><span class="p">;</span>
<span class="w"> </span><span class="n">bcfg</span><span class="p">.</span><span class="n">bc_opr_mode</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">BNO055_OPR_MODE_NDOF</span><span class="p">;</span>
<span class="w"> </span><span class="n">bcfg</span><span class="p">.</span><span class="n">bc_pwr_mode</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">BNO055_PWR_MODE_NORMAL</span><span class="p">;</span>
<span class="w"> </span><span class="n">bcfg</span><span class="p">.</span><span class="n">bc_acc_bw</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">BNO055_ACC_CFG_BW_125HZ</span><span class="p">;</span>
<span class="w"> </span><span class="n">bcfg</span><span class="p">.</span><span class="n">bc_acc_range</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">BNO055_ACC_CFG_RNG_16G</span><span class="p">;</span>
<span class="w"> </span><span class="n">bcfg</span><span class="p">.</span><span class="n">bc_mask</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SENSOR_TYPE_ACCELEROMETER</span><span class="o">|</span>
<span class="w"> </span><span class="n">SENSOR_TYPE_MAGNETIC_FIELD</span><span class="o">|</span>
<span class="w"> </span><span class="n">SENSOR_TYPE_GYROSCOPE</span><span class="o">|</span>
<span class="w"> </span><span class="n">SENSOR_TYPE_EULER</span><span class="o">|</span>
<span class="w"> </span><span class="n">SENSOR_TYPE_GRAVITY</span><span class="o">|</span>
<span class="w"> </span><span class="n">SENSOR_TYPE_LINEAR_ACCEL</span><span class="o">|</span>
<span class="w"> </span><span class="n">SENSOR_TYPE_ROTATION_VECTOR</span><span class="p">;</span>
<span class="w"> </span><span class="n">rc</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">bno055_config</span><span class="p">((</span><span class="k">struct</span><span class="w"> </span><span class="nc">bno055</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="n">dev</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">bcfg</span><span class="p">);</span>
<span class="w"> </span><span class="n">os_dev_close</span><span class="p">(</span><span class="n">dev</span><span class="p">);</span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">rc</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
</div>
</div>
<div class="section" id="changing-the-default-configuration">
<h2><a class="toc-backref" href="#id3">Changing the Default Configuration</a><a class="headerlink" href="#changing-the-default-configuration" title="Permalink to this headline"></a></h2>
<p>To change the default configuration, you can directly edit the fields in
the <code class="docutils literal notranslate"><span class="pre">config_bno055_sensor()</span></code> function in the
<code class="docutils literal notranslate"><span class="pre">hw/sensor/creator/sensor_creator.c</span></code> file or add code to your
application to reconfigure the sensor during application initialization.</p>
<p>This tutorial shows you how to add the code to the
<code class="docutils literal notranslate"><span class="pre">apps/sensors_test/src/main.c</span></code> file to configure the sensor without
the accelerometer sensor type. When you reconfigure a sensor in the
application, you must initialize all the fields in the sensor
configuration data structure even if you are not changing the default
values.</p>
<div class="section" id="step-1-adding-the-sensor-device-driver-header-file">
<h3><a class="toc-backref" href="#id4">Step 1: Adding the Sensor Device Driver Header File</a><a class="headerlink" href="#step-1-adding-the-sensor-device-driver-header-file" title="Permalink to this headline"></a></h3>
<p>Add the bno055 device driver header file:</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;bno055/bno055.h&gt;</span>
</pre></div>
</div>
</div>
<div class="section" id="step-2-adding-a-new-configuration-function">
<h3><a class="toc-backref" href="#id5">Step 2: Adding a New Configuration Function</a><a class="headerlink" href="#step-2-adding-a-new-configuration-function" title="Permalink to this headline"></a></h3>
<p>Add the <code class="docutils literal notranslate"><span class="pre">sensors_test_config_bno055()</span></code> function and copy the code from
the <code class="docutils literal notranslate"><span class="pre">config_bno055_sensor()</span></code> function in the
<code class="docutils literal notranslate"><span class="pre">hw/sensor/creator/sensor_creator.c</span></code> file to the body of the
<code class="docutils literal notranslate"><span class="pre">sensors_test_config_bno055()</span></code> function. The content of the
<code class="docutils literal notranslate"><span class="pre">sensors_test_config_bno055()</span></code> function should look like the example
below:</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">static</span><span class="w"> </span><span class="kt">int</span>
<span class="nf">sensors_test_config_bno055</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span>
<span class="p">{</span>
<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">rc</span><span class="p">;</span>
<span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">os_dev</span><span class="w"> </span><span class="o">*</span><span class="n">dev</span><span class="p">;</span>
<span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">bno055_cfg</span><span class="w"> </span><span class="n">bcfg</span><span class="p">;</span>
<span class="w"> </span><span class="n">dev</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">os_dev</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="n">os_dev_open</span><span class="p">(</span><span class="s">&quot;bno055_0&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">OS_TIMEOUT_NEVER</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span>
<span class="w"> </span><span class="n">assert</span><span class="p">(</span><span class="n">dev</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span>
<span class="w"> </span><span class="n">bcfg</span><span class="p">.</span><span class="n">bc_units</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">BNO055_ACC_UNIT_MS2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">BNO055_ANGRATE_UNIT_DPS</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="n">BNO055_EULER_UNIT_DEG</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">BNO055_TEMP_UNIT_DEGC</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="n">BNO055_DO_FORMAT_ANDROID</span><span class="p">;</span>
<span class="w"> </span><span class="n">bcfg</span><span class="p">.</span><span class="n">bc_opr_mode</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">BNO055_OPR_MODE_NDOF</span><span class="p">;</span>
<span class="w"> </span><span class="n">bcfg</span><span class="p">.</span><span class="n">bc_pwr_mode</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">BNO055_PWR_MODE_NORMAL</span><span class="p">;</span>
<span class="w"> </span><span class="n">bcfg</span><span class="p">.</span><span class="n">bc_acc_bw</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">BNO055_ACC_CFG_BW_125HZ</span><span class="p">;</span>
<span class="w"> </span><span class="n">bcfg</span><span class="p">.</span><span class="n">bc_acc_range</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">BNO055_ACC_CFG_RNG_16G</span><span class="p">;</span>
<span class="w"> </span><span class="n">bcfg</span><span class="p">.</span><span class="n">bc_use_ext_xtal</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<span class="w"> </span><span class="n">bcfg</span><span class="p">.</span><span class="n">bc_mask</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SENSOR_TYPE_ACCELEROMETER</span><span class="o">|</span>
<span class="w"> </span><span class="n">SENSOR_TYPE_MAGNETIC_FIELD</span><span class="o">|</span>
<span class="w"> </span><span class="n">SENSOR_TYPE_GYROSCOPE</span><span class="o">|</span>
<span class="w"> </span><span class="n">SENSOR_TYPE_EULER</span><span class="o">|</span>
<span class="w"> </span><span class="n">SENSOR_TYPE_GRAVITY</span><span class="o">|</span>
<span class="w"> </span><span class="n">SENSOR_TYPE_LINEAR_ACCEL</span><span class="o">|</span>
<span class="w"> </span><span class="n">SENSOR_TYPE_ROTATION_VECTOR</span><span class="p">;</span>
<span class="w"> </span><span class="n">rc</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">bno055_config</span><span class="p">((</span><span class="k">struct</span><span class="w"> </span><span class="nc">bno055</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="n">dev</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">bcfg</span><span class="p">);</span>
<span class="w"> </span><span class="n">os_dev_close</span><span class="p">(</span><span class="n">dev</span><span class="p">);</span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">rc</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
</div>
</div>
<div class="section" id="step-3-changing-the-default-configuration-settings">
<h3><a class="toc-backref" href="#id6">Step 3: Changing the Default Configuration Settings</a><a class="headerlink" href="#step-3-changing-the-default-configuration-settings" title="Permalink to this headline"></a></h3>
<p>Delete the <code class="docutils literal notranslate"><span class="pre">SENSOR_TYPE_ACCELEROMETER</span></code> type from the <code class="docutils literal notranslate"><span class="pre">bcfg.bc_mask</span></code>
initialization setting values:</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="kt">int</span>
<span class="w"> </span><span class="nf">sensors_test_config_bno055</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span>
<span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">rc</span>
<span class="w"> </span><span class="p">...</span>
<span class="w"> </span><span class="cm">/* Delete the SENSOR_TYPE_ACCELEROMETER from the mask */</span>
<span class="hll"><span class="w"> </span><span class="n">bcfg</span><span class="p">.</span><span class="n">bc_mask</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SENSOR_TYPE_MAGNETIC_FIELD</span><span class="o">|</span>
</span><span class="w"> </span><span class="n">SENSOR_TYPE_GYROSCOPE</span><span class="o">|</span>
<span class="w"> </span><span class="n">SENSOR_TYPE_EULER</span><span class="o">|</span>
<span class="w"> </span><span class="n">SENSOR_TYPE_GRAVITY</span><span class="o">|</span>
<span class="w"> </span><span class="n">SENSOR_TYPE_LINEAR_ACCEL</span><span class="o">|</span>
<span class="w"> </span><span class="n">SENSOR_TYPE_ROTATION_VECTOR</span><span class="p">;</span>
<span class="w"> </span><span class="n">rc</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">bno055_config</span><span class="p">((</span><span class="k">struct</span><span class="w"> </span><span class="nc">bno055</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="n">dev</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">bcfg</span><span class="p">);</span>
<span class="w"> </span><span class="n">os_dev_close</span><span class="p">(</span><span class="n">dev</span><span class="p">);</span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">rc</span><span class="p">;</span>
<span class="w"> </span><span class="p">}</span>
</pre></div>
</div>
</div>
<div class="section" id="step-4-calling-the-configuration-function-from-main">
<h3><a class="toc-backref" href="#id7">Step 4: Calling the Configuration Function From main()</a><a class="headerlink" href="#step-4-calling-the-configuration-function-from-main" title="Permalink to this headline"></a></h3>
<p>Add the <code class="docutils literal notranslate"><span class="pre">int</span> <span class="pre">rc</span></code> declaration and the call to the
<code class="docutils literal notranslate"><span class="pre">sensors_test_config_bno055()</span></code> function in <code class="docutils literal notranslate"><span class="pre">main()</span></code>:</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="kt">int</span>
<span class="nf">main</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">**</span><span class="n">argv</span><span class="p">)</span>
<span class="p">{</span>
<span class="w"> </span><span class="cm">/* Add rc for the return value from sensors_test_config_bno055() */</span>
<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">rc</span><span class="p">;</span>
<span class="w"> </span><span class="p">....</span>
<span class="w"> </span><span class="cm">/* Add call to sensors_test_config_bno055() and abort on error */</span>
<span class="w"> </span><span class="n">rc</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sensors_test_config_bno055</span><span class="p">();</span>
<span class="w"> </span><span class="n">assert</span><span class="p">(</span><span class="n">rc</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span>
<span class="w"> </span><span class="cm">/* log reboot */</span>
<span class="w"> </span><span class="n">reboot_start</span><span class="p">(</span><span class="n">hal_reset_cause</span><span class="p">());</span>
<span class="w"> </span><span class="cm">/*</span>
<span class="cm"> * As the last thing, process events from default event queue.</span>
<span class="cm"> */</span>
<span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">os_eventq_run</span><span class="p">(</span><span class="n">os_eventq_dflt_get</span><span class="p">());</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
<span class="p">}</span>
</pre></div>
</div>
</div>
<div class="section" id="step-5-building-a-new-application-image">
<h3><a class="toc-backref" href="#id8">Step 5: Building a New Application Image</a><a class="headerlink" href="#step-5-building-a-new-application-image" title="Permalink to this headline"></a></h3>
<p>Run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">build</span> <span class="pre">nrf52_bno055_test</span></code> and the
<code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">create-image</span> <span class="pre">nrf52_bno055_test</span> <span class="pre">2.0.0</span></code> commands to rebuild and
create a new application image.</p>
</div>
<div class="section" id="step-6-loading-the-new-image-and-rebooting-the-device">
<h3><a class="toc-backref" href="#id9">Step 6: Loading the New Image and Rebooting the Device</a><a class="headerlink" href="#step-6-loading-the-new-image-and-rebooting-the-device" title="Permalink to this headline"></a></h3>
<p>Run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">load</span> <span class="pre">nrf52_bno055_test</span></code> command and power the device OFF
and On.</p>
</div>
<div class="section" id="step-7-verifing-the-sensor-is-configured-with-the-new-values">
<h3><a class="toc-backref" href="#id10">Step 7: Verifing the Sensor is Configured with the New Values</a><a class="headerlink" href="#step-7-verifing-the-sensor-is-configured-with-the-new-values" title="Permalink to this headline"></a></h3>
<p>Start a terminal emulator, and run the <code class="docutils literal notranslate"><span class="pre">sensor</span> <span class="pre">list</span></code> command to verify
the accelerometer (0x1) is not configured. The <code class="docutils literal notranslate"><span class="pre">configured</span> <span class="pre">type</span></code>
listed for the sensor should not have the value <code class="docutils literal notranslate"><span class="pre">0x1</span></code>.</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="mo">045</span><span class="mi">930</span><span class="w"> </span><span class="n">compat</span><span class="o">&gt;</span><span class="w"> </span><span class="n">sensor</span><span class="w"> </span><span class="n">list</span>
<span class="hll"><span class="w"> </span><span class="mo">0464</span><span class="mi">82</span><span class="w"> </span><span class="n">sensor</span><span class="w"> </span><span class="n">dev</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">bno055_0</span><span class="p">,</span><span class="w"> </span><span class="n">configured</span><span class="w"> </span><span class="n">type</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mh">0x2</span><span class="w"> </span><span class="mh">0x4</span><span class="w"> </span><span class="mh">0x200</span><span class="w"> </span><span class="mh">0x1000</span><span class="w"> </span><span class="mh">0x2000</span><span class="w"> </span><span class="mh">0x4000</span>
</span><span class="w"> </span><span class="mo">0464</span><span class="mi">84</span><span class="w"> </span><span class="n">compat</span><span class="o">&gt;</span>
</pre></div>
</div>
</div>
<div class="section" id="step-8-verifying-that-the-accelerometer-data-samples-cannot-be-read">
<h3><a class="toc-backref" href="#id11">Step 8: Verifying that the Accelerometer Data Samples Cannot be Read</a><a class="headerlink" href="#step-8-verifying-that-the-accelerometer-data-samples-cannot-be-read" title="Permalink to this headline"></a></h3>
<p>Run the <code class="docutils literal notranslate"><span class="pre">sensor</span> <span class="pre">read</span></code> command to read data samples from the
accelerometer to verify that the sensor cannot be read:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">046484 compat&gt; sensor read bno055_0 0x1 -n 5</span>
<span class="go">092387 Cannot read sensor bno055_0</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="rst-footer-buttons row" role="navigation" aria-label="footer navigation">
<a href="sensor_thingy_lis2dh12_onb.html" class="btn btn-neutral float-right" title="Developing an Application for an Onboard Sensor" accesskey="n">Next: Developing an Application for an Onboard Sensor <span class="fa fa-arrow-circle-right"></span></a>
<a href="sensor_nrf52_bno055.html" class="btn btn-neutral" title="Enabling an Off-Board Sensor in an Existing Application" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous: Enabling an Off-Board Sensor in an Existing Application</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>