<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Daniel Chote's Project Blog]]></title><description><![CDATA[Software Development, Hardware Hacking, Sim Racing, Multirotors and Robots!]]></description><link>https://projectable.me/</link><generator>Ghost 0.9</generator><lastBuildDate>Mon, 10 Mar 2025 13:35:33 GMT</lastBuildDate><atom:link href="https://projectable.me/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Ubuntu 24.04 + Nvidia Drivers + Ollama]]></title><description><![CDATA[<p><img src="https://projectable.me/content/images/2025/03/IMG_8241.JPG" alt=""></p>

<p>I am building an updated server to play with LLMs for local home automation control using Home Assistant (<a href="https://www.home-assistant.io">https://www.home-assistant.io</a>). </p>

<p>I managed to pick up a Dell R740 for a great price ($400) and with a few additional eBay purchases have a nice server capable of housing 3</p>]]></description><link>https://projectable.me/ubuntu-24-04-nvidia-drivers-ollama/</link><guid isPermaLink="false">3394286b-0d47-408d-b694-f8bddb5fa082</guid><dc:creator><![CDATA[Daniel Chote]]></dc:creator><pubDate>Wed, 05 Mar 2025 16:19:33 GMT</pubDate><content:encoded><![CDATA[<p><img src="https://projectable.me/content/images/2025/03/IMG_8241.JPG" alt=""></p>

<p>I am building an updated server to play with LLMs for local home automation control using Home Assistant (<a href="https://www.home-assistant.io">https://www.home-assistant.io</a>). </p>

<p>I managed to pick up a Dell R740 for a great price ($400) and with a few additional eBay purchases have a nice server capable of housing 3 GPUs. I have an existing Nvidia Tesla P100 from my other server that I am moving to this new server, and will eventually look at finding a Tesla V100 32G PCIe as they seem to have a slightly more accessible price compared to the Tesla A100 PCIe. </p>

<p><img src="https://projectable.me/content/images/2025/03/IMG_8212.JPG" alt="">
<img src="https://projectable.me/content/images/2025/03/IMG_8213.JPG" alt="">
<img src="https://projectable.me/content/images/2025/03/IMG_8216.jpg" alt=""></p>

<p>I will continue to run Home Assistant on my <a href="https://www.home-assistant.io/yellow/">Home Assistant Yellow</a> (PoE, Raspberry Pi CM5 8GB, NVMe SSD), but will land Ollama, and other tools on this new server.</p>

<p><img src="https://projectable.me/content/images/2025/03/IMG_8243.JPG" alt=""></p>

<p>I was banging my head against this for the 2nd time I thought it would be helpful to document the setup process for getting Ollama running on Ubuntu 24.04 along with the steps to reliably install the Nvidia drivers &amp; CUDA packages.  </p>

<h3 id="nvidiadriverinstall">Nvidia Driver install</h3>

<p>Before you begin, ensure that your Nvidia card is showing up on the PCI bus. Run <code>lspci | grep -i nvidia</code> and you should get output similar to this:  </p>

<pre><code>af:00.0 3D controller: NVIDIA Corporation GP100GL [Tesla P100 PCIe 16GB] (rev a1)  
</code></pre>

<p>If you have already attempted to install nvidia drivers and have failed cleanup your existing Nvidia nuggets as follows:  </p>

<pre><code class="language-sh">sudo apt-get remove --purge 'libnvidia-.*'  
sudo apt-get remove --purge '^nvidia-.*'  
sudo apt-get remove --purge '^libnvidia-.*'  
sudo apt-get remove --purge '^cuda-.*'  
sudo apt clean  
sudo apt autoremove  
</code></pre>

<p>Now install the updated Nvidia drivers:  </p>

<pre><code class="language-sh">sudo add-apt-repository ppa:graphics-drivers/ppa --yes  
sudo apt-get update

update-pciids

sudo apt-get install nvidia-driver-570 -y  
sudo apt-get reinstall linux-headers-$(uname -r)

sudo update-initramfs -u  
</code></pre>

<p>Validate that the DKMS modules are actually there, and then reboot if they are:  </p>

<pre><code class="language-sh">sudo dkms status  
sudo reboot  
</code></pre>

<p>After a reboot you should be able to run <code>nvidia-smi</code> and get output similar to this:  </p>

<pre><code>root@r740:~# nvidia-smi  
Wed Mar  5 14:34:02 2025  
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.86.16              Driver Version: 570.86.16      CUDA Version: 12.8     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  Tesla P100-PCIE-16GB           Off |   00000000:AF:00.0 Off |                    0 |
| N/A   30C    P0             26W /  250W |       0MiB /  16384MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+
</code></pre>

<h3 id="nvidiacudainstall">Nvidia CUDA install</h3>

<pre><code class="language-sh">wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb  
sudo dpkg -i cuda-keyring_1.1-1_all.deb

sudo apt-get update

sudo apt-get install cuda-toolkit -y  
sudo apt-get install nvidia-gds -y  
</code></pre>

<p>I don't think the <code>nvidia-gds</code> package is required for my P100, but the official CUDA install guide has it so I'm including it here.  Check that the <code>nvidia-fs</code> module is now available in DKMS and then reboot.</p>

<pre><code class="language-sh">sudo dkms status  
sudo reboot  
</code></pre>

<p>After rebooting you will likely see that there are updated packages for the Nvidia drivers, you can upgrade them if you like. I found that installing the drivers from the <code>ppa:graphics-drivers/ppa</code> repository first had more consistent results than installing from the nvidia repos first.  Your mileage may vary... </p>

<h3 id="installdocker">Install Docker</h3>

<p>We will use docker to host the ollama web ui, but we will run ollama locally on the system.  </p>

<pre><code class="language-sh">sudo apt-get install curl apt-transport-https ca-certificates software-properties-common -y

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg  
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list &gt; /dev/null

sudo apt-get update  
sudo apt-get install docker-ce -y  
</code></pre>

<p>Now add your local user to the docker group <code>sudo usermod -aG docker $USER</code>.</p>

<h3 id="installnvidiacontainertoolkit">Install Nvidia Container Toolkit</h3>

<pre><code class="language-sh">curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \  
  &amp;&amp; curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

sudo apt-get update  
sudo apt-get install nvidia-container-toolkit -y

sudo systemctl restart docker  
</code></pre>

<h3 id="installollama">Install Ollama</h3>

<pre><code class="language-sh">curl -fsSL https://ollama.com/install.sh | sh  
</code></pre>

<p>Now edit the systemd service file to allow the Ollama to listen on all network interfaces on the system instead of just <code>localhost</code> by adding <code>OLLAMA_HOST=0.0.0.0:11434</code></p>

<p><strong>Edit</strong>: <code>/etc/systemd/system/ollama.service</code></p>

<pre><code>[Unit]
Description=Ollama Service  
After=network-online.target

[Service]
ExecStart=/usr/local/bin/ollama serve  
User=ollama  
Group=ollama  
Restart=always  
RestartSec=3  
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"  
Environment="OLLAMA_HOST=0.0.0.0:11434"

[Install]
WantedBy=default.target  
</code></pre>

<p>Then run the following to apply the changes:  </p>

<pre><code class="language-sh">sudo systemctl daemon-reload  
sudo systemctl restart ollama  
</code></pre>

<h3 id="installopenwebui">Install Open WebUI</h3>

<pre><code class="language-sh">docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main  
</code></pre>

<p>You should now be able to navigate to Open WebUI using your server IP and port 3000. Create your admin account and you are ready to start installing models from <a href="https://ollama.com/library">https://ollama.com/library</a>.</p>

<p><img src="https://projectable.me/content/images/2025/03/ollama1-1.png" alt="">
<img src="https://projectable.me/content/images/2025/03/ollama2.png" alt=""></p>]]></content:encoded></item><item><title><![CDATA[Comcast Business IPv6 on Ubiquiti Unifi]]></title><description><![CDATA[<p>If you are reading this it is likely you were like me, on the edge of giving up on IPv6 on your network.  After combining a few small pieces from posts outlining <strong>Comcast Business IPv6</strong> using Ubiquiti EdgeRouters along with the <a href="https://help.ubnt.com/hc/en-us/articles/215458888-UniFi-USG-Advanced-Configuration"><strong>USG Advanced Configuration</strong></a> guide I was able to get</p>]]></description><link>https://projectable.me/comcast-business-ipv6-on-ubiquiti-unifi/</link><guid isPermaLink="false">8314d579-a35e-4e6b-a625-5ddf984207b3</guid><category><![CDATA[Unifi]]></category><category><![CDATA[Ubiquiti]]></category><category><![CDATA[Networking]]></category><dc:creator><![CDATA[Daniel Chote]]></dc:creator><pubDate>Tue, 05 Nov 2019 13:07:15 GMT</pubDate><media:content url="http://projectable.me/content/images/2019/11/IMG_9531.JPG" medium="image"/><content:encoded><![CDATA[<img src="http://projectable.me/content/images/2019/11/IMG_9531.JPG" alt="Comcast Business IPv6 on Ubiquiti Unifi"><p>If you are reading this it is likely you were like me, on the edge of giving up on IPv6 on your network.  After combining a few small pieces from posts outlining <strong>Comcast Business IPv6</strong> using Ubiquiti EdgeRouters along with the <a href="https://help.ubnt.com/hc/en-us/articles/215458888-UniFi-USG-Advanced-Configuration"><strong>USG Advanced Configuration</strong></a> guide I was able to get something that not only works correctly, but persists correctly also.</p>

<p>The trick was getting the right settings defined in the web interface and the one setting not available in the web interface.  It's pretty straight forward, so for sake of simplicity I will just tell you what things need to be set.  <em>This configuration has 1 of my internal networks having IPv6, I did not want to spend any more time trying to make this work across multiple internal networks, but it probably isn't hard.</em></p>

<h4 id="waninterface">WAN Interface</h4>

<p><img src="https://projectable.me/content/images/2019/11/Screen-Shot-2019-11-05-at-7-49-35-AM.png" alt="Comcast Business IPv6 on Ubiquiti Unifi"></p>

<p>Set your WAN interface <strong>IPv6 Connection Type</strong> to <code>Using DHCPv6</code>. You will need to ensure that your cable modem has DHCPv6 enabled, it usually is by default.  The <strong>Prefix Delegation Size</strong> should be set to <code>59</code> as 56 didn't seem to work.</p>

<h3 id="laninterface">LAN Interface</h3>

<p><img src="https://projectable.me/content/images/2019/11/Screen-Shot-2019-11-05-at-7-52-39-AM.png" alt="Comcast Business IPv6 on Ubiquiti Unifi"></p>

<p><strong>IPv6 Interface Type</strong> gets set to <code>Prefix Delegation</code>, you select the WAN interface you used earlier, and you set the <strong>IPv6 Prefix ID</strong> to <code>1</code>. </p>

<p>I suggest setting <strong>DHCPv6/RDNSS DNS Control</strong> to <code>Auto</code>, mine is set to <code>Manual</code> due to having a <a href="https://pi-hole.net">Pi-hole</a> on my network that I use for DNS recursion/caching.</p>

<h3 id="thebackendstuff">The Backend Stuff</h3>

<p>You will need to follow the <strong>USG Advanced Configuration</strong> guide found here: <a href="https://help.ubnt.com/hc/en-us/articles/215458888-UniFi-USG-Advanced-Configuration">https://help.ubnt.com/hc/en-us/articles/215458888-UniFi-USG-Advanced-Configuration</a>.</p>

<p>Following that guide you create your own <code>config.gateway.json</code> file and can paste the following.  </p>

<pre><code>{
  "interfaces": {
    "ethernet": {
      "eth2": {
        "dhcpv6-pd": {
          "rapid-commit": "disable"
        }
      }
    }
  }
}
</code></pre>

<p>If you are using <strong>WAN2</strong> instead of <strong>WAN</strong> change <code>eth2</code> to <code>eth3</code>.  </p>

<h3 id="finishingup">Finishing Up</h3>

