<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:clearspace="http://www.jivesoftware.com/xmlns/jive/rss" version="2.0">
  <channel>
    <title>Raspberry Pi</title>
    <link>https://www.element14.com/community/community/raspberry-pi/blog</link>
    <description>The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn programming.</description>
    <pubDate>Mon, 10 Jul 2017 15:58:53 GMT</pubDate>
    <generator>Jive Engage 8.0.5.0  (http://jivesoftware.com/products/)</generator>
    <dc:date>2017-07-10T15:58:53Z</dc:date>
    <item>
      <title>Sense Hat Color Chooser</title>
      <link>https://www.element14.com/community/community/raspberry-pi/blog/2017/07/10/sense-hat-color-chooser</link>
      <description>&lt;!-- [DocumentBodyStart:d1eb803d-7b01-4912-8f3f-f7c5ab118b1d] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;Ive moved into a new house and came across a sense hat for the raspberry pi which made me remember a little project that I was working on, its basically a html based color chooser which updates the selected colour on the sense hat so I thought I'd share the scripts etc.. incase anybody finds them helpful / useful.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span id="063c2e5d_75e8_471b_a31f_909cc6927dc5"&gt;&lt;div class="e14-video-container" style="max-width: 520px;"&gt;&lt;div class="e14-video"&gt;&lt;iframe allowfullscreen="" data-htmlsrc="VideoPluginMacro" mozallowfullscreen="" src="//players.brightcove.net/1362235890001/NkxiVJdjx_default/index.html?videoId=5500670660001" webkitallowfullscreen=""&gt;
&lt;/iframe&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;To start with I was running lighttpd on the Raspberry Pi which is a lightweight webserver, very simple to use and just requires a small modification to its config file to allow it to run Python scripts.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Below is the html, javascript, css and python&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;sensehatdisplay.html&lt;/p&gt;&lt;!--[CodeBlockStart:1b71649f-7bec-4d51-935d-acca5b4e66f2][excluded]--&gt;&lt;pre class="plain" name="code"&gt;&amp;lt;html&amp;gt;
&amp;lt;body&amp;gt;

&amp;#160;&amp;#160;&amp;#160; &amp;lt;link rel="stylesheet" type="text/css" media="all" href="shstyles.css"/&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;script src="shcommon.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;

&amp;#160;&amp;#160;&amp;#160; &amp;lt;div id="colordisplay"&amp;gt;&amp;lt;/div&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;div id="colorcontrols"&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;p class="colorcontrollabel"&amp;gt;R&amp;lt;/p&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;input id="redslider" class="slider" type="range"&amp;#160; min="0" max="255" value="255" onchange="slideRed(this.value)" /&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;p id="redvaluelabel" class="colorvaluelabel"&amp;gt;255&amp;lt;/p&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;br&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;p class="colorcontrollabel"&amp;gt;G&amp;lt;/p&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;input id="greenslider" class="slider" type="range"&amp;#160; min="0" max="255" value="90" onchange="slideGreen(this.value)" /&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;p id="greenvaluelabel" class="colorvaluelabel"&amp;gt;90&amp;lt;/p&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;br&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;p class="colorcontrollabel"&amp;gt;B&amp;lt;/p&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;input id="blueslider" class="slider" type="range"&amp;#160; min="0" max="255" value="90" onchange="slideBlue(this.value)" /&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;p id="bluevaluelabel" class="colorvaluelabel"&amp;gt;90&amp;lt;/p&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;/div&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;input type="button" value="update" onClick="setSenseHatColorDisplay()"&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;p id="outputarea"&amp;gt;output area&amp;lt;/p&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;&lt;!--[CodeBlockEnd:1b71649f-7bec-4d51-935d-acca5b4e66f2]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;shcommon.js&lt;/p&gt;&lt;!--[CodeBlockStart:198f030b-fce2-457d-a58c-27c7bff97261][excluded]--&gt;&lt;pre class="javascript" name="code"&gt;var colorred = 255;
var colorblue = 90;
var colorgreen = 90;

function slideRed(newvalue){
&amp;#160;&amp;#160;&amp;#160; document.getElementById("colordisplay").style.background="rgb("+newvalue+","+colorgreen+","+colorblue+")";
&amp;#160;&amp;#160;&amp;#160; document.getElementById("redvaluelabel").innerHTML=newvalue;
&amp;#160;&amp;#160;&amp;#160; colorred = newvalue;
}

function slideGreen(newvalue){
&amp;#160;&amp;#160;&amp;#160; document.getElementById("colordisplay").style.background="rgb("+colorred+","+newvalue+","+colorblue+")";
&amp;#160;&amp;#160;&amp;#160; document.getElementById("greenvaluelabel").innerHTML=newvalue;
&amp;#160;&amp;#160;&amp;#160; colorgreen = newvalue;
}

function slideBlue(newvalue){
&amp;#160;&amp;#160;&amp;#160; document.getElementById("colordisplay").style.background="rgb("+colorred+","+colorgreen+","+newvalue+")";
&amp;#160;&amp;#160;&amp;#160; document.getElementById("bluevaluelabel").innerHTML=newvalue;
&amp;#160;&amp;#160;&amp;#160; colorblue = newvalue;
}

function setSenseHatColorDisplay(){
var colorstring = colorred+"|"+colorgreen+"|"+colorblue;
var req = new XMLHttpRequest();
req.onreadystatechange = function() {
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (this.readyState == 4 &amp;amp;&amp;amp; this.status == 200) {
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; document.getElementById("outputarea").innerHTML = this.responseText;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }
&amp;#160;&amp;#160;&amp;#160; };
req.open("POST","/cgi-bin/shcolorchooser.py",true);
req.send(colorstring);

}

&lt;/pre&gt;&lt;!--[CodeBlockEnd:198f030b-fce2-457d-a58c-27c7bff97261]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;shstyles.css&lt;/p&gt;&lt;!--[CodeBlockStart:a19810a1-8130-46f6-8cfe-201daffa003d][excluded]--&gt;&lt;pre class="css" name="code"&gt;html, body{
min-height: 100%;
height: 100%;
max-width: 100%;
}

#colordisplay{
&amp;#160;&amp;#160;&amp;#160; float: left;
&amp;#160;&amp;#160;&amp;#160; width: 120px;
&amp;#160;&amp;#160;&amp;#160; height: 120px;
&amp;#160;&amp;#160;&amp;#160; border: 1px solid black;
&amp;#160;&amp;#160;&amp;#160; background-color: rgb(255,90,90);
}

.colorslider{
&amp;#160;&amp;#160;&amp;#160; display: inline;
&amp;#160;&amp;#160;&amp;#160; width: 100px;
}

.colorcontrollabel{
&amp;#160;&amp;#160;&amp;#160; display: inline;
}

.colorvaluelabel{
&amp;#160;&amp;#160;&amp;#160; display: inline;
}

#colorcontrols{
&amp;#160;&amp;#160;&amp;#160; float: left;
&amp;#160;&amp;#160;&amp;#160; border: 1px solid black;
&amp;#160;&amp;#160;&amp;#160; width: 200px;
}
&lt;/pre&gt;&lt;!--[CodeBlockEnd:a19810a1-8130-46f6-8cfe-201daffa003d]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;shcolorchooser.py&lt;/p&gt;&lt;!--[CodeBlockStart:54f2aeb6-26af-454c-a029-5c352c5e204d][excluded]--&gt;&lt;pre class="python" name="code"&gt;#! /usr/bin/python
#

import sys
import os
from sense_hat import SenseHat

os.getenv("QUERY_STRING")
colorstring = sys.stdin.read()
#colorstring = "255|90|90"
colortup = colorstring.split("|")
redvalue = colortup[0]
greenvalue = colortup[1]
bluevalue = colortup[2]
print "Content-Type: text/html\n\n"



p = os.popen("sudo python /home/pi/www/cgi-bin/shcolor3.py "+redvalue+" "+greenvalue+" "+bluevalue)
p.close()




print '&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;meta content="text/html; charset=UTF-8" /&amp;gt;'
print "&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;"
&lt;/pre&gt;&lt;!--[CodeBlockEnd:54f2aeb6-26af-454c-a029-5c352c5e204d]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;shcolor3.py&lt;/p&gt;&lt;!--[CodeBlockStart:93974721-6245-459b-ad1d-b275771d1e9c][excluded]--&gt;&lt;pre class="python" name="code"&gt;import sys
import os
from sense_hat import SenseHat
sense = SenseHat()

#colorstring = sys.argv[1]


redvalue = int(sys.argv[1])
greenvalue = int(sys.argv[2])
bluevalue = int(sys.argv[3])

colortup = (redvalue,greenvalue,bluevalue)

canvas = [
colortup,colortup,colortup,colortup,colortup,colortup,colortup,colortup,
colortup,colortup,colortup,colortup,colortup,colortup,colortup,colortup,
colortup,colortup,colortup,colortup,colortup,colortup,colortup,colortup,
colortup,colortup,colortup,colortup,colortup,colortup,colortup,colortup,
colortup,colortup,colortup,colortup,colortup,colortup,colortup,colortup,
colortup,colortup,colortup,colortup,colortup,colortup,colortup,colortup,
colortup,colortup,colortup,colortup,colortup,colortup,colortup,colortup,
colortup,colortup,colortup,colortup,colortup,colortup,colortup,colortup
]

sense.set_pixels(canvas)
#sense.show_message(sys.argv[2])

&lt;/pre&gt;&lt;!--[CodeBlockEnd:93974721-6245-459b-ad1d-b275771d1e9c]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;It should be possible to merge the 2 python scripts but there was some stumbling over returning the html headers to the raspberry pi and updating the sense hat display from a single script so I used 1 script to get the data, process it, run a second python script and return the headers allowing the 2nd script to update the sense hat.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:d1eb803d-7b01-4912-8f3f-f7c5ab118b1d] --&gt;</description>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">sense hat</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">raspberry pi sense hat</category>
      <pubDate>Mon, 10 Jul 2017 15:58:00 GMT</pubDate>
      <author>messages@element14.com</author>
      <guid>https://www.element14.com/community/community/raspberry-pi/blog/2017/07/10/sense-hat-color-chooser</guid>
      <dc:date>2017-07-10T15:58:00Z</dc:date>
      <clearspace:dateToText>6 days 19 hours ago</clearspace:dateToText>
      <clearspace:replyCount>2</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://www.element14.com/community/community/raspberry-pi/blog/comment/sense-hat-color-chooser</wfw:comment>
      <wfw:commentRss>https://www.element14.com/community/community/raspberry-pi/blog/feeds/comments?blogPost=25828</wfw:commentRss>
    </item>
    <item>
      <title>Music Tech: The Raspberry Pi Looper, Created by Toby Hendricks</title>
      <link>https://www.element14.com/community/community/raspberry-pi/blog/2017/07/06/music-tech-the-raspberry-pi-looper-created-by-toby-hendricks</link>
      <description>&lt;!-- [DocumentBodyStart:640e5d30-1e7e-4d07-b304-170862c836f2] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;&lt;em&gt;Music has always been driven forward in part by the technology used to make it. The piano combined the best features of the harpsichord and clavichord to help concert musicians; the electric guitar made performing and recording different forms of blues, jazz, and rock music possible; and electronic drum machines both facilitated songwriting and spawned entire genres of music in themselves. Toby Hendricks, an electronic musician who records and performs as &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fsoundcloud.com%2Fotem-rellik" rel="nofollow" target="_blank"&gt;otem rellik&lt;/a&gt;, became dissatisfied with the iPad he used in live performance, and decided to build his own device using &lt;a class="jivecontainerTT-hover-container jive-link-community-small" data-containerId="1" data-containerType="14" data-objectId="2475" data-objectType="14" href="https://www.element14.com/community/community/raspberry-pi"&gt;Raspberry Pi&lt;/a&gt;.&lt;br/&gt;&lt;/em&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;div class="e14-video-container" style="max-width: 440px"&gt;&lt;div class="e14-video"&gt;&lt;iframe allowfullscreen="allowfullscreen" frameborder="0" height="330" scrolling="no" src="https://www.youtube.com/embed/_nBK8sAl9nw?wmode=transparent" width="440"&gt;
&lt;/iframe&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Q: What was the origin of the Looper project? You mention in the video that it replaced your iPad for live performances, were there deficiencies in the iPad, did you want features it didn&amp;#8217;t offer, and so on?&lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Toby: The origin dates back about three years, when I first started learning &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Fpuredata.info%2F" rel="nofollow" target="_blank"&gt;Pure Data&lt;/a&gt;. At that time I was using an iPad for live shows, and it seemed like nearly every year when iOS got updated some of the apps I was using would break. This trend has gotten better, but I still find it a bit unnerving to use iOS live. I sort of got sick of not having a reliable setup, so I started creating Pure Data patches for an app called &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Fdanieliglesia.com%2Fmobmuplat%2F" rel="nofollow" target="_blank"&gt;MobMuPlat&lt;/a&gt;. I fell in love with Pd (Pure Data), and eventually replaced all the apps I was using with one single Pd patch loaded into MobMuPlat. &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fyoutu.be%2FlzkYWZ0du3s" rel="nofollow" target="_blank"&gt;That looping/drum patch&lt;/a&gt; became pretty robust over the course of about three years, and then I decided to attempt to turn it into a complete standalone hardware unit.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Q: I make electronic music myself, and I always find when I get a new piece of hardware or software that there are features I didn&amp;#8217;t expect to be using or that I didn&amp;#8217;t know were there that I turn out to love. Despite the fact that you designed the Pi Looper, have you found yourself using it in ways you didn&amp;#8217;t expect?&lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25773-428880/IMG_0229.JPG"&gt;&lt;img alt="IMG_0229.JPG" class="image-1 jive-image" height="370" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25773-428880/556-370/IMG_0229.JPG" style="float: left; width:556px; height: 370.368px;" width="556"/&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Toby: Definitely. I&amp;#8217;m always finding ways to improve my live performances with it, mostly with the effects. I&amp;#8217;ve become pretty proficient in playing the effects section almost like its own instrument; the delay feedback can be infinite, so creating a short delay and then playing with the delay time mixed with the other effects can really create some cool sounds and textures. Also, if you already have a loop going, the delay time is synced with the tempo of the song, so you can get some really cool rhythmic stuff going on.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Q: Why did you choose the Raspberry Pi for this project? What advantages does it offer?&lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Toby: I chose &lt;a class="jivecontainerTT-hover-container jive-link-community-small" data-containerId="1" data-containerType="14" data-objectId="2475" data-objectType="14" href="https://www.element14.com/community/community/raspberry-pi"&gt;Raspberry Pi&lt;/a&gt; because I knew it could run Pure Data; I really had no other knowledge of Raspberry Pi. The form factor also works great, because I wanted to have all the components inside the box. This was my first Pi project.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Q: As you were putting together the Looper, did you run into any notable technical problems, and how did you solve them?&lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Toby: I had tons! It took me about three months to figure everything out. One of the main milestones was getting Pd to talk to all the controls, which are all connected to a teensy 3.6. I had absolutely no idea how I was going to make that work when I started. I eventually learned about the comport object, which is an external for Pd which allows Pd to send and receive serial data. Originally, I was planning on just sending MIDI back and forth from the Pi to the teensy, but then realized I needed to also transmit song names back and forth. Learning how to package serial data ended up being many hours of frustration, but I finally got it working with some code I found on the &lt;a class="jivecontainerTT-hover-container jive-link-community-small" data-containerId="1" data-containerType="14" data-objectId="2699" data-objectType="14" href="https://www.element14.com/community/community/arduino"&gt;Arduino&lt;/a&gt; forum. I also had to make Pd create and delete directories to store the songs; the shell Pd external eventually saved the day on that one. There were way more issues I had to solve, but those were some of the ones on which I remember almost giving up the whole project.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Q: In the electronic music world there seems to be to be a movement of people wanting to avoid staring at their computer screens while they write, and devices like Native Instruments&amp;#8217; Maschine, Ableton&amp;#8217;s Push, and new models of the classic AKAI MPC are trying to give electronic musicians the tools to write without needing their mouse and keyboard to manipulate their DAWs. Do you feel that your Looper fits in that tradition, or is it more of a device for live performance? Perhaps it&amp;#8217;s useful in both areas?&lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25773-428881/IMG_0218.JPG"&gt;&lt;img alt="IMG_0218.JPG" class="image-2 jive-image" height="366" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25773-428881/549-366/IMG_0218.JPG" style="float: right; width:549px; height: 365.705px;" width="549"/&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Toby: I think it fits in both areas. It was definitely built for my live shows, but I often jam out on the couch with it. All the internal instruments were actually an afterthought; originally it was just going to have drum samples. I have yet to fully create a song on it that ended up being something I liked enough to import into my DAW (Digital Audio Workstation) to work on further, but I&amp;#8217;m guessing that will eventually happen. I really like when an electronic band plays a show with no computer, or at least a controller that allows them to not even look at the computer. Laptops on stage are fine, but sometimes I feel like the performer could just be checking their email up there and I wouldn&amp;#8217;t know the difference. Seeing someone on a piece of hardware really cranking on knobs and pounding buttons (even if it&amp;#8217;s just a controller) is so much more interesting to watch.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Q: I very much agree on that! So do you have any plans for future music tech projects? An update to the Looper, perhaps, or a device that fills a different need you have in your writing or performing?&lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Toby: I&amp;#8217;m pretty much always working on a new project. I&amp;#8217;ve been building projects more than making music lately. I&amp;#8217;ve already built a new MIDI controller that I&amp;#8217;m going to shoot a video for eventually. It&amp;#8217;s a drum pad / sequencer thing (kind of like &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fyoutu.be%2FrDrLSuNT5WI" rel="nofollow" target="_blank"&gt;this&lt;/a&gt;), but it uses force sensitive resistors for the note pads. I actually learned how to cast my own urethane for the pads, which was probably one of the most unnecessary steps I&amp;#8217;ve ever taken for a project. I also just purchased a CNC machine and am currently working on a new Raspberry Pi project that will be very similar to &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fyoutu.be%2F1WrntyHieKs" rel="nofollow" target="_blank"&gt;this&lt;/a&gt;, but the sound engine will be in Pure Data and the touch screens will be much larger. As for the Looper, I was just updating the code yesterday to add a pickup function to the volume knobs for saved songs. The Looper is eventually going to be completely rebuilt with force sensitive resistors for the pads, but that may be some time from now.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;div class="e14-video-container" style="max-width: 440px"&gt;&lt;div class="e14-video"&gt;&lt;iframe allowfullscreen="allowfullscreen" frameborder="0" height="330" scrolling="no" src="https://www.youtube.com/embed/mCOHFyI3Eoo?wmode=transparent" width="440"&gt;
&lt;/iframe&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;em&gt;See more of Toby's projects on &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fwww.youtube.com%2Fuser%2Fotemrellik%2Ffeatured" rel="nofollow" target="_blank"&gt;Youtube&lt;/a&gt;, and check out more Raspberry Pi projects on element14 &lt;a class="jivecontainerTT-hover-container jive-link-community-small" data-containerId="2475" data-containerType="14" data-objectId="2467" data-objectType="14" href="https://www.element14.com/community/community/raspberry-pi/raspberrypi_projects"&gt;here!&lt;/a&gt;&lt;br/&gt;&lt;/em&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:640e5d30-1e7e-4d07-b304-170862c836f2] --&gt;</description>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">raspberry_pi</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">music tech</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">electronic music</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">pure data</category>
      <pubDate>Thu, 06 Jul 2017 17:39:49 GMT</pubDate>
      <author>messages@element14.com</author>
      <guid>https://www.element14.com/community/community/raspberry-pi/blog/2017/07/06/music-tech-the-raspberry-pi-looper-created-by-toby-hendricks</guid>
      <dc:date>2017-07-06T17:39:49Z</dc:date>
      <clearspace:dateToText>1 week 4 days ago</clearspace:dateToText>
      <clearspace:replyCount>1</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://www.element14.com/community/community/raspberry-pi/blog/comment/music-tech-the-raspberry-pi-looper-created-by-toby-hendricks</wfw:comment>
      <wfw:commentRss>https://www.element14.com/community/community/raspberry-pi/blog/feeds/comments?blogPost=25773</wfw:commentRss>
    </item>
    <item>
      <title>IOT With Raspberry Pi using JAVA</title>
      <link>https://www.element14.com/community/community/raspberry-pi/blog/2017/07/01/iot-with-raspberry-pi-using-java</link>
      <description>&lt;!-- [DocumentBodyStart:6c506fa2-6425-4864-8e8e-222f9ee0ae8a] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;This post features videos that I published to my YouTube channel in the series "IOT with Raspberry Pi ". This basically contains 4 videos around raspberry pi that show how to use Raspberry Pi as an IOT device. It starts from interfacing sensor to publishing the sensor data to cloud server using protocols like REST or MQTT. For the entire project I have used JAVA and on top of that used various libraries for specific tasks like Pi4J, Unirest, Eclipse PAHO etc (Links provided below). If you have watched any of the videos you might know that the series is divided into 4 parts namely,&lt;/p&gt;&lt;ol&gt;&lt;li&gt;DS18B20 Sensor interfacing with Raspberry Pi.&lt;/li&gt;&lt;li&gt;Publishing data to &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fthingspeak.com%2F" rel="nofollow" target="_blank"&gt;Thingspeak &lt;/a&gt;using REST.&lt;/li&gt;&lt;li&gt;Publishing data to &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fthingspeak.com%2F" rel="nofollow" target="_blank"&gt;Thingspeak &lt;/a&gt;using MQTT.&lt;/li&gt;&lt;li&gt;Completing the project.&lt;/li&gt;&lt;/ol&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;So let's check out how to do so.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;You can Subscribe on YouTube by clicking this link to show your support and be updated with the latest video on the channel like these.&lt;/p&gt;&lt;p&gt;Subscribe: &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Fbit.ly%2F2d8pHge" rel="nofollow" target="_blank"&gt;http://bit.ly/2d8pHge&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;1.DS18B20 Sensor interfacing with Raspberry Pi.&lt;/p&gt;&lt;p&gt;This video is the first part of it where we will see how to interface DS18B20 one wire temperature sensor with Raspberry Pi by using JAVA with the help of the pi4J library.&lt;/p&gt;&lt;p&gt;&lt;div class="e14-video-container" style="max-width: 440px"&gt;&lt;div class="e14-video"&gt;&lt;iframe allowfullscreen="allowfullscreen" frameborder="0" height="330" scrolling="no" src="https://www.youtube.com/embed/ea1dT-SqQ4Q?wmode=transparent" width="440"&gt;
