SparkFun Electronics Blog Postsurn:uuid:de250df7-b58e-c619-a967-5afa29d70c45New Product Friday: Luducrous Products!SparkFun Electronicsurn:uuid:fdf4b02a-9130-cc5c-43f7-228b438f8df72015-07-31T08:45:28-06:00<p>Welcome back everyone. Before you dive into this week&rsquo;s new offerings, be sure to check out our brand new <a href="https://www.sparkfun.com/overflowsale">Overflow Sale</a> section! We&rsquo;re making room for some new and exciting products - everybody wins! Now, let&rsquo;s talk new products. But first, let&rsquo;s look at a video we made for one of last week&rsquo;s new products, the <a href="https://www.sparkfun.com/products/13610">pcDuino Acadia</a>. Here, we compare the performance of the various SBCs (single board computers) that we sell.</p>
<div class="flex-video-wrap clearfix">
<div class="flex-video widescreen img">
<iframe src="https://www.youtube.com/embed/AB3xns8ujqM/?autohide=1&amp;border=0&amp;wmode=opaque&amp;enablejsapi=1" frameborder=0 allowfullscreen width="560" height="315"></iframe>
</div>
</div>
<p>Was there a board you wanted to see that we didn&rsquo;t feature? Submit a comment below! NOW we can talk about new stuff.</p>
<div >
<div class="tile product-tile has_addl_actions big grid " data-id="13295" itemscope itemtype="http://schema.org/Product">
<meta itemprop="brand" content="SparkFun">
<meta itemprop="mpn" content="DEV13295">
<meta itemprop="sku" content="DEV-13295">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/13295">
<img src="https://cdn.sparkfun.com/r/500-500/assets/parts/1/0/4/5/8/13295-01.jpg" alt="SparkFun Ludus Protoshield Wireless " height="500" itemprop="image">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" method="post" onsubmit="$(this).cart('add', 13295, $('#add_qty_13295').val(), 'add_product_tile'); return false;">
<input type=hidden name=id value="13295">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='f7c85a7f69f32455bc76cd9b78ce6ef4a41b7492169beaabc84b4e37608fdad7a0949226669cb42f3a9f9ae26ccd42743c28bfca695bb7aea599611748c56db6'> <!-- Add to Cart -->
<input type="number" class="quantity form-control" size="4" name="qty" id="add_qty_13295" value="1">
<input type="submit" class="btn btn-cart btn-action" id="add_button_13295" value="Add to Cart">
<div id="added_to_cart_13295" style="display: none;">
<p class="success-message">
Added <span id="added_qty_13295"></span> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</form>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/13295" itemprop="url">
<span itemprop="name">SparkFun Ludus Protoshield Wireless </span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://www.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku" itemprop="sku">
DEV-13295 </span>
<p class="description" style="display:none" itemprop="description">
The SparkFun Ludus Protoshield Wireless is an Arduino compatible shield designed to make connecting motors and sensors to you&hellip; </p>
</div>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<div class="prices">
<span class="price price-sale">
<span itemprop="priceCurrency" content="USD">$</span>
<span itemprop="price" content="24.95">24.95</span>
</span>
</div>
<link itemprop="availability" href="http://schema.org/InStock">
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="13295">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">1</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="13295" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu pull-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<p>The <a href="https://www.sparkfun.com/search/results?term=ludus">SparkFun Ludus Protoshields</a> are Arduino-compatible shields designed to make connecting motors and sensors to your Arduino-based development board as fast and easy as possible. There are two versions, the <a href="https://www.sparkfun.com/products/13310">standard</a>, and the <a href="https://www.sparkfun.com/products/13295">wireless</a>. The standard version has a prototyping area, where the wireless version has a header for an XBee module. Both shields also have an H-bridge motor driver, along with various connectors for use in robotics. Here it is in action:</p>
<div class="flex-video-wrap clearfix">
<div class="flex-video widescreen img">
<iframe src="https://www.youtube.com/embed/A9djJ7mmEYk/?autohide=1&amp;border=0&amp;wmode=opaque&amp;enablejsapi=1" frameborder=0 allowfullscreen width="560" height="315"></iframe>
</div>
</div>
<div >
<div class="tile product-tile has_addl_actions big grid " data-id="13703" itemscope itemtype="http://schema.org/Product">
<meta itemprop="brand" content="SparkFun">
<meta itemprop="mpn" content="COM13703">
<meta itemprop="sku" content="COM-13703">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/13703">
<img src="https://cdn.sparkfun.com/r/500-500/assets/parts/4/6/6/9/13703-01.jpg" alt="ATMEGA8U2-AU " height="500" itemprop="image">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" method="post" onsubmit="$(this).cart('add', 13703, $('#add_qty_13703').val(), 'add_product_tile'); return false;">
<input type=hidden name=id value="13703">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='f7c85a7f69f32455bc76cd9b78ce6ef4a41b7492169beaabc84b4e37608fdad7a0949226669cb42f3a9f9ae26ccd42743c28bfca695bb7aea599611748c56db6'> <!-- Add to Cart -->
<input type="number" class="quantity form-control" size="4" name="qty" id="add_qty_13703" value="1">
<input type="submit" class="btn btn-cart btn-action" id="add_button_13703" value="Add to Cart">
<div id="added_to_cart_13703" style="display: none;">
<p class="success-message">
Added <span id="added_qty_13703"></span> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</form>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/13703" itemprop="url">
<span itemprop="name">ATMEGA8U2-AU </span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://www.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku" itemprop="sku">
COM-13703 </span>
<p class="description" style="display:none" itemprop="description">
The ATMEGA8U2-AU is a low-power CMOS 8-bit microcontroller based on the AVR enhanced RISC architecture. By executing powerful&hellip; </p>
</div>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<div class="prices">
<span class="price price-sale">
<span itemprop="priceCurrency" content="USD">$</span>
<span itemprop="price" content="3.95">3.95</span>
</span>
</div>
<link itemprop="availability" href="http://schema.org/InStock">
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="13703">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">0</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="13703" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu pull-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<p>Also this week, we have some overstock from production. We had a bunch of leftover <a href="https://www.sparkfun.com/products/13703">ATMega8U2</a> ICs that we don&rsquo;t need anymore. The ATMEGA8U2-AU is a low-power CMOS 8-bit microcontroller based on the AVR enhanced RISC architecture. By executing powerful instructions in a single clock cycle, the ATMEGA8U2 achieves throughputs approaching 1 MIPS per MHz allowing the system designer to optimize power consumption versus processing speed. Get them while they last!</p>
<p>That&rsquo;s it for this week. Be sure to check out our <a href="https://twitter.com/#!/sparkfun">Twitter</a> and <a href="http://www.facebook.com/SparkFun">Facebook</a> pages, we might have a little surprise for you there. See you next week, thanks for reading!</p>
<p><small><a href="https://www.sparkfun.com/news/1891#comments">comments</a> | <a href="https://www.sparkfun.com/news/1891/comments.xml">comment feed</a></small></p>Return of the Turbine! SparkFun Electronicsurn:uuid:6cc690bc-6eea-5100-71d8-e2c2bb03b6e22015-07-30T09:15:22-06:00<p>(Check out
<a href="https://www.sparkfun.com/news/1411">part 1</a> and
<a href="https://www.sparkfun.com/news/1753">part 2</a> if you are just tuning in.)</p>
<p>Now that <a href="https://www.sparkfun.com/news/1498">robot season</a> has finally slowed down, I have a little more time to give the turbine some much needed attention. It now has something that resembles an electrical system. It is still pretty crude but there is enough to see if this puppy will make fire!</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/9/0/TurbineCoverPhoto.jpg"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/9/0/TurbineCoverPhoto.jpg" alt="alt text" /></a></p>
<p>For now I am simply controlling each component manually with a serial terminal. Once I prove everything is working I will begin coding the actual control system. Here is a basic block diagram of what I am trying to control with an <a href="https://www.sparkfun.com/products/11113">Arduino Pro Mini</a></p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/9/0/Turbine_Diagram.png"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/9/0/Turbine_Diagram.png" alt="My Crude Diagram" /></a></p>
<p>I have been having difficulties getting the engine to light. From rusted fuel pumps to sticky valves, I have been having a heck of a time getting all the cobwebs out of this beast. Initially I tried to run the engine off kerosene and two small <a href="http://www.batterymart.com/merchant2/merchant.mvc?Screen=quickview&amp;Product_Code=hawker-sbs-J16-aircraft-battery">aircraft batteries</a>. The batteries didn&rsquo;t have the juice and I made a nice kerosene puddle out back. To make things easier on myself I&rsquo;m tried to start the engine off propane. It&rsquo;s only slightly sketchy (thats how I explained it to our new facilities manager). I also got some <a href="http://www.batterystuff.com/batteries/mobility-scooter-wheelchair/M24SLDGFT.html">huge batteries</a> to quench its insatiable thrist for current.</p>
<p>Here is a quick video of our startup attempt and a quick tour of the engine (spoiler, it went well). We got the engine to self sustain a burn but my propane rig just isn&rsquo;t big enough to bing it up to full power.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/WYf6VUjjJVc" frameborder="0" allowfullscreen></iframe>
<p>Next step: Get it running on kerosene. Then, likely get a noise complaint ticket soon after.</p>
<p><small><a href="https://www.sparkfun.com/news/1890#comments">comments</a> | <a href="https://www.sparkfun.com/news/1890/comments.xml">comment feed</a></small></p>My Email is my Passport; Verify MeSparkFun Electronicsurn:uuid:02ec3289-f3d3-c0b2-791b-ac66b95839132015-07-29T08:39:19-06:00<p>SparkFun is taking steps to ensure that our user community is a safe space. That means we need to make a few changes.</p>
<p>Recently a lot of our commenters have been frustrated by one of our latest changes to SparkFun&rsquo;s commenting website. We are asking our user community to verify their email addresses before we let them comment.
While this is an inconvenience for our customers, it is a pretty important step for SparkFun. We want to try and make SparkFun a safe place for everyone to come out and play. This includes our blog platform. We want to have a conversation with our user community, which means the community needs to have valid email address.</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/8/7/VerifyMe.png"><img src="https://cdn.sparkfun.com/assets/home_page_posts/1/8/8/7/VerifyMe.png" alt="Verify Me!" /></a></p>
<p>We are trying to stop spambots. While this isn’t a perfect solution, it is a road block. We want to make it just a little harder for the bots to think we are a solid forum for spamming. That being said, we don’t want it to be too hard for you, our loyal reads and customers either. This balance is what we are trying to strike.</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/8/7/NoOneWantsThis.png"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/8/7/NoOneWantsThis.png" alt="No one wants spam" /></a></p>
<p style="text-align:center;"><em>Curse you, spambots.</em></p>
<p>Also, we might not stop at valid email addresses on comments. There are tools at our disposal; how we use them affects you and we are aware of that.</p>
<p>Moving forward, we’ll probably make validating your email address one of our steps in the account creation process. We haven’t implemented this yet, in an attempt to get it right. We still want customers coming in and checking out while creating a new account. We are working through all of these steps now. Everyone already registered is going through the process of validating email address as you comment around our blog platform. Soon new users will most likely need to validate email addresses to create accounts.</p>
<p>SparkFun had a Captcha system for a while. It was disabled when enough people complained it was hindering their shopping experience, but that was before we had a guest checkout system that allowed purchasing without registration. Implementing Captcha again is on the table and being discussed.</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/8/7/JustClickHere.png"><img src="https://cdn.sparkfun.com/assets/home_page_posts/1/8/8/7/JustClickHere.png" alt="Verify today and join the conversation" /></a></p>
<p>Running a modern E-Commerce website is a complicated collection of trade-offs. SparkFun is committed to creating an environment that is welcoming to customers of all types, but we also have to do it in a way that is responsible for our team. SparkFun is working to make the right decisions. As we slowly implement new features we want to keep our user base informed. As we implement these features please let us know what you think. Validate your email address today and speak your mind. We’re listening!</p>
<p><small><a href="https://www.sparkfun.com/news/1887#comments">comments</a> | <a href="https://www.sparkfun.com/news/1887/comments.xml">comment feed</a></small></p>SparkFun Live is today!SparkFun Electronicsurn:uuid:889c87d2-73d9-ca93-fdb5-6221bc5c716c2015-07-28T10:57:30-06:00<p>We <a href="https://www.sparkfun.com/news/1882">warned you</a> it was coming, and now the day is here: SparkFun Live starts at the video link below at 3:00 today (Mountain Time)! Tune in and build along with some of our engineers as we attempt to answer questions and construct a phono pre-amp and an STA540 power amp – <strong>AT THE SAME TIME</strong>! If you need a refresher on the recipe, you can find the wishlist <a href="https://www.sparkfun.com/wish_lists/113943">here</a>, and we&rsquo;ll see you this afternoon!</p>
<div class="flex-video-wrap clearfix">
<div class="flex-video widescreen img">
<iframe src="https://www.youtube.com/embed/brn2G0ihg38/?autohide=1&amp;border=0&amp;wmode=opaque&amp;enablejsapi=1" frameborder=0 allowfullscreen width="560" height="315"></iframe>
</div>
</div>
<p><small><a href="https://www.sparkfun.com/news/1889#comments">comments</a> | <a href="https://www.sparkfun.com/news/1889/comments.xml">comment feed</a></small></p>Hey, who is this guy? SparkFun Electronicsurn:uuid:9c301829-625f-aacb-66bd-f7e3f4c4c5972015-07-27T08:57:53-06:00<p>An brief introduction to SparkFun&rsquo;s new Director of Software Development and IT (SWIT).</p>
<p>Hi, you recently read a <a href="https://www.sparkfun.com/news/1881">blog post</a> from me about the health and status of <a href="https://data.sparkfun.com/">data.sparkfun.com</a>. Some people were asking, “Hey, who is that guy?” I think that’s a fair question. I never really got a chance to introduce myself before I went and started talking about Data.</p>
<p>Back in January, <a href="https://www.sparkfun.com/users/18803">Frencil</a>, the long standing Director of IT here at SparkFun, decided to step down. Frencil was leaving under very good terms and decided that he would also help Nate find a new Director of IT for SparkFun. I applied for the position in February. As you can imagine, a position like this took a while to fill, but he was involved in almost every stage of the hiring process. I remember talking to him during the phone screen and then again during my in person interview.
Since I’ve gotten to join the SparkFun team, he has been an excellent emissary of the brand, helping me feel very comfortable at SparkFun even when he is no longer an employee.</p>
<p>Frencil is a special guy, SparkFun was lucky to have someone like him when they did and I wish him all the best moving forward.</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/8/5/18443183934_6817ace81b_k.jpg"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/8/5/18443183934_6817ace81b_k.jpg" alt="alt text" /></a></p>
<p style="text-align:center;"><em>Here I am.</em></p>
<p>As I have taken over I’ve made a few changes, most prominently the department name. In honor of all of the cool software work we do here at SparkFun, I asked that the department be renamed from IT to Software Development and IT, or SWIT. I have a great crew here helping me fly this ship and we are currently growing.</p>
<p>My technical background has mostly been leading development and DevOps teams, and I feel that the position here at SparkFun is fully situated to take advantage of these skills. My DevOps background specifically is what drove the post about Data. We had a problem, I wanted it fixed and then I wanted not only a chance to explain ourselves, but a chance to highlight how we were going to improve moving forward.</p>
<p>So, now that I&rsquo;m here, I plan to be your conduit for many SparkFun-related information sharing activities. When we have something cool to show you, I’ll make sure you see it. If we mess up, I’ll be the one owning up to it. We believe in an open sharing of resources and ideas, and this transparency is our promise to you, our customers.</p>
<p>So, a little about me. I&rsquo;m new to Colorado, having just moved here from Maryland (the DC Metro area to be more specific). I’ve never lived outside of the East Coast and I&rsquo;m really enjoying both Colorado and SparkFun.</p>
<p>I&rsquo;m a pretty big fan of science fiction and I’ll try and include as many references as feels right in most of my writing. This was an aspect of SparkFun culture that was not lost on me when I came for my first interview. All of the conference rooms are named after spaceships, the main conference room being the Millennium Falcon. Come on a tour and see how many spaceship rooms you can see!</p>
<p>On top of that, I&rsquo;m a pretty big sports fan, having spent the last 11 years rooting for the Nationals. They came to town a little after I graduated college. Once I had a real job and was starting to really earn some money, I figured the best use of this was baseball season tickets. I’ve been hooked ever since.</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/8/5/Werth_gnome.JPG"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/8/5/Werth_gnome.JPG" alt="Double M with a prized Nationals Give away" /></a></p>
<p>I have also found a very happy place with the intersection of Sports and science fiction/fantasy. It was at a baseball game that I first realized I was in costume at a major event, which helped ease my concerns about going to conventions as a cosplayer, an activity I have enjoyed for many years now.</p>
<p>I&rsquo;ve also come up with interesting technology management theories that can be explained using the rosters of either the X-Men or basketball teams. When you consider any team, you have to look at your resource balance based on internal dynamics. The X-Men need a power balance, different mutants provide different and complementary skills. Yes, 10 Wolverines would be cool, but do you want to manage that? The same is true in basketball. Simply stacking the deck with the best players doesn&rsquo;t provide long term success. Getting the best players doesn&rsquo;t always get you everything you need. You also need role players that know how to complement each other and that can make everyone better. In both examples the goal is to build a team that is more than the sum of its parts. Interested in hearing more? I&rsquo;m sure we can discuss that during a tour as well.</p>
<p>Technology management is a passion of mine. I&rsquo;m glad that I was able to find a company that cares about its employees and the future. I&rsquo;m excited to be here at SparkFun and I&rsquo;m excited about our future together.</p>
<p><small><a href="https://www.sparkfun.com/news/1885#comments">comments</a> | <a href="https://www.sparkfun.com/news/1885/comments.xml">comment feed</a></small></p>New Product Friday: Soilent GreenSparkFun Electronicsurn:uuid:70ea2a46-f0eb-cae4-3cb7-148ff436b7e12015-07-24T08:40:57-06:00<p>It&rsquo;s Friday, and we have new stuff to talk about. There&rsquo;s no &lsquo;classic&rsquo; video this week, but we have two product demonstrations instead! So let&rsquo;s jump right in and see the goods for this week.</p>
<div >
<div class="tile product-tile has_addl_actions big grid " data-id="13322" itemscope itemtype="http://schema.org/Product">
<meta itemprop="brand" content="SparkFun">
<meta itemprop="mpn" content="SEN13322">
<meta itemprop="sku" content="SEN-13322">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/13322">
<img src="https://cdn.sparkfun.com/r/500-500/assets/parts/1/0/6/1/0/13322-01.jpg" alt="SparkFun Soil Moisture Sensor" height="500" itemprop="image">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" method="post" onsubmit="$(this).cart('add', 13322, $('#add_qty_13322').val(), 'add_product_tile'); return false;">
<input type=hidden name=id value="13322">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='f7c85a7f69f32455bc76cd9b78ce6ef4a41b7492169beaabc84b4e37608fdad7a0949226669cb42f3a9f9ae26ccd42743c28bfca695bb7aea599611748c56db6'> <!-- Add to Cart -->
<input type="number" class="quantity form-control" size="4" name="qty" id="add_qty_13322" value="1">
<input type="submit" class="btn btn-cart btn-action" id="add_button_13322" value="Add to Cart">
<div id="added_to_cart_13322" style="display: none;">
<p class="success-message">
Added <span id="added_qty_13322"></span> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</form>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/13322" itemprop="url">
<span itemprop="name">SparkFun Soil Moisture Sensor</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://www.sparkfun.com/static/bubbles/" title="only 7 left!"><span class=sfe-icon-stock-low><span class=visuallyhidden>Only 7 left!</span></span></a>
</span>
<span class="sku" itemprop="sku">
SEN-13322 </span>
<p class="description" style="display:none" itemprop="description">
The SparkFun Soil Moisture Sensor is a simple breakout for measuring the moisture in soil and similar materials. The soil moi&hellip; </p>
</div>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<div class="prices">
<span class="price price-sale">
<span itemprop="priceCurrency" content="USD">$</span>
<span itemprop="price" content="4.95">4.95</span>
</span>
</div>
<link itemprop="availability" href="http://schema.org/InStock">
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="13322">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">4</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="13322" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu pull-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<p>Do you know how much moisture is in your soil? You should. Don&rsquo;t be left not knowing the moisture content of your soil again. The <a href="https://www.sparkfun.com/products/13322">SparkFun Soil Moisture Sensor</a> is a simple breakout for measuring the moisture in soil and similar materials. The two large exposed pads function as probes for the sensor, together acting as a variable resistor. The more water that is in the soil means the better the conductivity between the pads will be and will result in a lower resistance, and a higher SIG out. Want to see it work? Check out this video.</p>
<div class="flex-video-wrap clearfix">
<div class="flex-video widescreen img">
<iframe src="https://www.youtube.com/embed/1h6D_pkeoks/?autohide=1&amp;border=0&amp;wmode=opaque&amp;enablejsapi=1" frameborder=0 allowfullscreen width="560" height="315"></iframe>
</div>
</div>
<div >
<div class="tile product-tile has_addl_actions big grid " data-id="13670" itemscope itemtype="http://schema.org/Product">
<meta itemprop="brand" content="SparkFun">
<meta itemprop="mpn" content="GPS13670">
<meta itemprop="sku" content="GPS-13670">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/13670">
<img src="https://cdn.sparkfun.com/r/500-500/assets/parts/1/1/1/1/3/13670-01a.jpg" alt="GPS Receiver - GP-735 (56 Channel)" height="500" itemprop="image">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" method="post" onsubmit="$(this).cart('add', 13670, $('#add_qty_13670').val(), 'add_product_tile'); return false;">
<input type=hidden name=id value="13670">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='f7c85a7f69f32455bc76cd9b78ce6ef4a41b7492169beaabc84b4e37608fdad7a0949226669cb42f3a9f9ae26ccd42743c28bfca695bb7aea599611748c56db6'> <!-- Add to Cart -->
<input type="number" class="quantity form-control" size="4" name="qty" id="add_qty_13670" value="1">
<input type="submit" class="btn btn-cart btn-action" id="add_button_13670" value="Add to Cart">
<div id="added_to_cart_13670" style="display: none;">
<p class="success-message">
Added <span id="added_qty_13670"></span> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</form>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/13670" itemprop="url">
<span itemprop="name">GPS Receiver - GP-735 (56 Channel)</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://www.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku" itemprop="sku">
GPS-13670 </span>
<p class="description" style="display:none" itemprop="description">
The GP-735 is a slim, ultra-high performance, easy to use GPS smart antenna receiver. With -162dBm tracking sensitivity and o&hellip; </p>
</div>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<div class="prices">
<span class="price price-sale">
<span itemprop="priceCurrency" content="USD">$</span>
<span itemprop="price" content="39.95">39.95</span>
</span>
</div>
<link itemprop="availability" href="http://schema.org/InStock">
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="13670">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">1</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="13670" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu pull-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<p>The <a href="https://www.sparkfun.com/products/13670">GP-735</a> is a slim, ultra-high performance, easy to use GPS smart antenna receiver. With -162dBm tracking sensitivity and only 29 second cold start time, the GP735 is a tiny, yet powerful, piece of tech. The slim design makes it ideal for applications where you don’t have a lot of space to work in.</p>
<div >
<div class="tile product-tile has_addl_actions big grid " data-id="13610" itemscope itemtype="http://schema.org/Product">
<meta itemprop="brand" content="SparkFun">
<meta itemprop="mpn" content="DEV13610">
<meta itemprop="sku" content="DEV-13610">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/13610">
<img src="https://cdn.sparkfun.com/r/500-500/assets/parts/1/0/9/7/4/13610-01.jpg" alt="pcDuino Acadia - Dev Board" height="500" itemprop="image">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" method="post" onsubmit="$(this).cart('add', 13610, $('#add_qty_13610').val(), 'add_product_tile'); return false;">
<input type=hidden name=id value="13610">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='f7c85a7f69f32455bc76cd9b78ce6ef4a41b7492169beaabc84b4e37608fdad7a0949226669cb42f3a9f9ae26ccd42743c28bfca695bb7aea599611748c56db6'> <!-- Add to Cart -->
<input type="number" class="quantity form-control" size="4" name="qty" id="add_qty_13610" value="1">
<input type="submit" class="btn btn-cart btn-action" id="add_button_13610" value="Add to Cart">
<div id="added_to_cart_13610" style="display: none;">
<p class="success-message">
Added <span id="added_qty_13610"></span> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</form>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/13610" itemprop="url">
<span itemprop="name">pcDuino Acadia - Dev Board</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://www.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku" itemprop="sku">
DEV-13610 </span>
<p class="description" style="display:none" itemprop="description">
The pcDuino Acadia is a high performance, cost effective mini PC platform that runs full-featured operating systems such as U&hellip; </p>
</div>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<div class="prices">
<span class="price price-sale">
<span itemprop="priceCurrency" content="USD">$</span>
<span itemprop="price" content="119.95">119.95</span>
</span>
</div>
<link itemprop="availability" href="http://schema.org/InStock">
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="13610">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">4</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="13610" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu pull-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<p>This week we have a new version of the pcDuino. The <a href="https://www.sparkfun.com/products/13610">Acadia</a> is a more powerful version of the pcDuino 3, featuring a quad core processor. The pcDuino acts much like a computer, needing only a 5v (2A) power supply, keyboard, mouse and display to get running. You can even use the USB-OTG to connect remotely. Connect it to your network with either the WiFi module or Ethernet jack so you can log data, run a web server, or control devices remotely.</p>
<div >
<div class="tile product-tile has_addl_actions big grid " data-id="13264" itemscope itemtype="http://schema.org/Product">
<meta itemprop="brand" content="SparkFun">
<meta itemprop="mpn" content="DEV13264">
<meta itemprop="sku" content="DEV-13264">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/13264">
<img src="https://cdn.sparkfun.com/r/500-500/assets/parts/1/0/4/7/0/13264-01.jpg" alt="LilyPad Pixel Board" height="500" itemprop="image">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" method="post" onsubmit="$(this).cart('add', 13264, $('#add_qty_13264').val(), 'add_product_tile'); return false;">
<input type=hidden name=id value="13264">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='f7c85a7f69f32455bc76cd9b78ce6ef4a41b7492169beaabc84b4e37608fdad7a0949226669cb42f3a9f9ae26ccd42743c28bfca695bb7aea599611748c56db6'> <!-- Add to Cart -->
<input type="number" class="quantity form-control" size="4" name="qty" id="add_qty_13264" value="1">
<input type="submit" class="btn btn-cart btn-action" id="add_button_13264" value="Add to Cart">
<div id="added_to_cart_13264" style="display: none;">
<p class="success-message">
Added <span id="added_qty_13264"></span> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</form>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/13264" itemprop="url">
<span itemprop="name">LilyPad Pixel Board</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://www.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku" itemprop="sku">
DEV-13264 </span>
<p class="description" style="display:none" itemprop="description">
We know you love adding color to your e-textiles, adding the LilyPad Pixel Board to your project will only make it better. Th&hellip; </p>
</div>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<div class="prices">
<span class="price price-sale">
<span itemprop="priceCurrency" content="USD">$</span>
<span itemprop="price" content="3.95">3.95</span>
</span>
</div>
<link itemprop="availability" href="http://schema.org/InStock">
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="13264">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">0</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="13264" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu pull-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<p>We know you love adding color to your e-textiles, adding the LilyPad Pixel Board to your project will only make it better. The pixel board is equipped with a WS2812B which is actually an RGB LED with a WS2811 built right into the LED! Several of these breakouts can be chained together to form a display or an addressable string. Here it is in action.</p>
<div class="flex-video-wrap clearfix">
<div class="flex-video widescreen img">
<iframe src="https://www.youtube.com/embed/_iF1CT5R_sQ/?autohide=1&amp;border=0&amp;wmode=opaque&amp;enablejsapi=1" frameborder=0 allowfullscreen width="560" height="315"></iframe>
</div>
</div>
<p>OK, that&rsquo;s it for this week. As always, thanks for reading, and we&rsquo;ll be back again next week with more new stuff.</p>
<p><small><a href="https://www.sparkfun.com/news/1886#comments">comments</a> | <a href="https://www.sparkfun.com/news/1886/comments.xml">comment feed</a></small></p>My Magic Lunchbox!SparkFun Electronicsurn:uuid:93a09ace-212e-620c-744b-c2cf6cfd16bd2015-07-23T06:49:47-06:00<p>You probably won&rsquo;t be too surprised to learn that, as a part of being an engineer at SparkFun, I make a lot of &ldquo;temporary&rdquo; projects. Every time I design a new board, I have to test it, and that generally means a lot of support circuitry and code.</p>
<p>As you might imagine, it&rsquo;s a lot of fun to work on these things, and sometimes I like to take a project home to work on it in the evening or over the weekend. However, since these projects are by nature temporary (lasting only until I&rsquo;m done testing and writing library/example code), I rarely take the time to build up a solid enclosure for them. For a long time, I&rsquo;d just pitch the mess into a bag and hope; eventually, I got sick of the endless restoration of unplugged breadboard leads that came with that practice. After several rounds of prototyping, I came up with a solution: <em>The Magic Lunchbox!</em></p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/8/4/Magic_Lunch_Box_Enginursday_Images-01.jpg"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/8/4/Magic_Lunch_Box_Enginursday_Images-01.jpg" alt="You just let that handsome devil go on about his business" /></a></p>
<p style="text-align:center;"><em>You just let that handsome devil go on about his business.</em></p>
<p>I bought this sweet, kitschy <a href="http://www.thinkwithportals.com/">Portal 2</a> lunch box at <a href="http://www.stmarkscomics.com/">St. Mark&rsquo;s Comics</a> in New York on a business trip a couple of years ago. I don&rsquo;t generally buy a lot of, well, stuff, but this one was just too good to pass up. I knew I had to find a use for it; it sat in my office unused for months before I started playing with using it as a temporary home for my projects.</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/8/4/Magic_Lunch_Box_Enginursday_Images-03.jpg"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/8/4/Magic_Lunch_Box_Enginursday_Images-03.jpg" alt="It's bigger on the inside" /></a></p>
<p style="text-align:center;"><em>It&rsquo;s bigger on the inside.</em></p>
<p>Inside, there&rsquo;s a double-layer structure made of laser cut acrylic (you can always tell when a person or group has a laser cutter, as every project they make has a bunch of acrylic in it). The bottom layer has a few <a href="https://www.sparkfun.com/products/8643">0.25" rare-earth magnet cubes</a> inset into it, which hold it securely against the bottom of the box. The gap between the two layers serves two purposes: first, to provide some storage, and second, to raise the breadboards on the top layer up to a more reachable and manipulable height.</p>
<p>On the lid, there&rsquo;s a grid of acrylic hot glued down, with two 3x3 grids of <a href="https://www.sparkfun.com/products/8644">0.125" rare-earth magnet cubes</a> inset into it. The grid has two purposes, as well: first, it provides rigidity to the lid, and second, it provides clearance between the surface of the magnets and the lid for the screws on the underside of the exchangeable board carriages. You can see in the picture that I&rsquo;ve got a <a href="https://www.sparkfun.com/products/13229">FreeSoC2</a> board on a removable plate; that plate has matching magnets to hold it down onto the grid. That way, I can swap out my core processor for whatever my current needs are.</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/8/4/Magic_Lunch_Box_Enginursday_Images-02.jpg"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/8/4/Magic_Lunch_Box_Enginursday_Images-02.jpg" alt="Openings" /></a></p>
<p style="text-align:center;"><em>Openings</em></p>
<p>I cut a couple of small holes in the side to allow a little access to the stuff inside. I&rsquo;ve got three connectors: a 3.5mm stereo audio jack, a female type B USB connector, and a 2x5 0.1" spaced shrouded header. That way, I can write and upload code without having to open the case.</p>
<p>At the moment, I&rsquo;m using the Magic Lunchbox to develop my <a href="https://github.com/mhord/SineUs_Pressure">SineUs Pressure project</a>, which is a FreeSoC2-based attempt to characterize my crappy hearing across frequency bands. I made an acrylic box with a couple of <a href="https://www.sparkfun.com/products/9340">arcade buttons</a> on the sides to capture the user&rsquo;s response to left/right tone detection; I didn&rsquo;t get a picture of it because it&rsquo;s ugly, but the SVG files for it are in the repo above.</p>
<p>What&rsquo;s next for the Magic Lunchbox? I&rsquo;m not sure. I&rsquo;ll probably add some more I/O capacity, maybe a couple of fixed buttons or LEDs on the outside, but I&rsquo;ll let that be dictated by future needs.</p>
<p>How do you move your projects around?</p>
<p><small><a href="https://www.sparkfun.com/news/1884#comments">comments</a> | <a href="https://www.sparkfun.com/news/1884/comments.xml">comment feed</a></small></p>The Hackaday Prize Contest is ending soon!SparkFun Electronicsurn:uuid:3e25161d-9ab3-1602-fe5e-5977a7d2e0ca2015-07-22T09:14:41-06:00<p>In March we <a href="https://www.sparkfun.com/news/1770">announced</a> the opening of one of the coolest contests we know of: The <a href="https://hackaday.io/prize">Hackaday Prize</a>. The contest encourages creative ideas with the potential to move humanity forward and solve real-world problems, with the incentive of some seriously awesome prizes for the winners. Ideas like low-power projects, water monitoring, automated gardening, solar vehicles or lighting, and low-cost sensors are all good examples of the type of projects the judges will be looking for – including our very own Pete Dokter.</p>
<p style="text-align:center;"><iframe src="https://player.vimeo.com/video/120741307" width="500" height="281" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe> <p><a href="https://vimeo.com/120741307">The Hackaday Prize 2015</a> from <a href="https://vimeo.com/hday">Hackaday</a> on <a href="https://vimeo.com">Vimeo</a>.</p></p>
<p>The contest closes on August 17, which is only 25 days away, so if you want to be in the running for some amazing prizes and the title of world
problem-fixer, the time to get in there is NOW! Currently, your odds of winning the <a href="https://hackaday.io/submissions/bestproduct/list">Best Product option</a> ($100,000, six months free rent in Hackaday&rsquo;s Design Lab, and mentoring) are insanely good – 1 in 54 as of today. So get on it!</p>
<p>Additionally, if you&rsquo;re working on your project and you need a little advice, Hackaday is hosting <a href="https://hackaday.io/events">weekly collaboratoriums</a> to answer any questions you may have (we&rsquo;re even lending them Pete for the meetups).</p>
<p>You can learn more about the contest or enter your project <a href="https://hackaday.io/signup?had2015">here</a>. We can&rsquo;t wait to see what everyone comes up with!</p>
<p><small><a href="https://www.sparkfun.com/news/1883#comments">comments</a> | <a href="https://www.sparkfun.com/news/1883/comments.xml">comment feed</a></small></p>Sorry about data.sparkfun.comSparkFun Electronicsurn:uuid:22f2b001-92d4-833a-0bca-0e158c5693b52015-07-21T08:51:35-06:00<p>Some of you may have noticed that we had trouble with <a href="https://data.sparkfun.com/">data.sparkfun.com</a> two weekends ago and into Tuesday the 14th. We are currently up and running. Basically our hard drives filled up. We currently have larger disks supporting the system and we are building out a new monitoring plan that should give us better visibility into the health and status of data.sparkfun.com.</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/8/1/Screen_Shot_2015-07-20_at_3.12.50_PM.png"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/8/1/Screen_Shot_2015-07-20_at_3.12.50_PM.png" alt="alt text" /></a></p>
<p style="text-align:center;"><em>Nate&rsquo;s <a href="https://learn.sparkfun.com/tutorials/weather-station-wirelessly-connected-to-wunderground">weather</a> is updating fine!</em></p>
<p>The longer story, we weren’t monitoring disk usage, at least not in a meaningful way, and not in a way that would prevent the system from locking up. We use a multi-server architecture, but we use complete mongo replication, so the same data lives on all servers. While this helps fault tolerance if a web server or database goes down, it does nothing to prevent disk failures. In fact, it ensures that if one server goes down with a disk full error they all will, because they are currently the same size.</p>
<p>As we tried to restart and provision one of our VMs it got into a bad state. We probably let it cycle in that state too long. We eventually killed it, created a new VM, and threw it into the cluster. This was a fine solution but Mongo wanted to fully replicate before it would allow new connections to establish. This data replication took longer than expected.</p>
<p>Data.sparkfun.com is a mouth full to say as well as type, so from here on out I’m just going to call it &ldquo;Data,&rdquo; and hopefully the good people at Universal Studios don’t mind <a href="http://images2.fanpop.com/image/photos/9400000/Lt-Commander-Data-star-trek-the-next-generation-9406567-1664-2560.jpg">a loving tribute</a>.</p>
<p>SparkFun has been reminded that we need to be good caretakers of Data. We need to keep an eye on it to ensure it keeps working for our users. Over the next few days and weeks we are going to plan and execute a series of small under-the-hood changes to ensure reliability and robustness for Data. We want you to have the same great user experience, we just need to be better at managing the streams that come in and fill those disks up. As we make these changes we plan to inform the user community about what we are doing.</p>
<p>Data is powered by <a href="http://phant.io/">phant</a>, an open source IoT database that is built and maintained by SparkFun. It’s important to remember that phant was, and still is, operating just fine. It was an infrastructure problem surrounding our implementation and monitoring of core phant. Once we were able to stabilize our VMs, the system started right back up running at full strength. The team was about to get Data back up around around 11:00 AM MST Tuesday the 14th of July. Seven hours later we had had 381 streams of data updated with over 294,000 data pushes in that timeframe. That is a sign of a stable system being used by a lot of interested people.</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/8/1/Screen_Shot_2015-07-20_at_2.59.49_PM.png"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/8/1/Screen_Shot_2015-07-20_at_2.59.49_PM.png" alt="alt text" /></a></p>
<p style="text-align:center;"><em>Getting started on data is quick and easy</em></p>
<p>This is very exciting news for us at SparkFun, as we like seeing an engaged user community and the continued and expanded adoption of Data definitely qualifies.
I’m very impressed by the Data user community. I’m glad you like our system, I’m glad you are using it and I hope it continues to be helpful.</p>
<p>Please keep using Data and we’ll do our best to keep it up for you in the future.</p>
<p><small><a href="https://www.sparkfun.com/news/1881#comments">comments</a> | <a href="https://www.sparkfun.com/news/1881/comments.xml">comment feed</a></small></p>SparkFun Live: Audio EquipmentSparkFun Electronicsurn:uuid:7c080d2c-f4aa-b400-2bb3-b26cf29f60a62015-07-20T09:39:19-06:00<p>The time has come once again for another installment of <a href="https://www.youtube.com/playlist?list=PLBcrWxTa5CS1ZxbIeMJ-YJOPRP0gXQVWu">SparkFun Live</a> - where we attempt to simultaneously execute one of our project ideas and answer your questions as we go. This time around a few of SparkFun&rsquo;s engineers, including <a href="https://www.flickr.com/photos/sparkfun/19039454816/in/dateposted/">this guy</a>, will be assembling some audio test gear - specifically a phono pre-amp and an STA540 power amp. So join us next Tuesday, July 28, at 3:00 p.m. MDT (tinfoil accessories optional).</p>
<div class="flex-video-wrap clearfix">
<div class="flex-video widescreen img">
<iframe src="https://www.youtube.com/embed/W5CVg33AMPE/?autohide=1&amp;border=0&amp;wmode=opaque&amp;enablejsapi=1" frameborder=0 allowfullscreen width="560" height="315"></iframe>
</div>
</div>
<p>You can find the wishlist for these projects <a href="https://www.sparkfun.com/wish_lists/113943">here</a>. See you next week!</p>
<p><small><a href="https://www.sparkfun.com/news/1882#comments">comments</a> | <a href="https://www.sparkfun.com/news/1882/comments.xml">comment feed</a></small></p>New Product Friday: This. Is. SparkFun!SparkFun Electronicsurn:uuid:6b309af9-d665-0f4a-f2f7-173b20156ae62015-07-17T07:00:00-06:00<p>Hello. This is Robert and I&rsquo;m here to talk about new products. We hope you like the Internet (of things!), because we&rsquo;ve got stuff that helps your next project talk to it. Also, we have a change of venue for this week – see if you can find the malfunctioning light in the background!</p>
<div class="flex-video-wrap clearfix">
<div class="flex-video widescreen img">
<iframe src="https://www.youtube.com/embed/BA8Mp28NDWY/?autohide=1&amp;border=0&amp;wmode=opaque&amp;enablejsapi=1" frameborder=0 allowfullscreen width="560" height="315"></iframe>
</div>
</div>
<p>Last week we released the new version of the uArm, but didn&rsquo;t have a standard Product Post video, so I decided to give you a brief overview of the differences between the old and new version. Now that we have that out of the way, let&rsquo;s get to the new stuff for this week.</p>
<div >
<div class="tile product-tile has_addl_actions big grid " data-id="13287" itemscope itemtype="http://schema.org/Product">
<meta itemprop="brand" content="SparkFun">
<meta itemprop="mpn" content="WRL13287">
<meta itemprop="sku" content="WRL-13287">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/13287">
<img src="https://cdn.sparkfun.com/r/500-500/assets/parts/1/0/5/3/8/13287-01.jpg" alt="SparkFun WiFi Shield - ESP8266" height="500" itemprop="image">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" method="post" onsubmit="$(this).cart('add', 13287, $('#add_qty_13287').val(), 'add_product_tile'); return false;">
<input type=hidden name=id value="13287">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='f7c85a7f69f32455bc76cd9b78ce6ef4a41b7492169beaabc84b4e37608fdad7a0949226669cb42f3a9f9ae26ccd42743c28bfca695bb7aea599611748c56db6'> <!-- Add to Cart -->
<input type="number" class="quantity form-control" size="4" name="qty" id="add_qty_13287" value="1">
<input type="submit" class="btn btn-cart btn-action" id="add_button_13287" value="Add to Cart">
<div id="added_to_cart_13287" style="display: none;">
<p class="success-message">
Added <span id="added_qty_13287"></span> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</form>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/13287" itemprop="url">
<span itemprop="name">SparkFun WiFi Shield - ESP8266</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://www.sparkfun.com/static/bubbles/" title="26 available"><span class=sfe-icon-stock-low><span class=visuallyhidden>26 available</span></span></a>
</span>
<span class="sku" itemprop="sku">
WRL-13287 </span>
<p class="description" style="display:none" itemprop="description">
The SparkFun ESP8266 WiFi Shield is an Arduino compatible shield for the ESP8266 WiFi SoC – a leading platform for Internet&hellip; </p>
</div>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<div class="prices">
<span class="price price-sale">
<span itemprop="priceCurrency" content="USD">$</span>
<span itemprop="price" content="14.95">14.95</span>
</span>
</div>
<link itemprop="availability" href="http://schema.org/InStock">
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="13287">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">10</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="13287" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu pull-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<p>The <a href="https://www.sparkfun.com/products/13287">SparkFun ESP8266 WiFi Shield</a> is an Arduino compatible shield for the <a href="https://www.sparkfun.com/products/13252">ESP8266 WiFi SoC</a> – a leading platform for Internet of Things (IoT) or WiFi-related projects. There are a variety of designs based around the ESP8266, including tiny, modular boards and more accessible development boards like our very own <a href="https://www.sparkfun.com/products/13231">SparkFun ESP8266 Thing</a>. Check out the <a href="https://learn.sparkfun.com/tutorials/esp8266-wifi-shield-hookup-guide?_ga=1.236134337.1775835010.1378741377">hookup guide</a> for more information about using the shield.</p>
<div >
<div class="tile product-tile has_addl_actions big grid " data-id="11166" itemscope itemtype="http://schema.org/Product">
<meta itemprop="brand" content="SparkFun">
<meta itemprop="mpn" content="DEV11166">
<meta itemprop="sku" content="DEV-11166">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/11166">
<img src="https://cdn.sparkfun.com/r/500-500/assets/parts/6/6/4/3/11166-01.jpg" alt="Arduino Ethernet Shield 2" height="500" itemprop="image">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" method="post" onsubmit="$(this).cart('add', 11166, $('#add_qty_11166').val(), 'add_product_tile'); return false;">
<input type=hidden name=id value="11166">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='f7c85a7f69f32455bc76cd9b78ce6ef4a41b7492169beaabc84b4e37608fdad7a0949226669cb42f3a9f9ae26ccd42743c28bfca695bb7aea599611748c56db6'> <!-- Add to Cart -->
<input type="number" class="quantity form-control" size="4" name="qty" id="add_qty_11166" value="1">
<input type="submit" class="btn btn-cart btn-action" id="add_button_11166" value="Add to Cart">
<div id="added_to_cart_11166" style="display: none;">
<p class="success-message">
Added <span id="added_qty_11166"></span> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</form>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/11166" itemprop="url">
<span itemprop="name">Arduino Ethernet Shield 2</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://www.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku" itemprop="sku">
DEV-11166 </span>
<p class="description" style="display:none" itemprop="description">
The Arduino Ethernet Shield 2 allows an Arduino Board to connect to the Internet. It is based on the Wiznet W5500 Ethernet ch&hellip; </p>
</div>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<div class="prices">
<span class="price price-sale">
<span itemprop="priceCurrency" content="USD">$</span>
<span itemprop="price" content="44.95">44.95</span>
</span>
</div>
<link itemprop="availability" href="http://schema.org/InStock">
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="11166">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">0</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="11166" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu pull-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<p>The Arduino Ethernet Shield 2 allows an Arduino Board to connect to the Internet. The new V2 has an updated header arrangement for R3 Arduino boards, and adds TinkerKit headers on top too. The Shield also includes a reset controller, to ensure that the W5500 Ethernet module is properly reset on power-up. Previous revisions of the Shield were not compatible with the Mega and needed to be manually reset after power-up.</p>
<p>That&rsquo;s all folks. Thanks for reading, watching, and all the other good stuff you do. See you next week with more new stuff.</p>
<p><small><a href="https://www.sparkfun.com/news/1880#comments">comments</a> | <a href="https://www.sparkfun.com/news/1880/comments.xml">comment feed</a></small></p>Enginursday: Building Large LED ProjectsSparkFun Electronicsurn:uuid:b302f586-7080-4d0a-7bc7-50dbe18642f82015-07-16T09:13:48-06:00<p>In conjunction with our seventh annual <a href="https://www.sparkfun.com/news/1876">Autonomous Vehicle Competition</a>, SparkFun recently unveiled its first ever <a href="http://blogs.denverpost.com/tech/2015/06/19/sparkfun-to-open-first-offline-store-host-driver-less-vehicle-race/17649/">retail space</a>! Leading up to the event, several SparkFun employees took on the task of breathing new life into older projects, or creating new projects altogether. One such project was the CandyBar.</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/learn_tutorials/3/5/1/retailSpace.jpg"><img src="https://cdn.sparkfun.com/assets/learn_tutorials/3/5/1/retailSpace.jpg" alt="alt text" /></a></p>
<p style="text-align:center;"><em>The CandyBar in the background, along with our newly revamped GPS Wall Clock.</em></p>
<p>At 46 feet of illuminated fun, the CandyBar takes the LED strip to a whole new level. It uses eight meters of addressable LED strips, controlled with a <a href="https://www.sparkfun.com/products/12821?_ga=1.34307810.273388466.1418147030">FadeCandy</a> and a Raspberry Pi B+ running the <a href="https://github.com/scanlime/fadecandy/tree/master/server">FadeCandy Server</a>. Power and signals are sent out across the bar using custom PCBs, a 24V/250W power supply, and many feet of Ethernet cables. The patterns output by the extra long strip are created by passing various images through <a href="https://processing.org">Processing</a> and having the colors of the images sampled and sent to the corresponding LED. The real beauty of this project is that, because the strip can be controlled through a server, almost any Internet-connected device can potentially control the colors and patterns.</p>
<p>The build of the CandyBar was documented along the way, and we have gathered all that content and written a tutorial to help others who may want to build similarly large LED installations. The tutorial can be found at the link below.</p>
<div class="tile-wrap">
<div class="tile tutorial-tile has_addl_actions big grid">
<a href="https://learn.sparkfun.com/tutorials/building-large-led-installations">
<div class="thumb-wrap">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/c/500-282/assets/learn_tutorials/3/5/1/Sales_Space_LED_Project_copy.jpg)"></div>
</div>
<span class="new">New!</span>
<h3 class="title">Building Large LED Installations</h3>
<h4 class="metaline">July 16, 2015</h4> </a>
<div class="description">
Learn what it takes to build large LED installations from planning to power requirements to execution. </div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="learn_tutorials" data-entity-id="351">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">0</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div>
<p>If you have any questions or comments, feel free to post them here or in the tutorial&rsquo;s <a href="https://learn.sparkfun.com/tutorials/building-large-led-installations/discuss">comments section</a>. And, if you&rsquo;re in the Boulder, CO, area, stop on in and check out the SparkFun Retail Emporium and all the dazzling projects it has to offer.</p>
<p><small><a href="https://www.sparkfun.com/news/1879#comments">comments</a> | <a href="https://www.sparkfun.com/news/1879/comments.xml">comment feed</a></small></p>New Simple SketchesSparkFun Electronicsurn:uuid:7dc8b1cf-de16-3fae-95c3-9b27c36cf9fd2015-07-15T09:42:00-06:00<p>SparkFun&rsquo;s &ldquo;<a href="https://www.sparkfun.com/videos#simplesketch">Simple Sketches</a>&rdquo; series offers a quick and easy way to get a look at some of our favorite boards and sensors in action. We have a few new ones up; take a look!</p>
<div class="flex-video-wrap clearfix">
<div class="flex-video widescreen img">
<iframe src="https://www.youtube.com/embed/Uz1WxownzHs/?autohide=1&amp;border=0&amp;wmode=opaque&amp;enablejsapi=1" frameborder=0 allowfullscreen width="560" height="315"></iframe>
</div>
</div>
<p>SparkFun <a href="https://www.sparkfun.com/products/8642">Magnetic Reed Switch</a></p>
<div class="flex-video-wrap clearfix">
<div class="flex-video widescreen img">
<iframe src="https://www.youtube.com/embed/YrOOK6d4IwI/?autohide=1&amp;border=0&amp;wmode=opaque&amp;enablejsapi=1" frameborder=0 allowfullscreen width="560" height="315"></iframe>
</div>
</div>
<p>SparkFun <a href="https://www.sparkfun.com/products/9312">Hall Effect Sensor - US1881</a></p>
<div class="flex-video-wrap clearfix">
<div class="flex-video widescreen img">
<iframe src="https://www.youtube.com/embed/_UY6RTYl71Y/?autohide=1&amp;border=0&amp;wmode=opaque&amp;enablejsapi=1" frameborder=0 allowfullscreen width="560" height="315"></iframe>
</div>
</div>
<p>SparkFun <a href="https://www.sparkfun.com/products/9032">Thumb Joystick</a></p>
<p>And there you have it! Let us know what other components you&rsquo;d like to see a quick demo of in the comments, and we&rsquo;ll have a new batch of Simple Sketches soon!</p>
<p><small><a href="https://www.sparkfun.com/news/1878#comments">comments</a> | <a href="https://www.sparkfun.com/news/1878/comments.xml">comment feed</a></small></p>MatrixPilot Project UpdateSparkFun Electronicsurn:uuid:55f0e691-a200-6319-b82a-c13382b66f602015-07-14T11:00:00-06:00<p><em><a href="http://diydrones.com/profile/WilliamPremerlani">William Premerlani</a> started the <a href="https://code.google.com/p/gentlenav/">MatrixPilot open source autopilot project</a> in 2009 and has been a regular contributor to the state of the art of do it yourself drones since then. He has collaborated with SparkFun on the design of the UAV development board, which is presently in its 5th revision. Several of his technical discussions can be found <a href="http://diydrones.com/page/uav-devboard">here</a>.</em></p>
<hr />
<p>Since 2009, SparkFun has offered various versions of its <a href="https://www.sparkfun.com/products/11703">UAV Development Board</a>. We are presently selling version UDB5. Free, open source software for the UDB is developed in the <a href="https://code.google.com/p/gentlenav/wiki/MatrixPilot">MatrixPilot project</a>. Recently the MatrixPilot team completed and tested new control firmware for fixed wing aircraft. It works quite nicely, so we thought you might like to hear about it.</p>
<p>The basic idea is to produce a helical trajectory, shown in the following figure in the general case, which includes circles and portions of circles in specific cases:</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/6/9/helicalTrajectory.png"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/6/9/helicalTrajectory.png" alt="Helical Trajectory" /></a></p>
<p style="text-align:center;"><em>Helical Trajectory. Image Credit: Peter Hollands, MatrixPilot Project.</em></p>
<p>For the last year or so, Peter Hollands and I worked to develop a &ldquo;helical turn control&rdquo; for MatrixPilot, using basic principles. One goal of the new controls was to be able to fly an arbitrary helical trajectory. Peter had some fun producing the above trajectory using XPlane-10 and HILSIM, running the latest version of fixed wing flight controls for the open source MatrixPilot project.</p>
<p>Check out Peter&rsquo;s great demo video of the new controls:</p>
<p style="text-align:center;"><iframe src="https://player.vimeo.com/video/131295889" width="500" height="281" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></p>
<p>You can also read additional info on the <a href="http://diydrones.com/profiles/blogs/a-closer-look-and-demo-of-helical-turns">DIY Drones blog</a> about this test run.</p>
<p>The theory of helical turn controls is described in the following three documents:</p>
<ul>
<li><p>The first document, <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/6/9/HelicalTurnPart1Conditions.pdf">Helical Turns Part 1</a>, describes the conditions that need to be satisfied to achieve a coordinated helical turn.</p></li>
<li><p>The second document, <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/6/9/HelicalTurnPart2Controls.pdf">Helical Turns Part 2</a>, describes a simple controller, relying mainly on feedforward and proportional feedback to satisfy the turn conditions using matrix-vector computations.</p></li>
<li><p>The third document, <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/6/9/HelicalTurnPart3AoA.pdf">Helical Turns Part 3</a>, describes a method for accounting for angle of attack and variation of elevator trim with wing loading and airspeed. Required model parameters are computed automatically from flight data using a program that Peter Hollands wrote.</p></li>
</ul>
<p>Helical turn controls have been thoroughly flight tested for over a year, and have been found to perform quite well, including the following advantages:</p>
<ol>
<li><p>Tight, smooth, aggressive turns in both normal and inverted flight. For an airplane with ailerons, the controls can put the aircraft into a turn in less than &frac14; second, and can provide stable control with a turn rate up to the limits of the ranges of the gyros and accelerometers.</p></li>
<li><p>Level flight during a 180 degree roll over from normal to inverted flight.</p></li>
<li><p>Easier low speed hand launches because the controls automatically adjust angle of attack and elevator trim for changing airspeed.</p></li>
<li><p>Projection of earth frame pitch control onto body frame control surfaces, so pitch control is maintained in any orientation, including knife edge, or during a slow roll.</p></li>
<li><p>Elimination of the need for integral feedback. Using helical turn control, a combination of feedforward and proportional feedback performs better than conventional PID feedback control. This simplifies the selection of gains. The controls work well over a wide range of proportional feedback gain settings.</p></li>
</ol>
<p>Here are a few pictures from recent actual flight testing with my EasyStar. First, a few circuits around a rectangle in waypoint mode are shown. Please note that some of the flight segments and turns were flown inverted:</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/6/9/WayPointTrack.jpg"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/6/9/WayPointTrack.jpg" alt="WayPoint Tracker" /></a></p>
<p style="text-align:center;"><em>Flight Track of the EasyStar. Image Credit: Bill Premerlani</em></p>
<p>Next, a close up of the tracks through waypoint 4. Note that there are many tracks and they are all within a few feet of the waypoint, in all three directions:</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/6/9/FourthWayPoint.jpg"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/6/9/FourthWayPoint.jpg" alt="Fourth Way Point" /></a></p>
<p style="text-align:center;"><em>Fourth waypoint on the flight pattern. Image Credit: Bill Premerlani</em></p>
<p>Finally, a view of a 180 degree roll over from normal to inverted. Note that the controls automatically account for the reversal in sign of the wing loading and adjust the angle of attack and elevator trim to maintain level flight. You can see that the plane quickly pitches up a bit once it becomes inverted:</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/6/9/FifthWayPoint.jpg"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/6/9/FifthWayPoint.jpg" alt="Fifth Way Point" /></a></p>
<p style="text-align:center;"><em>Waypoint showing flight inversion. Image Credit: Bill Premerlani</em></p>
<p>By the way, one problem that I ran into during inverted flight was that the <a href="https://www.sparkfun.com/products/12751">EM506 GPS</a> that he was using stopped working when it was pointed toward the ground. A friend of mine, Robert Pixley, suggested a solution: Mount the GPS vertically instead of horizontally:</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/6/9/VerticalGPS.jpg"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/6/9/VerticalGPS.jpg" alt="Vertically Mounted GPS" /></a></p>
<p style="text-align:center;"><em>Vertical GPS Mount. Image Credit: Bill Premerlani</em></p>
<p>It was found that with a horizontally-mounted GPS, there were typically 10 or 11 satellites in view during normal flight, and at most 4 in view during inverted flight. With the vertical mount, there were 8 or 9 satellites in view all of the time.</p>
<p>Thanks to all of the MatrixPilot developers and users who helped with this. Here are a few links for those of you who might be interested in the MatrixPilot project:</p>
<ul>
<li>MatrixPilot project home page. (<strong>Note</strong>: This will be transitioning to GitHub <a href="https://github.com/MatrixPilot/MatrixPilot/wiki">here</a> due to Google Code changes).</li>
<li><a href="https://www.sparkfun.com/products/11703">UAV Development Board</a> available from SparkFun.</li>
<li><a href="https://code.google.com/p/gentlenav/source/browse/#svn%2Ftags%2FMatrixPilot_helicalTurns_Beta">Helical turn controls firmware</a>.</li>
</ul>
<p>Finally, you can read about the history of the first four versions of the UAVDevboard here.</p>
<div class="tile-wrap">
<div class="tile blog-tile has_addl_actions">
<a href="https://www.sparkfun.com/news/698" title="October 20, 2011: The new UDB4 is smaller and more powerful than before. See how the developers refined the system using very interesting testing techniques.">
<div class="thumb" style="background-image:url(https://cdn.sparkfun.com/images/th_DSC00863.JPG)"></div>
<h3 class="title">The New UAV Development Board v4 (UDB4) and Dizzy Gyros</h3>
<div class="metaline">
<span class="meta">October 20, 2011</span>
<span class="meta">9 <span class="glyphicon glyphicon-comment"></span></span>
</div>
</a>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="blog_posts" data-entity-id="698">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">0</span>
</span> </div>
</div>
</div>
<div class="clearfix"></div>
<p><small><a href="https://www.sparkfun.com/news/1869#comments">comments</a> | <a href="https://www.sparkfun.com/news/1869/comments.xml">comment feed</a></small></p>July Caption Contest WinnerSparkFun Electronicsurn:uuid:7183117d-b8ba-7428-e868-af46fbf96b922015-07-14T08:37:26-06:00<p>Last week <a href="https://www.sparkfun.com/news/1871">we challenged you</a> to come up with a caption so hilarious we wouldn&rsquo;t be able to stop ourselves from throwing prizes at you. You all brought your best, but only one can be the most best, so let&rsquo;s see who won!</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/7/7/18877972130_f2486b8479_k.jpg"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/7/7/18877972130_f2486b8479_k.jpg" alt="alt text" /></a></p>
<p style="text-align:center;"><em>Disqualified from the AVC due to performance enhancing mushrooms, Luigi sought his revenge.</em></p>
<p>Congratulations Engineered! You will be receiving one (1) assortment of electronic goodies that we are lovingly referring to as the &ldquo;box of awesome stuff for the caption contest winner.&rdquo; Thanks everyone who entered and we&rsquo;ll see you at next month&rsquo;s caption contest!</p>
<p><small><a href="https://www.sparkfun.com/news/1877#comments">comments</a> | <a href="https://www.sparkfun.com/news/1877/comments.xml">comment feed</a></small></p>AVC 2015 RecapSparkFun Electronicsurn:uuid:f002e665-a32e-5ae5-eb5b-be00158cc7842015-07-13T09:52:20-06:00<p>It&rsquo;s hard to believe it&rsquo;s already been three weeks since that glorious day of cutthroat robot competition we call AVC. If you were at SparkFun HQ for the festivities, you probably saw at least a few SparkFunions wandering the courses armed with video cameras (so if you didn&rsquo;t make it out to see the races, don&rsquo;t despair). Here&rsquo;s what they were up to:</p>
<div class="flex-video-wrap clearfix">
<div class="flex-video widescreen img">
<iframe src="https://www.youtube.com/embed/tZ3fpZFWHDM/?autohide=1&amp;border=0&amp;wmode=opaque&amp;enablejsapi=1" frameborder=0 allowfullscreen width="560" height="315"></iframe>
</div>
</div>
<p>We are so grateful to everyone who came out to compete, and to the 1300 (!) amazing people, families, vendors, teammates and curious onlookers who came out to see the madness. We can&rsquo;t wait to start planning a bigger and better AVC 2016!</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/7/6/18879506619_95aef185bd_k.jpg"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/7/6/18879506619_95aef185bd_k.jpg" alt="alt text" /></a></p>
<p style="text-align:center;"><em>Many competitors met their match/end on the Discombobulator, our incredibly dangerous new obstacle course addition.</em></p>
<p>We also wanted to call out all our winners - building an autonomous vehicle or a combat bot is harder than it looks, and it&rsquo;s surprisingly challenging to have everything go right the day-of. And with a new course location and a whole slew of new events (Combat Bots! Emporium! Workshops! Oh my!), it&rsquo;s even more impressive that everyone was able to focus and bring their very best. A bevy of high fives to the following champions!</p>
<h2>Ground Course</h2>
<ul>
<li><strong>Micro/PBR</strong> - Auton</li>
<li><strong>Doping</strong> - Minuteman</li>
<li><strong>Non-Traditional Locomotion</strong> - Quixote</li>
<li><strong>Peloton</strong> - Roadrunner</li>
<li><strong>Student</strong> - Rosy the Robot</li>
</ul>
<h2>Combat Bots</h2>
<p><strong>1LB Winners (Double-elimination brackets)</strong></p>
<ul>
<li>DZ</li>
<li>Hopefull Narwall</li>
<li>Physique Red</li>
</ul>
<p><strong>3LB Winners (Round Robin-style brackets)</strong></p>
<ul>
<li>Project Darkness</li>
<li>Wicked Kitty</li>
<li>Speed Wedge</li>
</ul>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/7/6/19068908651_75c4366b4d_k.jpg"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/7/6/19068908651_75c4366b4d_k.jpg" alt="alt text" /></a></p>
<p style="text-align:center;"><em>Firey destruction in the Combat Bot arena</em></p>
<p>You can see all of the ground competition scores <a href="https://avc.sparkfun.com/2015/scores">here</a>, and the combat bot tournament brackets are available <a href="http://challonge.com/AVCBeetles">here</a> (beetleweight) and <a href="http://challonge.com/Antweights">here</a> (antweight). And if you need <strong>EVEN MORE AVC MEMORIES</strong>, check out all the photos of the event <a href="https://www.flickr.com/photos/sparkfun/sets/72157654869278586">here</a>! We&rsquo;ll see you next year!</p>
<p><small><a href="https://www.sparkfun.com/news/1876#comments">comments</a> | <a href="https://www.sparkfun.com/news/1876/comments.xml">comment feed</a></small></p>New Product Friday: Gesture Normal Product PostSparkFun Electronicsurn:uuid:8f078abf-508f-2604-e143-c7de2074f7e12015-07-10T00:00:00-06:00<p>Hello hello! I&rsquo;m back and I have new products. We&rsquo;re going to do things a bit differently this week since we only have two things to talk about. I&rsquo;m going to dive right in and talk about the first new product. Here we go&hellip;</p>
<div >
<div class="tile product-tile has_addl_actions big grid " data-id="12780" itemscope itemtype="http://schema.org/Product">
<meta itemprop="brand" content="SparkFun">
<meta itemprop="mpn" content="SEN12780">
<meta itemprop="sku" content="SEN-12780">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/12780">
<img src="https://cdn.sparkfun.com/r/500-500/assets/parts/9/5/8/5/12780-01.jpg" alt="ZX Distance and Gesture Sensor" height="500" itemprop="image">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" method="post" onsubmit="$(this).cart('add', 12780, $('#add_qty_12780').val(), 'add_product_tile'); return false;">
<input type=hidden name=id value="12780">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='f7c85a7f69f32455bc76cd9b78ce6ef4a41b7492169beaabc84b4e37608fdad7a0949226669cb42f3a9f9ae26ccd42743c28bfca695bb7aea599611748c56db6'> <!-- Add to Cart -->
<input type="number" class="quantity form-control" size="4" name="qty" id="add_qty_12780" value="1">
<input type="submit" class="btn btn-cart btn-action" id="add_button_12780" value="Add to Cart">
<div id="added_to_cart_12780" style="display: none;">
<p class="success-message">
Added <span id="added_qty_12780"></span> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</form>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/12780" itemprop="url">
<span itemprop="name">ZX Distance and Gesture Sensor</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://www.sparkfun.com/static/bubbles/" title="in stock"><span class=sfe-icon-stock-in><span class=visuallyhidden>In stock</span></span></a>
</span>
<span class="sku" itemprop="sku">
SEN-12780 </span>
<p class="description" style="display:none" itemprop="description">
The ZX Distance and Gesture Sensor is a touchless sensor that is capable of looking for simple gestures. Developed in conjunc&hellip; </p>
</div>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<div class="prices">
<span class="price price-sale">
<span itemprop="priceCurrency" content="USD">$</span>
<span itemprop="price" content="24.95">24.95</span>
</span>
</div>
<link itemprop="availability" href="http://schema.org/InStock">
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="12780">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">10</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="12780" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu pull-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<p>The ZX Distance and Gesture Sensor is a touchless sensor that is capable of looking for simple gestures. The very smart people at <a href="http://www.gesturesense.com/xyz/">XYZ Interactive</a> have created a unique technology that allows for simple infrared beams to be used to detect an object’s location in two dimensions. That means that not only can you detect gestures or had movements over the board, but you can also use it to determine distance, or how far away an object is from the sensor. The board communicates over I2C or UART. Want to see it in action? Good, we have a video for you.</p>
<div class="flex-video-wrap clearfix">
<div class="flex-video widescreen img">
<iframe src="https://www.youtube.com/embed/lvr1SKRGgqc/?autohide=1&amp;border=0&amp;wmode=opaque&amp;enablejsapi=1" frameborder=0 allowfullscreen width="560" height="315"></iframe>
</div>
</div>
<div >
<div class="tile product-tile has_addl_actions big grid " data-id="13663" itemscope itemtype="http://schema.org/Product">
<meta itemprop="brand" content="SparkFun">
<meta itemprop="mpn" content="ROB13663">
<meta itemprop="sku" content="ROB-13663">
<div class="actions-wrap">
<a class="thumb" href="https://www.sparkfun.com/products/13663">
<img src="https://cdn.sparkfun.com/r/500-500/assets/parts/1/1/0/9/1/13663-04.jpg" alt="uArm - Desktop Robotic Arm" height="500" itemprop="image">
</a>
<div class="actions" style="display:none">
<form class="form-inline" action="https://www.sparkfun.com/cart/add" method="post" onsubmit="$(this).cart('add', 13663, $('#add_qty_13663').val(), 'add_product_tile'); return false;">
<input type=hidden name=id value="13663">
<input type=hidden name=qty value="1">
<input type='hidden' name='csrf_token' value='f7c85a7f69f32455bc76cd9b78ce6ef4a41b7492169beaabc84b4e37608fdad7a0949226669cb42f3a9f9ae26ccd42743c28bfca695bb7aea599611748c56db6'> <!-- Add to Cart -->
<input type="number" class="quantity form-control" size="4" name="qty" id="add_qty_13663" value="1">
<input type="submit" class="btn btn-cart btn-action" id="add_button_13663" value="Add to Cart">
<div id="added_to_cart_13663" style="display: none;">
<p class="success-message">
Added <span id="added_qty_13663"></span> to your <a href="https://www.sparkfun.com/cart">cart</a>!
</p>
</div>
</form>
</div>
</div><!--/.actions-wrap-->
<div class="main">
<h3 class="title">
<a href="https://www.sparkfun.com/products/13663" itemprop="url">
<span itemprop="name">uArm - Desktop Robotic Arm</span>
</a>
</h3>
<span class="bubbles" style="display:none">
<a data-toggle="notify" href="https://www.sparkfun.com/static/bubbles/" title="17 available"><span class=sfe-icon-stock-low><span class=visuallyhidden>17 available</span></span></a>
</span>
<span class="sku" itemprop="sku">
ROB-13663 </span>
<p class="description" style="display:none" itemprop="description">
The uArm is an Arduino-powered, 4-axis robot arm that has been modeled after industrial pallet packing and car building robot&hellip; </p>
</div>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<div class="prices">
<span class="price price-sale">
<span itemprop="priceCurrency" content="USD">$</span>
<span itemprop="price" content="339.95">339.95</span>
</span>
</div>
<link itemprop="availability" href="http://schema.org/InStock">
</div>
<div class="addl_actions">
<span class="fave_widget simple">
<a href="#" class="fave_btn " title="Add to favorites" data-entity="products" data-entity-id="13663">
<span class="fave_yes">
<span class="glyphicon glyphicon-heart"></span>
<span class="name">Favorited</span>
</span>
<span class="fave_no">
<span class="glyphicon glyphicon-heart-empty"></span>
<span class="name">Favorite</span>
</span>
</a>
<span class="fave_count">5</span>
</span> <div class="dropdown wishlist-dropdown simple ">
<a class="btn btn-default btn-sm dropdown-toggle" title="Add to wish list" data-toggle="dropdown" data-product-id="13663" data-source="add_product_tile" href="#">
<span class="glyphicon glyphicon-list"></span>
<span class="name">Wish List</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu pull-right" role="menu"></ul>
</div>
</div>
</div>
</div>
<p>This week we also have the new version of the popular uArm. The uArm is an Arduino-powered, 4-axis robot arm that has been modeled after industrial pallet packing and car building robots which can be set up and used straight off of your desktop. Each uArm is equipped with three digital servos at the base to control the basic movement of the arm and an additional mini servo attached to the end-effector that moves and rotates the object you are lifting with your chosen manipulator. The new version has essentially the same functionality as the previous version, but gets an upgrade to the overall structure (base, electronics housing, etc) and has a new lower price point.</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/7/5/17de49c5-cf2b-4d6d-812a-62a62f2ea958.jpg"><img src="https://cdn.sparkfun.com/assets/home_page_posts/1/8/7/5/17de49c5-cf2b-4d6d-812a-62a62f2ea958.jpg" alt="alt text" /></a></p>
<p>Finally to celebrate Nikola Tesla&rsquo;s birthday we are taking 10% off all <a href="https://www.sparkfun.com/categories/272">SparkFun Blocks</a> for Intel Edison. This rare sale only lasts until midnight MST today, so get them <s>before someone launches a smear campaign about your superior current</s> while they last!</p>
<p>That&rsquo;s all I have for this week. As always, thanks for coming back and checking out the new stuff. See you next week!</p>
<p><small><a href="https://www.sparkfun.com/news/1875#comments">comments</a> | <a href="https://www.sparkfun.com/news/1875/comments.xml">comment feed</a></small></p>Designing a control system for a robot battle arenaSparkFun Electronicsurn:uuid:598290d9-defd-0620-b802-2ab09389e9f82015-07-09T07:10:11-06:00<p>If you made it to AVC this year, you probably got a chance to see some robot fighting! Our arena had locking doors, LED lighting, hazards, big 7-segment displays and a control panel. If you didn&rsquo;t make it out to the event, skip through the recorded feed (<a href="https://youtu.be/cwLwzai4o7o?t=2307">Sparkfun AVC 2015 Recored stream, 38:27</a>) to see the arena in action.</p>
<p>I volunteered to help run the battle arena. Unbeknown to me at the time, this also volunteered me to help <em>build</em> the battle arena – not that I had any objection. This post shows the process that went on in order to develop the control system.</p>
<h2>Initial Specification</h2>
<p>Our resident battling robot expert <a href="https://www.sparkfun.com/users/461319">Casey</a> was buying parts and attaching LED strips to the arena in the weeks leading up to the event. Being a maker I wanted to help out, but I had no idea what the master plan inside Casey&rsquo;s head was. On the Monday before AVC the arena was coming together, so I asked Casey, &ldquo;So&hellip;how is this stuff going to be controlled?&rdquo;</p>
<p>And he drew me this:</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/7/4/board-sketch.jpg"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/7/4/board-sketch.jpg" alt="alt text" /></a></p>
<p>After a bit of conversation, I found out that the arena and its switches, LEDs, buttons and hazards would be driven by a microcontroller, and that the judges would control the thing through a panel. We decided that it was probably not the best idea to run bundles of parallel wires from the arena to the panel, and that we could send serial and transfer the complexity into code. We agreed on a topology where the arena would control all the peripherals, and the controller would be basically dumb, and function as an IO unit for the arena.</p>
<h2>Building the panel</h2>
<p>My conversation wtih Casey was very brief and my knowledge on battle arenas is quite limited so I decided to lay out a panel and show it to the customer (Casey).</p>
<p>First, I gathered all my materials from our warehouse and measured them. Then I created a &lsquo;master&rsquo; shape layout using OpenOffice Draw, a surprisingly useful (yet aggravating) vector tool.</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/7/4/panel-shapes.jpg"><img src="https://cdn.sparkfun.com/assets/home_page_posts/1/8/7/4/panel-shapes.jpg" alt="alt text" /></a></p>
<p style="text-align:center;"><em>This is all the shapes in the panel about the same origin. I found the blue &lsquo;fiducial&rsquo; in the corner allowed me to stay on grid and have a handle to grab objects by. This &lsquo;master&rsquo; shape was copied for each component type and pruned off the other shapes.</em></p>
<p>Then I drew the thing out, making use-case assumptions about button spacing and layout.</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/7/4/master_sheet.jpg"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/7/4/master_sheet.jpg" alt="alt text" /></a></p>
<p style="text-align:center;"><em>The master layout. The guidelines and handles are removed before cutting</em></p>
<p>The next step was to show the customer. This brought to light exactly how big that giant e-stop button really is, and gave a sense of proportion.</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/7/4/proof-sheet2.JPG"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/7/4/proof-sheet2.JPG" alt="alt text" /></a></p>
<p style="text-align:center;"><em>The 1:1 scale model</em></p>
<p>After Casey verbally signed off on the prototype it was down to our Epilog laser cutter. I cut the shape, built a 1x4 box for the edges and assembled the panel. Last minute I decided to try combining raster etching with cutting in the same print job, which was a mistake. Because the model didn&rsquo;t have text, no one reviewed the design and the &ldquo;TAP-OUT&rdquo; section was mislabled – it should have been labeled &ldquo;COUNT-OUT.&rdquo;</p>
<p>Electrical assembly was very straightforward. Wires were attached to the buttons, the RedBoard was sticky-foam-taped down, and wires attached as orderly as possible in the chaos of proto-development.</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/7/4/wiring.JPG"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/7/4/wiring.JPG" alt="alt text" /></a></p>
<p style="text-align:center;"><em>This wiring looks like a rats' nest because it is. Like wires are bundled, but really the organization of the wires was very elementary. A few things to notice: The RedBoard&rsquo;s sockets were removed for SMT wire attachment, the LED&rsquo;s current limiting resistors were in-wire with heatshrink, and the buttons were common-ground, acting as pull-down switches.</em></p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/7/4/assembled_panel.JPG"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/7/4/assembled_panel.JPG" alt="alt text" /></a></p>
<p style="text-align:center;"><em>The assembled panel! Notice that text centering isn&rsquo;t perfect. The laser cutter&rsquo;s computer had a slightly different font set; next time I&rsquo;ll plan to adjust these at the cutter before sending the job.</em></p>
<h2>Programming</h2>
<h3>High-Level Topology</h3>
<p>This was the first time I&rsquo;d ever created a battle arena for robots, so the function was completely foreign to me. From what I&rsquo;ve seen on TV I knew there was a match time limit and, at some point, the hazards turned on. Instead, I started by drawing a top-level diagram of how the electronic systems operated, to the best of my knowledge (if I don&rsquo;t know how something will be, I generalize – when starting it&rsquo;s much more important to draw a box with a &ldquo;?&rdquo; in it than to get bogged down and do nothing).</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/7/4/top-level.png"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/7/4/top-level.png" alt="alt text" /></a></p>
<p style="text-align:center;"><em>The system consisted of two parts. Above the dashed line is the judges' panel, made of buttons, LEDs, switches and a 7-segment display. Below is the arena itself, which drove the LED strips, hazards, buttons and LEDs, read button states and door states, and had a mirrored 7-segment display. The two were joined by serial link.</em></p>
<p>At this stage we had a classic &ldquo;A magically connects to B&rdquo; scenario. Using the knowledge that Arduino serial streams like to be ASCII oriented, I developed a system of using ASCII alphanumeric representations of raw data on the serial stream, rather than trying to send raw data. <em>Actually</em> I used code from the <a href="https://www.sparkfun.com/products/13311">Teensy 3.1 XBee Adapter</a> GitHub that I had previously written to jockey button data over wireless in a simple ASCII packet. I wouldn&rsquo;t have been able to complete this project in time without re-using code I previously developed.</p>
<p>To ensure I wouldn&rsquo;t code myself into a hole, I specified the format of these ASCII packets in a document.</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/7/4/packet-spec.png"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/7/4/packet-spec.png" alt="alt text" /></a></p>
<p style="text-align:center;"><em>The packet specification. The ASCII packet uses tilde (~) to indicate the beginning of a packet. Data takes the form of ASCII Hex values and thus only represents 4 bits, so MSB becomes MSN, the most significant nibble. The packet is of known size and has slots for CRC and packet numbers, though neither were implemented.</em></p>
<p>Here&rsquo;s an example of a packet I sent to the controller in order to test the functions:</p>
<pre><code>~9555 A432100BEEF
</code></pre>
<h3>Controller-Side Design</h3>
<p>The controller had two main functions:</p>
<ul>
<li>When a button changed, it sent the packet</li>
<li>If a packet came in, it changed the LED and 7-segment states</li>
</ul>
<p>Now came the real work. I needed to answer the question, &ldquo;How do I make the program?&rdquo; Again, I drew generally. I knew there was a serial stream that drove the 7-segment displays, so I just made a box with &ldquo;Serial&rdquo; in it (this could be SPI, I2C, or UART, I don&rsquo;t really care). It solved that problem in my mind though, so I drew it and moved on.</p>
<p>(I ended up driving the 7-segment with I2C.)</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/7/4/controller-innards.jpg"><img src="https://cdn.sparkfun.com/assets/home_page_posts/1/8/7/4/controller-innards.jpg" alt="alt text" /></a></p>
<p style="text-align:center;"><em>The controller topology. Loosely, a box is a C++ class. You can see that the Panel class contains the Panel Components class, though it&rsquo;s not 100% accurate. &ldquo;panelComponents.cpp&rdquo; is actually a file that that contains button, knob, LED, and switch classes that become members of the Panel object for each physical thing on the board. Again, the value of the diagram is in straightening out how the code will be assembled, not the details.</em></p>
<p>Having drawn the document, I knew what modules I would be bolting together to make the thing work. They were:</p>
<ul>
<li>Panel &ndash; a basic container for panel components</li>
<li>PanelComponents &ndash; definition of panel LEDs, buttons, knobs (none in this project) and switches</li>
<li>timerModule &ndash; a class that generated a sort of call-back, sourced from an interrupt-driven timer</li>
<li><a href="https://www.sparkfun.com/products/11442">7-Segment Serial Display</a> drivers &ndash; Implanted into the main sketch</li>
<li>Packet driver from the <a href="https://www.sparkfun.com/products/13311">Teensy 3.1 XBee Adapter</a> &ndash; implemented into the main sketch</li>
</ul>
<p>Basically, these were all things I&rsquo;ve used before in other projects. Programming became an excercise in making up new names for all the objects, as well as ironing out code I never thought would see the light of day again.</p>
<p>One thing I did have to code fresh was the LED drivers. I already had the panel components included but never needed the LED object. I duplicated a button to start with and coded it to display on, off, or flashing. All LEDs inside the same panel were tied to the same flash signal, so when a group of buttons were set to flash, they flashed in unison! Things like this make me happy, as well as serve to grow my collection of code snippets.</p>
<h3>Arena side design</h3>
<p>While I was developing these systems, Casey was busy shifting the low-level microcontroller signals to higher voltage and current levels to drive the systems of the arena.</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/7/4/arena-controller.JPG"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/7/4/arena-controller.JPG" alt="alt text" /></a></p>
<p style="text-align:center;"><em>The arena control box &ndash; with waxed paper to protect the sticky side of the foam tape.</em></p>
<p>I didn&rsquo;t have access to that box or to the specifics of how the peripherals were attached, so I had to make do with a dummy arena, consisting of an Atmega 328p RedBoard with a serial link. This was a situation where I had absolutely no idea what the target was going to be, but I had to work anyway. I developed a topology that showed the elements I knew would exist, and worked from there.</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/7/4/Arena-topology.jpg"><img src="https://cdn.sparkfun.com/assets/home_page_posts/1/8/7/4/Arena-topology.jpg" alt="alt text" /></a></p>
<p style="text-align:center;"><em>The test arena topology</em></p>
<p>From the diagram, you can see that that the program interfaced the serial monitor port of the development computer and the controller. Now that I had working controller code in hand, I re-used the packet logic directly and had decently quick success in getting this implementation to operate.</p>
<p>The challenge of writing the code for the arena was the state machine that made the arena operate as the battling game. I really thought of this system as the type of thing you would expect from an arcade game, partly because it used arcade buttons, but more because the UI was very call-and-response oriented. I did a thing; the arena responds.</p>
<p>Using the basic ideas I talked about in my last post, <a href="https://www.sparkfun.com/news/1801">State Machines: blink.ino learns to snooze</a>, I guessed at a state machine that would operate as Casey and I had been talking about.</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/7/4/state-diagram.jpg"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/7/4/state-diagram.jpg" alt="alt text" /></a></p>
<p style="text-align:center;"><em>The state diagram</em></p>
<p>Now, this is a super odd state diagram. I&rsquo;ve noted that this state machine also has interrupt capabilities, it&rsquo;s not 100% defined, and there are a few states just hanging out or not directed back to anywhere in particular. For instance, I knew the E-Stop button should drop everything and go back to idle. Well, I knew there needed to be an E-Stop function, but I wasn&rsquo;t really sure where it would go. There&rsquo;s a buzzer state yet the arena had no buzzer, so that was dropped. Again, it was a case where I wasn&rsquo;t ready to plow into code but I needed to mark down some of my ideas, and this state diagram was the result.</p>
<p>Truth be told, I think the &ldquo;Second Stage&rdquo; was dropped altogether. I went through three iterations with Casey where I ran the code and asked him, &ldquo;Is this how it&rsquo;s supposed to act?&rdquo; I never got lost working on the first iteration because I had a map, and it wasn&rsquo;t very difficult to modify the operation after the base state machine was functional.</p>
<p>When the arena controller was complete, Casey passed me off a list of IO pins. I hooked them into the code, targeted the Mega rather than the Uno, re-mapped the SoftSerial to a spare hardware UART, and the code ran. I didn&rsquo;t even have to change my interrupt routines; the port naming convention is standard between the two microcontrollers.</p>
<p>Finally, here are the modules that were rolled into the arena controller&rsquo;s code:</p>
<ul>
<li>Panel &ndash; a basic container for panel component</li>
<li>PanelComponents &ndash; used for the player buttons</li>
<li>timerModule &ndash; a class that generated a sort of call-back sourced from an interrupt-driven timer</li>
<li><a href="https://www.sparkfun.com/products/13279">Large Digit Driver</a> modified drivers &ndash; these large 7-segment displays are <em>really cool</em></li>
<li>Packet driver from freshly completed controller &ndash; implemented into the main sketch</li>
<li>Arena state machine &ndash; class containing the state machine logic</li>
</ul>
<h2>Lessons Learned</h2>
<p><strong>Plan for code re-use</strong> &ndash; You never know when a project you&rsquo;re working on will need a piece you&rsquo;ve previously used. Writing modulular code and keeping it maintained in a working project folder will allow you to save time and effort over and over again. My timerModule class makes it into pretty much any project I do, to the extent that I ported it to Teensy and now maintain that too.</p>
<p><strong>Document a plan for development</strong> &ndash; I never felt bogged down with that uneasy feeling that I&rsquo;m just digging myself in when working. I always had a target and that kept me sane. (Ok, I dug myself in a bit around the 4 a.m. hour Friday night, but I don&rsquo;t have clear documentation for that part of the project so it&rsquo;s no surprise.)</p>
<p><strong>Proof your text with the customer</strong> &ndash; Save yourself the embarrassment.</p>
<p><strong>Check your fonts</strong> &ndash; When using CAD software with fonts, make sure the fonts are identical to the ones on the computer that is going to be doing the control. This actually comes up now and again with PCB layout. Sometimes the way our computers render the boards is different from the fab house. <em>Sometimes</em> the difference is a short circuit.</p>
<p><strong>Don&rsquo;t ask Casey if he needs any help</strong> &ndash; I lied, I would ask him again twice over.</p>
<h2>Conclusion</h2>
<p>There&rsquo;s a couple kinds of &ldquo;making&rdquo; in my mind. There&rsquo;s &ldquo;making to accomplish,&rdquo; and &ldquo;making just to see if you can.&rdquo; The latter seems a bit useless, but all the things I discovered while just trying things out for fun became the building blocks when it was time to make for accomplishment. The panel construction method, code modules, documentation – and basically everything – were a re-use from previous projects.</p>
<p>The entire time I was writing this post I debated releasing the code (rather, telling you the location of the open-source code). I decided to allow it into the wild with the following disclaimer.</p>
<p><strong>Disclaimer:</strong> The following repository has not been polished since AVC, and may not be until Casey gets a new chamber that needs a controller, at which point this disclaimer will be removed.</p>
<p><a href="https://github.com/marshalltaylorSFE/RobotDeathBox">Robot battle arena repository</a></p>
<p>Happy making!</p>
<p>Marshall</p>
<p><small><a href="https://www.sparkfun.com/news/1874#comments">comments</a> | <a href="https://www.sparkfun.com/news/1874/comments.xml">comment feed</a></small></p>Q & A: The PCB Workstation with Articulated ArmsSparkFun Electronicsurn:uuid:8a739eb7-1adc-f06a-b9ec-1128479e5fca2015-07-08T09:35:41-06:00<p>We host a <a href="https://www.sparkfun.com/project_calls">project submission form</a> on the SparkFun site to get a glimpse into the awesome projects our customers are working on, and sometimes one comes across our desks that we find so intriguing, we have no choice but to dig deeper. A couple months ago, Giuseppe Finizia sent us some info about a modification project he&rsquo;s been working on as the senior analyst of the Electronic Forensics Unit of the Carabinieri (Italian police). Giuseppe had been using the SparkFun <a href="https://www.sparkfun.com/products/11784">Third Hand Kit</a> and decided he needed something more specialized for his work, so he built The PCB Workstation with Articulated Arms. We contacted him to get more information about the whats and whys of his inventions; read on to learn more!</p>
<p><strong>Tell us a little more about your project and how it came to be.</strong></p>
<p>I am a Computer Engineer and I work as Chief Warrant Officer in the Scientific Investigations Department of the Carabinieri. In particular, I am the Senior Analyst of the Electronic Forensics Unit of the Carabinieri, and I deal with technical investigations on seized electronic devices. I spend almost all day in a well-equipped electronic laboratory. However, very often I feel the need for a tool I could place a PCB on to perform technical assessments, such as acquiring data from a circuit memory, analyzing an I2C or SPI communication bus using a logic state analyzer, and much more. In all these cases, until now, I used the usual &ldquo;third hand&rdquo; tool, but then I decided to create a specific tool for my needs. So, I designed this <a href="http://www.thingiverse.com/thing:801279">&ldquo;PCB Workstation with Articulated Arms,&rdquo;</a> with which I can now connect the lab instruments to the individual electronic components to be analyzed.</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/7/2/PCB_Workstation_1.jpg"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/7/2/PCB_Workstation_1.jpg" alt="PCB Workstation with Articulated Arms" /></a></p>
<p style="text-align:center;"><em>The PCB Workstation with Articulated Arms</em></p>
<p>During the last few weeks I have further developed this tool, making a set of additional accessories to connect more test clip probes of different types. Also, several improvements have been made, such as using small pieces of heat shrink tube to coat the ball &amp; socket joints, giving more rigidity to the articulated arms, and passing the electric wire through the first joint of the articulated arm instead of the engaging hole of the arm on the base frame. Among the latest additions I made is a terminal element that can accommodate an LED to illuminate a particular area of the PCB. I used a <a href="https://www.sparkfun.com/products/531">super bright white LED</a> connected to a 9V battery using a 180 Ohm resistor. I have also made a “Bases Linkage” piece that can be used to couple two bases when you have to work with big PCBs. I am still designing more parts as add-on kits, and they will be released as soon as possible.</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/7/2/PCB_Workstation_8.png"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/7/2/PCB_Workstation_8.png" alt="Upgraded ball and socket joints" /></a></p>
<p style="text-align:center;"><em>Coating the ball &amp; socket joints with heat shrink</em></p>
<p>I printed all the parts of this project using my personal ZORTRAX M200 3D printer – a very accurate machine. Some pieces of this project require support structures to correctly build the overhanging parts. All the pieces were printed with full infill except the base, for which I selected a medium infill to minimize any warping.</p>
<p><strong>Can you describe your job in more detail? What kinds of electronics do you deal with, &amp; what methods do you use to reverse engineer some of them?</strong></p>
<p>I can tell you that I have dealt with computer forensics for about 14 years, during which I gained a lot of technical experience dealing with programming, reverse engineering, hacking, network forensics and more. In particular, since 2001 I have specialized in electronics forensics, dealing with technical assessments that primarily require the recovery of data from electronic devices that are often either not properly functioning or are handcrafted by criminals in order to gain an illicit profit.</p>
<p>Among these devices, I have been concerned in particular with the so-called &ldquo;skimmers&rdquo; – those devices handmade by criminals to capture data from electronic payment cards used at bank ATM. Since these skimmers are not industrial production and are obviously not readily available on store shelves, my office has long had great difficulty with this technology. For this reason, I dealt with the implementation of a specific electronic device (that I named “McDD Touch” – Memory Chip Data Dumper) that would be able to acquire and analyze data stored in the memory chips of these skimmers. This work led me also to the achievement of a national patent that, for “special working conditions,” I had to give to my office while remaining the inventor of this electronic device.</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/7/2/McDD_touch_1.jpg"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/7/2/McDD_touch_1.jpg" alt="alt text" /></a></p>
<p style="text-align:center;"><em>The McDD Touch</em></p>
<p>Another area in which I was able to build a specific electronic equipment, which I named “McDD plus,&ldquo; was for the acquisition of data from the memory chips of smartphones. Often it happens that such devices are malfunctioning, so you need to go directly to the memory chips to extract all user documents and information. I developed for my laboratory a procedure that initially involves the removal of the eMMC memory chip from the PCB of the smartphone, and then this chip is inserted in my device to acquire and analyze data.</p>
<p style="text-align:center;"> <a href="https://cdn.sparkfun.com/assets/home_page_posts/1/8/7/2/McDD_plus_1.jpg"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/1/8/7/2/McDD_plus_1.jpg" alt="alt text" /></a></p>
<p style="text-align:center;"><em>The MCDD Plus</em></p>
<p>I also deal with recovering data from damaged hard disk and USB pen drives, restoring of video and audio streams from DVR Security and Surveillance Systems, extracting data from GPS navigators to reconstruct the routes covered, analyzing radio frequency jammer devices, and more. I am currently considering the possibility of developing a project for the creation of an “anti-drone drone&hellip;"</p>
<p><strong>Thanks for sharing more about your projects Giuseppe, and best of luck with your future inventions!</strong></p>
<p><small><a href="https://www.sparkfun.com/news/1872#comments">comments</a> | <a href="https://www.sparkfun.com/news/1872/comments.xml">comment feed</a></small></p>Project RoundupSparkFun Electronicsurn:uuid:23be6d4c-f97a-1270-e828-22419e8964fb2015-07-07T09:36:24-06:00<p>Most Fridays in our traditional New Product Posts, we try to do a fun demo for our favorite new item. Sometimes it can be hard to look at a board or tool and know exactly what it could be used for without a demo, and sometimes we come out with something we think is so cool we can&rsquo;t help ourselves. Either way, a project we&rsquo;ve worked on can sometimes get buried in the overwhelming glory of the full Friday post, so we&rsquo;ve pulled a few of our favorites from the past month in case you missed them - check &lsquo;em out!</p>
<div class="flex-video-wrap clearfix">
<div class="flex-video widescreen img">
<iframe src="https://www.youtube.com/embed/uC9CkhJiIaQ/?autohide=1&amp;border=0&amp;wmode=opaque&amp;enablejsapi=1" frameborder=0 allowfullscreen width="560" height="315"></iframe>
</div>
</div>
<p style="text-align:center;"><em>The Speed Trap - featuring the <a href="https://www.sparkfun.com/products/13279">Large Digit Driver</a></em></p>
<div class="flex-video-wrap clearfix">
<div class="flex-video widescreen img">
<iframe src="https://www.youtube.com/embed/aLkYLbIa95c/?autohide=1&amp;border=0&amp;wmode=opaque&amp;enablejsapi=1" frameborder=0 allowfullscreen width="560" height="315"></iframe>
</div>
</div>
<p style="text-align:center;"><em>The SparkFun <a href="https://www.sparkfun.com/products/13660">WAV Trigger</a></em></p>
<div class="flex-video-wrap clearfix">
<div class="flex-video widescreen img">
<iframe src="https://www.youtube.com/embed/M02g9dDLh8Y/?autohide=1&amp;border=0&amp;wmode=opaque&amp;enablejsapi=1" frameborder=0 allowfullscreen width="560" height="315"></iframe>
</div>
</div>
<p style="text-align:center;"><em>The <a href="https://www.sparkfun.com/products/13201">Ardumoto Shield Kit</a></em></p>
<p>Got any suggestions for a project we could build with one of your favorite SparkFun products? Drop some idea bombs on us in the comments!</p>
<p><small><a href="https://www.sparkfun.com/news/1873#comments">comments</a> | <a href="https://www.sparkfun.com/news/1873/comments.xml">comment feed</a></small></p>