<!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">
        
        
        <!-- This is broken by doc revisioning.
         -->
        <link rel="shortcut icon" href="../../../img/favicon.ico">

        <title>newtmgr conn - Apache Mynewt</title>

        <link href="../../../css/bootstrap-3.0.3.min.css" rel="stylesheet">
        <link rel="stylesheet" href="../../../css/highlight.css">
        <link href="../../../css/base.css" rel="stylesheet">
        <link href="../../../css/custom.css" rel="stylesheet">
        <link href="../../../css/v2.css" rel="stylesheet">
        <link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">

        <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
        <!--[if lt IE 9]>
            <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
            <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
        <![endif]-->

        
            <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="newtmgr conn">


        <div class="container">
    <div class="row v2-main-banner">
        <a class="logo-cell" href="/">
            <img class="logo" src="/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>

        






<nav id="navbar" class="navbar navbar-inverse affix-top" data-spy="affix" data-offset-top="150" 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 
  class=""
>
                    <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 
  class=""
>
                    <a href="/about/">About</a>
                </li>
                <li 
  class=""
>
                    <a href="/talks/">Talks</a>
                </li>
                <li 
  class="active"
>
                    <a href="/documentation/">Documentation</a>
                </li>
                <li 
  class=""
>
                    <a href="/download/">Download</a>
                </li>
                <li 
  class=""
>
                    <a href="/community/">Community</a>
                </li>
                <li 
  class=""
>
                    <a href="/events/">Events</a>
                </li>
            </ul>

        </div>
    </div>
</nav>

        

        <div class="container">
            
                <div class="row">
                    <div class="col-md-3 v2-sidebar sidebar-container"><div id="docSidebar" class="hidden-print" role="complementary">
    <div class="top">
        <div role="search">
            <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
                <div class="form-group">
                    <input type="text" name="q" class="form-control" placeholder="Search documentation" />
                </div>
            </form>
        </div>
    </div>
    <ul class="toc-nav">
      <li class="doc-version"><select class="form-control" onchange="if (this.value) window.location.href=this.value">
  <option value="/latest">
    Version: master
  </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/" >
    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" selected="selected" >
    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></li>
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      
        
          
  
  
    <li ><a href="../../../os/introduction/">Mynewt Documentation</a>
  
  
    <ul>
          
              
          
              
                
  
  
    <li ><a href="../../../os/get_started/get_started/">Basic Setup</a>
  
  
    </li>

              
          
              
                
  <li >
    <a href="../../../os/get_started/vocabulary/">Concepts</a>
  </li>

              
          
              
                
  
  
    <li ><a href="../../../os/tutorials/tutorials/">Tutorials</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../../os/os_user_guide/">OS User Guide</a>
  
  
    </li>

              
          
              
                
  
  
    <li><a href="
  ../../../network/ble/ble_intro/
">BLE User Guide</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../../newt/newt_intro/">Newt Tool Guide</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../overview/">Newt Manager Guide</a>
  
  
    <ul>
          
              
          
              
                
  
  
    <li><a href="
  ../newtmgr_config/
">Command Guide</a>
  
  
    <ul>
          
              
                
  <li >
    <a href="../newtmgr_config/">newtmgr config</a>
  </li>

              
          
              
                
  <li class="active">
    <a href="./">newtmgr conn</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_crash/">newtmgr crash</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_datetime/">newtmgr datetime</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_echo/">newtmgr echo</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_fs/">newtmgr fs</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_image/">newtmgr image</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_logs/">newtmgr log</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_mpstats/">newtmgr mpstat</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_reset/">newtmgr reset</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_run/">newtmgr run</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_stat/">newtmgr stat</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_taskstats/">newtmgr taskstat</a>
  </li>

              
          
    </ul>
  
    </li>

              
          
              
                
  
  
    <li><a href="
  ../../install_mac/
">Install</a>
  
  
    </li>

              
          
    </ul>
  
    </li>

              
          
              
                
  <li >
    <a href="../../../known_issues/">Known Issues</a>
  </li>

              
          
    </ul>
  
    </li>

        
      
        
          
  
  
    <li><a href="
  ../../../newt/install/prev_releases/
">Appendix</a>
  
  
    </li>

        
      
    </ul>