<p>If you followed the guide and <strong>Force provision</strong>ed your <strong>USG</strong> you should be good to go. <br>
My linux hosts picked up the IPv6 IPs automatically, and on my Apple products I just disabled then re-enabled Wifi.</p>]]></content:encoded></item><item><title><![CDATA[A simple Etcher 6 slot SD card jig]]></title><description><![CDATA[<p>I've been working with Kubernetes a lot lately, I am using Kubernetes at <a href="https://filament.com">Filament</a> as a way to manage sandbox blockchain environments, so naturally I wanted to try and replicate this environment using Raspberry Pis. This is actually easier said than done, even though the 3B/3B+ has 1GB of</p>]]></description><link>https://projectable.me/a-simple-etcher-6-slot-sd-card-jig/</link><guid isPermaLink="false">18ae39cf-f4d5-47c9-91bb-073fb99bd1fc</guid><category><![CDATA[Raspberry Pi]]></category><category><![CDATA[Kubernetes]]></category><category><![CDATA[3D Printing]]></category><category><![CDATA[Etcher]]></category><dc:creator><![CDATA[Daniel Chote]]></dc:creator><pubDate>Mon, 19 Nov 2018 17:53:22 GMT</pubDate><media:content url="http://projectable.me/content/images/2018/11/IMG_6734.jpg" medium="image"/><content:encoded><![CDATA[<img src="http://projectable.me/content/images/2018/11/IMG_6734.jpg" alt="A simple Etcher 6 slot SD card jig"><p>I've been working with Kubernetes a lot lately, I am using Kubernetes at <a href="https://filament.com">Filament</a> as a way to manage sandbox blockchain environments, so naturally I wanted to try and replicate this environment using Raspberry Pis. This is actually easier said than done, even though the 3B/3B+ has 1GB of RAM, once you start bringing in persistent storage layers it becomes apparent that it just isn't enough memory to run anything but the simplest of kubernetes containers.</p>

<p><img src="https://projectable.me/content/images/2018/11/IMG_6776.jpg" alt="A simple Etcher 6 slot SD card jig"></p>

<p>Throughout the testing and validation of Kubernetes on my 6 node 3B cluster I was constantly re-imaging the SD cards. I tested Raspbian and Ubuntu 18 64bit, with various full resets along the way.  The process of imaging 6 cards with only 1 SD reader is a bit monotonous, so I set out to find out what options there were for multiple card writing systems. I was very quickly overwhelmed by the $1500+ SD card duplication systems out there and I realized I would have to cobble something together myself.</p>

<h4 id="doingthejig">Doing the jig</h4>

<p>A quick search on Amazon and I found a <a href="http://a.co/d/fkdFMf3">USB 3.0 dual SD/Micro SD card reader</a>, I figured I could get 3 of these and plug them in to a hub to give me the 6 card slots I needed.  I was then pleasantly surprised to find the manufacturer of the card readers also had a <a href="http://a.co/d/bhqes7W">4 port USB 3.0 hub</a> that was the same size!  Once I got all the hardware in hand I could see that the hub was almost exactly the same base dimensions as the 3 dual card readers stacked next to each other!</p>

<p><img src="https://projectable.me/content/images/2018/11/IMG_6730.jpg" alt="A simple Etcher 6 slot SD card jig">
<img src="https://projectable.me/content/images/2018/11/IMG_6731.jpg" alt="A simple Etcher 6 slot SD card jig"></p>

<p>I designed a simple 3D printable enclosure in Fusion360 and then printed it using Proto-Pasta Metallic Blue HTPLA.  It is held together using M3 hardware.</p>

<p><img src="https://projectable.me/content/images/2018/11/Screen-Shot-2018-11-19-at-12-50-13-PM.png" alt="A simple Etcher 6 slot SD card jig"></p>

<p>The finished enclosure keeps everything together, and doesn't look half bad!</p>

<p><img src="https://projectable.me/content/images/2018/11/IMG_6733.jpg" alt="A simple Etcher 6 slot SD card jig">
<img src="https://projectable.me/content/images/2018/11/IMG_6735.jpg" alt="A simple Etcher 6 slot SD card jig"></p>

<p>This setup gives you 6 usable SD/Micro SD card slots with 1 USB 3.0 cable, and a spare USB 3.0 port to daisy-chain more of these jigs if needed!  <a href="https://www.balena.io/etcher/">Etcher</a> can write to all of the SD cards at the same time, cutting the burn time significantly!</p>

<p><img src="https://projectable.me/content/images/2018/11/Screen-Shot-2018-11-13-at-7-58-50-AM.png" alt="A simple Etcher 6 slot SD card jig"></p>

<p>A big thanks to <a href="https://www.balena.io">Balena</a> (previously Resin.io) for releasing <a href="https://www.balena.io/etcher/">Etcher</a> to the world, its a fantastic tool that scales well!</p>

<h4 id="gomakeoneyourself">Go make one yourself!</h4>

<p>All of the STLs and the BOM can be found on Thingiverse: <a href="https://www.thingiverse.com/thing:3217069">https://www.thingiverse.com/thing:3217069</a></p>]]></content:encoded></item><item><title><![CDATA[Sim racing motion rig v2 updates]]></title><description><![CDATA[<p>With the rekindled interest in Dirt Rally that my <a href="http://projectable.me/my-dirt-rally-tabletop-car-cade-game/">Car-cade</a> has given me I had a bit of a yearning to get Dirt Rally working nicely in VR on the motion rig. You can read more about my motion rig here: <a href="http://projectable.me/my-sim-racing-motion-rig-version-2/">http://projectable.me/my-sim-racing-motion-rig-version-2/</a></p>

<p><a href="http://projectable.me/my-dirt-rally-tabletop-car-cade-game/"><img src="https://projectable.me/content/images/2017/12/IMG_3182.jpg" alt="" title=""></a></p>

<h4 id="theproblems">The problems</h4>

<p>The issue I</p>]]></description><link>https://projectable.me/sim-racing-motion-rig-v2-updates/</link><guid isPermaLink="false">57619334-4079-423d-9411-06b273bec76a</guid><category><![CDATA[Sim Racing]]></category><category><![CDATA[SimXperience]]></category><category><![CDATA[Motion Simulator]]></category><category><![CDATA[Dirt Rally]]></category><dc:creator><![CDATA[Daniel Chote]]></dc:creator><pubDate>Sun, 03 Dec 2017 02:51:45 GMT</pubDate><media:content url="http://projectable.me/content/images/2017/12/20171201-4K4X9516.jpg" medium="image"/><content:encoded><![CDATA[<img src="http://projectable.me/content/images/2017/12/20171201-4K4X9516.jpg" alt="Sim racing motion rig v2 updates"><p>With the rekindled interest in Dirt Rally that my <a href="http://projectable.me/my-dirt-rally-tabletop-car-cade-game/">Car-cade</a> has given me I had a bit of a yearning to get Dirt Rally working nicely in VR on the motion rig. You can read more about my motion rig here: <a href="http://projectable.me/my-sim-racing-motion-rig-version-2/">http://projectable.me/my-sim-racing-motion-rig-version-2/</a></p>

<p><a href="http://projectable.me/my-dirt-rally-tabletop-car-cade-game/"><img src="https://projectable.me/content/images/2017/12/IMG_3182.jpg" alt="Sim racing motion rig v2 updates" title=""></a></p>

<h4 id="theproblems">The problems</h4>

<p>The issue I had was 2 fold: #1 the motion was too violent, and #2 even with a GTX1080Ti the framerate was really inconsistent, leading to really bad motion sickness.  I had put a small amount of time in to trying to figure it out, but in the end I just gave up due to feeling quite ill.</p>

<h4 id="thefixes">The Fixes</h4>

<p>I tackled the motion aspect first, it took some motion profile tuning inside SimXperience Sim Commander, mainly smoothing for the device and a smoothing filter on acceleration/braking/cornering g-forces.  With the heavily smoothed profile things were less back-breaking.</p>

<p>Secondly I dived in to the graphics quality, testing how each change "felt" and eventually ending up with a profile that was mostly medium and low settings.  The only things left on high were track and car detail.  Its a bit of a shame to end up with such low settings on such a high end graphics card, but thats what I ended up with after "gut checking" them.</p>

<p>After testing and doing a few runs I was quite happy that I no longer wanted to loose my lunch.  It shows just how important high FPS without any stutter is to avoid motion sickness in VR.</p>

<h4 id="sometweaking">Some tweaking</h4>

<p>During all the testing I found that the actuator bar was hitting the back of the seat, meaning there was a LOT of flex and disconnect between the seat and the seat platform.  I quickly bent up a bracket to fix this.  The seat had an M8 bolt at the top that I used to mount back to the top of the seat platform.  This extra rigidity helps a LOT!  It's not pretty, but it works.  I had to use a rubber bushing between the bracket and the seat, as without it there was a lot of actuator noise that was resinating in the seat itself.</p>

<p><img src="https://projectable.me/content/images/2017/12/IMG_3346-1.JPG" alt="Sim racing motion rig v2 updates">
<img src="https://projectable.me/content/images/2017/12/IMG_3347.JPG" alt="Sim racing motion rig v2 updates"></p>

<iframe width="560" height="315" src="https://www.youtube.com/embed/wZdebttwHCM" frameborder="0" allowfullscreen></iframe>

<h4 id="finalthoughts">Final Thoughts</h4>

<p>So there we have it. Small tweaks and changes to the rig to help enhance the experience, and some game settings tweaks along with motion profile changes to make Dirt Rally a playable experience in motion VR!</p>

<p><img src="https://projectable.me/content/images/2017/12/IMG_3348-1.JPG" alt="Sim racing motion rig v2 updates">
<img src="https://projectable.me/content/images/2017/12/IMG_3349.JPG" alt="Sim racing motion rig v2 updates">
<img src="https://projectable.me/content/images/2017/12/IMG_3350.JPG" alt="Sim racing motion rig v2 updates"></p>

<h4 id="systemspecifications">System Specifications</h4>

<h5 id="pc">PC</h5>

<ul>
<li>i7-5820K</li>
<li>32G ram</li>
<li>GTX 1080Ti</li>
<li>Benq W1080ST projector projecting on the wall</li>
<li>Oculus Rift CV1</li>
</ul>

<h5 id="motionrig">Motion Rig</h5>

<ul>
<li>Custom 8020 aluminum extrusion rig</li>
<li>SimXperience DIY motion platform</li>
<li>Fanatec CSW V2</li>
<li>Fanatec CSW Pedals V3</li>
<li>Fanatec Sequential Shifter V1.5</li>
<li>Fanatec Handbrake</li>
</ul>]]></content:encoded></item><item><title><![CDATA[talkiepi Updates (November 2017)]]></title><description><![CDATA[<h2 id="introducingtalkiepihttpsgithubcomdchotetalkiepi">Introducing <a href="https://github.com/dchote/talkiepi">talkiepi</a></h2>

<p><a href="https://github.com/dchote/talkiepi">talkiepi</a> is a wifi "walkie" talkie for your kids and their friends. It provides a very simple "push to talk" interface. When you push the button and talk, all the other talkiepis in the channel will hear what is being said.</p>

<h2 id="november2017updates">November 2017 Updates</h2>

<p><a href="https://github.com/dchote/talkiepi">talkiepi</a> has been out</p>]]></description><link>https://projectable.me/talkiepi-nov2017-updates/</link><guid isPermaLink="false">dc39346e-748a-4e09-81af-34a2d80bef8b</guid><category><![CDATA[talkiepi]]></category><category><![CDATA[Raspberry Pi]]></category><category><![CDATA[WIFI]]></category><category><![CDATA[golang]]></category><category><![CDATA[VOIP]]></category><dc:creator><![CDATA[Daniel Chote]]></dc:creator><pubDate>Fri, 17 Nov 2017 15:15:46 GMT</pubDate><media:content url="http://projectable.me/content/images/2017/11/IMG_3194.JPG" medium="image"/><content:encoded><![CDATA[<h2 id="introducingtalkiepihttpsgithubcomdchotetalkiepi">Introducing <a href="https://github.com/dchote/talkiepi">talkiepi</a></h2>

<img src="http://projectable.me/content/images/2017/11/IMG_3194.JPG" alt="talkiepi Updates (November 2017)"><p><a href="https://github.com/dchote/talkiepi">talkiepi</a> is a wifi "walkie" talkie for your kids and their friends. It provides a very simple "push to talk" interface. When you push the button and talk, all the other talkiepis in the channel will hear what is being said.</p>

<h2 id="november2017updates">November 2017 Updates</h2>

<p><a href="https://github.com/dchote/talkiepi">talkiepi</a> has been out in the world for a little over a year now and it has been quite a successful project!  I have seen 4+ different magazine articles (read some: <a href="https://www.raspberrypi.org/magpi-issues/MagPi62.pdf">here</a>, <a href="https://issuu.com/futurepublishing/docs/piu02.issuu/2?ff=true">here</a>, and <a href="https://magazinesubscriptionsdigital.zinio.com/browse/issues/index.jsp;jsessionid=FCDE8D752BEF8FE767D9CF82D567CB65.prd-main-news2?skuId=416414901&amp;prnt=&amp;categoryId=cat1960026">here</a>), and I have even seen it included in school course curriculum!!</p>

<p>I am getting back in to <a href="https://golang.org">Go</a> development for work, and the process of working in <a href="https://golang.org">Go</a> again gave me the hankering to update <a href="https://github.com/dchote/talkiepi">talkiepi</a> and try and work out some of its kinks.  I'll be working on enhancements to talkiepi over the next few weeks when I get the time.  My goal is to get talkiepi working flawlessly on a <a href="https://www.adafruit.com/product/3400">Raspberry Pi Zero W</a>.</p>

<p><strong>Talkiepi can be found over on github: <a href="https://github.com/dchote/talkiepi">https://github.com/dchote/talkiepi</a></strong></p>]]></content:encoded></item><item><title><![CDATA[My Dirt Rally tabletop car-cade game]]></title><description><![CDATA[<p>For the longest time I've had the idea to put a Raspberry Pi into one of those kids car toys from the 80s. </p>

<p><img src="https://projectable.me/content/images/2017/11/05-1.jpg" alt=""></p>

<p>In August 2017 I was beat to the punch by <a href="https://twitter.com/mattbrailsford">Matt Brailsford</a> when he published his Tomy Turnin' Turbo Dashboard Outrun Arcade on Twitter: <a href="https://twitter.com/circuitbeard/status/902513198330499073">https://twitter.com/</a></p>]]></description><link>https://projectable.me/my-dirt-rally-tabletop-car-cade-game/</link><guid isPermaLink="false">601318d7-3a04-4104-ae87-a42edf2c9b98</guid><category><![CDATA[Sim Racing]]></category><category><![CDATA[Dirt Rally]]></category><category><![CDATA[Car-Cade]]></category><dc:creator><![CDATA[Daniel Chote]]></dc:creator><pubDate>Tue, 14 Nov 2017 23:38:05 GMT</pubDate><media:content url="http://projectable.me/content/images/2017/11/IMG_3182.jpg" medium="image"/><content:encoded><![CDATA[<img src="http://projectable.me/content/images/2017/11/IMG_3182.jpg" alt="My Dirt Rally tabletop car-cade game"><p>For the longest time I've had the idea to put a Raspberry Pi into one of those kids car toys from the 80s. </p>

<p><img src="https://projectable.me/content/images/2017/11/05-1.jpg" alt="My Dirt Rally tabletop car-cade game"></p>

<p>In August 2017 I was beat to the punch by <a href="https://twitter.com/mattbrailsford">Matt Brailsford</a> when he published his Tomy Turnin' Turbo Dashboard Outrun Arcade on Twitter: <a href="https://twitter.com/circuitbeard/status/902513198330499073">https://twitter.com/circuitbeard/status/902513198330499073</a></p>

<p align="center">  
<iframe width="560" height="315" src="https://www.youtube.com/embed/r21Zfmw7moI" frameborder="0" allowfullscreen></iframe>  
</p>

<p><strong>His project was so fantastic, I had to come up with something entirely new...</strong></p>

<h4 id="thebeginning">The beginning</h4>

<p>I already had an Intel Atom powered dev board, the <a href="https://minnowboard.org">MinnowBoard</a>. Surprisingly, SteamOS installed on it without any issues.</p>

<p><img src="https://projectable.me/content/images/2017/11/IMG_1989.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_1988.jpg" alt="My Dirt Rally tabletop car-cade game"></p>

<p>After playing around with SteamOS and <a href="https://www.dirtgame.com">Dirt Rally</a> on the <a href="https://minnowboard.org">MinnowBoard</a> without much luck (talking in frames per minute, not frames per second), I settled on the idea of building a full Intel powered system running SteamOS. I would then work on designing and 3D printing the entire enclosure from scratch.  </p>

