Adafruit Feather nRF52 Pro for Apache Mynewt

Originalartikel

Backup

<html> <div class=„breadcrumbs hidden“> <div class=„container“> <h2><a href=„https://blog.adafruit.com“>BLOG</a></h2> </div> </div> <div class=„container post-container“> <div class=„row post-row“ style=„margin-top: 2px“> <div class=„col-md-8 post-307315 post type-post status-publish format-standard has-post-thumbnail hentry category-armdevelopment category-bluetooth category-feather tag-bluetooth-low-energy tag-mynewt tag-nrf52“ id=„post-307315“> <div class=„post-caption“> <h3>August 18, 2017 AT 5:22 pm</h3> <h2 class=„storytitle“>Adafruit Feather nRF52 Pro for Apache Mynewt</h2> </div> <p><img class=„img-responsive“ src=„https://cdn-blog.adafruit.com/uploads/2017/08/mynewtmerged-600x319.jpg“ alt=„“ srcset=„https://cdn-blog.adafruit.com/uploads/2017/08/mynewtmerged-600x319.jpg 600w, https://cdn-blog.adafruit.com/uploads/2017/08/mynewtmerged-150x80.jpg 150w, https://cdn-blog.adafruit.com/uploads/2017/08/mynewtmerged-300x159.jpg 300w, https://cdn-blog.adafruit.com/uploads/2017/08/mynewtmerged-768x408.jpg 768w, https://cdn-blog.adafruit.com/uploads/2017/08/mynewtmerged-823x437.jpg 823w“ sizes=„(max-width: 600px) 100vw, 600px“/></p> <p>At Adafruit, we love open source projects and try to make our own contributions to the larger open source community as often as we can. As such, we&#8217;re really excited to offer the <a href=„https://www.adafruit.com/product/3574“>Adafruit Feather nRF52 Pro for Mynewt</a>. Despite being a very crowded (and generally unexciting) field, we were really happy to come across <a href=„https://mynewt.apache.org/“>Apache Mynewt</a>, a 100% open source and commercial friendly embedded operating system aimed (unsurprisingly) at IoT. We know and trust the Apache Software Foundation, but above all we were extremely impressed with the overall quality and ease of use of Mynewt (and we&#8217;ve worked with enough dodgy RTOSes and platforms in house to know a good thing when we see it!).</p> <p>Mynewt includes an entirely open source Apache licensed Bluetooth 5.0 stack, removing the need to run Nordic&#8217;s (good) but proprietary stack and black box SoftDevice. That in itself is liberating since you now have full control over every clock cycle and line of code in your system, but that&#8217;s not all. Mynewt is one of the best embedded operating systems we&#8217;ve ever used, and it&#8217;s clear when you start to use it that it&#8217;s written by people who are working in the real world, on real device deployments, with real remote field debugging nightmares behind them.</p> <p>The command-line toolset is surprisingly easy to use, but more importantly the system itself integrates a number of often overlooked features like built in unit tests, full SW simulation of HW, the ability to cryptographically sign firmware images, over the air (OTA) firmware updates, internal statistics modules to track device state over time and perform non-intrusive debugging of complex multi-tasks systems, and generally excellent code everywhere you look.</p> <p>While the board and OS is aimed more at commercial and professional development, if you want to set the bar high on your next product or project and start with a system that will see you through to full commercial deployment, it&#8217;s worth the time to give Apache Mynewt a serious look.</p> <p>So what makes the &#8216;Pro&#8217; variant different than the Arduino edition? The fundamental schematic is the same as the <a href=„https://www.adafruit.com/product/3406“>Arduino variant</a>, but on the Pro version:</p> <ul><li>The SWD debug header is populated on this board to enable easier debugging with a <a href=„https://www.adafruit.com/product/3571“>Segger J-Link</a> or similar debugger</li> <li>The board ships with a serial version of the Mynewt bootloader pre-flashed (it won&#8217;t work with the Arduino IDE which requires a different bootloader!)</li> <li>There is an additional &#8216;DFU&#8217; TACT switch used to enable OTA firmware update mode, which can also be used as a user feedback option in your own apps</li> </ul><p>You can pick up an <a href=„https://www.adafruit.com/product/3574“>Adafruit Feather nRF52 Pro for Mynewt</a> in the shop today, and have a look at our initial <a href=„https://learn.adafruit.com/adafruit-nrf52-pro-feather“>Learning Guide</a>, which will help you get started with this excellent 100% open source development platform! Let us know in the forums if you do something interesting with it!</p> <div class=„ctx-autosidebar-container“/> <div class=„ctx-subscribe-container ctx-personalization-container ctx_default_placement ctx-clearfix“/><div class=„ctx-social-container ctx_default_placement ctx-clearfix“/><div class=„ctx-module-container ctx_default_placement ctx-clearfix“/> <hr/><div class=„af-blog-adv“> <p><a href=„https://www.youtube.com/playlist?list=PLjF7R1fz_OOXWHQhEVEI5Jqf18TQRr5Hu“>Check out all the Circuit Playground Episodes!</a> Our new kid&#8217;s show and <a href=„http://adafru.it/subscribe“>subscribe!</a></p> <p>Have an amazing project to share? Join the SHOW-AND-TELL every <a href=„https://plus.google.com/u/0/b/112526208786662512291/112526208786662512291/posts“ title=„SHOW AND TELL“ target=„_blank“>Wednesday night at 7:30pm ET on Google+ Hangouts.</a></p> <p>Join us every Wednesday night at 8pm ET for <a href=„http://www.adafruit.com/ask“ title=„ASK AN ENGINEER“ target=„_blank“>Ask an Engineer!</a></p> <p>Learn resistor values with <a href=„https://itunes.apple.com/us/app/mhos-resistance/id785181044?mt=8“ title=„Mho's Resistance“ target=„_blank“>Mho&#8217;s Resistance</a> or get <a href=„https://itunes.apple.com/us/app/circuit-playground/id492487671?mt=8“ title=„Circuit Playground“ target=„_blank“>the best electronics calculator for engineers &#8220;Circuit Playground&#8221;</a> &#8211; <a href=„https://itunes.apple.com/us/artist/adafruit-industries/id492487674“ title=„Adafruit's Apps!“ target=„_blank“>Adafruit&#8217;s Apps!</a></p> </div><hr/><div class=„af-blog-adv“><p><a href=„https://www.adafruitdaily.com/“>Maker Business</a> &#8212; How Authority and Decision-Making Differ Across Cultures</p><p><a href=„https://www.adafruitdaily.com/“>Wearables</a> &#8212; Perform operation</p><p><a href=„https://www.adafruitdaily.com/“>Electronics</a> &#8212; Soldering Pointer!</p><p><a href=„https://www.adafruitdaily.com/“>Biohacking</a> &#8212; Stretchable EEG Temporary Tattoos</p></div><div class=„af-blog-adv“ style=„font-size: 13px; margin-top: 10px“>Get the only spam-free daily newsletter about wearables, running a „maker business“, electronic tips and more! Subscribe at <a href=„https://www.adafruitdaily.com/“>AdafruitDaily.com</a> !</div> <hr/><div class=„ctx-module-container ctx_shortcode_placement ctx-clearfix“/> <hr/> <p>No comments yet.</p> <hr/><h2 id=„postcomment“>Leave a comment</h2> <p> Adafruit has a „be excellent to each other“ comment policy. Help us keep the community here positive and helpful. Stick to the topic, be respectful of makers of all ages and skill levels. Be kind, and don't spam - Thank you! </p> <form action=„https://blog.adafruit.com/wp-comments-post.php“ method=„post“ id=„commentform“> <div class=„form-group container“> <label for=„author“>Name (required)</label> <div class=„row“> <input class=„col-sm-6 col-xs-12“ type=„text“ name=„author“ id=„author“ value=„“ tabindex=„1“/></div> </div> <div class=„form-group container“> <label for=„email“>Mail (will not be published) (required)</label> <div class=„row“> <input class=„col-sm-6 col-xs-12“ type=„text“ name=„email“ id=„email“ value=„“ size=„22“ tabindex=„2“/></div> </div> <div class=„form-group container“> <label for=„url“>Website</label> <div class=„row“> <input class=„col-sm-6 col-xs-12“ type=„text“ name=„url“ id=„url“ value=„“ size=„22“ tabindex=„3“/></div> </div>