</div></div>

                    <div class="col-md-9" role="main">
                        <div class="doc-header">
                            <div role="navigation" aria-label="breadcrumbs navigation">
  <ul class="wy-breadcrumbs">
    <li><a href="/documentation/">Docs</a></li>
    
    
        
          <li>&raquo; <a href="newtmgr/command_list/newtmgr_config/">Command Guide</a></li>
        
      
        
          <li>&raquo; <a href="newtmgr/overview/">Newt Manager Guide</a></li>
        
      
        
          <li>&raquo; <a href="os/introduction/">Mynewt Documentation</a></li>
        
      
      
        <li>&raquo; newtmgr conn</li>
      
    
    
      <li class="wy-breadcrumbs-aside">
        
          <a href="https://github.com/apache/mynewt-site/blob/master/docs/newtmgr/command_list/newtmgr_conn.md"
            class="icon icon-github"> Edit on GitHub</a>
        
      </li>
    
  </ul>
</div>
                        </div>
                        
                          
                        
                          
                        
                          
                        
                          
                        
                          
                            <div class="alert alert-warning">
                                <p>
                                    Version 1.2.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>
                          
                        
                        
                            <h2 id="newtmgr-conn"><font color="#F2853F" style="font-size:24pt">newtmgr conn </font></h2>
<p>Manage newtmgr connection profiles.</p>
<h4 id="usage">Usage:</h4>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>    newtmgr conn [command] [flags] 
</code></pre></div>

<h4 id="flags">Flags:</h4>
<h4 id="global-flags">Global Flags:</h4>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>  -c, --conn string       connection profile to use
  -l, --loglevel string   log level to use (default &quot;info&quot;)
      --name string       name of target BLE device; overrides profile setting
  -t, --timeout float     timeout in seconds (partial seconds allowed) (default 10)
  -r, --tries int         total number of tries in case of timeout (default 1)
</code></pre></div>