<h3 id="thedirtrallycarcade">The Dirt Rally Car-cade!</h3>

<h4 id="inspiration">Inspiration</h4>

<p>Initially I was going to design it with cues from the Audi Quattro, but I very quickly switched over to the 1995 Subaru Impreza, which is my preferred car in the game. </p>

<p align="center">  
<img src="https://projectable.me/content/images/2017/11/IMG_2580.jpg" alt="My Dirt Rally tabletop car-cade game">
</p>

<p>I ordered the smallest motherboard I could find that had the features I needed, along with the rest of the components that I didn't already have.  </p>

<h4 id="systemcomponents">System Components</h4>

<ul>
<li>Motherboard: <a href="https://www.newegg.com/Product/Product.aspx?Item=N82E16813132897">Asus H110S2/CSM</a></li>
<li>CPU: <a href="https://www.newegg.com/Product/Product.aspx?Item=N82E16819117624">Intel G4500</a></li>
<li>CPU Cooler: <a href="https://www.newegg.com/Product/Product.aspx?Item=N82E16835220067">SILVERSTONE NT07-115X</a></li>
<li>Ram: <a href="https://www.newegg.com/Product/Product.aspx?Item=N82E16820232146">G.SKILL Ripjaws 8GB</a></li>
<li>Storage: <a href="https://www.newegg.com/Product/Product.aspx?Item=N82E16820147467">Samsung 950 Pro M.2</a></li>
</ul>

<h4 id="othercomponents">Other Components</h4>

<ul>
<li>LCD: <a href="https://www.ebay.com/itm/7-Inch-HDMI-Capacitive-IPS-Display-LCD-for-Raspberry-Pi-1024-600-/262941998848?roken=cUgayN&amp;soutkn=unc8RL">7" 1024x600 capacitive touch LCD</a></li>
<li>USB Controller: <a href="https://www.adafruit.com/product/2708">Pimoroni Picade Controller PCB</a></li>
<li>2x Speakers: <a href="https://www.adafruit.com/product/3351">3W enclosed speaker from Adafruit</a></li>
<li>Push Buttons: <a href="http://a.co/cee6jZP">Pack of 10 black pushbuttons</a></li>
<li>Potentiometer: <a href="http://a.co/blt4qxJ">Pack of 5 10k ohm linear potentiometers</a></li>
</ul>

<h4 id="thedesignprocess">The Design Process</h4>

<p>The process of designing and printing was an iterative one. I initially designed and iterated the steering and throttle components until I was happy with how they worked.  The USB controller interface is managed by a <a href="https://shop.pimoroni.com/products/picade-controller-board">Pimoroni Picade PCB</a> (it's basically an arduino with an onboard amplifier for speakers). The steering and throttle are analog inputs using potentiometers. The steering wheel and throttle both self center (kindof) using rubber bands integrated into my design.</p>

<p><img src="https://projectable.me/content/images/2017/11/IMG_2022.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_2047.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_2096.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_2105.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_2106.jpg" alt="My Dirt Rally tabletop car-cade game"></p>

<p>I then went about planning the smallest footprint possible for the Car-cade... Ensuring that I was able to 3D print everything using my Anet A8.</p>

<p align="center">  
<img src="https://projectable.me/content/images/2017/11/IMG_2114.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_2115.jpg" alt="My Dirt Rally tabletop car-cade game">
</p>

<p>As I worked through designing each part and printing it, I got a better picture of how everything would come together.  It didn't take much effort once the ball was in motion.</p>

<p><img src="https://projectable.me/content/images/2017/11/IMG_2182.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_2262.jpg" alt="My Dirt Rally tabletop car-cade game"></p>

<h4 id="socialmediainterest">Social Media Interest</h4>

<p>I recorded a video of my friend Eric playing on the Car-cade and put it up on Twitter showing off the progress. A few large social media publishers contacted me and asked if they could share the video. It got quite a lot of views on their networks!</p>

<iframe width="560" height="315" src="https://www.youtube.com/embed/Ss-si82NqcI" frameborder="0" allowfullscreen></iframe>

<h4 id="designingaroundtheparts">Designing Around the Parts</h4>

<p>Everything was designed around being as small as possible.  As you can see, minimal clearance was given around the motherboard. I had a balancing act between the maximum print area on my 3D printer and how much room I needed for cables plugging in to the motherboard.</p>

<p><img src="https://projectable.me/content/images/2017/11/IMG_2342.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_2343.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_2344.jpg" alt="My Dirt Rally tabletop car-cade game"></p>

<p>Once I had all the components finished and the first prototype assembled I went on to experiment with finishing methods.</p>

<p><img src="https://projectable.me/content/images/2017/11/IMG_2359.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_2360.jpg" alt="My Dirt Rally tabletop car-cade game"></p>

<h4 id="postprocessing">Post-Processing</h4>

<p>Initially I thought that I should sand, primer, paint, then clear coat. I managed to pick up a can of World Rally Blue paint. It looks amazing... But after attempting the process I realized it was too much effort to go to for a project of this size.</p>

<p><img src="https://projectable.me/content/images/2017/11/IMG_2467.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_2474.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_2526.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_2523.jpg" alt="My Dirt Rally tabletop car-cade game"></p>

<h4 id="projectrecognition">Project Recognition</h4>

<p>It was at this time that I received a package from Codemasters!!! I got sent SWAG!!</p>

<p><img src="https://projectable.me/content/images/2017/11/IMG_2531.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_2533.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_2534.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_2535.jpg" alt="My Dirt Rally tabletop car-cade game"></p>

<p>Many thanks to the Dirt team at Codemasters. It's awesome to see them support the community the way they do!!</p>

<h4 id="postprocessingpart2">Post-Processing, Part 2</h4>

<p>After a lot of debating about the pros and cons of extensive post processing to finish 3d prints, I decided to switch to printing the parts using <strong>different colored filament</strong>.  This process took a <strong>LONG</strong> time. I experimented with 4 different rolls of blue filament alone. I also spent the time to break up the design so that I could print the rear panel in different pieces and glue them together.  I ended up going with <a href="https://colorfabb.com/ultra-marine-blue">ColorFabb Ultra Marine Blue PLA</a> for the bulk of the enclosure. The dashboard is printed in <a href="https://www.proto-pasta.com/products/high-performance-htpla-matte-fiber">ProtoPasta Matte Fiber PLA</a>, the base, rear panel insert, and all the internal mounts are printed in Hatchbox Black PLA, and the headlights are printed in Hatchbox Glow in the Dark PLA.</p>

<p><img src="https://projectable.me/content/images/2017/11/IMG_2586.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_2587.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_2836.jpg" alt="My Dirt Rally tabletop car-cade game"></p>

<p>The steering wheel and throttle are printed using <a href="https://www.proto-pasta.com/collections/exotic-composite-pla/products/stainless-steel-pla">ProtoPasta Polishable Stainless Steel PLA</a>, the steering wheel rim has been painted with PlastiDip Rubber Paint, and the small stripe is Testors orange.</p>

<p><img src="https://projectable.me/content/images/2017/11/IMG_3057.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_3078.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_3092.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_3096.jpg" alt="My Dirt Rally tabletop car-cade game"></p>

<h4 id="finalassembly">Final Assembly</h4>

<p>With all the parts finally printed, I went about assembling the final product!</p>

<p><img src="https://projectable.me/content/images/2017/11/IMG_3129.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_3131.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_3132.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_3133.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_3144.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_3145.jpg" alt="My Dirt Rally tabletop car-cade game"></p>

<h4 id="finaltouches">Final Touches</h4>

<p>After assembly, I used my Cricut to cut some vinyl decals, giving us the finished Dirt Rally Car-cade!</p>

<p><img src="https://projectable.me/content/images/2017/11/IMG_3182-1.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_3183.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_3184.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_3185.jpg" alt="My Dirt Rally tabletop car-cade game"></p>

<iframe width="560" height="315" src="https://www.youtube.com/embed/RuAd2cMFF6Y" frameborder="0" allowfullscreen></iframe>

<h3 id="bananaforscale">🍌Banana For Scale 🤣</h3>

<p><img src="https://projectable.me/content/images/2017/11/IMG_3187.jpg" alt="My Dirt Rally tabletop car-cade game">
<img src="https://projectable.me/content/images/2017/11/IMG_3188.jpg" alt="My Dirt Rally tabletop car-cade game"></p>

<h4 id="gameplayvideos">Gameplay Videos</h4>

<iframe width="560" height="315" src="https://www.youtube.com/embed/ieWfV6zoHNw" frameborder="0" allowfullscreen></iframe>

<hr>

<iframe width="560" height="315" src="https://www.youtube.com/embed/bi_dIsvflY4" frameborder="0" allowfullscreen></iframe>

<hr>

<iframe width="560" height="315" src="https://www.youtube.com/embed/8HmKj4H8PdA" frameborder="0" gesture="media" allow="encrypted-media" allowfullscreen></iframe>

<h4 id="moreaboutthecarcade">More About the Car-cade</h4>

<p>I have a few more videos of the Car-cade prototype on YouTube: <a href="https://www.youtube.com/playlist?list=PLGYb5mIm0WYwEnWkQ1j9M1dFWMHfyMOBq">https://www.youtube.com/playlist?list=PLGYb5mIm0WYwEnWkQ1j9M1dFWMHfyMOBq</a></p>

<h4 id="buildyourowncarcade">Build Your OWN Car-cade!</h4>

<p>I have published the 3d objects, and will <strong>SOON</strong> be writing build instructions over on github: <a href="https://github.com/dchote/carcade">https://github.com/dchote/carcade</a></p>]]></content:encoded></item><item><title><![CDATA[Raspberry Pi Touchscreen Octoprint Controller]]></title><description><![CDATA[<p>As everyone knows I love my Raspberry Pis. I'll put them in whatever I can fit them in.  I am in the process of finishing my 3D printer rack and I wanted to get my new Anet A8 printer on wifi so that I didn't need to shuffle the difficult</p>]]></description><link>https://projectable.me/raspberry-pi-touchscreen-octoprint-controller/</link><guid isPermaLink="false">2199c0e1-bb32-4ada-a110-12db4a7df72f</guid><category><![CDATA[Raspberry Pi]]></category><category><![CDATA[3D Printing]]></category><category><![CDATA[Octoprint]]></category><dc:creator><![CDATA[Daniel Chote]]></dc:creator><pubDate>Fri, 21 Jul 2017 02:18:30 GMT</pubDate><media:content url="http://projectable.me/content/images/2017/07/logo.png" medium="image"/><content:encoded><![CDATA[<img src="http://projectable.me/content/images/2017/07/logo.png" alt="Raspberry Pi Touchscreen Octoprint Controller"><p>As everyone knows I love my Raspberry Pis. I'll put them in whatever I can fit them in.  I am in the process of finishing my 3D printer rack and I wanted to get my new Anet A8 printer on wifi so that I didn't need to shuffle the difficult to remove SD card from it when I wanted to print something.</p>

<p><img src="https://projectable.me/content/images/2017/07/IMG_1559.jpg" alt="Raspberry Pi Touchscreen Octoprint Controller"></p>

<p>Along comes <a href="http://octoprint.org">Octoprint</a>...  Now, there are plenty of "how to install octoprint on a Raspberry Pi" documents out there, but nothing quite as pedantic as I would have liked. So I set off to do it my way.</p>

<p>This project uses a fantastic Adafruit designed 3D printed case: <a href="https://learn.adafruit.com/3-dot-5-pitft-octoprint-rig/3d-printed-case">https://learn.adafruit.com/3-dot-5-pitft-octoprint-rig/3d-printed-case</a> to wrap a <a href="https://www.adafruit.com/product/3055">Raspberry Pi 3</a> + <a href="https://www.adafruit.com/product/2441">Adafruit PiTFT Plus 3.5" touch screen</a>.</p>

<p><img src="https://projectable.me/content/images/2017/07/IMG_1532.jpg" alt="Raspberry Pi Touchscreen Octoprint Controller">
<img src="https://projectable.me/content/images/2017/07/IMG_1529.jpg" alt="Raspberry Pi Touchscreen Octoprint Controller">
<img src="https://projectable.me/content/images/2017/07/IMG_1531.jpg" alt="Raspberry Pi Touchscreen Octoprint Controller">
<img src="https://projectable.me/content/images/2017/07/IMG_1530.jpg" alt="Raspberry Pi Touchscreen Octoprint Controller"></p>

<h3 id="gettingstarted">Getting Started</h3>

<p>This is a very simple project. Here are the things you will need:</p>

<ul>
<li>Raspberry Pi 3</li>
<li>PiTFT Plus 3.5"</li>
<li>SD Card</li>
<li>3D Printer</li>
</ul>

<p>Most of this is already covered in Adafruit's fantastic guide: <a href="https://learn.adafruit.com/3-dot-5-pitft-octoprint-rig/overview">https://learn.adafruit.com/3-dot-5-pitft-octoprint-rig/overview</a>.</p>

<p>My approach has been updated and is a bit more bare bones... You will download the latest <strong>Raspbian Jessie Lite</strong> from <a href="https://www.raspberrypi.org/downloads/raspbian/">https://www.raspberrypi.org/downloads/raspbian/</a>, and burn it to your SD card.  </p>

<p>Do the usual Raspberry Pi setup process... Change the default password, enable SSH, get on to your wifi, etc. Once raspbian is running and secured on your Pi3 you can proceed with this guide.</p>

<hr>

<h3 id="installrequiredpackages">Install required packages</h3>

<p>As root (<code>sudo -i</code>), please do the following:  </p>

<pre><code>apt-get install python-pip python-dev python-setuptools python-virtualenv git libyaml-dev build-essential chromium-browser raspi-gpio xcompmgr dbus-x11 libgl1-mesa-dri xserver-xorg xserver-xorg-video-fbdev xserver-xorg-input-evdev xinit xfonts-100dpi xfonts-75dpi xfonts-cyrillic xfonts-scalable xinput ttf-mscorefonts-installer xinput-calibrator  
</code></pre>

<hr>

<h3 id="basesetup">Base setup</h3>

<p>Create the octoprint user. This user will be used to run both the backend and the frontend of octoprint:</p>

<pre><code>adduser --disabled-password --disabled-login --gecos "" octoprint  

usermod -a -G cdrom,audio,video,render,plugdev,users,dialout,dip,input,tty octoprint  
</code></pre>

<p>Fix the xorg config permissions so that a non-root user can run X correctly:</p>

<pre><code>chmod ug+s /usr/lib/xorg/Xorg  
</code></pre>

<p>Now we will update a few X config files to optimize for this use case:</p>

<p><strong>edit: <code>/etc/X11/Xwrapper.config</code></strong></p>

<pre><code>allowed_users=anybody  
needs_root_rights=no  
</code></pre>

<p><strong>edit: <code>/etc/kbd/config</code></strong></p>

<pre><code>BLANK_TIME=0  
BLANK_DPMS=off  
POWERDOWN_TIME=0  
</code></pre>

<p><strong>edit: <code>/etc/X11/xinit/xinitrc</code></strong></p>

<pre><code>xset s noblank  
xset s off  
xset -dpms  
</code></pre>

<hr>

<h3 id="installoctoprint">Install Octoprint</h3>

<p>Switch from root to the octoprint user <code>su octoprint</code>:</p>

<pre><code>cd /home/octoprint

git clone https://github.com/foosel/OctoPrint.git

cd OctoPrint

virtualenv venv  
./venv/bin/pip install pip --upgrade
./venv/bin/pip install setuptools==7.0
./venv/bin/python setup.py install

mkdir ~/.octoprint  
</code></pre>

<p>This should leave you with a happy install of octoprint located at <code>/home/octoprint/Octoprint</code>.</p>

<h3 id="setupsystemdservices">Setup systemd services</h3>

<p><strong>edit: <code>/etc/systemd/system/octoprint-backend.service</code></strong></p>

<pre><code>[Unit]
    Description=OctoPrint service

[Service]
    User=octoprint
    ExecStart=/home/octoprint/OctoPrint/venv/bin/octoprint

[Install]
    WantedBy=multi-user.target
</code></pre>

<p><strong>edit: <code>/etc/systemd/system/octoprint-frontend.service</code></strong></p>

<pre><code>[Unit]
Description = Octoprint Frontend  
After = systemd-user-sessions.service network.target sound.target

[Service]
User = octoprint  
Group = octoprint  
Type = simple  
ExecStart = /usr/bin/xinit /usr/bin/dbus-launch --exit-with-session /usr/bin/chromium-browser --start-maximized --window-size=480,320 --window-position=0,0 --disable-restore-background-contents --noerordialogs --disable-session-crashed-bubble --disable-infobars --disable-pinch --overscroll-history-navigation=0 --incognito --kiosk http://127.0.0.1:5000 -- :0 -s 0 dpms -nocursor -nolisten tcp vt7  
Restart = on-abort  
RestartSec = 5

[Install]
WantedBy = multi-user.target  
</code></pre>

<p>Enable both services to start at boot:  </p>

<pre><code>systemctl enable octoprint-backend.service  
systemctl enable octoprint-frontend.service  
</code></pre>

<hr>

<h3 id="octoprintsetup">Octoprint setup</h3>

<p>Log in to your octoprint instance using a browser on your computer. It should be something like http://<strong>YOUR<em>_</em>PI<em>_</em>IP</strong>:5000. You can find your Pi's ip address by running <code>ifconfig</code> as root.  You will be presented with the "Setup Wizard". Follow the instructions to complete the setup process. </p>

<p><em>To keep things simple I recommend <strong>DISABLING</strong> access control. I would not recommend this if you are putting your Raspberry Pi on a public network.</em></p>

<hr>

<h3 id="touchuiplugin">TouchUI plugin</h3>

<p>To best fit on the 480x320 screen, you should enable the TouchUI plugin. On your computer connect to the octoprint instance running on the Raspberry Pi (<em>instructions above</em>).  "Under the settings section, goto the plugin manager and search for "Touch UI", then click the install button." --<a href="https://learn.adafruit.com/3-dot-5-pitft-octoprint-rig/software">Adafruit</a></p>

<hr>

<h3 id="enablethepitft">Enable the PiTFT</h3>

<p>Adafruit has a guide: <a href="https://learn.adafruit.com/adafruit-pitft-3-dot-5-touch-screen-for-raspberry-pi/easy-install">https://learn.adafruit.com/adafruit-pitft-3-dot-5-touch-screen-for-raspberry-pi/easy-install</a>, but it doesnt seem to play nice with the latest Raspbian.</p>

<p>Run the following as root (<code>sudo -i</code>):  </p>

<pre><code>echo "deb http://apt.adafruit.com/raspbian/ jessie main" &gt;&gt; /etc/apt/sources.list

wget -O - -q https://apt.adafruit.com/apt.adafruit.com.gpg.key | apt-key add -

apt-get update  
apt-get install -y adafruit-pitft-helper  
</code></pre>

<p>Then run adafruit-pitft-helper:  </p>

<pre><code>adafruit-pitft-helper -t 35r  
</code></pre>

<p>Check <code>/boot/config.txt</code> to ensure the defined orientation will work for you. The line to review should look like:  </p>

<pre><code>dtoverlay=pitft35r,rotate=90,speed=42000000,fps=20  
</code></pre>

<p>The rotate= variable tells the driver to rotate the screen 0, 90, 180, or 270 degrees. </p>

<ul>
<li><strong>0</strong> is portrait, with the bottom near the USB jacks.</li>
<li><strong>90</strong> is landscape, with the bottom of the screen near the headphone jack.</li>
<li><strong>180</strong> is portrait, with the top near the USB jacks.</li>
<li><strong>270</strong> is landscape, with the top of the screen near the headphone jack.</li>
</ul>

<p>Now reboot (<code>reboot</code>).</p>

<p>After the reboot (in theory) you will see the octoprint web interface on your PiTFT.  But you will need to calibrate the touchscreen before you can interact with it.</p>

<hr>

<h3 id="touchcalibration">Touch calibration</h3>

<p>As root (<code>sudo -i</code>) run the following:  </p>

<pre><code>DISPLAY=:0.0 xinput_calibrator  
</code></pre>

<p>Follow the onscreen calibration process:  </p>

<p align="center">  
<img src="https://projectable.me/content/images/2017/07/raspberry_pi_xinput.png" alt="Raspberry Pi Touchscreen Octoprint Controller">
</p>

<p>Once complete you should have a snippet of config to paste relevant to your touch screen.</p>

<p><strong>edit: <code>/etc/X11/xorg.conf.d/99-calibration.conf</code></strong> and paste the output you got from xinput_calibrator.</p>

<p><strong>Example output:</strong> </p>

<pre><code>Section "InputClass"  
    Identifier  "calibration"
    MatchProduct    "stmpe-ts"
    Option  "Calibration"   "3932 82 141 3877"
    Option  "SwapAxes"  "1"
    Option "InvertX" "1"
    Option "InvertY" "1"
EndSection  
</code></pre>

<p>If your config does not contain <strong>InvertX</strong> or <strong>InvertY</strong> (<em>mine didn't</em>), you can add it manually to fix input inversion problems you may have.</p>

<p>Reboot (<code>reboot</code>), and enjoy your octoprint rig!.</p>

<hr>

<h3 id="myoctoprintcontroller">My Octoprint controller</h3>

<p>I mounted my octoprint controller to the shelving that I have my 3D printers on using double sided adhesive.  Overall I am very impressed with how simple octoprint is and how well it works with my Anet A8 3D printer.  </p>

<p><img src="https://projectable.me/content/images/2017/07/IMG_1557.jpg" alt="Raspberry Pi Touchscreen Octoprint Controller">
<img src="https://projectable.me/content/images/2017/07/IMG_1555.jpg" alt="Raspberry Pi Touchscreen Octoprint Controller">
<img src="https://projectable.me/content/images/2017/07/IMG_1556.jpg" alt="Raspberry Pi Touchscreen Octoprint Controller"></p>]]></content:encoded></item><item><title><![CDATA[My sim racing motion rig version 2]]></title><description><![CDATA[<p>I have really enjoyed having a motion simulator platform for sim racing. It's fairly close to real world racing, but costs a LOT less money, and there isn't that risk of serious injury, or death ☠️</p>

<p>I started down this path almost 3 years ago, and with the Oculus Rift bringing</p>]]></description><link>https://projectable.me/my-sim-racing-motion-rig-version-2/</link><guid isPermaLink="false">06d60ed2-010b-45b2-938c-c18947ea4c85</guid><category><![CDATA[Sim Racing]]></category><category><![CDATA[SimXperience]]></category><category><![CDATA[Motion Simulator]]></category><category><![CDATA[Oculus Rift]]></category><category><![CDATA[Assetto Corsa]]></category><category><![CDATA[Fanatec]]></category><category><![CDATA[Transducer]]></category><dc:creator><![CDATA[Daniel Chote]]></dc:creator><pubDate>Mon, 19 Jun 2017 17:18:00 GMT</pubDate><media:content url="http://projectable.me/content/images/2017/06/IMG_1248.jpg" medium="image"/><content:encoded><![CDATA[<img src="http://projectable.me/content/images/2017/06/IMG_1248.jpg" alt="My sim racing motion rig version 2"><p>I have really enjoyed having a motion simulator platform for sim racing. It's fairly close to real world racing, but costs a LOT less money, and there isn't that risk of serious injury, or death ☠️</p>