<div class=„container“> <div class=„row“> <textarea class=„col-sm-6 col-xs-12“ name=„comment“ id=„comment“ rows=„10“ cols=„35“ tabindex=„4“/></div> </div> <p><input name=„submit“ type=„submit“ id=„submit“ tabindex=„5“ value=„Submit Comment“/><input type=„hidden“ name=„comment_post_ID“ value=„307315“/></p> <p style=„display: none;“><input type=„hidden“ id=„akismet_comment_nonce“ name=„akismet_comment_nonce“ value=„861875e15b“/></p>

<div id=„cResist“> <div id=„resistorError“ style=„font-size: 14px; font-weight: bold; color: #FF0000;“/> <div class=„fullWidth“><h2>Prove you are human by reading this resistor:</h2></div> <div class=„resistorInterface“> <div class=„fullWidth resistorInputContainer“> <div class=„resistorInput“> <div id=„totalResistance“>0&#8486;+/- 5%</div> <input type=„hidden“ name=„ohms“ id=„ohms“ value=„“/><input type=„hidden“ name=„perc“ id=„perc“ value=„5“/><img id=„resistorImagePNG“ src=„https://blog.adafruit.com/wp-content/plugins/Resist/resistorImage.php“/><img id=„resistorFacePNG“ src=„https://blog.adafruit.com/wp-content/plugins/Resist/mho-face.png“/><div id=„allSliders“> <div class=„formWrapper“> <input type=„hidden“ id=„resist1“ name=„resist1“ value=„0“/><div class=„rulerAlignGuide“/> <br/><div class=„sliderWrapper rounded“ id=„sliderresist1Wrapper“> <div class=„slider“ id=„sliderresist1“ onselectstart=„return false“ style=„background-color: #000000;“>0 </div> <div class=„rulerColor“ id=„rulerColorsliderresist1_0“ style=„background-color: #000000; height: 20px; line-height: 20px;“ onselectstart=„return false“> 0 </div> <div class=„rulerColor“ id=„rulerColorsliderresist1_1“ style=„background-color: #643200; height: 20px; line-height: 20px;“ onselectstart=„return false“> 1 </div> <div class=„rulerColor“ id=„rulerColorsliderresist1_2“ style=„background-color: #FF0000; height: 20px; line-height: 20px;“ onselectstart=„return false“> 2 </div> <div class=„rulerColor“ id=„rulerColorsliderresist1_3“ style=„background-color: #FF9600; height: 20px; line-height: 20px;“ onselectstart=„return false“> 3 </div> <div class=„rulerColor“ id=„rulerColorsliderresist1_4“ style=„background-color: #FFFF00; height: 20px; line-height: 20px;“ onselectstart=„return false“> 4 </div> <div class=„rulerColor“ id=„rulerColorsliderresist1_5“ style=„background-color: #00FF00; height: 20px; line-height: 20px;“ onselectstart=„return false“> 5 </div> <div class=„rulerColor“ id=„rulerColorsliderresist1_6“ style=„background-color: #0000FF; height: 20px; line-height: 20px;“ onselectstart=„return false“> 6 </div> <div class=„rulerColor“ id=„rulerColorsliderresist1_7“ style=„background-color: #FF00FF; height: 20px; line-height: 20px;“ onselectstart=„return false“> 7 </div> <div class=„rulerColor“ id=„rulerColorsliderresist1_8“ style=„background-color: #646464; height: 20px; line-height: 20px;“ onselectstart=„return false“> 8 </div> <div class=„rulerColor“ id=„rulerColorsliderresist1_9“ style=„background-color: #FFFFFF; color: #000000; border: 1px solid #dfdfdf; height: 20px; line-height: 20px;“ onselectstart=„return false“> 9 </div> </div> </div> <div class=„formWrapper“> <input type=„hidden“ id=„resist2“ name=„resist2“ value=„0“/><div class=„rulerAlignGuide“/> <br/><div class=„sliderWrapper rounded“ id=„sliderresist2Wrapper“> <div class=„slider“ id=„sliderresist2“ onselectstart=„return false“ style=„background-color: #000000;“>0 </div> <div class=„rulerColor“ id=„rulerColorsliderresist2_0“ style=„background-color: #000000; height: 20px; line-height: 20px;“ onselectstart=„return false“> 0 </div> <div class=„rulerColor“ id=„rulerColorsliderresist2_1“ style=„background-color: #643200; height: 20px; line-height: 20px;“ onselectstart=„return false“> 1 </div> <div class=„rulerColor“ id=„rulerColorsliderresist2_2“ style=„background-color: #FF0000; height: 20px; line-height: 20px;“ onselectstart=„return false“> 2 </div> <div class=„rulerColor“ id=„rulerColorsliderresist2_3“ style=„background-color: #FF9600; height: 20px; line-height: 20px;“ onselectstart=„return false“> 3 </div> <div class=„rulerColor“ id=„rulerColorsliderresist2_4“ style=„background-color: #FFFF00; height: 20px; line-height: 20px;“ onselectstart=„return false“> 4 </div> <div class=„rulerColor“ id=„rulerColorsliderresist2_5“ style=„background-color: #00FF00; height: 20px; line-height: 20px;“ onselectstart=„return false“> 5 </div> <div class=„rulerColor“ id=„rulerColorsliderresist2_6“ style=„background-color: #0000FF; height: 20px; line-height: 20px;“ onselectstart=„return false“> 6 </div> <div class=„rulerColor“ id=„rulerColorsliderresist2_7“ style=„background-color: #FF00FF; height: 20px; line-height: 20px;“ onselectstart=„return false“> 7 </div> <div class=„rulerColor“ id=„rulerColorsliderresist2_8“ style=„background-color: #646464; height: 20px; line-height: 20px;“ onselectstart=„return false“> 8 </div> <div class=„rulerColor“ id=„rulerColorsliderresist2_9“ style=„background-color: #FFFFFF; color: #000000; border: 1px solid #dfdfdf; height: 20px; line-height: 20px;“ onselectstart=„return false“> 9 </div> </div> </div> <div class=„formWrapper“> <input type=„hidden“ id=„resist3“ name=„resist3“ value=„0“/><div class=„rulerAlignGuide“/> <br/><div class=„sliderWrapper rounded“ id=„sliderresist3Wrapper“> <div class=„slider“ id=„sliderresist3“ onselectstart=„return false“ style=„background-color: #000000;“>0 </div> <div class=„rulerColor“ id=„rulerColorsliderresist3_0“ style=„background-color: #000000; height: 20px; line-height: 20px;“ onselectstart=„return false“> 0 </div> <div class=„rulerColor“ id=„rulerColorsliderresist3_1“ style=„background-color: #643200; height: 20px; line-height: 20px;“ onselectstart=„return false“> 1 </div> <div class=„rulerColor“ id=„rulerColorsliderresist3_2“ style=„background-color: #FF0000; height: 20px; line-height: 20px;“ onselectstart=„return false“> 2 </div> <div class=„rulerColor“ id=„rulerColorsliderresist3_3“ style=„background-color: #FF9600; height: 20px; line-height: 20px;“ onselectstart=„return false“> 3 </div> <div class=„rulerColor“ id=„rulerColorsliderresist3_4“ style=„background-color: #FFFF00; height: 20px; line-height: 20px;“ onselectstart=„return false“> 4 </div> <div class=„rulerColor“ id=„rulerColorsliderresist3_5“ style=„background-color: #00FF00; height: 20px; line-height: 20px;“ onselectstart=„return false“> 5 </div> <div class=„rulerColor“ id=„rulerColorsliderresist3_6“ style=„background-color: #0000FF; height: 20px; line-height: 20px;“ onselectstart=„return false“> 6 </div> <div class=„rulerColor“ id=„rulerColorsliderresist3_7“ style=„background-color: #FF00FF; height: 20px; line-height: 20px;“ onselectstart=„return false“> 7 </div> <div class=„rulerColor“ id=„rulerColorsliderresist3_8“ style=„background-color: #646464; height: 20px; line-height: 20px;“ onselectstart=„return false“> 8 </div> <div class=„rulerColor“ id=„rulerColorsliderresist3_9“ style=„background-color: #FFFFFF; color: #000000; border: 1px solid #dfdfdf; height: 20px; line-height: 20px;“ onselectstart=„return false“> 9 </div> </div> </div> <div class=„formWrapper“> <input type=„hidden“ id=„resist4“ name=„resist4“ value=„5“/><div class=„rulerAlignGuide“/> <br/><div class=„sliderWrapper rounded“ id=„sliderresist4Wrapper“> <div class=„slider“ id=„sliderresist4“ onselectstart=„return false“ style=„background-color: #d2b13d;“>5 </div> <div class=„rulerColor“ id=„rulerColorsliderresist4_0“ style=„background-color: #d2b13d; height: 100px; line-height: 100px;“ onselectstart=„return false“> 5 </div> <div class=„rulerColor“ id=„rulerColorsliderresist4_1“ style=„background-color: #b3b3b3; height: 100px; line-height: 100px;“ onselectstart=„return false“> 10 </div> </div> </div> </div> </div> </div> </div> <div class=„resistorInstructions“ style=„text-align: left;“> <div class=„fullWidth“><h2>Prove you are human by reading this resistor:</h2></div> <br/> Match the sliders on the left to each color band on the resistor. <p><a onclick=„javascript: document.getElementById('resistorImagePNG').src = 'https://blog.adafruit.com/wp-content/plugins/Resist/resistorImage.php?' + (new Date()).getTime()“ style=„cursor:pointer;“>Click Here</a> for a new resistor image. </p><p>New to electronics? <a href=„http://en.wikipedia.org/wiki/Electronic_color_code“ target=„_blank“>Click here</a> to learn how to read resistor values. </p><p>Or learn to read resistors by playing <a href=„https://www.adafruit.com/mhosresistance“>Mho's Resistance!</a></p><p/></div> </div>