<h4 id="description">Description</h4>
<p>The conn command provides subcommands to add, delete, and view connection profiles. A connection profile specifies information on how to connect and communicate with a remote device.  Newtmgr commands use the information from a connection profile to send newtmgr requests to remote devices.</p>
<table>
<thead>
<tr>
<th>Sub-command</th>
<th>Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td>add</td>
<td>The newtmgr conn add &lt;conn_profile&gt; &lt;var-name=value ...&gt; command creates a connection profile named <code>conn_profile</code>.  The command requires the <code>conn_profile</code> name and a list of, space separated, var-name=value pairs. The var-names are: <code>type</code>, and <code>connstring</code>. <br><br>The valid values for each var-name parameter are: <ul><li><code>type</code>: The connection type. Valid values are: <ul><li><strong>serial</strong>: Newtmgr protocol over a serial connection.</li><li> <strong>oic_serial</strong>: OIC protocol over a serial connection.</li><li> <strong>udp</strong>:newtmgr protocol over UDP.</li><li> <strong>oic_udp</strong>: OIC protocol over UDP.</li><li><strong>ble</strong> newtmgr protocol over BLE. This type uses native OS BLE support </li><li> <strong>oic_ble</strong>: OIC protocol over BLE. This type uses native OS BLE support. </li><li> <strong>bhd</strong>: newtmgr protocol over BLE. This type uses the blehostd implemenation.</li><li> <strong>oic_bhd</strong>: OIC protocol over BLE. This type uses the blehostd implementation. </li></li></ul><br><strong>Note:</strong> newtmgr does not support BLE on Windows.<br><br><li><code>connstring</code>: The physical or virtual address for the connection. <br><br> The format of the <code>connstring</code> value depends on the connection <code>type</code> value as follows:<ul><li><strong>serial</strong> and <strong>oic_serial</strong>: A quoted string with two, comma separated,  <code>attribute=value</code> pairs. The attribute names and value format for each attribute are: <ul><li><code>dev</code>: (Required) The name of the serial port to use. For example: <strong>/dev/ttyUSB0</strong> on a Linux platform  or <strong>COM1</strong> on a Windows platform .</li><li><code>baud</code>: (Optional) A number that specifies the buad rate for the connection. Defaults to <strong>115200</strong> if the attribute is not specified.</li> </li></ul><br>Example: connstring="dev=/dev/ttyUSB0, baud=9600"<br><br> <strong>Note:</strong> The 1.0 format, which only requires a serial port name, is still supported.  For example, <code>connstring=/dev/ttyUSB0</code>.</li><br><li><strong>udp</strong> and  <strong>oic_udp</strong>: The peer ip address and port number that the newtmgr or oicmgr on the remote device is listening on. It must be of the form: <strong>[&lt;ip-address&gt;]:&lt;port-number&gt;</strong>. </li><br><li><strong>ble</strong> and <strong>oic_ble</strong>: The format is a quoted string of, comma separated, <code>attribute=value</code> pairs.  The attribute names and the value for each attribute are:<ul><li><code>peer_name</code>: A string that specifies the name the peer BLE device advertises.<br><br><strong>Note</strong>: If this attribute is specified, you do not need to specify a value for the <code>peer_id</code> attribute.</li><br><li><code>peer_id</code>: The peer BLE device address or UUID. The format depends on the OS that the newtmgr tool is running on:<ul></li><strong>Linux</strong>: 6 byte BLE address. Each byte must be a hexidecimal number and separated by a colon.</li><li><strong>MacOS</strong>: 128 bit UUID.</li></ul><br><strong>Note</strong>: This value is only used when a peer name is not specified for the connection profile or with the <code>--name</code> flag option. </li><br><li><code>ctlr_name</code>: (Optional) Controller name. This value depends on the OS that the newtmgr tool is running on. </li></ul><br><strong>Notes</strong>: <ul><li>You must specify <code>connstring=" "</code> if you do not specify any attribute values.</li><li>You can use the <code>--name</code> flag to specify a device name when you issue a newtmgr command that communicates with a BLE device. You can use this flag to override or in lieu of specifying a <code>peer_name</code> or <code>peer_id</code> attribute in the connection profile.</li></ul><br><li><strong>bhd</strong> and <strong>oic_bhd</strong>: The format is a quoted string of, comma separated,  <code>attribute=value</code> pairs. The attribute names and the value format for each attribute are: <ul><li><code>peer_name</code>: A string that specifies the name the peer BLE device advertises.  <br><br><strong>Note</strong>: If this attribute is specified, you do not need to specify values for the <code>peer_addr</code> and <code>peer_addr_type</code> attributes.</li> <br><li><code>peer_addr</code>: A 6 byte peer BLE device address. Each byte must be a hexidecimal number and separated by a colon. You must also specify a <code>peer_addr_type</code> value for the device address. <br><br><strong>Note:</strong> This value is only used when a peer name is not specified for the connection profile or with the <code>--name</code> flag option.</li><br><li> <code>peer_addr_type</code>: The peer address type. Valid values are:<ul><li><strong>public</strong>: Public address assigned by the manufacturer.</li><li> <strong>random</strong>: Static random address.</li><li><strong>rpa_pub</strong>: Resolvable Private Address with public identity address.</li><li><strong>rpa_rnd</strong>: Resolvable Private Address with static random identity address.</li></ul><br><strong>Note:</strong> This value is only used when a peer name is not specified for the connection profile or with the  <code>--name</code> flag option.</li><br></li><li><code>own_addr_type</code>: (Optional) The address type of the BLE controller for the host that the newtmgr tool is running on. See the <code>peer_addr_type</code> attribute for valid values. Defaults to <strong>random</strong>. </li><br><li><code>ctlr_path</code>: The path of the port that is used to connect the BLE controller to the host that the newtmgr tool is running on.</li></ul><br> <strong>Note</strong>: You can use the <code>--name</code> flag to specify a device name when you issue a newtmgr command that communicates with a BLE device. You can use this flag to override or in lieu of specifying a <code>peer_name</code> or <code>peer_addr</code> attribute in the connection profile.</td>
</tr>
<tr>
<td></li></ul></li></ul></li></ul></td>
<td></td>
</tr>
<tr>
<td>delete</td>
<td>The newtmgr conn delete &lt;conn_profile&gt; command deletes the <code>conn_profile</code> connection profile.</td>
</tr>
<tr>
<td>show</td>
<td>The newtmgr conn show [conn_profile] command shows the information for the <code>conn_profile</code> connection profile. It shows information for all the connection profiles if <code>conn_profile</code> is not specified.</td>
</tr>
</tbody>
</table>
<h4 id="examples">Examples</h4>
<table>
<thead>
<tr>
<th>Sub-command</th>
<th>Usage</th>
<th>Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td>add</td>
<td>newtmgr conn add myserial02 type=oic_serial connstring=/dev/ttys002</td>
<td>Creates a connection profile, named <code>myserial02</code>, to communicate over a serial connection at 115200 baud rate with the oicmgr on a device that is connected to the host on port /dev/ttys002.</td>
</tr>
<tr>
<td>add</td>
<td>newtmgr conn add myserial03 type=serial connstring="dev=/dev/ttys003, baud=57600"</td>
<td>Creates a connection profile, named <code>myserial03</code>, to communicate over a serial connection at 57600 baud rate with the newtmgr on a device that is connected to the host on port /dev/ttys003.</td>
</tr>
<tr>
<td>add</td>
<td>newtmgr conn add myudp5683 type=oic_udp<br>connstring=[127.0.0.1]:5683</td>
<td>Creates a connection profile, named <code>myudp5683</code>,  to communicate over UDP with the oicmgr on a device listening on localhost and port 5683.</td>
</tr>
<tr>
<td>add</td>
<td>newtmgr conn add mybleprph type=ble connstring="peer_name=nimble-bleprph"</td>
<td>Creates a connection profile, named <code>mybleprph</code>,  to communicate over BLE, using the native OS BLE support,  with the newtmgr on a device named <code>nimble-bleprph</code>.</td>
</tr>
<tr>
<td>add</td>
<td>newtmgr conn add myble<br>type=ble connstring=" "</td>
<td>Creates a connection profile, named <code>myble</code>,  to communicate over BLE, using the native OS BLE support,  with the newtmgr on a device. You must use the <code>--name</code> flag to specify the device name when you issue a newtmgr command that communicates with the device.</td>
</tr>
<tr>
<td>add</td>
<td>newtmgr conn add myblehostd type=oic_bhd connstring="peer_name=nimble-bleprph,ctlr_path=/dev/cu.usbmodem14221"</td>
<td>Creates a connection profile, named <code>myblehostd</code>,  to communicate over BLE, using the blehostd implementation, with the oicmgr on a device named <code>nimble-bleprph</code>. The BLE controller is connected to the host on USB port /dev/cu.usbmodem14211 and uses static random address.</td>
</tr>
<tr>
<td>delete</td>
<td>newtmgr conn delete myserial02</td>
<td>Deletes the connection profile named <code>myserial02</code></td>
</tr>
<tr>
<td>delete</td>
<td>newtmgr conn delete myserial02</td>
<td>Deletes the connection profile named <code>myserial02</code></td>
</tr>
<tr>
<td>show</td>
<td>newtmgr conn show myserial01</td>
<td>Displays the information for the <code>myserial01</code> connection profile.</td>
</tr>
<tr>
<td>show</td>
<td>newtmgr conn show</td>
<td>Displays the information for all connection profiles.</td>
</tr>
</tbody>
</table>
                        
                        <div class="row">
                            