&lt;/iframe&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;p&gt;2. Publishing data to &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fthingspeak.com%2F" rel="nofollow" target="_blank"&gt;Thingspeak &lt;/a&gt;using REST.&lt;/p&gt;&lt;p&gt;This video is the 2nd in the series where we will see how to publish or send sensor data using REST API to cloud. And in this, we are using ThingSpeak as cloud service to publish data. HTTP calls for REST API are done using Unirest lightweight HTTP client library. In the next video, we will see the same by using MQTT.&lt;/p&gt;&lt;p&gt;&lt;div class="e14-video-container" style="max-width: 440px"&gt;&lt;div class="e14-video"&gt;&lt;iframe allowfullscreen="allowfullscreen" frameborder="0" height="330" scrolling="no" src="https://www.youtube.com/embed/tsZeQ3jzyO4?wmode=transparent" width="440"&gt;
&lt;/iframe&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;p&gt;3.&amp;#160; Publishing data to &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fthingspeak.com%2F" rel="nofollow" target="_blank"&gt;Thingspeak &lt;/a&gt;using MQTT.&lt;/p&gt;&lt;p&gt;This video is the 3rd in the series and is about how to publish or send sensor data using MQTT API to cloud. And in this, we are using &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fthingspeak.com%2F" rel="nofollow" target="_blank"&gt;Thingspeak&lt;/a&gt; as cloud service to publish data.Publishing Data using MQTT is done using Eclipse PAHO lightweight library. MQTT is a simple lightweight publish/subscribe protocol that can be used over TCP instead of going for HTTP as MQTT is power friendly and bandwidth friendly as compared to HTTP. So it fits perfect for IOT applications. If you are interested in more about it, you can check some docs linked below.&lt;/p&gt;&lt;p&gt;&lt;div class="e14-video-container" style="max-width: 440px"&gt;&lt;div class="e14-video"&gt;&lt;iframe allowfullscreen="allowfullscreen" frameborder="0" height="330" scrolling="no" src="https://www.youtube.com/embed/_RUC9Epyjg8?wmode=transparent" width="440"&gt;
&lt;/iframe&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;p&gt;4. Completing the project.&lt;/p&gt;&lt;p&gt;If you have not checked above videos please chek those first before checking out this video. This video is the final one in the series where we will complete the project by combining the codes developed in the earlier videos. We will make the application such that we can decide te API that we will be using to publish the data to &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fthingspeak.com%2F" rel="nofollow" target="_blank"&gt;Thingspeak&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;div class="e14-video-container" style="max-width: 440px"&gt;&lt;div class="e14-video"&gt;&lt;iframe allowfullscreen="allowfullscreen" frameborder="0" height="330" scrolling="no" src="https://www.youtube.com/embed/s7l497kVC-E?wmode=transparent" width="440"&gt;
&lt;/iframe&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;p&gt;Links:&lt;br/&gt; Schematic: &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Fbit.ly%2F2qJ0M6x" rel="nofollow" target="_blank"&gt;http://bit.ly/2qJ0M6x&lt;/a&gt;&lt;br/&gt; Github Repo: &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Fbit.ly%2F2sxXweP" rel="nofollow" target="_blank"&gt;http://bit.ly/2sxXweP&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Download Pi4J Library: &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Fbit.ly%2F2j32blF" rel="nofollow" target="_blank"&gt;http://bit.ly/2j32blF&lt;/a&gt;&lt;br/&gt; Download Unirest Library: &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Fbit.ly%2F2j32blF" rel="nofollow" target="_blank"&gt;http://bit.ly/2j32blF&lt;/a&gt;&lt;br/&gt; Unirest Website: &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Fbit.ly%2F2rFQ2t3" rel="nofollow" target="_blank"&gt;http://bit.ly/2rFQ2t3&lt;/a&gt;&lt;br/&gt; Unirest Jar Download (With Dependencies): &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Fbit.ly%2F2sAbhul" rel="nofollow" target="_blank"&gt;http://bit.ly/2sAbhul&lt;/a&gt;&lt;br/&gt; Download Eclipse PAHO Library(With Dependencies):&lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Fbit.ly%2F2srKW4B" rel="nofollow" target="_blank"&gt;http://bit.ly/2srKW4B&lt;/a&gt;&lt;br/&gt; Eclipse PAHO Website: &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Fbit.ly%2F2srfxPE" rel="nofollow" target="_blank"&gt;http://bit.ly/2srfxPE&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;More on MQTT&lt;br/&gt; Wikipedia:&lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Fbit.ly%2F2shULlY" rel="nofollow" target="_blank"&gt;http://bit.ly/2shULlY&lt;/a&gt;&lt;br/&gt; Official Website: &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Fbit.ly%2F2shMMp8" rel="nofollow" target="_blank"&gt;http://bit.ly/2shMMp8&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Java Application on Pi Playlist:&lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Fbit.ly%2F2eB1O2K" rel="nofollow" target="_blank"&gt; http://bit.ly/2eB1O2K&lt;/a&gt;&lt;br/&gt; ___________________________________________&lt;br/&gt; Catch Me On:&lt;/p&gt;&lt;p&gt;Twitter: &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Ftwitter.com%2Fgeekybikash" rel="nofollow" target="_blank"&gt;https://twitter.com/geekybikash&lt;/a&gt;&lt;br/&gt; GIT: &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fgithub.com%2Foksbwn" rel="nofollow" target="_blank"&gt;https://github.com/oksbwn&lt;/a&gt;&lt;br/&gt; Facebook: &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Fwww.facebook.com%2Fgeekybikash" rel="nofollow" target="_blank"&gt;http://www.facebook.com/geekybikash&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:6c506fa2-6425-4864-8e8e-222f9ee0ae8a] --&gt;</description>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">tutorial</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">java</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">pi</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">iot</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">pi4j</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">raspberry pi</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">how to</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">weargenius</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">getting started</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">iot_design</category>
      <pubDate>Sat, 01 Jul 2017 18:03:00 GMT</pubDate>
      <author>messages@element14.com</author>
      <guid>https://www.element14.com/community/community/raspberry-pi/blog/2017/07/01/iot-with-raspberry-pi-using-java</guid>
      <dc:date>2017-07-01T18:03:00Z</dc:date>
      <clearspace:dateToText>2 weeks 1 day ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://www.element14.com/community/community/raspberry-pi/blog/comment/iot-with-raspberry-pi-using-java</wfw:comment>
      <wfw:commentRss>https://www.element14.com/community/community/raspberry-pi/blog/feeds/comments?blogPost=25781</wfw:commentRss>
    </item>
    <item>
      <title>Artificial Intelligence Gets Ported Over to the Raspberry Pi with Latest Microsoft Advancement</title>
      <link>https://www.element14.com/community/community/raspberry-pi/blog/2017/07/01/artificial-intelligence-gets-ported-over-to-the-raspberry-pi-with-latest-microsoft-advancement</link>
      <description>&lt;!-- [DocumentBodyStart:f9eb2892-5a92-463b-a4cb-7966ed262834] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25779-429785/raspberrypi3.jpg"&gt;&lt;img alt="raspberrypi3.jpg" class="image-1 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25779-429785/1398-900/raspberrypi3.jpg" style="width: 620px; height: 399px;" width="1398"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; font-family: arial, helvetica, sans-serif;"&gt;&lt;strong&gt;Microsoft was able to squeeze their deep-learning algorithms onto an RPi 3 in order to bring intelligence to small devices.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"&gt;Love it or fear it, AI is advancing, and it&amp;#8217;s coming to small/portable electronic devices thanks to advanced developments &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fblogs.microsoft.com%2Fnext%2F2017%2F06%2F29%2Fais-big-leap-tiny-devices-opens-world-possibilities%2F" rel="nofollow" target="_blank"&gt;made by Microsoft.&lt;/a&gt; The software giant was recently successful at loading their deep-learning algorithms onto a &lt;a class="jive-link-external-small" href="http://www.newark.com/buy-raspberry-pi?rd=raspberry+pi" target="_blank"&gt;Raspberry Pi 3 &lt;/a&gt;SBC. The advancement will obviously be a boon for anything, and everything &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FInternet_of_things" rel="nofollow" target="_blank"&gt;IoT&lt;/a&gt;, which is on track to take the world by storm and speculation suggests there will be 46-billion connected devices by 2021- depending on &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fwww.postscapes.com%2Finternet-of-things-market-size%2F" rel="nofollow" target="_blank"&gt;whom&lt;/a&gt; you ask.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px; text-align: justify;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"&gt;Regardless, Microsoft&amp;#8217;s latest breakthrough will allow engineers the opportunity to bring about intelligent medical implants, appliances, sensor systems and much more without the need for incredible computer horsepower. Most AI platforms today utilize the cloud for all their hardware endeavors, certainly so with infant platforms such as Amazon&amp;#8217;s Alexa and Apple&amp;#8217;s Siri but Microsoft&amp;#8217;s breakthrough will make those systems obsolete and unnecessary. &lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25779-429786/intelligent-devices_secondary-art3_960x600.jpg"&gt;&lt;img alt="intelligent-devices_secondary-art3_960x600.jpg" class="image-2 jive-image" height="600" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25779-429786/intelligent-devices_secondary-art3_960x600.jpg" style="width: 620px; height: 388px;" width="960"/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; font-family: arial, helvetica, sans-serif;"&gt;&lt;strong&gt;Microsoft is developing AI platforms that will be squeezed into hardware no bigger than this chip. (Image credit Microsoft)&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px; text-align: justify;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"&gt;To further put Microsoft&amp;#8217;s development into perspective- the team is capable of taking algorithms that normally run on 64 and 32-bit systems and drop the requirements down to a single bit in some cases. What&amp;#8217;s astounding is how this new development came about- all due to a flower garden. Ofer Dekel, Manager of Machine Learning and Optimization at Microsoft&amp;#8217;s Research Lab in Redmond, Washington, needed a way to keep squirrels from eating his flower bulbs and birdseed, leading him to develop a computer-vision platform utilizing an inexpensive RPi 3 to alert him when there was an intrusion. &lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px; text-align: justify;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"&gt;When the alert is triggered, the platform engages a sprinkler system to shoo away the culprits- an ingenious solution indeed. &amp;ldquo;Every hobbyist who owns a Raspberry Pi should be able to do that, today very few of them can,&amp;#8221; stated Dekel. Yet, the breakthrough will allow just that and can even be installed on a tiny Cortex-MO chip like the one pictured above. &lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px; text-align: justify;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"&gt;To get the deep-learning algorithms compressed enough to fit on the RPi 3 using just a few bits, Ofer and his team employed a technique known as &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fcacm.acm.org%2Fmagazines%2F2013%2F8%2F166320-spectral-sparsification-of-graphs%2Fabstract" rel="nofollow" target="_blank"&gt;sparsification&lt;/a&gt;, a technique that shave&amp;#8217;s off unneeded redundancies. Doing so allowed them to devise an image detection system that could process 20-times faster on limited hardware without losing any accuracy. Still, the team hasn&amp;#8217;t yet figured out a way to take ultra-sophisticated AI or a deep-neural network and compress it enough to fit on limited, low-powered hardware. Regardless, this is an unprecedented first step in doing so, and we can certainly expect advancements that will get us there sometime in not too distant future.&amp;#160;&amp;#160; &lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px; text-align: justify;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"&gt;I'm working on some Pi projects at the moment. Instead of IoT projects... maybe I should be looking into AI.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px; text-align: justify;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"&gt;Have a story tip? Message me at: cabe(at)element14(dot)com&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"&gt;&lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Ftwitter.com%2FCabe_Atwell" rel="nofollow" target="_blank"&gt;http://twitter.com/Cabe_Atwell&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:f9eb2892-5a92-463b-a4cb-7966ed262834] --&gt;</description>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">ai</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">cabeatwell</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">develop</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">raspberry pi</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">artificial intelligence</category>
      <pubDate>Sat, 01 Jul 2017 05:51:00 GMT</pubDate>
      <author>messages@element14.com</author>
      <guid>https://www.element14.com/community/community/raspberry-pi/blog/2017/07/01/artificial-intelligence-gets-ported-over-to-the-raspberry-pi-with-latest-microsoft-advancement</guid>
      <dc:date>2017-07-01T05:51:00Z</dc:date>
      <clearspace:dateToText>2 weeks 2 days ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://www.element14.com/community/community/raspberry-pi/blog/comment/artificial-intelligence-gets-ported-over-to-the-raspberry-pi-with-latest-microsoft-advancement</wfw:comment>
      <wfw:commentRss>https://www.element14.com/community/community/raspberry-pi/blog/feeds/comments?blogPost=25779</wfw:commentRss>
    </item>
    <item>
      <title>Home Automation in the UK Simplified, Part 1: Energenie MiHome</title>
      <link>https://www.element14.com/community/community/raspberry-pi/blog/2017/06/23/home-automation-in-the-uk-simplified-part-1-energenie-mihome</link>
      <description>&lt;!-- [DocumentBodyStart:56b397fe-ffd8-41b0-b962-4b124bc7a417] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;h1&gt;Introduction&lt;/h1&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Home automation is a topic that has been around for decades, using classic wired technologies such as X10. The 21st century has favoured IP (Internet Protocol) to be the communication method of choice for delivering control and management of virtually anything imaginable. Devices can be untethered and operate wirelessly using sub-1GHz license-free bands. Radio is nothing new, but in modern times it has got a lot more easier to produce reliable, low-cost and energy-efficient radio links for consumer items. Small wireless nodes such as door/window monitoring devices can function with a single cell for a year or longer due to ultra-low power microcontrollers.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;I wanted to see how to deploy home automation, and whether it can be easy-to-use and reliable, and if I can get good value from it. I was also interested to see how well it could integrate with everything else in my surroundings; for example could I control devices using my voice? And how effective is it? Could I also connect a Pi and do some extra things?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25747-426903/home-automation-example.png"&gt;&lt;img alt="home-automation-example.png" class="image-1 jive-image" height="494" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25747-426903/844-494/home-automation-example.png" style="width:844px; height: 494.148px;" width="844"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;In an ideal world, there would be no such thing like ugly mains light switches. Everything should be seamless, with lighting turning on when it is desired. My next home will have no mains light switches I&amp;#8217;ve decided : )&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;There are many home automation products out there, usually as part of an ecosystem since there are many building blocks and they all need to work together. Some stuff is fun coding and developing, but the interface to the mains power supply requires good quality, approved, off-the-shelf products. It is not worth the risk assembling something with a no-name relay from ebay. How could one know for sure that the material is flame-tested and approved for use in the UK?&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;I wanted to examine those products that were certified for UK use. Some very low cost products are available from overseas particularly from Asia but I believe some are self-certified and I was not about to take a risk by permanently running them inside my home. Lots of high quality stuff exists from overseas, but approvals are expensive for a reason; subtle things like the wrong plastic could cause a flame situation to occur if the electronics went wrong, or electrocution is a possibility too. The legislation has plenty of subtle things such as how mains cables should be attached and what distance there should be between wires. To add to that, there are electromagnetic compatibility (EMC) rules which are designed to prevent equipment interfering with TV and radios, and laws governing how frequently transmissions can occur. The CE marking doesn&amp;#8217;t mean much unless there is a reputable firm standing up for their product. In the event of a claim for liability I would want that firm to be located in Europe. &lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;I window-shopped for home automation products that I could work with and finally decided to try out the Energenie ecosystem. The products seemed to be of very reasonable cost, and the range looked like it covered many things that I would want home automation to do. The company has been around for many years, so this provided confidence too. This first blog post reports the initial findings and shows how to set up the Energenie solution for control and monitoring using a PC or mobile phone, and natural language based voice control using Amazon&amp;#8217;s Alexa service. All of this can be set up within an hour with the Energenie solution.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt; The next blog post will explore the Energenie solution further and investigate how it can work together with the Pi.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25747-426904/mihome-devices-boxed.jpg"&gt;&lt;img alt="mihome-devices-boxed.jpg" class="image-2 jive-image" height="543" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25747-426904/844-543/mihome-devices-boxed.jpg" style="width:844px; height: 543.155px;" width="844"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h1&gt;What Problems does it Solve?&lt;/h1&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;I actually had several use-cases for home automation.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;One was to make my small apartment &amp;#8216;upmarket&amp;#8217; so I can sell it for more money : ) I suspect a lot of people think home automation is a lot more complicated to install than it actually is, and therefore there could be good value-add to have this installed in an apartment. Many individuals/couples are away from their apartment all day and would appreciate being able to get some insight and control of their home remotely. The apartment already has a burglar alarm and video system, so home automation would be a nice addition.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Another use-case is to keep a light touch view on elderly relatives; it can be useful to see activity occurring in the home to make sure the relative is well.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;As another idea for the elderly, a virtual voice controlled assistant could be very useful for people who may have trouble walking up/down stairs just to turn on the heating or switching off a light. Voice enablement will help out here. Taking this further, a home can have far more discreet physical buttons and controls if voice enablement is primarily used instead.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;A very typical scenario where home automation can help out is to energy-save; the ability to get on-the-fly energy readings (either for the entire home, or more granular) provides insight and that drives consumer behaviour such as switching unused lights and TVs off more frequently.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Home security solutions can be improved with home automation; it becomes easy to automatically switch on home lighting when you&amp;#8217;re out, to make it appear that someone is home. Timer devices are available but home automation provides a far cleaner implementation that can be programmed and schedules adjusted from anywhere and therefore makes it more practical to use. Home automation can provide insight into unusual activity even when an alarm has not been triggered. It provides deeper visibility. In a nutshell the opportunity exists to make home security and home automation better together.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;For the engineer, home automation is important because it provides real-world sensor data that can be analysed and used to develop interesting future products. For example, I would love to know how long home lighting is switched on, to begin to understand how long LED products in homes could survive and how to improve them.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h1&gt;Can it be Installed in any Home?&lt;/h1&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;This blog post will look in detail how to install and use home automation, but in summary there are several ways that a system can be installed. One typical scenario is to retro-fit it inside an existing home without touching any existing wiring. This is feasible and relies predominantly on the use of plug-in adapters which sit in-between the existing mains sockets and the connected device. It allows plug-in things like TVs and table lamps to be monitored or controlled.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Permanently wired home lighting can be controlled with some slight modification, by unscrewing the light switch on the wall and replacing it with a smart light switch. This can be achieved by nearly anyone provided some care is taken.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;It is also possible to replace home mains sockets with smart mains sockets but this is an advanced activity that usually requires an electrician to install it. It is recommended to use the plug-in adapters if an electrician is not available.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;For all the scenarios, an Internet connection is fairly essential.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h1&gt;Mi|Home Gateway&lt;/h1&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The &lt;a class="jive-link-external-small" href="http://cpc.farnell.com/energenie/miho001/mihome-gateway-rf433mhz/dp/PL14992" target="_blank"&gt;gateway device&lt;/a&gt; which interfaces to all the rest of the Mi|Home ecosystem is really compact. It is only very slightly bigger than an ice hockey puck. There are just two ports on it. One is a USB connector for the 5V power supply (it comes with the Gateway) and the other is for the Ethernet cable to attach the gateway to the home router. One dual-colour LED and a pinhole reset switch completes the external features. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25747-426905/energenie-hub-on.jpg"&gt;&lt;img alt="energenie-hub-on.jpg" class="image-3 jive-image" height="561" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25747-426905/842-561/energenie-hub-on.jpg" style="width:842px; height: 560.881px;" width="842"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The entire thing is small and unobtrusive and runs cool, and can be hidden from view. The top cover can be unclipped to look inside. There is not a lot to go wrong here, it should provide many years of good service. The circuit consists of a fairly high-end ARM Cortex-M3 based microcontroller from NXP, an Ethernet interface and a very popular RF transceiver module from HopeRF. Good brand parts are used like the Wurth Ethernet transformers. The enclosure is of a sufficient size to allow the antenna to have space around it for good range.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;What looks like a standard debug port is also present. Lots of great potential to use this as a low-cost board for other projects too!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25747-426906/gateway-inside.jpg"&gt;&lt;img alt="gateway-inside.jpg" class="image-4 jive-image" height="630" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25747-426906/844-630/gateway-inside.jpg" style="width:844px; height: 630.277px;" width="844"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Using the Gateway is pretty easy, it is plug-and-play. No configuration needed. You can take the code printed on the underside and apply it to the Mi|Home web portal once you have registered. For most users, there is no router configuration to do either. Just plug in the power supply and Ethernet connection and provided you have the code you&amp;#8217;re ready to start using it.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h1&gt;Protocols and Examining the Risks&lt;/h1&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;It&amp;#8217;s always good to examine these things. Armed with the knowledge, we can deploy solutions in the right scenario and avoid fitting them where there are security risks.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The communication between the gateway and the Mi|Home cloud service uses UDP packets and is very lightweight, typical payload size was around 48-69 bytes, with what looks like a heartbeat every five seconds or so. This is a tiny amount of data traffic (less than 2MB per day) and therefore it will not impact Internet usage allowances, and also opens up the possibility of using a 4G/LTE router for monitoring and control of remote locations. The transmission is unencrypted but I could see no username/password/person identifying information transmitted; the MAC address of the gateway is sent. For home automation generally the risk of vulnerability between the gateway and the cloud service is low because it is very difficult for an individual to capture and decode communication over technologies such as 4G or cable or DSL.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;For those unwilling to connect to a cloud service there is an add-on board available for the Pi, which, with some coding, can be used to control the devices locally.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25747-426907/energenie-pi.jpg"&gt;&lt;img alt="energenie-pi.jpg" class="image-5 jive-image" height="662" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25747-426907/846-662/energenie-pi.jpg" style="width:846px; height: 661.79px;" width="846"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The radio communication between the gateway and devices is based on the &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Fwww.o-things.com%2F" rel="nofollow" target="_blank"&gt;OpenThings specification (registration required)&lt;/a&gt; which is documented, which means (in theory; I have not tried) that the Energenie solution is flexible enough to design your own additions. There are no fees involved to use the specification and modifications are permitted too. The radio communication occurs in the 433MHz band using frequency shift keying (FSK).&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;There is the risk that somebody could record radio transmissions and replay them; it requires some technical skill and it is up to individuals to determine if this poses a security risk in the environment where they are installing their home automation. With low power transmissions between the gateway and devices, it would require someone to be nearby in order to capture radio transmissions. The technology, like most of the current home automation solutions, will be susceptible to radio jamming signals. Due to the ease for jamming, the Energenie solution cannot be used as a replacement for home security solutions (burglar alarms, video cameras, etc).&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h1&gt;Using the Mi|Home Cloud Service and Mobile App&lt;/h1&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;I browsed to the &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fmihome4u.co.uk%2F" rel="nofollow" target="_blank"&gt;Energenie Mi|Home website&lt;/a&gt; and registered for free and entered the code printed on the back of the Mi|Home gateway, and it was immediately registered. It is all very intuitive and once the gateway is added you can give it a name and start adding additional devices by clicking on &amp;#8216;Pair New Device&amp;#8217;. As soon as you do that the web page shows the entire product range.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25747-426908/mihome-pair-device.png"&gt;&lt;img alt="mihome-pair-device.png" class="image-6 jive-image" height="429" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25747-426908/844-429/mihome-pair-device.png" style="width:844px; height: 428.806px;" width="844"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The color coding is roughly proportional to functionality. The basic products are blue and provide simple control in one direction. The pink items are monitoring products that gather information but do not have any controlling capability. The purple items are full-featured and offer both monitoring and control capabilities. This colour-coding matches the glossy card packaging of the devices too, so you can easily see the broad functionality that you are getting.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The product range can be configured in a consistent way. The procedure is to connect/plug in the device so that it is powered up, then hold a button down for 5 seconds until and LED flashes. Assuming that &amp;#8216;Pair Devices&amp;#8217; and then &amp;#8216;Start Pairing&amp;#8217; had been clicked in the web browser first, then the device will become attached and will appear in the Devices List; in the screenshot below I added a door sensor and a mains control adapter:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25747-426909/mihome-devices.png"&gt;&lt;img alt="mihome-devices.png" class="image-7 jive-image" height="592" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25747-426909/844-592/mihome-devices.png" style="width:844px; height: 592.161px;" width="844"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;It is actually possible to do this from a mobile phone too. The pairing for the device can be done anywhere within radio coverage of the Mi|Home gateway using the Mi|Home app. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25747-426910/mihome-mobile-app.jpg"&gt;&lt;img alt="mihome-mobile-app.jpg" class="image-8 jive-image" height="703" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25747-426910/842-703/mihome-mobile-app.jpg" style="width:842px; height: 703.477px;" width="842"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;You can also assign custom friendly names to each device; this is handy when you have many devices connected, but also is useful for voice control by device name; see further below). The app is easy to use and during my testing I didn&amp;#8217;t notice any bugs or crashes. There is also the ability to integrate with IFTTT which is a way to have rules such as &amp;ldquo;if the weather is cold the turn on the heating&amp;#8221; however I&amp;#8217;m not keen on IFTTT due to the need to have facebook/twitter for the free account in order to create your own applets. There are other ways of achieving such things and they will be explored in another blog post.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25747-426911/mihome-mobile-screenshots.png"&gt;&lt;img alt="mihome-mobile-screenshots.png" class="image-9 jive-image" height="899" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25747-426911/775-899/mihome-mobile-screenshots.png" style="width:775px; height: 981.29px;" width="775"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;An interesting feature in the Mi|Home app is the ability to 'geofence'. This allows the system to control devices based on the location of the mobile phone. An example would be to turn on the heating if you&amp;#8217;re approaching home.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;In summary I thought the app was not bad, it is useful for checking up on the status of things in your home and controlling them of course. There are no fancy features like the ability to have a status widget on your mobile phone or to log data.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;With the app installed, it was time to start pairing and exploring all the interesting devices!&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h1&gt;Energenie Mi|Home Adapter Plus&lt;/h1&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The &lt;a class="jive-link-external-small" href="http://cpc.farnell.com/energenie/miho005/mihome-adaptor-plus-plug/dp/PL14996" target="_blank"&gt;Energenie Adapter Plus&lt;/a&gt; is a very cool advanced &amp;#8216;smart plug&amp;#8217;. I thought it was great. It has a number of features. There is a small button on it and an LED, and any connected equipment can be powered or unpowered by directly pressing the button on it. The status is sent back to the home gateway, so that the user can check via the web portal what the actual status of the Adapter Plus is. This product is within the purple range, i.e. more feature-rich and with control/monitoring capability. Furthermore the Adapter Plus can be used to measure power consumption. This is extremely useful even if you&amp;#8217;re not interested in actual energy usage, because it can tell you if the appliance at the end of the cable is actually switched on or off by observing the power consumption. So, you can use it to tell if (say) a television itself is actually powered up or not.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25747-426912/adapter-plus-plugged-in.jpg"&gt;&lt;img alt="adapter-plus-plugged-in.jpg" class="image-10 jive-image" height="563" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25747-426912/845-563/adapter-plus-plugged-in.jpg" style="width:845px; height: 562.879px;" width="845"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;It was interesting to examine it in more detail, to see precisely how it functioned and how accurate it could be.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;It has security screws and once they were removed, I was impressed at the quality of construction. The earth and neutral connections are direct from the mains plug side to the mains socket side of the product. The Live connection is switched of course, and all wires are crimped to the metal components of the plug/socket portion of the design. The PCB is made of fiberglass and there is a fair amount of circuitry. The radio transceiver module is a HopeRF board again, with a helix shaped antenna soldered perpendicular to the circuit board on the side hidden from view. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25747-426913/energenie-adapter-plus-rf-side.jpg"&gt;&lt;img alt="energenie-adapter-plus-rf-side.jpg" class="image-11 jive-image" height="586" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25747-426913/847-586/energenie-adapter-plus-rf-side.jpg" style="width:847px; height: 586.069px;" width="847"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;There is a 2 milliohm shunt resistor for measuring current. The other side of the board contains a nice DC-DC converter circuit. The AC mains input is rectified and directly stepped-down using the DC-DC converter. This type of design will run cool and in practice I could not observe any warmth of the device during operation. There is also a varistor for protecting the circuitry from excessive mains spikes, for hopefully many years of good service. A dedicated IC performs the energy measurement and communications protocol handling before passing the data to the HopeRF module for transmission. The dedicated IC from Sentec handles reactive loads (i.e. it can measure real power) and the datasheet states that power measurement accuracy is 2% or 2W, whichever is greater. Although not spectacular, this is a reasonable level of accuracy for such a device.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25747-426914/energenie-adapter-plus.jpg"&gt;&lt;img alt="energenie-adapter-plus.jpg" class="image-12 jive-image" height="578" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25747-426914/845-578/energenie-adapter-plus.jpg" style="width:845px; height: 577.871px;" width="845"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The mains is switched using a relay which has UL and TUV certificates. In summary I thought the design was good, I liked that it had some protection against spikes from mains input noise, the power consumption feature is really cool to see what devices are actually powered up, and a push-button switch to be able to turn devices on/off locally if desired.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h1&gt;Energenie Mi|Home Open Sensor&lt;/h1&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The Open Sensor does exactly that, it reports when something like a door or window has been opened or closed. It is a small single AAA cell powered device. It has low power consumption, I measured 50uA (it periodically changes between about 40uA and 60uA), and current of course increases during radio transmission whenever an open or close event occurs. Based on this, Energenie&amp;#8217;s estimation of 1-1.5 years battery life appears accurate. I liked that it uses a standard AAA cell because they are cheap to replace compared to the small 12V batteries that used to be common in wireless sensors in the past. The sensor has the typical two-part magnet and reed switch implementation.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25747-426915/energenie-open-sensor-closed.jpg"&gt;&lt;img alt="energenie-open-sensor-closed.jpg" class="image-13 jive-image" height="555" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25747-426915/845-555/energenie-open-sensor-closed.jpg" style="width:845px; height: 554.702px;" width="845"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The design is very nice; there in an internal 3V DC-DC step-up converter that presumably runs continuously, and a low-power microcontroller. As mentioned a reed switch and magnet performs the actual detection. The transmitter is a tiny 6-pin SOT-23 device, most likely another HopeRF part.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25747-426916/energenie-open-sensor-component-side.jpg"&gt;&lt;img alt="energenie-open-sensor-component-side.jpg" class="image-14 jive-image" height="572" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25747-426916/844-572/energenie-open-sensor-component-side.jpg" style="width:844px; height: 571.742px;" width="844"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;There is a very discreet faint LED that shines through the white plastic, and it is useful for confirming that the battery is functioning because it flashes briefly each time the door is opened or closed.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Inside the box there were lots of mounting bits and pieces for attaching to doors/windows, and a card instruction leaflet.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25747-426917/energenie-open-sensor-components-all-r.jpg"&gt;&lt;img alt="energenie-open-sensor-components-all-r.jpg" class="image-15 jive-image" height="605" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25747-426917/845-605/energenie-open-sensor-components-all-r.jpg" style="width:845px; height: 605.129px;" width="845"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h1&gt;Energenie Mi|Home Double Socket&lt;/h1&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;In the blue range (i.e. control, not monitoring capability), I tried out the &lt;a class="jive-link-external-small" href="http://cpc.farnell.com/energenie/miho007/mihome-double-wall-socket-white/dp/PL14998" target="_blank"&gt;Mi|Home mains wall socket&lt;/a&gt;. This product can be fitted into a new electrical installation, or retrofitted. Its connections are identical to any standard double socket, and I liked that it had two earth terminal connections which simplified installation.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25747-426918/energenie-double-socket-closed-angled.jpg"&gt;&lt;img alt="energenie-double-socket-closed-angled.jpg" class="image-16 jive-image" height="563" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25747-426918/845-563/energenie-double-socket-closed-angled.jpg" style="width:845px; height: 562.879px;" width="845"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The unit is quite deep, and it will be a real struggle to fit into a 25mm deep back box if there is more than one mains cable coming into the back box (more than one mains cable is common, since a ring mains will result in two cables into each box). However, a 25mm back box for ring mains is rare and homes should have deeper boxes usually. With a 35mm back box (as in these photos) there is no issue, and I tested with three mains cables; it just about fitted. With two mains cables it fits just fine.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25747-426919/energenie-double-socket-inside-back-box.jpg"&gt;&lt;img alt="energenie-double-socket-inside-back-box.jpg" class="image-17 jive-image" height="562" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25747-426919/844-562/energenie-double-socket-inside-back-box.jpg" style="width:844px; height: 562.213px;" width="844"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Another approach for retrofitting is to leave the existing mains socket where it is, and fit the Mi|Home one alongside it as a spur connection. As a result, a 25mm back box is fine since the spur connection only has one mains cable. Also, if you didn&amp;#8217;t want to go making too many holes in your wall, you could always fit it alongside to an existing mains outlet but in a surface mount box; that way you only need to plaster and repaint a very small area. This latter option should also result in better radio coverage so it would be worth considering if the Mi|Home gateway is positioned far away (or a second gateway could be purchased; multiple ones can be added in the Mi|Home solution). &lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;So, to summarize, if you&amp;#8217;re installing with a single cable, then a 25mm back box is ok, otherwise you will definitely need a 35mm back box minimum and it will be tight but feasible with three mains cables, so if you have the choice, go deeper.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25747-426920/energenie-double-socket-closed-top-view.jpg"&gt;&lt;img alt="energenie-double-socket-closed-top-view.jpg" class="image-18 jive-image" height="565" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25747-426920/848-565/energenie-double-socket-closed-top-view.jpg" style="width:848px; height: 564.877px;" width="848"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;In terms of aesthetics and the finish of the plastic I think it looks quite reasonable, no better or worse than typical home mains wall sockets. There are are also versions with brushed steel, or chrome or nickel finish if you need to match it to others in the home.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h1&gt;Energenie Mi|Home Light Switch&lt;/h1&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Another item in the blue range are the Mi|Home light switches. They are optionally available in the metal finishes just like the mains wall sockets.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25747-426921/mihome-switch-assembled.jpg"&gt;&lt;img alt="mihome-switch-assembled.jpg" class="image-19 jive-image" height="564" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25747-426921/847-564/mihome-switch-assembled.jpg" style="width:847px; height: 564.211px;" width="847"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;It has a depth of about 22mm, and so it requires a 25mm depth back box at a minimum (usually the boxes are recessed by at least a few millimetres into the wall, so that will also help to provide sufficient clearance for the mains cable. The photos here shows a 25mm box.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25747-426922/mihome-switch-side.jpg"&gt;&lt;img alt="mihome-switch-side.jpg" class="image-20 jive-image" height="562" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25747-426922/843-562/mihome-switch-side.jpg" style="width:843px; height: 561.547px;" width="843"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;If you&amp;#8217;re replacing an existing light switch then the chances are that the back box will be more than 25mm deep, however I have seen very shallow back boxes (15mm) as was the case in one room at home, and these would not be suitable. It isn&amp;#8217;t difficult to make any cavity deeper (no need to do that with a stud wall) and replace the back box of course.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25747-426923/mihome-switch-wiring.jpg"&gt;&lt;img alt="mihome-switch-wiring.jpg" class="image-21 jive-image" height="762" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25747-426923/847-762/mihome-switch-wiring.jpg" style="width:847px; height: 762.3px;" width="847"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;What seems to be missing from the range currently are double light switches. This actually made it awkward to install in a couple of rooms, since I wanted individual control of the two lights in the room.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h1&gt;Virtual Voice Assistant with Amazon Alexa&lt;/h1&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Amazon, Google and Apple all offer virtual voice assistant services. If you&amp;#8217;re not familiar with them, they basically consist of small Internet-connected devices (usually WiFi enabled) that have a loudspeaker and an array of microphones inside. By saying a keyword (&amp;#8216;Alexa&amp;#8217; in the case of the Amazon service) the device wakes up and streams any subsequent speech to a cloud service which performs speech recognition and natural language processing to try to discover the intent of the speech. Once that is done, it formulates an intelligent response based on the wealth of information searchable on the Internet and streams a synthesized voice response which gets played out of the speaker on the device. I also find it handy for playing music, or for answering all silly questions from my little nephews : )&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;So, the virtual assistants today consist of two elements; the physical hardware and the cloud service. Recently Google came out with their AIY hardware kit which also provides a virtual assistant using the Google cloud service, with the Raspberry Pi and AIY kit forming the physical hardware device. Meanwhile, the Raspberry Pi also has another multi-functional hardware attachment for similar purposes called the &lt;span&gt;&lt;span class="e14-init-shown" id="addProduct-Nu47sjxY-linked" style="white-space: nowrap;"&gt;&lt;a class="jive-link-product-addtolist" href="https://www.element14.com/community/view-product.jspa?fsku=2675819&amp;amp;nsku=NULL&amp;amp;COM=noscript" onclick="productSearch.getSearchResults('embedded-link', this, '2675819', 'NULL', ''); return false;" target="_blank" title="View product details"&gt;&lt;span alt="View product details" class="pf-widget-map pf-productlink-cart-icon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;a class="jive-link-product pf-embedded-product-link" href="https://www.element14.com/community/view-product.jspa?fsku=2675819&amp;amp;nsku=NULL&amp;amp;COM=noscript" onclick="productSearch.getSearchResults('embedded-link', this, '2675819', 'NULL', ''); return false;" target="_blank" title="View product details"&gt;MatrixCreator&lt;/a&gt;&lt;/span&gt;&lt;span class="e14-init-hidden" data-fsku="2675819" data-nsku="NULL" id="addProduct-Nu47sjxY-unlinked"&gt;MatrixCreator&lt;/span&gt;&lt;/span&gt;. In summary there are plenty of options.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;I decided to try Amazon&amp;#8217;s Alexa voice assistant service. It uses physical hardware known as the Amazon Echo range, and the Mi|Home service directly integrates with it. There are several models in the Echo range; the one in the photo is called the Echo Dot and costs about &amp;#163;50. There are some buttons on top but in normal use they are not used; the entire interaction can be by voice.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25747-426924/amazon-echo-dot.jpg"&gt;&lt;img alt="amazon-echo-dot.jpg" class="image-22 jive-image" height="686" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25747-426924/amazon-echo-dot.jpg" style="width: 620px; height: 432px;" width="985"/&gt;&lt;/a&gt; &lt;em&gt;(Picture source: Amazon)&lt;/em&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The setup is extremely easy; I signed into my Amazon Alexa account and searched for the Energenie &amp;#8216;skill&amp;#8217; and enabled it.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25747-426925/alexa-skills.png"&gt;&lt;img alt="alexa-skills.png" class="image-23 jive-image" height="478" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25747-426925/847-478/alexa-skills.png" style="width:847px; height: 478.145px;" width="847"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Next, by clicking on the Smart Home item on the menu on the left, a &amp;#8216;Discover&amp;#8217; button appears. I pressed that and less than a minute later the Mi|Home devices appeared.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25747-426926/mihome-alexa-app.jpg"&gt;&lt;img alt="mihome-alexa-app.jpg" class="image-24 jive-image" height="507" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25747-426926/849-507/mihome-alexa-app.jpg" style="width:849px; height: 506.661px;" width="849"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;That&amp;#8217;s it! Now the home can be controlled by speaking to Alexa. The devices can be named anything in the Mi|Home web portal or mobile phone app, so turning a device on is as simple as saying (for example if the device has been named &amp;#8216;bedroom lamp&amp;#8217;) &amp;ldquo;Alexa, turn on the bedroom lamp&amp;#8221;. &lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h1&gt;Application Programming Interface (API)&lt;/h1&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The Mi|Home cloud service has what is known as an Application Programming Interface (API). This offers control of your home programmatically. In other words, you can connect additional software and services to control the home. I did a basic &amp;#8216;hello world&amp;#8217; type of test to confirm that I could connect using the API, but further use of the API will be explored in more detail in a subsequent blog post. &lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h1&gt;Summary&lt;/h1&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Generally, I&amp;#8217;ve been quite impressed with the Energenie Mi|Home solution. I like that the gateway and all the devices appear well constructed, even on the inside for those that I took apart. Furthermore the electronics look designed for a long service life with cool operation. I didn&amp;#8217;t observe any problems related to safety and mains wires were crimped and separated from each other in the plastic moulding. &lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;In terms of functionality, Energenie have made it easy to choose what you need using their colour-coding scheme. &lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;I also like that everything is actually really good value for money. The hub device, the &lt;a class="jive-link-external-small" href="http://cpc.farnell.com/energenie/miho001/mihome-gateway-rf433mhz/dp/PL14992" target="_blank"&gt;Mi|Home gateway&lt;/a&gt;, is not expensive at all, just &amp;#163;39+VAT currently from CPC.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;In contrast, LightwaveRF&amp;#8217;s hub is almost twice that, currently &amp;#163;78 from Amazon. The Hive hub is a similar price. Given that you might need a couple of gateway/hub devices for adequate coverage of a home, the cost difference is quite large. &lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The Hive plug-fitting mains control device costs &amp;#163;31, and, described as a &amp;#8216;British Gas Innovation&amp;#8217; (British Gas is an energy company) it does not support energy monitoring. In contrast, the &lt;a class="jive-link-external-small" href="http://cpc.farnell.com/energenie/miho005/mihome-adaptor-plus-plug/dp/PL14996" target="_blank"&gt;Mi|Home Adapter Plus&lt;/a&gt; supports control and energy monitoring at just &amp;#163;18.50+VAT from CPC. &lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;To me it seems an easy decision to go with the Energenie products currently. Even if in future years one was to adopt a different home automation solution, the Energenie offering has another trick up its sleeve to help with that too; a radio board is available for the Pi, so that an owner could continue to use the hardware provided they were willing to do the integration work (coding). However the Mi|Home cloud service is free to use and has a northbound application programming interface (API) so a user could directly integrate with that as well.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Improvements that I would like to see to the Mi|Home solution would be a dual light switch, and a thermostat. There are Mi|Home radiator valves, but I&amp;#8217;d prefer to directly control the entire heating system. &lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;I&amp;#8217;m excited that I have the beginnings of a decent home automation solution, and in my next blog post I&amp;#8217;ll explore how to integrate this with the Pi.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:56b397fe-ffd8-41b0-b962-4b124bc7a417] --&gt;</description>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">energy_monitor</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">home_automation</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">energy_monitoring</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">sub-1ghz</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">raspberry_pi</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">rpi</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">rpibeginner</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">energenie</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">home automation</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">remote control</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">internet of things</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">internet of everything</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">amazon alexa</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">rpi iot</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">433 mhz</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">amazon echo dot</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">amazon echo</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">mihome</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">mi|home</category>
      <pubDate>Fri, 23 Jun 2017 09:39:36 GMT</pubDate>
      <author>messages@element14.com</author>
      <guid>https://www.element14.com/community/community/raspberry-pi/blog/2017/06/23/home-automation-in-the-uk-simplified-part-1-energenie-mihome</guid>
      <dc:date>2017-06-23T09:39:36Z</dc:date>
      <clearspace:dateToText>3 weeks 3 days ago</clearspace:dateToText>
      <clearspace:replyCount>24</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://www.element14.com/community/community/raspberry-pi/blog/comment/home-automation-in-the-uk-simplified-part-1-energenie-mihome</wfw:comment>
      <wfw:commentRss>https://www.element14.com/community/community/raspberry-pi/blog/feeds/comments?blogPost=25747</wfw:commentRss>
    </item>
    <item>
      <title>Professional RS485 Shield for RPi</title>
      <link>https://www.element14.com/community/community/raspberry-pi/blog/2017/06/14/proffesional-rs485-shield-for-rpi</link>
      <description>&lt;!-- [DocumentBodyStart:d6f9883a-23aa-4bf3-b826-341cdb92ac58] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;Hi,&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;I'm working actually on a professional RS422/RS485 shield for the Raspberry Pi. I wasn't satisfied with the shields on the market. They are very simple and have some disadvantages. My shield comes with the following features:&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;RS422 (full duplex) support&lt;/li&gt;&lt;li&gt;RS485 (half duplex) support&lt;/li&gt;&lt;li&gt;galvanic isolation between PI and interface&lt;/li&gt;&lt;li&gt;indicator leds for RX and TX activity&lt;/li&gt;&lt;li&gt;switchable pull-up, pull-down and terminal resistor&lt;/li&gt;&lt;li&gt;different modes for send/receive switching (Auto, GPIO, always transmitter, always receiver)&lt;/li&gt;&lt;li&gt;Auto switching via monoflop&lt;/li&gt;&lt;li&gt;all options adjustable via DIP switches&lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;I'm curious about your feedback.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25700-423916/RS485_shield_on_pi_2.jpg"&gt;&lt;img alt="RS485 Raspberry Pi" class="image-1 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25700-423916/1200-900/RS485_shield_on_pi_2.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:d6f9883a-23aa-4bf3-b826-341cdb92ac58] --&gt;</description>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">rs485</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">rs422</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">pi shield</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">raspi3</category>
      <pubDate>Wed, 14 Jun 2017 18:35:00 GMT</pubDate>
      <author>messages@element14.com</author>
      <guid>https://www.element14.com/community/community/raspberry-pi/blog/2017/06/14/proffesional-rs485-shield-for-rpi</guid>
      <dc:date>2017-06-14T18:35:00Z</dc:date>
      <clearspace:dateToText>1 month 2 days ago</clearspace:dateToText>
      <clearspace:replyCount>7</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://www.element14.com/community/community/raspberry-pi/blog/comment/proffesional-rs485-shield-for-rpi</wfw:comment>
      <wfw:commentRss>https://www.element14.com/community/community/raspberry-pi/blog/feeds/comments?blogPost=25700</wfw:commentRss>
    </item>
    <item>
      <title>MagicPi [1]: a MagicMirror2 development platform for the Raspberry PI (with some new things)</title>
      <link>https://www.element14.com/community/community/raspberry-pi/blog/2017/06/02/magicpi-1-a-magicmirror2-development-platform-for-the-raspberry-pi-with-some-new-things</link>
      <description>&lt;!-- [DocumentBodyStart:4ac66557-16b8-4559-9bc1-8e3bd6520345] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;h2&gt;&lt;div class="toc"&gt;&lt;ul&gt;&lt;li&gt;&lt;ul&gt;&lt;li&gt;