<p>I started down this path almost 3 years ago, and with the Oculus Rift bringing VR in to the picture, I am truly hooked.</p>

<p>Version 1 of the motion rig was thrown together using 80/20 extrusion that I already had, and it was pieced together without any real planning. One of the biggest drawbacks of version 1 was its inability to easily adjust for other drivers, especially my kids. There were a few other shortcomings: it was uncomfortable, it flexed and squeaked, the rear traction loss wasn't smooth, the rear speakers flopped around like crazy, and so on...</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_0349.jpg" alt="My sim racing motion rig version 2"></p>

<p>I decided to spend a little while thinking about how to best resolve the big issues, and turned to Fusion360 to design a quick mockup of the main features.</p>

<p align="center">  
<img src="https://projectable.me/content/images/2017/06/IMG_0607.JPG" alt="My sim racing motion rig version 2">
</p>

<p>The new design became the basis of what I ordered from <a href="https://8020.net">80/20 Inc</a>: Extrusion, linear movement components for the sliding top frame, and the hinges for the steering bracket.</p>

<p>Once the extrusion arrived, I quickly mocked up how everything would fit together and came up with an implementation plan.</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_0855.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0856.jpg" alt="My sim racing motion rig version 2"></p>

<p>Starting with the lower frame, I came up with a process of thread tapping, drilling, and milling to piece everything together.</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_0876.JPG" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0877.jpg" alt="My sim racing motion rig version 2"></p>

<p>Using a mill bit in my drill press, I was able to notch out the recesses so that the bolt heads sat flush to the edge of the extrusion.</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_0881.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0880.jpg" alt="My sim racing motion rig version 2"></p>

<p>This worked out nicely, although my drill press was a little too loose to provide the most accurate cutting. The drill shaft moved all over the place, leaving some of the recesses a little out of alignment.</p>

<p>Next was building the mid frame joint. The lower and mid frames were attached together using a GM wheel hub that I picked up on eBay for $20 shipped.</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_0879.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0886.jpg" alt="My sim racing motion rig version 2"></p>

<p>I designed this in Fusion360 and milled it using the CNC that I built.</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_0888.JPG" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0890.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0891.JPG" alt="My sim racing motion rig version 2"></p>

<p>Once that was done, I was able to thread tap the extrusion for the mid frame and pre-assemble it.</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_0892.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0894.jpg" alt="My sim racing motion rig version 2"></p>

<p>I then attached this section of the mid frame to the lower frame.  I used long threaded bolts so that I could adjust the height that the mid frame sat on the lower frame.</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_0895.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0897.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0900.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0902.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0903.jpg" alt="My sim racing motion rig version 2"></p>

<p>The top frame was then mocked up. The top frame sits on linear sliders to allow it to slide back and forward.  This was the biggest improvement over version 1.</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_0912.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0917.jpg" alt="My sim racing motion rig version 2"></p>

<p>There was a lot of drilling and thread tapping to get all the pieces of the top frame together.</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_0920.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0930.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0931.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0936.jpg" alt="My sim racing motion rig version 2"></p>

<p>I pieced together a seat mount using 80/20, rather than using the SimXperience DIY seat kit that I had for version 1. I did this so that I could get the seat sitting lower in the frame.</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_0941.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0946.jpg" alt="My sim racing motion rig version 2"></p>

<p>I found a great universal joint on eBay for $30. With this wing style U-Joint, I had a lot more flexibility with how I mounted things.  I had to make a quick and dirty jig to get the hole spacing correct as the holes ended up being right along the edge of an extrusion.</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_0944.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0947.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0949.jpg" alt="My sim racing motion rig version 2"></p>

<p>I also had to notch out part of the extrusion on the mid frame to allow the U-Joint bolts to sit down further at the extreme angles.</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_0950.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0951.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0952.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0953.jpg" alt="My sim racing motion rig version 2"></p>

<p>With the seat mounted, I then focused on the rear rollers for the traction loss mechanism. These rollers ultimately set the height of the mid frame from the lower frame.  I designed the brackets in Fusion360 and milled them on my CNC.</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_0988.jpg" alt="My sim racing motion rig version 2"></p>

<p>I used track rollers that I found on eBay. They were called LR200NPPU Track Roller Double Row Bearing Sealed 10x32x9 Track Bearings 18165. I got 4 for $20.</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_0986.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0992.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0993.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0994.jpg" alt="My sim racing motion rig version 2"></p>

<p>I then mounted them on the cross member of the mid frame.</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_0995.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0996.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_0997.jpg" alt="My sim racing motion rig version 2"></p>

<p>With the mid frame leveled, I went back to the seat to mount the actuator mount bracket. This was tricky. I had to notch and drill at an angle in the extrusion (98 degrees).</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_1007.jpg" alt="My sim racing motion rig version 2"></p>

<p>I then designed and fabricated some side support brackets to help relieve the 3 bolts that went into the base extrusion on the seat.</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_1011.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1012.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1013.jpg" alt="My sim racing motion rig version 2"></p>

<p>I had to design and fabricate end caps for the extrusion that would allow me to thread tap for the actuators. This was the thickest aluminum stock that I had milled on my CNC at the time. Everything went ok-ish... Mid job the x-axis coupler came loose and the CNC started to dig into the piece. I was able to stop it and recover the job without any major damage.</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_1015.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1016.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1020.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1023.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1027.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1028.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1029.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1032.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1033.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1034.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1035.jpg" alt="My sim racing motion rig version 2"></p>