<ul class="nav nav-pills" style="margin-bottom: 10px">
    <li>
    
    </li>
    <li class="pull-right">
    
    </li>
</ul>
                        </div>
                        <footer 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">
            <a href="https://www.apache.org/">
                <img src="/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
            </a>
            <p>
                Copyright © 2015-2021 The Apache Software Foundation.<br>
                <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>
            </p>
            <a href="">
                <img src="https://www.countit.com/images/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
            </a>
        </div>
    </div>
    <a href="https://www.apache.org/licenses/">
        <button class="button-footer-asf">
            License
        </button>
    </a>
    <a href="https://www.apache.org/foundation/sponsorship.html">
        <button class="button-footer-asf">
            Sponsorship
        </button>
    </a>
    <a href="https://www.apache.org/foundation/thanks.html">
        <button class="button-footer-asf">
            Thanks
        </button>
    </a>
    <a href="https://www.apache.org/security/">
        <button class="button-footer-asf">
            Security
        </button>
    </a>
    <a href="https://apache.org/events/current-event">
        <button class="button-footer-asf">
            ASF Events
        </button>
    </a>
</footer>
                    </div>
                </div>
            
            
        </div>

        <script src="../../../js/jquery-1.10.2.min.js"></script>
        <script src="../../../js/bootstrap-3.0.3.min.js"></script>
        <script src="../../../js/highlight.pack.js"></script>
        <script src="../../../js/base.js"></script>
        <script src="../../../js/custom.js"></script>
            <script src="search/main.js"></script>

    </body>
</html>