&lt;a class="jive-link-anchor-small" href="#jive_content_id_Introduction"&gt;Introduction&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a class="jive-link-anchor-small" href="#jive_content_id_Platform_scenario"&gt;Platform scenario&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a class="jive-link-anchor-small" href="#jive_content_id_Building_the_structure"&gt;Building the structure&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;
&lt;a class="jive-link-anchor-small" href="#jive_content_id_Wooden_frame"&gt;Wooden frame&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a class="jive-link-anchor-small" href="#jive_content_id_Fixing_the_mirror"&gt;Fixing the mirror&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a class="jive-link-anchor-small" href="#jive_content_id_Assembling_the_mirror_back_side"&gt;Assembling the mirror back side&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a class="jive-link-anchor-small" href="#jive_content_id_Keeping_the_LCD_in_place"&gt;Keeping the LCD in place&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a class="jive-link-anchor-small" href="#jive_content_id_Adding_the_Raspberry_Pi_and_wiring_all_together"&gt;Adding the Raspberry Pi and wiring all together&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;
&lt;a class="jive-link-anchor-small" href="#jive_content_id_Raspberry_Pi_Cooling"&gt;Raspberry Pi Cooling&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a class="jive-link-anchor-small" href="#jive_content_id_Adding_the_Pi_devices"&gt;Adding the Pi devices&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a class="jive-link-anchor-small" href="#jive_content_id_Fixing_the_back_layers_firmly"&gt;Fixing the back layers firmly&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a class="jive-link-anchor-small" href="#jive_content_id_Last_touch_positioning_the_camera"&gt;Last touch: positioning the camera&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a class="jive-link-anchor-small" href="#jive_content_id_Finished_setup_and_some_anticipations"&gt;Finished setup and some anticipations&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/h2&gt;&lt;h2 id="jive_content_id_Introduction"&gt;Introduction&lt;/h2&gt;&lt;p&gt;Having to develop a MagicMirror project almost flexible to fit in different contexts including extra features - first of all supporting user interaction - I started exploring the possibilities using what already done supporting the Raspberry PI.&lt;/p&gt;&lt;p&gt;The project evolved through two steps: an &lt;em&gt;easy step&lt;/em&gt; implementing the open design of the MagicMirror2 implementation on the Raspberry and a &lt;em&gt;complex step&lt;/em&gt; developing the parts not yet available.&lt;/p&gt;&lt;p&gt;This first part describes the settings I followed for the &lt;em&gt;easy step.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418410/IMG_20170525_214101.jpg"&gt;&lt;img alt="IMG_20170525_214101.jpg" class="image-1 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418410/675-900/IMG_20170525_214101.jpg" style="width: 620px; height: 827px;" width="675"/&gt;&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h2 id="jive_content_id_Platform_scenario"&gt;Platform scenario&lt;/h2&gt;&lt;p&gt;This magic mirror will work as a &lt;strong&gt;development platform&lt;/strong&gt; and prototyping base: should be flexible supporting upgrades and changes in the future. In addition the platform design should be easy to customise depending on installation needs and environments.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h2 id="jive_content_id_Building_the_structure"&gt;Building the structure&lt;/h2&gt;&lt;p&gt;For the external frame structure I used a good quality of wood to produce a good aesthetic impact. The measures depends on the currently available 15" 4:3 HDMI display that will be perfect for the development prototype but any size of HDMI display can be used as well.&lt;/p&gt;&lt;p&gt;The other element impacting the form factor and size is the mirror (we are not obliged to keep it squared or rectangular etc.; there are several ways to make a two-ways mirror: using a glass and a semi-transparent adhesive film, buying a pre-built glass or buying an acrylic one.&lt;/p&gt;&lt;p&gt;To give the right impact it is important the entire mirror surface is not too big compared to the monitor size and not too small, avoiding a reduced mirror surface vs. the screen size.&lt;/p&gt;&lt;p&gt;For the mirror I have used &lt;em&gt;two-ways transparent acrylic mirror&lt;/em&gt; from &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fwww.tapplastics.com%2F" rel="nofollow" target="_blank"&gt;Tap Plastics&lt;/a&gt; with the following dimensions:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: #222222; font-family: arial, sans-serif; font-size: small;"&gt;3/16 (.177) inches Thick&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: #222222; font-family: arial, sans-serif; font-size: small;"&gt;20 inches Wide&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: #222222; font-family: arial, sans-serif; font-size: small;"&gt;16 inches Long&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: #222222; font-family: arial, sans-serif; font-size: small;"&gt;Cost: 73$ (it is the most expensive part excluding the Pi and monitor)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="color: #222222; font-family: arial, sans-serif; font-size: small;"&gt;The frame has been built few mm larger internally and 5 cm depth to host the mirror, back supports and the electronic stuff.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h3 id="jive_content_id_Wooden_frame"&gt;&lt;span style="color: #222222; font-family: arial, sans-serif; font-size: small;"&gt;Wooden frame&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;The gallery below shows he wooden frame details. I have applied a transparent coating paint specific for wood on its surface. The cost of the finished frame is about 15$&lt;/p&gt;&lt;table border="1" class="jiveBorder" style="border: 1px solid #000000; width: 100%;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style="border:1px solid black;border: 1px solid #000000;padding: 2px;color: #ffffff;background-color: #6690bc;text-align: center;" valign="middle"&gt;&lt;strong&gt;{gallery} Wooden fram construction details&lt;/strong&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: 1px solid #000000;padding: 2px;"&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418411/IMG_20170525_225206.jpg"&gt;&lt;img alt="IMG_20170525_225206.jpg" class="image-2 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418411/1200-900/IMG_20170525_225206.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The wooden frame front side&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: 1px solid #000000;padding: 2px;"&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418520/IMG_20170525_225243.jpg"&gt;&lt;img alt="IMG_20170525_225243.jpg" class="image-3 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418520/1200-900/IMG_20170525_225243.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The wooden frame back side&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: 1px solid #000000;padding: 2px;"&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418521/IMG_20170525_225253.jpg"&gt;&lt;img alt="IMG_20170525_225253.jpg" class="image-4 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418521/1200-900/IMG_20170525_225253.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Detail of the corner mounting of the frame&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: 1px solid #000000;padding: 2px;"&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418522/IMG_20170525_225301.jpg"&gt;&lt;img alt="IMG_20170525_225301.jpg" class="image-5 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418522/1200-900/IMG_20170525_225301.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Detail of the internal side of the frame&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h3&gt;&lt;/h3&gt;&lt;h3 id="jive_content_id_Fixing_the_mirror"&gt;Fixing the mirror&lt;/h3&gt;&lt;p&gt;After removing the front protective sheet I have put the mirror plate inside the frame. A soft adhesive seal tape on the inside borders frame avoid sliding the mirror plate and keep it better in place.&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418523/IMG_20170530_154707.jpg"&gt;&lt;img alt="IMG_20170530_154707.jpg" class="image-6 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418523/1200-900/IMG_20170530_154707.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The images below shows the final effect of the soft seal.&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418524/IMG_20170530_155216.jpg"&gt;&lt;img alt="IMG_20170530_155216.jpg" class="image-7 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418524/1200-900/IMG_20170530_155216.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt; &lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418525/IMG_20170530_155205.jpg"&gt;&lt;img alt="IMG_20170530_155205.jpg" class="image-8 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418525/1200-900/IMG_20170530_155205.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;For now only the front protective sheet should be removed. A lot of work has to be done on the back before we fix all the stuff, and eventually testing the mirror effect.&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418526/IMG_20170530_160051.jpg"&gt;&lt;img alt="IMG_20170530_160051.jpg" class="image-9 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418526/1200-900/IMG_20170530_160051.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2 id="jive_content_id_Assembling_the_mirror_back_side"&gt;Assembling the mirror back side&lt;/h2&gt;&lt;p&gt;Seeing this project it&amp;#160; seems that some solutions was thought to make things complex. For example the mirror pressed over the soft seal instead of glueing it or using screws and supports to keep all in place. &lt;/p&gt;&lt;p&gt;As mentioned before this is a &lt;strong&gt;magic mirror development platform&lt;/strong&gt;; every component should be easy to replace and should be possible to assemble/disassemble then entire structure.&lt;/p&gt;&lt;p&gt;In this design I first thought to a &lt;strong&gt;modular system&lt;/strong&gt;: based on this development design it should be possible to build a number of variants depending on the features the user want to include or not. For this same reason I have not used any sort of recycled parts but components - the cheaper and more reliable to find - available on the marked plus some custom designed parts 3D printed.&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418529/IMG_20170525_225502.jpg"&gt;&lt;img alt="IMG_20170525_225502.jpg" class="image-10 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418529/1200-900/IMG_20170525_225502.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Instead of placing black tape or other kind of adhesive opaque film on the back side of the mirror I have used a black plastic propylene sheet. The Raspberry PI will support screen rotation so it is possible that in the future a different screen rotation or a different scree size will replace the actual settings. The gallery below illustrates the process of creating the black frame.&lt;/p&gt;&lt;table border="1" class="jiveBorder" style="border: 1px solid #000000; width: 100%;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style="border:1px solid black;border: 1px solid #000000;padding: 2px;color: #ffffff;background-color: #6690bc;text-align: center;" valign="middle"&gt;&lt;strong&gt;{gallery} Black back frame&lt;/strong&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: 1px solid #000000;padding: 2px;"&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418531/IMG_20170525_214207.jpg"&gt;&lt;img alt="IMG_20170525_214207.jpg" class="image-11 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418531/1200-900/IMG_20170525_214207.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The propylene black thin sheet&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: 1px solid #000000;padding: 2px;"&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418541/IMG_20170525_214917.jpg"&gt;&lt;img alt="IMG_20170525_214917.jpg" class="image-12 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418541/1200-900/IMG_20170525_214917.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The black sheet should be cut of the same size of the mirror&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: 1px solid #000000;padding: 2px;"&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418542/IMG_20170525_222259.jpg"&gt;&lt;img alt="IMG_20170525_222259.jpg" class="image-13 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418542/1200-900/IMG_20170525_222259.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Measuring the screen dimensions to cut the rectangular area in the black sheet&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: 1px solid #000000;padding: 2px;"&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418543/IMG_20170525_222308.jpg"&gt;&lt;img alt="IMG_20170525_222308.jpg" class="image-14 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418543/1200-900/IMG_20170525_222308.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Measures should be exactly the size of the visible screen without the frame edge&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: 1px solid #000000;padding: 2px;"&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418544/IMG_20170525_223225.jpg"&gt;&lt;img alt="IMG_20170525_223225.jpg" class="image-15 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418544/1200-900/IMG_20170525_223225.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Placing paper tape to safely mark the cutting area&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: 1px solid #000000;padding: 2px;"&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418545/IMG_20170525_223913.jpg"&gt;&lt;img alt="IMG_20170525_223913.jpg" class="image-16 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418545/1200-900/IMG_20170525_223913.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The cutting area should be exactly horizontally centred; the vertical position should be 1/4 lower than the vertical centre&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: 1px solid #000000;padding: 2px;"&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418546/IMG_20170525_224935.jpg"&gt;&lt;img alt="IMG_20170525_224935.jpg" class="image-17 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418546/1200-900/IMG_20170525_224935.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The back sheet after cutting. Now the paper tape can be removed.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: 1px solid #000000;padding: 2px;"&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418640/IMG_20170525_225502.jpg"&gt;&lt;img alt="IMG_20170525_225502.jpg" class="image-18 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418640/1200-900/IMG_20170525_225502.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Double checking the part to fit exactly before fixing it&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: 1px solid #000000;padding: 2px;"&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418641/IMG_20170526_090332.jpg"&gt;&lt;img alt="IMG_20170526_090332.jpg" class="image-19 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418641/1200-900/IMG_20170526_090332.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;After removing the protective plastic sheet from the back of the mirror the black sheet is positioned as a second layer.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;Until this point the extra cost we have added is less than 5$ more.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h2 id="jive_content_id_Keeping_the_LCD_in_place"&gt;Keeping the LCD in place&lt;/h2&gt;&lt;p&gt;The LCD screen is the heaviest part of the structure and is difficult to keep in place. I have explored several methods used by other magic mirror buildings but none of these was efficient; a modular and replicable project should adopt solutions&amp;#160; easy to make and reproduce (and cheap too).&lt;/p&gt;&lt;p&gt;For both the back frame and magic mirror back cover (the cover of the assembled stuff I used 3 mm thick MDF; it cost only few cents and is easy to cut and prepare (can be cut with a cutter) but sufficiently strong to make his job.&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418642/IMG_20170530_160034.jpg"&gt;&lt;img alt="IMG_20170530_160034.jpg" class="image-20 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418642/1200-900/IMG_20170530_160034.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;A first MDF frame has been cut of the &lt;strong&gt;exact size&lt;/strong&gt; of the internal frame. Inside a rectangular cut removed an area aligned with the previously LCD screen position. The cut should be &lt;strong&gt;exactly&lt;/strong&gt; of the size of the screen frame that should be inserted in it. This will keep the screen stably in place when the magic mirror stands in vertical position for use.&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418917/IMG_20170530_161738.jpg"&gt;&lt;img alt="IMG_20170530_161738.jpg" class="image-21 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418917/1200-900/IMG_20170530_161738.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The screen is inserted and fixed with black adhesive tape as shown in the image above. This part not only keep the LCD in the right position but also support the other layers in place spporting the electronic parts and wires.&lt;/p&gt;&lt;p&gt;The two images below shows the back of the magic mirror with the screen positioned inside the rectangular cut.&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418918/IMG_20170530_163621.jpg"&gt;&lt;img alt="IMG_20170530_163621.jpg" class="image-22 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418918/1200-900/IMG_20170530_163621.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt; &lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418919/IMG_20170530_163629.jpg"&gt;&lt;img alt="IMG_20170530_163629.jpg" class="image-23 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418919/1200-900/IMG_20170530_163629.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2 id="jive_content_id_Adding_the_Raspberry_Pi_and_wiring_all_together"&gt;Adding the Raspberry Pi and wiring all together&lt;/h2&gt;&lt;p&gt;The last component that should be added to the modular magic mirror is the Raspberry Pi; for this version it has been used a Pi B V 1.2 with the WiPi WiFi USB adapter. The board has been placed on the back top side using a VESA support 3D printed and screwed to the MDF layer as shown in the images below&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418920/IMG_20170530_183145.jpg"&gt;&lt;img alt="IMG_20170530_183145.jpg" class="image-24 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418920/1200-900/IMG_20170530_183145.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418921/IMG_20170531_074944.jpg"&gt;&lt;img alt="IMG_20170531_074944.jpg" class="image-25 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418921/1201-900/IMG_20170531_074944.jpg" style="width: 620px; height: 465px;" width="1201"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418922/IMG_20170530_210841.jpg"&gt;&lt;img alt="IMG_20170530_210841.jpg" class="image-26 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418922/1200-900/IMG_20170530_210841.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418923/IMG_20170530_210834.jpg"&gt;&lt;img alt="IMG_20170530_210834.jpg" class="image-27 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418923/1200-900/IMG_20170530_210834.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Wiring is not difficult; to connect the Pi to the HDMI LCD it is suggested a short HDMI cable avoiding too long wires inside. To reduce weight and avoid extra heating inside the magic mirror box the power units are left outside of the structure.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h3 id="jive_content_id_Raspberry_Pi_Cooling"&gt;Raspberry Pi Cooling&lt;/h3&gt;&lt;p&gt;A series of holes have also been done on the main back cover - another 3mm MDF layer - for the Raspberry cooling. After some days the system was running in test I have decided that for now a cooling fan is not essential for the health of the device.&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418924/IMG_20170531_075006.jpg"&gt;&lt;img alt="IMG_20170531_075006.jpg" class="image-28 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418924/1200-900/IMG_20170531_075006.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h3 id="jive_content_id_Adding_the_Pi_devices"&gt;Adding the Pi devices&lt;/h3&gt;&lt;p&gt;After the Pi installation I have added a Pi camera V. 2 and a NFC/RFID Shield. For the development version it is sufficient to keep the Pi board on top of the Raspberry; in a production model this device should be in a more accessible place, i.e. one of the frame sides.&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418934/IMG_20170531_215619.jpg"&gt;&lt;img alt="IMG_20170531_215619.jpg" class="image-29 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418934/1200-900/IMG_20170531_215619.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt; &lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418935/IMG_20170531_215707.jpg"&gt;&lt;img alt="IMG_20170531_215707.jpg" class="image-30 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418935/1200-900/IMG_20170531_215707.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h3 id="jive_content_id_Fixing_the_back_layers_firmly"&gt;Fixing the back layers firmly&lt;/h3&gt;&lt;p&gt;After the final assembly the internal MDF layer should be fixed firmly to press the other layers: the mirror and the black frame. To make the entire structure easy to remove and change custom 3D printed supports have been designed and screwed to the internal sides.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;table border="1" class="jiveBorder" style="border: 1px solid #000000; width: 100%;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style="border:1px solid black;border: 1px solid #000000;padding: 2px;color: #ffffff;background-color: #6690bc;text-align: center;" valign="middle"&gt;&lt;strong&gt;{gallery} Plastic blocks fixking the internal layers&lt;/strong&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: 1px solid #000000;padding: 2px;"&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418936/Internal+supports.png"&gt;&lt;img alt="Internal supports.png" class="image-31 jive-image" height="784" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418936/Internal+supports.png" style="width: 620px; height: 317px;" width="1533"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Angular and linear blocks design&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: 1px solid #000000;padding: 2px;"&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418937/IMG_20170531_191629.jpg"&gt;&lt;img alt="IMG_20170531_191629.jpg" class="image-32 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418937/1200-900/IMG_20170531_191629.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;3D printed supports detail&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: 1px solid #000000;padding: 2px;"&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418938/IMG_20170531_192629.jpg"&gt;&lt;img alt="IMG_20170531_192629.jpg" class="image-33 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418938/1200-900/IMG_20170531_192629.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Side support detail&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: 1px solid #000000;padding: 2px;"&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418939/IMG_20170531_192637.jpg"&gt;&lt;img alt="IMG_20170531_192637.jpg" class="image-34 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418939/1200-900/IMG_20170531_192637.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Side support detail&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border: 1px solid #000000;padding: 2px;"&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418940/IMG_20170531_214416.jpg"&gt;&lt;img alt="IMG_20170531_214416.jpg" class="image-35 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418940/675-900/IMG_20170531_214416.jpg" style="width: 620px; height: 827px;" width="675"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Finished internal assembly&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h3 id="jive_content_id_Last_touch_positioning_the_camera"&gt;Last touch: positioning the camera&lt;/h3&gt;&lt;p&gt;Also the camera support has been designed thinking to a modular approach.&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418941/Camera+Support.png"&gt;&lt;img alt="Camera Support.png" class="image-36 jive-image" height="722" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418941/Camera+Support.png" style="width: 620px; height: 464px;" width="965"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;As shown in the image above a small camera case design will host the Pi Camera V.2 placed on top of the wooden frame. The support is built in two parts glued together; it is easy to remove, eventually replacing the camera with a black model if needed. In a production version the PiCamera will be hidden on the back of the frame leaving only a small hole for the lens.&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418942/IMG_20170601_065258.jpg"&gt;&lt;img alt="IMG_20170601_065258.jpg" class="image-37 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418942/1200-900/IMG_20170601_065258.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt; &lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418943/IMG_20170601_065412.jpg"&gt;&lt;img alt="IMG_20170601_065412.jpg" class="image-38 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418943/1200-900/IMG_20170601_065412.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h2 id="jive_content_id_Finished_setup_and_some_anticipations"&gt;Finished setup and some anticipations&lt;/h2&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25614-418944/IMG_20170601_065601.jpg"&gt;&lt;img alt="IMG_20170601_065601.jpg" class="image-39 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25614-418944/675-900/IMG_20170601_065601.jpg" style="width: 620px; height: 827px;" width="675"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The image above shows the &lt;strong&gt;Pi Magic&lt;/strong&gt; box complete and running. The base essential software is:&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Raspbian Jessie Pixel edition&lt;/li&gt;&lt;li&gt;Node-js&lt;/li&gt;&lt;li&gt;MagicMirror2 development environment&lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The NFC/RFID tag reader will be used for user identification while the Pi Camera for - at least - gesture recognition. This aim to give a great add-on to the currently available MagicMirror2 projects not supporting these features. It is essential to add user interactivity to this project: this means integrating the Magic Pi building in a IoT context.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;In the next blog I will introduce the standard and custom software that will complete the project.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:4ac66557-16b8-4559-9bc1-8e3bd6520345] --&gt;</description>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">mirror</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">raspberry pi</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">lcd display</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">pi camera</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">rfid reader</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">rfid tag</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">magic mirror</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">magic pi</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">magic mirror prototype</category>
      <pubDate>Fri, 02 Jun 2017 13:05:33 GMT</pubDate>
      <author>messages@element14.com</author>
      <guid>https://www.element14.com/community/community/raspberry-pi/blog/2017/06/02/magicpi-1-a-magicmirror2-development-platform-for-the-raspberry-pi-with-some-new-things</guid>
      <dc:date>2017-06-02T13:05:33Z</dc:date>
      <clearspace:dateToText>1 month 2 weeks ago</clearspace:dateToText>
      <clearspace:replyCount>13</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://www.element14.com/community/community/raspberry-pi/blog/comment/magicpi-1-a-magicmirror2-development-platform-for-the-raspberry-pi-with-some-new-things</wfw:comment>
      <wfw:commentRss>https://www.element14.com/community/community/raspberry-pi/blog/feeds/comments?blogPost=25614</wfw:commentRss>
    </item>
    <item>
      <title>Stranger Things are afoot with Android on Raspberry Pi - "Android Things" is available</title>
      <link>https://www.element14.com/community/community/raspberry-pi/blog/2017/05/07/stranger-things-are-afoot-with-android-on-raspberry-pi-android-things-is-available</link>
      <description>&lt;!-- [DocumentBodyStart:d661894d-217c-48a9-a4cc-8cf096c2b497] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;I'm not sure how I managed to miss this, perhaps because it's still in 'developer preview', but a version of Android is officially available for the Raspberry Pi 3.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;If you're really keen, you can download the image here for the &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Fandroidthings_rpi3_devpreview_3_1.zip%2F" rel="nofollow" target="_blank"&gt;developer preview 3.1&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25468-409578/pastedImage_2.png"&gt;&lt;img class="image-3 jive-image" height="643" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25468-409578/pastedImage_2.png" style="max-width:769px; max-" width="769"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25468-409577/pastedImage_1.png"&gt;&lt;img class="image-2 jive-image" height="153" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25468-409577/pastedImage_1.png" style="max-width:641px; max-" width="641"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Thanks to the recent release of &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Faiyprojects.withgoogle.com%2Fvoice" rel="nofollow" target="_blank"&gt;Google's AIY Project&lt;/a&gt; with the latest version of the &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fwww.raspberrypi.org%2Fmagpi%2F" rel="nofollow" target="_blank"&gt;MagPi magazine&lt;/a&gt; (already selling for &amp;#163;40+ on ebay), the official guide for the project which is rumored to be on sale at a later date from Google, &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fgithub.com%2Fandroidthings%2Faiyprojects-googleassistant" rel="nofollow" target="_blank"&gt;links to a github&lt;/a&gt; for running &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fgithub.com%2Fandroidthings%2Faiyprojects-googleassistant" rel="nofollow" target="_blank"&gt;AIY Project&lt;/a&gt; on 'Android Things' with the aforementioned link to the developer preview. &lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25468-409579/pastedImage_3.png"&gt;&lt;img class="jive-image image-4" height="163" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25468-409579/pastedImage_3.png" style="max-width:360px; max-" width="360"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Google also has an &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fdeveloper.android.com%2Fthings%2Fpreview%2Fdownload.html" rel="nofollow" target="_blank"&gt;Android image with the AIY Project&lt;/a&gt; as opposed to it running on Raspbian.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25468-409366/pastedImage_0.png"&gt;&lt;img class="image-1 jive-image" height="570" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25468-409366/pastedImage_0.png" style="max-width:924px; max-" width="924"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;It turns out there's a full site for &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fdeveloper.android.com%2Fthings%2Fhardware%2Fraspberrypi.html" rel="nofollow" target="_blank"&gt;Android Things&lt;/a&gt; and it runs on more than Raspberry Pi 3, it also runs on the intel Edison. However, it appears to be as 'bare bones' as the Windows 10 IoT Core, intended to be a deployment platform for apps via the &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fdeveloper.android.com%2Fstudio%2Fcommand-line%2Fadb.html" rel="nofollow" target="_blank"&gt;adb interface&lt;/a&gt;. Though it likely still means that the full graphical interface could be run on it. It's not without issues though and is still very much in development:&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25468-409581/pastedImage_6.png"&gt;&lt;img class="image-6 jive-image" height="309" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25468-409581/pastedImage_6.png" style="max-width:902px; max-" width="902"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25468-409582/pastedImage_7.png"&gt;&lt;img class="image-7 jive-image" height="272" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25468-409582/pastedImage_7.png" style="max-width:913px; max-" width="913"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25468-409580/pastedImage_4.png"&gt;&lt;img class="image-5 jive-image" height="136" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25468-409580/pastedImage_4.png" style="max-width:792px; max-" width="792"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;I for one, welcome our Google overlords &lt;span aria-label="Wink" class="emoticon-inline emoticon_wink" style="height:16px;width:16px;"&gt;&lt;/span&gt; what're you going to make, and will this cause you to check out Android if you haven't already?&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:d661894d-217c-48a9-a4cc-8cf096c2b497] --&gt;</description>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">android</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">google</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">raspberry pi 3</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">windows 10 iot core</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">intel edison</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">google assistant sdk</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">google assistant</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">aiyproject</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">android things</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">raspberry pi 3 android</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">adb</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">adb interface</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">android image</category>
      <pubDate>Sun, 07 May 2017 19:19:00 GMT</pubDate>
      <author>messages@element14.com</author>
      <guid>https://www.element14.com/community/community/raspberry-pi/blog/2017/05/07/stranger-things-are-afoot-with-android-on-raspberry-pi-android-things-is-available</guid>
      <dc:date>2017-05-07T19:19:00Z</dc:date>
      <clearspace:dateToText>2 months 1 week ago</clearspace:dateToText>
      <clearspace:replyCount>4</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://www.element14.com/community/community/raspberry-pi/blog/comment/stranger-things-are-afoot-with-android-on-raspberry-pi-android-things-is-available</wfw:comment>
      <wfw:commentRss>https://www.element14.com/community/community/raspberry-pi/blog/feeds/comments?blogPost=25468</wfw:commentRss>
    </item>
    <item>
      <title>Google's Alexa-like Pi AIY Kit, mini teardown</title>
      <link>https://www.element14.com/community/community/raspberry-pi/blog/2017/05/04/googles-alexa-like-pi-aiy-kit-mini-teardown</link>
      <description>&lt;!-- [DocumentBodyStart:4b02145a-4232-42f9-9446-1bbd6192a029] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Google has been busy getting stuff attached to MagPi magazines.. I spotted a box containing an 'AIY' kit at the local magazine retailer. Basically it is a card box with some electrical parts and the MagPi magazine.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;It is like a cut-down DIY version of Amazon Alexa from what I can tell.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;They had plenty at closing time, so I suspect there will be lots for people to buy tomorrow too, but from examination it is an audio card and a few peripherals. USB sound cards are cheap these days so that is another option for those who don't/can't purchase the magazine.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Below are photos of the contents of the box (just the electronic bits are shown, there is also a cardboard self-assembly enclosure and the MagPi magazine itself; I might take photos of that later), like a mini-teardown where the teardown is already done.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;I think it's fair to say the kit component-wise is a little boring, but at least it's cheap. The stereo mic is good to see though. And maybe more projects will be available in future.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Also there are other ways to achieve Alexa-like capability (from both a hardware and PaaS vendor perspective).&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;For higher quality there are multi-microphone options for Pi, although of course they are more expensive.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Where the fun will come in is with the software - it will be a lot of fun to create voice-enabled projects.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Although it is intended to use Google PaaS, not everyone likes sending audio to a cloud, but it is usable for standalone non-Internet-connected audio projects too, e.g. music player. No need to plug in the microphone wires.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;In summary, it is nice to see traction with voice-enabled natural language assistant projects for hobbyists, and the hardware here is very basic, but at least it keeps interest up and lots of opportunities for those learning programming to have fun and create some cool projects.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Some photos and notes follow, as well as any reverse-engineered schematics. Also see the comments section.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25454-408616/aiy-annotated.jpg"&gt;&lt;img alt="aiy-annotated.jpg" class="image-1 jive-image" height="695" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25454-408616/971-695/aiy-annotated.jpg" style="width:971px; height: 695.361px;" width="971"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h1&gt;Connections Overview&lt;/h1&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;According to google's page, these are the connections (see diagram below). Handily the Pi's I2C, SPI and UART connections are broken out to pads all ready for soldering to the supplied SIL header pins.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;There are also some output pins, probably MOSFET driven (can see what looks like SOT-23 sized MOSFETs marked G31 D5 (they are most likely N-channel MOSFETS part code Diodes Inc DMG3420U) on the right of the image along with SMD fuse and diode per output).&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;See further below for reverse-engineered schematic for that.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;On the left of the board, there is space for soldering SIL pins for attaching hobby servo motors.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25454-408623/connections.jpg"&gt;&lt;img alt="connections.jpg" class="image-5 jive-image" height="683" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25454-408623/967-683/connections.jpg" style="width:967px; height: 683.139px;" width="967"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;h1&gt;Output Drivers&lt;/h1&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The four drivers (shown on the right side of the diagram above) have most likely the following circuit - I think it is accurate but please let me know in the comments if it isn't:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25454-410012/voice-hat-driver-schematic.png"&gt;&lt;img alt="voice-hat-driver-schematic.png" class="image-10 jive-image" height="488" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25454-410012/872-488/voice-hat-driver-schematic.png" style="width:872px; height: 488.039px;" width="872"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The four MOSFETs are used in an open drain configuration, so the pins marked 'DRIVER' will be switched to ground (0V) whenever the corresponding GPIO pin goes high. If the desired load is 5V powered then the 5V pin can be used to provide power (there is a 500mA resettable fuse). The open drain configuration also allows a lower voltage source to be used to supply the load, and the MOSFET will switch the other end of the load to ground.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The diagram below shows how to connect a relay with a 5V coil. It is inadvisable to use the Driver outputs with a higher voltage despite it being an open drain configuration because current can flow through the diode in the schematic above and the fuse, causing damage.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Also, it is strongly advised not to use this for connecting mains operated equipment, because there are regulations governing what enclosure is used and how the cable is secured and so on. To control mains equipment it is good to use home automation methods such as wireless (there are radio transmitters available for the Pi).&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25454-411837/voice-hat-relay.jpg"&gt;&lt;img alt="voice-hat-relay.jpg" class="image-11 jive-image" height="528" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25454-411837/827-528/voice-hat-relay.jpg" style="width:827px; height: 528.213px;" width="827"/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;A suitable relay could be &lt;span&gt;&lt;span class="e14-init-shown" id="addProduct-AqmWLGxu-linked" style="white-space: nowrap;"&gt;&lt;a class="jive-link-product-addtolist" href="https://www.element14.com/community/view-product.jspa?fsku=1329651&amp;amp;nsku=NULL&amp;amp;COM=noscript" onclick="productSearch.getSearchResults('embedded-link', this, '1329651', 'NULL', ''); return false;" target="_blank" title="View product details"&gt;&lt;span alt="View product details" class="pf-widget-map pf-productlink-cart-icon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;a class="jive-link-product pf-embedded-product-link" href="https://www.element14.com/community/view-product.jspa?fsku=1329651&amp;amp;nsku=NULL&amp;amp;COM=noscript" onclick="productSearch.getSearchResults('embedded-link', this, '1329651', 'NULL', ''); return false;" target="_blank" title="View product details"&gt;Finder 5V coil SPDT 6A contacts changeover relay&lt;/a&gt;&lt;/span&gt;&lt;span class="e14-init-hidden" data-fsku="1329651" data-nsku="NULL" id="addProduct-AqmWLGxu-unlinked"&gt;Finder 5V coil SPDT 6A contacts changeover relay&lt;/span&gt;&lt;/span&gt; or Finder &lt;span&gt;&lt;span class="e14-init-shown" id="addProduct-UIx49JyR-linked" style="white-space: nowrap;"&gt;&lt;a class="jive-link-product-addtolist" href="https://www.element14.com/community/view-product.jspa?fsku=1947873&amp;amp;nsku=NULL&amp;amp;COM=noscript" onclick="productSearch.getSearchResults('embedded-link', this, '1947873', 'NULL', ''); return false;" target="_blank" title="View product details"&gt;&lt;span alt="View product details" class="pf-widget-map pf-productlink-cart-icon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;a class="jive-link-product pf-embedded-product-link" href="https://www.element14.com/community/view-product.jspa?fsku=1947873&amp;amp;nsku=NULL&amp;amp;COM=noscript" onclick="productSearch.getSearchResults('embedded-link', this, '1947873', 'NULL', ''); return false;" target="_blank" title="View product details"&gt;SPST 6A relay&lt;/a&gt;&lt;/span&gt;&lt;span class="e14-init-hidden" data-fsku="1947873" data-nsku="NULL" id="addProduct-UIx49JyR-unlinked"&gt;SPST 6A relay&lt;/span&gt;&lt;/span&gt; . Both of these relays are very compact (20x10x10mm) and have pins that will fit a breadboard or stripboard so are easy to prototype with. The comments section further below has a photo of how to wire it up and some example Python code to test it by turning the relay on and off. Although these relays can be used with mains, it would be extremely inadvisable to do so without a decent PCB layout (not stripboard!) and other precautions (&lt;a class="jive-link-blog-small" data-containerId="13937" data-containerType="37" data-objectId="16282" data-objectType="38" href="https://www.element14.com/community/community/raspberry-pi/blog/2014/07/13/mains-power-control"&gt;see here for some reasons&lt;/a&gt;). So, the relay control is best used for lower-voltage tasks.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h1&gt;Mains Control&lt;/h1&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;One solution is to use wireless control. This can be country or region specific.&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;UK&lt;/h2&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;I've used an &lt;a class="jive-link-blog-small" data-containerId="11241" data-containerType="37" data-objectId="17879" data-objectType="38" href="https://www.element14.com/community/community/designcenter/single-board-computers/blog/2014/11/19/energenie-experiments-remote-power-control-for-the-home"&gt;Energenie wireless module&lt;/a&gt; before, it is a very small transmitter board that connects to the Pi and wirelessly controls mains sockets. The &lt;span&gt;&lt;span class="e14-init-shown" id="addProduct-TWwwFXiX-linked" style="white-space: nowrap;"&gt;&lt;a class="jive-link-product-addtolist" href="https://www.element14.com/community/view-product.jspa?fsku=2433438&amp;amp;nsku=NULL&amp;amp;COM=noscript" onclick="productSearch.getSearchResults('embedded-link', this, '2433438', 'NULL', ''); return false;" target="_blank" title="View product details"&gt;&lt;span alt="View product details" class="pf-widget-map pf-productlink-cart-icon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;a class="jive-link-product pf-embedded-product-link" href="https://www.element14.com/community/view-product.jspa?fsku=2433438&amp;amp;nsku=NULL&amp;amp;COM=noscript" onclick="productSearch.getSearchResults('embedded-link', this, '2433438', 'NULL', ''); return false;" target="_blank" title="View product details"&gt;Energenie kit&lt;/a&gt;&lt;/span&gt;&lt;span class="e14-init-hidden" data-fsku="2433438" data-nsku="NULL" id="addProduct-TWwwFXiX-unlinked"&gt;Energenie kit&lt;/span&gt;&lt;/span&gt; comes with the wireless transmitter board and two sockets. It's good value, and meets the relevant electrical standards for the UK. It could be wired to the connections on the left side of the google voice HAT board allocated for Servos for example (by default it needs six GPIO although that number can optionally be reduced if needed).&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h1&gt;Audio Output&lt;/h1&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The centre of the board contains the integrated circuit (IC) with the audio digital-to-analog converter and mono audio amplifier inside it, it is Maxim MAX98357A - thanks Inderpreet! (the 16-pin QFN sized IC says AKK BDK on it) and an EEPROM marked 24C32F.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25454-408620/aiy-hat-top.jpg"&gt;&lt;img alt="aiy-hat-top.jpg" class="image-2 jive-image" height="523" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25454-408620/969-523/aiy-hat-top.jpg" style="width:969px; height: 523.573px;" width="969"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;h1&gt;Power Connections&lt;/h1&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;There is also space for a DC power jack but none is fitted. A DC power jack with thin pins would fit. There is a SOT23-6 part near it, marked K4S DD and a SOT-23 part marked 23X D1 is close too. These two parts have a Q identifier, so are likely some type of transistors.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h1&gt;Microphone Board&lt;/h1&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The microphones are marked 432 QDF21G and are Knowles SPH0645LM4H (thanks again Inderpreet) MEMS digital microphones. They directly output an I2S bitstream.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25454-408621/aiy-mic-top.jpg"&gt;&lt;img alt="aiy-mic-top.jpg" class="image-3 jive-image" height="437" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25454-408621/968-437/aiy-mic-top.jpg" style="width:968px; height: 437.161px;" width="968"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The microphone input ports are on the underside:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25454-408622/aiy-hat-mic-underside.jpg"&gt;&lt;img alt="aiy-hat-mic-underside.jpg" class="image-4 jive-image" height="795" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25454-408622/968-795/aiy-hat-mic-underside.jpg" style="width:968px; height: 794.697px;" width="968"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;This is the schematic of the microphone board, using the information from Inderpreet in the comments below. There may be some minor mistakes (please let me know in the comments section and I'll correct it). In theory the microphone board could be used standalone with the Pi, no need for the main Voice HAT board. It is a convenient breakout board for the surface-mount mics.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;It could be suitable for small projects, e.g. with the 'Zero or with other boards with an I2S interface. It would be advisable to have a small resistance (e.g. 51 ohms) in series with the LRCLK and BCLK pins if it is connected directly.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;There is nothing to stop a voice assistant from working without a speaker (you just won't hear the result, unless the on-board headphone socket on the Pi 3 is used perhaps).&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Not all projects would require an audio response. Also, for some projects one may prefer a discreet response in an earphone (e.g. check your calendar by requesting it, but not announcing your plans to everyone).&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25454-410006/voice-hat-mic-board-schematic.png"&gt;&lt;img alt="voice-hat-mic-board-schematic.png" class="image-7 jive-image" height="540" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25454-410006/784-540/voice-hat-mic-board-schematic.png" style=" width: 784.075px;" width="784"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h1&gt;Safety Leaflet&lt;/h1&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;This is enclosed in the box:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25454-410008/aiy-doc.jpg"&gt;&lt;img alt="aiy-doc.jpg" class="image-9 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25454-410008/609-900/aiy-doc.jpg" style="height: auto;" width="609"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:4b02145a-4232-42f9-9446-1bbd6192a029] --&gt;</description>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">raspberry_pi</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">raspberry pi</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">raspberry pi 3</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">amazon alexa</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">raspberry_pi_3</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">aiy</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">google_aiy</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">google aiy</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">aiy project</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">aiyproject</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">aiy google</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">google sdk</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">google embedded sdk</category>
      <pubDate>Thu, 04 May 2017 18:30:00 GMT</pubDate>
      <author>messages@element14.com</author>
      <guid>https://www.element14.com/community/community/raspberry-pi/blog/2017/05/04/googles-alexa-like-pi-aiy-kit-mini-teardown</guid>
      <dc:date>2017-05-04T18:30:00Z</dc:date>
      <clearspace:dateToText>2 months 1 hour ago</clearspace:dateToText>
      <clearspace:replyCount>61</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://www.element14.com/community/community/raspberry-pi/blog/comment/googles-alexa-like-pi-aiy-kit-mini-teardown</wfw:comment>
      <wfw:commentRss>https://www.element14.com/community/community/raspberry-pi/blog/feeds/comments?blogPost=25454</wfw:commentRss>
    </item>
    <item>
      <title>Add a 3G mobile data connection to the Raspberry Pi</title>
      <link>https://www.element14.com/community/community/raspberry-pi/blog/2017/04/26/adding-a-3g-mobile-data-connection-to-the-raspberry-pi</link>
      <description>&lt;!-- [DocumentBodyStart:622b40f3-ed6b-4191-a674-367084abded2] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;The Raspberry Pi and other low-cost, board-based computers are becoming increasingly popular amongst developers and hobbyists, thanks to the Internet of Things revolution. Users are easily able to experiment with IoT projects by connecting to a network using wired or wireless connections &amp;#8211; whether this is through the simple use of an Ethernet cable, or with complementary accessories such as the Raspberry Pi&amp;#8217;s Wi-Fi adapter dongle.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;However, users requiring access to internet data on the go would benefit from an add-on that provides the ability to browse the web effectively, send SMS, and transfer data using a mobile network connection &amp;#8211; especially if it is readily available as per the Raspberry Pi HAT specification.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;When looking at forums and talking to Raspberry Pi users at events, we found that there were repeated requests for a product that added a 2G/3G/4G connection to the Raspberry Pi, as they were finding it hard to source a reliable add-on that would allow for data and SMS capability. We decided to develop a device that allows hobbyists and developers to create IoT projects on the go - and so, the PiloT&amp;#174; was created.&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25405-405811/Pilot_3.jpg"&gt;&lt;img alt="PiloT 3G HAT for Raspberry Pi" class="image-1 jive-image" height="406" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25405-405811/466-406/Pilot_3.jpg" style="display: block; margin-left: auto; margin-right: auto;  width: 465.675px;" width="466"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;What is the PiloT&amp;#174;?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The PiloT&amp;#174; is a WAN communications board which provides a 3G / HSPA wireless interface for the Raspberry Pi. The PiloT&amp;#174; features an on-board Sierra Wireless HL Series module teamed with a SIM card of the user&amp;#8217;s choice, as well as a GNSS solution, which is used to provide location and time information.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;How does it work?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The PiloT&amp;#174; uses a small number of I/Os; the remainder are passed through on the 40-pin headers for use by other applications. Simple AT commands are used to control and monitor sessions on the Sierra Wireless HL Series module.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The PiloT&amp;#174; is able to communicate with the Raspberry Pi using serial or USB communications, with separate channels for control, data and location data. It can be powered by the Raspberry Pi, or a separate power supply can be used.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;When used in CDC-ECM mode over USB, the PiloT&amp;#174; presents as an Ethernet-like WAN device, simplifying control of data sessions. In this mode, PPP is not required; a simple command initiates the session. The PiloT&amp;#174; can also be used to transfer data to the Sierra Wireless AirVantage&amp;#174; service using MQTT from a Raspberry Pi; offering a rapidly deployable device-to-cloud architecture.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;div class="e14-video-container" style="max-width: 544px"&gt;&lt;div class="e14-video"&gt;&lt;iframe allowfullscreen="allowfullscreen" frameborder="0" height="408" scrolling="no" src="https://www.youtube.com/embed/Upyf5L1htYU?wmode=transparent" width="544"&gt;