<p>The rear traction loss actuator needed a pair of brackets. Again, designed in Fusion360, then milled on my CNC.</p>

<p align="center">  
<img src="https://projectable.me/content/images/2017/06/IMG_1044.JPG" alt="My sim racing motion rig version 2">
</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_1049.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1046.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1051.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1052.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1053.jpg" alt="My sim racing motion rig version 2"></p>

<p>I marked and drilled out the mounting plate for the steering wheel.  This was just a piece of stock that I purchased from <a href="https://8020.net">80/20 Inc</a>.</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_1037.jpg" alt="My sim racing motion rig version 2"></p>

<p>Then designed and milled the brackets for the steering height adjustment.</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_1055.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1056.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1060.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1061.jpg" alt="My sim racing motion rig version 2"></p>

<p>Mounting the shifter and handbrake was pretty straight forward. I was able to use 80/20 components for the shifter and I re-used the version 1 handbrake mount with slight modification.</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_1075.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1076.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1077.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1079.jpg" alt="My sim racing motion rig version 2"></p>

<p>The transducers mounted directly using 80/20 components.</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_1080.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1081.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1082.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1083.jpg" alt="My sim racing motion rig version 2"></p>

<p>The final finishing parts came in from <a href="https://8020.net">80/20 Inc</a>: some HDPE for the backend to roll on, plastic end caps, and cable management mounts.  I had to make a few minor adjustments to things, but in the end it all came together nicely!</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_1135.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1136-1.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1137.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1138.jpg" alt="My sim racing motion rig version 2"></p>

<p>Here is the first video of the new rig in action.  This is me playing Assetto Corsa in VR.</p>

<iframe width="560" height="315" src="https://www.youtube.com/embed/-HftO5CsJCQ" frameborder="0" allowfullscreen></iframe>

<hr>

<h4 id="update62520174pointracingharness">Update 6/25/2017: 4 point racing harness.</h4>

<p><img src="https://projectable.me/content/images/2017/06/IMG_1243.jpg" alt="My sim racing motion rig version 2"></p>

<p>I decided that I needed a racing harness to add to the realism in VR. The harness is mounted to the mid frame with some spring tensioning. When you brake, the seat moves forward, but the harness stays in place, so you feel as if you are being held back by the harness, as you would in a real car.  Its a really great experience.</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_1244.jpg" alt="My sim racing motion rig version 2">
<img src="https://projectable.me/content/images/2017/06/IMG_1247.jpg" alt="My sim racing motion rig version 2"></p>

<p>I CNCed a small bracket to mount the springs to the 80/20. The other side of the springs went on to the harness rear mounts, and the harness side mounts went directly on to the seat side brackets.</p>

<p><img src="https://projectable.me/content/images/2017/06/IMG_1246.jpg" alt="My sim racing motion rig version 2"></p>]]></content:encoded></item><item><title><![CDATA[I'm selling my crazy limited edition 16 million scoville "hot sauce"]]></title><description><![CDATA[<h3 id="thehistory">The History</h3>

<p>Back in the day we were all obsessed with hot sauces. We used to make everything super spicy. Chicken pot die (pie), blazing steak tips, hot ice cream, etc. Family life has tamed that expression, but I still enjoy hot sauces. <br>
I collected hot sauces to use in</p>]]></description><link>https://projectable.me/im-selling-my-crazy-limited-edition-16-million-scoville-hot-sauce/</link><guid isPermaLink="false">c53cb581-c96b-45bf-8fad-4a0433a1e2dd</guid><category><![CDATA[hot sauce]]></category><category><![CDATA[blair's]]></category><dc:creator><![CDATA[Daniel Chote]]></dc:creator><pubDate>Sat, 08 Apr 2017 13:29:39 GMT</pubDate><media:content url="http://projectable.me/content/images/2017/04/IMG_0541.JPG" medium="image"/><content:encoded><![CDATA[<h3 id="thehistory">The History</h3>

<img src="http://projectable.me/content/images/2017/04/IMG_0541.JPG" alt="I'm selling my crazy limited edition 16 million scoville "hot sauce""><p>Back in the day we were all obsessed with hot sauces. We used to make everything super spicy. Chicken pot die (pie), blazing steak tips, hot ice cream, etc. Family life has tamed that expression, but I still enjoy hot sauces. <br>
I collected hot sauces to use in cooking. Right when we were really getting in to collecting hot sauces Blair's released the <a href="https://www.hotsauce.com/Blair-s-16-Million-Reserve-Crystals-p/misc-blairs-16-million.htm">16M Reserve</a>, a limited edition run of 999 bottles of pure capsaicin. We ended up getting a LOT of bottles of it and it wasn't cheap.  We opened a couple but most of them were kept for the story, more than the purpose.  The Blair's 16M Reserve got recognized by the <a href="https://en.wikipedia.org/wiki/Blair%27s_Sauces_and_Snacks#16_Million_Reserve">Guinness Book of Records</a> which made the story even better!</p>

<h3 id="aboutmybottle">About my bottle</h3>

<p>My bottle has sat on my shelf in my office for all these years (more than 10) and I have finally decided to test the water and see if I can sell it for with a good return.  I did a lot of googling to see if anyone actually has it listed for sale but come up blank.  Lots of lore, not much in the way of recent activity.</p>

<p><img src="https://projectable.me/content/images/2017/04/IMG_0542.JPG" alt="I'm selling my crazy limited edition 16 million scoville "hot sauce"">
<img src="https://projectable.me/content/images/2017/04/IMG_0543.JPG" alt="I'm selling my crazy limited edition 16 million scoville "hot sauce""></p>

<p>As you can see the bottle is signed and numbered. Mine is <strong>746</strong>/999.  Overall it is in great condition, the only issues it has are in the outer plastic box which has a few age cracks in it.</p>

<p><img src="https://projectable.me/content/images/2017/04/IMG_0550.JPG" alt="I'm selling my crazy limited edition 16 million scoville "hot sauce""></p>

<p>This is an amazing piece of hot sauce history, there is a lot of lore about it on the internet. Sure, there are plenty of 16M capsaicin products out on the market now, but this was the <strong>FIRST</strong> one sold as a hot sauce product.</p>

<p><img src="https://projectable.me/content/images/2017/04/IMG_0546.JPG" alt="I'm selling my crazy limited edition 16 million scoville "hot sauce"">
<img src="https://projectable.me/content/images/2017/04/IMG_0547.JPG" alt="I'm selling my crazy limited edition 16 million scoville "hot sauce""></p>

<h3 id="hotsauceloreandhistory">Hot sauce lore and history</h3>

<p>This particular item has a lot of internet lore, a lot of people did crazy challenges with it when it first came out. As it was the first of its kind, it was recognized in the Guinness Book of Records.  There are a lot of funny reviews posted on the sites that used to sell it.</p>

<ul>
<li><a href="https://www.hotsauce.com/Blair-s-16-Million-Reserve-Crystals-p/misc-blairs-16-million.htm">https://www.hotsauce.com/Blair-s-16-Million-Reserve-Crystals-p/misc-blairs-16-million.htm</a></li>
<li><a href="http://uncrate.com/article/blairs-16-million-reserve/">http://uncrate.com/article/blairs-16-million-reserve/</a></li>
</ul>

<p>And a ton of reviews on hot sauce review sites:</p>

<ul>
<li><a href="http://www.thegreenhead.com/2007/07/blairs-16-million-reserve-worlds-hottest-hot-sauce.php">http://www.thegreenhead.com/2007/07/blairs-16-million-reserve-worlds-hottest-hot-sauce.php</a></li>
<li><a href="http://www.hotsauceblog.com/hotsaucearchives/blairs-16-million-product-review/">http://www.hotsauceblog.com/hotsaucearchives/blairs-16-million-product-review/</a></li>
<li><a href="http://didntyouhear.com/blairs-16-million-is-hot/">http://didntyouhear.com/blairs-16-million-is-hot/</a></li>
<li><a href="http://www.craveonline.com/mandatory/1067530-these-hottest-hot-sauces-will-burn-your-life-down">http://www.craveonline.com/mandatory/1067530-these-hottest-hot-sauces-will-burn-your-life-down</a></li>
</ul>

<p>It still sits at the top of hot sauce heat lists:</p>

<ul>
<li><a href="http://www.scottrobertsweb.com/scoville-scale/">http://www.scottrobertsweb.com/scoville-scale/</a></li>
<li><a href="http://www.chez-williams.com/Hot%20Sauce/hothome.htm">http://www.chez-williams.com/Hot%20Sauce/hothome.htm</a></li>
<li><a href="http://www.complex.com/pop-culture/2013/04/25-awesome-hot-sauces-that-every-man-needs-to-try/">http://www.complex.com/pop-culture/2013/04/25-awesome-hot-sauces-that-every-man-needs-to-try/</a></li>
</ul>

<p>And it even has news articles writen about it! </p>

<ul>
<li><a href="http://www.telegraph.co.uk/news/worldnews/northamerica/usa/1489595/This-chilli-is-so-hot-youd-have-to-drink-250000-gallons-of-water-just-to-put-out-the-fire.html">http://www.telegraph.co.uk/news/worldnews/northamerica/usa/1489595/This-chilli-is-so-hot-youd-have-to-drink-250000-gallons-of-water-just-to-put-out-the-fire.html</a></li>
</ul>

<h3 id="youtube">YouTube</h3>

<iframe width="560" height="315" src="https://www.youtube.com/embed/tHZ5TwcGcyQ" frameborder="0" allowfullscreen></iframe>

<h3 id="wrappingup">Wrapping up</h3>

<p>As you can see, Blair's 16M Reserve Crystals are a piece of Hot Sauce history.</p>

