You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by ad...@apache.org on 2016/10/11 20:11:40 UTC

[7/8] incubator-mynewt-site git commit: Updated link with update instructions for newt tool. This closes #117. Fixed broken links. This closes #116.

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/b12581a3/develop/mkdocs/search_index.json
----------------------------------------------------------------------
diff --git a/develop/mkdocs/search_index.json b/develop/mkdocs/search_index.json
index 1b735f4..2ed4fec 100644
--- a/develop/mkdocs/search_index.json
+++ b/develop/mkdocs/search_index.json
@@ -97,7 +97,7 @@
         }, 
         {
             "location": "/os/introduction/", 
-            "text": "Introduction\n\n\nWelcome to Apache Mynewt\n\n\nApache Mynewt is an operating system that makes it easy to develop\napplications for microcontroller environments where power and cost \nare driving factors. Examples of these devices are connected locks, \nlights, and wearables.\n\n\nMicrocontroller environments have a number of characteristics that \nmakes the operating system requirements for them unique: \n\n\n\n\n\n\nLow memory footprint: memory on these systems range from \n8-16KB (on the low end) to 16MB (on the high end).\n\n\n\n\n\n\nReduced code size: code often runs out of flash, and total available code size ranges from 64-128KB to 16-32MB.\n\n\n\n\n\n\nLow processing speed: processor speeds vary from 10-12MHz to 160-200MHz.  \n\n\n\n\n\n\nLow power operation: devices operate in mostly sleeping mode, in order to conserve\nbattery power and maximize power usage.\n\n\n\n\n\n\nAs more and more devices get connected, these interconnected devices perform com
 plex tasks. To\nperform these tasks, you need low-level operational functionality built into the operating system.\nTypically, connected devices built with these microcontrollers perform a myriad of functions: \n\n\n\n\n\n\nNetworking Stacks: Bluetooth Low Energy and Thread\n\n\n\n\n\n\nPeripherals: PWM to drive motors, ADCs to measure sensor data, and RTCs\nto keep time.\n\n\n\n\n\n\nScheduled Processing: actions must happen on a calendared or periodic basis.\n\n\n\n\n\n\nApache Mynewt accomplishes all the above easily, by providing a complete\noperating system for constrained devices, including:\n\n\n\n\n\n\nA fully open-source Bluetooth Low Energy stack with both Host and \nController implementations. \n\n\n\n\n\n\nA pre-emptive, multi-tasking Real Time operating system kernel\n\n\n\n\n\n\nA Hardware Abstraction Layer (HAL) that abstracts the MCU's \nperipheral functions, allowing developers to easily write cross-platform\ncode.\n\n\n\n\n\n\n\n\nNewt\n\n\nIn order to provide all 
 this functionality, and operate in an \nextremely low resource environment, Mynewt provides a very fine-grained source \npackage management and build system tool, called \nnewt\n. \n\n\nYou can install and build \nnewt\n for \nLinux\n or \nMac\n. \n\n\n\n\nNewt Manager\n\n\nIn order to enable a user to communicate with remote instances of Mynewt OS and query, configure, and operate them, Mynewt provides an application tool called Newt Manager or \nnewtmgr\n.\n\n\nYou can install and build \nnewtmgr\n from source code on \nLinux or Mac\n. \n\n\n\n\nBuild your first Mynewt App with Newt\n\n\nWith the introductions out of the way, now is a good time to \nget set up and \nstarted\n with your first Mynewt application.\n\n\nHappy Hacking!", 
+            "text": "Introduction\n\n\nWelcome to Apache Mynewt\n\n\nApache Mynewt is an operating system that makes it easy to develop\napplications for microcontroller environments where power and cost\nare driving factors. Examples of these devices are connected locks,\nlights, and wearables.\n\n\nMicrocontroller environments have a number of characteristics that\nmakes the operating system requirements for them unique:\n\n\n\n\n\n\nLow memory footprint: memory on these systems range from\n8-16KB (on the low end) to 16MB (on the high end).\n\n\n\n\n\n\nReduced code size: code often runs out of flash, and total available code size ranges from 64-128KB to 16-32MB.\n\n\n\n\n\n\nLow processing speed: processor speeds vary from 10-12MHz to 160-200MHz.  \n\n\n\n\n\n\nLow power operation: devices operate in mostly sleeping mode, in order to conserve\nbattery power and maximize power usage.\n\n\n\n\n\n\nAs more and more devices get connected, these interconnected devices perform complex 
 tasks. To\nperform these tasks, you need low-level operational functionality built into the operating system.\nTypically, connected devices built with these microcontrollers perform a myriad of functions:\n\n\n\n\n\n\nNetworking Stacks: Bluetooth Low Energy and Thread\n\n\n\n\n\n\nPeripherals: PWM to drive motors, ADCs to measure sensor data, and RTCs\nto keep time.\n\n\n\n\n\n\nScheduled Processing: actions must happen on a calendared or periodic basis.\n\n\n\n\n\n\nApache Mynewt accomplishes all the above easily, by providing a complete\noperating system for constrained devices, including:\n\n\n\n\n\n\nA fully open-source Bluetooth Low Energy stack with both Host and\nController implementations.\n\n\n\n\n\n\nA pre-emptive, multi-tasking Real Time operating system kernel\n\n\n\n\n\n\nA Hardware Abstraction Layer (HAL) that abstracts the MCU's\nperipheral functions, allowing developers to easily write cross-platform\ncode.\n\n\n\n\n\n\n\n\nNewt\n\n\nIn order to provide all this func
 tionality, and operate in an\nextremely low resource environment, Mynewt provides a very fine-grained source\npackage management and build system tool, called \nnewt\n.\n\n\nYou can install and build \nnewt\n for \nLinux\n or \nMac\n.\n\n\n\n\nNewt Manager\n\n\nIn order to enable a user to communicate with remote instances of Mynewt OS and query, configure, and operate them, Mynewt provides an application tool called Newt Manager or \nnewtmgr\n.\n\n\nYou can install and build \nnewtmgr\n from source code on \nLinux or Mac\n.\n\n\n\n\nBuild your first Mynewt App with Newt\n\n\nWith the introductions out of the way, now is a good time to \nget set up and\nstarted\n with your first Mynewt application.\n\n\nHappy Hacking!", 
             "title": "toc"
         }, 
         {
@@ -107,12 +107,12 @@
         }, 
         {
             "location": "/os/introduction/#welcome-to-apache-mynewt", 
-            "text": "Apache Mynewt is an operating system that makes it easy to develop\napplications for microcontroller environments where power and cost \nare driving factors. Examples of these devices are connected locks, \nlights, and wearables.  Microcontroller environments have a number of characteristics that \nmakes the operating system requirements for them unique:     Low memory footprint: memory on these systems range from \n8-16KB (on the low end) to 16MB (on the high end).    Reduced code size: code often runs out of flash, and total available code size ranges from 64-128KB to 16-32MB.    Low processing speed: processor speeds vary from 10-12MHz to 160-200MHz.      Low power operation: devices operate in mostly sleeping mode, in order to conserve\nbattery power and maximize power usage.    As more and more devices get connected, these interconnected devices perform complex tasks. To\nperform these tasks, you need low-level operational functionality built into the opera
 ting system.\nTypically, connected devices built with these microcontrollers perform a myriad of functions:     Networking Stacks: Bluetooth Low Energy and Thread    Peripherals: PWM to drive motors, ADCs to measure sensor data, and RTCs\nto keep time.    Scheduled Processing: actions must happen on a calendared or periodic basis.    Apache Mynewt accomplishes all the above easily, by providing a complete\noperating system for constrained devices, including:    A fully open-source Bluetooth Low Energy stack with both Host and \nController implementations.     A pre-emptive, multi-tasking Real Time operating system kernel    A Hardware Abstraction Layer (HAL) that abstracts the MCU's \nperipheral functions, allowing developers to easily write cross-platform\ncode.", 
+            "text": "Apache Mynewt is an operating system that makes it easy to develop\napplications for microcontroller environments where power and cost\nare driving factors. Examples of these devices are connected locks,\nlights, and wearables.  Microcontroller environments have a number of characteristics that\nmakes the operating system requirements for them unique:    Low memory footprint: memory on these systems range from\n8-16KB (on the low end) to 16MB (on the high end).    Reduced code size: code often runs out of flash, and total available code size ranges from 64-128KB to 16-32MB.    Low processing speed: processor speeds vary from 10-12MHz to 160-200MHz.      Low power operation: devices operate in mostly sleeping mode, in order to conserve\nbattery power and maximize power usage.    As more and more devices get connected, these interconnected devices perform complex tasks. To\nperform these tasks, you need low-level operational functionality built into the operating 
 system.\nTypically, connected devices built with these microcontrollers perform a myriad of functions:    Networking Stacks: Bluetooth Low Energy and Thread    Peripherals: PWM to drive motors, ADCs to measure sensor data, and RTCs\nto keep time.    Scheduled Processing: actions must happen on a calendared or periodic basis.    Apache Mynewt accomplishes all the above easily, by providing a complete\noperating system for constrained devices, including:    A fully open-source Bluetooth Low Energy stack with both Host and\nController implementations.    A pre-emptive, multi-tasking Real Time operating system kernel    A Hardware Abstraction Layer (HAL) that abstracts the MCU's\nperipheral functions, allowing developers to easily write cross-platform\ncode.", 
             "title": "Welcome to Apache Mynewt"
         }, 
         {
             "location": "/os/introduction/#newt", 
-            "text": "In order to provide all this functionality, and operate in an \nextremely low resource environment, Mynewt provides a very fine-grained source \npackage management and build system tool, called  newt .   You can install and build  newt  for  Linux  or  Mac .", 
+            "text": "In order to provide all this functionality, and operate in an\nextremely low resource environment, Mynewt provides a very fine-grained source\npackage management and build system tool, called  newt .  You can install and build  newt  for  Linux  or  Mac .", 
             "title": "Newt"
         }, 
         {
@@ -122,7 +122,7 @@
         }, 
         {
             "location": "/os/introduction/#build-your-first-mynewt-app-with-newt", 
-            "text": "With the introductions out of the way, now is a good time to  get set up and \nstarted  with your first Mynewt application.  Happy Hacking!", 
+            "text": "With the introductions out of the way, now is a good time to  get set up and\nstarted  with your first Mynewt application.  Happy Hacking!", 
             "title": "Build your first Mynewt App with Newt"
         }, 
         {
@@ -227,7 +227,7 @@
         }, 
         {
             "location": "/newt/install/newt_mac/", 
-            "text": "Install newt tool on your Mac\n\n\nGetting your Mac Ready\n\n\nIf you want to build the \nnewt\n tool from its source code, follow the following steps:\n\n\n\n\n1. Install Homebrew on your Mac OS X\n\n\n\n\nDo you have Homebrew? If not, open a terminal on your Mac and paste the following at a Terminal prompt. It will ask you for your sudo password.\n\n\n\n\n        $ ruby -e \n$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)\n\n\n\n\n\n\nAlternatively, you can just extract (or \ngit clone\n) Homebrew and install it to \n/usr/local\n.\n\n\n\n\n2. Install Go, the programming language\n\n\n\n\n\n\nGo language environment dictates a directory structure. Known in Go parlanace as workspace, it must contain three sibling directories with the directory names src, pkg and bin, as explained below. \n\n\n\n\n\n\nsrc contains Go source files organized into packages (one package per directory),\n\n\n\n\n\n\npkg contains package objects, and\n\n
 \n\n\n\n\nbin contains executable commands.\n\n\n\n\n\n\nThe GOPATH environment variable specifies the location of your workspace. To setup this workspace environment, create a 'dev' directory and then a 'go' directory under it. Set the GOPATH environment variable to this directory where you will soon clone the \nnewt\n tool repository.\n\n\n\n\n\n\n\n\n        $ cd $HOME\n        $ mkdir -p dev/go  \n        $ cd dev/go\n        $ export GOPATH=`pwd`\n\n\n\n\n\n(Note that you need to add export statements to ~/.bash_profile to export variables permanently. Don't forget to source the file for the change to go into effect.)\n\n\n\n\n        $ vi ~/.bash_profile\n        $ source ~/.bash_profile\n\n\n\n\n\n\n\n\n\nNext, using \nbrew\n, install Go. When installed, Go offers you as a developer a language environment (to compile Go code), construct Go packages (to assemble Go packages) and import Go code (from github). In the next step, you will use the Go commands to import \nnewt\n rep
 o into your local Go environment.\n\n\n\n\n        $ brew install go\n        ==\n \n        ...\n        ... \n        ==\n *Summary*\n        \ud83c\udf7a  /usr/local/Cellar/go/1.5.1: 5330 files, 273M\n\n\n\n\n\nAlternatively, you can download the Go package directly from (https://golang.org/dl/) instead of brewing it. Install it in /usr/local directory.\n\n\n\n\n3. Create local repository\n\n\n\n\nUse Go commands to copy the directory (currently the ASF incubator directory). Be patient as it may take a minute or two. Check the directories installed.\n\n\n\n\n        $ go get mynewt.apache.org/newt/...\n\n\n\n\n\n\n\nCheck that newt.go is in place.\n\n\n\n\n        $ ls $GOPATH/src/mynewt.apache.org/newt\n        DISCLAIMER  NOTICE      newt        newtvm      viper\n        LICENSE     README.md   newtmgr     util        yaml\n\n\n\n\n\n\n\n4. Build the Newt tool\n\n\n\n\nUse Go to run the newt.go program to build the \nnewt\n tool. The command \ngo install\n compiles and writes 
 the resulting executable to an output file named \nnewt\n, which is then installed, along with its dependencies, in $GOPATH/bin.\n\n\n\n\n        $ cd $GOPATH/src/mynewt.apache.org/newt/newt\n        $ go install\n        $ ls \n$GOPATH\n/bin/\n        newt newtmgr newtvm\n\n\n\n\n\n\n\n\n\nAt this point, you can try using \nnewt\n. For example, check for the version number by typing 'newt version'. See all the possible commands available to a user of newt by typing 'newt -h'.\n\n\n\n\n(Note: If you are going to be modifying the \nnewt\n often and going to be compile the program every time you call it, you will want to store the command in a variable in your .bash_profile. So type in \nexport newt=\"go run $GOPATH/mynewt.apache.org/newt/newt/newt.go\"\n in your .bash_profile and execute it by calling \n$newt\n at the prompt instead of \nnewt\n. Essentially, \n$newt\n calls \ngo run\n which runs the compiled binary directly without producing an executable. Don't forget to reload the 
 updated bash profile by typing \nsource ~/.bash_profile\n at the prompt! )\n\n\n        $ newt version\n        Newt version:  1.0\n        $ newt -h\n        Newt allows you to create your own embedded project based on the Mynewt\n        operating system. Newt provides both build and package management in a\n        single tool, which allows you to compose an embedded workspace, and set\n        of projects, and then build the necessary artifacts from those projects.\n        For more information on the Mynewt operating system, please visit\n        https://www.github.com/mynewt/documentation.\n\n        Please use the newt help command, and specify the name of the command\n        you want help for, for help on how to use a specific command\n\n        Usage:\n         newt [flags]\n         newt [command]\n\n        Examples:\n         newt\n         newt help [\ncommand-name\n]\n           For help on \ncommand-name\n.  If not specified, print this message.\n\n\n        Availabl
 e Commands:\n         version     Display the Newt version number.\n         target      Set and view target information\n         egg         Commands to list and inspect eggs on a nest\n         nest        Commands to manage nests \n clutches (remote egg repositories)\n         help        Help about any command\n\n        Flags:\n         -h, --help=false: help for newt\n         -l, --loglevel=\nWARN\n: Log level, defaults to WARN.\n         -q, --quiet=false: Be quiet; only display error output.\n         -s, --silent=false: Be silent; don\nt output anything.\n         -v, --verbose=false: Enable verbose output when executing commands.\n\n\n        Use \nnewt help [command]\n for more information about a command.", 
+            "text": "Install newt tool on your Mac\n\n\nGetting your Mac Ready\n\n\nIf you want to build the \nnewt\n tool from its source code, follow the following steps:\n\n\n\n\n1. Install Homebrew on your Mac OS X\n\n\n\n\nDo you have Homebrew? If not, open a terminal on your Mac and paste the following at a Terminal prompt. It will ask you for your sudo password.\n\n\n\n\n        $ ruby -e \n$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)\n\n\n\n\n\n\nAlternatively, you can just extract (or \ngit clone\n) Homebrew and install it to \n/usr/local\n.\n\n\n\n\n2. Install Go, the programming language\n\n\n\n\n\n\nGo language environment dictates a directory structure. Known in Go parlanace as workspace, it must contain three sibling directories with the directory names src, pkg and bin, as explained below. \n\n\n\n\n\n\nsrc contains Go source files organized into packages (one package per directory),\n\n\n\n\n\n\npkg contains package objects, and\n\n
 \n\n\n\n\nbin contains executable commands.\n\n\n\n\n\n\nThe GOPATH environment variable specifies the location of your workspace. To setup this workspace environment, create a 'dev' directory and then a 'go' directory under it. Set the GOPATH environment variable to this directory where you will soon clone the \nnewt\n tool repository.\n\n\n\n\n\n\n\n\n        $ cd $HOME\n        $ mkdir -p dev/go  \n        $ cd dev/go\n        $ export GOPATH=`pwd`\n\n\n\n\n\n(Note that you need to add export statements to ~/.bash_profile to export variables permanently. Don't forget to source the file for the change to go into effect.)\n\n\n\n\n        $ vi ~/.bash_profile\n        $ source ~/.bash_profile\n\n\n\n\n\n\n\n\n\nNext, using \nbrew\n, install Go. When installed, Go offers you as a developer a language environment (to compile Go code), construct Go packages (to assemble Go packages) and import Go code (from github). In the next step, you will use the Go commands to import \nnewt\n rep
 o into your local Go environment.\n\n\n\n\n        $ brew install go\n        ==\n \n        ...\n        ... \n        ==\n *Summary*\n        \ud83c\udf7a  /usr/local/Cellar/go/1.5.1: 5330 files, 273M\n\n\n\n\n\nAlternatively, you can download the Go package directly from (https://golang.org/dl/) instead of brewing it. Install it in /usr/local directory.\n\n\n\n\n3. Create local repository\n\n\n\n\nUse Go commands to copy the directory (currently the ASF incubator directory). Be patient as it may take a minute or two. Check the directories installed.\n\n\n\n\n        $ go get mynewt.apache.org/newt/...\n\n\n\n\n\n\n\nCheck that newt.go is in place.\n\n\n\n\n        $ ls $GOPATH/src/mynewt.apache.org/newt\n        DISCLAIMER  NOTICE      newt        newtvm      viper\n        LICENSE     README.md   newtmgr     util        yaml\n\n\n\n\n\n\n\n4. Build the Newt tool\n\n\n\n\nUse Go to run the newt.go program to build the \nnewt\n tool. The command \ngo install\n compiles and writes 
 the resulting executable to an output file named \nnewt\n, which is then installed, along with its dependencies, in $GOPATH/bin.\n\n\n\n\n        $ cd $GOPATH/src/mynewt.apache.org/newt/newt\n        $ go install\n        $ ls \n$GOPATH\n/bin/\n        newt newtmgr newtvm\n\n\n\n\n\n\n\n\n\nAt this point, you can try using \nnewt\n. For example, check for the version number by typing 'newt version'. See all the possible commands available to a user of newt by typing 'newt -h'.\n\n\n\n\n(Note: If you are going to be modifying the \nnewt\n often and going to be compile the program every time you call it, you will want to store the command in a variable in your .bash_profile. So type in \nexport newt=\"go run $GOPATH/mynewt.apache.org/newt/newt/newt.go\"\n in your .bash_profile and execute it by calling \n$newt\n at the prompt instead of \nnewt\n. Essentially, \n$newt\n calls \ngo run\n which runs the compiled binary directly without producing an executable. Don't forget to reload the 
 updated bash profile by typing \nsource ~/.bash_profile\n at the prompt! )\n\n\n        $ newt version\n        Newt version:  1.0\n        $ newt -h\n        Newt allows you to create your own embedded project based on the Mynewt\n        operating system. Newt provides both build and package management in a\n        single tool, which allows you to compose an embedded workspace, and set\n        of projects, and then build the necessary artifacts from those projects.\n        For more information on the Mynewt operating system, please visit\n        https://www.github.com/mynewt/documentation.\n\n        Please use the newt help command, and specify the name of the command\n        you want help for, for help on how to use a specific command\n\n        Usage:\n         newt [flags]\n         newt [command]\n\n        Examples:\n         newt\n         newt help [\ncommand-name\n]\n           For help on \ncommand-name\n.  If not specified, print this message.\n\n\n        Availabl
 e Commands:\n         version     Display the Newt version number.\n         target      Set and view target information\n         egg         Commands to list and inspect eggs on a nest\n         nest        Commands to manage nests \n clutches (remote egg repositories)\n         help        Help about any command\n\n        Flags:\n         -h, --help=false: help for newt\n         -l, --loglevel=\nWARN\n: Log level, defaults to WARN.\n         -q, --quiet=false: Be quiet; only display error output.\n         -s, --silent=false: Be silent; don\nt output anything.\n         -v, --verbose=false: Enable verbose output when executing commands.\n\n\n        Use \nnewt help [command]\n for more information about a command.\n\n\n\n\n\n\n\n5. Updating the Newt tool\n\n\n\n\nYou will update the newt tool in the same place as you initially installed the newt tool.\n\n\nStart by updating the git repository of the newt tool (you can change to a different branch using git checkout [branch] if 
 you need to)\n\n\nThen update each of the tools newt, newtmgr and newtvm as needed\n\n\n\n\n        $ cd $GOPATH/src/mynewt.apache.org/newt\n        $ git pull\n        $ cd newt\n        $ go install\n        $ cd ../newtmgr\n        $ go install\n        $ cd ../newtvm\n        $ go install\n        $ ls \n$GOPATH\n/bin/\n        newt newtmgr newtvm\n\n\n\n\n\nThat should have updated your newt, newtmgr and newtvm to the latest versions based on the git repository you used.", 
             "title": "Install Newt on Mac"
         }, 
         {
@@ -261,8 +261,13 @@
             "title": "4. Build the Newt tool"
         }, 
         {
+            "location": "/newt/install/newt_mac/#5-updating-the-newt-tool", 
+            "text": "You will update the newt tool in the same place as you initially installed the newt tool.  Start by updating the git repository of the newt tool (you can change to a different branch using git checkout [branch] if you need to)  Then update each of the tools newt, newtmgr and newtvm as needed           $ cd $GOPATH/src/mynewt.apache.org/newt\n        $ git pull\n        $ cd newt\n        $ go install\n        $ cd ../newtmgr\n        $ go install\n        $ cd ../newtvm\n        $ go install\n        $ ls  $GOPATH /bin/\n        newt newtmgr newtvm  That should have updated your newt, newtmgr and newtvm to the latest versions based on the git repository you used.", 
+            "title": "5. Updating the Newt tool"
+        }, 
+        {
             "location": "/newt/install/newt_linux/", 
-            "text": "Install newt tool on Linux\n\n\n\n\nGetting your Linux box Ready\n\n\nIf you want to build the \nnewt\n tool from its source code, follow the following steps:\n\n\n1. Install git, libcurl\n\n\n        $ sudo apt-get install git \n        $ sudo apt-get install libcurl4-gnutls-dev \n\n\n\n\n\n\n\n2. Install Go, the programming language\n\n\n\n\n\n\nGo language environment dictates a directory structure. Known in Go parlanace as workspace, it must contain three sibling directories with the directory names src, pkg and bin, as explained below. \n\n\n\n\n\n\nsrc contains Go source files organized into packages (one package per directory),\n\n\n\n\n\n\npkg contains package objects, and\n\n\n\n\n\n\nbin contains executable commands.\n\n\n\n\n\n\nThe GOPATH environment variable specifies the location of your workspace. To setup this workspace environment, create a 'dev' directory and then a 'go' directory under it. Set the GOPATH environment variable to this directory 
 where you will soon clone the \nnewt\n tool repository.\n\n\n\n\n\n\n        $ cd $HOME\n        $ mkdir -p dev/go  \n        $ cd dev/go\n        $ export GOPATH=`pwd`\n\n\n\n\n\n(Note that you need to add export statements to ~/.bash_profile to export variables permanently. Don't forget to source the file for the change to go into effect.)\n\n\n\n\n        $ vi ~/.bash_profile\n        $ source ~/.bash_profile\n\n\n\n\n\n\n\n\n\n\n\nNext, install Go. When installed, Go offers you as a developer a language environment (to compile Go code), construct Go packages (to assemble Go packages) and import Go code (from github). In the next step, you will use the Go commands to import \nnewt\n repo into your local Go environment.\n\n\nNote\n: The Newt tool requires Go version 1.5 or later. It uses the support for \"vendoring\" that was added in Go 1.5. Depending on the Ubuntu version you have, the following may install an earlier version. In that case, download the latest package of Go 1.5 
 or 1.6 from \nhttps://golang.org/dl/\n. You can search for more detailed instructions such as installing Go 1.6 on Ubuntu 14.04 which can be found at \nhttps://www.digitalocean.com/community/tutorials/how-to-install-go-1-6-on-ubuntu-14-04\n.\n\n\n\n\n\n\n        $ sudo apt-get install golang \n\n\n\n\n\n    \n\n\n3. Create local repository\n\n\n\n\nUse Go commands to copy the directory (currently the ASF incubator directory). Be patient as it may take a minute or two. Check the directories installed.\n\n\n\n\n        $ go get mynewt.apache.org/newt/...\n\n\n\n\n\n\n\n\n\nCheck that newt.go is in place.\n\n\n\n\n        $ ls $GOPATH/src/mynewt.apache.org/newt\n        DISCLAIMER  NOTICE      newt        newtvm      viper\n        LICENSE     README.md   newtmgr     util        yaml\n\n\n\n\n\n\n\n4. Build the Newt tool\n\n\n\n\nUse Go to run the newt.go program to build the \nnewt\n tool. The command \ngo install\n compiles and writes the resulting executable to an output file named 
 \nnewt\n, which is then installed, along with its dependencies, in $GOPATH/bin. If you get errors it is likely because of path resolution issues. Try \ngo build\n  followed by \ngo install\n in that case.\n\n\n\n\n        $ cd $GOPATH/src/mynewt.apache.org/newt/newt\n        $ go install\n        $ ls \n$GOPATH\n/bin/\n        newt newtmgr newtvm\n\n\n\n\n\n\n\n\n\nAt this point, you can try using \nnewt\n. For example, check for the version number by typing 'newt version'. See all the possible commands available to a user of newt by typing 'newt -h'.\n\n\n\n\n(Note: If you are going to be modifying the \nnewt\n often and going to be compile the program every time you call it, you will want to store the command in a variable in your .bash_profile. So type in \nexport newt=\"go run $GOPATH/mynewt.apache.org/newt/newt/newt.go\"\n in your .bash_profile and execute it by calling \n$newt\n at the prompt instead of \nnewt\n. Essentially, \n$newt\n calls \ngo run\n which runs the compiled 
 binary directly without producing an executable. Don't forget to reload the updated bash profile by typing \nsource ~/.bash_profile\n at the prompt! )\n\n\n        $ newt version\n        Newt version:  1.0\n        $ newt -h\n        Newt allows you to create your own embedded project based on the Mynewt\n        operating system. Newt provides both build and package management in a\n        single tool, which allows you to compose an embedded workspace, and set\n        of projects, and then build the necessary artifacts from those projects.\n        For more information on the Mynewt operating system, please visit\n        https://www.github.com/mynewt/documentation.\n\n        Please use the newt help command, and specify the name of the command\n        you want help for, for help on how to use a specific command\n\n        Usage:\n         newt [flags]\n         newt [command]\n\n        Examples:\n         newt\n         newt help [\ncommand-name\n]\n           For help on \n
 command-name\n.  If not specified, print this message.\n\n\n        Available Commands:\n         version     Display the Newt version number.\n         target      Set and view target information\n         egg         Commands to list and inspect eggs on a nest\n         nest        Commands to manage nests \n clutches (remote egg repositories)\n         help        Help about any command\n\n        Flags:\n         -h, --help=false: help for newt\n         -l, --loglevel=\nWARN\n: Log level, defaults to WARN.\n         -q, --quiet=false: Be quiet; only display error output.\n         -s, --silent=false: Be silent; don\nt output anything.\n         -v, --verbose=false: Enable verbose output when executing commands.\n\n\n        Use \nnewt help [command]\n for more information about a command.", 
+            "text": "Install newt tool on Linux\n\n\n\n\nGetting your Linux box Ready\n\n\nIf you want to build the \nnewt\n tool from its source code, follow the following steps:\n\n\n1. Install git, libcurl\n\n\n        $ sudo apt-get install git \n        $ sudo apt-get install libcurl4-gnutls-dev \n\n\n\n\n\n\n\n2. Install Go, the programming language\n\n\n\n\n\n\nGo language environment dictates a directory structure. Known in Go parlanace as workspace, it must contain three sibling directories with the directory names src, pkg and bin, as explained below. \n\n\n\n\n\n\nsrc contains Go source files organized into packages (one package per directory),\n\n\n\n\n\n\npkg contains package objects, and\n\n\n\n\n\n\nbin contains executable commands.\n\n\n\n\n\n\nThe GOPATH environment variable specifies the location of your workspace. To setup this workspace environment, create a 'dev' directory and then a 'go' directory under it. Set the GOPATH environment variable to this directory 
 where you will soon clone the \nnewt\n tool repository.\n\n\n\n\n\n\n        $ cd $HOME\n        $ mkdir -p dev/go  \n        $ cd dev/go\n        $ export GOPATH=`pwd`\n\n\n\n\n\n(Note that you need to add export statements to ~/.bash_profile to export variables permanently. Don't forget to source the file for the change to go into effect.)\n\n\n\n\n        $ vi ~/.bash_profile\n        $ source ~/.bash_profile\n\n\n\n\n\n\n\n\n\n\n\nNext, install Go. When installed, Go offers you as a developer a language environment (to compile Go code), construct Go packages (to assemble Go packages) and import Go code (from github). In the next step, you will use the Go commands to import \nnewt\n repo into your local Go environment.\n\n\nNote\n: The Newt tool requires Go version 1.5 or later. It uses the support for \"vendoring\" that was added in Go 1.5. Depending on the Ubuntu version you have, the following may install an earlier version. In that case, download the latest package of Go 1.5 
 or 1.6 from \nhttps://golang.org/dl/\n. You can search for more detailed instructions such as installing Go 1.6 on Ubuntu 14.04 which can be found at \nhttps://www.digitalocean.com/community/tutorials/how-to-install-go-1-6-on-ubuntu-14-04\n.\n\n\n\n\n\n\n        $ sudo apt-get install golang \n\n\n\n\n\n    \n\n\n3. Create local repository\n\n\n\n\nUse Go commands to copy the directory (currently the ASF incubator directory). Be patient as it may take a minute or two. Check the directories installed.\n\n\n\n\n        $ go get mynewt.apache.org/newt/...\n\n\n\n\n\n\n\n\n\nCheck that newt.go is in place.\n\n\n\n\n        $ ls $GOPATH/src/mynewt.apache.org/newt\n        DISCLAIMER  NOTICE      newt        newtvm      viper\n        LICENSE     README.md   newtmgr     util        yaml\n\n\n\n\n\n\n\n4. Build the Newt tool\n\n\n\n\nUse Go to run the newt.go program to build the \nnewt\n tool. The command \ngo install\n compiles and writes the resulting executable to an output file named 
 \nnewt\n, which is then installed, along with its dependencies, in $GOPATH/bin. If you get errors it is likely because of path resolution issues. Try \ngo build\n  followed by \ngo install\n in that case.\n\n\n\n\n        $ cd $GOPATH/src/mynewt.apache.org/newt/newt\n        $ go install\n        $ ls \n$GOPATH\n/bin/\n        newt newtmgr newtvm\n\n\n\n\n\n\n\n\n\nAt this point, you can try using \nnewt\n. For example, check for the version number by typing 'newt version'. See all the possible commands available to a user of newt by typing 'newt -h'.\n\n\n\n\n(Note: If you are going to be modifying the \nnewt\n often and going to be compile the program every time you call it, you will want to store the command in a variable in your .bash_profile. So type in \nexport newt=\"go run $GOPATH/mynewt.apache.org/newt/newt/newt.go\"\n in your .bash_profile and execute it by calling \n$newt\n at the prompt instead of \nnewt\n. Essentially, \n$newt\n calls \ngo run\n which runs the compiled 
 binary directly without producing an executable. Don't forget to reload the updated bash profile by typing \nsource ~/.bash_profile\n at the prompt! )\n\n\n        $ newt version\n        Newt version:  1.0\n        $ newt -h\n        Newt allows you to create your own embedded project based on the Mynewt\n        operating system. Newt provides both build and package management in a\n        single tool, which allows you to compose an embedded workspace, and set\n        of projects, and then build the necessary artifacts from those projects.\n        For more information on the Mynewt operating system, please visit\n        https://www.github.com/mynewt/documentation.\n\n        Please use the newt help command, and specify the name of the command\n        you want help for, for help on how to use a specific command\n\n        Usage:\n         newt [flags]\n         newt [command]\n\n        Examples:\n         newt\n         newt help [\ncommand-name\n]\n           For help on \n
 command-name\n.  If not specified, print this message.\n\n\n        Available Commands:\n         version     Display the Newt version number.\n         target      Set and view target information\n         egg         Commands to list and inspect eggs on a nest\n         nest        Commands to manage nests \n clutches (remote egg repositories)\n         help        Help about any command\n\n        Flags:\n         -h, --help=false: help for newt\n         -l, --loglevel=\nWARN\n: Log level, defaults to WARN.\n         -q, --quiet=false: Be quiet; only display error output.\n         -s, --silent=false: Be silent; don\nt output anything.\n         -v, --verbose=false: Enable verbose output when executing commands.\n\n\n        Use \nnewt help [command]\n for more information about a command.\n\n\n\n\n\n\n\n5. Updating the Newt tool\n\n\n\n\nYou will update the newt tool in the same place as you initially installed the newt tool.\n\n\nStart by updating the git repository of the new
 t tool (you can change to a different branch using git checkout [branch] if you need to)\n\n\nThen update each of the tools newt, newtmgr and newtvm as needed\n\n\n\n\n        $ cd $GOPATH/src/mynewt.apache.org/newt\n        $ git pull\n        $ cd newt\n        $ go install\n        $ cd ../newtmgr\n        $ go install\n        $ cd ../newtvm\n        $ go install\n        $ ls \n$GOPATH\n/bin/\n        newt newtmgr newtvm\n\n\n\n\n\nThat should have updated your newt, newtmgr and newtvm to the latest versions based on the git repository you used.", 
             "title": "Install Newt on Linux"
         }, 
         {
@@ -296,6 +301,11 @@
             "title": "4. Build the Newt tool"
         }, 
         {
+            "location": "/newt/install/newt_linux/#5-updating-the-newt-tool", 
+            "text": "You will update the newt tool in the same place as you initially installed the newt tool.  Start by updating the git repository of the newt tool (you can change to a different branch using git checkout [branch] if you need to)  Then update each of the tools newt, newtmgr and newtvm as needed           $ cd $GOPATH/src/mynewt.apache.org/newt\n        $ git pull\n        $ cd newt\n        $ go install\n        $ cd ../newtmgr\n        $ go install\n        $ cd ../newtvm\n        $ go install\n        $ ls  $GOPATH /bin/\n        newt newtmgr newtvm  That should have updated your newt, newtmgr and newtvm to the latest versions based on the git repository you used.", 
+            "title": "5. Updating the Newt tool"
+        }, 
+        {
             "location": "/os/get_started/cross_tools/", 
             "text": "Installing Cross Tools for ARM\n\n\nThis page shows how to install tools on your laptop/computer to use for direct communication (e.g. for debugging) with some ARM based HW platforms running Apache Mynewt. You will also have to use the Newt tool installed to run natively on your machine. You may choose to do this instead of using the build toolchain and Newt tool available in a Docker container.\n\n\nThis page provides guidance for installing the tools directly on your MAC and Linux machine. See the relevant sections below.\n\n\n\n\nInstall ARM Cross tools in Mac OS X\n\n\nInstall Tool Chain\n\n\nInstall the PX4 Toolchain and check the version installed. ARM maintains a\npre-built GNU toolchain with a GCC source branch targeted at Embedded ARM\nProcessors, namely Cortex-R/Cortex-M processor families. After installing,\nensure that the symbolic link installed by Homebrew points to the correct\nversion of the debugger.\n\n\n$ brew tap PX4/homebrew-px4\n$ brew upda
 te\n$ brew install gcc-arm-none-eabi-49\n$ arm-none-eabi-gcc --version  \narm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.9.3 20150529 (release) [ARM/embedded-4_9-branch revision 224288]\nCopyright (C) 2014 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n$ ls -al /usr/local/bin/arm-none-eabi-gdb\nlrwxr-xr-x  1 aditihilbert  admin  69 Sep 22 17:16 /usr/local/bin/arm-none-eabi-gdb -\n /usr/local/Cellar/gcc-arm-none-eabi-49/20150609/bin/arm-none-eabi-gdb\n\n\n\n\n\nNote:\n If no version is specified, brew will install the latest version\navailable. Mynewt OS will eventually work with multiple versions available,\nincluding the latest releases. However, at present we have tested only with\nthis version and recommend it for getting started. \n\n\n\n\nInstall OpenOCD\n\n\nOpenOCD (Open On-Chip Debugger) is open-source software that allows you
 r\ncomputer to interface with the JTAG debug connector on a variety of boards.  A\nJTAG connection lets you debug and test embedded target devices. For more on\nOpenOCD go to \nhttp://openocd.org\n.\n\n\n$ brew install open-ocd\n$ which openocd\n/usr/local/bin/openocd\n$ ls -l $(which openocd)\nlrwxr-xr-x  1 \nuser\n  admin  36 Sep 17 16:22 /usr/local/bin/openocd -\n ../Cellar/open-ocd/0.9.0/bin/openocd\n\n\n\n\n\n\n\nInstall ARM cross arm tools for Linux\n\n\nInstall Tool Chain\n\n\nOn a Debian-based Linux distribution, gcc 4.9.3 for ARM can be installed with\napt-get as documented below. The steps are explained in depth at\n\nhttps://launchpad.net/~terry.guo/+archive/ubuntu/gcc-arm-embedded\n.\n\n\n$ sudo apt-get remove binutils-arm-none-eabi gcc-arm-none-eabi \n$ sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded \n$ sudo apt-get update \n$ sudo apt-get install gcc-arm-none-eabi\n$ sudo apt-get install gdb-arm-none-eabi\n\n\n\n\n\n\n\nInstall OpenOCD\n\n\nOpenOCD (Open On-Chi
 p Debugger) is open-source software that allows your\ncomputer to interface with the JTAG debug connector on a variety of boards.  A\nJTAG connection lets you debug and test embedded target devices. For more on\nOpenOCD go to \nhttp://openocd.org\n.\n\n\nIf you are running Ubuntu 15.x, then you are in luck and you can simply run: \n\n\n$ sudo apt-get install openocd \n\n\n\n\n\nFor this project, you should download the openocd 0.8.0 package from\n\nhttps://launchpad.net/ubuntu/vivid/+source/openocd\n.\nThe direct link to the amd64 build is\n\nhttp://launchpadlibrarian.net/188260097/openocd_0.8.0-4_amd64.deb\n.", 
             "title": "Install Cross Tools for ARM"
@@ -407,27 +417,27 @@
         }, 
         {
             "location": "/os/tutorials/tutorials/", 
-            "text": "Tutorials\n\n\nIf 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. \n\n\nThe 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.\n\n\n\n\nPrerequisites:\n\n\n\n\nYou have installed Docker container of Newt tool and toolchains or you have installed them natively on your machine\n\n\nYou 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 \nCreating Your First Project\n.\n\n\nYou have at least one of the supported development boards: \n\n\nSTM32F3 discovery kit from ST Micro\n\n\nArduino Zero hardware\n\n\nOlimex/STM32F407ZGT6 Cortex-M4 hardware\n\n\nnRF52 Development Kit from Nordic Semiconductor\n\n\n\n\n\n\n\n\nThe Nordic nrf
 52 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 \nhere\n to get started.\n\n\n\n\nTutorial categories:\n\n\nThe tutorials fall into a few broad categories. Some examples in each category are listed below.\n\n\n\n\n\n\nMaking an LED blink (the \"Hello World\" equivalent in the electronics world)\n\n\n\n\nBlinky on Arduino Zero hardware\n\n\nBlinky on Olimex/STM32F407ZGT6 Cortex-M4 hardware\n\n\nBlinky on STM32F3 discovery kit from ST Micro\n\n\nBlinky on nRF52 Development Kit from Nordic Semiconductor\n \nNote:\n This supports BLE.\n\n\n\n\n\n\n\n\n\n\nTweaking available apps to customize behavior e.g. making a more exciting LED blink pattern\n\n\n\n\nPinwheel Blinky on STM32F3 discovery board\n\n\n\n\n\n\n\n\n\n\nNavigating the code and adding functionality  \n\n\n\n\nAdding more repositories t
 o your project\n\n\nAdding a unit test for a package\n\n\nAdding task to manage multiple events\n\n\n\n\n\n\n\n\n\n\n\n\nBluetooth Low Energy\n\n\nRunning the example BLE app included in the repo\n\n\nWorking with another example BLE app for a peripheral device\n\n\n\n\n\n\n\n\n\n\n\n\nUsing NewtMgr \n\n\nEnabling remote communication with a device running Mynewt OS\n\n\n\n\n\n\n\n\n\n\n\n\nAdditional network connectivity\n\n\nConnect Arduino to a Wi-Fi network\n\n\n\n\n\n\n\n\nSend us an email on the dev@ mailing list if you have comments or suggestions!\n If you haven't joined the mailing list, you will find the links \nhere\n.", 
+            "text": "Tutorials\n\n\nIf 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.\n\n\nThe 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.\n\n\n\n\nPrerequisites:\n\n\n\n\nYou have installed Docker container of Newt tool and toolchains or you have installed them natively on your machine\n\n\nYou 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 \nCreating Your First Project\n.\n\n\nYou have at least one of the supported development boards:\n\n\nSTM32F3 discovery kit from ST Micro\n\n\nArduino Zero hardware\n\n\nOlimex/STM32F407ZGT6 Cortex-M4 hardware\n\n\nnRF52 Development Kit from Nordic Semiconductor\n\n\n\n\n\n\n\n\nThe 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 \nhere\n to get started.\n\n\n\n\nTutorial categories:\n\n\nThe tutorials fall into a few broad categories. Some examples in each category are listed below.\n\n\n\n\n\n\nMaking an LED blink (the \"Hello World\" equivalent in the electronics world)\n\n\n\n\nBlinky on Arduino Zero hardware\n\n\nBlinky on Olimex/STM32F407ZGT6 Cortex-M4 hardware\n\n\nBlinky on STM32F3 discovery kit from ST Micro\n\n\nBlinky on nRF52 Development Kit from Nordic Semiconductor\n \nNote:\n This supports BLE.\n\n\n\n\n\n\n\n\n\n\nTweaking available apps to customize behavior e.g. making a more exciting LED blink pattern\n\n\n\n\nPinwheel Blinky on STM32F3 discovery board\n\n\n\n\n\n\n\n\n\n\nNavigating the code and adding functionality  \n\n\n\n\nAdding more repositories to 
 your project\n\n\nAdding a unit test for a package\n\n\nAdding task to manage multiple events\n\n\n\n\n\n\n\n\n\n\n\n\nBluetooth Low Energy\n\n\nRunning the example BLE app included in the repo\n\n\nWorking with another example BLE app for a peripheral device\n\n\n\n\n\n\n\n\n\n\n\n\nUsing NewtMgr\n\n\nEnabling remote communication with a device running Mynewt OS\n\n\n\n\n\n\n\n\n\n\n\n\nAdditional network connectivity\n\n\nConnect Arduino to a Wi-Fi network\n\n\n\n\n\n\n\n\nSend us an email on the dev@ mailing list if you have comments or suggestions!\n If you haven't joined the mailing list, you will find the links \nhere\n.", 
             "title": "toc"
         }, 
         {
             "location": "/os/tutorials/tutorials/#tutorials", 
-            "text": "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.   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.", 
+            "text": "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.  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.", 
             "title": "Tutorials"
         }, 
         {
             "location": "/os/tutorials/tutorials/#prerequisites", 
-            "text": "You have installed Docker container of Newt tool and toolchains or you have installed them natively on your machine  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  Creating Your First Project .  You have at least one of the supported development boards:   STM32F3 discovery kit from ST Micro  Arduino Zero hardware  Olimex/STM32F407ZGT6 Cortex-M4 hardware  nRF52 Development Kit from Nordic Semiconductor     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  here  to get started.", 
+            "text": "You have installed Docker container of Newt tool and toolchains or you have installed them natively on your machine  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  Creating Your First Project .  You have at least one of the supported development boards:  STM32F3 discovery kit from ST Micro  Arduino Zero hardware  Olimex/STM32F407ZGT6 Cortex-M4 hardware  nRF52 Development Kit from Nordic Semiconductor     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  here  to get started.", 
             "title": "Prerequisites:"
         }, 
         {
             "location": "/os/tutorials/tutorials/#tutorial-categories", 
-            "text": "The tutorials fall into a few broad categories. Some examples in each category are listed below.    Making an LED blink (the \"Hello World\" equivalent in the electronics world)   Blinky on Arduino Zero hardware  Blinky on Olimex/STM32F407ZGT6 Cortex-M4 hardware  Blinky on STM32F3 discovery kit from ST Micro  Blinky on nRF52 Development Kit from Nordic Semiconductor   Note:  This supports BLE.      Tweaking available apps to customize behavior e.g. making a more exciting LED blink pattern   Pinwheel Blinky on STM32F3 discovery board      Navigating the code and adding functionality     Adding more repositories to your project  Adding a unit test for a package  Adding task to manage multiple events       Bluetooth Low Energy  Running the example BLE app included in the repo  Working with another example BLE app for a peripheral device       Using NewtMgr   Enabling remote communication with a device running Mynewt OS       Additional network connectivity  Connect
  Arduino to a Wi-Fi network     Send us an email on the dev@ mailing list if you have comments or suggestions!  If you haven't joined the mailing list, you will find the links  here .", 
+            "text": "The tutorials fall into a few broad categories. Some examples in each category are listed below.    Making an LED blink (the \"Hello World\" equivalent in the electronics world)   Blinky on Arduino Zero hardware  Blinky on Olimex/STM32F407ZGT6 Cortex-M4 hardware  Blinky on STM32F3 discovery kit from ST Micro  Blinky on nRF52 Development Kit from Nordic Semiconductor   Note:  This supports BLE.      Tweaking available apps to customize behavior e.g. making a more exciting LED blink pattern   Pinwheel Blinky on STM32F3 discovery board      Navigating the code and adding functionality     Adding more repositories to your project  Adding a unit test for a package  Adding task to manage multiple events       Bluetooth Low Energy  Running the example BLE app included in the repo  Working with another example BLE app for a peripheral device       Using NewtMgr  Enabling remote communication with a device running Mynewt OS       Additional network connectivity  Connect 
 Arduino to a Wi-Fi network     Send us an email on the dev@ mailing list if you have comments or suggestions!  If you haven't joined the mailing list, you will find the links  here .", 
             "title": "Tutorial categories:"
         }, 
         {
             "location": "/os/tutorials/arduino_zero/", 
-            "text": "Blinky, your \"Hello World!\", on Arduino Zero\n\n\nLearn how to use packages from a default application repository of Mynewt to build your first \nHello World\n application (Blinky) on a target board. Once built using the \nnewt\n tool, this application will blink the LED lights on the target board.\n\n\nThis tutorial describes how to run Mynewt OS on Arduino Zero. Follow these simple steps and your board will be blinking in no time!\n\n\nPrerequisites\n\n\nBefore tackling this tutorial, it's best to read about Mynewt in the \nIntroduction\n section of this documentation.\n\n\nEquipment\n\n\nYou will need the following equipment\n\n\n\n\nAn Arduino Zero board.  NOTE: There are many flavors of Arduino. Ensure that \nyou have an Arduino Zero. See below for the versions of Arduino Zero that are\ncompatible with this tutorial\n\n\nA computer that can connect to the Arduino Zero over USB\n\n\nA USB cable (Type A to micro B) that can connect the computer to the Ardui
 no\n\n\nThe Mynewt Release\n\n\n\n\nThis tutorial has been tested on the following three Arduino Zero boards - Zero, M0 Pro, and Zero-Pro.\n\n\n\n\n\n\n\n\nMynewt has not been tested on Arduino M0 which has no internal debugger support.\n\n\nInstall Mynewt and Newt\n\n\n\n\nIf you have not already done so, install Newt as shown in the \nNewt install tutorial\n\n\nIf you have not already done so, create a project as shown in the Quick Start guide on how to \nCreate Your First Project\n. Skip the testing and building the project steps in that tutorial since you will be defining a target for your Arduino board in this tutorial.\n\n\n\n\n\n\nFetch External Packages\n\n\nMynewt uses source code provided directly from the chip manufacturer for \nlow level operations. Sometimes this code is licensed only for the specific manufacturer of the chipset and cannot live in the Apache Mynewt repository. That happens to be the case for the Arduino Zero board which uses Atmel SAMD21. Runtime's gith
 ub repository hosts such external third-party packages and the Newt tool can fetch them.\n\n\nTo fetch the package with MCU support for Atmel SAMD21 for Arduino Zero from the Runtime git repository, you need to add \nthe repository to the \nproject.yml\n file in your base project directory.\n\n\nHere is an example \nproject.yml\n file with the Arduino Zero repository\nadded. The sections with \nmynewt_arduino_zero\n that need to be added to \nyour project file are highlighted.\n\n\n$ more project.yml \nproject.name: \nmy_project\n\n\nproject.repositories:\n    - apache-mynewt-core\n\n    - mynewt_arduino_zero\n\n\nrepository.apache-mynewt-core:\n    type: github\n    vers: 0-latest\n    user: apache\n    repo: incubator-mynewt-core\n\n\nrepository.mynewt_arduino_zero:\n\n    type: github\n\n    vers: 0-latest\n\n    user: runtimeinc\n\n    repo: mynewt_arduino_zero\n\n$ \n\n\n\n\n\n\n\nOnce you've edited your \nproject.yml\n file, the next step is to install the \nproject dependenci
 es, this can be done with the \nnewt install\n command \n(to see more output, provide the \n-v\n verbose option.): \n\n\n$ newt install \napache-mynewt-core\nmynewt_arduino_zero\n$\n\n\n\n\n\n\n\nNOTE:\n If there has been a new release of a repo used in your project since you last installed it, the \n0-latest\n version for the repo in the \nproject.yml\n file will refer to the new release and will not match the installed files. In that case you will get an error message saying so and you will need to run \nnewt upgrade\n to overwrite the existing files with the latest codebase.\n\n\n\n\nCreate your bootloader target\n\n\nNext, you need to tell Newt what to build.  For the Arduino Zero, we are going to \ngenerate both a bootloader, and an image target.\n\n\nTo generate the bootloader target, you need to specify the following options. The output of the commands (indicating success) have been suppressed for easier readability. \n\n\n$ newt target create arduino_boot \n$ newt target set
  arduino_boot bsp=@mynewt_arduino_zero/hw/bsp/arduino_zero \n$ newt target set arduino_boot app=@apache-mynewt-core/apps/boot \n$ newt target set arduino_boot build_profile=optimized\n\n\n\n\n\n\n\nIf you have an Arduino Zero Pro or M0 Pro, you have to set the following next:\n\n\n$ newt target set arduino_boot features=arduino_zero_pro \n\n\n\n\n\nIf you have an Arduino Zero, you have to set the following instead:\n\n\n$ newt target set arduino_boot features=arduino_zero \n\n\n\n\n\n\n\nThese commands do a few things: \n\n\n\n\nCreate a target named \narduino_boot\n, in order to build the Arduino Zero Bootloader.\n\n\nSet the application for the \narduino_boot\n target to the default Apache Mynewt \n    bootloader (\n@apache-mynewt-core/apps/boot\n)\n\n\nSet the board support package for the target to \n    \n@mynewt_arduino_zero/hw/bsp/arduino_zero\n.  This is a reference to the downloaded \n    Arduino Zero support from Github.\n\n\nUse the \"optimized\" build profile for the \na
 rduino_boot\n target.  This\n    instructs Newt to generate smaller and more efficient code for this target.\n    This setting is necessary due to the bootloader's strict size constraints.\n\n\nTells the Board Support Package to enable support for the Arduino Zero Pro or the Arduino Zero. Set it to \narduino_zero\n or \narduino_zero_pro\n depending on the board you have.\n\n\n\n\n\n\nBuild your bootloader\n\n\nOnce you've configured the bootloader target, the next step is to build the bootloader for your Arduino. You can do this by using the \nnewt build\n command:\n\n\n$ newt build arduino_boot \nCompiling asprintf.c\nCompiling atoi.c\nCompiling atol.c\nCompiling atoll.c\nCompiling bsearch.c\nCompiling bzero.c\nCompiling calloc.c\nCompiling fgets.c\nCompiling inline.c\n\nsnip\n\nApp successfully built: myproject/bin/arduino_boot/apps/boot/boot.elf\n\n\n\n\n\nIf this command finishes successfully, you have successfully built the Arduino \nbootloader, and the next step is to build yo
 ur application for the Arduino \nboard.\n\n\n\n\nBuild your blinky app\n\n\nTo create and download your application, you create another target, this one pointing to the application you want to download to the Arduino board.  In this tutorial,  we will use the default application that comes with your project, \napps/blinky\n:\n\n\nNote\n: Remember to set features to \narduino_zero\n if your board is Arduino Zero and not a Pro!\n\n\n$ newt target create arduino_blinky \nTarget targets/arduino_blinky successfully created\n$ newt target set arduino_blinky app=apps/blinky \nTarget targets/arduino_blinky successfully set target.app to apps/blinky\n$ newt target set arduino_blinky bsp=@mynewt_arduino_zero/hw/bsp/arduino_zero\nTarget targets/arduino_blinky successfully set target.bsp to @mynewt_arduino_zero/hw/bsp/arduino_zero\n$ newt target set arduino_blinky build_profile=debug \nTarget targets/arduino_blinky successfully set target.build_profile to debug\n\n$ newt target set arduino_blin
 ky features=arduino_zero_pro \n\nTarget targets/arduino_blinky successfully set pkg.features to arduino_zero_pro\n$ \n\n\n\n\n\n\n\nYou can now build the target, with \nnewt build\n: \n\n\n$ newt build arduino_blinky \nCompiling main.c\nArchiving blinky.a\nCompiling cons_fmt.c\nCompiling cons_tty.c\nArchiving full.a\nCompiling case.c\nCompiling suite.c\nCompiling testutil.c\nArchiving testutil.a\n\nsnip\n\nApp successfully built: myproject/bin/arduino_blinky/apps/blinky/blinky.elf\n\n\n\n\n\n Congratulations! \n You have successfully built your application. Now it's time to load both the bootloader and application onto the target.\n\n\n\n\nConnect the Target\n\n\nConnect your computer to the Arduino Zero (from now on we'll call this the \ntarget) with the Micro-USB cable through the Programming Port as shown below. \nMynewt will download and debug the target through this port. You should see a \nlittle green LED come on. That means the board has power.\n\n\nNo external debugger is r
 equired.  The Arduino Zero comes with an internal\ndebugger that can be accessed by Mynewt.\n\n\nA image below shows the Arduino Zero Programming Port.\n\n\n\n\n\n\n\n\nDownload the Bootloader\n\n\nExecute the command to download the bootloader. \n\n\n    \n$\n \nnewt\n \nload\n \narduino_boot\n\n\n\n\n\n\nIf the newt tool finishes without error, that means the bootloader has been \nsuccessfully loaded onto the target.\n\n\n\n\n Reminder if you are using Docker: \n When working with actual hardware, remember that each board has an ID. If you swap boards and do not refresh the USB Device Filter on the VirtualBox UI, the ID might be stale and the Docker instance may not be able to see the board correctly. For example, you may see an error message like \nError: unable to find CMSIS-DAP device\n when you try to load or run an image on the board. In that case, you need to click on the USB link in VirtualBox UI, remove the existing USB Device Filter (e.g. \"Atmel Corp. EDBG CMSIS-DAP[0101
 ]\") by clicking on the \"Removes selected USB filter\" button, and add a new filter by clicking on the \"Adds new USB filter\" button.\n\n\n\n\nRun the Image\n\n\nNow that the bootloader is downloaded to the target, the next step is to load \nyour image onto the Arduino Zero.  The easiest way to do this, is to use the \n\nnewt run\n command.  \nnewt run\n will automatically rebuild your program\n(if necessary), create an image, and load it onto the target device.\n\n\nHere, we will load our \narduino_blinky\n target onto the device, and we \nshould see it run:\n\n\n$ newt run arduino_blinky 0.0.0 \nDebugging myproject/bin/arduino_blinky/apps/blinky/blinky.elf\nOpen On-Chip Debugger 0.9.0 (2015-09-23-21:46)\nLicensed under GNU GPL v2\nFor bug reports, read\n    http://openocd.org/doc/doxygen/bugs.html\nInfo : only one transport option; autoselect \nswd\n\nadapter speed: 500 kHz\nadapter_nsrst_delay: 100\ncortex_m reset_config sysresetreq\nInfo : CMSIS-DAP: SWD  Supported\nInfo : CMS
 IS-DAP: JTAG Supported\nInfo : CMSIS-DAP: Interface Initialised (SWD)\nInfo : CMSIS-DAP: FW Version = 01.1F.0118\nInfo : SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 1 TDO = 1 nTRST = 0 nRESET = 1\nInfo : CMSIS-DAP: Interface ready\nInfo : clock speed 500 kHz\nInfo : SWD IDCODE 0x0bc11477\nInfo : at91samd21g18.cpu: hardware has 4 breakpoints, 2 watchpoints\nGNU gdb (GNU Tools for ARM Embedded Processors) 7.8.0.20150604-cvs\nCopyright (C) 2014 Free Software Foundation, Inc.\nLicense GPLv3+: GNU GPL version 3 or later \nhttp://gnu.org/licenses/gpl.html\n\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.  Type \nshow copying\n\nand \nshow warranty\n for details.\nThis GDB was configured as \n--host=x86_64-apple-darwin10 --target=arm-none-eabi\n.\nType \nshow configuration\n for configuration details.\nFor bug reporting instructions, please see:\n\nhttp://www.gnu.org/software/gdb/bugs/\n.\nFind the GDB manual and other docume
 ntation resources online at:\n\nhttp://www.gnu.org/software/gdb/documentation/\n.\nFor help, type \nhelp\n.\nType \napropos word\n to search for commands related to \nword\n...\nReading symbols from myproject/bin/arduino_blinky/apps/blinky/blinky.elf...done.\ntarget state: halted\ntarget halted due to debug-request, current mode: Thread \nxPSR: 0x21000000 pc: 0x0000030e msp: 0x20008000\nInfo : accepting \ngdb\n connection on tcp/3333\nInfo : SAMD MCU: SAMD21G18A (256KB Flash, 32KB RAM)\n0x0000030e in ?? ()\n(gdb) r\nThe \nremote\n target does not support \nrun\n.  Try \nhelp target\n or \ncontinue\n.\n(gdb) c\nContinuing.\n\n\n\n\n\n\n\nNOTE:\n The 0.0.0 specified after the target name to \nnewt run\n is the version \nof the image to load.  If you are not providing remote upgrade, and are just \ndeveloping locally, you can provide 0.0.0 for every image version.\n\n\nIf you want the image to run without the debugger connected, simply quit the \ndebugger and restart the board.  The im
 age you programmed will come and run on the Arduino on next boot!  \n\n\n\n\nWatch the LED blink\n\n\nCongratulations! You have created a Mynewt operating system running on the \nArduino Zero. The LED right next to the power LED should be blinking. It is toggled by one task running on the Mynewt OS.   \n\n\nWe have more fun tutorials for you to get your hands dirty. Be bold and try other Blinky-like \ntutorials\n or try enabling additional functionality such as \nremote comms\n on the current board.\n\n\nIf you see anything missing or want to send us feedback, please do so by signing up for appropriate mailing lists on our \nCommunity Page\n.\n\n\nKeep on hacking and blinking!", 
+            "text": "Blinky, your \"Hello World!\", on Arduino Zero\n\n\nLearn how to use packages from a default application repository of Mynewt to build your first \nHello World\n application (Blinky) on a target board. Once built using the \nnewt\n tool, this application will blink the LED lights on the target board.\n\n\nThis tutorial describes how to run Mynewt OS on Arduino Zero. Follow these simple steps and your board will be blinking in no time!\n\n\nPrerequisites\n\n\nBefore tackling this tutorial, it's best to read about Mynewt in the \nIntroduction\n section of this documentation.\n\n\nEquipment\n\n\nYou will need the following equipment\n\n\n\n\nAn Arduino Zero board.  NOTE: There are many flavors of Arduino. Ensure that\nyou have an Arduino Zero. See below for the versions of Arduino Zero that are\ncompatible with this tutorial\n\n\nA computer that can connect to the Arduino Zero over USB\n\n\nA USB cable (Type A to micro B) that can connect the computer to the Arduin
 o\n\n\nThe Mynewt Release\n\n\n\n\nThis tutorial has been tested on the following three Arduino Zero boards - Zero, M0 Pro, and Zero-Pro.\n\n\n\n\n\n\n\n\nMynewt has not been tested on Arduino M0 which has no internal debugger support.\n\n\nInstall Mynewt and Newt\n\n\n\n\nIf you have not already done so, install Newt as shown in the \nNewt install tutorial\n\n\nIf you have not already done so, create a project as shown in the Quick Start guide on how to \nCreate Your First Project\n. Skip the testing and building the project steps in that tutorial since you will be defining a target for your Arduino board in this tutorial.\n\n\n\n\n\n\nFetch External Packages\n\n\nMynewt uses source code provided directly from the chip manufacturer for\nlow level operations. Sometimes this code is licensed only for the specific manufacturer of the chipset and cannot live in the Apache Mynewt repository. That happens to be the case for the Arduino Zero board which uses Atmel SAMD21. Runtime's github
  repository hosts such external third-party packages and the Newt tool can fetch them.\n\n\nTo fetch the package with MCU support for Atmel SAMD21 for Arduino Zero from the Runtime git repository, you need to add\nthe repository to the \nproject.yml\n file in your base project directory.\n\n\nHere is an example \nproject.yml\n file with the Arduino Zero repository\nadded. The sections with \nmynewt_arduino_zero\n that need to be added to\nyour project file are highlighted.\n\n\n$ more project.yml\nproject.name: \nmy_project\n\n\nproject.repositories:\n    - apache-mynewt-core\n\n    - mynewt_arduino_zero\n\n\nrepository.apache-mynewt-core:\n    type: github\n    vers: 0-latest\n    user: apache\n    repo: incubator-mynewt-core\n\n\nrepository.mynewt_arduino_zero:\n\n    type: github\n\n    vers: 0-latest\n\n    user: runtimeinc\n\n    repo: mynewt_arduino_zero\n\n$\n\n\n\n\n\n\n\nOnce you've edited your \nproject.yml\n file, the next step is to install the\nproject dependencies, thi
 s can be done with the \nnewt install\n command\n(to see more output, provide the \n-v\n verbose option.):\n\n\n$ newt install\napache-mynewt-core\nmynewt_arduino_zero\n$\n\n\n\n\n\n\n\nNOTE:\n If there has been a new release of a repo used in your project since you last installed it, the \n0-latest\n version for the repo in the \nproject.yml\n file will refer to the new release and will not match the installed files. In that case you will get an error message saying so and you will need to run \nnewt upgrade\n to overwrite the existing files with the latest codebase.\n\n\n\n\nCreate your bootloader target\n\n\nNext, you need to tell Newt what to build.  For the Arduino Zero, we are going to\ngenerate both a bootloader, and an image target.\n\n\nTo generate the bootloader target, you need to specify the following options. The output of the commands (indicating success) have been suppressed for easier readability.\n\n\n$ newt target create arduino_boot\n$ newt target set arduino_boot
  bsp=@mynewt_arduino_zero/hw/bsp/arduino_zero\n$ newt target set arduino_boot app=@apache-mynewt-core/apps/boot\n$ newt target set arduino_boot build_profile=optimized\n\n\n\n\n\n\n\nIf you have an Arduino Zero Pro or M0 Pro, you have to set the following next:\n\n\n$ newt target set arduino_boot features=arduino_zero_pro\n\n\n\n\n\nIf you have an Arduino Zero, you have to set the following instead:\n\n\n$ newt target set arduino_boot features=arduino_zero\n\n\n\n\n\n\n\nThese commands do a few things:\n\n\n\n\nCreate a target named \narduino_boot\n, in order to build the Arduino Zero Bootloader.\n\n\nSet the application for the \narduino_boot\n target to the default Apache Mynewt\n    bootloader (\n@apache-mynewt-core/apps/boot\n)\n\n\nSet the board support package for the target to\n    \n@mynewt_arduino_zero/hw/bsp/arduino_zero\n.  This is a reference to the downloaded\n    Arduino Zero support from Github.\n\n\nUse the \"optimized\" build profile for the \narduino_boot\n target.
   This\n    instructs Newt to generate smaller and more efficient code for this target.\n    This setting is necessary due to the bootloader's strict size constraints.\n\n\nTells the Board Support Package to enable support for the Arduino Zero Pro or the Arduino Zero. Set it to \narduino_zero\n or \narduino_zero_pro\n depending on the board you have.\n\n\n\n\n\n\nBuild your bootloader\n\n\nOnce you've configured the bootloader target, the next step is to build the bootloader for your Arduino. You can do this by using the \nnewt build\n command:\n\n\n$ newt build arduino_boot\nCompiling asprintf.c\nCompiling atoi.c\nCompiling atol.c\nCompiling atoll.c\nCompiling bsearch.c\nCompiling bzero.c\nCompiling calloc.c\nCompiling fgets.c\nCompiling inline.c\n\nsnip\n\nApp successfully built: myproject/bin/arduino_boot/apps/boot/boot.elf\n\n\n\n\n\nIf this command finishes successfully, you have successfully built the Arduino\nbootloader, and the next step is to build your application for the 
 Arduino\nboard.\n\n\n\n\nBuild your blinky app\n\n\nTo create and download your application, you create another target, this one pointing to the application you want to download to the Arduino board.  In this tutorial,  we will use the default application that comes with your project, \napps/blinky\n:\n\n\nNote\n: Remember to set features to \narduino_zero\n if your board is Arduino Zero and not a Pro!\n\n\n$ newt target create arduino_blinky\nTarget targets/arduino_blinky successfully created\n$ newt target set arduino_blinky app=apps/blinky\nTarget targets/arduino_blinky successfully set target.app to apps/blinky\n$ newt target set arduino_blinky bsp=@mynewt_arduino_zero/hw/bsp/arduino_zero\nTarget targets/arduino_blinky successfully set target.bsp to @mynewt_arduino_zero/hw/bsp/arduino_zero\n$ newt target set arduino_blinky build_profile=debug\nTarget targets/arduino_blinky successfully set target.build_profile to debug\n\n$ newt target set arduino_blinky features=arduino_zero_pr
 o\n\nTarget targets/arduino_blinky successfully set pkg.features to arduino_zero_pro\n$\n\n\n\n\n\n\n\nYou can now build the target, with \nnewt build\n:\n\n\n$ newt build arduino_blinky\nCompiling main.c\nArchiving blinky.a\nCompiling cons_fmt.c\nCompiling cons_tty.c\nArchiving full.a\nCompiling case.c\nCompiling suite.c\nCompiling testutil.c\nArchiving testutil.a\n\nsnip\n\nApp successfully built: myproject/bin/arduino_blinky/apps/blinky/blinky.elf\n\n\n\n\n\n Congratulations! \n You have successfully built your application. Now it's time to load both the bootloader and application onto the target.\n\n\n\n\nConnect the Target\n\n\nConnect your computer to the Arduino Zero (from now on we'll call this the\ntarget) with the Micro-USB cable through the Programming Port as shown below.\nMynewt will download and debug the target through this port. You should see a\nlittle green LED come on. That means the board has power.\n\n\nNo external debugger is required.  The Arduino Zero comes w
 ith an internal\ndebugger that can be accessed by Mynewt.\n\n\nA image below shows the Arduino Zero Programming Port.\n\n\n\n\n\n\n\n\nDownload the Bootloader\n\n\nExecute the command to download the bootloader.\n\n\n    \n$\n \nnewt\n \nload\n \narduino_boot\n\n\n\n\n\n\nIf the newt tool finishes without error, that means the bootloader has been\nsuccessfully loaded onto the target.\n\n\n\n\n Reminder if you are using Docker: \n When working with actual hardware, remember that each board has an ID. If you swap boards and do not refresh the USB Device Filter on the VirtualBox UI, the ID might be stale and the Docker instance may not be able to see the board correctly. For example, you may see an error message like \nError: unable to find CMSIS-DAP device\n when you try to load or run an image on the board. In that case, you need to click on the USB link in VirtualBox UI, remove the existing USB Device Filter (e.g. \"Atmel Corp. EDBG CMSIS-DAP[0101]\") by clicking on the \"Removes se
 lected USB filter\" button, and add a new filter by clicking on the \"Adds new USB filter\" button.\n\n\n\n\nRun the Image\n\n\nNow that the bootloader is downloaded to the target, the next step is to load\nyour image onto the Arduino Zero.  The easiest way to do this, is to use the\n\nnewt run\n command.  \nnewt run\n will automatically rebuild your program\n(if necessary), create an image, and load it onto the target device.\n\n\nHere, we will load our \narduino_blinky\n target onto the device, and we\nshould see it run:\n\n\n$ newt run arduino_blinky 0.0.0\nDebugging myproject/bin/arduino_blinky/apps/blinky/blinky.elf\nOpen On-Chip Debugger 0.9.0 (2015-09-23-21:46)\nLicensed under GNU GPL v2\nFor bug reports, read\n    http://openocd.org/doc/doxygen/bugs.html\nInfo : only one transport option; autoselect \nswd\n\nadapter speed: 500 kHz\nadapter_nsrst_delay: 100\ncortex_m reset_config sysresetreq\nInfo : CMSIS-DAP: SWD  Supported\nInfo : CMSIS-DAP: JTAG Supported\nInfo : CMSIS-DAP
 : Interface Initialised (SWD)\nInfo : CMSIS-DAP: FW Version = 01.1F.0118\nInfo : SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 1 TDO = 1 nTRST = 0 nRESET = 1\nInfo : CMSIS-DAP: Interface ready\nInfo : clock speed 500 kHz\nInfo : SWD IDCODE 0x0bc11477\nInfo : at91samd21g18.cpu: hardware has 4 breakpoints, 2 watchpoints\nGNU gdb (GNU Tools for ARM Embedded Processors) 7.8.0.20150604-cvs\nCopyright (C) 2014 Free Software Foundation, Inc.\nLicense GPLv3+: GNU GPL version 3 or later \nhttp://gnu.org/licenses/gpl.html\n\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.  Type \nshow copying\n\nand \nshow warranty\n for details.\nThis GDB was configured as \n--host=x86_64-apple-darwin10 --target=arm-none-eabi\n.\nType \nshow configuration\n for configuration details.\nFor bug reporting instructions, please see:\n\nhttp://www.gnu.org/software/gdb/bugs/\n.\nFind the GDB manual and other documentation resources online at:\n\nhttp://w
 ww.gnu.org/software/gdb/documentation/\n.\nFor help, type \nhelp\n.\nType \napropos word\n to search for commands related to \nword\n...\nReading symbols from myproject/bin/arduino_blinky/apps/blinky/blinky.elf...done.\ntarget state: halted\ntarget halted due to debug-request, current mode: Thread\nxPSR: 0x21000000 pc: 0x0000030e msp: 0x20008000\nInfo : accepting \ngdb\n connection on tcp/3333\nInfo : SAMD MCU: SAMD21G18A (256KB Flash, 32KB RAM)\n0x0000030e in ?? ()\n(gdb) r\nThe \nremote\n target does not support \nrun\n.  Try \nhelp target\n or \ncontinue\n.\n(gdb) c\nContinuing.\n\n\n\n\n\n\n\nNOTE:\n The 0.0.0 specified after the target name to \nnewt run\n is the version\nof the image to load.  If you are not providing remote upgrade, and are just\ndeveloping locally, you can provide 0.0.0 for every image version.\n\n\nIf you want the image to run without the debugger connected, simply quit the\ndebugger and restart the board.  The image you programmed will come and run on the 
 Arduino on next boot!  \n\n\n\n\nWatch the LED blink\n\n\nCongratulations! You have created a Mynewt operating system running on the\nArduino Zero. The LED right next to the power LED should be blinking. It is toggled by one task running on the Mynewt OS.   \n\n\nWe have more fun tutorials for you to get your hands dirty. Be bold and try other Blinky-like \ntutorials\n or try enabling additional functionality such as \nremote comms\n on the current board.\n\n\nIf you see anything missing or want to send us feedback, please do so by signing up for appropriate mailing lists on our \nCommunity Page\n.\n\n\nKeep on hacking and blinking!", 
             "title": "Blinky on Arduino Zero"
         }, 
         {
@@ -442,7 +452,7 @@
         }, 
         {
             "location": "/os/tutorials/arduino_zero/#equipment", 
-            "text": "You will need the following equipment   An Arduino Zero board.  NOTE: There are many flavors of Arduino. Ensure that \nyou have an Arduino Zero. See below for the versions of Arduino Zero that are\ncompatible with this tutorial  A computer that can connect to the Arduino Zero over USB  A USB cable (Type A to micro B) that can connect the computer to the Arduino  The Mynewt Release   This tutorial has been tested on the following three Arduino Zero boards - Zero, M0 Pro, and Zero-Pro.     Mynewt has not been tested on Arduino M0 which has no internal debugger support.", 
+            "text": "You will need the following equipment   An Arduino Zero board.  NOTE: There are many flavors of Arduino. Ensure that\nyou have an Arduino Zero. See below for the versions of Arduino Zero that are\ncompatible with this tutorial  A computer that can connect to the Arduino Zero over USB  A USB cable (Type A to micro B) that can connect the computer to the Arduino  The Mynewt Release   This tutorial has been tested on the following three Arduino Zero boards - Zero, M0 Pro, and Zero-Pro.     Mynewt has not been tested on Arduino M0 which has no internal debugger support.", 
             "title": "Equipment"
         }, 
         {
@@ -452,42 +462,42 @@
         }, 
         {
             "location": "/os/tutorials/arduino_zero/#fetch-external-packages", 
-            "text": "Mynewt uses source code provided directly from the chip manufacturer for \nlow level operations. Sometimes this code is licensed only for the specific manufacturer of the chipset and cannot live in the Apache Mynewt repository. That happens to be the case for the Arduino Zero board which uses Atmel SAMD21. Runtime's github repository hosts such external third-party packages and the Newt tool can fetch them.  To fetch the package with MCU support for Atmel SAMD21 for Arduino Zero from the Runtime git repository, you need to add \nthe repository to the  project.yml  file in your base project directory.  Here is an example  project.yml  file with the Arduino Zero repository\nadded. The sections with  mynewt_arduino_zero  that need to be added to \nyour project file are highlighted.  $ more project.yml \nproject.name:  my_project \n\nproject.repositories:\n    - apache-mynewt-core     - mynewt_arduino_zero \nrepository.apache-mynewt-core:\n    type: github\n    vers
 : 0-latest\n    user: apache\n    repo: incubator-mynewt-core repository.mynewt_arduino_zero:     type: github     vers: 0-latest     user: runtimeinc     repo: mynewt_arduino_zero $    Once you've edited your  project.yml  file, the next step is to install the \nproject dependencies, this can be done with the  newt install  command \n(to see more output, provide the  -v  verbose option.):   $ newt install \napache-mynewt-core\nmynewt_arduino_zero\n$   NOTE:  If there has been a new release of a repo used in your project since you last installed it, the  0-latest  version for the repo in the  project.yml  file will refer to the new release and will not match the installed files. In that case you will get an error message saying so and you will need to run  newt upgrade  to overwrite the existing files with the latest codebase.", 
+            "text": "Mynewt uses source code provided directly from the chip manufacturer for\nlow level operations. Sometimes this code is licensed only for the specific manufacturer of the chipset and cannot live in the Apache Mynewt repository. That happens to be the case for the Arduino Zero board which uses Atmel SAMD21. Runtime's github repository hosts such external third-party packages and the Newt tool can fetch them.  To fetch the package with MCU support for Atmel SAMD21 for Arduino Zero from the Runtime git repository, you need to add\nthe repository to the  project.yml  file in your base project directory.  Here is an example  project.yml  file with the Arduino Zero repository\nadded. The sections with  mynewt_arduino_zero  that need to be added to\nyour project file are highlighted.  $ more project.yml\nproject.name:  my_project \n\nproject.repositories:\n    - apache-mynewt-core     - mynewt_arduino_zero \nrepository.apache-mynewt-core:\n    type: github\n    vers: 0-
 latest\n    user: apache\n    repo: incubator-mynewt-core repository.mynewt_arduino_zero:     type: github     vers: 0-latest     user: runtimeinc     repo: mynewt_arduino_zero $   Once you've edited your  project.yml  file, the next step is to install the\nproject dependencies, this can be done with the  newt install  command\n(to see more output, provide the  -v  verbose option.):  $ newt install\napache-mynewt-core\nmynewt_arduino_zero\n$   NOTE:  If there has been a new release of a repo used in your project since you last installed it, the  0-latest  version for the repo in the  project.yml  file will refer to the new release and will not match the installed files. In that case you will get an error message saying so and you will need to run  newt upgrade  to overwrite the existing files with the latest codebase.", 
             "title": "Fetch External Packages"
         }, 
         {
             "location": "/os/tutorials/arduino_zero/#create-your-bootloader-target", 
-            "text": "Next, you need to tell Newt what to build.  For the Arduino Zero, we are going to \ngenerate both a bootloader, and an image target.  To generate the bootloader target, you need to specify the following options. The output of the commands (indicating success) have been suppressed for easier readability.   $ newt target create arduino_boot \n$ newt target set arduino_boot bsp=@mynewt_arduino_zero/hw/bsp/arduino_zero \n$ newt target set arduino_boot app=@apache-mynewt-core/apps/boot \n$ newt target set arduino_boot build_profile=optimized   If you have an Arduino Zero Pro or M0 Pro, you have to set the following next:  $ newt target set arduino_boot features=arduino_zero_pro   If you have an Arduino Zero, you have to set the following instead:  $ newt target set arduino_boot features=arduino_zero    These commands do a few things:    Create a target named  arduino_boot , in order to build the Arduino Zero Bootloader.  Set the application for the  arduino_boot  tar
 get to the default Apache Mynewt \n    bootloader ( @apache-mynewt-core/apps/boot )  Set the board support package for the target to \n     @mynewt_arduino_zero/hw/bsp/arduino_zero .  This is a reference to the downloaded \n    Arduino Zero support from Github.  Use the \"optimized\" build profile for the  arduino_boot  target.  This\n    instructs Newt to generate smaller and more efficient code for this target.\n    This setting is necessary due to the bootloader's strict size constraints.  Tells the Board Support Package to enable support for the Arduino Zero Pro or the Arduino Zero. Set it to  arduino_zero  or  arduino_zero_pro  depending on the board you have.", 
+            "text": "Next, you need to tell Newt what to build.  For the Arduino Zero, we are going to\ngenerate both a bootloader, and an image target.  To generate the bootloader target, you need to specify the following options. The output of the commands (indicating success) have been suppressed for easier readability.  $ newt target create arduino_boot\n$ newt target set arduino_boot bsp=@mynewt_arduino_zero/hw/bsp/arduino_zero\n$ newt target set arduino_boot app=@apache-mynewt-core/apps/boot\n$ newt target set arduino_boot build_profile=optimized   If you have an Arduino Zero Pro or M0 Pro, you have to set the following next:  $ newt target set arduino_boot features=arduino_zero_pro  If you have an Arduino Zero, you have to set the following instead:  $ newt target set arduino_boot features=arduino_zero   These commands do a few things:   Create a target named  arduino_boot , in order to build the Arduino Zero Bootloader.  Set the application for the  arduino_boot  target to t
 he default Apache Mynewt\n    bootloader ( @apache-mynewt-core/apps/boot )  Set the board support package for the target to\n     @mynewt_arduino_zero/hw/bsp/arduino_zero .  This is a reference to the downloaded\n    Arduino Zero support from Github.  Use the \"optimized\" build profile for the  arduino_boot  target.  This\n    instructs Newt to generate smaller and more efficient code for this target.\n    This setting is necessary due to the bootloader's strict size constraints.  Tells the Board Support Package to enable support for the Arduino Zero Pro or the Arduino Zero. Set it to  arduino_zero  or  arduino_zero_pro  depending on the board you have.", 
             "title": "Create your bootloader target"
         }, 
         {
             "location": "/os/tutorials/arduino_zero/#build-your-bootloader", 
-            "text": "Once you've configured the bootloader target, the next step is to build the bootloader for your Arduino. You can do this by using the  newt build  command:  $ newt build arduino_boot \nCompiling asprintf.c\nCompiling atoi.c\nCompiling atol.c\nCompiling atoll.c\nCompiling bsearch.c\nCompiling bzero.c\nCompiling calloc.c\nCompiling fgets.c\nCompiling inline.c snip \nApp successfully built: myproject/bin/arduino_boot/apps/boot/boot.elf  If this command finishes successfully, you have successfully built the Arduino \nbootloader, and the next step is to build your application for the Arduino \nboard.", 
+            "text": "Once you've configured the bootloader target, the next step is to build the bootloader for your Arduino. You can do this by using the  newt build  command:  $ newt build arduino_boot\nCompiling asprintf.c\nCompiling atoi.c\nCompiling atol.c\nCompiling atoll.c\nCompiling bsearch.c\nCompiling bzero.c\nCompiling calloc.c\nCompiling fgets.c\nCompiling inline.c snip \nApp successfully built: myproject/bin/arduino_boot/apps/boot/boot.elf  If this command finishes successfully, you have successfully built the Arduino\nbootloader, and the next step is to build your application for the Arduino\nboard.", 
             "title": "Build your bootloader"
         }, 
         {
             "location": "/os/tutorials/arduino_zero/#build-your-blinky-app", 
-            "text": "To create and download your application, you create another target, this one pointing to the application you want to download to the Arduino board.  In this tutorial,  we will use the default application that comes with your project,  apps/blinky :  Note : Remember to set features to  arduino_zero  if your board is Arduino Zero and not a Pro!  $ newt target create arduino_blinky \nTarget targets/arduino_blinky successfully created\n$ newt target set arduino_blinky app=apps/blinky \nTarget targets/arduino_blinky successfully set target.app to apps/blinky\n$ newt target set arduino_blinky bsp=@mynewt_arduino_zero/hw/bsp/arduino_zero\nTarget targets/arduino_blinky successfully set target.bsp to @mynewt_arduino_zero/hw/bsp/arduino_zero\n$ newt target set arduino_blinky build_profile=debug \nTarget targets/arduino_blinky successfully set target.build_profile to debug $ newt target set arduino_blinky features=arduino_zero_pro  Target targets/arduino_blinky successfull
 y set pkg.features to arduino_zero_pro\n$    You can now build the target, with  newt build :   $ newt build arduino_blinky \nCompiling main.c\nArchiving blinky.a\nCompiling cons_fmt.c\nCompiling cons_tty.c\nArchiving full.a\nCompiling case.c\nCompiling suite.c\nCompiling testutil.c\nArchiving testutil.a snip \nApp successfully built: myproject/bin/arduino_blinky/apps/blinky/blinky.elf   Congratulations!   You have successfully built your application. Now it's time to load both the bootloader and application onto the target.", 
+            "text": "To create and download your application, you create another target, this one pointing to the application you want to download to the Arduino board.  In this tutorial,  we will use the default application that comes with your project,  apps/blinky :  Note : Remember to set features to  arduino_zero  if your board is Arduino Zero and not a Pro!  $ newt target create arduino_blinky\nTarget targets/ard

<TRUNCATED>