&lt;/iframe&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Who is it aimed at?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Whilst the PiloT&amp;#174; is suitable for use in business applications by users looking to integrate the PiloT&amp;#174; into IoT projects, it is also ideal for hobbyists, developers and educators alike. The PiloT&amp;#174; allows for the transformation of a number of applications on the Raspberry Pi and other development boards by providing communications out in the field rather than tethering the user to Wi-Fi or Ethernet, allowing for another level of creative and practical opportunity and enhancing the convenience of everyday tasks.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Is it compatible with all Raspberry Pi variants?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The PiloT&amp;#174; is compatible with the Raspberry Pi 2, 3 and Zero, and can also be used in standalone mode to provide communications to other development boards.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25405-406011/PiloT+as+ev+board+600.jpg"&gt;&lt;img alt="PiloT 3G HAT as HL Series Evaluation Board" class="image-3 jive-image" height="293" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25405-406011/341-293/PiloT+as+ev+board+600.jpg" style="width:341px; height: 293.26px;" width="341"/&gt;&lt;/a&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25405-406010/Pilot_4.jpg"&gt;&lt;img alt="PiloT 3G HAT for Raspberry Pi" class="image-2 jive-image" height="273" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25405-406010/354-273/Pilot_4.jpg" style="width:354px; height: 272.923px;" width="354"/&gt;&lt;/a&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25405-406012/PiloT+on+UP1.jpg"&gt;&lt;img alt="PiloT 3G HAT on UP board" class="image-4 jive-image" height="281" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25405-406012/373-281/PiloT+on+UP1.jpg" style="width:373px; height: 280.581px;" width="373"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Does the PiloT&amp;#174; offer 4G connectivity?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;A 4G version (with 2G fallback) of the PiloT&amp;#174; will be available for purchase very soon - &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Fecommerce.linkwave.co.uk%2Fpilot%2F" rel="nofollow" target="_blank"&gt;keep checking our ecommerce site for stock!&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;How well does it work?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;We manually build and test every single PiloT&amp;#174; HAT so we are sure that our customers receive a high quality product, and we constantly ensure that PiloT&amp;#174; users have access to manually written and checked up-to-date user guides for the relevant PiloT&amp;#174; variant. We have taken the PiloT&amp;#174; to a variety of events &amp;#8211; from large exhibitions to small conferences; demonstrating its capabilities with a heart rate monitor sending information using a mobile network connection, communicating accurate heart rate readings, along with accurate time to within around a second, and location information up to around 20 metres. The PiloT&amp;#174; runs at roughly 5Mbps downlink and 2Mbps uplink, and the 3G and 4G variants fall back to 2G in areas where data is limited.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25405-406013/LincsBizExpo+photo.png"&gt;&lt;img alt="Expo PiloT 3G heart rate monitor" class="image-5 jive-image" height="745" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25405-406013/LincsBizExpo+photo.png" style="width: 620px; height: 349px;" width="1322"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Can I use the PiloT&amp;#174; to receive location and time information?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;The&amp;#160; &lt;span&gt;&lt;span class="e14-init-shown" id="addProduct-O1AD33yH-linked" style="white-space: nowrap;"&gt;&lt;a class="jive-link-product-addtolist" href="https://www.element14.com/community/view-product.jspa?fsku=2630508&amp;amp;nsku=NULL&amp;amp;COM=noscript" onclick="productSearch.getSearchResults('embedded-link', this, '2630508', 'NULL', ''); return false;" target="_blank" title="View product details"&gt;&lt;span alt="View product details" class="pf-widget-map pf-productlink-cart-icon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;a class="jive-link-product pf-embedded-product-link" href="https://www.element14.com/community/view-product.jspa?fsku=2630508&amp;amp;nsku=NULL&amp;amp;COM=noscript" onclick="productSearch.getSearchResults('embedded-link', this, '2630508', 'NULL', ''); return false;" target="_blank" title="View product details"&gt;HL8548-G&lt;/a&gt;&lt;/span&gt;&lt;span class="e14-init-hidden" data-fsku="2630508" data-nsku="NULL" id="addProduct-O1AD33yH-unlinked"&gt;HL8548-G&lt;/span&gt;&lt;/span&gt; variant of the PiloT provides a GNSS engine which is based on SiRF V technology GNSS data can be transferred over serial or USB interfaces providing accurate location information for your application It can also be used to provide accurate time &lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Where can I get one?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Flinkwave.co.uk%2Fthe-pilot" rel="nofollow" target="_blank"&gt;Click here to visit linkwave.co.uk for more information about the PiloT&amp;#174; and how to purchase it.&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:622b40f3-ed6b-4191-a674-367084abded2] --&gt;</description>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">3g</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">4g</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">gps</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">location</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">2g</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">iot</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">pilot</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">hl7</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">gnss</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">raspi</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">raspberrypi</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">hat</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">raspberry pi 2</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">internet of things</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">pi shield</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">development board</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">pi project</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">sim card</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">sierra wireless</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">3g mobile equipment</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">linkwave</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">hl series</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">data connectivity</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">up board</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">hl8</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">hl6</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">iot_design</category>
      <pubDate>Wed, 26 Apr 2017 13:54:45 GMT</pubDate>
      <author>messages@element14.com</author>
      <guid>https://www.element14.com/community/community/raspberry-pi/blog/2017/04/26/adding-a-3g-mobile-data-connection-to-the-raspberry-pi</guid>
      <dc:date>2017-04-26T13:54:45Z</dc:date>
      <clearspace:dateToText>2 months 2 weeks ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://www.element14.com/community/community/raspberry-pi/blog/comment/adding-a-3g-mobile-data-connection-to-the-raspberry-pi</wfw:comment>
      <wfw:commentRss>https://www.element14.com/community/community/raspberry-pi/blog/feeds/comments?blogPost=25405</wfw:commentRss>
    </item>
    <item>
      <title>Pulse Train Hat for the Raspberry Pi</title>
      <link>https://www.element14.com/community/community/raspberry-pi/blog/2017/04/14/pulse-train-hat-for-the-raspberry-pi</link>
      <description>&lt;!-- [DocumentBodyStart:0df26fc4-0aa4-4b71-a467-721262cbc111] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;&lt;span style="font-size: 14pt; font-family: arial, helvetica, sans-serif;"&gt;I am hoping that a new HAT we have designed and released will be of interest to anyone wanting to control motors within their own projects using the Raspberry Pi computer.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25324-401740/4F-1.png"&gt;&lt;img alt="4F-1.png" class="image-1 jive-image" height="511" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25324-401740/4F-1.png" style="width: 620px; height: 373px;" width="850"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial, helvetica, sans-serif; color: #303030; font-size: 14pt;"&gt;The Pulse Train Hat is an add-on board for the Rapsberry Pi computer and allows clean, fast and accurate pulses to be created using simple ASCII commands.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial, helvetica, sans-serif; color: #303030; font-size: 14pt;"&gt;There are many hardware designs where a variable frequency pulse is needed, but one that is the most popular is for driving stepper/servo motors that use pulse and direction lines.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial, helvetica, sans-serif; font-size: 14pt;"&gt;&lt;span style="color: #303030;"&gt; &lt;/span&gt;&lt;span style="color: #303030;"&gt;Motors like this are found in machines such as 3D Printers, CNC machines, Robot Arms and not to mention the other endless motion control and automation machines.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial, helvetica, sans-serif; color: #303030; font-size: 14pt;"&gt;Below is a Test Rig we used while developing the code.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial, helvetica, sans-serif; font-size: 14pt;"&gt;It allows us to test all 4 channels of the PTHAT by sending the pulses to stepper drivers, that were connected to small Nema 17 motors. It also has all the limit switch inputs brought out to switches, the ADC inputs connect to 10K pots and AUX outputs connected to LED&amp;#8217;s.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial, helvetica, sans-serif; font-size: 14pt;"&gt;We decided to use low cost stepper drivers that are usually found in 3D printers as they are not brilliant, but do the job. Our thinking is if the PTHAT can control these noisy little drivers, then handling the more expensive drivers would be easier!&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; font-family: Arial, sans-serif; color: #303030;"&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25324-401853/PTHAT-Test-Rig.jpg"&gt;&lt;img alt="PTHAT-Test-Rig.jpg" class="image-6 jive-image" height="786" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25324-401853/PTHAT-Test-Rig.jpg" style="width: 620px; height: 504px;" width="966"/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial, helvetica, sans-serif; color: #303030; font-size: 12pt;"&gt;Controlling motors may seem simple, but when you get down to detailed control, it can all become very confusing and a big learning curve.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial, helvetica, sans-serif; color: #303030; font-size: 12pt;"&gt;With the new Pulse Train Hat (PTHAT) add-on for the Raspberry Pi and a new dedicated support site &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Fwww.pthat.com%2F" rel="nofollow" target="_blank"&gt;&lt;span style="color: #303030;"&gt;http://www.pthat.com&lt;/span&gt;&lt;/a&gt; , we plan to make that task very simple and allow everyone to easily create their automation product.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; font-family: Arial, sans-serif; color: #303030;"&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25324-401849/Pthat-RaspberryPI.jpg"&gt;&lt;img alt="Pthat-RaspberryPI.jpg" class="image-2 jive-image" height="638" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25324-401849/Pthat-RaspberryPI.jpg" style="width: 620px; height: 465px;" width="850"/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px; margin-bottom: .0001pt;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"&gt;We have created an number of example applications using Visual Studio 2015 that can be used with Windows 10 IOT.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"&gt;These examples have been written in C# as a Universal Windows Platform (UWP) and all the source code can be downloaded from the website.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25324-401850/SMALLPulseTrainScaraExample.jpg"&gt;&lt;img alt="SMALLPulseTrainScaraExample.jpg" class="image-3 jive-image" height="329" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25324-401850/SMALLPulseTrainScaraExample.jpg" style="height: auto;" width="425"/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25324-401857/PTHAT-Parallel-Scara2.jpg"&gt;&lt;img alt="PTHAT-Parallel-Scara2.jpg" class="image-9 jive-image" height="574" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25324-401857/PTHAT-Parallel-Scara2.jpg" style="width: 620px; height: 407px;" width="874"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25324-401851/SMALLPulseTrainHatSerialExample.jpg"&gt;&lt;img alt="SMALLPulseTrainHatSerialExample.jpg" class="image-4 jive-image" height="336" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25324-401851/SMALLPulseTrainHatSerialExample.jpg" style="height: auto;" width="425"/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25324-401852/SMALLPulseTrainHatCoiWinderScreenshot.jpg"&gt;&lt;img alt="SMALLPulseTrainHatCoiWinderScreenshot.jpg" class="image-5 jive-image" height="336" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25324-401852/SMALLPulseTrainHatCoiWinderScreenshot.jpg" style="height: auto;" width="425"/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25324-401858/PTHAT-Coil-Winder-2.jpg"&gt;&lt;img alt="PTHAT-Coil-Winder-2.jpg" class="image-10 jive-image" height="662" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25324-401858/PTHAT-Coil-Winder-2.jpg" style="width: 620px; height: 470px;" width="874"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"&gt;We have also designed the PTHAT to have it's firmware upgraded easily using a JTAG programmer that we supply with each board.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial, helvetica, sans-serif; font-size: 12pt;"&gt;Also full details on the ARM processor we use has been released covering all the GPIO information, Clock settings and peripherals for people wanting to write their own firmware.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25324-401855/ClockSettingsPTHATV1.jpg"&gt;&lt;img alt="ClockSettingsPTHATV1.jpg" class="image-7 jive-image" height="737" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25324-401855/ClockSettingsPTHATV1.jpg" style="width: 620px; height: 548px;" width="834"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 16px; font-family: arial, helvetica, sans-serif;"&gt;Also there are a number of wiring diagrams released covering various stepper driver hook ups.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 16px;"&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25324-401856/BothBoardsTogether-MotorWiring.jpg"&gt;&lt;img alt="BothBoardsTogether-MotorWiring.jpg" class="image-8 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25324-401856/1361-900/BothBoardsTogether-MotorWiring.jpg" style="width: 620px; height: 410px;" width="1361"/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 16px;"&gt;Of course you do not have to use the PTHAT to control motors and can be used as a pulse generator for other projects.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 16px;"&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25324-401859/scope10000Hz3.jpg"&gt;&lt;img alt="scope10000Hz3.jpg" class="image-11 jive-image" height="660" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25324-401859/scope10000Hz3.jpg" style="width: 620px; height: 422px;" width="969"/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 16px;"&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25324-401860/scope1-2-4-8kHz3.jpg"&gt;&lt;img alt="scope1-2-4-8kHz3.jpg" class="image-12 jive-image" height="625" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25324-401860/scope1-2-4-8kHz3.jpg" style="width: 620px; height: 443px;" width="874"/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 16px;"&gt;&lt;span&gt;Please feel free to check out the dedicated support site for more information &lt;/span&gt;&lt;a class="" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Fwww.pthat.com"&gt;http://www.pthat.com&lt;/a&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:0df26fc4-0aa4-4b71-a467-721262cbc111] --&gt;</description>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">raspberry pi</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">raspberry pi hat</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">pulse train</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">pthat</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">pulse train hat</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">dds generators</category>
      <pubDate>Fri, 14 Apr 2017 13:49:15 GMT</pubDate>
      <author>messages@element14.com</author>
      <guid>https://www.element14.com/community/community/raspberry-pi/blog/2017/04/14/pulse-train-hat-for-the-raspberry-pi</guid>
      <dc:date>2017-04-14T13:49:15Z</dc:date>
      <clearspace:dateToText>2 months 4 weeks ago</clearspace:dateToText>
      <clearspace:replyCount>14</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://www.element14.com/community/community/raspberry-pi/blog/comment/pulse-train-hat-for-the-raspberry-pi</wfw:comment>
      <wfw:commentRss>https://www.element14.com/community/community/raspberry-pi/blog/feeds/comments?blogPost=25324</wfw:commentRss>
    </item>
    <item>
      <title>WSPRpi part 0: Introduction and what is WSPR?</title>
      <link>https://www.element14.com/community/community/raspberry-pi/blog/2017/04/03/wsprpi-part-0-introduction-and-what-is-wspr</link>
      <description>&lt;!-- [DocumentBodyStart:8a3e2673-e65c-4e9e-b910-01b06885f6b5] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Hi, my name is Dan and my ham radio callsign is M0WUT.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;I am developing an automated Raspberry Pi Zero based transceiver for the WSPR amateur mode.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3334ca; font-size: 24pt;"&gt;&lt;strong&gt;What is WSPR?&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #303030; font-size: 12pt;"&gt;WSPR stands for Weak Signal Propogation Reporter (full details &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Fphysics.princeton.edu%2Fpulsar%2FK1JT%2Fwspr.html" rel="nofollow" target="_blank"&gt;WSJT Home Page&lt;/a&gt;) developed by Joe Taylor, K1JT.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #303030; font-size: 12pt;"&gt;In short, amateur stations transmit data packets containing their callsign, their location and how much power they are transmitting with. Once received, these can be decoded by a computer who uploads them to a central database &lt;/span&gt;&lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Fwsprnet.org%2Fdrupal%2Fwsprnet%2Fspots" rel="nofollow" target="_blank"&gt; Database | WSPRnet&lt;/a&gt;&lt;span style="color: #303030;"&gt;&lt;span style="font-size: 12pt;"&gt; This can then be used to see whether conditions are good for working certain places on certain bands or not. It is also used as it is very bandwidth &lt;/span&gt;&lt;span style="font-size: 16px;"&gt;efficient&lt;/span&gt;&lt;span style="font-size: 12pt;"&gt; (approximately 5Hz bandwidth) as well as time division multiplexed and due to the large amount of error correction built into the code, it allows contacts to be made using very low power.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #303030; font-size: 12pt;"&gt;The map below shows all stations received by my friend George M1GEO in a 24 hour period. Nearly all these stations were running &amp;lt;5W output power. George has a very good article explaining the coding side of the WSPR protocol and using an Arduino to generate the tones from a frequency synthesiser board off eBay which can be found here: &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fwww.george-smart.co.uk%2Farduino%2Farduino_wspr%2F" rel="nofollow" target="_blank"&gt;https://www.george-smart.co.uk/arduino/arduino_wspr/&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #303030; font-size: 12pt;"&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25230-397131/pastedImage_4.png"&gt;&lt;img class="image-1 jive-image" height="555" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25230-397131/986-555/pastedImage_4.png" style=" width: 985.96px;" width="986"/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #303030; font-size: 12pt;"&gt;The WSPR protocol encodes your callsign, power and location in 162 'bits'. For full information on how this is done, this document by Andy Talbot, G4JNT is the best example I found &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Fwww.g4jnt.com%2Fwspr_coding_process.pdf" rel="nofollow" target="_blank"&gt;http://www.g4jnt.com/wspr_coding_process.pdf&lt;/a&gt; I will also be sharing my Arduino code to perform the encoding in a later part of this project. I write 'bits' as it is not strictly 1 bit in the binary sense, it can take the value 0-3. &lt;/span&gt;&lt;span style="color: #303030; font-size: 12pt;"&gt;This is due to the&amp;#160; WSPR transmission uses 4-FSK. FSK stands for Frequency Shift Keying and works by sending a carrier at a single frequency and then the information is carried by the frequency the carrier is at. The 4 indicates that there are 4 possible frequencies for the carrier, hence my use of 'bits' above as the use of 4 tones allow a value between 0-3 to be sent at any instant in time.&amp;#160; The WSPR tone spacing is 375/256 Hz or 1.465 Hz so the entire bandwidth is roughly 3 times that (4 tones -&amp;gt; 3 lots of spacing or about 4.5Hz.) The WSPR system is based around 2 minute windows (starting on the even minutes) where a station will decide (randomly but you can alter the probability you will transmit with a TX (transmit) percentage slider) whether to receive or transmit for that window. If transmitting, it will begin to send the 162 tones (which have the minimal time period of (1/seperation frequency = 256/375s or 683ms) This takes 0.683*162 = 110 seconds (roughly) and then will wait the remaining 10 seconds in the window before starting again. The main transmission method is by connecting the output of your computer soundcard into the microphone input of the radio so is treated the same way as if the user were whistling into the radio at the right frequency. This is called AFSK or Audio Frequency Shift Keying as the changing frequency is happening at audio frequencies then being mixed with an oscillator to produce the output at the right frequency. The alternative (as used in WSPRpi) is not to bother with this mixing process and just have an oscillator running at the RF frequency and directly changed the output frequency of that. This is called FSK and has the advantages of not requiring a modulator to combine the audio and LO signal which means a simpler circuit and no mixing products. Any harmonics of the audio signal will also get mixed with any (and all!) of the harmonics from the local oscillator producing a large number of output frequencies, not just the single carrier that is desired.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #303030; font-size: 12pt;"&gt;In receive, the radio will convert the received WSPR signal down to audio frequencies which are then fed into the soundcard of a computer. Once a two minute receive window is complete, the software will decode any WSPR signal that were received and upload them to the WSPR database, allowing maps like the one above to be produced. By only transmitting 20% (this is adjustable but 20% is the standard) of the time this allows even more users to use the same frequencies as different stations will transmit at different times.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #303030; font-size: 12pt;"&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25230-397132/wspr_gui.png"&gt;&lt;img alt="wspr_gui.png" class="image-2 jive-image" height="604" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25230-397132/746-604/wspr_gui.png" style=" width: 745.976px;" width="746"/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #303030; font-size: 12pt;"&gt;WSPR GUI receiving Austria (OE6YWF) and Italy (IZ6BYY and IZ0IWD) on the 20 metre (14MHz) amateur band.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3334ca; font-size: 24pt;"&gt;&lt;strong&gt;The Problem&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #303030; font-size: 12pt;"&gt;&lt;span&gt;The problem with this is that this setup gets rather messy with all of the cable required:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #303030; font-size: 12pt;"&gt;&lt;span&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25230-397334/setup.png"&gt;&lt;img alt="setup.png" class="image-3 jive-image" height="398" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25230-397334/1041-398/setup.png" style=" width: 1041.18px;" width="1041"/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #303030; font-size: 12pt;"&gt;CAT/PTT is the system by which the computer tells the radio to start or stop transmitting.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #303030; font-size: 12pt;"&gt;It also requires my radio and my computer to be on the whole time. This consumes power and ties up resources. Also I haven't found a nice way to swap quickly between WSPR and normal operating (voice or Morse Code) without at least unplugging something and plugging in something elsewhich is a faff and I sometime forget. (For ham radio people: It may be possible on the K3, it's fairly new to me but it certainly couldn't be done on my old FT840)&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span style="color: #303030;"&gt;&lt;span style="font-size: 12pt;"&gt;WPSR is also a useful thing to take on a DXpedition (a radio trip to an unusual country or island which is rarely operated from) as it allows other people to see if they can hear your WSPR station to give them an idea whether it is possible for them to contact you and vice versa, it allows the operators on the trip to see if there is good &lt;/span&gt;&lt;span style="font-size: 16px;"&gt;propagation&lt;/span&gt;&lt;span style="font-size: 12pt;"&gt; to a certain place&lt;/span&gt;&lt;/span&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3334ca; font-size: 24pt;"&gt;&lt;strong&gt;The (sort of) Solution&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #303030; font-size: 12pt;"&gt;&lt;span&gt;Some people have produced standalone WSPR beacons which are transmit only, but these are normally expensive for what they are (if you look at George's website mentioned above he does it with an Arduino, a &amp;#163;7 board of eBay and about &amp;#163;2 of components and for little extra functionality the nicely enclosed units are &amp;#163;40 up), you have to tell them when to start transmitting as they have no way of knowing the time, have limited band options (either supplied with a single filter or bulky external ones) and don't offer good options for useful features such as automatic band changes or a useful way to see the results (particularly if on a trip and there is no Internet connection!) OK, the last point is impossible without a receiver as you rely on other people uploading to their received stations to the database so you can see who has received your signal. This makes them useless for you, as the operator of the rare station, without Internet.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3334ca; font-size: 24pt;"&gt;&lt;strong&gt;The (Actual) Solution!&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #303030;"&gt;&lt;span style="font-size: 12pt;"&gt;The solution I have gone with is a Pi Zero, adding Ethernet and a sound card via the GPIO (I want small size and no messy cables), and adding a PIC32 (Arduino only has 32 bit precision floating point numbers which is not accurate enough) with a Silicon Labs Si5351 synthesiser IC. This little chip cost 60p and is capable of generating 3 &lt;/span&gt;&lt;span style="font-size: 16px;"&gt;independent&lt;/span&gt;&lt;span style="font-size: 12pt;"&gt; clock signal up to 100MHz. This plus an amplifer for the transmit side, some switchable filters to allow different bands to be used and a simple receiver should allow this to be possible and entirely self contained. A nice feature I added was a GPS receiver (I am most of the way through this project by now so this is currently working) to allow the unit to know when the two minutes transmit /receive windows were starting, to automatically know the location and to allow the frequency to be corrected using the 1pps output from the GPS receiver. The system knowing the actual time means that it can be set to automatically switch bands at certain times of day and the Ethernet socket is important even with the Pi Zero W having Wifi as the Pi will host a web server showing all of the received stations and the configuration for the WSPRpi so it (should!) be entirely driverless and need no extra software to run. If the trip is somewhere remote and there is no Internet, often a wired LAN is set up to allow the operators' logs to be &lt;/span&gt;&lt;span style="font-size: 16px;"&gt;synchronised but often there is no wireless network which is why the Ethernet connection is still important. I have named this project WSPRpi. The intended plan (a reasonable amount of which has already been built) is below.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #303030; font-size: 16px;"&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25230-397335/layout.png"&gt;&lt;img alt="layout.png" class="image-4 jive-image" height="800" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25230-397335/1213-800/layout.png" style=" width: 1212.71px;" width="1213"/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #303030; font-size: 16px;"&gt;The first part (adding Ethernet and a sound card) is online on element14 here: &lt;a class="jive-link-blog-small" data-containerId="13937" data-containerType="37" data-objectId="25240" data-objectType="38" href="https://www.element14.com/community/community/raspberry-pi/blog/2017/04/02/adding-ethernet-and-sound-card-to-rpi-zero"&gt;Adding Ethernet and Sound Card to Rpi Zero (WSPRpi part 1)&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #303030; font-size: 16px;"&gt;Thanks for reading. Any feedback would be appreciated in the comments or on Twitter @m0wut&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #303030; font-size: 16px;"&gt;Thanks and 73 (amateur radio speak for best wishes)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #303030; font-size: 16px;"&gt;Dan M0WUT&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:8a3e2673-e65c-4e9e-b910-01b06885f6b5] --&gt;</description>
      <pubDate>Mon, 03 Apr 2017 14:36:00 GMT</pubDate>
      <author>messages@element14.com</author>
      <guid>https://www.element14.com/community/community/raspberry-pi/blog/2017/04/03/wsprpi-part-0-introduction-and-what-is-wspr</guid>
      <dc:date>2017-04-03T14:36:00Z</dc:date>
      <clearspace:dateToText>3 months 2 weeks ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://www.element14.com/community/community/raspberry-pi/blog/comment/wsprpi-part-0-introduction-and-what-is-wspr</wfw:comment>
      <wfw:commentRss>https://www.element14.com/community/community/raspberry-pi/blog/feeds/comments?blogPost=25230</wfw:commentRss>
    </item>
    <item>
      <title>Adding Ethernet and Sound Card to Rpi Zero (WSPRpi part 1)</title>
      <link>https://www.element14.com/community/community/raspberry-pi/blog/2017/04/02/adding-ethernet-and-sound-card-to-rpi-zero</link>
      <description>&lt;!-- [DocumentBodyStart:f3936648-648c-4e1d-9c1e-4ec0eb6f5614] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;If you are here to see how to add Ethernet / soundcard functionality to the Pi Zero, this is a part to be used in my automated amateur radio WSPR transceiver. Explanation of which can be found here: &lt;a class="jive-link-blog-small" data-containerId="13937" data-containerType="37" data-objectId="25230" data-objectType="38" href="https://www.element14.com/community/community/raspberry-pi/blog/2017/04/03/wsprpi-part-0-introduction-and-what-is-wspr"&gt;WSPRpi part 0: Introduction and what is WSPR?&lt;/a&gt; If you are not interested in how I intend to use it and just want to see how to add Ethernet or a soundcard to a Pi Zero, skip to the Design section.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25240-396889/20170402_162156.jpg"&gt;&lt;img alt="20170402_162156.jpg" class="image-1 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25240-396889/1200-900/20170402_162156.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Finished result&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #2873ee; font-size: 24pt;"&gt;&lt;strong&gt;WSPRpi&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;For people interested in the use in the WSPRpi project:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The two most important features for the Pi to be able to receive WSPR signals are an audio input and an network connection. I say network connection as the WSPRpi may be used on DXpeditions without Internet connection so will provide a web server showing the received stations. This is why the Ethernet connection was still useful, even with the Pi Zero W being released when I was waiting for the PCBs to be delivered as often a wired LAN is run between the operators laptops but no wireless connection is available. If a connection to the Internet is present, it will also upload the spots to the WSPR database automatically. &lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #2873ee; font-size: 24pt;"&gt;&lt;strong&gt;Design&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;This is based around two main ICs, the Wolfson / Cirrus Logic WM8731 audio codec and the Microchip ENC28J60 SPI to Ethernet adapter. Both of these parts were chosen as they had kernel drivers built in to the Raspbian distro, making using them relatively simple. There is little more to this design than the datasheet use circuit for both, put onto the same PCB. This produces the following schematic, I have attached the schematic as well:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25240-397017/ethernet+schematic.png"&gt;&lt;img alt="ethernet schematic.png" class="image-4 jive-image" height="787" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25240-397017/1600-787/ethernet+schematic.png" style=" width: 1692.83px;" width="1600"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;R14 and R15 are not needed. They were put there in case the I2C bus required the external pull-up resistors but it works fine without. Strictly, the audio output filter components (C11, C12. R16, R17) are also not required for the WSPRpi as it only needs audio input but I added footprints for them as everything else was already in place. It's also an easier way to test the functionality of the WM8731.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3334ca; font-size: 24pt;"&gt;&lt;strong&gt;Layout&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;The PCB was laid out, mainly trying to fit all those parts in the small footprint of the Pi Zero and keeping all the high speed data buses away from each other. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;This was achieved but does mean that fairly small parts are used (SSOP IC) and the crystals have pads only on the bottom, meaning soldering these with a soldering may be a bit of an endeavour. Luckily, I have an Atten hot air station which managed these no problem.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25240-397015/20170402_163210.jpg"&gt;&lt;img alt="20170402_163210.jpg" class="image-3 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25240-397015/1200-900/20170402_163210.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3334ca; font-size: 24pt;"&gt;&lt;strong&gt;Construction&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;I assembled the Ethernet portion of the board first as I wanted to use SSH to access the Pi. I don't have much space and having a second monitor around for longer than necessary would be a pain.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;I have highlighted these on the BOM (attached also)&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3334ca; font-size: 24pt;"&gt;&lt;strong&gt;Preliminary Testing&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;I began by connecting the board (no Pi connected) to a 3.3V supply and it drew approximately 120mA which matched with a cheap Chinese breakout board for the same chip. If an Ethernet cable (connected to a router) is plugged in, the orange LED on the Ethernet connector should turn on and the green LED should flash, indicating network activity. &lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 14pt; color: #e23d39;"&gt;Mistake No. 1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;I did not get any flashing LEDs, and got errors in the next step, Setup on the Pi, with a non responsive device. Due to the simplicity of the connections between the Pi and the ENC28J60, this pointed at bad soldering, incorrect power supply, wrong pinout or something wrong with the crystal. I double checked my soldering with decent magnification and it looked fine.The Eagle footprint was download from Farnell / element14 so was reasonably confident with that. Power supply was straight from my bench PSU so again unlikely. Probing with an oscilloscope showed both pins at about 1.1V DC. It turned out I had got my footprint for the crystal wrong, shorted both of the oscillator pins of the IC to the can and connected both ends of the crystal to ground. Oops!. Minor surgery later and this was fixed.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25240-397018/20170402_171357.jpg"&gt;&lt;img alt="20170402_171357.jpg" class="image-5 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25240-397018/1200-900/20170402_171357.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;Bodge on the crystal. &lt;span style="color: #303030; font-size: 16px;"&gt;Please excuse the slightly melted pin header due to trying to fix this!&lt;/span&gt; This is a prototype board which is not quite right mechanically (connector locations and such) for the WSPR so I corrected this for v1.1 which will hopefully be the final version in the WSPRpi. &lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3334ca; font-size: 24pt;"&gt;&lt;strong&gt;Setup on the Pi&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;I advise not plugging the Ethernet cable in until I mention to as I discovered some interesting things with how the driver handles addressing, explained in Set constant MAC address.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;As the drivers for this are already part of the Raspbian distro, enabling these is very easy, at least for Raspbian users, I'm not sure about other distros. Once the board was connected to the Pi.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Going from a fresh install of Rapsbian (I used Jessie Lite, March 2017) I used the Lite version as I did not need a desktop for WSPRpi but the full version will also be fine.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;Once logged in (as usual username pi, password raspberry)&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;Edit config.txt:&lt;/span&gt;&lt;/p&gt;&lt;!--[CodeBlockStart:af8bb87c-72e7-40a2-9005-655b74c8aa6f][excluded]--&gt;&lt;pre class="plain" name="code"&gt;sudo nano /boot/config.txt
&lt;/pre&gt;&lt;!--[CodeBlockEnd:af8bb87c-72e7-40a2-9005-655b74c8aa6f]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;Add the following to the bottom:&lt;/span&gt;&lt;/p&gt;&lt;!--[CodeBlockStart:b529c3e9-7237-47ab-a70c-6b280e99304c][excluded]--&gt;&lt;pre class="plain" name="code"&gt;dtoverlay=enc28j60
&lt;/pre&gt;&lt;!--[CodeBlockEnd:b529c3e9-7237-47ab-a70c-6b280e99304c]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;Reboot:&lt;/span&gt;&lt;/p&gt;&lt;!--[CodeBlockStart:89adf6a2-4caa-4d5f-947a-e5f701aad9e5][excluded]--&gt;&lt;pre class="plain" name="code"&gt;sudo reboot
&lt;/pre&gt;&lt;!--[CodeBlockEnd:89adf6a2-4caa-4d5f-947a-e5f701aad9e5]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;Done! &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;Once logged back in, run dmesg&lt;/span&gt;&lt;/p&gt;&lt;!--[CodeBlockStart:0f35702c-6c5c-44fa-98ae-046cc6b09e0e][excluded]--&gt;&lt;pre class="plain" name="code"&gt;dmesg
&lt;/pre&gt;&lt;!--[CodeBlockEnd:0f35702c-6c5c-44fa-98ae-046cc6b09e0e]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;This will give you one of two possible results:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25240-397019/20170402_173312.jpg"&gt;&lt;img alt="20170402_173312.jpg" class="image-6 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25240-397019/1200-900/20170402_173312.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Option 1: This is not good, the line at 13.148478 shows the driver was loaded fine so editing config.txt was fine but the line at 13.201186 shows that it couldn't find the 28J60.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25240-397020/20170402_173506.jpg"&gt;&lt;img alt="20170402_173506.jpg" class="image-7 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25240-397020/1200-900/20170402_173506.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Option 2: Success, as shown by the line at 13.422723. eth0 is showing as link not ready as I didn't have an Ethernet Cable plugged in.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h1&gt;&lt;span style="font-size: 24pt; color: #3334ca;"&gt;Set constant MAC address &lt;/span&gt;&lt;/h1&gt;&lt;p style="margin-bottom: .0001pt;"&gt;&lt;span style="font-size: 12pt;"&gt;Initially I ran the Pi with a static IP so didn't have this problem, switching back to DHCP (router assigns the IP address) led to problems. A MAC address should uniquely identify the hardware and be the same after reboot. In Raspberry Pis with onboard Ethernet, this is calculated as a function of serial number and a series of MAC address that appear to be linked to Rapsberry Pi ensuring each is unique and doesn't change due to the serial number being hard coded. The kernel module for the 28J60 Ethernet controller instead randomly generates the MAC address on startup and on every reboot which will make most DHCP routers unhappy as they assign a different IP address to devices with different MAC addresses.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px; margin-bottom: .0001pt;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: .0001pt;"&gt;&lt;span style="font-size: 12pt;"&gt; This was being a pain as my Pi didn't have a constant IP address to allow me to SSH in so this next step assigns a constant MAC address to the Pi.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px; margin-bottom: .0001pt;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Thank to Richard from &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Fraspi.tv%2F2015%2Fethernet-on-pi-zero-how-to-put-an-ethernet-port-on-your-pi" rel="nofollow" target="_blank"&gt;http://raspi.tv/2015/ethernet-on-pi-zero-how-to-put-an-ethernet-port-on-your-pi&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 1) Create the file /lib/systemd/system/setmac.service&lt;/span&gt;&lt;/p&gt;&lt;!--[CodeBlockStart:900b46dd-fc19-4dac-a610-5dd7744ec81b][excluded]--&gt;&lt;pre class="plain" name="code"&gt;sudo nano /lib/systemd/system/setmac.service
&lt;/pre&gt;&lt;!--[CodeBlockEnd:900b46dd-fc19-4dac-a610-5dd7744ec81b]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; padding: 0px; margin-bottom: .0001pt;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px; margin-bottom: .0001pt;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: .0001pt;"&gt;&lt;span style="font-size: 12pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2) Add the following contents:&lt;/span&gt;&lt;/p&gt;&lt;!--[CodeBlockStart:58d8fd25-a388-494d-8028-a546f5e63cd7][excluded]--&gt;&lt;pre class="plain" name="code"&gt;[Unit]
Description=DSet the MAC address for the ENC28J60 enet adapter at eth0
Wants=network-pre.target
Before=network-pre.target
BindsTo=sys-subsystem-net-devices-eth0.device
After=sys-subsystem-net-devices-eth0.device