<h1 id="andisoldit">AND I SOLD IT!</h1>]]></content:encoded></item><item><title><![CDATA[MSI GTX 1050Ti 4G OC - The poor man's 1u inference GPU]]></title><description><![CDATA[<p>At <a href="http://brandyourself.com">BrandYourself</a>, we are diving deep in to Machine Learning to enhance some of our upcoming features.  The issue I have with the current ML battlefield is that cloud based GPU instances are still relatively new and very expensive.  When you start adding high availability requirements, as well as potential</p>]]></description><link>https://projectable.me/msi-gtx-1050ti-4g-oc-the-poor-mans-1u-inference-gpu/</link><guid isPermaLink="false">6095e4fc-3d34-4369-8db4-0811e2bcc3e6</guid><category><![CDATA[Machine Learning]]></category><category><![CDATA[GPU]]></category><category><![CDATA[Supermicro]]></category><category><![CDATA[Low Power Server]]></category><category><![CDATA[BrandYourself]]></category><dc:creator><![CDATA[Daniel Chote]]></dc:creator><pubDate>Thu, 06 Apr 2017 14:51:54 GMT</pubDate><media:content url="http://projectable.me/content/images/2017/04/IMG_0528.JPG" medium="image"/><content:encoded><![CDATA[<img src="http://projectable.me/content/images/2017/04/IMG_0528.JPG" alt="MSI GTX 1050Ti 4G OC - The poor man's 1u inference GPU"><p>At <a href="http://brandyourself.com">BrandYourself</a>, we are diving deep in to Machine Learning to enhance some of our upcoming features.  The issue I have with the current ML battlefield is that cloud based GPU instances are still relatively new and very expensive.  When you start adding high availability requirements, as well as potential concurrent load, it gets prohibitively expensive quickly.</p>

<h3 id="thesolution">The Solution</h3>

<p>I set out with the goal to build my own 1u low power server with an NVIDIA GPU.  I found a good low power server candidate from <a href="https://www.supermicro.com">Supermicro</a>, the  <a href="https://www.supermicro.com/products/system/1u/5018/sys-5018d-fn4t.cfm">5018D-FN4T</a> 8 core D-1541 Intel® Xeon® processor.  It has a 200W power supply and PCI-E 3.0 x16.  It's not the cheapest platform option, but it has great performance: m.2 for storage and a full x16 PCI-E 3.0 slot.</p>

<p>For the GPU it took a lot of looking at photos to determine a card that could be easily modified to fit in a 1u chassis and still maintain an adequate cooling solution.  With the launch of the GTX 1050Ti from NVIDIA, I was excited to see MSI launch a product that seemed like it may be my perfect fit. The <a href="https://www.msi.com/Graphics-card/GeForce-GTX-1050-Ti-4G-OC.html">GEFORCE® GTX 1050 TI 4G OC</a> is a bus powered (75W) 4G 10 series GPU with a stock cooler that has the heatsink fins running end to end on the card. <br>
4G of ram means we can run 4 workers on the card (our inference model footprint for image processing right now is ~850Mb) and still have a small buffer incase something grows. <br>
The 75W power consumption over the PCI bus means no extra power cables required and a lower expected running temperature. <br>
The stock heatsink on the card already has end to end fins, so we have the ability to place a 1u high RPM fan at the end of the card and maintain a decent level of airflow over the heatsink.</p>

<h3 id="makingitfit">Making it fit</h3>

<p><strong>WARNING: This WILL void your GPU's warranty...</strong> </p>

<p align="center">  
<img src="https://projectable.me/content/images/2017/04/IMG_0530.JPG" alt="MSI GTX 1050Ti 4G OC - The poor man's 1u inference GPU">
</p>  

<p>As you can see, the card is already pretty small and the DVI port is in the first row.  This means that we can easily cut the bracket and not make any physical modifications to the card itself (such as desoldering or brute force cutting of the DVI port).</p>

<p>Disassembling is very straight forward.</p>

<p><img src="https://projectable.me/content/images/2017/04/IMG_0505-1.JPG" alt="MSI GTX 1050Ti 4G OC - The poor man's 1u inference GPU"></p>

<p>The 4 heatsink screws on the back of the card need to be removed.</p>

<p><img src="https://projectable.me/content/images/2017/04/IMG_0506.JPG" alt="MSI GTX 1050Ti 4G OC - The poor man's 1u inference GPU"></p>

<p>Carefully disconnect the fan power connector and split apart. Avoid disturbing the heat transfer compound.</p>

<p><img src="https://projectable.me/content/images/2017/04/IMG_0507.JPG" alt="MSI GTX 1050Ti 4G OC - The poor man's 1u inference GPU"></p>

<p>There are 4 screws holding the fan shroud to the heatsink. Remove those.</p>

<p><img src="https://projectable.me/content/images/2017/04/IMG_0508.JPG" alt="MSI GTX 1050Ti 4G OC - The poor man's 1u inference GPU"></p>

<p>Place the heatsink back on (keeping the same orientation as before) and fasten in place with the original screws (the ones with the springs).</p>

<p><img src="https://projectable.me/content/images/2017/04/IMG_0509.JPG" alt="MSI GTX 1050Ti 4G OC - The poor man's 1u inference GPU">
<img src="https://projectable.me/content/images/2017/04/IMG_0510.JPG" alt="MSI GTX 1050Ti 4G OC - The poor man's 1u inference GPU"></p>

<p>Next, locate and remove the screws holding the mounting plate.</p>

<p><img src="https://projectable.me/content/images/2017/04/IMG_0511.JPG" alt="MSI GTX 1050Ti 4G OC - The poor man's 1u inference GPU">
<img src="https://projectable.me/content/images/2017/04/IMG_0512.JPG" alt="MSI GTX 1050Ti 4G OC - The poor man's 1u inference GPU"></p>

<p>As you can see, this card is very slim.</p>

<p><img src="https://projectable.me/content/images/2017/04/IMG_0513.JPG" alt="MSI GTX 1050Ti 4G OC - The poor man's 1u inference GPU">
<img src="https://projectable.me/content/images/2017/04/IMG_0515.JPG" alt="MSI GTX 1050Ti 4G OC - The poor man's 1u inference GPU"></p>

<p>With a pair of pliers, carefully straighten the board mounting support so that the plate will sit flush on a surface.</p>

<p><img src="https://projectable.me/content/images/2017/04/IMG_0516.JPG" alt="MSI GTX 1050Ti 4G OC - The poor man's 1u inference GPU">
<img src="https://projectable.me/content/images/2017/04/IMG_0517.JPG" alt="MSI GTX 1050Ti 4G OC - The poor man's 1u inference GPU"></p>

<p>Apply some masking tape and draw your cutting line.  Single slot plates are typically 18mm wide.</p>

<p><img src="https://projectable.me/content/images/2017/04/IMG_0518.JPG" alt="MSI GTX 1050Ti 4G OC - The poor man's 1u inference GPU"></p>

<p>While using appropriate safety equipment, cut along your line using a bandsaw (a hacksaw would probably work, too).</p>

<p><img src="https://projectable.me/content/images/2017/04/IMG_0519.JPG" alt="MSI GTX 1050Ti 4G OC - The poor man's 1u inference GPU"></p>

<p>File off the sharp edges.</p>

<p><img src="https://projectable.me/content/images/2017/04/IMG_0520.JPG" alt="MSI GTX 1050Ti 4G OC - The poor man's 1u inference GPU"></p>

<p>Hooray, we have a single slot mounting plate!</p>

<p><img src="https://projectable.me/content/images/2017/04/IMG_0521.JPG" alt="MSI GTX 1050Ti 4G OC - The poor man's 1u inference GPU"></p>

<p>Bend back the board mounting support.</p>

<p><img src="https://projectable.me/content/images/2017/04/IMG_0522.JPG" alt="MSI GTX 1050Ti 4G OC - The poor man's 1u inference GPU">
<img src="https://projectable.me/content/images/2017/04/IMG_0523.JPG" alt="MSI GTX 1050Ti 4G OC - The poor man's 1u inference GPU"></p>

<p>Now we have a low profile GPU, without heavy modification or destruction of the PCB/components!</p>

<p><img src="https://projectable.me/content/images/2017/04/IMG_0525.JPG" alt="MSI GTX 1050Ti 4G OC - The poor man's 1u inference GPU">
<img src="https://projectable.me/content/images/2017/04/IMG_0526.JPG" alt="MSI GTX 1050Ti 4G OC - The poor man's 1u inference GPU">
<img src="https://projectable.me/content/images/2017/04/IMG_0527.JPG" alt="MSI GTX 1050Ti 4G OC - The poor man's 1u inference GPU"></p>

<p>As you can see, it mounts nicely inside this 1u chassis, and a 1u high RPM fan can be placed behind it.  I mount the fan in place with some high strength double sided tape.</p>

<p><img src="https://projectable.me/content/images/2017/04/Screen-Shot-2017-03-08-at-2-27-00-PM.png" alt="MSI GTX 1050Ti 4G OC - The poor man's 1u inference GPU"></p>

<p>The GPU runs perfectly on ubuntu with the latest NVIDIA linux drivers and latest CUDA and CUDNN libraries.  If you have any questions, drop me a comment below or tweet at me on twitter <a href="https://twitter.com/dchote">@dchote</a>.</p>]]></content:encoded></item><item><title><![CDATA[Entry in to VR Sim Racing]]></title><description><![CDATA[<p>I am now starting to explore VR Sim Racing with an Oculus Rift!  I went with the Rift over the HTC Vive purely out of native support in the games I play.</p>

<p>After much headache in upgrading from Windows 7 to Windows 10, getting the Rift working on my system</p>]]></description><link>https://projectable.me/entry-in-to-vr-sim-racing/</link><guid isPermaLink="false">06366d5d-8873-4e01-8dbc-e8efb5fd6507</guid><category><![CDATA[Sim Racing]]></category><category><![CDATA[SimXperience]]></category><category><![CDATA[Motion Simulator]]></category><category><![CDATA[Assetto Corsa]]></category><category><![CDATA[Oculus Rift]]></category><dc:creator><![CDATA[Daniel Chote]]></dc:creator><pubDate>Fri, 31 Mar 2017 14:24:39 GMT</pubDate><media:content url="http://projectable.me/content/images/2017/03/IMG_0381.JPG" medium="image"/><content:encoded><![CDATA[<img src="http://projectable.me/content/images/2017/03/IMG_0381.JPG" alt="Entry in to VR Sim Racing"><p>I am now starting to explore VR Sim Racing with an Oculus Rift!  I went with the Rift over the HTC Vive purely out of native support in the games I play.</p>

<p>After much headache in upgrading from Windows 7 to Windows 10, getting the Rift working on my system took quite a lot of messing with the sensors on different USB ports. This was a rather frustrating experience, as one of the two sensors would keep going in to error state, but it wasn't obvious as to which sensor that was, so I kept having to unplug both. </p>

<p><img src="https://projectable.me/content/images/2017/03/IMG_0374.JPG" alt="Entry in to VR Sim Racing"></p>

<p>I mounted the sensors above my speakers on the front wall, and ran 15ft active USB extensions for each sensor. </p>

<p><img src="https://projectable.me/content/images/2017/03/IMG_0375-1.JPG" alt="Entry in to VR Sim Racing">
<img src="https://projectable.me/content/images/2017/03/IMG_0376.JPG" alt="Entry in to VR Sim Racing"></p>

<p>Each sensor is connected to a different USB port group directly on the motherboard.  I found that the ASMedia 3.0 ports did not work at all for any of the Rift components.</p>

<p>I eventually got it fairly stable, one of the sensors will occasionally error out with a very unhelpful error message.  But it is not a frequent thing.</p>

<p><img src="https://projectable.me/content/images/2017/03/IMG_0377-1.JPG" alt="Entry in to VR Sim Racing"></p>

<p>So far I have only played Assetto Corsa in VR. Its amazingly immersive. Wearing the Rift headset kinda feels like wearing a helmet, and the limited FOV plays in to that helmet feel, making it feel really natural.  Being seated also helps with the immersion, you don't have weird room scale issues to deal with.</p>

<p>My wife attempted driving in VR, she tapped out in less than 2 minutes... She got really nauseous really quickly.  I on the other-hand, having the DK1 back in the day, could easily wear the CV1 all day long without any problems.</p>

<iframe width="560" height="315" src="https://www.youtube.com/embed/qby0-3SSgtc" frameborder="0" allowfullscreen></iframe>]]></content:encoded></item><item><title><![CDATA[Status Update March 23 2017]]></title><description><![CDATA[<p>It has been a while since my last blog post, so I decided I better post something about what has been happening in my busy life!</p>

<h4 id="ihaveacnc">I have a CNC!</h4>

<p>I finished my 6040 CNC build and a blog post will come eventually... </p>

<p><img src="https://projectable.me/content/images/2017/03/IMG_9981.JPG" alt="" title=""> 
<img src="https://projectable.me/content/images/2017/03/IMG_9982.JPG" alt=""></p>

<p>Its a chinese 6040 CNC frame, controlled</p>]]></description><link>https://projectable.me/status-update-20170323/</link><guid isPermaLink="false">53663b33-57bb-4747-b7e1-af5cf8139060</guid><dc:creator><![CDATA[Daniel Chote]]></dc:creator><pubDate>Thu, 23 Mar 2017 13:21:08 GMT</pubDate><content:encoded><![CDATA[<p>It has been a while since my last blog post, so I decided I better post something about what has been happening in my busy life!</p>

<h4 id="ihaveacnc">I have a CNC!</h4>

<p>I finished my 6040 CNC build and a blog post will come eventually... </p>

<p><img src="https://projectable.me/content/images/2017/03/IMG_9981.JPG" alt="" title=""> 
<img src="https://projectable.me/content/images/2017/03/IMG_9982.JPG" alt=""></p>

<p>Its a chinese 6040 CNC frame, controlled by a TinyG V8 and a Raspberry Pi 3, connected to a Dell 21.5" capacitive touch screen.  I am using <a href="http://chilipeppr.com/dchote">ChiliPeppr</a> as the control interface, and it works beautifully.  When I get the time and motivation, I work on enhancing ChiliPeppr on the Raspberry Pi. I am almost done with a cleanup of the <a href="https://github.com/dchote/widget-3dviewer">3D viewer</a>, and my next project will be optimizing loading large gcode files.</p>

<h4 id="iambuildingmyown3dprinter">I am building my own 3D Printer!</h4>

<p>I started getting 3D printer envy with the release of the Prusa i3 mk2, so I decided to look at some of the open hardware large 3D printer projects. I came across the <a href="http://bigbox-3d.com">e3d BigBox</a>, and then found the <a href="https://folgertech.com/collections/3d-printer-full-kits/products/folger-tech-ft-5-large-scale-3d-printer-kit">Folger Tech FT-5</a>. I read a LOT about both of them, and decided to build something in between.</p>

<p><img src="https://projectable.me/content/images/2017/03/IMG_0343.JPG" alt="">
<img src="https://projectable.me/content/images/2017/03/IMG_0351.JPG" alt=""></p>

<p>I am using 2020 extrusion for the frame, and then designing the parts in Fusion 360 for milling on my newly built CNC. </p>

<p><img src="https://projectable.me/content/images/2017/03/IMG_0352.JPG" alt="">
<img src="https://projectable.me/content/images/2017/03/IMG_0353.JPG" alt=""></p>

<p>I am going to be using a <a href="https://www.duet3d.com">Duet Wifi</a> for the controller, along with a <a href="https://www.filastruder.com/collections/electronics/products/paneldue?variant=16552844420">7" LCD</a>. For the hotend and extruder I will be using a <a href="http://e3d-online.com/E3D-v6/Full-Kit/v6-175-24v">24v e3d V6 hotend</a> and <a href="http://e3d-online.com/Titan-Extruder">e3d Titan extruder</a>. I purchased all these components from the wonderful people at <a href="https://www.filastruder.com">Filastruder</a>.</p>

<h4 id="mymonopriceselectmini3d">My Monoprice Select Mini 3D</h4>

<p>I love this little printer, for the price its an amazing piece of kit. But, it does jam a lot...</p>

<p><img src="https://projectable.me/content/images/2017/03/IMG_0346.JPG" alt=""></p>

<p>It has been sitting like this for a few months now ☹️</p>

<h4 id="savingpower">Saving power</h4>

<p>I have long been an advocate for hosting my websites and email on my own server on my own property, for lots of obvious reasons. However, it was time to start saving some money, so I moved my email hosting over to google (sigh), and my websites all over to <a href="https://www.linode.com/?r=a07cf191b1f9914a1a081feffcf9845f846b5f4d">Linode</a>. </p>

<p><img src="https://projectable.me/content/images/2017/03/IMG_0345-1.JPG" alt=""></p>

<p>My server is now powered off, and I am in the process of moving to a slightly lower power router.</p>

<p><img src="https://projectable.me/content/images/2017/03/IMG_0344.JPG" alt=""></p>

<h4 id="planetariumprojectorupdate">Planetarium Projector Update</h4>

<p>I received a comment on my planetarium projector blog post regarding laser pico projector usage coupled with iPhone wide angle lenses. I didn't want to spend the money on a laser pico projector, so just got an LED one to play with.</p>

<p><img src="https://projectable.me/content/images/2017/03/IMG_0347.JPG" alt=""></p>

<p>I haven't put much time in to this yet, but with a few of the lenses I already had I was able to short-throw the image on the ceiling at about 8 feet wide. This pico projector is also higher resolution than the 800x480 5" panel I was using.</p>

<h4 id="raspberrypitelepresenceproject">Raspberry Pi Telepresence project</h4>

<p>Im experimenting with using Raspberry Pis, FPV headsets, and brushless gimbals to create a telepresence robot with head tracking. Keep tuned!</p>

<p><img src="https://projectable.me/content/images/2017/03/IMG_0348.JPG" alt=""></p>

<h4 id="simracingupdates">Sim Racing Updates</h4>

<p>I have made a LOT of improvements in the sim racing department. Upgraded my gaming PC, its now running a GTX1080. I have an Oculus Rift arriving at the end of this week.  Lots of tuning within <a href="http://simxperience.com">SimXperience</a> Sim Commander for Assetto Corsa. </p>

<p><img src="https://projectable.me/content/images/2017/03/IMG_0349.JPG" alt=""></p>

<p>And LOTS of tweaking and tuning of Assetto Corsa to make it feel super realistic.</p>

<p><img src="https://projectable.me/content/images/2017/03/16903498_10155020967585419_5657348990651422092_o.jpg" alt=""></p>

<h4 id="igotapapercutter">I got a Paper Cutter!</h4>

<p>I got myself a <a href="https://home.cricut.com">Cricut Explore Air</a>, its a device that will cut, score, and write on paper, card stock, vinyl, and fabric.</p>

<p><img src="https://projectable.me/content/images/2017/03/IMG_0350.JPG" alt=""></p>

<p>Its an amazing little device, Ive used it quite a lot. I even used it to make party decorations for my son's 6th birthday party.</p>