<p style=„display: none;“><input type=„hidden“ id=„ak_js“ name=„ak_js“ value=„216“/></p> </form> </div> <div class=„col-md-4 post-meta“> <div class=„meta“> Filed under: <a href=„https://blog.adafruit.com/category/armdevelopment/“ rel=„category tag“>arm development</a>, <a href=„https://blog.adafruit.com/category/bluetooth/“ rel=„category tag“>bluetooth</a>, <a href=„https://blog.adafruit.com/category/feather/“ rel=„category tag“>feather</a> &#8212; <br/>Tags: <a href=„https://blog.adafruit.com/tag/bluetooth-low-energy/“ rel=„tag“>bluetooth low energy</a>, <a href=„https://blog.adafruit.com/tag/mynewt/“ rel=„tag“>myNewt</a>, <a href=„https://blog.adafruit.com/tag/nrf52/“ rel=„tag“>NRF52</a> &#8212; by Kevin <p><a href=„https://blog.adafruit.com/2017/08/18/adafruit-feather-nrf52-pro-for-apache-mynewt/#respond“>Comments (0)</a> </p></div> </div> </div> </div> <noscript/> <div class=„pagination-arrow pagination-previous“><a href=„https://blog.adafruit.com/2017/08/18/legend-of-zelda-breath-of-the-wild-weapon-build/“ rel=„prev“><i class=„fa fa-angle-left“/></a></div> <div class=„pagination-arrow pagination-next“><a href=„https://blog.adafruit.com/2017/08/18/incredible-video-series-on-kinematics-the-geometry-of-motion/“ rel=„next“><i class=„fa fa-angle-right“/></a></div> </html>