[Service]
Type=oneshot
ExecStart=/sbin/ip link set dev eth0 address 00:00:00:00:00:00
ExecStart=/sbin/ip link set dev eth0 up

[Install]
WantedBy=multi-user.target
&lt;/pre&gt;&lt;!--[CodeBlockEnd:58d8fd25-a388-494d-8028-a546f5e63cd7]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; padding: 0px; margin-bottom: .0001pt;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: .0001pt;"&gt;&lt;span style="font-size: 12pt;"&gt;Change the MAC address &lt;span style="color: #3d3d3d;"&gt;(shown above 00:00:00:00:00:00&lt;/span&gt;) to whatever. I recommend B8:27:EB:xx:xx:xx (x is 0-9 or A-F e.g. B8:27:EB:12:34:5A) as this prefix appears to be assigned to Raspberry Pis. At least, all of my Pis had this MAC address and it identified in Advanced IP Scanner as manufactured by the Raspberry Pi Foundation and appeared blank when another prefix was used.&lt;/span&gt;&lt;/p&gt;&lt;p align="right" style="min-height: 8pt; padding: 0px; text-align: right;"&gt;&amp;#160;&lt;/p&gt;&lt;p align="right" style="text-align: left;"&gt;&lt;span style="font-size: 12pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 3) Exit the editor (Ctrl-X, y, Enter)&lt;/span&gt;&lt;/p&gt;&lt;p align="right" style="min-height: 8pt; padding: 0px; text-align: left;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 4) Set File permissions&lt;/span&gt;&lt;/p&gt;&lt;!--[CodeBlockStart:808ec0ed-0ff3-4987-b582-a36e5c620cda][excluded]--&gt;&lt;pre class="plain" name="code"&gt;sudo chmod 644 /lib/systemd/system/setmac.service
&lt;/pre&gt;&lt;!--[CodeBlockEnd:808ec0ed-0ff3-4987-b582-a36e5c620cda]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; padding: 0px; margin-bottom: .0001pt;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px; margin-bottom: .0001pt;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="margin-bottom: .0001pt;"&gt;&lt;span style="font-size: 12pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 5) Execute the following two commands to enable the service&lt;/span&gt;&lt;/p&gt;&lt;!--[CodeBlockStart:711e07ac-6c6d-4d7b-bdc9-b12fe11c37cb][excluded]--&gt;&lt;pre class="plain" name="code"&gt;sudo systemctl daemon-reload
sudo systemctl enable setmac.service
&lt;/pre&gt;&lt;!--[CodeBlockEnd:711e07ac-6c6d-4d7b-bdc9-b12fe11c37cb]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; padding: 0px; margin-bottom: .0001pt;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px; margin-bottom: .0001pt;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 6) Reboot&lt;/span&gt;&lt;/p&gt;&lt;!--[CodeBlockStart:f7619fc3-9765-48b2-bee3-5fed9b4351b3][excluded]--&gt;&lt;pre class="plain" name="code"&gt;sudo reboot
&lt;/pre&gt;&lt;!--[CodeBlockEnd:f7619fc3-9765-48b2-bee3-5fed9b4351b3]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 7) Check that this has been saved&lt;/span&gt;&lt;/p&gt;&lt;!--[CodeBlockStart:658b7904-69ed-48bc-8fda-cdc43f6786a7][excluded]--&gt;&lt;pre class="plain" name="code"&gt;ifconfig
&lt;/pre&gt;&lt;!--[CodeBlockEnd:658b7904-69ed-48bc-8fda-cdc43f6786a7]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Hopefully you will see the following where the address circled in blue is the MAC address you specified:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25240-396451/20170402_211925.jpg"&gt;&lt;img alt="20170402_211925.jpg" class="image-8 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25240-396451/1200-900/20170402_211925.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Now the Pi can be plugged into your router where it will be assigned an IP address which should be constant after reboot. I recommend testing it is connected to the Internet by seeing it can access a website e.g.:&lt;/span&gt;&lt;/p&gt;&lt;!--[CodeBlockStart:11056161-6f12-4c5d-918b-36721bb33a7c][excluded]--&gt;&lt;pre class="plain" name="code"&gt;ping google.com
&lt;/pre&gt;&lt;!--[CodeBlockEnd:11056161-6f12-4c5d-918b-36721bb33a7c]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt; I then went to speedtest.net and it measured download speeds of 5Mbps and 2Mbps upload, not bad!&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3334ca; font-size: 24pt;"&gt;&lt;strong&gt;Change Hostname (optional)&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #303030; font-size: 12pt;"&gt;As this Pi would also be running a webserver, I went into raspi-config&lt;/span&gt;&lt;/p&gt;&lt;!--[CodeBlockStart:63b63701-0b3a-4859-bf61-304eb1c325be][excluded]--&gt;&lt;pre class="plain" name="code"&gt;sudo raspi-config
&lt;/pre&gt;&lt;!--[CodeBlockEnd:63b63701-0b3a-4859-bf61-304eb1c325be]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;and changed the hostname (Option 2) to WSPRpi so I could access it later. I also updated Raspbian, to prevent issues installing anything in the future&lt;/span&gt;&lt;/p&gt;&lt;!--[CodeBlockStart:512fe10f-da30-4137-9877-cf79b2f61119][excluded]--&gt;&lt;pre class="plain" name="code"&gt;sudo apt-get update
&lt;/pre&gt;&lt;!--[CodeBlockEnd:512fe10f-da30-4137-9877-cf79b2f61119]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;If you are following the WSPRpi project, please note this down as it will the web address of the server to view the received spots&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3334ca; font-size: 24pt;"&gt;&lt;strong&gt;Soundcard&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;All other components were then soldered onto the PCB.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25240-397115/20170326_152135.jpg"&gt;&lt;img alt="20170326_152135.jpg" class="image-9 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25240-397115/1200-900/20170326_152135.jpg" style="width: 620px; height: 465px;" width="1200"/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #303030; font-size: 12pt;"&gt;I know two pins on the IC are shorted, this is intentional (see Mistake 2)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3334ca; font-size: 32px;"&gt;&lt;strong&gt;Setup on the Pi&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Again go into config.txt&lt;/span&gt;&lt;/p&gt;&lt;!--[CodeBlockStart:a19712ad-498c-40cb-bc1e-727228ac6fad][excluded]--&gt;&lt;pre class="plain" name="code"&gt;sudo nano /boot/config.txt
&lt;/pre&gt;&lt;!--[CodeBlockEnd:a19712ad-498c-40cb-bc1e-727228ac6fad]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #303030; font-size: 12pt;"&gt;Find the line that says&lt;/span&gt;&lt;/p&gt;&lt;!--[CodeBlockStart:a262af2d-9a7f-429d-8364-7250250a15c9][excluded]--&gt;&lt;pre class="plain" name="code"&gt;dtparam=audio=on
&lt;/pre&gt;&lt;!--[CodeBlockEnd:a262af2d-9a7f-429d-8364-7250250a15c9]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Comment it out as it interferes with the I2S bus used to talk to the audio coded we've added&lt;/p&gt;&lt;!--[CodeBlockStart:678ec76b-fa5e-4ac7-a8e5-35bb23cb5524][excluded]--&gt;&lt;pre class="plain" name="code"&gt;#dtparam=audio=on
&lt;/pre&gt;&lt;!--[CodeBlockEnd:678ec76b-fa5e-4ac7-a8e5-35bb23cb5524]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;and add the following:&lt;/p&gt;&lt;!--[CodeBlockStart:38b549b4-0870-4d36-8269-87a2ee909507][excluded]--&gt;&lt;pre class="plain" name="code"&gt;dtoverlay=audioinjector-wm8731-audio
&lt;/pre&gt;&lt;!--[CodeBlockEnd:38b549b4-0870-4d36-8269-87a2ee909507]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Reboot&lt;/p&gt;&lt;!--[CodeBlockStart:b54a6d96-af68-43aa-adb2-dafad4ec832a][excluded]--&gt;&lt;pre class="plain" name="code"&gt;sudo reboot
&lt;/pre&gt;&lt;!--[CodeBlockEnd:b54a6d96-af68-43aa-adb2-dafad4ec832a]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Run dmesg to check on the state of the audio driver&lt;/p&gt;&lt;!--[CodeBlockStart:67882ecb-1e0e-484d-8ae7-41c4093069c0][excluded]--&gt;&lt;pre class="plain" name="code"&gt;dmesg
&lt;/pre&gt;&lt;!--[CodeBlockEnd:67882ecb-1e0e-484d-8ae7-41c4093069c0]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25240-397116/dmesg.png"&gt;&lt;img alt="dmesg.png" class="image-10 jive-image" height="677" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25240-397116/dmesg.png" style="width: 620px; height: 439px;" width="956"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The two errors (in red text) are fine. The important line (circled in blue) is the one that says: &lt;/span&gt;&lt;/p&gt;&lt;!--[CodeBlockStart:7f4c7af1-f390-4bd6-a07b-83f1c9ed7754][excluded]--&gt;&lt;pre class="plain" name="code"&gt;audioinjector-audio soc:sound: wm8731-hifi &amp;lt;-&amp;gt; 20203000.i2s mapping ok
&lt;/pre&gt;&lt;!--[CodeBlockEnd:7f4c7af1-f390-4bd6-a07b-83f1c9ed7754]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;This means everything is fine.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 14pt; color: #e23d39;"&gt;Mistake Number 2&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;Again I didn't get this working first time. Once again, device not responding which produces an output in dmesg which look like:&lt;/span&gt;&lt;/p&gt;&lt;!--[CodeBlockStart:05f6fbad-e4c7-4ffd-844c-2f0ca0a47fe8][excluded]--&gt;&lt;pre class="plain" name="code"&gt;[ 5.710350] audioinjector-audio soc:sound: ASoC: CODEC DAI wm8731-hifi not registered
[ 5.710381] audioinjector-audio soc:sound: snd_soc_register_card failed (-517)
[ 5.746090] EXT4-fs (mmcblk0p7): re-mounted. Opts: (null)
[ 5.847273] audioinjector-audio soc:sound: ASoC: CODEC DAI wm8731-hifi not registered
[ 5.847304] audioinjector-audio soc:sound: snd_soc_register_card failed (-517)
[ 5.855053] wm8731 1-001a: Assuming static MCLK
[ 5.855425] wm8731 1-001a: Failed to issue reset: -5
[ 5.855535] wm8731: probe of 1-001a failed with error -5
[ 5.857826] usbcore: registered new interface driver brcmfmac
[ 5.858302] audioinjector-audio soc:sound: ASoC: CODEC DAI wm8731-hifi not registered
[ 5.858312] audioinjector-audio soc:sound: snd_soc_register_card failed (-517)
&lt;/pre&gt;&lt;!--[CodeBlockEnd:05f6fbad-e4c7-4ffd-844c-2f0ca0a47fe8]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Again, the connections were very simple so: soldering, power supply, footprint or crystal.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Soldering: Checked with magnifying glass. It was fine.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Power supply: Fine&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Crystal: Fine&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Footprint: Turns out I had &lt;/span&gt;&lt;span style="font-size: 16px;"&gt;accidentally deleted a traced and left the mode pin floating. It needed to be shorted to ground to set the input to be I2C for the configuration instead of the default three wire protocol. One of the pins next to it (CSB) was grounded so I manually shorted these. This was surprisingly difficult on SSOP to selectively short just two pins! This has also been corrected for the version 1.1 PCBs.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3334ca; font-size: 24pt;"&gt;&lt;strong&gt;Setup on Pi (continued)&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;The sound card by default doesn't use the inputs and outputs that I used. To edit the open the mixer&lt;/span&gt;&lt;/p&gt;&lt;!--[CodeBlockStart:e238ce9e-7a64-4826-ae0a-a03f6ad57ba6][excluded]--&gt;&lt;pre class="plain" name="code"&gt;alsamixer
&lt;/pre&gt;&lt;!--[CodeBlockEnd:e238ce9e-7a64-4826-ae0a-a03f6ad57ba6]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25240-397117/pastedImage_49.png"&gt;&lt;img class="image-11 jive-image" height="899" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25240-397117/1600-899/pastedImage_49.png" style="max-width:1600px; max-" width="1600"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The layout does look slightly different on the Pi, I'm doing this over SSH so the graphics are slightly different but it's functionally the same.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Press F5 to see all options then use the arrow keys to navigate to the "Line" option (4th one across) and press Space so it shows L R Capture. Navigate to the "Output Mixer HiFi" option and press "m". It should now be highlighted in green.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;It should now look like the image below albeit with minor graphical differences if you are doing this directly on the Pi. &lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25240-397118/pastedImage_52.png"&gt;&lt;img class="image-12 jive-image" height="899" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25240-397118/1600-899/pastedImage_52.png" style="max-width:1600px; max-" width="1600"/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3334ca; font-size: 24pt;"&gt;&lt;strong&gt;Final Testing&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;To test the sound output, I decided a bit of Internet radio would be a nice way to test both components of this build.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;I plugged in a cheap pair of headphones into the Left and Right outputs. I didn't have room on the PCB for a proper socket so soldered one on wires to the board.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt; color: #303030;"&gt;First I installed mplayer (This took a while)&lt;/span&gt;&lt;/p&gt;&lt;!--[CodeBlockStart:098801d5-f7be-4781-8c1d-cd7a707ca661][excluded]--&gt;&lt;pre class="plain" name="code"&gt;sudo apt-get install mplayer
&lt;/pre&gt;&lt;!--[CodeBlockEnd:098801d5-f7be-4781-8c1d-cd7a707ca661]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Then I used:&lt;/span&gt;&lt;/p&gt;&lt;!--[CodeBlockStart:58bf8154-0d1f-4dca-8313-fee3acc28cf3][excluded]--&gt;&lt;pre class="plain" name="code"&gt;mplayer -playlist http://media-ice.musicradio.com/HeartYorkshireMP3.m3u
&lt;/pre&gt;&lt;!--[CodeBlockEnd:58bf8154-0d1f-4dca-8313-fee3acc28cf3]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;and the sound of Aerosmith indicated success!&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;I then added the above to the end of /etc/profile to have the Pi autostart streaming from Heart on power-up and used it as an Internet radio for a few days as it was very comfortable to listen to driving a 16 Ohm speaker.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3334ca; font-size: 24pt;"&gt;&lt;strong&gt;Modifications&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Once I was happy that the board worked, I soldered a 3.3V regulator and supplied it from the Pi's 5V output (GPIO pin 2) for &lt;/span&gt;&lt;span style="font-size: 16px;"&gt;convenience&lt;/span&gt;&lt;span style="font-size: 12pt;"&gt;. This will not be needed in the final WSPRpi where I intend to have a motherboard all these sub-boards will plug into to supply power, it's just for testing. &lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25240-397119/20170402_230109.jpg"&gt;&lt;img alt="20170402_230109.jpg" class="image-13 jive-image" height="900" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25240-397119/675-900/20170402_230109.jpg" style="width: 620px; height: 827px;" width="675"/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #3334ca; font-size: 24pt;"&gt;&lt;strong&gt;Feedback&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #303030; font-size: 12pt;"&gt;If you do build this / have feedback, it would be interesting to hear your thoughts, either as a comment here or on Twitter @m0wut.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #303030; font-size: 12pt;"&gt;Thanks and 73 (amateur radio speak for best wishes)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #303030; font-size: 12pt;"&gt;Dan M0WUT&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:f3936648-648c-4e1d-9c1e-4ec0eb6f5614] --&gt;</description>
      <pubDate>Sun, 02 Apr 2017 22:03:43 GMT</pubDate>
      <author>messages@element14.com</author>
      <guid>https://www.element14.com/community/community/raspberry-pi/blog/2017/04/02/adding-ethernet-and-sound-card-to-rpi-zero</guid>
      <dc:date>2017-04-02T22:03:43Z</dc:date>
      <clearspace:dateToText>3 months 2 weeks ago</clearspace:dateToText>
      <clearspace:replyCount>4</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://www.element14.com/community/community/raspberry-pi/blog/comment/adding-ethernet-and-sound-card-to-rpi-zero</wfw:comment>
      <wfw:commentRss>https://www.element14.com/community/community/raspberry-pi/blog/feeds/comments?blogPost=25240</wfw:commentRss>
    </item>
    <item>
      <title>MATLAB and Simulink Mobile Devices Challenge is here …</title>
      <link>https://www.element14.com/community/community/raspberry-pi/blog/2017/03/31/matlab-and-simulink-mobile-devices-challenge-is-here</link>
      <description>&lt;!-- [DocumentBodyStart:b8fc3569-482a-4937-8f19-85c598daa7fc] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;Last year MathWorks announced the MATLAB and Simulink Hardware Challenge, in which a lot of you from our element14 community participated. I am here to introduce the &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fwww.mathworks.com%2Facademia%2Fstudent-challenge%2Fspring-2017.html" rel="nofollow" target="_blank"&gt;MATLAB and Simulink Mobile Devices Challenge&lt;/a&gt; this year.&lt;/p&gt;&lt;p style="margin-bottom: 15px; color: #58595b; font-family: Helvetica, Arial, sans-serif;"&gt;&lt;a href="http://makerzone.mathworks.com/files/2018/03/MLSLMobileChallenge-300x144.png"&gt;&lt;img alt="" class="wp-image-5556 jive-image aligncenter alignnone size-medium" height="144" src="http://makerzone.mathworks.com/files/2018/03/MLSLMobileChallenge-300x144.png" style="border-style: none; margin: 5px auto; display: block;" width="300"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Have you developed a cool Android or iOS app using MATLAB or Simulink?&lt;/li&gt;&lt;li&gt;Have you created a MATLAB or Simulink project where you use an app from your mobile device to control an Arduino or Raspberry Pi?&lt;/li&gt;&lt;li&gt;Have you analyzed sensor data from Android or iOS Mobile devices (phone or tablet) using MATLAB or Simulink?&lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="margin-bottom: 15px; color: #58595b; font-family: Helvetica, Arial, sans-serif;"&gt;If you answered yes to any of these questions&lt;span style="font-family: AvenirLT-Medium, Helvetica, Arial, sans-serif;"&gt;&lt;strong&gt;, here is your chance to win up to $1000. &lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="margin-bottom: 15px; color: #58595b; font-family: Helvetica, Arial, sans-serif;"&gt;If you answered no to these questions, &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fwww.mathworks.com%2Facademia%2Fstudent-challenge%2Fspring-2017.html" rel="nofollow" target="_blank"&gt;visit this page&lt;/a&gt; to get some ideas and join in on the fun &amp;#8211;&amp;#160; because who doesn&amp;#8217;t like to win some cash.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="margin-bottom: 15px; color: #58595b; font-family: Helvetica, Arial, sans-serif;"&gt;This is how it works &amp;#8211;&lt;/span&gt;&lt;/p&gt;&lt;ol style="margin-top: 1em; margin-bottom: 1em; padding-left: 40px; color: #58595b; font-family: Helvetica, Arial, sans-serif;"&gt;&lt;li&gt;Create an original video describing your project and upload it to YouTube with the tag: #MATLAB4MOBILE on or before 12 June 2017 (3 P.M. EDT)&lt;/li&gt;&lt;li&gt;Complete the entry form on the challenge page.&lt;/li&gt;&lt;li&gt;Don&amp;#8217;t forget to share your video with your friends and family as the number of views and likes on the video will help you win the challenge.&lt;/li&gt;&lt;/ol&gt;&lt;p style="margin-bottom: 15px; color: #58595b; font-family: Helvetica, Arial, sans-serif;"&gt;For more details and the challenge rules please visit the &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=https%3A%2F%2Fwww.mathworks.com%2Facademia%2Fstudent-challenge%2Fspring-2017.html" rel="nofollow" target="_blank"&gt;homepage for this challenge&lt;/a&gt;. Hope to see your projects in action &lt;span aria-label="Happy" class="emoticon_happy emoticon-inline" style="height:16px;width:16px;"&gt;&lt;/span&gt;.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:b8fc3569-482a-4937-8f19-85c598daa7fc] --&gt;</description>
      <pubDate>Fri, 31 Mar 2017 21:01:00 GMT</pubDate>
      <author>messages@element14.com</author>
      <guid>https://www.element14.com/community/community/raspberry-pi/blog/2017/03/31/matlab-and-simulink-mobile-devices-challenge-is-here</guid>
      <dc:date>2017-03-31T21:01:00Z</dc:date>
      <clearspace:dateToText>2 months 3 weeks ago</clearspace:dateToText>
      <clearspace:replyCount>3</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://www.element14.com/community/community/raspberry-pi/blog/comment/matlab-and-simulink-mobile-devices-challenge-is-here</wfw:comment>
      <wfw:commentRss>https://www.element14.com/community/community/raspberry-pi/blog/feeds/comments?blogPost=25214</wfw:commentRss>
    </item>
    <item>
      <title>A New Ruggedized Raspberry Pi 3 –  netPI!</title>
      <link>https://www.element14.com/community/community/raspberry-pi/blog/2017/03/28/a-new-ruggedized-raspberry-pi-3-netpi</link>
      <description>&lt;!-- [DocumentBodyStart:0daa2965-686f-4252-b21d-1ea2e89c9231] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;h1&gt;Introduction&lt;/h1&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;At Embedded World 2017 I saw something that initially made me very confused. It was a rugged piece of hardware that clearly looked like it was related to the Raspberry Pi in some way but upon opening it up I couldn&amp;#8217;t see how a Pi would fit inside. The internal connector looked interesting because it had pins instead of a socket, so how could a Pi 3 plug on top of it? And it had many Ethernet and USB ports already fitted. It took someone to explain it to me. This was actually a complete new custom design that had the Raspberry Pi 3 already inside it!&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 16px;"&gt;The company, Hilsher, has worked with the &lt;a class="jive-link-wiki-small" data-containerId="2533" data-containerType="14" data-objectId="76955" data-objectType="102" href="https://www.element14.com/community/docs/DOC-76955/l/raspberry-pi-customization-service"&gt;Raspberry Pi 3 manufacturers&lt;/a&gt; in order to create an entirely new variant of the Raspberry Pi 3. After seeing and learning about it I really want one. It is the best Pi variant yet, ruggedized, with a decent power connector, expandable, and capable of operating in all typical Raspberry Pi usage scenarios and more as will be described. It is not currently available, but will be available soon.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25182-394658/ew-pi-hilscher2-r.jpg"&gt;&lt;img alt="ew-pi-hilscher2-r.jpg" class="image-1 jive-image" height="749" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25182-394658/725-749/ew-pi-hilscher2-r.jpg" style=" width: 725.594px;" width="725"/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h1&gt;What do Hilscher do?&lt;/h1&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The key to understanding the netPI is to examine the motivation for the product. &lt;a class="jive-link-external-small" href="https://www.element14.com/community/external-link.jspa?url=http%3A%2F%2Fwww.hilscher.com%2F" rel="nofollow" target="_blank"&gt;Hilscher&lt;/a&gt; is a 30-year old company (originally established in Germany but now they are a global business) deeply involved in Real-Time Ethernet (also known as Industrial Ethernet). This technology (actually, a range of technologies &amp;#8211; there are several standards) has become the dominant way of building automation within factories. Every time you see a robotic assembly line building a car, there will be a controller somewhere talking to many sensor devices and output devices, and all the communication between controller and such node devices is occurring over the Real-Time Ethernet connections.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25182-394659/engine-r.jpg"&gt;&lt;img alt="engine-r.jpg" class="image-2 jive-image" height="368" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25182-394659/733-368/engine-r.jpg" style=" width: 733.633px;" width="733"/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Real-Time Ethernet takes traditional Ethernet but transports some protocols over it that can be deterministic. This means that message loss is not tolerated like in a non-industrial network. In a normal non-industrial network there is no guarantee that a packet will not be lost. It is up to the higher-layer protocol to re-send the packet if needed. Transmission Control Protocol (TCP/IP) is used to relieve the application layer (user applications) from the burden of reassembling packets of data and requesting retransmissions but these would cause delays that would be unacceptable in an industrial assembly line. To take one example, known as PROFINET IO, Real-Time Ethernet solves this typically by defining a type of &amp;#8216;upper-class railway carriage&amp;#8217; type of scheme where there is a regular train time and the upper-class carriage portion of the train is never allowed to fill up with non-priority packets. Only the deterministic packets are sent in that carriage.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25182-394660/profinet-io-explained.png"&gt;&lt;img alt="profinet-io-explained.png" class="image-3 jive-image" height="329" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25182-394660/839-329/profinet-io-explained.png" style=" width: 839.424px;" width="839"/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;There can be different levels of determinism such as strict (which requires packets to arrive within a certain time) or soft determinism which doesn&amp;#8217;t mind if the packet takes a little longer sometimes to arrive (but it must arrive and must not be dropped) depending on the particular type of Real-Time Ethernet that is being used. There are also techniques to ensure that packets do not sit for very long in a buffer. A normal (non-industrial) Ethernet interface will collect up the packet before it is announced to the application. With Industrial Ethernet it is possible to start serving the packet to the application (the sensor or output node software) as it arrives on the wire. This type of functionality is only possible with special hardware. A normal Ethernet interface does not have this capability.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Hilscher is a company which has developed custom chips to perform Real-Time Ethernet capability and embedded them into different products such as:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size: 12pt;"&gt;Modules or Interface boards that can connect a computer (say using PCI-E) to the Real-Time Ethernet bus to perform controller or node operations depending on the specific use-case&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: 12pt;"&gt;Interface PCBs that can connect embedded hardware (say using dual-port memory) to the&amp;#160; Real-Time Ethernet bus&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: 12pt;"&gt;Gateways that can perform Real-Time Ethernet operations and interwork them to traditional Ethernet and TCP/IP for sending over the network for server based applications to monitor or control or manage using protocols that function well over IP networks or the Internet, such as MQTT&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: 12pt;"&gt;Test tools for diagnosing Real-Time Ethernet&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;In essence, the Hilscher products act like a bridge between the Industrial Ethernet world and any other hardware or software, either locally or over networks. &lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;A while ago Hilscher launched a little PCB that could connect to the Raspberry Pi using the 40-pin connector on it. The PCB had Hilscher&amp;#8217;s secret-sauce Real-Time Ethernet chip on it, a couple of Ethernet sockets (some Real-Time Ethernet technologies use both ports) and talked to the Pi using the serial peripheral interface (SPI) that allows applications running on top of Linux on the Pi to interwork with Real-Time Ethernet. This product allows for possibly the cheapest way for anyone to experience Real-Time Ethernet. It would even be possible to use several Pi&amp;#8217;s and build up a controller and nodes and simulate a factory basically.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25182-394661/nethat.jpg"&gt;&lt;img alt="nethat.jpg" class="image-4 jive-image" height="367" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25182-394661/710-367/nethat.jpg" style="width:710px; height: 366.452px;" width="710"/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Having a high performance ARM chip opens up a lot of possibilities. Hilscher decided to take the leap and build a custom product that would use the heart of the Raspberry Pi but in a ruggedized industrial form-factor. For the software stack, Raspbian wouldn&amp;#8217;t do; a hardened Linux kernel is needed for reliability and security. However to maintain ease-of-use Hilscher did a clever thing and provided Raspbian in a &amp;#8216;software container&amp;#8217; so that software programmers still get the same Raspbian experience if this is desired, but in a protected container. This will be examined further below in a bit more detail.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25182-394662/hilscher-discussion.jpg"&gt;&lt;img alt="hilscher-discussion.jpg" class="image-5 jive-image" height="403" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25182-394662/768-403/hilscher-discussion.jpg" style="width:768px; height: 402.581px;" width="768"/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The end result is a product that can be used and programmed the same as any normal Raspberry Pi in any preferred language of choice, and has applicability for a range of functions in industrial automation. The possibilities are immense. It could be used as a gateway, or a controller, or it could be used to attach additional custom sensors or actuators. It just depends on the software, and whatever users decide to attach to the netPI&amp;#8217;s hardware interfaces.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Check out the discussion with Hilscher at Embedded World 2017 here:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;div class="e14-video-container" style="max-width: 880px"&gt;&lt;div class="e14-video"&gt;&lt;iframe allowfullscreen="allowfullscreen" frameborder="0" height="660" scrolling="no" src="https://www.youtube.com/embed/Ft7yHUcTsfw?wmode=transparent" width="880"&gt;