<p><img src="https://projectable.me/content/images/2017/03/17017190_10155039723545419_3284395081070453038_o.jpg" alt=""></p>

<h4 id="wrappingupthepost">Wrapping up the post</h4>

<p>So yeah, lots going on, and lots in the pipeline!  <a href="https://twitter.com/dchote/">Follow me on twitter for more up to date ramblings</a>!</p>]]></content:encoded></item><item><title><![CDATA[Razor Dirt Quad Project]]></title><description><![CDATA[<p><em>This project was completed a few months ago, I had been meaning to piece together a blog post but I've been a little pre-occupied.</em></p>

<h3 id="theminiquad">The Mini Quad</h3>

<p><img src="https://projectable.me/content/images/2016/10/IMG_8355.jpeg" alt=""></p>

<p>I happened across this <a href="https://www.razor.com/products/dirt/dirt-quad/">Razor Dirt Quad</a> while driving my kids to daycare one morning, I drove them in to town hoping that</p>]]></description><link>https://projectable.me/razor-dirt-quad-project/</link><guid isPermaLink="false">555c5936-c98b-42e7-822f-4ef257337f5b</guid><category><![CDATA[quad]]></category><category><![CDATA[razor]]></category><category><![CDATA[refurbish]]></category><dc:creator><![CDATA[Daniel Chote]]></dc:creator><pubDate>Fri, 07 Oct 2016 15:03:24 GMT</pubDate><media:content url="http://projectable.me/content/images/2016/10/IMG_8406.JPG" medium="image"/><content:encoded><![CDATA[<img src="http://projectable.me/content/images/2016/10/IMG_8406.JPG" alt="Razor Dirt Quad Project"><p><em>This project was completed a few months ago, I had been meaning to piece together a blog post but I've been a little pre-occupied.</em></p>

<h3 id="theminiquad">The Mini Quad</h3>

<p><img src="https://projectable.me/content/images/2016/10/IMG_8355.jpeg" alt="Razor Dirt Quad Project"></p>

<p>I happened across this <a href="https://www.razor.com/products/dirt/dirt-quad/">Razor Dirt Quad</a> while driving my kids to daycare one morning, I drove them in to town hoping that it was still going to be there on my way back. Much to my delight it was! It's a heavy little thing, but easily fit in the back of my Toyota Highlander.</p>

<p>At first inspection there didn't seem like there could be much wrong with it. The batteries seemed dead, the charger port was hanging loose, there wasn't a charger, and it was missing a few small pieces.</p>

<hr>

<h3 id="strippingitdown">Stripping it down</h3>

<p><img src="https://projectable.me/content/images/2016/10/IMG_8358.JPG" alt="Razor Dirt Quad Project">
<img src="https://projectable.me/content/images/2016/10/IMG_8359.JPG" alt="Razor Dirt Quad Project">
<img src="https://projectable.me/content/images/2016/10/IMG_8360.JPG" alt="Razor Dirt Quad Project"></p>

<p>This thing is super simple, a pair of 12v batteries in series to give 24v, a Chinese ESC (electronic speed controller), 350W brushed motor with gearbox, single disc break on the rear, and droop travel rear suspension with a coil shock.</p>

<p>My guess is this was initially a bold red, but it had sun-faded to a perfect pink (<em>ugh</em>), also the prior owners had painted one of the foot rests with green paint. Re-painting and paint stripping was on my todo list. <em>I later realized that the house next door to where picked this up from also had a mini quad, so they probably put the paint on it to distinguish one from the other.</em></p>

<p>With it all dissasembled, I gave everything a good cleaning.</p>

<p><img src="https://projectable.me/content/images/2016/10/IMG_8366.JPG" alt="Razor Dirt Quad Project">
<img src="https://projectable.me/content/images/2016/10/IMG_8365.JPG" alt="Razor Dirt Quad Project">
<img src="https://projectable.me/content/images/2016/10/IMG_8367.JPG" alt="Razor Dirt Quad Project">
<img src="https://projectable.me/content/images/2016/10/IMG_8368.JPG" alt="Razor Dirt Quad Project"></p>

<p>Then I started in on removing the paint from the foot rest.  I came across a few forum posts that suggested using brake fluid.</p>

<p><img src="https://projectable.me/content/images/2016/10/IMG_8369.JPG" alt="Razor Dirt Quad Project"></p>

<p>With a combination of soaking in brake fluid for 2 days, a wire brush and then finally some light sanding, it was free from the crappy green paint job.</p>

<p>The decals came off fairly easily when using a heat gun and putty knife.</p>

<p><img src="https://projectable.me/content/images/2016/10/IMG_8371.JPG" alt="Razor Dirt Quad Project">
<img src="https://projectable.me/content/images/2016/10/IMG_8372.JPG" alt="Razor Dirt Quad Project"></p>

<p>But <strong>eww</strong> that PINK.... it was bad. Next up was paint prep. I sanded first with some 150 and then finished up with some 320.</p>

<p><img src="https://projectable.me/content/images/2016/10/IMG_8373.JPG" alt="Razor Dirt Quad Project">
<img src="https://projectable.me/content/images/2016/10/IMG_8374.JPG" alt="Razor Dirt Quad Project"></p>

<p>For paint I used Rust-Oleum Universal Metallic Paint &amp; Primer in Carbon Mist. I did 2 coats and sanded between coats.</p>

<p><img src="https://projectable.me/content/images/2016/10/IMG_8375.JPG" alt="Razor Dirt Quad Project">
<img src="https://projectable.me/content/images/2016/10/IMG_8380.JPG" alt="Razor Dirt Quad Project">
<img src="https://projectable.me/content/images/2016/10/IMG_8381.JPG" alt="Razor Dirt Quad Project"></p>

<p>In the end the finish came our perfect, way better than I had anticipated.</p>

<hr>

<h3 id="reassembly">Reassembly</h3>

<p>Soldering the battery leads on was straight forward, the batteries are wired in series with a fuse and a handy connector to plug in to the ESC. I used some heat-shrink on the battery terminals to give it a tidy finish.</p>

<p><img src="https://projectable.me/content/images/2016/10/IMG_8395.JPG" alt="Razor Dirt Quad Project">
<img src="https://projectable.me/content/images/2016/10/IMG_8396-1.JPG" alt="Razor Dirt Quad Project">
<img src="https://projectable.me/content/images/2016/10/IMG_8397-1.JPG" alt="Razor Dirt Quad Project"></p>

<p>I cleaned everything down with acetone before re-assembly, and applied some rust inhibitor to some of the worn places. I then mounted the new batteries and put the ESC back in place, I routed the wiring cleanly and used zip-ties to fasten them to the chassis.</p>

<p><img src="https://projectable.me/content/images/2016/10/IMG_8398.JPG" alt="Razor Dirt Quad Project">
<img src="https://projectable.me/content/images/2016/10/IMG_8400.JPG" alt="Razor Dirt Quad Project"></p>

<hr>

<h3 id="conclusion">Conclusion</h3>

<p>This mini quad is a perfect exercise in <strong>K</strong>eep <strong>I</strong>t <strong>S</strong>imple <strong>S</strong>tupid. Razor build a solid foundation, kept the components as simple as possible, and also made it somewhat maintainable.  Parts are readily available from a number of sources online, and even from Razor directly.  All up I spent about $70 in replacement parts and paint.</p>

<p><img src="https://projectable.me/content/images/2016/10/IMG_8401.JPG" alt="Razor Dirt Quad Project">
<img src="https://projectable.me/content/images/2016/10/IMG_8404.JPG" alt="Razor Dirt Quad Project">
<img src="https://projectable.me/content/images/2016/10/IMG_8405.JPG" alt="Razor Dirt Quad Project">
<img src="https://projectable.me/content/images/2016/10/IMG_8407.JPG" alt="Razor Dirt Quad Project"></p>

<p>My son LOVES it, our property backs on to state game lands with about 12 miles of trails. This was his first time out on something like this, but he was very confident and had a great time!</p>

<p><img src="https://projectable.me/content/images/2016/10/IMG_8441.JPG" alt="Razor Dirt Quad Project"></p>]]></content:encoded></item><item><title><![CDATA[Optimize my pi wi fi]]></title><description><![CDATA[<h2 id="raspberrypiwifionenterprisewifihardware">Raspberry Pi wifi on enterprise wifi hardware</h2>

<p>I've been poking around to get stable wifi with my raspberry pi devices on my Aruba Networks wireless network.  My network is far from a typical house solution. I have a rack, a server, Juniper router, Juniper switch, and an Aruba Networks wifi</p>]]></description><link>https://projectable.me/optimize-my-pi-wi-fi/</link><guid isPermaLink="false">c5fccd69-e222-4139-b668-c3836d5a3c24</guid><category><![CDATA[Raspberry Pi]]></category><category><![CDATA[WIFI]]></category><dc:creator><![CDATA[Daniel Chote]]></dc:creator><pubDate>Sat, 10 Sep 2016 18:21:53 GMT</pubDate><media:content url="http://projectable.me/content/images/2016/09/IMG_8992.JPG" medium="image"/><content:encoded><![CDATA[<h2 id="raspberrypiwifionenterprisewifihardware">Raspberry Pi wifi on enterprise wifi hardware</h2>

<img src="http://projectable.me/content/images/2016/09/IMG_8992.JPG" alt="Optimize my pi wi fi"><p>I've been poking around to get stable wifi with my raspberry pi devices on my Aruba Networks wireless network.  My network is far from a typical house solution. I have a rack, a server, Juniper router, Juniper switch, and an Aruba Networks wifi controller, with an access point on each floor of our house.  </p>

<p>Having multiple access points all broadcast the same SSID seems to have uncovered an issue with the Raspberry Pi 3's Broadcom brcmfmac firmware/kernel module.  </p>

<p>The issue I was experiencing was that the wifi would constantly connect/disconnect, then eventually loose connectivity entirely. I ended up using a 8192cu based USB adapter to overcome the issue. However, with a little poking around, I think I have solved the issue, thanks to a suggestion from <a href="https://twitter.com/ukscone/status/774412941873512449">@ukscone</a>. </p>

<p>I looked at the module options for the brcmfmac kernel module:</p>

<p><code>systool -a -v -m brcmfmac</code></p>

<pre><code>Module = "brcmfmac"

  Attributes:
    coresize            = "186343"
    initsize            = "0"
    initstate           = "live"
    refcnt              = "0"
    srcversion          = "B33E7691EAF20C9A34D6807"
    taint               = ""
    uevent              = &lt;store method only&gt;

  Parameters:
    alternative_fw_path = 
    debug               = "0"
    fcmode              = "0"
    roamoff             = "1"

  Sections:
    .ARM.exidx.exit.text= "0x7f2ee574"
    .ARM.exidx.init.text= "0x7f2ee550"
    .ARM.exidx          = "0x7f2ef6d4"
    .ARM.extab.exit.text= "0x7f2ee568"
    .ARM.extab          = "0x7f2ee57c"
    .ARM.extab.init.text= "0x7f2ee52c"
    .alt.smp.init       = "0x7f2ee504"
    .bss                = "0x7f2f1140"
    .data               = "0x7f2f0264"
    .data.unlikely      = "0x7f2f0f28"
    .exit.text          = "0x7f2e6de0"
    .gnu.linkonce.this_module= "0x7f2f0f40"
    .init.text          = "0x7f306000"
    .note.gnu.build-id  = "0x7f2e6e04"
    .rodata.str         = "0x7f2e86e0"
    .rodata             = "0x7f2e6e28"
    .rodata.str1.4      = "0x7f2e8c9c"
    .strtab             = "0x7f30e17c"
    .symtab             = "0x7f30609c"
    .text               = "0x7f2c9000"
    __bug_table         = "0x7f2e8ab0"
    __mcount_loc        = "0x7f2edf3c"
    __param             = "0x7f2edeb0"
</code></pre>

<p>Not a lot to run on compared to the HUGE amount that the 8192cu module has, but there was the one for roamoff, so I tried setting that and surprisingly it seems to have resolved the issues on my wifi network!</p>

<hr>

<h3 id="turnofffirmwareroamingsupport">Turn off firmware roaming support</h3>

<p>Create <code>/etc/modprobe.d/brcmfmac.conf</code> and add the following:  </p>

<pre><code>options brcmfmac roamoff=1  
</code></pre>

<p>For the sake of compliance, I also edited <code>/etc/default/crda</code> and set <code>REGDOMAIN</code> to <strong>US</strong> (my wifi equipment is set for <strong>US</strong>; you would set this to your country code)</p>

<pre><code>REGDOMAIN=US  
</code></pre>

<p>In addition to applying the module config, I suggest disabling power save and bluetooth if you don't need it.</p>

<hr>

<h3 id="disablewifipowersavingmode">Disable wifi power saving mode</h3>

<p>Edit <code>/etc/network/interfaces</code> and add <code>up iw wlan0 set power_save off</code> to your wlan0 definition:</p>

<pre><code>allow-hotplug wlan0  
iface wlan0 inet manual  
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
    up iw wlan0 set power_save off
</code></pre>

<hr>

<h3 id="disableraspberrypi3sbluetooth">Disable Raspberry Pi 3's bluetooth</h3>

<p>Edit <code>/boot/config.txt</code> and append <code>dtoverlay=pi3-disable-bt</code> to the end of the file. </p>

<p>Then as root (<code>sudo -i</code>) disable the bluetooth services:</p>

<pre><code>systemctl disable bluetooth.service  
systemctl disable hciuart.service  
</code></pre>

<hr>

<h3 id="my8192cuusbconfig">My 8192cu USB config</h3>

<p>I'm including this here as a resource also. I found that the 8192cu connectivity to my Aruba Networks wifi was also very spotty until I did the following.</p>

<p>Create <code>/etc/modprobe.d/8192cu.conf</code> and add the following:</p>

<pre><code>options 8192cu rtw_power_mgnt=0 rtw_enusbss=0  
</code></pre>

<hr>

<h3 id="myr8188euhubpiwiconfig">My r8188eu (HubPiWi) config</h3>

<p>Same as the 8192cu, to ensure reliable a consistent wifi connection, we do the following.</p>

<p>Create <code>/etc/modprobe.d/r8188eu.conf</code> and add the following:</p>

<pre><code>options r8188eu rtw_power_mgnt=0 rtw_enusbss=0  
</code></pre>]]></content:encoded></item><item><title><![CDATA[I built a wifi "walkie" talkie for my kids; now you can too!]]></title><description><![CDATA[<h2 id="introducingtalkiepihttpsgithubcomdchotetalkiepi">Introducing <a href="https://github.com/dchote/talkiepi">talkiepi</a></h2>

<p><a href="https://github.com/dchote/talkiepi">talkiepi</a> is a wifi "walkie" talkie for your kids and their friends. It provides a very simple "push to talk" interface. When you push the button and talk, all the other talkiepis in the channel will hear what is being said. </p>

<p>talkiepi uses <a href="http://mumble.info">Mumble</a> for its voice communication</p>]]></description><link>https://projectable.me/i-built-a-wifi-walkie-talkie-for-my-kids-now-you-can-too/</link><guid isPermaLink="false">d0120952-6549-48da-8ec4-191c5684dca6</guid><category><![CDATA[Raspberry Pi]]></category><category><![CDATA[talkiepi]]></category><category><![CDATA[golang]]></category><dc:creator><![CDATA[Daniel Chote]]></dc:creator><pubDate>Fri, 02 Sep 2016 16:13:39 GMT</pubDate><media:content url="http://projectable.me/content/images/2016/09/IMG_8925-1.JPG" medium="image"/><content:encoded><![CDATA[<h2 id="introducingtalkiepihttpsgithubcomdchotetalkiepi">Introducing <a href="https://github.com/dchote/talkiepi">talkiepi</a></h2>

<img src="http://projectable.me/content/images/2016/09/IMG_8925-1.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!"><p><a href="https://github.com/dchote/talkiepi">talkiepi</a> is a wifi "walkie" talkie for your kids and their friends. It provides a very simple "push to talk" interface. When you push the button and talk, all the other talkiepis in the channel will hear what is being said. </p>

<p>talkiepi uses <a href="http://mumble.info">Mumble</a> for its voice communication protocol. Mumble is an open source, lightweight, high quality voice chat system designed for use by PC gamers. Mumble lent itself perfectly for this use case. There are already software clients for all platforms (Mac, Win, Linux, IOS, Android), meaning you can talk with your talkiepi using your phone or computer, and you're not limited to just talkiepi devices! By utilizing Mumble channels, user registration, and access control lists, you can configure different groups of talkiepis, just like using different channels on a traditional walkie talkie.</p>

<p><a href="https://github.com/dchote/talkiepi">talkiepi</a> is built utilizing a <a href="https://www.raspberrypi.org/products/raspberry-pi-3-model-b/">Raspberry Pi</a>, <a href="https://www.amazon.com/USRobotics-USB-Internet-Speakerphone-USR9610/dp/B000E6IL10">USB speakerphone</a>, some basic electronic components, and a 3D printed enclosure. <a href="https://github.com/dchote/talkiepi">talkiepi</a> runs a <a href="http://mumble.info">mumble</a> <a href="https://github.com/dchote/talkiepi">client</a> that has been designed specifically for push to talk via the push button interface. After it is setup on your wifi network and the software is configured, talkiepi will require little to no maintenance to use.</p>

<hr>

<h3 id="talkiepisoftwareonyourraspberrypi">talkiepi software on your Raspberry Pi</h3>

<p>I have written an overview of the software and hardware interface at the <a href="https://github.com/dchote/talkiepi">github repository for talkiepi</a>. An install guide can be found at <a href="https://github.com/dchote/talkiepi/blob/master/doc/README.md">https://github.com/dchote/talkiepi/blob/master/doc/README.md</a>, which will step you through installing talkiepi on your Raspberry Pi.  </p>

<p><em>On September 10th there was a pull request against the go-openal library that broke things on Raspbian Jessie, I have since forked the library and reverted the changes. talkiepi now uses my fork of the library and should now build again</em></p>

<p>I have added some notes regarding my wifi trouble on the rpi3 <a href="http://projectable.me/optimize-my-pi-wi-fi/">here</a>.</p>

<hr>

<h3 id="buildingatalkiepi">Building a talkiepi</h3>

<h5 id="buildwithoutanenclosure">Build without an enclosure:</h5>

<p>You can assemble a talkiepi with or without the 3D printed enclosure. I initially prototyped the GPIO stuff on a breadboard, and that would be more than sufficient to play with if you didn't want to commit to a full build.</p>

<p><img src="https://projectable.me/content/images/2016/09/IMG_8844.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!"></p>

<h5 id="printanenclosure">Print an enclosure:</h5>

<p>If you want to do a full build of talkiepi you can download the 3D models from the <a href="https://github.com/dchote/talkiepi/tree/master/stl">github repository</a>.  I printed my parts on my <a href="http://www.monoprice.com/product?p_id=15365">Monoprice Select Mini 3D Printer</a>. I printed in PLA with 100% infill. You <em>will</em> need to rotate the models to print, but if you already have a 3D printer, you probably know what you need to do. If you don't own a 3D printer yet, there are many services that will print and mail you your parts! </p>

<p>I designed the talkiepi enclosure in Autodesk's <a href="http://www.autodesk.com/products/fusion-360/overview">Fusion360</a>. If anyone would like to tweak the Fusion360 assembly, drop me a tweet <a href="https://http://twitter.com/dchote/">@dchote</a> #talkiepi.</p>

<p><img src="https://projectable.me/content/images/2016/09/14195449_10154470917845419_4831834876665870570_o.jpg" alt="I built a wifi "walkie" talkie for my kids; now you can too!"></p>

<p><img src="https://projectable.me/content/images/2016/09/IMG_8946-1.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!">
<img src="https://projectable.me/content/images/2016/09/IMG_8947.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!">
<img src="https://projectable.me/content/images/2016/09/IMG_8939.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!"></p>

<hr>

<h3 id="talkiepiparts">talkiepi parts</h3>

<p>I ordered most of these components from <a href="https://www.adafruit.com">Adafruit</a>, and a couple of parts from <a href="https://www.amazon.com">Amazon.com</a>. I already had the hookup wire, heat-shrink and resistors.</p>

<p><img src="https://projectable.me/content/images/2016/09/IMG_8933.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!"></p>

<ul>
<li><a href="https://www.adafruit.com/products/3055">Raspberry Pi 3 Model B ~$35</a></li>
<li><a href="https://www.amazon.com/SanDisk-Ultra-Micro-Adapter-SDSQUNC-016G-GN6MA/dp/B010Q57SEE/ref=sr_1_3?ie=UTF8&amp;qid=1472828023&amp;sr=8-3&amp;keywords=16G+micro+sd+card">Micro SD Card</a></li>
<li><a href="https://www.amazon.com/USRobotics-USB-Internet-Speakerphone-USR9610/dp/B000E6IL10/ref=sr_1_2?ie=UTF8&amp;qid=1472828042&amp;sr=8-2&amp;keywords=US+Robotics+usb+speakerphone">US Robotics USB Speakerphone (USR9610) between $4 and $12 (really cheap)</a></li>
<li><a href="https://www.amazon.com/gp/product/B01CXT43MQ/ref=oh_aui_detailpage_o02_s00?ie=UTF8&amp;psc=1">Short right angle / left angle mini USB cable</a></li>
<li>5 x M3 nylon screws + 1 M3x20 nylon standoff</li>
<li>GPIO header connector (there are many options for this)</li>
<li>2 x 5mm LEDs with <a href="https://www.adafruit.com/products/2176">5mm LED holders</a></li>
<li><a href="https://www.adafruit.com/product/1477">Pushbutton with LED</a></li>
<li>3 x 330ohm resistors</li>
<li>2 x M3x15 + 2 x M3x25 stainless bolts (for the case)</li>
<li>2 x M3x10 stainless bolts + nuts (for the speaker)</li>
<li>Hookup wire + heat-shrink</li>
</ul>

<hr>

<h3 id="thegpiostuff">The GPIO stuff</h3>

<p>The GPIO interface usage is actually very simple. It is a push button with 2 separate LEDs for status indication and 1 LED within the push button that illuminates when it is transmitting.</p>

<p><img src="https://github.com/dchote/talkiepi/raw/master/doc/gpio_diagram.png" alt="I built a wifi "walkie" talkie for my kids; now you can too!"></p>

<p>You can use any type of header connector. I initially used <a href="https://www.adafruit.com/product/2222">one of these</a>, but using smaller connectors (such as a 8 pin for the LEDs and a 2 pin for the button) makes it easier to fit and assemble.</p>

<p><img src="https://projectable.me/content/images/2016/09/IMG_8958.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!"></p>

<p>Solder the 3 resistors to the ground pin, and solder your positive LED wires to the other pins.</p>

<p><img src="https://projectable.me/content/images/2016/09/IMG_8959.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!"></p>

<p>Solder your negative LED wires to each of the resistors.</p>

<p><img src="https://projectable.me/content/images/2016/09/IMG_8960.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!"></p>

<p>Slip on heat-shrink to protect from shorting. I put a larger piece of heat-shrink around all the resistors to keep them in a nice solid bundle.</p>

<p>Next up put together the button GPIO connector, you can either solder this on to your larger header, or like me, use a smaller 2 pin connector on pins 20 and 22.</p>

<p>Solder the 2 status LEDs on to their respective leads. Don't forget to slip on the LED holder boots and the heat-shrink before you solder!</p>

<p><img src="https://projectable.me/content/images/2016/09/IMG_8962.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!"></p>

<hr>

<h3 id="theusbspeakerphone">The USB speakerphone</h3>

<p>Taking the speakerphone apart is really simple. There are two screws hiding under the rubber feet and two more screws holding the speaker in place.</p>

<p><img src="https://projectable.me/content/images/2016/09/IMG_8935.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!">
<img src="https://projectable.me/content/images/2016/09/IMG_8936.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!">
<img src="https://projectable.me/content/images/2016/09/IMG_8937.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!"></p>

<p>Leave the foam on the microphone; the talkiepi case actually utilizes that to hold the microphone in place.</p>

<h3 id="assemblingtalkiepi">Assembling talkiepi</h3>

<p>I designed the enclosure to accommodate the Pi3 and the US Robotics speakerphone PCB specifically. Once you have printed the enclosure parts, I recommend you get a 3mm tap and tap the holes. If you don't have a tap, you can use one of your stainless bolts (carefully avoiding stripping out the holes).</p>

<p><img src="https://projectable.me/content/images/2016/09/IMG_8940.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!"></p>

<p>Attach the right/left angle USB cable to the bottom right USB port of your Raspberry Pi. Mount the Raspberry Pi using the nylon screws. Use the standoff in the hole next to the 3.5mm audio jack.</p>

<p><img src="https://projectable.me/content/images/2016/09/IMG_8872.JPG " older="" case="" revision""="" alt="I built a wifi "walkie" talkie for my kids; now you can too!"></p>

<p>Carefully unclip and disconnect the speaker from the speakerphone PCB and mount the speaker on the front panel using your M3x10 bolts+nuts. You will likely need to drill out the holes on the speaker to 3mm. Connect your GPIO harness to the Raspberry Pi.</p>

<p><img src="https://projectable.me/content/images/2016/09/IMG_8963-1.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!"></p>

<p>Place the LED holders through the speaker cover and place the speaker cover and LED holders through the top panel, fastening the LED holders in place with their washers and nuts.  Secure the LED push button in place. </p>

<p><img src="https://projectable.me/content/images/2016/09/IMG_8964-1.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!">
<img src="https://projectable.me/content/images/2016/09/IMG_8965-1.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!"></p>

<p>Now slide the LEDs with boots into the LED holders (<em>I used a little bit of silicone sealant to ensure they dont push out</em>).</p>

<p><img src="https://projectable.me/content/images/2016/09/IMG_8968.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!"></p>

<p>Now mount the speakerphone PCB with the USB port facing towards the rear of the case (same direction as the Pi USB ports). Use the other two nylon screws to secure (one into the case and one into the standoff). Connect the USB cable to the speakerphone connector, folding/tucking the excess cable in the space behind the USB ports. Ensure your GPIO leads are routed cleanly around the speakerphone PCB, and that nothing could be shorting.</p>

<p><img src="https://projectable.me/content/images/2016/09/IMG_8969.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!"></p>

<p>Finally attach the top cover to the bottom. Be sure to feed the wires nicely, and that everything looks tucked out of the way inside. Again, check for any shorts before fastening the top with the M3 bolts.</p>

<hr>

<h3 id="enjoyyourtalkiepi">Enjoy your talkiepi!</h3>

<p>Thats it! You're ready to talk to another mumble client or, if you made two, your other talkiepi!</p>

<p><img src="https://projectable.me/content/images/2016/09/IMG_8925-2.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!">
<img src="https://projectable.me/content/images/2016/09/IMG_8926.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!">
<img src="https://projectable.me/content/images/2016/09/IMG_8927-1.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!"></p>

<hr>

<h3 id="somethingdifferent">Something different?</h3>

<p>I attempted to do a paint finish, but I just don't have the patience, or workspace to do a good job of spraying something this small. I do however have a bunch of different colored PLA. Check it out in blue and now red!</p>

<p><img src="https://projectable.me/content/images/2016/09/IMG_8978.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!">
<img src="https://projectable.me/content/images/2016/09/IMG_8979.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!">
<img src="https://projectable.me/content/images/2016/09/IMG_8993.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!"></p>

<h3 id="whatsnext">Whats next...</h3>

<p>I have a Raspberry Pi Zero, <a href="https://www.kickstarter.com/projects/1728237598/hubpiwi-raspberry-pi-zero-hub-with-wifi-no-cable-c">HubPiWi</a>, and a USB battery pack. </p>

<p><img src="https://projectable.me/content/images/2016/09/IMG_8994.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!"></p>

<p>I am going to attempt to build a much smaller and truly <strong>walkie</strong>, talkiepi. </p>

<p>Initial testing and some minor code tweaks and talkiepi is running on a Raspberry Pi Zero with HubPiWi. </p>

<p><img src="https://projectable.me/content/images/2016/09/Screen-Shot-2016-09-11-at-9-40-11-PM.png" alt="I built a wifi "walkie" talkie for my kids; now you can too!">
<img src="https://projectable.me/content/images/2016/09/IMG_9013.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!">
<img src="https://projectable.me/content/images/2016/09/IMG_9011.JPG" alt="I built a wifi "walkie" talkie for my kids; now you can too!"></p>

<p>Over the next few weeks I will be working on a new WALKIE talkiepi case design!</p>

<p><strong>Stay tuned...</strong></p>]]></content:encoded></item></channel></rss>