&lt;/iframe&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h1&gt;Hardware Overview&lt;/h1&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The netPI has a single circuit board which contains Raspberry Pi 3 functionality including wireless and Bluetooth and video connections. It has the same 40-way connector inside so all the usual Pi accessory boards can be fitted inside the enclosure. The USB connectors are spread out, it has a total of 4. &lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;It has the default Ethernet interface but also an extra two Ethernet interfaces built-in; these are intended for connecting to the industrial network. There is also a built-in real-time clock with power back-up. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25182-394663/s-hilscher-netpi-annotated1.jpg"&gt;&lt;img alt="s-hilscher-netpi-annotated1.jpg" class="image-6 jive-image" height="412" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25182-394663/843-412/s-hilscher-netpi-annotated1.jpg" style=" width: 843.036px;" width="843"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;What is very cool is that there is an expansion connector slot with blanking plate on the side and it allows for modules to be inserted and removed. These could be additional Ethernet interfaces or other future functionality.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The interface is based on a mini-PCIe connector but the connections carry general-purpose input/output (GPIO) and serial bus signals such as I2C and SPI. The details of the expansion interface will be opened up so it will be possible to design custom hardware to fit into the slot.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Industrial customers could benefit from the netPI even if they do not use it for real-time Ethernet, since it would be possible to design sensors or control circuitry to fit into the expansion module slot. A module that supports thermocouple probes could be a nice example. &lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Overall the hardware design is very nice. The radio antenna has been designed for good coverage by extending it beyond the metal chassis (a non-conductive shell to enclose the antenna is not shown in the photo). I also liked the easy-to-see LEDs, the space to install additional functions (even though the netPI is still very compact) and the wider-range power supply input with a more usable connector than micro USB.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25182-394664/s-ew-netpi-inside-view-a.jpg"&gt;&lt;img alt="s-ew-netpi-inside-view-a.jpg" class="image-7 jive-image" height="455" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25182-394664/808-455/s-ew-netpi-inside-view-a.jpg" style="width:808px; height: 454.826px;" width="808"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h1&gt;Software Overview&lt;/h1&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The nice design extends beyond the hardware too. In order to provide something secure and reliable while remaining easy-to-use, Hilscher have taken the effort to produce a software image which uses a hardened Linux kernel (based on the Yocto project) at its core. On top of that a container technology is run (Docker). This is kind-of similar to virtualization but can be more efficient in terms of resource usage. Docker is one of the open-source success stories that is extremely valuable and worth experimenting with.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.element14.com/community/servlet/JiveServlet/showImage/38-25182-394665/hilscher-netpi-sw-stack.png"&gt;&lt;img alt="hilscher-netpi-sw-stack.png" class="image-8 jive-image" height="419" src="https://www.element14.com/community/servlet/JiveServlet/downloadImage/38-25182-394665/480-419/hilscher-netpi-sw-stack.png" style=" width: 480.185px;" width="480"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;The end result is that it is possible to run Raspbian in a container, and upgrade it (and any applications) as required, remotely. The benefit of this is that software developers can make use of all the familiarity they already have with Raspbian (and can even develop apps on a traditional Pi 3 before deploying to the netPI). Furthermore there is reduced risk of software clashes; it is possible to add additional containers for all your new applications, each running on a separate Raspbian if desired. The container technology allows for safe upgrades because one can always fall back to an earlier container if a new one has any issues.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;Hilscher supply a ready-made Raspbian container that already has technologies like Node-RED and all the drivers to support Real-Time Ethernet built-in. People can directly use that, or modify it by adding their own applications to create a new container and then deploy it remotely to as many netPI&amp;#8217;s as desired.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;h1&gt;Summary&lt;/h1&gt;&lt;p&gt;&lt;span style="font-size: 12pt;"&gt;I was impressed with the level of detailed attention paid to the product design and the software implementation to make it easy for developers and for deployment. I hope to see and experiment with more Hilsher technology in future, I like that they have found ways to make Real-Time Ethernet accessible for all.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:0daa2965-686f-4252-b21d-1ea2e89c9231] --&gt;</description>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">germany</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">profinet</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">rpi</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">industrial automation</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">raspberry_pi_3</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">raspberry pi3</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">industrial ethernet</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">hilscher</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">netpi</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">real-time ethernet</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">customised raspberry pi</category>
      <category domain="https://www.element14.com/community/community/raspberry-pi/blog/tags">customized raspberry pi</category>
      <pubDate>Tue, 28 Mar 2017 04:10:00 GMT</pubDate>
      <author>messages@element14.com</author>
      <guid>https://www.element14.com/community/community/raspberry-pi/blog/2017/03/28/a-new-ruggedized-raspberry-pi-3-netpi</guid>
      <dc:date>2017-03-28T04:10:00Z</dc:date>
      <clearspace:dateToText>3 months 2 weeks ago</clearspace:dateToText>
      <clearspace:replyCount>11</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
      <wfw:comment>https://www.element14.com/community/community/raspberry-pi/blog/comment/a-new-ruggedized-raspberry-pi-3-netpi</wfw:comment>
      <wfw:commentRss>https://www.element14.com/community/community/raspberry-pi/blog/feeds/comments?blogPost=25182</wfw:commentRss>
    </item>
  </channel>
</rss>

