<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:dc="https://purl.org/dc/elements/1.1/"
     xmlns:dcterms="http://purl.org/dc/terms/"
     xmlns:media="http://search.yahoo.com/mrss/"
     xmlns:atom="http://www.w3.org/2005/Atom"
>
    <channel>
                    <atom:link rel="alternate" hreflang="en-GB"
                       href="https://www.tomshardware.com/uk/feeds/tag/raspberry-pi-projects"
                       type="application/rss+xml"/>
                            <title><![CDATA[ Latest from Tom's Hardware UK in Raspberry-pi-projects ]]></title>
                <link>https://www.tomshardware.com/uk/tag/raspberry-pi-projects</link>
        <description><![CDATA[ All the latest raspberry-pi-projects content from the Tom's Hardware  UK team ]]></description>
                                    <lastBuildDate>Fri, 14 Feb 2025 15:40:39 +0000</lastBuildDate>
                            <language>en</language>
                                <item>
                                                            <title><![CDATA[ Elecrow's Raspberry Pi powered CrowPi 3 educational kit offers plenty of scope for learning ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/raspberry-pi/raspberry-pi-projects/elecrows-raspberry-pi-powered-crowpi-3-educational-kit-offers-plenty-of-scope-for-learning</link>
                                                                            <description>
                            <![CDATA[ Open-source computer hardware and services specialist Elecrow has shared the first details of its new CrowPi 3 open-source learning tool. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">8nhPNt5fdBkhN2YQPkAoZQ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/qAK32xNN5v5TEh6jjFuELM-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 14 Feb 2025 15:40:39 +0000</pubDate>                                                                                                                                <updated>Sat, 15 Feb 2025 04:22:42 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Mark Tyson ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/56vqMYLDaKRHPhHZgbADFR.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/qAK32xNN5v5TEh6jjFuELM-1280-80.jpg">
                                                            <media:credit><![CDATA[Elecrow]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Elecrow CrowPi 3 open-source learning tool]]></media:description>                                                            <media:text><![CDATA[Elecrow CrowPi 3 open-source learning tool]]></media:text>
                                <media:title type="plain"><![CDATA[Elecrow CrowPi 3 open-source learning tool]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/qAK32xNN5v5TEh6jjFuELM-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Elecrow, creators of the <a href="https://www.tomshardware.com/reviews/crowpi2-raspberry-pi-laptop-steam-kit">CrowPi 2</a> and the <a href="https://www.tomshardware.com/raspberry-pi/elecrow-crowview-note-review">CrowView</a> has written to us to detail its new CrowPi 3, which will launch on Kickstarter "soon." This is quite a complex product, designed to be an innovative open-source learning tool built around the <a href="https://www.tomshardware.com/reviews/raspberry-pi-5">Raspberry Pi 5</a> single-board computer. The comprehensive hardware consists of 30+ components, and Elecrow has prepared 100+ "meticulously planned courses" for your edutainment. Elecrow believes the versatile CrowPi 3 will appeal to enthusiasts and developers.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ibGSGDkYPMpmEKpykF9NUM" name="elecrow-crowpi3-infographic" alt="Elecrow CrowPi 3 open-source learning tool" src="https://cdn.mos.cms.futurecdn.net/ibGSGDkYPMpmEKpykF9NUM.jpg" mos="" align="middle" fullscreen="1" width="1600" height="900" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/ibGSGDkYPMpmEKpykF9NUM.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Elecrow)</span></figcaption></figure><p>The CrowPi 3 isn't confined to Pi 5 compatibility. Owners are free to plug in other SBCs to expand the processing possibilities, namely the Arduino Nano V3, micro:bit, and the <a href="https://www.tomshardware.com/reviews/raspberry-pi-pico-review">Raspberry Pi Pico</a> or <a href="https://www.tomshardware.com/raspberry-pi/raspberry-pi-pico-2-w-review">Raspberry Pi Pico W</a> series. The SBC you plug in can use a whole host of AI capabilities, sensors, ports/interfaces, LEDs, and (touch) displays, and there are even a pair of integrated breadboards for use in your projects.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/iXyc5vB2WtKjcvAP5i5pMM.jpg" alt="Elecrow CrowPi 3 open-source learning tool" /><figcaption><small role="credit">Elecrow</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/zgDFAeNHNDemCqBTLaShLM.jpg" alt="Elecrow CrowPi 3 open-source learning tool" /><figcaption><small role="credit">Elecrow</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/mVYVJSEzFLteZLHp4ucZJM.jpg" alt="Elecrow CrowPi 3 open-source learning tool" /><figcaption><small role="credit">Elecrow</small></figcaption></figure></figure><p>In its email to <em>Tom's Hardware</em>, Elecrow highlighted the use of its CrowPi 3 in AI projects. It says that the Pi 5 packing device integrates an "AI intelligent hardware platform that supports a wide range of applications." Suggested AI tasks range from simple OpenCV image processing to advanced deep-learning frameworks, says the firm. If this offering works as expected it could open up AI maker projects for users of all skill levels, "enabling tasks such as object recognition, face detection, and intelligent search," boasts Elecrow. The Raspberry Pi 5 has seen a plethora of AI products in 2024. Two AI HATs, in the form of the <a href="https://www.tomshardware.com/raspberry-pi/raspberry-pi-release-higher-performance-ai-hat-13-and-26-tops-variants">AI HAT+, </a>the <a href="https://www.tomshardware.com/raspberry-pi/raspberry-pi-ai-kit-review">AI Kit, </a>and the <a href="https://www.tomshardware.com/raspberry-pi/raspberry-pi-ai-camera-review-ai-for-the-masses">AI Camera kit</a>.</p><div ><table><caption>Elecrow CrowPi 3 features and specifications</caption><tbody><tr><td class="firstcol " ><p>Screen</p></td><td  ><p>4.4-inch 800 x 480 pixels IPS display with 300 nits brightness and capacitive touch</p></td></tr><tr><td class="firstcol " ><p>Wireless</p></td><td  ><p>Wi-Fi 6 2.4 and 5 GHz. BT 5.2 and LE</p></td></tr><tr><td class="firstcol " ><p>Interfaces</p></td><td  ><p>USB C (in/out), USB C, USB 3, USB2, HDMI, Ethernet, 3.5mm audio, Debug</p></td></tr><tr><td class="firstcol " ><p>Buttons</p></td><td  ><p>Power, volume/brightness</p></td></tr><tr><td class="firstcol " ><p>Sensors (input)</p></td><td  ><p>EEPROM, Gyroscope / accelerometer, 5-way joystick, 4x tactile buttons, touch, RFID, ultrasonic, flame, relay, voltage, angle, encoder, PIR, audio, infrared, temperature and humidity, hall sensor, light intensity, camera, microphone</p></td></tr><tr><td class="firstcol " ><p>Sensors (output)</p></td><td  ><p>Vibration, buzzer, 6x LED, 8x8 RGB LED matrix</p></td></tr><tr><td class="firstcol " ><p>Other</p></td><td  ><p>40 pin header, IO status, 2x breadboards, I2C interface, UART, servo, can be battery* powered (*not included), requires 5V/5A input with PD protocol</p></td></tr><tr><td class="firstcol " ><p>Physical</p></td><td  ><p>285 x 185 x 38mm, includes carry handle</p></td></tr></tbody></table></div><p>A browse through the extensive specs list we have shared, above, will also help give readers a grasp of the capabilities and functionality on offer with the Elecrow CrowPi 3. The in/out sensors that are built in are particularly wide-ranging and plentiful - opening up so many projects. </p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/zJ7sGqWrKusrTxmCHZjKLM.jpg" alt="Elecrow CrowPi 3 open-source learning tool" /><figcaption><small role="credit">Elecrow</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/bNPmA784QcS6RZqk6VHgMM.jpg" alt="Elecrow CrowPi 3 open-source learning tool" /><figcaption><small role="credit">Elecrow</small></figcaption></figure></figure><p>We only have an overview of example learning course categories and topics from Elecrow at the time of writing. Above you can see the learning UI and main topics, and a page of example projects which include the creation of an intrusion alarm, an RGB matrix version of <a href="https://www.tomshardware.com/video-games/retro-gaming/tetris-was-finally-beaten-after-34-years-game-kill-screen-pops-up-at-level-157-hypertapping-and-rolling-were-key-techniques">Tetris</a>, and a Theremin-style musical instrument.</p><p>Hopefully, we will get a lot more details about the product and the 100+ courses when the Kickstarter goes live. Project pages often feature illuminative videos, to demonstrate the upcoming products. We don't have pricing or availability yet, either. However, the good news is that Elecrow are sending <em>Tom's Hardware</em> a sample, so we will publish an in-depth review in due course.</p><p>Lastly, please remember that participating in a crowdfunding campaign is not a guarantee of receiving a finished product. Backing a crowdfunded project is akin to an investment; you believe in the project and want it to succeed. You are not purchasing a retail product.</p><p><strong>Update:</strong> Elecrow has contacted us to highlight that the consumer version of the CrowPi 3 will be gray, not blue, as in the prototype pictured above. Furthermore, the features and specs shared in our coverage are indicative and not yet set in stone. The finalized details will be shared soon, when the crowdfunding campaign begins.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ This Raspberry Pi ADS-B plane tracker features a weather station with tons of cool features ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/raspberry-pi/raspberry-pi-projects/this-raspberry-pi-ads-b-plane-tracker-features-a-weather-station-with-tons-of-cool-features</link>
                                                                            <description>
                            <![CDATA[ SwadeWhite has put together a cool ADS-B plane tracker with a built-in weather station and home automation features. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">xueMSEQxanLUavLugsij5W</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/vBhxxGvHSmdAtYEGzT7CDa-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Mon, 10 Feb 2025 13:40:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/vBhxxGvHSmdAtYEGzT7CDa-1280-80.png">
                                                            <media:credit><![CDATA[SwadeWhite on Reddit]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[SwadeWhite&#039;s Raspberry Pi project]]></media:description>                                                            <media:text><![CDATA[SwadeWhite&#039;s Raspberry Pi project]]></media:text>
                                <media:title type="plain"><![CDATA[SwadeWhite&#039;s Raspberry Pi project]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/vBhxxGvHSmdAtYEGzT7CDa-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>SwadeWhite has put together a really cool ADS-B plane tracker with a built-in weather station and home automation features.</p><p>We've seen our fair share of <a href="https://www.tomshardware.com/topics/raspberry-pi"><u>Raspberry Pi</u></a> plane tracking projects but this one definitely has a little bit extra. Maker and developer SwadeWhite, as they're known over at Reddit, has put together a cool <a href="https://www.reddit.com/r/raspberry_pi/comments/1ikr840/my_adsb_plane_tracker_and_weather_station"><u>ADS-B plane tracker</u></a> and added some bonus features that elevate it way beyond your typical tracking project. In addition to scanning the sky for planes, it also tracks weather and provides a handful of home automation tools using a variety of sensors.</p><p>If you're not familiar with the term ADS-B, it stands for automatic dependent surveillance broadcast. This is a protocol used to detect aircraft positions using satellites. As we mentioned before, we've seen a handful of ADS-B plane-tracking projects before. According to SwadeWhite, this creation was also inspired by another one put together by a Reddit user known as Basedrifter. However, SwadeWhite definitely took some creative liberties in his build.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/Yu6qioKpuPHCRsTb3oqzbZ.png" alt="SwadeWhite's Raspberry Pi project" /><figcaption><small role="credit">SwadeWhite on Reddit</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/BDfACHL9hNnWhJrCJsS2cZ.png" alt="SwadeWhite's Raspberry Pi project" /><figcaption><small role="credit">SwadeWhite on Reddit</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/SZCcnPXfTKGPaV4Uo9DeQZ.png" alt="SwadeWhite's Raspberry Pi project" /><figcaption><small role="credit">SwadeWhite on Reddit</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/vBhxxGvHSmdAtYEGzT7CDa.png" alt="SwadeWhite's Raspberry Pi project" /><figcaption><small role="credit">SwadeWhite on Reddit</small></figcaption></figure></figure><p>The weather station portion is comprised of a selection of sensors to monitor things like temperature and humidity. It can also monitor air quality, pressure, and even wind speed. As a bonus, SwadeWhite decided to throw in an ambient light sensor. This makes it possible to track how bright the light is outside and automatically adjust the lighting inside the house depending on the level detected outside.</p><p>You can find a full list of parts in the project thread shared on Reddit. In it, SwadeWhite explains that components have slowly been added over time to bring the project to where it is today. One useful component is a Camera Module V3 which is currently set up to capture images twice a minute for a cool time-lapse effect. This module is protected by a weather-proof enclosure which is necessary seeing as the unit is mounted outside on a balcony.</p><p>Many of the components are operated using a Python script put together by SwadeWhite. They've incorporated a handful of tools like Grafana for creating a visual dashboard, Home Assistant for the home automation tools, and FlightAware for the ADS-B functions. The unit receives power using a power over Ethernet (PoE) HAT.</p><p>If you want to read more about what went into this <a href="https://www.tomshardware.com/features/best-raspberry-pi-projects"><u>Raspberry Pi project</u></a>, you can check it out in greater detail over at <a href="https://www.reddit.com/r/raspberry_pi/comments/1ikr840/my_adsb_plane_tracker_and_weather_station"><u>Reddit</u></a> where SwadeWhite shared plenty of details and pictures of the setup in action.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Maker builds drum machine from scratch using a Raspberry Pi Pico 2 ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/raspberry-pi/maker-builds-drum-machine-from-scratch-using-a-raspberry-pi-pico-2</link>
                                                                            <description>
                            <![CDATA[ Arnov Sharma has created a drum machine synth from scratch using a Raspberry Pi Pico 2 as the main driver along with a custom PCB. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">YvTcenafZHcexXydhnprWi</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/ZbDZEtoD5FNT83738d2tsd-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 05 Jan 2025 17:55:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/ZbDZEtoD5FNT83738d2tsd-1280-80.jpg">
                                                            <media:credit><![CDATA[Arnov Sharma]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Raspberry Pi]]></media:description>                                                            <media:text><![CDATA[Raspberry Pi]]></media:text>
                                <media:title type="plain"><![CDATA[Raspberry Pi]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/ZbDZEtoD5FNT83738d2tsd-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>There's nothing quite like the musical capabilities of the <a href="https://www.tomshardware.com/topics/raspberry-pi"><u>Raspberry Pi</u></a>. Even the smallest module they offer, the Raspberry Pi Pico is capable of great things on the musical front. Today we've got a clever DIY project to share put together by maker and developer Arnov Sharma. Using the latest Raspberry Pi Pico 2, he's created a custom <a href="https://www.hackster.io/Arnov_Sharma_makes/pico-drum-machine-1fcba3"><u>drum machine synth</u></a>. We're just excited that we're one step closer to the Raspberry Pi-powered band of our dreams.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="high" data-lazy-src="https://www.youtube-nocookie.com/embed/ICmXkAssx_0" allowfullscreen></iframe></div></div><p>The project essentially consists of a series of buttons that are programmed to play specific synthetic drum sound clips. These audio files are stored on a microSD card using a second module — the DFMiniPlayer. This board helps with the audio support and provides the ability to play different file types like MP3 or WAV. In this case, it handles the audio files used to create the drum synth.</p><p>According to Sharma, the idea was to experiment with the Pico 2 and DFMiniPlayer board. The experiment landed on this neat little drum synth that's much more involved in its creation than just playing an audio file with a button. To pull the project off, Sharma went as far as to create a custom PCB to house all of the drum effect buttons that interface with the Pico 2.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/vUNfBpnDviUsqvEZomf7S8.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">Arnov Sharma</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/vYYnjZTz5gYLfhvMweexk4.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">Arnov Sharma</small></figcaption></figure></figure><p>Like most of his other creations, this project is entirely open source so you can recreate it for yourself at home or at the very least get an in-depth look at how it operates. As we mentioned before, the main board is a Raspberry Pi Pico 2. It's connected to both the custom PCB and DFMiniPlayer module. In addition to these components, you'll need a handful of switches and a 2 Ohms speaker for audio output.</p><p>The code for the project is fairly straightforward and was created by Sharma just for the project. It was written in C and is also open source so you can copy it directly or use it for inspiration to program a custom synth of your own. This code is available over at the official project page shared to Hackster by Sharma.</p><p>If you want to get a closer look at this <a href="https://www.tomshardware.com/features/best-raspberry-pi-projects"><u>Raspberry Pi project</u></a>, you can check it out in action over at <a href="https://www.youtube.com/watch?v=ICmXkAssx_0"><u>YouTube</u></a> and explore the build guide in greater detail over at <a href="https://www.hackster.io/Arnov_Sharma_makes/pico-drum-machine-1fcba3"><u>Hackster</u></a>. Be sure to follow Sharma for more cool Raspberry Pi-powered creations as well as any future updates to this one.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Raspberry Pi Pico brings Gundam to life with interactive LED light show ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/raspberry-pi/raspberry-pi-pico-brings-gundam-to-life-with-interactive-led-light-show</link>
                                                                            <description>
                            <![CDATA[ Rob is using a Raspberry Pi Pico to upgrade his Gundam figurine with programmable LEDs and a control panel to make real-time adjustments. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">bCKvuSPaQz8JqLr6sP9m7e</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/DQpDoanrCHzQWgM6NPWJMV-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 12 Apr 2024 12:07:23 +0000</pubDate>                                                                                                                                <updated>Fri, 12 Apr 2024 12:07:27 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/DQpDoanrCHzQWgM6NPWJMV-1280-80.jpg">
                                                            <media:credit><![CDATA[Rob]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Raspberry Pi]]></media:description>                                                            <media:text><![CDATA[Raspberry Pi]]></media:text>
                                <media:title type="plain"><![CDATA[Raspberry Pi]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/DQpDoanrCHzQWgM6NPWJMV-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>When it comes to anime-themed <a href="https://www.tomshardware.com/topics/raspberry-pi"><u>Raspberry Pi</u></a> projects, it just makes sense there would be a natural overlap with the technological-oriented mecha genre. From giant robots to cool sci-fi gadgets, there&apos;s loads of potential for fans who want to bring a little piece of their favorite series home. Today we&apos;ve got a really cool project to share from a maker named Rob who has spruced up his Gundam figurine using a Raspberry Pi Pico with what he calls a <a href="https://www.hackster.io/robpsf/gundam-cyberdeck-180cb1"><u>Gundam Cyberdeck</u></a>.</p><p>This project takes your average Gundam and transforms it into a much more illuminating experience by employing LEDs. While it&apos;s cool enough to see a Gundam suited up with lights, Rob wasn&apos;t satisfied with lights that simply turn on. He wanted something more dynamic and interactive that play on the storytelling elements of the Gundam. The end result is a fully customizable Gundam light show, complete with 16 individual LEDs and a control panel made from scratch.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/7EF2mBpPERH2zHQimiGixW.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">Rob</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/NvZ2qN9oUwiMMPixQjjqwX.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">Rob</small></figcaption></figure></figure><p>The final build uses 16 individual LEDs controlled by the Pico. They can be preprogrammed with up to 10 separate sequences that can be saved and loaded as desired. The control panel features a big rotary encoder that lets you quickly adjust and set things like brightness and speed. This makes it possible to light up individual components like the rocket launcher or eyes for animations.</p><p>The Pico is connected to an AW9523 module, this is a GPIO expander which is convenient for this project as it doesn&apos;t require any resistors to operate LEDs. All the hardware, including the buttons, Pico, rotary encoder, etc, are housed inside a custom shell that Rob designed and 3D printed just for this project.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/srmK_Xya0TM" allowfullscreen></iframe></div></div><p>The software was programmed by Rob, as well, and was built using CircuitPython. It handles the LEDs and can save custom sequences locally to the Cyberdeck. Loading a sequence is as easy as pressing the button you&apos;ve assigned it to on the keypad.</p><p>If you want to get a closer look at this <a href="https://www.tomshardware.com/features/best-raspberry-pi-projects">Raspberry Pi project</a>, you can see it in action over on <a href="https://www.youtube.com/watch?v=srmK_Xya0TM">YouTube</a> and peruse the full build tutorial over at <a href="https://www.hackster.io/robpsf/gundam-cyberdeck-180cb1">Hackster</a>.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Raspberry Pi Zero W Drives Animatronic Fox Companion ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/raspberry-pi/raspberry-pi-zero-w-drives-animatronic-fox-companion</link>
                                                                            <description>
                            <![CDATA[ Katherine “Smalls” Connell is using a Raspberry Pi Zero W to control her custom-made animatronic fox head companion. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">M2EtdJshDabNRtcYgkkBZb</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/beELeBk2DQDiDRHMpLrsbC-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Tue, 26 Dec 2023 15:17:14 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/beELeBk2DQDiDRHMpLrsbC-1280-80.png">
                                                            <media:credit><![CDATA[Katherine &quot;Smalls&quot; Connell]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Raspberry Pi]]></media:description>                                                            <media:text><![CDATA[Raspberry Pi]]></media:text>
                                <media:title type="plain"><![CDATA[Raspberry Pi]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/beELeBk2DQDiDRHMpLrsbC-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>It’s getting easier and easier as time goes on to create virtual assistants with the help of boards like the <a href="https://www.tomshardware.com/topics/raspberry-pi"><u>Raspberry Pi</u></a>. But this trend also lends to another similar but distinctly different category of creations known as companion bots. Today we’ve got a neat example of such a project to share with you, created by maker Katherine “Smalls” Connell who has put together this neat animatronic fox head companion bot.</p><p>The animatronic fox head is programmed with a few different animation techniques. Servos are used to enable the head to move and tilt. The ears also use servo motors to turn back and forth. The eyes are fitted with screens and display animated pupils. All of the motions are programmed by Connell to run randomly rather than in response to input.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/kdqJz3mgVfZqszGpfVGmZa.png" alt="Raspberry Pi" /><figcaption><small role="credit">Katherine "Smalls" Connell</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/BAydhb8ZEfgRRKTVhamroa.png" alt="Raspberry Pi" /><figcaption><small role="credit">Katherine "Smalls" Connell</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/XLLbXXLXQnFPhXrANDKH2b.png" alt="Arduino" /><figcaption><small role="credit">Katherine "Smalls" Connell</small></figcaption></figure></figure><p>The head shape was taken from an existing fox head shape model over at Thingiverse. The model was <a href="https://www.tomshardware.com/best-picks/best-3d-printers">3D printed</a> and used as a base for the head. Connell modified the design to suit her project by using Worbla, a moldable material that softens when exposed to heat. To finish it off, the exterior was covered completely in faux fur.</p><p>Each eye is fitted with a 1.14-inch IPS LCD module. The eyes are programmed to move at random and are controlled by a Raspberry Pi Zero W. The Pi works alongside an Arduino UNO which is responsible for driving the servos. There are two used to control the ear movement and one used to rotate the head.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/azYMblxyAsc" allowfullscreen></iframe></div></div><p>As far as software goes, the Arduino was programmed using Arduino IDE while the Pi Zero W ran a custom script on top of Raspberry Pi OS. The Pi is programmed to play a looped video of random eye animations that look like the fox is looking around or blinking. You can get a closer look at the source code for this <a href="https://www.tomshardware.com/features/best-raspberry-pi-projects">Raspberry Pi project</a> over at Hackster and see the fox head animatronic companion bot in action over at YouTube.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Raspberry Pi KVM Powers On 16 Mac Minis with 8 Servos ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/raspberry-pi-kvm-mac-mini-controller</link>
                                                                            <description>
                            <![CDATA[ Ivan Kuleshov has created a Raspberry Pi-powered system that can manually power on 16 Mac Minis using 8 servo motors. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">2rtNuS6G2SutXNWWsvrKah</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/dJvzQjJvAwNkSryetAXDS5-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 19 Aug 2023 14:30:06 +0000</pubDate>                                                                                                                                <updated>Wed, 05 Feb 2025 15:13:35 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/dJvzQjJvAwNkSryetAXDS5-1280-80.jpg">
                                                            <media:credit><![CDATA[Ivan Kuleshov]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Raspberry Pi]]></media:description>                                                            <media:text><![CDATA[Raspberry Pi]]></media:text>
                                <media:title type="plain"><![CDATA[Raspberry Pi]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/dJvzQjJvAwNkSryetAXDS5-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>When it comes to creative solutions, no one’s better up to the task than maker and developer Ivan Kuleshov. Whether he’s <a href="https://www.tomshardware.com/news/mac-mini-poe-mod"><u>hacking a Mac Mini to use PoE</u></a> or developing the new soon-to-be-released <a href="https://www.tomshardware.com/news/raspberry-pi-powered-compute-blade-makes-the-cut"><u>Compute Blade module</u></a>, Kuleshov’s creative juice is in no short supply. Today we’re sharing another project of his shared to <a href="https://twitter.com/Merocle/status/1692193146036187311"><u>Twitter/X</u></a>, this time a medley of both <a href="https://www.tomshardware.com/topics/raspberry-pi"><u>Raspberry Pi</u></a> and Mac Minis. Kuleshov ran into an issue recently in which a rack of 16 Mac Minis needed to be manually powered on. His solution? Use a Pi to flip the physical switches, of course!</p><p>The Pi is connected to 8 individual servo motors that are responsible for activating the power switch on two Mac Minis a piece. The Raspberry Pi is fitted with a PiKVM HAT so it does more than just power on the Mac Minis. This also meant that developing a custom case was necessary to support the additional hardware.</p><p>This project is more than just a proof of concept. We spoke with Kuleshov who confirmed the setup has successfully been implemented in a professional setting. His team works in a data center that has three shelves of Mac Minis and this Raspberry Pi rig is able to power them on using the system of servos.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/eSmapaGMsrZT88WU8VTqmA.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">Ivan Kuleshov</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/fBgG4t47MU8TbpAVq7i3JG.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">Ivan Kuleshov</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/L2oqtQrkJmhGywJMBEs8sT.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">Ivan Kuleshov</small></figcaption></figure></figure><p>The Raspberry Pi has a couple of HATs and extra hardware that required Kuleshov’s cool case design. It fits the Raspberry Pi, a PiKVM HAT, a Servo HAT and an OLED screen. A heatsink and fan were included to cool the unit, as well. The outer housing is also fitted with LEGO-compatible studs so you can attach your favorite LEGO pieces—his team chose a Stormtrooper figure.</p><p>The software involves a custom UI that Kuleshov put together that makes it easier to operate the PiKVM features and servos. Python was used to program the servos while some bash scripts enable it to interact with a separate KVM switch.</p><p>To get a closer look at this <a href="https://www.tomshardware.com/features/best-raspberry-pi-projects"><u>Raspberry Pi project</u></a>, check out the original <a href="https://twitter.com/Merocle/status/1692193146036187311"><u>post</u></a> shared by Ivan Kuleshov. You can also follow him at <a href="https://twitter.com/Merocle"><u>Twitter/X</u></a> or <a href="https://www.instagram.com/merocle"><u>Instagram</u></a> to keep an eye out for future creations as well as any updates on this one.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Raspberry Pi Pico Docking Station Displays Handheld Retro Game Data ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/raspberry-pi-pico-docking-station-displays-handheld-retro-game-data</link>
                                                                            <description>
                            <![CDATA[ StonedEdge is using an RP2040 in his custom docking station built to charge his Retro Lite CM4 handheld. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">gzvuzHDqwqx8FHJk2uZ4o7</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/n9r47dkyiZZ3ERVK4bmZNZ-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Jun 2023 11:54:10 +0000</pubDate>                                                                                                                                <updated>Thu, 30 Jan 2025 17:08:45 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/n9r47dkyiZZ3ERVK4bmZNZ-1280-80.jpg">
                                                            <media:credit><![CDATA[StonedEdge]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Raspberry Pi]]></media:description>                                                            <media:text><![CDATA[Raspberry Pi]]></media:text>
                                <media:title type="plain"><![CDATA[Raspberry Pi]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/n9r47dkyiZZ3ERVK4bmZNZ-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>There are tons of cool <a href="https://www.tomshardware.com/topics/raspberry-pi"><u>Raspberry Pi</u></a> gaming handhelds that have been created over the years. One that we really appreciate is the <a href="https://www.tomshardware.com/news/raspberry-pi-cm4-switch-lite-handheld"><u>Retro Lite CM4</u></a> created by a maker known as StonedEdge. This handheld resembles a Nintendo Switch but instead has a <a href="https://www.tomshardware.com/reviews/raspberry-pi-compute-module-4">Raspberry Pi Compute Module 4</a> inside and runs RetroPie. Today we’re sharing a new accessory he’s made that also uses a Raspberry Pi component—an <a href="https://www.tomshardware.com/reviews/raspberry-pi-pico-w">RP2040</a>-powered <a href="https://www.reddit.com/r/RASPBERRY_PI_PROJECTS/comments/14di1fl/i_made_a_docking_station_using_an_rp2040_with_an"><u>docking station</u></a>.</p><p>The docking station is designed so that the Retro Lite CM4 can charge while it’s placed in the station. According to StonedEdge, it also works with any other Linux-based RetroPie system. It features a little screen, as well, so you can see stats about your playing history as well as get a look at game data based on whatever you’re playing at the time.</p><p>There are three main modes that the screen alternates through including a default splash screen, your gaming history stats as well as a game mode that updates to reflect whatever is currently launched in RetroPie. The charging takes place using a USB-C port while an HDMI port provides video output.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/FRscTBy2A6BUQd7uZ53fmH.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">StonedEdge</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/JWq9R6vkUZBm63xzWzDbjG.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">StonedEdge</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/cQ3T5dV5eTjEGv2dugZTFJ.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">StonedEdge</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/RGx45Py7fiNvSNHytkWbjJ.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">StonedEdge</small></figcaption></figure></figure><p>The unit is 3D printed and designed to not just look nice but to also provide access to the hardware and ports for ease of use. The LCD screen is 1.5-inches across and has a resolution of 128 x 128px. There are three USB 2.0 ports available to connect peripherals to, as well. Everything is connected to a custom PCB that sports an RP2040 processor.</p><p>StonedEdge provides an in depth look at the software-side of the project over at <a href="https://github.com/StonedEdge/Retro-Lite-CM4-Dock">GitHub</a>. When the system first boots, it displays the default splash screen. Once EmulationStation is running, it starts to show basic system stats like the CPU temperature and IP address. It will also rotate through things like which games you play the most and how often you play them. Lastly, game mode activates when you launch a title.</p><p>A lot of work went into this accessory and we really appreciate the time and effort StonedEdge took to bring it to fruition. This is more than a simple dock, it’s a fully functional gadget with custom housing and a unique PCB. Check out the original thread shared to <a href="https://www.reddit.com/r/RASPBERRY_PI_PROJECTS/comments/14di1fl/i_made_a_docking_station_using_an_rp2040_with_an">Reddit</a> to get a closer look at this <a href="https://www.tomshardware.com/features/best-raspberry-pi-projects">Raspberry Pi project</a> in action.</p><iframe src="https://content.jwplatform.com/players/YdWWS5dA.html" id="YdWWS5dA" title="Raspberry Pi 4 Review: The New Gold Standard for Single-Board Computing" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen></iframe>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Raspberry Pi Scoreboard Tracks Real-Time Baseball Scores ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/raspberry-pi-baseball-scoreboard</link>
                                                                            <description>
                            <![CDATA[ Clayton from Design Build Make has created a custom scoreboard that tracks baseball scores in real time for his favorite team, the Cardinals. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">BVZJXK9DGwMeeXJMARh9ca</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/w4hBZh9pTnX8MwCM96zUae-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 15 Jun 2023 12:26:00 +0000</pubDate>                                                                                                                                <updated>Tue, 28 Jan 2025 14:46:57 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/w4hBZh9pTnX8MwCM96zUae-1280-80.jpg">
                                                            <media:credit><![CDATA[Clayton, Design Build Make]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Raspberry Pi]]></media:description>                                                            <media:text><![CDATA[Raspberry Pi]]></media:text>
                                <media:title type="plain"><![CDATA[Raspberry Pi]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/w4hBZh9pTnX8MwCM96zUae-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>With so many APIs available this day and age, the possibilities are seemingly endless when it comes to what you can tap into with a <a href="https://www.tomshardware.com/topics/raspberry-pi"><u>Raspberry Pi</u></a>. From using AI to power your creations with <a href="https://www.tomshardware.com/how-to/run-chatgpt-on-raspberry-pi"><u>ChatGPT</u></a> to using Amazon’s API to <a href="https://www.tomshardware.com/how-to/raspberry-pi-alexa-voice-service"><u>create a custom Alexa device</u></a>, there’s just so much you can use. Today, we’ve got an awesome project to share created by Clayton from Design Build Make who’s using an API to pull baseball scores for a custom <a href="https://www.youtube.com/watch?v=lA_ZCZlgraA"><u>desktop scoreboard</u></a> that tracks his favorite team—the Cardinals.</p><p>According to Clayton, the idea for the project came to him after he got tired of regularly checking his phone for scores. To resolve that problem, he decided to build a scoreboard that automatically updates in real-time with score data. It looks like an old-school scoreboard you’d find on a baseball field but this one is much smaller and fits on your desk.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/lA_ZCZlgraA" allowfullscreen></iframe></div></div><p>The board is shaped like a wide rectangle. It’s made of wood and laser-cut with holes for the score displays which is presented using 7-segment displays. It has a few LEDs at the bottom to represent things like how many outs, strikes and balls have been tallied as well as how many players are on which base. It’s finished with a custom green paint job and a snazzy logo for the Cardinals.</p><p>Clayton explains that there are 24 7-segment displays used in the project. Shift registers were necessary to control each of them. They are daisy-chained together for convenience and also feature a custom PCB which helps organize the design. The entire project is driven by a Raspberry Pi 3B+ but you could likely get away with using an older model of Raspberry Pi, or even something smaller like a <a href="https://www.tomshardware.com/reviews/raspberry-pi-zero-2-w-review">Raspberry Pi Zero 2 W</a> model or the <a href="https://www.tomshardware.com/reviews/raspberry-pi-pico-w">Raspberry Pi Pico W</a>.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/woiA6rhJnBWmfanb58dhci.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">Clayton, Design Build Make</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/tjZSsp9x4B59qL3BuiF2Jh.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">Clayton, Design Build Make</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/DyGJwCWfwaTfg7Ta8BNaMj.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">Clayton, Design Build Make</small></figcaption></figure></figure><p>The API used in this project is the exact same API Major League Baseball (MLB) uses to log their play by play scores. You can find details about this API and how to access it over at <a href="https://appac.github.io/mlb-data-api-docs/">GitHub</a>. Because this requires regular updates, the Raspberry Pi will need internet access in order to update the scoreboard.</p><p>If you want to get a closer look at how this <a href="https://www.tomshardware.com/features/best-raspberry-pi-projects">Raspberry Pi project</a> works, check out the <a href="https://www.youtube.com/watch?v=lA_ZCZlgraA">video</a> shared to YouTube by Clayton and be sure to follow him for more cool projects in the future.</p><iframe src="https://content.jwplatform.com/players/YdWWS5dA.html" id="YdWWS5dA" title="Raspberry Pi 4 Review: The New Gold Standard for Single-Board Computing" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen></iframe>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Raspberry Pi Drives Sailboat by Automating Autopilot ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/raspberry-pi-sailboat-autopilot</link>
                                                                            <description>
                            <![CDATA[ Tommy Joad is using a Raspberry Pi to power his autopilot system for his sailboat to automate trips across the sea. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">xpXzaDGSGf2y2UTQ2NknGV</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/yciWLXYasqmqazRapjPTY4-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 08 Jun 2023 19:40:39 +0000</pubDate>                                                                                                                                <updated>Thu, 30 Jan 2025 16:42:32 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/yciWLXYasqmqazRapjPTY4-1280-80.jpg">
                                                            <media:credit><![CDATA[Tommy Joad]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Raspberry Pi]]></media:description>                                                            <media:text><![CDATA[Raspberry Pi]]></media:text>
                                <media:title type="plain"><![CDATA[Raspberry Pi]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/yciWLXYasqmqazRapjPTY4-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>There are some problems in life that are just more fun to solve with a <a href="https://www.tomshardware.com/topics/raspberry-pi"><u>Raspberry Pi</u></a>. Today we’ve got a clever project to share with our nautical fans created by a maker named Tommy Joad. Joad is the captain of a sailboat and has great familiarity with modern autopilot systems. However, he’s taken the bold step to create his own <a href="https://tommyjoad2017.wordpress.com/making-an-autopilot-pypilot"><u>autopiloting system</u></a> using none other than our favorite SBC, the Raspberry Pi.</p><p>According to Joad, there are several problems that he needed to overcome in order to design a more efficient system. Joad explains that many autopiloting systems are expensive and when they break, they can be pricey to fix — often requiring a specialist to repair. By creating his own autopiloting system with a Raspberry Pi, the price is cut significantly, and being the creator of the project means it’s much easier to troubleshoot.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/cp6TY5jvjnS8x6pP7jWbwa.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">Tommy Joad</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/vQpAbrmWyhUbSLu2QAZf5d.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">Tommy Joad</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/JC5DuXcNXPjAmTgpsqkJNZ.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">Tommy Joad</small></figcaption></figure></figure><p>The main system behind this Raspberry Pi autopilot project is called Pypilot. It’s an open-source application designed by Sean d’Epagnier. Pypilot is included in the Open Plotter package, this is a chart plotting system designed to work with ARM computers. In this case, it works great with the Raspberry Pi but it technically is compatible with other ARM devices.</p><p>Joad opted to use a Raspberry Pi 4 for this project but you could get away with using a Raspberry Pi 3 B if that’s all you had on hand. In addition to the Pi, Joad is using a Pypilot HAT designed just for integration with this sort of project. It also requires a motor controller that moves a belt attached to the steering wheel of the boat.</p><p><br></p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/aq2tt2EpViQ" allowfullscreen></iframe></div></div><p>The software side of things relies on a custom OS image. Joad provides instructions on how to set up OpenPlotter using the Raspberry Pi imager. Once it’s installed, you can set up Pypilot. You’ll also need to familiarize with Signal K. This is an open source open data format intended for marine use. Altogether, these systems allow you to plot courses and keep yourself busy with other things while your boat safely pilots you where you want to go.</p><p>If you want to get a closer look at this <a href="https://www.tomshardware.com/features/best-raspberry-pi-projects">Raspberry Pi project</a> in action, check out the video Joad shared to <a href="https://www.youtube.com/watch?v=aq2tt2EpViQ">YouTube</a> and dig into his <a href="https://tommyjoad2017.wordpress.com/making-an-autopilot-pypilot">tutorial</a> for a more in-depth look at its construction.</p><iframe src="https://content.jwplatform.com/players/YdWWS5dA.html" id="YdWWS5dA" title="Raspberry Pi 4 Review: The New Gold Standard for Single-Board Computing" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen></iframe>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Raspberry Pi Helps Research Team Monitor Glaciers in Peru ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/raspberry-pi-glacier-monitoring</link>
                                                                            <description>
                            <![CDATA[ This research team is using Raspberry Pis to monitor glacier calving in Peru and Iceland using cameras to make 3D renders of glaciers. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">FgKzx9MPRpoRnzRsh8jx5B</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/2Uje3EYaz8v33s8dnAoZWC-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 24 May 2023 14:35:53 +0000</pubDate>                                                                                                                                <updated>Thu, 30 Jan 2025 16:31:38 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/2Uje3EYaz8v33s8dnAoZWC-1280-80.jpg">
                                                            <media:credit><![CDATA[Liam Taylor]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Raspberry Pi]]></media:description>                                                            <media:text><![CDATA[Raspberry Pi]]></media:text>
                                <media:title type="plain"><![CDATA[Raspberry Pi]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/2Uje3EYaz8v33s8dnAoZWC-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The <a href="https://www.tomshardware.com/topics/raspberry-pi"><u>Raspberry Pi</u></a> is a flexible system with use cases ranging from retro gaming platforms to industrial use cases for factories and more. Today we’re sharing one research team&apos;s foray into science with the help of our favorite SBC and looking at how well it compares to modern, more expensive tools. Liam Taylor, Duncan Quincy, and Mark Smith recently deployed a set of Raspberry Pis to help monitor glacier calving in both <a href="https://nhess.copernicus.org/articles/23/329/2023"><u>Iceland and Peru</u></a>.</p><p>According to the team, monitoring calving fronts is critical as extreme changes can result in environmental impacts for local residents. For example, things like tsunamis, floods, and the collapse of icebergs can cause serious damage, and monitoring these changes can help those living nearby respond before the problems worsen. Part of their research was to test the performance of a Raspberry Pi in monitoring these changes against more conventional tools they usually use, in this case, an unoccupied aerial vehicle (UAV).</p><p>To test the Pi against the UAV monitoring system, the team traveled to Fjallsjökull, Iceland. Here they could survey glaciers both from the shore and from a boat. The area also had a great variety of calving margin heights that made it easier to test the accuracy of the Raspberry Pi.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/GvioXzYKbTFvW7kse5dWDD.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">Liam Taylor</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/pRGuF8CzMM2CjoxXyXiPiD.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">Liam Taylor</small></figcaption></figure></figure><p>The Raspberry Pis were tested using both a Camera Module V2 and an HQ Camera Module using a 16mm telephoto lens. The Camera Module V2 proved too inadequate for their measurements, so the team opted to stick with the HQ Camera Module. The UAV chosen to compare against the Pi was a DJI Mavic 2 Pro UAV. The Raspberry Pis were then attached to a tripod with critical components like batteries stored inside a weatherproofed box.</p><p>The team mounted some of the Pis to a boat as they passed by while the UAV moved overhead. Recording the glaciers simultaneously allowed the team to get an accurate comparison of the charting ability of both devices. Using the pictures taken by the Pi, the team created a 3D render of the glaciers using photogrammetry.</p><p>Overall, the Pi provided an adequate substitute with a more affordable price point. Once the testing was complete, they left for Peru, where they used the Raspberry Pi kits to monitor glacier calving in the chilly south American region. You can read more about the exciting expedition in the team’s official <a href="https://nhess.copernicus.org/articles/23/329/2023">report</a>.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Raspberry Pi Pico Piano Helper Lights Up Keys to Teach Songs ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/raspberry-pi-pico-piano-helper</link>
                                                                            <description>
                            <![CDATA[ Adrian Cruceru is using a Raspberry Pi Pico to illuminate keyboard keys to help players learn songs by following the lights. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">DjC3SjbvL9q86jENAmY4MN</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/yTvJosSVQUMu4eBdYwEnMF-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 20 May 2023 15:13:29 +0000</pubDate>                                                                                                                                <updated>Wed, 05 Feb 2025 15:12:33 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/yTvJosSVQUMu4eBdYwEnMF-1280-80.jpg">
                                                            <media:credit><![CDATA[Adrian Cruceru]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Raspberry Pi]]></media:description>                                                            <media:text><![CDATA[Raspberry Pi]]></media:text>
                                <media:title type="plain"><![CDATA[Raspberry Pi]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/yTvJosSVQUMu4eBdYwEnMF-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>You can learn a lot about tinkering with microelectronics, but now, thanks to Adrian Cruceru’s latest <a href="https://www.tomshardware.com/topics/raspberry-pi"><u>Raspberry Pi</u></a> project, you can use microelectronics to learn how to play the piano. A Raspberry Pi Pico microcontroller drives his RP2040 Piano helper project and can be programmed to help students learn any song they like. Just follow the LEDs and press the corresponding key to play new songs on the fly.</p><p>The Pico controls a series of LEDs that line up with the keys on a keyboard (or piano). The LEDs illuminate on specific keys so the player knows which key to press next in the song. When not in use, it can also demonstrate a nice gradient effect. The Pico charts out songs by interpreting MIDI files to determine the note and length of time the note is played for.</p><p>To learn a new song, all you have to do is find a MIDI file for the song you want and run it through his converter. Songs can be selected from a browser window. You can have the song programmed to light up the keys at predetermined intervals or use the appropriate timestamps from the original song. This versatility makes it possible to gradually learn songs at your own pace.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/64h5l6f1TDY" allowfullscreen></iframe></div></div><p>To create the project, Cruceru uses a Raspberry Pi Pico module that&apos;s connected to a WS2812B LED strip. This strip is then adjusted into place above the respective keys on his keyboard. Each LED corresponds with a certain note (or key) so that the MIDI file will always cause the right note to be illuminated.</p><p>The code for this project was created from scratch by Cruceru using Micropython. Cruceru was also kind enough to make the project open source. If you want to get a closer look at the code and see how it works from the inside, check out the official RP2040 piano helper project page over at <a href="https://github.com/AdrianCX/pico_piano_helper">GitHub</a>.</p><p>This is one clever <a href="https://www.tomshardware.com/features/best-raspberry-pi-projects">Raspberry Pi project</a> you should really see in action. To check out a video demonstration of the RP2040 piano helper, visit the original thread shared on <a href="https://www.reddit.com/r/raspberry_pi/comments/13m188q/rp2040_piano_helper">Reddit</a> or watch the video on <a href="https://www.youtube.com/watch?v=64h5l6f1TDY">YouTube</a>. Also, be sure to follow him for more cool projects and any future updates on this one.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Control A Raspberry Pi With Your Mind and PiEEG ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/control-a-raspberry-pi-with-your-mind-and-pieeg</link>
                                                                            <description>
                            <![CDATA[ Ildar Rakhmatulin's PiEEG project is a brain-control interface HAT for the Raspberry Pi, which uses bio signals to control your projects. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">nRwsPmS9sAApo8TP7bvLzk</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/eJHQmYQUTuvnX3gzExbnTa-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 27 Mar 2023 17:22:49 +0000</pubDate>                                                                                                                                <updated>Wed, 29 Jan 2025 00:37:10 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Les Pounder ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/mZ2MebAz6hhKR6vLUDUbsc.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/eJHQmYQUTuvnX3gzExbnTa-1280-80.jpg">
                                                            <media:credit><![CDATA[Ildar Rakhmatulin / Pexels.com]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[PiEEG]]></media:description>                                                            <media:text><![CDATA[PiEEG]]></media:text>
                                <media:title type="plain"><![CDATA[PiEEG]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/eJHQmYQUTuvnX3gzExbnTa-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>When we think of inputs, we traditionally think of the <a href="https://www.tomshardware.com/best-picks/best-budget-mechanical-keyboards">best keyboards</a> and <a href="https://www.tomshardware.com/best-picks/best-wireless-mouse">mice</a>. But what if our brain could become the input? <a href="https://www.crowdsupply.com/hackerbci/pieeg">PiEEG</a> starts from $250 and is a Brain-Computer-Interface (BCI) <a href="https://www.tomshardware.com/best-picks/best-raspberry-pi-hats">Raspberry Pi HAT</a> from <a href="https://github.com/HackerBCI/EEGwithRaspberryPI">Ildar Rakhmatulin</a> which uses measurable biosignals as a means of control.  </p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/r6wtBHC4XEiTrbgAgr8hB6.jpg" alt="PiEEG" /><figcaption><small role="credit">Ildar Rakhmatulin</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/5KKrA4UsnuqunNdYYz7Q76.jpg" alt="PiEEG" /><figcaption><small role="credit">Ildar Rakhmatulin</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/qgo8UtuMwe6ah6ko8RHYJH.jpg" alt="PiEEG" /><figcaption><small role="credit">Ildar Rakhmatulin</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/KNzBhuKGobgLXNHw32V536.jpg" alt="PiEEG" /><figcaption><small role="credit">Ildar Rakhmatulin</small></figcaption></figure></figure><p>The measurable bio signals are the same as used in electroencephalography (EEG), electromyography (EMG), and electrocardiography (ECG). The signals are detected using electrodes that are connected to a cap worn by the user. The signals are processed on the Raspberry Pi and, using a Python script, the signals can be visualized and used to control projects such as robots and drones. We asked creator Ildar Rakhmatulin to explain why they made the project: <br><br>"Many years ago I decided to try to make some experience with neuroscience, I wanted to control a robot via mind, but I didn&apos;t find any low-cost and open-source brain-computer interface (BCI), for this reason, I made <a href="https://github.com/Ildaron/ironbci">BCI</a>." </p><p>This initial project was hit by the chip shortage, which saw the cost rise from $350 to $1000. This prompted Rakhmatulin to continue their research using the Raspberry Pi as the processing base.</p><p>PiEEG uses the HAT standard, introduced in 2014, along with the Raspberry Pi B+. The 40-pin GPIO connection uses an SPI connection between the Raspberry Pi and an ADS1299 analog-to-digital converter and can measure up to 250 samples per second, and per channel. It is then just a case of learning to control your biosignals and use them as events to control aspects of the project. <a href="https://github.com/HackerBCI/EEGwithRaspberryPI/tree/master/Robot_control">Rakhmatulin demonstrates how to control a robot by blinking</a> using PiEEG. The robot in question is a toy rat, but it could also be an expensive robot arm or even a drone.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/wNgCEKIXGUY" allowfullscreen></iframe></div></div><p><a href="https://www.crowdsupply.com/hackerbci/pieeg">PiEEG is currently raising support via Crowd Supply</a>, and at the time of writing it has raised $9,100, smashing its $4,000 goal. For $250 you can a 4-channel model or, for $350, 8 channels. Remember that crowdfunding a project is not a guarantee of receiving a finished product. Backing a crowdfunded project is akin to an investment; you believe in the project and want it to succeed. You are not purchasing a retail product.</p><iframe src="https://content.jwplatform.com/players/YdWWS5dA.html" id="YdWWS5dA" title="Raspberry Pi 4 Review: The New Gold Standard for Single-Board Computing" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen></iframe>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ How to Build a Morse Code Receiver with Raspberry Pi ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/how-to/morse-code-receiver-raspberry-pi</link>
                                                                            <description>
                            <![CDATA[ If someone is sending morse code light flashes to you, your Raspberry Pi can decode them. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">stCuhKnQKYtAfRymEiBd67</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/AgD59WtwdAorD3j2RGHemT-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Sat, 05 Feb 2022 14:00:05 +0000</pubDate>                                                                                                                                <updated>Wed, 05 Feb 2025 14:50:06 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                <author><![CDATA[ ryder+toms@ryderdamen.com (Ryder Damen) ]]></author>                    <dc:creator><![CDATA[ Ryder Damen ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/yHmRhXRwnn6Tza4pvE2MAY.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/AgD59WtwdAorD3j2RGHemT-1280-80.png">
                                                            <media:credit><![CDATA[Tom&#039;s Hardware]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Morse Code Receiver Raspberry Pi]]></media:description>                                                            <media:text><![CDATA[Morse Code Receiver Raspberry Pi]]></media:text>
                                <media:title type="plain"><![CDATA[Morse Code Receiver Raspberry Pi]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/AgD59WtwdAorD3j2RGHemT-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>This tutorial is the second in a two part series for building a building-to-building morse code communications system. In it, we’ll explore how to create a morse code receiver using a Raspberry Pi and a Wyze camera. In a prior article, we explained how to <a href="https://www.tomshardware.com/how-to/morse-code-light-raspberry-pi"><u>build a morse code transmitter light with Raspberry Pi</u></a> so this is for the receiving end of the communication.</p><p>I recently moved into a new place, and discovered that my friend and I live in buildings that face each other. We’re about a kilometre apart, but both our balconies have line of sight to each other. I’ve always wanted to build a communications network with my friends since I was a kid, so I dusted off an old book about Morse, one of my Raspberry P’s and got to work. I’m a big fan of mixing old and new technologies, so instead of using something modern, I decided to use Morse code.</p><p>This project is the second (and more difficult) part - receiving and interpreting morse code. Thankfully morse has constant time values for each component of the message, and we use that - with some error bands - to make assumptions about which letters are being transmitted based on the length of the light pulses. Here’s how to do it.</p><h2 id="what-you-x2019-ll-need-for-this-project">What You’ll Need For This Project</h2><ul><li><a href="https://www.tomshardware.com/reviews/raspberry-pi-4"><u>Raspberry Pi 4</u></a> or Raspberry Pi 3 with power adapter</li><li><a href="https://www.amazon.ca/Wyze-Wireless-Camera-Android-Version/dp/B076H3SRXG"><u>Wyze Cam V2 or V3</u></a></li><li>8 GB (or larger) <a href="https://www.amazon.com/SanDisk%C2%AE-microSDHCTM-8GB-Memory-Card/dp/B0012Y2LLE">microSD card</a></li><li><a href="https://www.tomshardware.com/best-picks/best-budget-4k-monitor">Monitor</a> with HDMI and power cables</li></ul><h2 id="how-to-build-a-morse-code-receiver-with-a-raspberry-pi-xa0">How to Build a Morse Code Receiver with a Raspberry Pi </h2><p>Before you get started, get your Raspberry Pi set up. If you haven’t done this before, see our article on how to <a href="https://www.tomshardware.com/how-to/set-up-raspberry-pi"><u>set up a Raspberry Pi</u></a> for the first time. This project requires the full version of Raspbian - not a headless installation.</p><p>1. <strong>Install git. </strong>We’ll need it to download the code from GitHub.</p><pre class="line-numbers language-python" language="python" ><code>sudo apt-get updatesudo apt-get -y install git</code></pre><p>2. <strong>Clone the repository to your home directory.</strong> This will ensure we have all the code necessary to run the project.</p><pre class="line-numbers language-python" language="python" ><code>cd ~/git clone https://github.com/rydercalmdown/building_to_building_morse.git</code></pre><p>3. <strong>Run the “make install-receiver” command </strong>to install all project dependencies. This script will take care of installing lower level dependencies, as well as the Python libraries you need for the project to run.</p><pre class="line-numbers language-python" language="python" ><code>cd ~/building_to_building_morse/make install-receiver</code></pre><p>4. <strong>Set up the Wyze camera. </strong>I’m using a Wyze Cam V2 (V3 also works) to handle the detection.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image3.png" alt="Morse Code Receiver Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/pu9gKJd8RCfhmNLfQLXZZT.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/pu9gKJd8RCfhmNLfQLXZZT.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>5. <strong>Flash the custom RTSP firmware to your Wyze camera</strong> <a href="https://support.wyze.com/hc/en-us/articles/360026245231-Wyze-Cam-RTSP"><u>using this tutorial</u></a>. Installing RTSP support allows us to connect to the camera and grab frames directly with Python.</p><p>6. <strong>Get the RTSP URL value</strong> from your Wyze application, and <strong>export the STREAM_URL variable on your Pi </strong>to point the Raspberry Pi to your camera. You can find the RTSP URL in the “Advanced Settings” section of your Wyze application on your phone.</p><pre class="line-numbers language-python" language="python" ><code>export STREAM_URL=rtsp://your_username:your_password@your_camera_ip/live</code></pre><p>7. <strong>Position your camera</strong> so it’s facing the source of the light.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image2.png" alt="Morse Code Receiver Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/Zg7qWbooA27FKVSFYtMCQT.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/Zg7qWbooA27FKVSFYtMCQT.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>8. <strong>Start the application</strong> with the Make run command. After a few moments, the application will connect to the camera stream and present an image.</p><pre class="line-numbers language-python" language="python" ><code>make run</code></pre><p>9. <strong>Drag and select on the image the area where the morse lighting will be coming from</strong>. For instance, if it is coming from a theatre light, click in the top left of the light, and drag a box down to the bottom right - this tells the code where to look for flashes.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image1.png" alt="Morse Code Receiver Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/K8iiotv5DkCUJr5hhj3xCT.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/K8iiotv5DkCUJr5hhj3xCT.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>10. <strong>Transmit a message with the morse portion of this project</strong> - and receive the decoded messages in the console.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image5.png" alt="Morse Code Receiver Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/7q7X6qW2QCsqbyC8XuP3uT.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/7q7X6qW2QCsqbyC8XuP3uT.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>That’s it! These two tutorials should give you a basic idea of how to get started transmitting messages with morse. Feel free to adjust the code to increase resiliency, use different light sources, cameras, or even different encoding methods for communications.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ How to Build a Morse Code Transmitter Light with Raspberry Pi ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/how-to/morse-code-light-raspberry-pi</link>
                                                                            <description>
                            <![CDATA[ Turn a large DJ light into a morse code communications device. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">tHn3e8hDKLQnHzxQMJAm8A</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/CHKpf2xfxqufGEjocb9vyR-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 16 Jan 2022 13:00:48 +0000</pubDate>                                                                                                                                <updated>Wed, 05 Feb 2025 14:50:08 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                <author><![CDATA[ ryder+toms@ryderdamen.com (Ryder Damen) ]]></author>                    <dc:creator><![CDATA[ Ryder Damen ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/yHmRhXRwnn6Tza4pvE2MAY.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/CHKpf2xfxqufGEjocb9vyR-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Hardware]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Morse Code Transmitter Light with Raspberry Pi]]></media:description>                                                            <media:text><![CDATA[Morse Code Transmitter Light with Raspberry Pi]]></media:text>
                                <media:title type="plain"><![CDATA[Morse Code Transmitter Light with Raspberry Pi]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/CHKpf2xfxqufGEjocb9vyR-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I recently moved into a new place, and discovered that my friend and I live in buildings that face each other. We’re about a kilometer apart, but both our balconies have line of sight to each other. I’ve always wanted to build a communications network with my friends since I was a kid, so I dusted off an old book about Morse, one of my Raspberry P’s and got to work. I’m a big fan of mixing old and new technologies, so instead of using something modern, I decided to use Morse code.</p><p>This tutorial is the first in a two part series for building a building-to-building morse code communications system. In it, we’ll explore how to create a morse code transmitter using a Raspberry Pi and a DJ light.</p><h2 id="what-you-x2019-ll-need-for-this-project-2">What You’ll Need For This Project</h2><ul><li><a href="https://www.tomshardware.com/reviews/raspberry-pi-4"><u>Raspberry Pi 4</u></a> or Raspberry Pi 3 with power adapter</li><li><a href="https://www.amazon.ca/ENTTEC-Open-DMX-USB/dp/B00O9RY664"><u>Enttec Open DMX USB Adapter</u></a></li><li>DMX Capable RGB DJ Light</li><li>5-pin male to 3-pin female DMX cable</li><li>8 GB (or larger) microSD card</li><li>Monitor with HDMI and power cables. (Optional)</li></ul><h2 id="how-to-build-a-morse-code-transmitter-with-a-raspberry-pi">How to Build a Morse Code Transmitter with a Raspberry Pi</h2><p>Before you get started, get your Raspberry Pi set up. If you haven’t done this before, see our article on how to <a href="https://www.tomshardware.com/reviews/raspberry-pi-set-up-how-to,6029.html"><u>set up a Raspberry Pi</u></a> for the first time or how to do a <a href="https://www.tomshardware.com/reviews/raspberry-pi-headless-setup-how-to,6028.html"><u>headless Raspberry Pi install</u></a> (without the keyboard and screen). For this project, we recommend a <a href="https://www.tomshardware.com/reviews/raspberry-pi-headless-setup-how-to,6028.html"><u>headless Raspberry Pi install</u></a>.</p><p>1. <strong>Install git. </strong>We’ll need it to download the code from GitHub.</p><pre class="line-numbers language-python" language="python" ><code>sudo apt-get updatesudo apt-get -y install git</code></pre><p>2. <strong>Clone the repository to your home directory.</strong> This will ensure we have all the code necessary to run the project.</p><pre class="line-numbers language-python" language="python" ><code>cd ~/git clone https://github.com/rydercalmdown/building_to_building_morse.git</code></pre><p>3. <strong>Connect your Enttec Open DMX USB adapter to your Raspberry Pi </strong>with the included USB cable.</p><p><br></p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/t2q2SJ28E2ByJJSmZ89JvS.jpg" alt="Morse Code Transmitter Light with Raspberry Pi" /><figcaption><small role="credit">Tom's Hardware</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/BJenFrgkCpdWrGTUkWHFQS.jpg" alt="Morse Code Transmitter Light with Raspberry Pi" /><figcaption><small role="credit">Tom's Hardware</small></figcaption></figure></figure><p>4. <strong>Run the “make install” command </strong>to install all project dependencies. This script will take care of installing lower level dependencies, as well as the Python libraries you need for the project to run.</p><p><br></p><p><br></p><pre class="line-numbers language-python" language="python" ><code>cd ~/building_to_building_morse/make install</code></pre><p>5. <strong>Run the ola_dev_info command </strong>to retrieve the device and port number of the Enttec device.</p><pre class="line-numbers language-python" language="python" ><code>ola_dev_info | grep FT232R</code></pre><p>6. Using the device number (example 8) and port number (example 1) provided in the output, <strong>run the patch command </strong>to patch the device and port to DMX universe 0.</p><pre class="line-numbers language-python" language="python" ><code># patching device ( -d ) 8 and port ( -p ) 1 to universe 0.# replace 8 and 1 with the respective from the previous commandola_patch -d 8 -p 1 -u 0</code></pre><p>7. <strong>Connect your DMX light to the Enttec USB adapter</strong> with a DMX cable, and plug your light in.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/xsBMxVPzj6DRHgv9CrhRjS.jpg" alt="Morse Code Transmitter Light with Raspberry Pi" /><figcaption><small role="credit">Tom's Hardware</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/phq9qRCnsvgbPpNEG52YAT.jpg" alt="Morse Code Transmitter Light with Raspberry Pi" /><figcaption><small role="credit">Tom's Hardware</small></figcaption></figure></figure><p>8. <strong>Turn on your DMX light </strong>and ensure it’s running on DMX channel 001.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image9.jpg" alt="Morse Code Transmitter Light with Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/L5cNY2K9dxZhHveuiF3EKT.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/L5cNY2K9dxZhHveuiF3EKT.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>9. <strong>Test your light with the following command </strong>on your Raspberry Pi. It should display a bright white.</p><p><br></p><pre class="line-numbers language-python" language="python" ><code>ola_streaming_client -d 255,255,255 -u 0</code></pre><p>10. <strong>Run the make transmit command</strong>; this will start a web server that can be accessed from a remote machine at your Pi’s IP address.</p><p><br></p><pre class="line-numbers language-python" language="python" ><code>make transmit</code></pre><p>11. On another machine, <strong>connect to the Pi’s IP address</strong> on port 8000 to see the enter-message command.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image1.jpg" alt="Morse Code Transmitter Light with Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/SMLc4jJCgm5eUYcSB2ykkR.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/SMLc4jJCgm5eUYcSB2ykkR.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>12. <strong>Enter a message </strong>and <strong>click enter</strong>. The Pi will convert it to morse code, and flash the light with the corresponding morse.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image5.jpg" alt="Morse Code Transmitter Light with Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/BLFWiADaENij2vHiwxKrZS.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/BLFWiADaENij2vHiwxKrZS.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>13. <strong>Set up your light </strong>facing a friend’s house, and get ready to build the receiving module.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image3.jpg" alt="Morse Code Transmitter Light with Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/eykYqrcdRMXFMkiGjiTRCS.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/eykYqrcdRMXFMkiGjiTRCS.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>In a future tutorial, we’ll handle the more complicated task of receiving the messages, so your friends can actually understand what you’re communicating.</p><pre class="line-numbers language-python" language="python" ><code>--. --- --- -.. / .-.. ..- -.-. -.-</code></pre>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ How to Build a Tweeting Weather Bot with Raspberry Pi ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/how-to/build-twitter-weather-bot-raspberry-pi</link>
                                                                            <description>
                            <![CDATA[ Build an automated bot that captures images of the outdoors and tweets them, along with the weather on a regular basis. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">7JkqUMEeS9HnQqCpYs9Kid</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/YXeQyExZtZQK27GKJwBHbL-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 26 Dec 2021 14:00:45 +0000</pubDate>                                                                                                                                <updated>Wed, 05 Feb 2025 14:48:30 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                <author><![CDATA[ ryder+toms@ryderdamen.com (Ryder Damen) ]]></author>                    <dc:creator><![CDATA[ Ryder Damen ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/yHmRhXRwnn6Tza4pvE2MAY.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/YXeQyExZtZQK27GKJwBHbL-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Hardware]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Twitter Weather Bot with a Raspberry Pi]]></media:description>                                                            <media:text><![CDATA[Twitter Weather Bot with a Raspberry Pi]]></media:text>
                                <media:title type="plain"><![CDATA[Twitter Weather Bot with a Raspberry Pi]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/YXeQyExZtZQK27GKJwBHbL-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>When I first started getting into programming, one of my mentors built a project where he took an image every day, overlaid the current weather, and tweeted it. I remember at the time thinking there was no way I could ever build something that complicated. </p><p>Fast forward to now, it’s a relatively simple thing to put together - and in my opinion, a great starter project for someone getting involved with programming. So with all those in mind, let’s build a twitter bot that takes a photo every day and tweets it out, using a <a href="https://www.tomshardware.com/news/raspberry-pi"><u>Raspberry Pi</u></a>.</p><h2 id="what-you-x2019-ll-need-raspberry-pi-twitter-weather-bot">What You’ll Need: Raspberry Pi Twitter Weather Bot</h2><ul><li><a href="https://www.tomshardware.com/reviews/raspberry-pi-4"><u>Raspberry Pi 4</u></a> or Raspberry Pi 3 with power adapter</li><li><a href="https://www.amazon.com/Creative-Labs-Pebble-Black-Loudspeaker/dp/B0791H74NT/"><u>Desktop speakers or a megaphone with a 3.5mm input and 3.5mm cable</u></a></li><li><a href="https://www.amazon.com/WYZE-Indoor-Monitoring-Camera-MicroSD/dp/B08ZXQG4FX/"><u>Wyze Cam</u></a></li><li>8 GB (or larger) microSD card</li><li>A Twitter account</li><li>An OpenWeatherMap account</li></ul><h2 id="how-to-build-a-twitter-weather-bot-with-raspberry-pi">How to Build a Twitter Weather Bot with Raspberry Pi</h2><p>Before you get started, get your Raspberry Pi set up. If you haven’t done this before, see our article on how to <a href="https://www.tomshardware.com/reviews/raspberry-pi-set-up-how-to,6029.html"><u>set up a Raspberry Pi</u></a> for the first time or how to do a <a href="https://www.tomshardware.com/reviews/raspberry-pi-headless-setup-how-to,6028.html"><u>headless Raspberry Pi install</u></a> (without the keyboard and screen). For this project, we recommend a <a href="https://www.tomshardware.com/reviews/raspberry-pi-headless-setup-how-to,6028.html"><u>headless Raspberry Pi install</u></a>.</p><p>1. <strong>Install git. </strong>We’ll need it to download the code from GitHub.</p><pre class="line-numbers language-python" language="python" ><code>sudo apt-get updatesudo apt-get -y install git</code></pre><p>2. <strong>Clone the repository to your home directory.</strong> This will ensure we have all the code and audio files we need to run the project.</p><pre class="line-numbers language-python" language="python" ><code>cd ~/git clone https://github.com/rydercalmdown/weather_twitter_bot.git</code></pre><p>3. <strong>Run the “make install” command </strong>to install all project dependencies. This script will take care of installing lower level dependencies, as well as the Python libraries you need for the project to run. This can take up to 10-15 minutes on a Raspberry Pi Zero.</p><pre class="line-numbers language-python" language="python" ><code>cd ~/weather_twitter_bot/make install</code></pre><p>4. <strong>Get an API Key from </strong><a href="https://openweathermap.org/api"><u><strong>Open Weather Map</strong></u></a><strong>. </strong>You will need to sign up for an account and retrieve the key from there.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image2.jpg" alt="Twitter Weather Bot with a Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/KPF4VrTvwJUpiYPEBLaSVL.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/KPF4VrTvwJUpiYPEBLaSVL.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>5. <strong>Create a twitter application</strong> by visiting the <a href="https://developer.twitter.com/"><u>Twitter Developer Portal</u></a> and clicking Create a Project and Create an Application.</p><p>6. <strong>Choose the development environment</strong> for your application, then hit next.</p><p>7. <strong>Name your application</strong> a unique name across the twitter-verse, like weatherbot-yournamehere, then click next.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image8.jpg" alt="Twitter Weather Bot with a Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/BBZFF2FSsDAdJPBSPFHkBM.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/BBZFF2FSsDAdJPBSPFHkBM.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>8. <strong>Save the API_KEY and API_KEY_SECRET values</strong> on the next page, then close the dialog.</p><p>9. <strong>Navigate to your application settings</strong> and<strong> find the “App Permissions section”</strong>, then <strong>click edit</strong>. <strong>Modify the application permissions</strong> to “Read and write”, then click save.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image5.jpg" alt="Twitter Weather Bot with a Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/kg6Mud4AisUnRpV6oJmhpL.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/kg6Mud4AisUnRpV6oJmhpL.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>10. At the top of the page,<strong> navigate to the “Keys and tokens” tab,</strong> then scroll down to “Access Token and Secret”). <strong>Click generate</strong>, and <strong>store the values for later.</strong></p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image9.jpg" alt="Twitter Weather Bot with a Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/Kw8SjqWagMRPoYc8x77sJM.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/Kw8SjqWagMRPoYc8x77sJM.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>11. <strong>Flash the custom RTSP firmware to your Wyze camera</strong> <a href="https://support.wyze.com/hc/en-us/articles/360026245231-Wyze-Cam-RTSP"><u>using this tutorial</u></a>. Installing RTSP support allows us to connect to the camera and grab frames directly with Python. You will need a Wyze V2 or V3 camera and a microSD card.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image4.jpg" alt="Twitter Weather Bot with a Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/kXYWEy3pX3DXinsfQA5FgL.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/kXYWEy3pX3DXinsfQA5FgL.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>12. <strong>Get the RTSP URL value</strong> from your Wyze application, and <strong>edit the RTSP_URI variable in the Makefile</strong> to point the Raspberry Pi to your camera. You can find the RTSP URL in the “Advanced Settings” section of your Wyze application on your phone.</p><p>13. <strong>Set the RTSP URL environment variable</strong> from your camera.</p><pre class="line-numbers language-python" language="python" ><code># If you’re using a Wyze cam, this can be retrieved from the Wyze applicationRTSP_URL=rtsp://username:password@10.0.0.1/live</code></pre><p>14. <strong>Export your weather API key.</strong></p><pre class="line-numbers language-python" language="python" ><code>Export WEATHER_API_KEY=your_openweathermap_api_key</code></pre><p>15. <strong>Export your twitter application credentials</strong>.</p><pre class="line-numbers language-python" language="python" ><code># From the first stage of the app creation processexport TWITTER_APP_API_KEY=your_keyexport TWITTER_APP_API_KEY_SECRET=your_secret# From the generate access token and secret stage of the app creation processexport TWITTER_ACCESS_TOKEN=your_tokenexport TWITTER_ACCESS_TOKEN_SECRET=your_secret</code></pre><p>Note, keep these values secret, they allow access to your twitter account. If you lose or leak them, you can regenerate them in the twitter developer console at any time.</p><p>16. <strong>Set up your camera to point outside</strong> for the best view.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image1.jpg" alt="Twitter Weather Bot with a Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/3j3iygkYq3K8Niw9x5TdQL.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/3j3iygkYq3K8Niw9x5TdQL.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>17. <strong>Run the make run command.</strong></p><pre class="line-numbers language-python" language="python" ><code>make run</code></pre><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/Dgzo655n7tLEnfUGrujF5M.jpg" alt="Twitter Weather Bot with a Raspberry Pi" /><figcaption><small role="credit">Tom's Hardware</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/AHSHemdJvdiRsMNyCkd7xL.jpg" alt="Twitter Weather Bot with a Raspberry Pi" /><figcaption><small role="credit">Tom's Hardware</small></figcaption></figure></figure><p>You now have a script that automatically takes a photo of the view, overlays the weather on top of it, and tweets the information out for the world to see. Use it at your leisure, or try automating it with <a href="https://www.tomshardware.com/how-to/run-script-at-boot-raspberry-pi"><u>crontab</u></a> - good luck!</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Creating an X Days Until Xmas Sign with Raspberry Pi ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/how-to/raspberry-pi-x-days-countdown-sign</link>
                                                                            <description>
                            <![CDATA[ Show just how many days you have left before the holiday, on a 64x64 display. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">3vkUGtAUx3DY4Ex5RWkd9M</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/jAD5Cphay6kPfwSjR2CzUL-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 20 Dec 2021 17:47:05 +0000</pubDate>                                                                                                                                <updated>Thu, 30 Jan 2025 16:35:30 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                <author><![CDATA[ ryder+toms@ryderdamen.com (Ryder Damen) ]]></author>                    <dc:creator><![CDATA[ Ryder Damen ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/yHmRhXRwnn6Tza4pvE2MAY.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/jAD5Cphay6kPfwSjR2CzUL-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Hardware]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Raspberry Pi Countdown Sign]]></media:description>                                                            <media:text><![CDATA[Raspberry Pi Countdown Sign]]></media:text>
                                <media:title type="plain"><![CDATA[Raspberry Pi Countdown Sign]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/jAD5Cphay6kPfwSjR2CzUL-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>My city has a very popular Christmas market, with a giant sign advertising the number of days until Christmas. I wanted something similar for my apartment to improve my festive spirit, but more importantly let me know how long I have to get my gift shopping done.</p><p>Using a Raspberry Pi and an Adafruit 64x64 pixel matrix we can build a festive sign that displays the number of days left, as well as a number of festive Christmas GIFs to get you in the holiday spirit.</p><h2 id="what-you-x2019-ll-need-for-this-project-3">What You’ll Need For This Project</h2><ul><li><a href="https://www.tomshardware.com/reviews/raspberry-pi-4"><u>Raspberry Pi 4</u></a>, Raspberry Pi 3, or Raspberry Pi Zero with power adapter</li><li>8 GB (or larger) microSD card for Raspberry Pi</li><li><a href="https://www.adafruit.com/product/4732"><u>Adafruit 64x64 LED Matrix</u></a></li><li><a href="https://www.adafruit.com/product/3211"><u>Adafruit RGB Matrix Bonnet for Raspberry Pi</u></a></li><li>Soldering Iron & Solder</li><li>5V Power Supply with barrel connector</li><li>Small flat head screwdriver</li></ul><h2 id="how-to-build-a-x201c-x-days-until-xmas-x201d-sign-with-a-raspberry-pi">How to Build a “X Days Until Xmas” Sign with a Raspberry Pi</h2><p>Before you get started, get your Raspberry Pi set up. If you haven’t done this before, see our article on how to <a href="https://www.tomshardware.com/how-to/set-up-raspberry-pi"><u>set up a Raspberry Pi</u></a> for the first time or how to do a <a href="https://www.tomshardware.com/reviews/raspberry-pi-headless-setup-how-to,6028.html"><u>headless Raspberry Pi install</u></a> (without the keyboard and screen). For this project, we recommend a <a href="https://www.tomshardware.com/reviews/raspberry-pi-headless-setup-how-to,6028.html"><u>headless Raspberry Pi install</u></a>.</p><p>1. <strong>Install git. </strong>We’ll need it to download the code from GitHub.</p><pre class="line-numbers language-python" language="python" ><code>sudo apt-get updatesudo apt-get -y install git</code></pre><p>2. <strong>Clone the repository to your home directory.</strong> This will ensure we have all the code and audio files we need to run the project.</p><pre class="line-numbers language-python" language="python" ><code>cd ~/git clone https://github.com/rydercalmdown/days_until_xmas_sign.git</code></pre><p>3. <strong>Run the “make install” command </strong>to install all project dependencies. This script will take care of installing lower level dependencies, as well as the Python libraries you need for the project to run.</p><pre class="line-numbers language-python" language="python" ><code>cd ~/days_until_xmas_sign/make install</code></pre><p>4. <strong>Run the “make setup” command</strong> to download and run the Adafruit LED matrix setup script.</p><pre class="line-numbers language-python" language="python" ><code>make setup</code></pre><p>5. Follow the instructions in the setup script, <strong>selecting the Adafruit RGB Matrix Bonnet</strong>, and then <strong>selecting “CONVENIENCE” instead of “QUALITY” </strong>when prompted.</p><p>6. <strong>Select Reboot on the Pi</strong> when requested by the script.</p><pre class="line-numbers language-python" language="python" ><code>sudo reboot</code></pre><p>7. Connect the<strong> LED matrix to the included 5V power cable</strong>, careful to align them correctly.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image1.jpg" alt="Raspberry Pi Countdown Sign" src="https://cdn.mos.cms.futurecdn.net/zb9d3Mt5XxriLi3mCgBQVK.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/zb9d3Mt5XxriLi3mCgBQVK.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>8. <strong>Flip over the Raspberry Pi LED Matrix Bonnet and apply a small bit of solder shorting the 8 and E pins </strong>on the back. This is necessary for the 64x64 matrix to function.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/qbqamCc3JzCE5mruHKEUdL.jpg" alt="Raspberry Pi Countdown Sign" /><figcaption><small role="credit">Tom's Hardware</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/eJtcZ9KUD7DCPxq5fX55HL.jpg" alt="Raspberry Pi Countdown Sign" /><figcaption><small role="credit">Tom's Hardware</small></figcaption></figure></figure><p>9. Using a small flat-head screwdriver, <strong>connect the other end of the power cable to the bonnet</strong>, careful to align ground and 5v in the correct places.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image2.jpg" alt="Raspberry Pi Countdown Sign" src="https://cdn.mos.cms.futurecdn.net/fsKvfR7rR4JHcm8PrRBXcK.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/fsKvfR7rR4JHcm8PrRBXcK.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>10. <strong>Attach the data pins to the input side of the matrix</strong>; look for multiple arrows pointing in one direction on the board; the connection will be to the most “upstream” port, IE the source of the arrows, not the destination.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image4.jpg" alt="Raspberry Pi Countdown Sign" src="https://cdn.mos.cms.futurecdn.net/8eaLjikD3XMhMzmdM6zVpK.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/8eaLjikD3XMhMzmdM6zVpK.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>11. <strong>Attach the other end of the data cable to the bonnet</strong>.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image5.jpg" alt="Raspberry Pi Countdown Sign" src="https://cdn.mos.cms.futurecdn.net/VT8wRKdK9SQWPU6BE2BNxK.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/VT8wRKdK9SQWPU6BE2BNxK.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>12. <strong>Affix the bonnet on your Raspberry Pi GPIO pins</strong>, lining up and then pushing down on the GPIO pins until it&apos;s snug.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image7.jpg" alt="Raspberry Pi Countdown Sign" src="https://cdn.mos.cms.futurecdn.net/d4tz8C6MU7aUnGUiEBkjML.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/d4tz8C6MU7aUnGUiEBkjML.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>13. Using a barrel connector, <strong>connect your 5V power supply to the bonnet</strong>.</p><p>14. <strong>Use the Make run command to start the application</strong>. If you’ve set everything up correctly, you should see logs with details about what’s being shown on the display, and the display should flash to life.</p><pre class="line-numbers language-python" language="python" ><code>cd ~/days_until_xmas_sign/make run</code></pre><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image8.jpg" alt="Raspberry Pi Countdown Sign" src="https://cdn.mos.cms.futurecdn.net/jAD5Cphay6kPfwSjR2CzUL.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/jAD5Cphay6kPfwSjR2CzUL.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>15. <strong>Download any gifs you may want into the src/images directory</strong>. I’ve left you a few starter christmas gifs, but feel free to add any of your own. As long as they end in .gif, the application will pick them up and display them. For best results, make sure they’re square.</p><p><br></p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image3.jpg" alt="Raspberry Pi Countdown Sign" src="https://cdn.mos.cms.futurecdn.net/Ph5fvzFMtRJ4KEBbhX54iK.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/Ph5fvzFMtRJ4KEBbhX54iK.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>And that’s it - enjoy! The sign will display the number of days until xmas, with a gif break every 2 minutes. If you’re looking to customize this, you can do so by editing the src/display_controller.py variables. Make sure to get your shopping done early!</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ How to Control DMX Lights with Raspberry Pi ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/how-to/control-dmx-lights-raspberry-pi</link>
                                                                            <description>
                            <![CDATA[ DMX lighting is the standard used in entertainment settings such as in the theatre or by DJs. Using an adapter and the right code, you can control DMX from your Pi. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">76K8JYCbsvWNAKAAhzjBJb</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/XaVACbwyQhCkzfvFzbKrBn-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 11 Dec 2021 13:41:12 +0000</pubDate>                                                                                                                                <updated>Thu, 30 Jan 2025 13:42:17 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                <author><![CDATA[ ryder+toms@ryderdamen.com (Ryder Damen) ]]></author>                    <dc:creator><![CDATA[ Ryder Damen ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/yHmRhXRwnn6Tza4pvE2MAY.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/XaVACbwyQhCkzfvFzbKrBn-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Hardware]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Control DMX Lights with Raspberry Pi]]></media:description>                                                            <media:text><![CDATA[Control DMX Lights with Raspberry Pi]]></media:text>
                                <media:title type="plain"><![CDATA[Control DMX Lights with Raspberry Pi]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/XaVACbwyQhCkzfvFzbKrBn-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I have an upcoming project where I’ll be controlling the exterior lights on a prominent building in my city, and in order to do that, I need to master controlling DMX fixtures with a Raspberry Pi. I have an old DJ style light sitting at home that uses the DMX protocol that is perfect for testing. With a Raspberry Pi and a DMX adapter, we can use a bit of python to program the fixture. Getting it to work was an arduous process, so I hope I can make it simpler for the next person. If you’re looking to control DMX lights with a Raspberry Pi, here’s the easy way to do it. </p><h2 id="what-you-x2019-ll-need-for-this-project-4">What You’ll Need For This Project</h2><ul><li><a href="https://www.tomshardware.com/reviews/raspberry-pi-4"><u>Raspberry Pi 4</u></a>, Raspberry Pi 3, or Raspberry Pi Zero with power adapter and SD card</li><li><a href="https://www.enttec.com/product/lighting-communication-protocols/dmx512/open-dmx-usb/"><u>Enttec Open DMX USB Adapter</u></a></li><li>A DMX-compatible lighting fixture</li><li>A 5-pin DMX cable (with 5 to 3 pin adapter if necessary for your fixture)</li></ul><h2 id="how-to-control-dmx-lights-with-a-raspberry-pi-the-easy-way-xa0">How to control DMX lights with a Raspberry Pi (the easy way) </h2><p>For this project, we’ll be using the <a href="https://github.com/OpenLightingProject/ola"><u>Open Lighting Architecture (OLA)</u></a> to send DMX frames to the lights. Before you get started, get your Raspberry Pi set up. If you haven’t done this before, see our article on how to <a href="https://www.tomshardware.com/how-to/set-up-raspberry-pi"><u>set up a Raspberry Pi</u></a> for the first time or how to do a <a href="https://www.tomshardware.com/reviews/raspberry-pi-headless-setup-how-to,6028.html"><u>headless Raspberry Pi install</u></a> (without the keyboard and screen). For this project, we recommend a <a href="https://www.tomshardware.com/reviews/raspberry-pi-headless-setup-how-to,6028.html"><u>headless Raspberry Pi install</u></a>.</p><p>1. <strong>Install base requirements</strong> necessary for the project, including OLA, python, and python-bindings for the project.</p><pre class="line-numbers language-python" language="python" ><code>sudo apt-get updatesudo apt-get install -y \   ola \   git \   ola-python \   python3-pip</code></pre><p>2. <strong>Add the pi user to the olad group.</strong></p><pre class="line-numbers language-python" language="python" ><code>sudo adduser pi olad</code></pre><p>3. Descend into the OLA configuration directory and <strong>back up a few plugin config files. </strong>We won’t use the backups, but it’s helpful in case you need to reference something later on.</p><pre class="line-numbers language-python" language="python" ><code>cd /etc/ola/sudo cp ola-ftdidmx.conf ola-ftdidmx.conf.baksudo cp ola-usbserial.conf ola-usbserial.conf.baksudo cp ola-opendmx.conf ola-opendmx.conf.bak</code></pre><p>4. <strong>Edit the ola-ftdidmx.conf file to set `enabled=false` to` enabled=true`</strong>. You can use a text editor, or the command below.</p><pre class="line-numbers language-python" language="python" ><code>sudo tee ./ola-ftdidmx.conf > /dev/null <<EOLenabled = truefrequency = 30EOL</code></pre><p>5. <strong>Edit the ola-usbserial.conf </strong>and <strong>ola-opendmx.conf files to set `enabled = false`</strong>. You can use a text editor, or the commands below.</p><pre class="line-numbers language-python" language="python" ><code>sudo tee ./ola-usbserial.conf > /dev/null <<EOFdevice_dir = /devdevice_prefix = ttyUSBdevice_prefix = cu.usbserial-device_prefix = ttyUenabled = falsepro_fps_limit = 190tri_use_raw_rdm = falseultra_fps_limit = 40EOFsudo tee ./ola-opendmx.conf > /dev/null <<EOFdevice = /dev/dmx0enabled = falseEOF</code></pre><p>6. <strong>Reload the plugins</strong> by restarting the OLA daemon.</p><pre class="line-numbers language-python" language="python" ><code>sudo killall -s SIGHUP olad</code></pre><p>7. <strong>Plug in your Enttec Open DMX USB adapter to your Raspberry Pi</strong>, any USB port will do.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image6.jpg" alt="Control DMX Lights with Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/LR46rKg5TBArVosMn3PLLn.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/LR46rKg5TBArVosMn3PLLn.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>8. Using a DMX cable <strong>connect your Open DMX adapter to your fixture</strong>; make sure it is powered on and in DMX mode.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image7.jpg" alt="Control DMX Lights with Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/YsoYNjy7aAv7UNe3pgeuVn.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/YsoYNjy7aAv7UNe3pgeuVn.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>9. <strong>Run the following command to discover your device</strong>, note the number next to device ID.</p><pre class="line-numbers language-python" language="python" ><code>ola_dev_info | grep FT232R</code></pre><p>Note: if your device is not discoverable, navigate to the web interface in step 11, and click “Reload plugins” - then try again.</p><p>10. <strong>Patch your device into a DMX universe</strong> (we’ll use universe 0) with the following command:</p><pre class="line-numbers language-python" language="python" ><code># Adjust device ID (-d 8), and port (-p 1) to match your device from the previous commandola_patch -d 8 -p 1 -u 0</code></pre><p>11. <strong>Visit the IP address of your Raspberry Pi </strong>in your web browser<strong>, followed by the port 9090</strong> to confirm the universe has been created.</p><pre class="line-numbers language-python" language="python" ><code>open http://10.0.0.1:9090</code></pre><p>12. In the web interface, <strong>select your universe, navigate to the DMX Console tab, </strong>and <strong>increase the sliders for each channel </strong>until you see your fixture start lighting up. For my fixture, channel 1 controls red, 2 controls blue, and 3 controls green. By adjusting individual channels we can control the color of the fixture.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/vRwqxGemxEf9ARfuXRFW3n.png" alt="Control DMX Lights with Raspberry Pi" /><figcaption><small role="credit">Tom's Hardware</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/UCt8wQuBp3ZijGwqeAEBbm.jpg" alt="Control DMX Lights with Raspberry Pi" /><figcaption><small role="credit">Tom's Hardware</small></figcaption></figure></figure><p>13. Using git, <strong>clone the example python repository</strong> to your home directory.</p><pre class="line-numbers language-python" language="python" ><code>cd ~/git clone https://github.com/rydercalmdown/dmx_lights.git</code></pre><p>14. Descend into the directory and <strong>install the repository requirements.</strong></p><pre class="line-numbers language-python" language="python" ><code>cd dmx_lightsmake install</code></pre><p>15. <strong>Start the flask server</strong> with the following command. You can then visit the IP address of the Pi on port 8000 to see the server.</p><pre class="line-numbers language-python" language="python" ><code>make run</code></pre><p>16. <strong>Change the colour of the lights </strong>by visiting the wash endpoints with curl or in your browser.</p><pre class="line-numbers language-python" language="python" ><code>curl http://IP_ADDRESS_OF_YOUR_PI:8000/wash/red/curl http://IP_ADDRESS_OF_YOUR_PI:8000/wash/random/curl http://IP_ADDRESS_OF_YOUR_PI:8000/wash/blue/curl http://IP_ADDRESS_OF_YOUR_PI:8000/blackout/</code></pre><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image3.jpg" alt="Control DMX Lights with Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/pk7c8btimcpWVdaYoajutm.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/pk7c8btimcpWVdaYoajutm.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>Hopefully, this gives you an example of how to get started with python and a Raspberry Pi to control DMX fixtures. Getting this to work properly for me was a weekend-long affair, but by following these instructions you should be able to get it done in under an hour. Good luck!</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image2.jpg" alt="Control DMX Lights with Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/yvq4hJKt3TkLZqvt3wUNkm.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/yvq4hJKt3TkLZqvt3wUNkm.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ How To Build a Piano LED Light  Strip with Raspberry Pi ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/how-to/build-piano-led-trip-raspberry-pi</link>
                                                                            <description>
                            <![CDATA[ Using a Raspberry Pi, you can make a light strip illuminate whenever you hit the appropriate keys. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">6zpYZ8HfbSWBLpSSmGo2ak</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/u2hDpwUaoRfjtkMvLj9scM-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 04 Dec 2021 15:30:15 +0000</pubDate>                                                                                                                                <updated>Wed, 05 Feb 2025 14:48:29 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                <author><![CDATA[ ryder+toms@ryderdamen.com (Ryder Damen) ]]></author>                    <dc:creator><![CDATA[ Ryder Damen ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/yHmRhXRwnn6Tza4pvE2MAY.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/u2hDpwUaoRfjtkMvLj9scM-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Hardware]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Raspberry Pi Piano LEDs]]></media:description>                                                            <media:text><![CDATA[Raspberry Pi Piano LEDs]]></media:text>
                                <media:title type="plain"><![CDATA[Raspberry Pi Piano LEDs]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/u2hDpwUaoRfjtkMvLj9scM-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I often see piano tutorial videos on YouTube where lights appear to illuminate the players’ hands right as they play the keys. Using the power of a MIDI, a Raspberry Pi, and some programmable LEDs, I wanted to see if I could turn my piano into something similar. If you dabble in technology as much as you do music - here’s how to build a LED strip for your piano that lights up as you play it. </p><h2 id="what-you-x2019-ll-need-for-this-project-5">What You’ll Need For This Project</h2><ul><li><a href="https://www.tomshardware.com/reviews/raspberry-pi-4"><u>Raspberry Pi 4</u></a> or Raspberry Pi 3, or Raspberry Pi Zero with power adapter and SD card</li><li>Digital Piano with MIDI USB output and corresponding USB cable</li><li>Programmable LED strip (1 meter or greater)</li><li>Jumper cables</li></ul><iframe src="https://content.jwplatform.com/players/DS2deUui.html" id="DS2deUui" title="Piano Keys Preview" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen></iframe><h2 id="how-to-turn-a-raspberry-pi-into-a-piano-led-light-up-strip">How to Turn a Raspberry Pi into a Piano LED Light Up Strip</h2><p>Before you get started, get your Raspberry Pi set up. If you haven’t done this before, see our article on how to <a href="https://www.tomshardware.com/how-to/set-up-raspberry-pi"><u>set up a Raspberry Pi</u></a> for the first time or how to do a <a href="https://www.tomshardware.com/reviews/raspberry-pi-headless-setup-how-to,6028.html"><u>headless Raspberry Pi install</u></a> (without the keyboard and screen). For this project, we recommend a <a href="https://www.tomshardware.com/reviews/raspberry-pi-headless-setup-how-to,6028.html"><u>headless Raspberry Pi install</u></a>.</p><p>1. <strong>Install git. </strong>We’ll need it to download the code from GitHub.</p><pre class="line-numbers language-python" language="python" ><code>sudo apt-get updatesudo apt-get -y install git</code></pre><p>2. <strong>Clone the repository to your home directory.</strong> This will ensure we have all the code and audio files we need to run the project.</p><pre class="line-numbers language-python" language="python" ><code>cd ~/git clone https://github.com/rydercalmdown/piano_key_illuminator.git</code></pre><p>3. <strong>Run the “make install” command </strong>to install all project dependencies. This script will take care of installing lower level dependencies, as well as the Python libraries you need for the project to run. This should take about 10-15 minutes on a Raspberry Pi 4.</p><pre class="line-numbers language-python" language="python" ><code>cd ~/piano_key_illuminator/make install</code></pre><p>4. <strong>Unbox your LED strip and affix it to the piano</strong> with the sticky tape on the back. If it’s not long enough to cover the entire length of the keys, place it in the middle of the piano.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/R4tuLTZaynQoPyzqTJsAtL.jpg" alt="Raspberry Pi Piano LEDs" /><figcaption><small role="credit">Tom's Hardware</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/jHPGeSoDifn6KAbWRAWZSM.jpg" alt="Raspberry Pi Piano LEDs" /><figcaption><small role="credit">Tom's Hardware</small></figcaption></figure></figure><p>5. <strong>Attach the 5V and ground pins</strong> of your LED strip to your Raspberry Pi board pins 4 and 6 respectively.</p><p>6. <strong>Attach the data-in pin</strong> of your LED strip to your Raspberry Pi board pin 12.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image2.jpg" alt="Raspberry Pi Piano LEDs" src="https://cdn.mos.cms.futurecdn.net/FHeuo8ZRASRC5vcnVVzB5M.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/FHeuo8ZRASRC5vcnVVzB5M.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>7. Using a USB cable, <strong>attach the MIDI out of your piano to your Raspberry Pi </strong>(any USB port).</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image4.jpg" alt="Raspberry Pi Piano LEDs" src="https://cdn.mos.cms.futurecdn.net/NWCn5pzNDuMfkWhufoD5MM.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/NWCn5pzNDuMfkWhufoD5MM.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>8. <strong>Turn the piano on and confirm it is listed</strong> with the following command. You should see the name of your instrument.</p><pre class="line-numbers language-python" language="python" ><code>amidi -l</code></pre><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:606px;"><p class="vanilla-image-block" style="padding-top:20.30%;"><img id="" name="image6.png" alt="Raspberry Pi Piano LEDs" src="https://cdn.mos.cms.futurecdn.net/rUmtFjdCz3TSkwgK5HPQXM.png" mos="" align="middle" fullscreen="1" width="606" height="123" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/rUmtFjdCz3TSkwgK5HPQXM.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>9. <strong>Set the self.lc.led_count variable</strong> in the src/app.py file to the number of LEDs on your strip (default 60).</p><p><br></p><pre class="line-numbers language-python" language="python" ><code>nano src/app.py# self.lc.led_count = 60</code></pre><p>10. Use the following command to <strong>start the application</strong> on the Raspberry Pi. If successful, the LEDs will flash a few times before the application starts. When a key is depressed, the corresponding LED will illuminate, and the console will show the ID of that key.</p><pre class="line-numbers language-python" language="python" ><code>make run</code></pre><pre class="line-numbers language-python" language="python" ><code>INFO:root:41 - note_onINFO:root:41 - note_off</code></pre><p>11. <strong>Press the lowest key</strong> on your piano covered by the LED strip, <strong>then the highest</strong>. <strong>Note the number/id</strong> of these keys in the console output and <strong>set the following variables in app.py</strong>:</p><p><br></p><pre class="line-numbers language-python" language="python" ><code>INFO:root:30 - note_onINFO:root:30 - note_offINFO:root:101 - note_onINFO:root:101 - note_off</code></pre><pre class="line-numbers language-python" language="python" ><code>self.lc.highest_key = 101self.lc.lowest_key = 30</code></pre><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image3.jpg" alt="Raspberry Pi Piano LEDs" src="https://cdn.mos.cms.futurecdn.net/kjfGurkZKSHVZevNESi5FM.jpg" mos="" align="middle" fullscreen="" width="1280" height="720" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>12. <strong>Run the program</strong> as before. With the adjusted settings, it will now approximate which LED to illuminate based on which key is pressed. This is done due to different LED strips having different spacing, or not having enough to cover the entire board.</p><pre class="line-numbers language-python" language="python" ><code>make run</code></pre>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Retro MS-DOS Palmtop Resurrected With Raspberry Pi Zero ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/raspberry-pi-powers-hp95lx-hack</link>
                                                                            <description>
                            <![CDATA[ A brilliant DIY project sees a Raspberry Pi Zero transplanted into an HP95LX from 1991. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">oesqdvabDLJbaxM9oZXU2F</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/9nRLNUT3AGBwmEdQCtpEKi-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 30 Nov 2021 14:03:45 +0000</pubDate>                                                                                                                                <updated>Tue, 28 Jan 2025 14:47:53 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ian Evenden ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/dY5MGBXCT6GV6ARt8oSiSj.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/9nRLNUT3AGBwmEdQCtpEKi-1280-80.jpg">
                                                            <media:credit><![CDATA[Rune Kyndal]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Rune Kyndal&#039;s HPI95LX project]]></media:description>                                                            <media:text><![CDATA[Rune Kyndal&#039;s HPI95LX project]]></media:text>
                                <media:title type="plain"><![CDATA[Rune Kyndal&#039;s HPI95LX project]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/9nRLNUT3AGBwmEdQCtpEKi-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>We miss the palmtop computer, one of the many varieties of sub-laptop rudely swallowed up by the rise to dominance of the smartphone and tablet. Hooray, then, for Canadian hacker Rune Kyndal, who has crammed a full Linux computer (a <a href="https://www.tomshardware.com/news/raspberry-pi">Raspberry Pi</a> Zero W) and color screen into the shell of an HP-95LX PDA (Personal Digital Assistant). He’s called it the HPI95LX, obviously, and <a href="https://hackaday.com/2021/11/29/hpi95lx-puts-linux-in-your-palm/" target="_blank">Hackaday</a> reported on it</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/ww7d2SJLSkHchjUXD74D6i.jpg" alt="Rune Kyndal's HPI95LX project" /><figcaption><small role="credit">Rune Kyndal</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/gNaFQAja7K3dWJ5K5qJGrh.jpg" alt="Rune Kyndal's HPI95LX project" /><figcaption><small role="credit">Rune Kyndal</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/WxFeeKC7Ag2qN2ntR9Hkdh.jpg" alt="Rune Kyndal's HPI95LX project" /><figcaption><small role="credit">Rune Kyndal</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/Xx58z8arLn6vxA5pX5MFTh.jpg" alt="Rune Kyndal's HPI95LX project" /><figcaption><small role="credit">Rune Kyndal</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/v8cpvUpV2dwdbyEZBTybHh.jpg" alt="Rune Kyndal's HPI95LX project" /><figcaption><small role="credit">Rune Kyndal</small></figcaption></figure></figure><p>The 95LX, you’ll no doubt remember, was HP’s first attempt at a palmtop or PDA running <a href="https://www.tomshardware.com/news/bill-gates-steve-ballmer-ms-dos-birthday,13148.html" target="_blank">MS-DOS</a>, back in 1991. The NEC V20 CPU ran at 5.37MHz, up to 1MB of RAM was available, and the whole thing ran on two AA batteries, with a couple of coin cells to make sure the removable SRAM card (up to 32MB of storage) didn’t lose data. The screen could display two shades of gray across its 240 x 128px, 4.8 x 1.8 inch LCD matrix with no backlight. It ran MS-DOS 3.22 with a custom version of Lotus 1-2-3. HP produced nearly half a million 95LX units and over time released many iterations of successors.</p><p>While it might have been revolutionary for its time, those specs are slightly less impressive today. The <a href="https://www.tomshardware.com/uk/how-to/raspberry-pi-buying-guide" target="_blank">Raspberry Pi</a> Zero W isn’t exactly cutting-edge either, especially after the release of the<a href="https://www.tomshardware.com/reviews/raspberry-pi-zero-2-w-review"> Zero 2 W</a>, but it is capable of running a full graphical desktop Linux, and its small form factor means it fits nicely within the shell of the 95LX. It&apos;s definitely one of the best <a href="https://www.tomshardware.com/features/best-raspberry-pi-projects" target="_blank">Raspberry Pi projects</a> we&apos;ve seen.</p><p>The new screen is a backlit color LCD touchscreen (though that’s a work in progress) measuring 4.3 inches across and with a resolution of 800 x 480px. The mod adds ethernet, stereo speakers, a mic, some USB 2.0 ports, micro SD card slot, an HDMI, and of course the Pi Zero’s Micro USB for power. Fans of retro data transmission methods will be pleased to see that it keeps the 95LX’s RS232 and IR ports.</p><p>Rune reverse-engineered the original keyboard membrane, and wrote a custom Linux keyboard layout file to ensure all the keys work as intended. Inside, rather than use a custom PCB, the innards are made up from multiple pieces hot-glued together, which Rune says he would rectify if he did it again. There&apos;s plenty more information about the build at Rune’s <a href="https://hackaday.io/project/172230-hpi95lx" target="_blank">hackaday.io</a> page.</p><iframe src="https://content.jwplatform.com/players/YdWWS5dA.html" id="YdWWS5dA" title="Raspberry Pi 4 Review: The New Gold Standard for Single-Board Computing" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen></iframe>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ How To Build A Smart Fog Machine with a Raspberry Pi ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/how-to/raspberry-pi-smart-fog-machine</link>
                                                                            <description>
                            <![CDATA[ Waste no more fog juice and use a Raspberry Pi to activate your fog machine when people are detected. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ZfE9TyHRsepHqFG64bFoeL</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/UGBLU38xAPpBCuZhcv5txg-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 24 Oct 2021 15:13:33 +0000</pubDate>                                                                                                                                <updated>Wed, 05 Feb 2025 14:50:35 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                <author><![CDATA[ ryder+toms@ryderdamen.com (Ryder Damen) ]]></author>                    <dc:creator><![CDATA[ Ryder Damen ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/yHmRhXRwnn6Tza4pvE2MAY.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/UGBLU38xAPpBCuZhcv5txg-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Hardware]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Raspberry Pi Smart Fog Machine]]></media:description>                                                            <media:text><![CDATA[Raspberry Pi Smart Fog Machine]]></media:text>
                                <media:title type="plain"><![CDATA[Raspberry Pi Smart Fog Machine]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/UGBLU38xAPpBCuZhcv5txg-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Halloween is upon us, and this year I&apos;m building a series of smart Halloween decorations that are also <a href="https://www.tomshardware.com/features/best-raspberry-pi-projects"><u>Raspberry Pi projects</u></a>.  So far, I’ve created a <a href="https://www.tomshardware.com/how-to/raspberry-pi-zombie-arm"><u>Raspberry Pi-powered zombie arm</u></a> that slaps guests and a <a href="https://www.tomshardware.com/how-to/build-a-person-following-creepy-head-for-halloween-with-a-raspberry-pi"><u>person-following creepy head</u></a>.</p><p>However, one of my all time favourite decorations is a fog machine. The only unfortunate thing about them is that they&apos;re analog. Now, with a bit of hacking, we&apos;re going to be connecting a fog machine to a Raspberry Pi, and activating it with person detection. This way, we only use fog juice when there are people close by. Here&apos;s how to get started.</p><h2 id="what-you-x2019-ll-need-for-this-project-6">What You’ll Need For This Project</h2><ul><li><a href="https://www.amazon.com/Raspberry-Model-2019-Quad-Bluetooth/dp/B07TC2BK1X"><u>Raspberry Pi 4</u></a></li><li><a href="https://www.amazon.com/JBtek-Channel-Module-Arduino-Raspberry/dp/B00KTEN3TM/"><u>A relay module compatible with the Raspberry Pi</u></a></li><li>At least 6 jumper cables</li><li><a href="https://www.tomshardware.com/best-picks/best-soldering-irons">A soldering iron</a> and solder</li><li>A fog machine with a remote control (I picked mine up from walmart)</li><li>Wyze Cam V2 / V3 or Raspberry Pi camera</li></ul><h2 id="how-to-build-a-smart-fog-machine-with-a-raspberry-pi">How To Build a Smart Fog Machine with a Raspberry Pi</h2><p>1. <strong>Set up your Raspberry Pi</strong>. If you don’t know how to do this, check out our story on how to <a href="https://www.tomshardware.com/how-to/set-up-raspberry-pi">set up your <u>Raspberry Pi for the first time</u> </a>or <a href="https://www.tomshardware.com/reviews/raspberry-pi-headless-setup-how-to,6028.html"><u>how to set up a headless Raspberry Pi</u></a> (without monitor or keyboard).</p><p>2. <strong>Install git </strong>as necessary, and <strong>clone the repository </strong>to your Raspberry Pi.</p><pre class="line-numbers language-python" language="python" ><code>cd ~/sudo apt-get update && sudo apt-get -y install gitgit clone https://github.com/rydercalmdown/smart_fog_machine.git</code></pre><p>3. <strong>Descend into the cloned repository </strong>and <strong>run the installation command</strong> to install all lower-level and python-based requirements for the project to work.</p><pre class="line-numbers language-python" language="python" ><code>cd ~/smart_fog_machinemake install</code></pre><p>4. <strong>Test your fog machine</strong>. Pressing the button once should cause the fog machine to turn on, pressing it again should cause it to turn off. Holding the button on my particular machine results in the same behavior as pressing it. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image7.jpg" alt="Raspberry Pi Smart Fog Machine" src="https://cdn.mos.cms.futurecdn.net/93qTmDumcsoxk6Qj7vT3qh.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/93qTmDumcsoxk6Qj7vT3qh.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>5. <strong>Remove the screws from the back of your remote</strong> and <strong>open up the back panel</strong>.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image9.jpg" alt="Raspberry Pi Smart Fog Machine" src="https://cdn.mos.cms.futurecdn.net/GDi5BJdnFMXRGWCiLsAG5i.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/GDi5BJdnFMXRGWCiLsAG5i.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>6. Put the batteries in your remote if they are missing, and <strong>locate the solder points</strong> that are connected to the fog button.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image11.jpg" alt="Raspberry Pi Smart Fog Machine" src="https://cdn.mos.cms.futurecdn.net/PGxEhpNDjYFkoBzg5a8ULi.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/PGxEhpNDjYFkoBzg5a8ULi.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>7. Using a jumper cable, <strong>short the pins until you find the ones that cause the LED on the front of the remote to flash</strong>. In my case, that was the top right and bottom left pins when the remote  is on its back and the IR LED is pointed upwards. If your remote doesn’t have a status LED on the front, you can view the activity of the IR LED with the front-facing camera on your phone.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image10.jpg" alt="Raspberry Pi Smart Fog Machine" src="https://cdn.mos.cms.futurecdn.net/mxFeHDGaBezKqcNWma7xBi.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/mxFeHDGaBezKqcNWma7xBi.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>8. Once the pins are found that activate the LED, <strong>solder two jumper wires onto them</strong>.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image3.jpg" alt="Raspberry Pi Smart Fog Machine" src="https://cdn.mos.cms.futurecdn.net/ZLHnBmnnfjdbK62tP28kMh.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/ZLHnBmnnfjdbK62tP28kMh.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>9. <strong>Create a hole for the jumper wires to exit the back of the case</strong>. I used my soldering iron to burn a small divot in the side of my remote.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image4.jpg" alt="Raspberry Pi Smart Fog Machine" src="https://cdn.mos.cms.futurecdn.net/FUtEM5XqMTgHoraUNZ7SUh.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/FUtEM5XqMTgHoraUNZ7SUh.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>10. <strong>Close up your remote and test it.</strong> The status LED should blink upon push of the button, as well as shorting the two jumper wires coming out from the case. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image8.jpg" alt="Raspberry Pi Smart Fog Machine" src="https://cdn.mos.cms.futurecdn.net/FxWCay59PxBjtFvVWBNgwh.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/FxWCay59PxBjtFvVWBNgwh.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>11. <strong>Connect the VCC pin of your relay to the BOARD pin #4</strong> on your Raspberry Pi.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image12.jpg" alt="Raspberry Pi Smart Fog Machine" src="https://cdn.mos.cms.futurecdn.net/mFnNoSxSmcgKvqnoWZFmUi.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/mFnNoSxSmcgKvqnoWZFmUi.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>12. <strong>Connect the Ground pin to Raspberry Pi BOARD pin #6.</strong></p><p>13. <strong>Connect the channel 4 pin</strong> of your relay to the Raspberry Pi <strong>BOARD pin #5</strong>. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image6.jpg" alt="Raspberry Pi Smart Fog Machine" src="https://cdn.mos.cms.futurecdn.net/eta8kfvfLDCuCSNBQe5qih.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/eta8kfvfLDCuCSNBQe5qih.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>14. <strong>Connect the two jumper wires coming from the remote to the common, and normally open ports of channel 4 of your relay</strong>. On my relay, these are the leftmost ports. You should not see your LED flash at this time.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image5.jpg" alt="Raspberry Pi Smart Fog Machine" src="https://cdn.mos.cms.futurecdn.net/Y4deLLCLu8W5s3NF2m52bh.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/Y4deLLCLu8W5s3NF2m52bh.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>15. <strong>Flash the custom RTSP firmware to your Wyze camera</strong> <a href="https://support.wyze.com/hc/en-us/articles/360026245231-Wyze-Cam-RTSP"><u>using this tutorial</u></a>. Installing RTSP support allows us to connect to the camera and grab frames directly with Python.</p><p>16. <strong>Get the RTSP URL value</strong> from your Wyze application, and <strong>edit the RTSP_URL variable in the Makefile</strong> to point the Raspberry Pi to your camera. You can find the RTSP URL in the “Advanced Settings” section of your Wyze application on your phone.</p><pre class="line-numbers language-python" language="python" ><code>nano Makefile# Edit the file with your RTSP URL from your cameraRTSP_URL=rtsp://your_username:your_password@your_camera_ip/live</code></pre><p>17. <strong>Test your system with the make run command</strong>. The LED should flash on your remote briefly as the system starts up and tests itself. It should also flash when a person is detected by the camera.</p><pre class="line-numbers language-python" language="python" ><code>make run</code></pre><p>18. <strong>Position the remote so it has a clear line of sight to your fog machine.</strong></p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image2.jpg" alt="Raspberry Pi Smart Fog Machine" src="https://cdn.mos.cms.futurecdn.net/vsTPA43knqCfC3uqYQvyDh.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/vsTPA43knqCfC3uqYQvyDh.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>19. <strong>Plug in your fog machine</strong>, <strong>use the make run command</strong>, <strong>aim the camera </strong>at a person, and the fog machine in your desired direction, and enjoy!</p><pre class="line-numbers language-python" language="python" ><code>make run</code></pre><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image1.jpg" alt="Raspberry Pi Smart Fog Machine" src="https://cdn.mos.cms.futurecdn.net/UGBLU38xAPpBCuZhcv5txg.jpg" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/UGBLU38xAPpBCuZhcv5txg.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>If you’re looking for more of a challenge, I’d recommend cloning the IR code with an IR receiver compatible with the Raspberry Pi, and retransmitting it with an IR LED. This was my original plan, but I unfortunately wasn’t able to get things functional on time - but there’s always next year! Happy Halloween!</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ How to Build a Raspberry Pi-Powered  Zombie Arm for Halloween ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/how-to/raspberry-pi-zombie-arm</link>
                                                                            <description>
                            <![CDATA[ Surprise your friends by creating a moving zombie arm that jumps out when Raspberry Pi detects a person. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">dT5EsEPtoQ87uzxmdZQyY8</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/ZaSgFWGoFjK3QDdqduwJDc-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Sat, 16 Oct 2021 13:00:00 +0000</pubDate>                                                                                                                                <updated>Wed, 05 Feb 2025 14:48:53 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                <author><![CDATA[ ryder+toms@ryderdamen.com (Ryder Damen) ]]></author>                    <dc:creator><![CDATA[ Ryder Damen ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/yHmRhXRwnn6Tza4pvE2MAY.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/ZaSgFWGoFjK3QDdqduwJDc-1280-80.png">
                                                            <media:credit><![CDATA[Tom&#039;s Hardware]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Raspberry Pi-powered Zombie Arm]]></media:description>                                                            <media:text><![CDATA[Raspberry Pi-powered Zombie Arm]]></media:text>
                                <media:title type="plain"><![CDATA[Raspberry Pi-powered Zombie Arm]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/ZaSgFWGoFjK3QDdqduwJDc-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Halloween is my favorite time of the year and what better way to spend it than creating animatronics with a <a href="https://www.tomshardware.com/news/raspberry-pi"><u>Raspberry Pi</u></a> to scare trick or treaters. This year I’m building a series of smart devices for my porch on Halloween. I’ve always wanted to build a zombie arm that jumps out as people walk by - and we’ll show you how to do it with a bit of pneumatics, a relay, and a Raspberry Pi. </p><h2 id="what-you-x2019-ll-need-for-this-project-7">What You’ll Need For This Project</h2><ul><li>Raspberry Pi</li><li><a href="https://www.amazon.com/Baomain-Pneumatic-Cylinder-SC-Bore/dp/B072VQYT4S"><u>Pneumatic Air Cylinder</u></a></li><li><a href="https://www.amazon.com/Baomain-Pneumatic-4V230C-08-Internally-Electrical/dp/B019PTHS7Y/"><u>4 Way 12 V pneumatic control valve</u></a></li><li><a href="https://www.amazon.com/Tailonz-Pneumatic-Polyurethane-Meter-32-8ft/dp/B07RJ1BYKV/"><u>Two push-to-connect fittings compatible with your air cylinder</u></a></li><li><a href="https://www.amazon.com/Tailonz-Pneumatic-Polyurethane-Meter-32-8ft/dp/B07RJ1BYKV/"><u>Two push-to-connect fittings compatible with your control valve</u></a></li><li><a href="https://www.amazon.com/LEDMO-Power-Supply-Transformers-Adapter/dp/B01461MOGQ/"><u>12 volt power supply</u></a></li><li><a href="https://www.amazon.com/JBtek-Channel-Module-Arduino-Raspberry/dp/B00KTEN3TM/"><u>A relay module compatible with the Raspberry Pi</u></a></li><li>At least 4 jumper cables</li><li><a href="https://www.amazon.com/Wago-221-413-LEVER-NUTS-Conductor-Connectors/dp/B06XGYXVXR/"><u>2 wire nuts or WAGO connectors</u></a></li><li>A few feet of extra wiring suitable for a 12v circuit</li><li>Air compressor and hose (or another source of compressed air)</li><li><a href="https://www.amazon.com/Industrial-Connect-Adapter-Compressor-Fittings/dp/B081F9K54B/"><u>1 male quick-connect pneumatic adapter</u></a></li><li><a href="https://www.amazon.com/Dixon-Valve-TTB75-Industrial-Temperature/dp/B003D7K8E0/"><u>A roll of PTFE tape</u></a></li><li>A tool box with some basic tools, a drill, a hot glue gun</li><li>A Halloween zombie arm or skeleton arm (I picked mine up from the dollar store)</li><li>Wyze Cam V2 / V3 or Raspberry Pi camera</li><li><a href="https://www.amazon.com/Tailonz-Pneumatic-Polyurethane-Meter-32-8ft/dp/B07RJ1BYKV/"><u>Polyethylene tubing</u></a></li></ul><h2 id="how-to-build-a-zombie-arm-for-halloween-with-a-raspberry-pi">How To Build a Zombie Arm for Halloween with a Raspberry Pi</h2><p>1. <strong>Set up your Raspberry Pi</strong>. If you don’t know how to do this, check out our story on how to set up your <a href="https://www.tomshardware.com/reviews/raspberry-pi-set-up-how-to,6029.html"><u>Raspberry Pi for the first time</u></a> or <a href="https://www.tomshardware.com/reviews/raspberry-pi-headless-setup-how-to,6028.html"><u>how to set up a headless Raspberry Pi</u></a> (without monitor or keyboard).</p><p>2. <strong>Install git </strong>as necessary, and <strong>clone the repository </strong>to your Raspberry Pi.</p><pre class="line-numbers language-python" language="python" ><code>cd ~/sudo apt-get update && sudo apt-get -y install gitgit clone https://github.com/rydercalmdown/zombie_arm.git</code></pre><p>3. <strong>Descend into the cloned repository </strong>and <strong>run the installation command</strong> to install all lower-level and python-based requirements for the project to work.</p><pre class="line-numbers language-python" language="python" ><code>cd ~/zombie_armmake install</code></pre><p>4. <strong>Attach your pneumatic control valve to a small piece of wood</strong>. This is entirely optional, but I like to have everything secure in one place. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image13.png" alt="Raspberry Pi-powered Zombie Arm" src="https://cdn.mos.cms.futurecdn.net/JAU5bz72yvi8YHXrLY4MXe.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/JAU5bz72yvi8YHXrLY4MXe.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>5. <strong>Attach your relay module to a small piece of wood</strong>. Once again, this is entirely optional.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image5.png" alt="Raspberry Pi-powered Zombie Arm" src="https://cdn.mos.cms.futurecdn.net/tUNp9jTykXwa6BvsyPcy2d.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/tUNp9jTykXwa6BvsyPcy2d.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>6. <strong>Wire the negative end of your 12v power supply together with two small strands of wire</strong> using a wire nut or WAGO connector.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image2.png" alt="Raspberry Pi-powered Zombie Arm" src="https://cdn.mos.cms.futurecdn.net/BoNRgnQkoSdG6WFKfhZsRc.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/BoNRgnQkoSdG6WFKfhZsRc.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>7. <strong>Attach the two negative wires</strong> coming from the wire nut / WAGO connector<strong> to the left-most ports of channels 4 and 3 or your relay</strong>.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image16.png" alt="Raspberry Pi-powered Zombie Arm" src="https://cdn.mos.cms.futurecdn.net/wu3Pa3UK83pnZqvG4cid7f.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/wu3Pa3UK83pnZqvG4cid7f.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>8. <strong>Attach a few inches of wire to each terminal of your pneumatic control valve</strong>; each end should have a positive and negative wire coming from it.</p><p>9. <strong>Attach the positive ends</strong> of both wires coming from the pneumatic control valve <strong>together with the positive end of the 12v power supply</strong>. You can use wire nuts or a WAGO connector to do this.</p><p>10. <strong>Attach the negative ends of the wires</strong> coming from the pneumatic control valve<strong> to the middle port of channels 4 and 3 of the relay</strong>. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image14.png" alt="Raspberry Pi-powered Zombie Arm" src="https://cdn.mos.cms.futurecdn.net/LteCxBM75BqNDRKkS2AXge.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/LteCxBM75BqNDRKkS2AXge.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>11. <strong>Wire the 12v </strong>and <strong>ground pins </strong>from your relay <strong>to GPIO pins 4 and 6 </strong>on the Raspberry Pi.</p><p>12. <strong>Wire channels 4 and 3 from the relay to GPIO pins 8 and 10 </strong>on the Pi. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image8.png" alt="Raspberry Pi-powered Zombie Arm" src="https://cdn.mos.cms.futurecdn.net/knUGsGCMJfhQ474eDhsCdd.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/knUGsGCMJfhQ474eDhsCdd.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>13. <strong>Attach 3 quick connect adapters</strong> to the ports on your pneumatic control valve, and <strong>2 to the ports </strong>on your pneumatic cylinder.</p><p>14. <strong>Attach two polyethylene tubes</strong> from your pneumatic control valve to each end of your pneumatic cylinder. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image17.png" alt="Raspberry Pi-powered Zombie Arm" src="https://cdn.mos.cms.futurecdn.net/e8F3V3sFbYMEcFHMjrESKf.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/e8F3V3sFbYMEcFHMjrESKf.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>15. <strong>Attach a source of compressed air</strong> to the input of your pneumatic control valve.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image10.png" alt="Raspberry Pi-powered Zombie Arm" src="https://cdn.mos.cms.futurecdn.net/kni2QriPQCU45wNFAHU32e.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/kni2QriPQCU45wNFAHU32e.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>16. <strong>Test your system</strong> by using the manual push valves on the pneumatic control valve; the cylinder should actuate.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image6.png" alt="Raspberry Pi-powered Zombie Arm" src="https://cdn.mos.cms.futurecdn.net/z7U7E7pFnAvfgefpUCX4Ed.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/z7U7E7pFnAvfgefpUCX4Ed.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>17. <strong>Drill a hole in your halloween zombie arm</strong> and <strong>hot glue it to the end of the cylinder</strong>. </p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/JVjbXLjrmmgoGjYA2wqhCe.png" alt="Raspberry Pi-powered Zombie Arm" /><figcaption><small role="credit">Tom's Hardware</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/9Nr37yxThSL6xivq4xQyqd.png" alt="Raspberry Pi-powered Zombie Arm" /><figcaption><small role="credit">Tom's Hardware</small></figcaption></figure></figure><p>18. <strong>Set up the Wyze camera </strong>or Raspberry Pi camera. For this project you can substitute a simple motion sensor, but I wanted to make use of person recognition to trigger the hand, so I’m using a Wyze Cam V2 (V3 also works) to handle the detection.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image12.png" alt="Raspberry Pi-powered Zombie Arm" src="https://cdn.mos.cms.futurecdn.net/oVVAn8LndEPYXBHVMzgQNe.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/oVVAn8LndEPYXBHVMzgQNe.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>19. <strong>Flash the custom RTSP firmware to your Wyze camera</strong> <a href="https://support.wyze.com/hc/en-us/articles/360026245231-Wyze-Cam-RTSP"><u>using this tutorial</u></a>. Installing RTSP support allows us to connect to the camera and grab frames directly with Python.</p><p>20. <strong>Get the RTSP URL value</strong> from your Wyze application, and <strong>edit the RTSP_URL variable in the Makefile</strong> to point the Raspberry Pi to your camera. You can find the RTSP URL in the “Advanced Settings” section of your Wyze application on your phone.</p><pre class="line-numbers language-python" language="python" ><code>nano Makefile# Edit the file with your RTSP URL from your cameraRTSP_URL=rtsp://your_username:your_password@your_camera_ip/live</code></pre><p>21. <strong>Plug in your 12 volt power supply</strong>. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image3.png" alt="Raspberry Pi-powered Zombie Arm" src="https://cdn.mos.cms.futurecdn.net/hRmUVtugwMSY8XbU3hibec.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/hRmUVtugwMSY8XbU3hibec.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>22. <strong>Test the system by running the make run</strong> command. It should boot up and move the arm as a test to start, then only activate the arm when a person is detected. If your movements are backwards, reverse the two hoses going to the cylinder.</p><pre class="line-numbers language-python" language="python" ><code>make run</code></pre><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image4.png" alt="Raspberry Pi-powered Zombie Arm" src="https://cdn.mos.cms.futurecdn.net/yUeSvpnGtqZtNNw94HVaqc.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/yUeSvpnGtqZtNNw94HVaqc.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>23. <strong>Mount your system</strong> in a place where it can scare friends and family.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/rRoGooAcK8VnybtAgzQwse.png" alt="Raspberry Pi-powered Zombie Arm" /><figcaption><small role="credit">Tom's Hardware</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/GqDTG3SdB6bMAkHpzzKyQd.png" alt="Raspberry Pi-powered Zombie Arm" /><figcaption><small role="credit">Tom's Hardware</small></figcaption></figure></figure><p>The majority of these components are not waterproof, so mount them in a way that they’ll stay dry. In addition, a pneumatic cylinder can be a dangerous component depending on how much pressure it’s given. To stay safe, set your regulator to the smallest amount of pressure required to move the arm, and make sure the arm has plenty of room away from people. Happy Halloween!</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ How To Host a Public Website on Your Home Raspberry Pi ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/how-to/host-public-website-raspberry-pi</link>
                                                                            <description>
                            <![CDATA[ You can host a website that’s available on the Internet from the Raspberry Pi on your desk, all without giving out your actual IP address. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">h6V3JMrTcJYYbpQax3rVtc</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Xg8bQs5Zt2JWJEB43vKuZN-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Sun, 10 Oct 2021 12:00:29 +0000</pubDate>                                                                                                                                <updated>Thu, 30 Jan 2025 16:26:54 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                <author><![CDATA[ ryder+toms@ryderdamen.com (Ryder Damen) ]]></author>                    <dc:creator><![CDATA[ Ryder Damen ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/yHmRhXRwnn6Tza4pvE2MAY.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/Xg8bQs5Zt2JWJEB43vKuZN-1280-80.png">
                                                            <media:credit><![CDATA[Tom&#039;s Hardware]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[How To Host a Public Website on Your Home Raspberry Pi]]></media:description>                                                            <media:text><![CDATA[How To Host a Public Website on Your Home Raspberry Pi]]></media:text>
                                <media:title type="plain"><![CDATA[How To Host a Public Website on Your Home Raspberry Pi]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Xg8bQs5Zt2JWJEB43vKuZN-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>From time to time, I like to let the internet control things in my home. Sometimes it’s letting a live stream turn on and off a light and  others it&apos;s driving a RC car around my living room. When building these projects, I normally use a <a href="https://www.tomshardware.com/news/raspberry-pi"><u>Raspberry Pi</u></a> to listen for web traffic and perform an event when someone visits the site.</p><p>I could give people my IP address and port forward my router to my Raspberry Pi, but I’d rather keep my IP private and my network as secure as possible. We can get the best of both worlds with a SSH tunnel, nginx, and a virtual machine in the cloud. All this creates a reverse proxy, where visitors hit a public IP address that’s not your home network’s and get directed to the Pi that’s on your LAN.</p><p>If you’re looking to build something interactive with your Pi while still keeping things as secure as possible, here’s how to do it.</p><h2 id="what-you-x2019-ll-need-for-this-project-xa0">What You’ll Need For This Project </h2><ul><li><a href="https://www.tomshardware.com/reviews/raspberry-pi-4"><u><strong>Raspberry Pi 4</strong></u></a> or Raspberry Pi 3 with power adapter</li><li><strong>8 GB (or larger) microSD card </strong>with Raspberry Pi OS. See our list of <a href="https://www.tomshardware.com/best-picks/raspberry-pi-microsd-cards"><u>best microSD cards for Raspberry Pi</u></a>. </li><li><strong>A Google Cloud Platform account and the gcloud command line tool </strong>or another cloud provider you’re familiar with. Note that the incoming traffic will cost some money which, in our case, is $5 a month.</li></ul><h2 id="how-to-host-a-public-website-on-your-home-raspberry-pi">How To Host a Public Website on Your Home Raspberry Pi</h2><p>Before you get started, make sure that you have your Raspberry Pi OS set up. If you haven’t done this before, see our article on how to <a href="https://www.tomshardware.com/how-to/set-up-raspberry-pi"><u>set up a Raspberry Pi</u></a> for the first time or how to do a <a href="https://www.tomshardware.com/reviews/raspberry-pi-headless-setup-how-to,6028.html"><u>headless Raspberry Pi install</u></a> (without the keyboard and screen).</p><p>1. <strong>Install git</strong>, which will allow us to clone this project’s code.</p><pre class="line-numbers language-python" language="python" ><code>sudo apt-get update && sudo apt-get install -y git</code></pre><p>2. <strong>Clone the repository</strong> with example code. This code takes care of communication with the sensor, and sets up a simple server for monitoring on your home network. </p><pre class="line-numbers language-python" language="python" ><code>cd ~/git clone https://github.com/rydercalmdown/pi_home_reverse_proxy.git</code></pre><p>3. <strong>Run the installation command</strong> after descending into the repository. This will install all necessary SSH components as well as nginx, a simple server we’ll use as an example.</p><pre class="line-numbers language-python" language="python" ><code>cd pi_home_reverse_proxymake install-pi</code></pre><p>4. <strong>Create a SSH public/private keypair</strong>. The private key will remain on the Raspberry Pi, and will be used in conjunction with the public key to connect to our cloud virtual machine. </p><pre class="line-numbers language-python" language="python" ><code>ssh-keygen# press enter to accept all default settings</code></pre><p>5. <strong>Copy the SSH public key for later.</strong> We’ll need this when setting up our virtual machine in the cloud.</p><pre class="line-numbers language-python" language="python" ><code>/home/pi/.ssh/id_rsa.pub# Copy the results</code></pre><p>6. <strong>Visit your Google Cloud Console</strong> and navigate to the VM Instances page.</p><p>7. <strong>Click “Create Instance” to create a new virtual machine</strong>.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image6.png" alt="How To Host a Public Website on Your Home Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/dqYvaud58QUr4N5awSdMsN.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/dqYvaud58QUr4N5awSdMsN.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>8. <strong>Choose a memorable name</strong> for your instance. I’m calling mine “home-reverse-proxy”.</p><p>9. <strong>Choose your desired region and zone</strong>. This doesn’t matter as much, but it’s good to pick something close to you for low latency. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image4.png" alt="How To Host a Public Website on Your Home Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/ePQHJDn5E3C4qsAjeGzxgN.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/ePQHJDn5E3C4qsAjeGzxgN.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>10. Under machine configuration, <strong>choose “N1” for the series, and f1-micro for the machine type</strong>. This will give us the lowest monthly cost, around $5 USD per month. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image8.png" alt="How To Host a Public Website on Your Home Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/Ye5vojJwHJdrfVdNuLGG3P.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/Ye5vojJwHJdrfVdNuLGG3P.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>11. <strong>Scroll down to the “Boot Disk&apos;&apos; section</strong> and c<strong>lick the change button</strong>. Set the Operating system to Ubuntu, and the version to “Ubuntu 20.04 LTS”, leave everything else the same and cick Select.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image7.png" alt="How To Host a Public Website on Your Home Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/UHT29mq57NxZVFySJ4BExN.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/UHT29mq57NxZVFySJ4BExN.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>12.  <strong>Scroll down to “Firewall”</strong> and <strong>check both “Allow HTTP traffic” and “Allow HTTPS traffic”.</strong></p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image2.png" alt="How To Host a Public Website on Your Home Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/y4KcGsZamLHBqyannZJPRN.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/y4KcGsZamLHBqyannZJPRN.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>13. Scroll down to the bottom of the instance and <strong>click “Create”.</strong></p><p>14. Once the machine is running, <strong>click the dropdown next to SSH to get the SSH command</strong>. I recommend using the “View gcloud command”. <strong>Paste that command into your terminal to SSH on to your cloud virtual machine</strong>. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image9.png" alt="How To Host a Public Website on Your Home Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/J4Fww4FjDv2XgaeJKiG58P.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/J4Fww4FjDv2XgaeJKiG58P.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>15. Once connected to your virtual machine, <strong>install nginx with the following commands</strong>.</p><pre class="line-numbers language-python" language="python" ><code>sudo apt-get updatesudo apt-get install -y nginx</code></pre><p>16. <strong>Check to see if nginx is running</strong> by running the following command. You can also visit the External IP in your browser listed next to your virtual machine in the Google Cloud console. When visiting, you should see a nginx welcome page.</p><pre class="line-numbers language-python" language="python" ><code>sudo service nginx status# Ctrl + C then enter to exit# It should show “active (running)” in green if all is well</code></pre><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image1.png" alt="How To Host a Public Website on Your Home Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/PjRMRkGrhcg37QtjxZKvKN.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/PjRMRkGrhcg37QtjxZKvKN.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>17. <strong>Update the default configuration with a custom reverse-proxy config</strong>. This tells nginx to forward all traffic it receives to a port on your machine. </p><pre class="line-numbers language-python" language="python" ><code>cd /etc/nginx/sites-enabledsudo rm defaultsudo touch defaultsudo nano default# copy in the code below</code></pre><p>This code rate limits the number of requests to 5 per second to not overwhelm the pi during interactive projects. If you’d like to accept more, simply increase the number, or remove any lines that start with limit_req from the file for no limits.</p><pre class="line-numbers language-python" language="python" ><code>limit_req_zone $binary_remote_addr zone=basic:10m rate=5r/s;server {  listen 80;  location / {    limit_req zone=basic;    proxy_pass  http://0.0.0.0:5000;  }}</code></pre><p>18. <strong>Restart the nginx service</strong> and visit the external IP of the virtual machine again. You should be presented with a “502 Bad Gateway” page if all goes correctly. </p><pre class="line-numbers language-python" language="python" ><code>sudo service nginx restart</code></pre><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image5.png" alt="How To Host a Public Website on Your Home Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/BjnwRjXywuPTGmVG7SuwnN.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/BjnwRjXywuPTGmVG7SuwnN.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>19. Using the following command, <strong>create a user</strong> for the pi to SSH into on the virtual machine.</p><pre class="line-numbers language-python" language="python" ><code>sudo useradd -m -p raspberry -s /bin/bash piconnect</code></pre><p>20. Create the SSH directory and authorized key files, and <strong>copy in the public key you copied from your Raspberry Pi</strong>. </p><pre class="line-numbers language-python" language="python" ><code>sudo mkdir /home/piconnect/.ssh/sudo touch /home/piconnect/.ssh/authorized_keyssudo nano /home/piconnect/.ssh/authorized_keys# copy in the public key you copied from your raspberry pi</code></pre><p>21. Back on the Raspberry Pi, <strong>edit the establish_remote_connection.sh file</strong> to include your remote server’s IP address. </p><pre class="line-numbers language-python" language="python" ><code>cd ~/pi_home_reverse_proxysudo nano scripts/establish_remote_connection.sh# change REMOTE_HOST=your_remote_ip_address to the external IP you got from the Google Cloud Platform console</code></pre><p>22. <strong>Run the make connect command</strong> to establish the SSH connection between your Raspberry Pi and your virtual server.</p><pre class="line-numbers language-python" language="python" ><code>make connect</code></pre><p>23. <strong>Visit your virtual machine’s IP address</strong> to see the content running on the Raspberry Pi served remotely and not on your home IP address. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image3.png" alt="How To Host a Public Website on Your Home Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/Xg8bQs5Zt2JWJEB43vKuZN.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/Xg8bQs5Zt2JWJEB43vKuZN.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>And there you have it! You are serving content from your Raspberry Pi from a Google Cloud IP address, via an SSH tunnel. I only use this setup from time to time, but for a more permanent setup, I&apos;d recommend connecting a domain and securing it with LetsEncrypt on the virtual machine side.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ How to Build A Person-Following Creepy Head for Halloween with a Raspberry Pi ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/how-to/build-a-person-following-creepy-head-for-halloween-with-a-raspberry-pi</link>
                                                                            <description>
                            <![CDATA[ Scare your friends and neighbors with a creepy mannequin head that follows them around, based on A.I. person detection. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">vE9ygsGEmVVTEU78j2BcFK</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/aezbgPkUxLD2vDywcANyiX-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Sat, 02 Oct 2021 13:00:54 +0000</pubDate>                                                                                                                                <updated>Wed, 05 Feb 2025 14:50:18 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                <author><![CDATA[ ryder+toms@ryderdamen.com (Ryder Damen) ]]></author>                    <dc:creator><![CDATA[ Ryder Damen ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/yHmRhXRwnn6Tza4pvE2MAY.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/aezbgPkUxLD2vDywcANyiX-1280-80.png">
                                                            <media:credit><![CDATA[Tom&#039;s Hardware]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Halloween Mannequin Head - Raspberry Pi]]></media:description>                                                            <media:text><![CDATA[Halloween Mannequin Head - Raspberry Pi]]></media:text>
                                <media:title type="plain"><![CDATA[Halloween Mannequin Head - Raspberry Pi]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/aezbgPkUxLD2vDywcANyiX-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Halloween is coming, and what better way to celebrate the season than by using machine learning and a <a href="https://www.tomshardware.com/news/raspberry-pi"><u>Raspberry Pi</u></a> to accomplish something spooky! This year I’ve built a mannequin head that uses person detection and a simple servo motor to detect when a person is walking by and turn the head to follow them. I’m using a simple styrofoam mannequin head with some coloured in eyes from the dollar store, but you’re welcome to dress it up to fit your house’s theme or use a completely different kind of head or object. As long as you can use a servo to rotate it, the result is the same.</p><p>This project won’t require any machine learning training, and is more or less plug and play just in time for the season. Here’s how to build it.</p><h2 id="what-you-x2019-ll-need-for-this-project-xa0-2">What You’ll Need For This Project </h2><ul><li><a href="https://www.tomshardware.com/reviews/raspberry-pi-4"><u>Raspberry Pi 4</u></a> or Raspberry Pi 3 with power adapter and MicroSD card</li><li><a href="https://www.amazon.ca/Pacific-Female-Styrofoam-Mannequin-Head/dp/B074VSB349/"><u>Mannequin Head (styrofoam or something equally light weight works best)</u></a></li><li><a href="https://www.amazon.ca/MMOBIEL-Airplane-Helicopter-Compatible-Raspberry/dp/B097RD8RB7/"><u>5V Micro-Servo motor compatible with a Raspberry Pi</u></a></li><li>Hot Glue Gun</li><li>Misc. Blocks of Wood or Cardboard</li><li><a href="https://www.amazon.com/WYZE-Indoor-Monitoring-Camera-MicroSD/dp/B08ZXQG4FX/"><u>Wyze Cam V2</u></a> (Wyze Cam V3 is not yet compatible) or Raspberry Pi Camera</li></ul><h2 id="how-to-build-a-person-following-halloween-mannequin-head-for-halloween-xa0">How To Build A Person-Following Halloween Mannequin Head for Halloween </h2><p>Before you get started, get your Raspberry Pi set up. If you haven’t done this before, see our article on how to <a href="https://www.tomshardware.com/reviews/raspberry-pi-set-up-how-to,6029.html"><u>set up a Raspberry Pi</u></a> for the first time or how to do a <a href="https://www.tomshardware.com/reviews/raspberry-pi-headless-setup-how-to,6028.html"><u>headless Raspberry Pi install</u></a> (without the keyboard and screen). For this project, we recommend a headless Raspberry Pi install.</p><p>1. <strong>Install git. </strong>We’ll need it to download the code from GitHub. </p><pre class="line-numbers language-python" language="python" ><code>sudo apt-get updatesudo apt-get -y install git</code></pre><p>2. <strong>Clone the repository to your home directory.</strong> This will ensure we have all the code and audio files we need to run the project. </p><pre class="line-numbers language-python" language="python" ><code>cd ~/git clone https://github.com/rydercalmdown/halloween_mannequin_head.git</code></pre><p>3. <strong>Run the “make install” command </strong>to install all project dependencies. This script will take care of installing lower level dependencies, as well as the Python libraries you need for the project to run. This should take about 10-15 minutes on a Raspberry Pi 4 as it needs some time to install machine learning libraries and models. </p><pre class="line-numbers language-python" language="python" ><code>cd ~/halloween_mannequin_head/make install</code></pre><p>4. <strong>Choose your camera</strong>; if you’re using a Wyze V2 camera, skip to step 6. If you’re using a Raspberry Pi camera, move to step 5. Both will work, but the advantage of the Wyze camera is the ability to mount it in a different place away from your Pi (and mannequin head).</p><p>5. <strong>Connect your Raspberry Pi camera directly to the Raspberry Pi</strong> and test it with the following command. Do not set the STREAM_URI environment variable, it will by default use the Pi camera. Skip to step 8.</p><pre class="line-numbers language-python" language="python" ><code>sudo raspistill -o test.jpeg</code></pre><p>6. <strong>Flash the RTSP custom firmware to your Wyze Camera</strong> using <a href="https://support.wyze.com/hc/en-us/articles/360026245231-Wyze-Cam-RTSP"><u>these instructions</u></a>. This will allow us to access the stream from the camera wirelessly with the Raspberry Pi. This will only work with a Wyze V2 camera.</p><p>7. <strong>Get the RTSP URL value</strong> from your Wyze application, and <strong>edit the STREAM_URI variable in the Makefile</strong> to point the Raspberry Pi to your camera. You can find the RTSP URL in the “Advanced Settings” section of your Wyze application on your phone. </p><pre class="line-numbers language-python" language="python" ><code>nano Makefile# Only edit this if you’re using a RTSP camera; leave blank if you’re using a Pi cameraSTREAM_URI=rtsp://username:password@camera_ip_address/live</code></pre><p>8. Hot <strong>glue your servo motor to a base piece of wood</strong>, or directly to the place you intend on mounting the mannequin head. I drilled out a small piece of wood to use as my base and fit the motor inside. </p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/KzSmS7dBPh72K3HQGRGuVY.png" alt="Halloween Mannequin Head - Raspberry Pi" /><figcaption><small role="credit">Tom's Hardware</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/acLjJzHqb7k8uzuzStUKyX.png" alt="Halloween Mannequin Head - Raspberry Pi" /><figcaption><small role="credit">Tom's Hardware</small></figcaption></figure></figure><p>9. Hot <strong>glue the servo bracket with the motor to the base of the mannequin head</strong>. I used a small piece of wood to reinforce the connection, but depending on yours you might not need one. Make sure the bracket can still connect to the motor.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image8.png" alt="Halloween Mannequin Head - Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/7drax6Kdi8rn3eKMgs267Z.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/7drax6Kdi8rn3eKMgs267Z.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>10. Using jumper cables <strong>attach the 5V and ground pins of the servo motor to Raspberry Pi pins #4 and #6</strong> respectively.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image1.png" alt="Halloween Mannequin Head - Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/QsYGxHUhK5r2S9t4MoUeKX.png" mos="" align="middle" fullscreen="" width="1280" height="720" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>11. Using a jumper cable, <strong>attach the data pin of the servo motor to board pin #3</strong> on the Raspberry Pi. This pin allows control of the servo motor by the Pi directly.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image7.png" alt="Halloween Mannequin Head - Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/vReyyGe3og8MfAKmTDn4qY.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/vReyyGe3og8MfAKmTDn4qY.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>12. Using the bracket, <strong>connect the mannequin head so it sits on top of the servo motor</strong> and <strong>mount the device and camera</strong> in your desired location.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image2.png" alt="Halloween Mannequin Head - Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/CHvPRQ3TpLMyrz3ACFYcWX.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/CHvPRQ3TpLMyrz3ACFYcWX.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>13. <strong>Use the make run command</strong> to test the system. Step into frame of the camera and move left to right to have the servo turn. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image3.png" alt="Halloween Mannequin Head - Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/aezbgPkUxLD2vDywcANyiX.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/aezbgPkUxLD2vDywcANyiX.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>14. <strong>Adjust the mannequin head</strong> on the servo by lifting it and recentering it to calibrate it to follow you properly.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image5.png" alt="Halloween Mannequin Head - Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/rwANzLLLqv5Z3reUEXRbGY.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/rwANzLLLqv5Z3reUEXRbGY.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>15. <strong>Buy your trick or treat candy</strong> and get it ready for halloween.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ How To Build The Xmas Lights From Stranger Things with Raspberry Pi ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/how-to/stranger-things-lights-raspberry-pi</link>
                                                                            <description>
                            <![CDATA[ Receive messages from the upside down (or anyone with a web browser) that light up a series of Christmas lights on your wall. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">TPZfpLaJPyxc2qwpbvde6e</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/mhZStdmvGYGXgiNSWxzEAA-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Sat, 26 Jun 2021 13:00:34 +0000</pubDate>                                                                                                                                <updated>Wed, 05 Feb 2025 14:50:09 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                <author><![CDATA[ ryder+toms@ryderdamen.com (Ryder Damen) ]]></author>                    <dc:creator><![CDATA[ Ryder Damen ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/yHmRhXRwnn6Tza4pvE2MAY.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/mhZStdmvGYGXgiNSWxzEAA-1280-80.png">
                                                            <media:credit><![CDATA[Tom&#039;s Hardware]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Xmas Lights From Stranger Things with Raspberry Pi]]></media:description>                                                            <media:text><![CDATA[Xmas Lights From Stranger Things with Raspberry Pi]]></media:text>
                                <media:title type="plain"><![CDATA[Xmas Lights From Stranger Things with Raspberry Pi]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/mhZStdmvGYGXgiNSWxzEAA-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I’m a big fan of the Stranger Things series and I can’t wait for the next season. If you haven’t seen the show, in season 1 two characters communicate across different dimensions using Christmas lights with letters written underneath them. </p><p>I built a replica of this a year ago, but with the upcoming release of season 4, it’s time to build a bigger and better version. These lights can be hung up on your wall, and can let friends, family, and even strangers communicate with you.</p><h2 id="what-you-x2019-ll-need-for-this-project-xa0-3">What You’ll Need For This Project </h2><ul><li>Raspberry Pi 4 or Raspberry Pi 3 </li><li>USB power adapter for Raspberry Pi</li><li>8 GB (or larger) microSD card with Raspberry Pi OS. See our list of <a href="https://www.tomshardware.com/best-picks/raspberry-pi-microsd-cards"><u>best microSD cards</u></a> for Raspberry Pi. </li><li><a href="https://www.amazon.com/ALITOVE-Individually-Addressable-Advertising-Waterproof/dp/B01AG923EU"><u>Two strands of 12v WS2811 LEDs</u></a> (one strand will work, but two looks better for letter spacing)</li><li><a href="https://www.amazon.com/3V-Adjustable-Adapter-Control-Variable/dp/B07QVXYBDC/"><u>A 12 volt power supply </u></a>(any standard 12v power supply will work)</li><li>Jumper cables</li><li>Wire strippers</li><li><a href="https://www.tomshardware.com/best-picks/best-soldering-irons">Solder</a> or wire nuts</li><li>A black and white printer and paper</li><li>Scissors</li><li>Push pins</li></ul><h2 id="how-to-build-the-stranger-things-christmas-lights-with-raspberry-pi-xa0">How to build the Stranger Things Christmas Lights with Raspberry Pi </h2><p>Before you get started, make sure that you have your Raspberry Pi OS set up. If you haven’t done this before, see our article on how to <a href="https://www.tomshardware.com/how-to/set-up-raspberry-pi"><u>set up a Raspberry Pi</u></a> for the first time or how to do a <a href="https://www.tomshardware.com/reviews/raspberry-pi-headless-setup-how-to,6028.html"><u>headless Raspberry Pi install</u></a> (without the keyboard and screen).</p><p>1. <strong>Install git</strong>, which will allow us to clone the code from github.com</p><pre class="line-numbers language-python" language="python" ><code>sudo apt-get update && sudo apt-get install -y git</code></pre><p>2. <strong>Clone the repository </strong>and descend into the directory created.</p><pre class="line-numbers language-python" language="python" ><code>git clone https://github.com/rydercalmdown/stranger_things_lights.gitcd stranger_things_lights</code></pre><p>3. <strong>Run the installation command</strong> to install all necessary base and python components.</p><pre class="line-numbers language-python" language="python" ><code>make install-pi</code></pre><p>4. <strong>Connect both WS2811 strands together</strong> using their attached connectors. You can use 1 strand, but I’ve found two look better for letter spacing.</p><p>5. <strong>Connect GPIO pin 18</strong> on the pi <strong>to the data pin of the WS2811</strong> strand.</p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image2.png" alt="Xmas Lights From Stranger Things with Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/hQwFjMLvoWtnPjQhV299c8.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/hQwFjMLvoWtnPjQhV299c8.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>6. <strong>Wire the 12v</strong> of the WS2811 strand <strong>to the positive end of a 12 volt power supply</strong>. I used wire nuts to attach mine together. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image6.png" alt="Xmas Lights From Stranger Things with Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/vRPwcYFmfdiAxu57Z6o7u8.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/vRPwcYFmfdiAxu57Z6o7u8.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>7. <strong>Wire the ground</strong> of the WS2811 strand <strong>to the negative end of the 12 volt power supply</strong>, <strong>and also a jumper cable with a female end</strong>. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image10.png" alt="Xmas Lights From Stranger Things with Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/ZffUAg4NbjXdFjkvkKnz39.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/ZffUAg4NbjXdFjkvkKnz39.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>8. <strong>Connect that jumper cable to a ground pin</strong> on the Raspberry Pi. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image3.png" alt="Xmas Lights From Stranger Things with Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/QB6WUwGmrF2X77rqscCWm8.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/QB6WUwGmrF2X77rqscCWm8.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:631px;"><p class="vanilla-image-block" style="padding-top:63.71%;"><img id="" name="image1.png" alt="Xmas Lights From Stranger Things with Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/jCWfunyfW22a3WHnmA6eS8.png" mos="" align="middle" fullscreen="1" width="631" height="402" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/jCWfunyfW22a3WHnmA6eS8.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>9. <strong>Pin the WS2811 strands up on a wall</strong> using push pins (or another method you prefer). </p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/TxNKFN4ZjEFEmHcnEgmWRA.png" alt="Xmas Lights From Stranger Things with Raspberry Pi" /><figcaption><small role="credit">Tom's Hardware</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/NStqhWNFzgjYfRgJGHUaY9.png" alt="Xmas Lights From Stranger Things with Raspberry Pi" /><figcaption><small role="credit">Tom's Hardware</small></figcaption></figure></figure><p>10. <strong>Print out each letter of the alphabet</strong> from a text editor to your desired size.</p><p>11. <strong>Cut out and attach the letters</strong> <strong>under LEDs</strong> of your choice. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image4.png" alt="Xmas Lights From Stranger Things with Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/NBPm6FwUBX3e4c6nXxRgK9.png" mos="" align="middle" fullscreen="1" width="1920" height="1080" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/NBPm6FwUBX3e4c6nXxRgK9.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>12. Back on the Raspberry Pi, <strong>open the worker/app.py file</strong> with a text editor of your choice. </p><pre class="line-numbers language-python" language="python" ><code># in the stranger_things_lights directorynano worker/app.py</code></pre><p>13. <strong>Edit the mapping dictionary so your pins match the letters</strong>. Pins are zero-indexed, so the very first pin on your strand will be 0, and the very last will be 99 (if you have only 1 strand it will be 49). If you have the letter “A” under the last LED, assign it 99 (49 for only 1 strand of LEDs). </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image7.png" alt="Xmas Lights From Stranger Things with Raspberry Pi" src="https://cdn.mos.cms.futurecdn.net/6Jh7YF4SdfGhwmiQYXNYr9.png" mos="" align="middle" fullscreen="1" width="1920" height="1080" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/6Jh7YF4SdfGhwmiQYXNYr9.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>14. <strong>Start the server component. </strong>It will start running on port 5000 in the background. I originally designed the server to be run separately for security, since I allow public messages from the internet, but if you’re using it for yourself you can run both on the pi.</p><pre class="line-numbers language-python" language="python" ><code>make run-server</code></pre><p>15. <strong>Start your worker component</strong> to receive messages from the server.</p><pre class="line-numbers language-python" language="python" ><code>make run-worker</code></pre><p>16. <strong>Plug in your 12v power supply</strong>. This is separate from the Raspberry Pi’s USB power supply.</p><p>17. <strong>Visit your Pi’s IP address</strong> and port from anywhere on the network. In my network, I put this in my browser:</p><pre class="line-numbers language-python" language="python" ><code>http://10.0.0.15:8000/</code></pre><p>18. <strong>Submit a message to the server</strong>. You should see it shortly appear letter by letter on the lights after a brief display of flashing lights to get your attention. </p><p>You have the option of exposing this service to the internet so friends and family can send messages. Keep in mind that any time you open ports on your router or firewall there is an inherent risk - so it’s recommended you do this only temporarily.</p><p>Depending on your router or modem-router combo, you might have an option to port forward. If that’s the case, you can forward port 80 on your router to the Raspberry Pi’s IP address, and port 8000. This means that any browser that types in your home IP address (http://10.0.0.0/ as an example) will be forwarded to the running server on your Pi, where they can submit messages.</p><p>For more advanced users, you could also consider setting up a cloud-based reverse proxy with TLS termination, but to share with friends and family, the above should be sufficient.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Raspberry Pi-Powered Lamp Reacts to Local Air Quality  ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/raspberry-pi-canari-air-quality-lamp</link>
                                                                            <description>
                            <![CDATA[ This beautiful, Raspberry Pi-powered lamp doubles as a local air quality alert system. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">DhBtuXdvAzcGNi2XiqkSKS</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/8wzroQM2sS62nyu94vBbNH-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 18 Jun 2021 15:43:40 +0000</pubDate>                                                                                                                                <updated>Tue, 28 Jan 2025 14:47:06 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/8wzroQM2sS62nyu94vBbNH-1280-80.jpg">
                                                            <media:credit><![CDATA[Guillaume Slizewicz]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Raspberry Pi]]></media:description>                                                            <media:text><![CDATA[Raspberry Pi]]></media:text>
                                <media:title type="plain"><![CDATA[Raspberry Pi]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/8wzroQM2sS62nyu94vBbNH-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Looking for something with atmosphere <em>and</em> function? Check out this beautiful <a href="https://www.tomshardware.com/news/raspberry-pi"><u>Raspberry Pi</u></a>-powered lamp, known as Canari by maker Guillaume Slizewicz. Not only does it feature a unique, brassy design, but it also shows real-time changes to local air quality by changing the light pattern of its bulbs.</p><p>According to Slizewicz, the name comes from the stories of coal miners releasing canaries into mines in order to test the air quality. In the same spirit, the Canari lamp will notably flash when air quality is higher than usual.</p><p>It doesn&apos;t take much to control the lamp. Slizewicz used a Raspberry Pi Zero W in the final build, as the project requires internet access in order to retrieve real-time air quality data.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/uCr94R5kcxLw3Eddwd3L6M.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">Guillaume Slizewicz</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/MnmjCAQnA8fkMmYYGde7mM.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">Guillaume Slizewicz</small></figcaption></figure></figure><p>The Canari lamp also uses an Adafruit 16-channel PWM Servo Bonnet to address the individual bulb,  which are constructed using LEDs, glass globes and propped on top of brass tubes. Some of the <a href="https://www.tomshardware.com/features/best-raspberry-pi-projects">best Raspberry Pi projects</a> use 3D-printed assets, so it&apos;s not surprising to see this one use a custom 3D-printed base.</p><p>The code for this project is open-source and available for anyone to use and explore at <a href="https://gitlab.com/MRTNPRSN/canari">GitLab</a>. Interested parties can also read more about the project through <a href="https://studio.guillaumeslizewicz.com/post/189662102822/another-iteration-work-in-progress-version-for">Slizewicz&apos;s website</a>.</p><iframe src="https://content.jwplatform.com/players/YdWWS5dA.html" id="YdWWS5dA" title="Raspberry Pi 4 Review: The New Gold Standard for Single-Board Computing" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen></iframe>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ How To Program Webcam-Powered Scratch Games ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/how-to/use-webcam-to-program-scratch-game</link>
                                                                            <description>
                            <![CDATA[ Put down the joypad and become a finely tuned instrument of precision sports prowess. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">niK5HsjYaRdaSR9EuWsKkm</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/YWZhTTKP8SRF3tLMTvQf4o-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Sat, 22 May 2021 14:56:31 +0000</pubDate>                                                                                                                                <updated>Wed, 05 Feb 2025 15:06:45 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Les Pounder ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/mZ2MebAz6hhKR6vLUDUbsc.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/YWZhTTKP8SRF3tLMTvQf4o-1280-80.png">
                                                            <media:credit><![CDATA[Tom&#039;s Hardware]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Scratch Game]]></media:description>                                                            <media:text><![CDATA[Scratch Game]]></media:text>
                                <media:title type="plain"><![CDATA[Scratch Game]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/YWZhTTKP8SRF3tLMTvQf4o-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Keeping fit can be fun. What if, instead of running around a park we made a game where you have to hit as many balls as you can to score points? The catch is that you only have 30 seconds to get the highest score! Sounds easy, hand me the joypad! No! To control the game we have to use our body and a webcam that will look for our hands, feet, head and react when we hit a ball. In a twist, we can only start the game shouting “GO” and then the countdown starts! </p><h2 id="for-this-project-you-will-need">For This Project You Will Need</h2><ul><li>Raspberry Pi 4 or 400 (or a Windows / Apple computer)</li><li>The latest Raspberry Pi OS</li><li>A USB webcam</li></ul><iframe width="485" height="402" scrolling="no" frameborder="0" data-lazy-priority="high" data-lazy-src="https://scratch.mit.edu/projects/527621210/embed"></iframe><h2 id="starting-the-game-xa0">Starting the Game </h2><p>1. <strong>Power up your Raspberry Pi 4 / 400</strong> and <strong>connect your USB webcam</strong>. We are using a USB webcam instead of the official Raspberry Pi camera as we need the built in microphone. </p><p>2. <strong>Go to Preferences >> Recommended Software</strong> to install Scratch 3. Scratch 3 is found in the Programming category, place a tick in the box and click Apply to install. </p><p>3. <strong>Open Scratch 3</strong>, found in the main menu under Programming. On first start Scratch may take a little while to open. We’re going to assume that you have an understanding of how to code with Scratch. </p><p>4. <strong>Click on the blue folder icon</strong> in the bottom left of the screen to load the Extensions menu. <strong>Select Video Sensing</strong> to add a palette of new blocks that will be used to create our interface.</p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:386px;"><p class="vanilla-image-block" style="padding-top:56.48%;"><img id="" name="Extension.jpg" alt="Scratch Game" src="https://cdn.mos.cms.futurecdn.net/dX8JgX9YWJTNGDYLV7EXwn.jpg" mos="" align="middle" fullscreen="1" width="386" height="218" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/dX8JgX9YWJTNGDYLV7EXwn.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>5. <strong>Delete the cat sprite</strong>. In the bottom right of the screen click on the Cat sprite and then click on the trash can icon to delete the cat. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:267px;"><p class="vanilla-image-block" style="padding-top:82.77%;"><img id="" name="Delete Cat.png" alt="Scratch Game" src="https://cdn.mos.cms.futurecdn.net/KuPUFSiLw7fuFvpxtEMPgn.png" mos="" align="middle" fullscreen="1" width="267" height="221" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/KuPUFSiLw7fuFvpxtEMPgn.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>6. <strong>Click on the cat logo</strong> and <strong>select “Choose a sprite”</strong>. From the selection <strong>choose a basketball</strong>.  </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:493px;"><p class="vanilla-image-block" style="padding-top:41.38%;"><img id="" name="New sprite.png" alt="Scratch Game" src="https://cdn.mos.cms.futurecdn.net/dANGzoCXK3DL3D8TZbSC9o.png" mos="" align="middle" fullscreen="1" width="493" height="204" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/dANGzoCXK3DL3D8TZbSC9o.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>7. From the Events blocks, <strong>drag the “When Green Flag Clicked.”</strong> From Looks <strong>drag both “show” and “say hello for 2 seconds.”</strong> This will create the trigger to start the game and force our sprite to appear. Change the text inside “say” to “Say GO to start”. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:372px;"><p class="vanilla-image-block" style="padding-top:52.69%;"><img id="" name="7.png" alt="Scratch Game" src="https://cdn.mos.cms.futurecdn.net/a2UvxC2w4TDRv2VihVmamm.png" mos="" align="middle" fullscreen="1" width="372" height="196" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/a2UvxC2w4TDRv2VihVmamm.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>8. <strong>on Variables</strong>, then <strong>“Make a Variable.”</strong> Call the variable “score” and make it available for all sprites. </p><p>9. From Variables <strong>drag the “Set score to 0”</strong> and <strong>place it under the previous blocks</strong>. You may need to use the drop down menu to select the correct variable name. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:383px;"><p class="vanilla-image-block" style="padding-top:61.10%;"><img id="" name="9.png" alt="Scratch Game" src="https://cdn.mos.cms.futurecdn.net/mDanN9BQGtYhRmq6ZZrLrm.png" mos="" align="middle" fullscreen="1" width="383" height="234" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/mDanN9BQGtYhRmq6ZZrLrm.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>10. From Control<strong> drag a “forever” loop</strong> and connect it to the previous blocks of code. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:334px;"><p class="vanilla-image-block" style="padding-top:88.62%;"><img id="" name="10.png" alt="Scratch Game" src="https://cdn.mos.cms.futurecdn.net/29hYZWHZYMvWFfZGkoDMvm.png" mos="" align="middle" fullscreen="1" width="334" height="296" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/29hYZWHZYMvWFfZGkoDMvm.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>11. From Control, <strong>drag “if..then” and place it inside</strong> the loop. This is a conditional test, a question. To form the question we need  to go to Operators and drag “ __ > __” and place it inside the hexagon shaped blank of “if..then”. <br><br>In the second blank <strong>type 50</strong>, and in the first <strong>drag “loudness” </strong>from the Sensing blocks. Loudness uses the microphone to detect noise, and the noise level is given a value of 0 to 100. If we shout “GO” then it should be over 50 and trigger the game to start. But this number may need tweaking for your home. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:373px;"><p class="vanilla-image-block" style="padding-top:103.49%;"><img id="" name="11.png" alt="Scratch Game" src="https://cdn.mos.cms.futurecdn.net/C32ZoquvL7RgjYXjZYLa2n.png" mos="" align="middle" fullscreen="1" width="373" height="386" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/C32ZoquvL7RgjYXjZYLa2n.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>12. <strong>Drag “broadcast,”</strong> found in Events inside the “if..then” section and use the dropdown to <strong>create a new message called “balls.”</strong> </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:330px;"><p class="vanilla-image-block" style="padding-top:59.70%;"><img id="" name="12.png" alt="Scratch Game" src="https://cdn.mos.cms.futurecdn.net/dbRJ8sGXCHrcYg7C3LfG7n.png" mos="" align="middle" fullscreen="1" width="330" height="197" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/dbRJ8sGXCHrcYg7C3LfG7n.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>13. <strong>Drag “say hello for 2 seconds” and “hide”</strong> from Looks and place them inside the “if..then” section. <strong>Change the say block</strong> to read “GO!”. So when the player shouts “GO” the basketball will disappear and the game will start. The code for this sprite should look like this. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:379px;"><p class="vanilla-image-block" style="padding-top:127.97%;"><img id="" name="13.png" alt="Scratch Game" src="https://cdn.mos.cms.futurecdn.net/AZgMzwhXzBva7fbMpQdsBn.png" mos="" align="middle" fullscreen="1" width="379" height="485" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/AZgMzwhXzBva7fbMpQdsBn.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><h2 id="adding-more-sprites-xa0">Adding More Sprites </h2><p>Right now we have created a means to start the game, but we do not yet have a game. For that we need to add sprites with which we can interact with.</p><p>1. <strong>Create a new sprite</strong> using the “Choose a sprite” button in the bottom right of the screen. Select a baseball. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:493px;"><p class="vanilla-image-block" style="padding-top:41.38%;"><img id="" name="New sprite.png" alt="Scratch Game" src="https://cdn.mos.cms.futurecdn.net/dANGzoCXK3DL3D8TZbSC9o.png" mos="" align="middle" fullscreen="1" width="493" height="204" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/dANGzoCXK3DL3D8TZbSC9o.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>2. From Events, <strong>drag two “When I receive balls” blocks</strong>. This broadcast is triggered when the player shouts “GO!”. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:439px;"><p class="vanilla-image-block" style="padding-top:35.54%;"><img id="" name="s2.png" alt="Scratch Game" src="https://cdn.mos.cms.futurecdn.net/qhTSaMfiGcpnR79iZdsDDo.png" mos="" align="middle" fullscreen="1" width="439" height="156" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/qhTSaMfiGcpnR79iZdsDDo.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>3. From Motion <strong>drag “if on edge bounce” and “set rotation style”</strong> and connect them under one of the blocks. Set the rotation to “all around”. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:287px;"><p class="vanilla-image-block" style="padding-top:76.66%;"><img id="" name="s3.png" alt="Scratch Game" src="https://cdn.mos.cms.futurecdn.net/p2uFqUr6Td25ZoEGn8iDHo.png" mos="" align="middle" fullscreen="1" width="287" height="220" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/p2uFqUr6Td25ZoEGn8iDHo.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>4. From Control <strong>drag “forever”</strong> and place it under the previous blocks. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:258px;"><p class="vanilla-image-block" style="padding-top:105.43%;"><img id="" name="s4.png" alt="Scratch Game" src="https://cdn.mos.cms.futurecdn.net/d8anEqnXD3SbwBFgV6ngNo.png" mos="" align="middle" fullscreen="1" width="258" height="272" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/d8anEqnXD3SbwBFgV6ngNo.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>5. Inside forever <strong>drag “glide 1 secs to random position,”</strong> found in the Motion blocks. Your code should now look like this. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:364px;"><p class="vanilla-image-block" style="padding-top:79.67%;"><img id="" name="s5.png" alt="Scratch Game" src="https://cdn.mos.cms.futurecdn.net/xqvgBY8kfHNweDobXYJBTo.png" mos="" align="middle" fullscreen="1" width="364" height="290" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/xqvgBY8kfHNweDobXYJBTo.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>When this sprite receives the message “balls” it will set the sprite to bounce off walls and to reflect at realistic angles off the borders of the screen. Lastly the ball will glide around the screen, similar to a ball travelling in air. </p><p>Our attention now turns to the remaining “When I receive balls” block which will use our webcam to detect if there is movement on a sprite, indicating we are trying to hit the ball.</p><p>1. From Control<strong> place a forever loop</strong> under the second “When I receive balls” block and then add “if..then” so that it is nested inside the forever loop. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:246px;"><p class="vanilla-image-block" style="padding-top:108.13%;"><img id="" name="d1.png" alt="Scratch Game" src="https://cdn.mos.cms.futurecdn.net/hbjdaTnmsWXbzrDQxrWCTn.png" mos="" align="middle" fullscreen="1" width="246" height="266" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/hbjdaTnmsWXbzrDQxrWCTn.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>2. From Operators <strong>drag “ __ > __” and place it </strong>inside the hexagon shaped blank of “if..then”. In the second blank type 80 and in the first blank drag “video motion on sprite” from the Video Sensing blocks. This will use the camera to see if we are waving / punching on a sprite and it will check to see how fast we are waving. In reality this block checks for movement and assigns a value, so you may need to tweak 80 to match your goals. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:489px;"><p class="vanilla-image-block" style="padding-top:54.60%;"><img id="" name="d2.png" alt="Scratch Game" src="https://cdn.mos.cms.futurecdn.net/UfJd7pmTNy68Jgh5BBT9Yn.png" mos="" align="middle" fullscreen="1" width="489" height="267" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/UfJd7pmTNy68Jgh5BBT9Yn.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>3. Inside the if block we need to<strong> drop a “change score by” block</strong> from Variables. The score should change by 10 points if the baseball is hit. Your code should now look like this. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:514px;"><p class="vanilla-image-block" style="padding-top:58.17%;"><img id="" name="d3.png" alt="Scratch Game" src="https://cdn.mos.cms.futurecdn.net/ghb4rBi7tkpGuhN2oQNTcn.png" mos="" align="middle" fullscreen="1" width="514" height="299" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/ghb4rBi7tkpGuhN2oQNTcn.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><h2 id="duplicating-sprites">Duplicating Sprites</h2><p>Rather than repeat the process of creating a new sprite we can duplicate a sprite and edit. </p><p>1. <strong>Right click on the baseball sprite</strong> and <strong>select Duplicate</strong>. We now have two identical balls in the game.</p><p>2. <strong>Change the “glide 1 secs” to 0.5 seconds</strong> to make the ball move faster.</p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:339px;"><p class="vanilla-image-block" style="padding-top:85.55%;"><img id="" name="Duplicate.png" alt="Scratch Game" src="https://cdn.mos.cms.futurecdn.net/HGTRU7adMAmaQ9zSHCAskn.png" mos="" align="middle" fullscreen="1" width="339" height="290" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/HGTRU7adMAmaQ9zSHCAskn.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>3. Select costumes and <strong>click on the “Choose a costume” </strong>button in the bottom left of the screen. Select the tennis ball. Back in the Costume editor, click on the tennis ball on the left side of the screen to make it the default. Click on Code when done. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:935px;"><p class="vanilla-image-block" style="padding-top:65.78%;"><img id="" name="Duplicate2.png" alt="Scratch Game" src="https://cdn.mos.cms.futurecdn.net/HegoYZt34c99xM8aAkNtqn.png" mos="" align="middle" fullscreen="1" width="935" height="615" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/HegoYZt34c99xM8aAkNtqn.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><h2 id="adding-a-countdown-timer">Adding a Countdown Timer</h2><p>Right now our game will run forever, or until we get tired. We need to add a timer in order for players to have a goal. How many points can they score in 30 seconds? The countdown timer is set for 30 seconds and the code for it is contained inside the Stage, the place where our game plays.</p><p>1. <strong>Click on the Stage icon</strong>, found in the bottom right of the screen. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:493px;"><p class="vanilla-image-block" style="padding-top:41.38%;"><img id="" name="New sprite 2.jpg" alt="Scratch Game" src="https://cdn.mos.cms.futurecdn.net/kAj9EtcJknSRamHKkbCSKb.jpg" mos="" align="middle" fullscreen="1" width="493" height="204" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/kAj9EtcJknSRamHKkbCSKb.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>2. <strong>Drag “When I receive balls” </strong>from Events, this will trigger our code to run at the same time as the sprites move. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:276px;"><p class="vanilla-image-block" style="padding-top:44.20%;"><img id="" name="Stage Code.png" alt="Scratch Game" src="https://cdn.mos.cms.futurecdn.net/ZU8bvawfKrecosZ55uhTQ.png" mos="" align="middle" fullscreen="1" width="276" height="122" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/ZU8bvawfKrecosZ55uhTQ.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>3. <strong>Create a new variable</strong>, called timer, and then drag “set timer to 0” and place it under the block. Set the value to 30. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:230px;"><p class="vanilla-image-block" style="padding-top:69.57%;"><img id="" name="Stage Code 2.png" alt="Scratch Game" src="https://cdn.mos.cms.futurecdn.net/NtY3fHFsksgJaUirEwQ85.png" mos="" align="middle" fullscreen="1" width="230" height="160" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/NtY3fHFsksgJaUirEwQ85.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>4. From control<strong> drag “repeat 10”</strong> and place it under the previous. <strong>Change 10 to 30</strong>. This will force the loop to repeat 30 times, effectively our countdown timer. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:228px;"><p class="vanilla-image-block" style="padding-top:101.75%;"><img id="" name="Stage Code 3.png" alt="Scratch Game" src="https://cdn.mos.cms.futurecdn.net/SsPn8xu3FnLQ7Xzk8DufL.png" mos="" align="middle" fullscreen="1" width="228" height="232" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/SsPn8xu3FnLQ7Xzk8DufL.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>5. Inside the loop, <strong>drag a “change timer by 0” </strong>from Variables. Set the value to -1. From Control, <strong>drag a “wait 1 seconds” block</strong>. So now this loop will timer from 30 seconds to 0, the time for our game. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:319px;"><p class="vanilla-image-block" style="padding-top:90.91%;"><img id="" name="image16.png" alt="Scratch Game" src="https://cdn.mos.cms.futurecdn.net/jZUodfWA8LtC5zBMvKtKDb.png" mos="" align="middle" fullscreen="1" width="319" height="290" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/jZUodfWA8LtC5zBMvKtKDb.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>6. <strong>From Control drag “Stop All”</strong> and <strong>place it outside of the Repeat 30 loop</strong>. When the timer reaches zero, the loop ends and the final block, “stop all” is triggered and stops all sprites and running code.</p><p>The game is now complete, but you can also add a new backdrop to the stage using the “Choose a Backdrop” button found in the bottom right of the screen. This changes the look of the stage, but we can still see the live video preview, of us playing the game overlaid on top.</p><p>To start the game <strong>click on the Green Flag</strong>, place yourself in the view of the camera and then shout “GO!” to start the game. Good luck!</p><p><em>The article originally appeared in </em><a href="https://linuxformat.com/"><u><em>Linux Format</em></u></a><em> magazine. </em></p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Raspberry Pi Pico POV Display Spins Out a Dazzling LED Show ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/raspberry-pi-pico-custom-pov-display</link>
                                                                            <description>
                            <![CDATA[ This maker uses a Raspberry Pi Pico to control a custom POV display. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">YhGiDa9SNjiDRnLPL6KCaj</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Bv6Kb47uGKUFkRMgbR3vDW-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 05 Apr 2021 17:35:28 +0000</pubDate>                                                                                                                                <updated>Tue, 28 Jan 2025 14:48:42 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/Bv6Kb47uGKUFkRMgbR3vDW-1280-80.jpg">
                                                            <media:credit><![CDATA[Home Made Garbadge]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Raspberry Pi]]></media:description>                                                            <media:text><![CDATA[Raspberry Pi]]></media:text>
                                <media:title type="plain"><![CDATA[Raspberry Pi]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Bv6Kb47uGKUFkRMgbR3vDW-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>We&apos;ve seen  makers develop some pretty cool <a href="https://www.tomshardware.com/news/raspberry-pi"><u>Raspberry Pi Pico</u></a> displays, but this is the first POV Pico display we&apos;ve seen! POV stands for persistence of vision and refers to a technology that works by flashing <a href="https://www.tomshardware.com/reviews/lcd-led-led-oled-panel-difference,5394.html">LEDs</a> on a rotating string. Through careful timings, the lights can flash in a way that creates an image. </p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/grGJnu9mRXRpRUVQ23uQpb.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">Home Made Garbadge</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/VC9Zkpyh4yWQbKdjpPGnTc.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">Home Made Garbadge</small></figcaption></figure></figure><p>A maker who goes by Home Made Garbage developed this project, which relies on a <a href="https://www.tomshardware.com/news/raspberry-pi">Raspberry Pi </a>Pico to control a spinning strip of <a href="https://www.adafruit.com/product/2241">Adafruit DotStar LEDs</a>. The Pico is in charge of controlling both the LED output and rate at which the strip is spun.</p><p>The <a href="https://www.tomshardware.com/features/best-raspberry-pi-projects">best Raspberry Pi projects</a> are ones you can customize. Not only can users display a static image, they can also play animated sequences using GIFs.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/phl711LOx3A" allowfullscreen></iframe></div></div><p>To keep things in motion without worrying about wires, the Pico receives power from a wireless charging module. One half is mounted to the motor while the other is embedded in the LED arm, supplying juice to the LEDs and Pico.</p><p>Home Made Garbage developed a custom script for the project derived from this work on <a href="https://github.com/raspberrypi/pico-examples/tree/master/pio/apa102">Github</a>. Visit the official <a href="https://homemadegarbage.com/pipico08">Home Made Garbage blog</a> for an in-depth look at the project, and maybe even recreate it yourself!</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Let the Dogs Out! How to Make a Raspberry Pi Pet Detector ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/how-to/raspberry-pi-pet-detector</link>
                                                                            <description>
                            <![CDATA[ Use a Raspberry Pi with image recognition to determine when your cat or dog approaches the door and wants to be let out. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">AebdgASxYCiGYS3nmkm4e8</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/ehVzxEkzaYrx9JzLtijpaL-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 03 Apr 2021 12:00:56 +0000</pubDate>                                                                                                                                <updated>Thu, 21 Aug 2025 08:44:50 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                <author><![CDATA[ ryder+toms@ryderdamen.com (Ryder Damen) ]]></author>                    <dc:creator><![CDATA[ Ryder Damen ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/yHmRhXRwnn6Tza4pvE2MAY.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/ehVzxEkzaYrx9JzLtijpaL-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Hardware]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Raspberry Pi Pet Detector]]></media:description>                                                            <media:text><![CDATA[Raspberry Pi Pet Detector]]></media:text>
                                <media:title type="plain"><![CDATA[Raspberry Pi Pet Detector]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/ehVzxEkzaYrx9JzLtijpaL-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Working from home gives you more opportunities to spend time with your family - pets included. My office is upstairs and occasionally my dog wants to go outside. I could put a bell on the door that she could ring, but why waste the opportunity to build an over-engineered solution.</p><p>This project uses a field of machine learning known as object detection. Fortunately if you’re not familiar with machine learning, it’s a relatively easy project to get started with. We’ll be using a pre-trained model, meaning we won’t need a graphics card, sample data, or hours of time to train a model - just the things listed below.</p><h2 id="what-you-x2019-ll-need-for-this-project-xa0-4">What You’ll Need For This Project </h2><ul><li><a href="https://www.tomshardware.com/reviews/raspberry-pi-4"><u>Raspberry</u></a><a href="https://www.tomshardware.com/reviews/raspberry-pi-4"><u> </u></a><a href="https://www.tomshardware.com/reviews/raspberry-pi-4"><u>Pi 4</u></a> or Raspberry Pi 3 with power adapter</li><li><strong>8 GB (or larger) microSD card </strong>with Raspberry Pi OS. See our list of <a href="https://www.tomshardware.com/best-picks/raspberry-pi-microsd-cards"><u>best microSD cards for Raspberry Pi</u></a>. </li><li><strong>Raspberry Pi Camera and cable</strong> for doing the object detection</li><li><strong>Raspberry Pi Wide Angle Camera Lens</strong>, or a zoom lens depending on how far away your camera will be placed.</li><li><strong>Desktop Speakers</strong> or megaphone with 3.5mm input jack</li><li><strong>Monitor & Keyboard</strong> (optional) with HDMI and power cables</li></ul><h2 id="how-to-detect-when-your-pet-wants-to-go-outside-with-a-raspberry-pi-xa0">How to detect when your pet wants to go outside with a Raspberry Pi </h2><p>1. Set up your Raspberry Pi. If you don’t know how to do this, check out our story on <a href="https://www.tomshardware.com/how-to/set-up-raspberry-pi">how to set up your <u>Raspberry Pi for the first time</u></a> or <a href="https://www.tomshardware.com/reviews/raspberry-pi-headless-setup-how-to,6028.html"><u>how to set up a headless Raspberry Pi</u></a> (without monitor or keyboard). </p><p>2. <strong>Connect your raspberry pi camera</strong> to your pi.</p><p>3. <strong>Enable your camera</strong> with raspi-config. You do this by entering sudo raspi-config from the command line and then navigating to Interface Options > P1 Camera. </p><p>4. <strong>Reboot.</strong></p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1084px;"><p class="vanilla-image-block" style="padding-top:133.39%;"><img id="" name="image1.jpg" alt="Raspberry Pi Pet Detector" src="https://cdn.mos.cms.futurecdn.net/mDjrWkC83Y8N3TjZzKkhGL.jpg" mos="" align="middle" fullscreen="1" width="1084" height="1446" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/mDjrWkC83Y8N3TjZzKkhGL.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>5. <strong>Test your camera’s focus</strong> using the following command. The image can be viewed if you have a monitor connected to your desktop. If you’re using a headless version of raspbian, you’ll need to use scp to move the image to a computer where you can view it. </p><pre class="line-numbers language-python" language="python" ><code>raspistill -o /home/pi/focus.jpg</code></pre><p>6. <strong>Install git.</strong> We need git to download code and scripts from a remote repository. Run the following command to install it:</p><pre class="line-numbers language-python" language="python" ><code>sudo apt-get update && sudo apt-get -y install git</code></pre><p>7. <strong>Clone the pet detector repository</strong> to your home directory. This contains custom code that will take care of the detection for us.</p><pre class="line-numbers language-python" language="python" ><code>cd ~/git clone https://github.com/rydercalmdown/pet_detector</code></pre><p>8. <strong>Install the requirements</strong> for the repository. The install script will install low-level dependencies, set up a virtual environment, and install python dependencies within it.</p><pre class="line-numbers language-python" language="python" ><code>cd ~/pet_detectormake install</code></pre><p>9. <strong>Download the pre-trained machine learning models</strong>. We’re using the YOLOv3 model trained on the COCO dataset. This model is able to recognize a variety of household objects - dogs and cats included.</p><pre class="line-numbers language-python" language="python" ><code>cd ~/pet_detectormake download-model</code></pre><p>10. <strong>Connect speakers to your raspberry pi.</strong> We’ll use the speakers to play a sound effect you can hear whenever your pet steps into the frame. I’m using a megaphone but desktop speakers should work just fine. Test your speakers with the following command:</p><pre class="line-numbers language-python" language="python" ><code>say “this is a test”</code></pre><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1928px;"><p class="vanilla-image-block" style="padding-top:75.00%;"><img id="" name="image2.jpg" alt="Raspberry Pi Pet Detector" src="https://cdn.mos.cms.futurecdn.net/j7YpXXZXdAzYmom69FPBPL.jpg" mos="" align="middle" fullscreen="" width="1928" height="1446" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>11. <strong>Edit your /etc/rc.local file</strong> so this script runs on boot. Open /etc/rc.local by entering the <em>sudo nano /etc/rc.local</em> command and then adding the following line to the bottom of the file:</p><pre class="line-numbers language-python" language="python" ><code>source /home/pi/pet_detector/env/bin/activate && cd /home/pi/pet_detector/src && python app.py &</code></pre><p>12. <strong>Set up your camera so it faces the door.</strong> My pets wait by the door when they want to be let outside - so we work on the assumption that if they step into frame, they want to go outside.</p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1928px;"><p class="vanilla-image-block" style="padding-top:75.00%;"><img id="" name="image3.jpg" alt="Raspberry Pi Pet Detector" src="https://cdn.mos.cms.futurecdn.net/MmET4y3p67uM8aZBGw7PUL.jpg" mos="" align="middle" fullscreen="" width="1928" height="1446" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>13. <strong>Let your pets go outside. </strong>When your cat or dog steps into the frame, the model will detect it, and play a text to speech message letting you know they want to go outside.</p><iframe src="https://content.jwplatform.com/players/YdWWS5dA.html" id="YdWWS5dA" title="Raspberry Pi 4 Review: The New Gold Standard for Single-Board Computing" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen></iframe>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ AmpliPi Raspberry Pi Sound System Plays Music in Every Room ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/amplipi-raspberry-pi-sound-system-plays-music-in-every-room</link>
                                                                            <description>
                            <![CDATA[ This household sound system is built using a Raspberry Pi Compute Module. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">RVueFzPSxRc3ciAsSBkVMU</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/PhPF3WjRYUH7KvpyN3FtW-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 19 Feb 2021 19:21:41 +0000</pubDate>                                                                                                                                <updated>Wed, 05 Feb 2025 15:12:48 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/PhPF3WjRYUH7KvpyN3FtW-1280-80.jpg">
                                                            <media:credit><![CDATA[MicroNova]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Raspberry Pi]]></media:description>                                                            <media:text><![CDATA[Raspberry Pi]]></media:text>
                                <media:title type="plain"><![CDATA[Raspberry Pi]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/PhPF3WjRYUH7KvpyN3FtW-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Building your own smart home is easier than ever with a <a href="https://www.tomshardware.com/news/raspberry-pi"><u>Raspberry Pi</u></a>. Even companies like MicroNova have recognized the potential of our favorite single-board computer (SBC) by using one inside its home sound system, called AmpliPi.</p><p>The crowdfunded <a href="https://www.micro-nova.com/amplipi" target="_blank">AmpliPi</a> box is capable of streaming from four separate sources. Users can interact with it using a web-based interface and output audio to a maximum of 36 stereo output zones.</p><p>The system is built on top of the Raspberry Pi Compute Module 3 and can interface with the likes of Spotify, AirPlay and Pandora. Users can configure speaker zones and playlists using the AmpliPi REST API created by MicroNova.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/v2Nry4GBA9DxJpyYaoWGwD.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">MicroNova</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/JQgqxbek4LsVMnxoxCcx2H.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">MicroNova</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/k2ZQtfJFgVFf7WL63MariJ.jpg" alt="Raspberry Pi" /><figcaption><small role="credit">MicroNova</small></figcaption></figure></figure><p>MicroNova&apos;s web app lets users manage audio sources using a series of tabs. It includes settings to adjust groups and zones to make sure music plays in the intended room. </p><p>Explore the <a href="https://github.com/micro-nova/AmpliPi" target="_blank">AmpliPi GitHub</a> for more in-depth information about how the system works.</p><p>If Raspberry Pi projects get you excited, check out our list of <a href="https://www.tomshardware.com/features/best-raspberry-pi-projects">Best Raspberry Pi Projects</a> for more fun creations from the maker community.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Play Retro Games With This Raspberry Pi-Powered LED Matrix ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/play-retro-games-with-this-raspberry-pi-powered-led-matrix</link>
                                                                            <description>
                            <![CDATA[ This project uses a Raspberry Pi to control an RGB LED matrix for playing retro games. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">UaXtafp9gvD4LeAG3W4wMf</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/QvQv2bedLPbRdP9LDLMG9b-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 08 Oct 2020 21:07:26 +0000</pubDate>                                                                                                                                <updated>Tue, 28 Jan 2025 14:48:20 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/QvQv2bedLPbRdP9LDLMG9b-1280-80.jpg">
                                                            <media:credit><![CDATA[Neythen Treloar]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Neythen Treloar]]></media:description>                                                            <media:text><![CDATA[Neythen Treloar]]></media:text>
                                <media:title type="plain"><![CDATA[Neythen Treloar]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/QvQv2bedLPbRdP9LDLMG9b-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Just when you think retro gaming couldn&apos;t get more pixelated, maker Neythen Treloar comes forward with this awesome <a href="https://www.tomshardware.com/news/raspberry-pi"><u>Raspberry Pi</u></a>-powered <a href="https://www.tomshardware.com/reviews/lcd-led-led-oled-panel-difference,5394.html">LED </a>matrix <a href="https://www.reddit.com/r/raspberry_pi/comments/j6w8uy/retro_matrix_led_retro_games_and_cellular_automata" target="_blank"><u>retro gaming project</u></a>.</p><p>The project shared this week shows off a way to play games on an LED panel using a handheld controller. Treloar tested the system with both a Nintendo Switch Pro controller and PlayStation 4 controller. Be advised, however, that this project is still in its Alpha phase, so updates are expected.</p><p>Treloar tested the creation on a <a href="https://www.tomshardware.com/reviews/raspberry-pi-4">Raspberry Pi 4</a>, which proved to be the most reliable performance-wise. The system was also tested on a Pi Zero, which ran some games better than others but lacked overall in performance when compared to the Pi 4. </p><p>In terms of the housing, everything is entirely 3D printed. Treloar shared the model files on <a href="https://www.thingiverse.com/thing:4605737" target="_blank"><u>Thingiverse</u></a>.</p><p>The maker also developed a companion app, called the Retro Matrix Companion. This application allows you to interface with the RGB LEDs using an iPad. You can "paint" the LEDs in real-time over a local network. You can find the source files for the <a href="https://github.com/zcqsntr/retro_matrix_companion" target="_blank"><u>Retro Matrix Companion</u></a> project on GitHub.</p><p>If you want to recreate this project yourself, check out the official <a href="https://github.com/zcqsntr/retro_matrix" target="_blank"><u>Retro Matrix GitHub page</u></a>. Be sure to follow <a href="https://www.reddit.com/user/Gorse212" target="_blank"><u>Treloar</u></a> on Reddit for more projects and future updates. </p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ How to Build a Raspberry Pi Toilet Paper Reminder ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/how-to/raspberry-pi-toilet-paper-reminder</link>
                                                                            <description>
                            <![CDATA[ Never be without a roll. Using a Raspberry Pi and a sensor, you can get an email when you’re out of toilet paper. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">PPrcuE9UqX95H2w4v3w6x8</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/jmMyjSsMeQUp9Gmbm4seLZ-1280-80.gif" type="image/gif" length="0"></enclosure>
                                                                        <pubDate>Sun, 13 Sep 2020 16:44:35 +0000</pubDate>                                                                                                                                <updated>Wed, 05 Feb 2025 14:49:44 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Caroline Dunn ]]></dc:creator>                                                                                                                                                                                                                                                                    <media:content type="image/gif" url="https://cdn.mos.cms.futurecdn.net/jmMyjSsMeQUp9Gmbm4seLZ-1280-80.gif">
                                                            <media:credit><![CDATA[Tom&#039;s Hardware]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Raspberry Pi Toilet Paper Reminder]]></media:description>                                                            <media:text><![CDATA[Raspberry Pi Toilet Paper Reminder]]></media:text>
                                <media:title type="plain"><![CDATA[Raspberry Pi Toilet Paper Reminder]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/jmMyjSsMeQUp9Gmbm4seLZ-1280-80.gif" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>We’ve all been there. You’re in the bathroom conducting some “business,” when you realize there’s no toilet paper left. You can tell your family or housemates to keep a careful eye on the stack of spare rolls in the corner, but you know that people forget, raising the possibility that you’ll be left without a square to spare. Fortunately, there’s a way to prevent toilet paper outages using a Raspberry Pi that alerts you when you have no spares left in the bathroom.</p><p>In this article, we’ll show you how to build a smart toilet paper holder that uses a Raspberry Pi Zero W and an ultrasonic sensor that measures the level of toilet paper in your holder and sends you an email if it has been empty for over 30 minutes. You can customize the email to specify the bathroom and suggest plans of action.</p><iframe src="https://content.jwplatform.com/players/ia4Sn3zy.html" id="ia4Sn3zy" title="Toilet Paper Level Sensor with Raspberry Pi" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen></iframe><h2 id="how-does-the-raspberry-pi-toilet-paper-reminder-work-xa0">How does the Raspberry Pi Toilet Paper Reminder work? </h2><p>The ultrasonic sensor checks the level of toilet paper every 30 minutes. If 2 checks go by and the holder is empty, your Raspberry Pi will send you an email requesting that you refill the holder or purchase more toilet paper. </p><p>The Pi will continue to send emails every hour every hour until the holder is refilled. Each email will state when the toilet paper holder was first empty and how many reminders it has sent. Once the holder is refilled, everything resets and the Raspberry Pi will stop sending reminder emails. The code also provides a “Do Not Disturb” option to refrain from sending emails at night; default is set to 10 pm to 8 am, and is also customizable.</p><h2 id="what-you-x2019-ll-need">What You’ll Need:</h2><ul><li><a href="https://amzn.to/32shA5Y">Raspberry Pi Zero W with pre-soldered GPIO headers</a> or you can solder them yourself. We could have used any model but the <a href="https://www.tomshardware.com/features/raspberry-pi-zero">Raspberry Pi Zero W</a> is small and low-power.</li><li>Power supply/Keyboard/Mouse/Monitor/HDMI Cable (for your Raspberry Pi)</li><li><a href="https://amzn.to/30VP9fW">Ultrasonic Sensor HC-SR04</a></li><li><a href="https://amzn.to/3bG6y14">Small Breadboard</a></li><li><a href="https://amzn.to/2TIyXMj">Set of jumper wires (M-to-F, M-to-M, and F-to-F)</a></li><li><a href="https://amzn.to/339q1DO">2 resistors (330 ohm & 470 ohm)</a></li><li>5” x 5” cardboard</li><li><a href="https://amzn.to/3md5Ptt">Small Magnets</a></li><li>Super glue</li><li><a href="https://amzn.to/2Fg9RQO">Raspberry Pi case</a></li><li><a href="https://www.thingiverse.com/thing:1708627">Ultrasonic sensor housing</a></li><li><a href="https://amzn.to/3h2wwx0">Toilet paper holder</a></li></ul><h2 id="part-1-hardware-assembly-of-toilet-paper-reminder-xa0">Part 1: Hardware Assembly of Toilet Paper Reminder </h2><p>In this step, we will attach the Raspberry Pi, ultrasonic sensor, and small breadboard to the top of the toilet paper holder (where the toilet paper roll would normally be placed). The ultrasonic sensor should face downward, perpendicular to the toilet paper rolls below; the Pi and breadboard should sit evenly on top. We will wire the components together in this section. At the end of this step, you should be ready to power up your Pi.</p><p>1. <strong>Insert your microSD card</strong> formatted with the Raspberry Pi OS into your Raspberry Pi.</p><p>2. <strong>Superglue 2 small magnets to the back of the housing </strong>for the ultrasonic sensor.</p><p>3. <strong>Connect 4 female-to-male wires to each prong of the ultrasonic sensor</strong>. Insert the ultrasonic sensor into the housing.</p><p>4. <strong>Attach the ultrasonic sensor </strong>with housing <strong>to the toilet paper holder </strong>so that it faces the top toilet paper roll directly.</p><p>5. <strong>Wind the 4 wires </strong>from the ultrasonic sensor through the toilet paper holder and <strong>insert into the breadboard </strong>in sequential order.</p><p>6. <strong>Attach the breadboard and Raspberry Pi to the top of the toilet paper holder</strong>. The Pi should be encased so that the board doesn’t directly contact the metal holder and create a short. We glued 2 small magnets to the enclosure to hold the Raspberry Pi in place. The breadboard should be pre-equipped with an adhesive backing that sticks to the holder.</p><p>7. <strong>Connect  the VCC pin </strong>of the ultrasonic sensor <strong>to pin 2 </strong>of your Raspberry Pi for 5V power.</p><p>8. <strong>Connect TRIG to GPIO 18 </strong>of your Raspberry Pi.</p><p>9. <strong>Connect ECHO to a 330 ohm resistor</strong>.</p><p>10. <strong>Connect the other end of the resistor to GPIO 24 </strong>of your Raspberry Pi.</p><p>11. <strong>Connect a 470 ohm resistor from the 330 ohm resistor to the GND rail</strong>.</p><p>12. <strong>Connect GNC pin from the sensor to the GND rail</strong>. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1038px;"><p class="vanilla-image-block" style="padding-top:73.12%;"><img id="" name="image16.png" alt="Raspberry Pi Toilet Paper Reminder" src="https://cdn.mos.cms.futurecdn.net/Xnp2atmkAWjUG3g6KBvSrP.png" mos="" align="middle" fullscreen="1" width="1038" height="759" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/Xnp2atmkAWjUG3g6KBvSrP.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>13. <strong>Cut out a circle from cardboard </strong>the same width as your roll of toilet paper (approximately 5 inches in diameter). You’ll use this in the next step. <a href="https://github.com/carolinedunn/TP_Reminder/tree/master/TPTopper"><u>Alternatively, you can 3D print this STL file</u></a>.</p><h2 id="part-2-ultrasonic-sensor-for-toilet-paper-reminder-xa0">Part 2: Ultrasonic Sensor for Toilet Paper Reminder </h2><p>In this section we will set up the ultrasonic sensor on the Raspberry Pi toilet paper reminder, in order to measure the distance from the holder’s base to determine if it’s empty. Note: The ultrasonic sensor works by sending out an inaudible sound and determines the distance from when the sound wave is returned. Toilet paper absorbs ultrasonic sounds and thus, we will use cardboard from the previous step to determine the distance for email triggering.</p><p>1. <strong>Boot your Raspberry Pi</strong>. If you don’t already have a microSD card see our article on <a href="https://www.tomshardware.com/reviews/raspberry-pi-set-up-how-to,6029.html"><u>how to set up a Raspberry Pi for the first time</u></a> or how to do a <a href="https://www.tomshardware.com/reviews/raspberry-pi-headless-setup-how-to,6028.html"><u>headless Raspberry Pi install</u></a>.</p><p>2. <strong>Boot your Raspberry Pi.</strong></p><p>3. <strong>Open a Terminal. </strong>You can do that by pressing CTRL + T.</p><p>4. <strong>Clone this repository:</strong></p><pre class="line-numbers language-bash" language="bash" ><code>git clone https://github.com/carolinedunn/TP_Reminder</code></pre><p>5. <strong>Navigate to the TP_Reminder folder</strong> in your file manager.</p><p>6. <strong>Open ultrasonic.py </strong>in Geany or Thonny.</p><p>7. <strong>Run ultrasonic.py </strong>by clicking the paper airplane icon in Geany or PLAY button in Thonny.</p><p>8. <strong>Move rolls of toilet paper into and out of the holder</strong>, keeping the circular cut-out on top. You should see the distance change as you add and/or replace rolls of toilet paper.</p><p>9. <strong>Remove all toilet paper from the holder and leave the circular cut-out at the bottom of the holder.</strong></p><p>10. <strong>Note the distance reading on your screen. Note this distance (write it down if necessary) for Step 4.</strong></p><p>11. <strong>Press Ctrl-C to exit </strong>the program.</p><p>With our toilet paper holder, <strong>Full TP Holder reads ~1 in </strong>and <strong>Empty TP Holder reads > 18 in. </strong>Your results may vary and you may also decide to use the measurement number for when one roll is left so you are alerted with a single roll, rather than when the holder is empty. </p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/sxGh9xvRi5n7X9c2HSrHGi.png" alt="Raspberry Pi Toilet Paper Reminder" /><figcaption><small role="credit">Tom's Hardware</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/AGrSNZL5PeRzGAkm6dU8sj.png" alt="Raspberry Pi Toilet Paper Reminder" /><figcaption><small role="credit">Tom's Hardware</small></figcaption></figure></figure><h2 id="part-3-email-automation-of-toilet-paper-reminder-xa0">Part 3: Email Automation of Toilet Paper Reminder </h2><p>In this step, we will set up an automated email service and send ourselves test emails from the Raspberry Pi toilet paper reminder. This step requires a mail service account. I have selected <a href="https://www.mailgun.com/"><u>Mailgun</u></a> for its simplicity; you are welcome to modify the code with the email service of your choice. Mailgun requires a valid credit card to create an account. For this project, I used the default sandbox domain in Mailgun.</p><p>1. <strong>Navigate to mailgun.com </strong>in your browser.</p><p>2. <strong>Create and/or Login to your Mailgun account</strong>. <strong>Navigate to your sandbox domain</strong> and <strong>click API and then Python</strong> to reveal your API credentials. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1999px;"><p class="vanilla-image-block" style="padding-top:47.07%;"><img id="" name="image1.png" alt="Raspberry Pi Toilet Paper Reminder" src="https://cdn.mos.cms.futurecdn.net/Dy2Csp9i4LENbgMxa9T5tQ.png" mos="" align="middle" fullscreen="1" width="1999" height="941" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/Dy2Csp9i4LENbgMxa9T5tQ.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>3. <strong>Open send-email-test.py</strong> in Thonny or Geany from your file manager, in the <strong>TP_Reminder</strong> directory.</p><p>4. On line 9, "<a href="https://api.mailgun.net/v3/YOUR_DOMAIN_NAME/messages"><u>https://api.mailgun.net/v3/YOUR_DOMAIN_NAME/messages</u></a>" <strong>replace “</strong><a href="https://api.mailgun.net/v3/YOUR_DOMAIN_NAME/messages"><u><strong>YOUR_DOMAIN_NAME</strong></u></a><strong>” with the correct one</strong></p><p>5. <strong>On line 10, replace "YOUR_API_KEY" </strong>with your API key from Mailgun.</p><p>6. <strong>On line 12, add your email address </strong>from your Mailgun account. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1279px;"><p class="vanilla-image-block" style="padding-top:40.27%;"><img id="" name="image8.png" alt="Raspberry Pi Toilet Paper Reminder" src="https://cdn.mos.cms.futurecdn.net/bL4Rcj5GPyW5ZGdMFSjw3S.png" mos="" align="middle" fullscreen="1" width="1279" height="515" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/bL4Rcj5GPyW5ZGdMFSjw3S.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>7. <strong>Run the code send-email-test.py</strong>. If you receive a status code 200 and “Message: Queued” message, check your email. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1279px;"><p class="vanilla-image-block" style="padding-top:56.22%;"><img id="" name="image2.png" alt="Raspberry Pi Toilet Paper Reminder" src="https://cdn.mos.cms.futurecdn.net/kVXvzNVFVjD249eZAh7PXR.png" mos="" align="middle" fullscreen="" width="1279" height="719" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>When you complete this step successfully, you should receive the following email. This email may be delivered to your Spam folder. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:872px;"><p class="vanilla-image-block" style="padding-top:40.14%;"><img id="" name="image11.png" alt="Raspberry Pi Toilet Paper Reminder" src="https://cdn.mos.cms.futurecdn.net/HecJANjg6dg8ygys6EAD83.png" mos="" align="middle" fullscreen="1" width="872" height="350" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/HecJANjg6dg8ygys6EAD83.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>If you wish to email a different email address other than the email address you used to set up your Mailgun account, you can enter it in Mailgun under Authorized Recipients. Don’t forget to verify your additional email address in your inbox. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:716px;"><p class="vanilla-image-block" style="padding-top:58.38%;"><img id="" name="image15.png" alt="Raspberry Pi Toilet Paper Reminder" src="https://cdn.mos.cms.futurecdn.net/UUWL3XWncJccwXu25cGCkA.png" mos="" align="middle" fullscreen="1" width="716" height="418" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/UUWL3XWncJccwXu25cGCkA.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><h2 id="part-4-toilet-paper-level-notifications">Part 4: Toilet Paper Level Notifications</h2><p>In this part, we will combine the distance noted from the ultrasonic sensor in Part 2 with the email sending exercise from Part 3, and set our Raspberry Pi to run the Python code on boot.</p><p>1. <strong>Open TPLevel.py</strong> in Thonny or Geany from your file manager, in the <strong>TP_Reminder</strong> directory.</p><p>2. <strong>Enter your credentials on line 18, 19, and 21 </strong>as you did in Part 3.</p><p>3. <strong>Set your emptyDist (line 9) to your measurement from Part 2 minus 2 inches. </strong>For example, if your empty toilet paper distance from Part 2 was 19, then set <strong>emptyDist = 17</strong>. The code checks if the current distance is greater than <strong>emptyDist</strong>. If you want more advanced warning, use the distance with one roll left.</p><p>4. <strong>Run TPLevel.py </strong>and you should see 1 distance reading appear. Notice that one distance is printed on the screen and then nothing happens? That’s right, the code only checks the distance every 30 minutes and only sends an email if the holder is empty after 2 consecutive checks. If you leave the code running (and your holder is empty), you should receive an email after 30 minutes. Press <strong>Ctrl-X</strong>  to stop the code. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1999px;"><p class="vanilla-image-block" style="padding-top:53.53%;"><img id="" name="image14.png" alt="Raspberry Pi Toilet Paper Reminder" src="https://cdn.mos.cms.futurecdn.net/piRhepEbUpdY8mAZksGipQ.png" mos="" align="middle" fullscreen="1" width="1999" height="1070" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/piRhepEbUpdY8mAZksGipQ.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>5. To speed things up for testing purposes, <strong>comment out line 10 </strong>(by adding a # to the beginning of the line) and uncomment line 11 (by removing the # before <strong>intervalTime</strong>). This will check the level every 5 seconds. Run your updated code.</p><p>6. <strong>Test various scenarios of toilet paper levels </strong>with your 5” cardboard. Note if you are working on this project between the hours of 10 pm and 8 am, the default code is set to NOT send emails during those hours. You may need to adjust “endHour = 22” or “startHour = 8” on lines 12 and 13. 22 represents 24-hour military time a.k.a. 10 pm. </p><p>Test Scenarios:</p><p>a. Full toilet paper holder for 10 seconds. No email.</p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image10.png" alt="Raspberry Pi Toilet Paper Reminder" src="https://cdn.mos.cms.futurecdn.net/est4wnVsXVAHkfogtntF6k.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/est4wnVsXVAHkfogtntF6k.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>b. Remove some toilet paper, but leave 1 roll. No email (unless you changed set the level at one roll distance) </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image12.png" alt="Raspberry Pi Toilet Paper Reminder" src="https://cdn.mos.cms.futurecdn.net/jksibWQjwjamWf8NNEwPG8.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/jksibWQjwjamWf8NNEwPG8.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>c. Remove all toilet paper and put your cardboard at the bottom. After two checks that are five seconds apart, you should receive your first email. After another 10 seconds, you should receive your second email. To stop the emails, go to the next scenario. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image9.png" alt="Raspberry Pi Toilet Paper Reminder" src="https://cdn.mos.cms.futurecdn.net/3SsvPtHFNpam9sEGfcVGsK.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/3SsvPtHFNpam9sEGfcVGsK.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>d. <strong>Add 2 rolls of toilet paper </strong>with the cardboard on top. Wait 10 seconds. Emails should stop. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="image5.png" alt="Raspberry Pi Toilet Paper Reminder" src="https://cdn.mos.cms.futurecdn.net/DnFCdCXNfzXhKGf2SxuxYV.png" mos="" align="middle" fullscreen="1" width="1280" height="720" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/DnFCdCXNfzXhKGf2SxuxYV.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>e. Remove toilet paper. Emails should start over.</p><p>7. <strong>Adjust the position of your ultrasonic sensor </strong>to most accurately measure the toilet paper level. There will be some “jitter” which may produce a few inaccurate measurements, but this should settle down. For example, if the sensor is too close to the sides of the holder, distance readings will reflect the sides and not the toilet paper level.</p><p>8. <strong>Press Ctrl-X</strong> to stop the code.</p><p>9. At this point, you can <strong>update the code to suit your specific needs</strong>. For example, you could update the subject or body of the email in lines 22 and 23.</p><p>10. <strong>Adjust the interval time back to 30 minute</strong>s by undoing your work from Step 5 in this section. Comment out line 11 and uncomment line 10.</p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1279px;"><p class="vanilla-image-block" style="padding-top:40.27%;"><img id="" name="image8.png" alt="Raspberry Pi Toilet Paper Reminder" src="https://cdn.mos.cms.futurecdn.net/dhuDVn6n5tZWSb9L4QxJC.png" mos="" align="middle" fullscreen="1" width="1279" height="515" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/dhuDVn6n5tZWSb9L4QxJC.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>11. <strong>Save your work.</strong></p><p>Next, we’ll want to set TPLevel.py to run on boot.</p><p>12. <strong>Open /home/pi/.bashrc for editing </strong>in the terminal.</p><p><strong>sudo nano /home/pi/.bashrc</strong></p><p>13. Enter the following text at the bottom of .bashrc and save it (by hitting CTRL + X).</p><p> <strong>python /home/pi/TP_Reminder/TPLevel.py </strong></p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1318px;"><p class="vanilla-image-block" style="padding-top:66.31%;"><img id="" name="image17.png" alt="Raspberry Pi Toilet Paper Reminder" src="https://cdn.mos.cms.futurecdn.net/MCREDs3cnEirmJm7xCzdAP.png" mos="" align="middle" fullscreen="1" width="1318" height="874" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/MCREDs3cnEirmJm7xCzdAP.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>a. Press <strong>Ctrl-X to exit and Y to save.</strong></p><p>b. <strong>Reboot </strong>your Pi.</p><p>Once your Pi reboots, it should automatically run <strong>TPLevel.py</strong> python script every time.</p><iframe src="https://content.jwplatform.com/players/YdWWS5dA.html" id="YdWWS5dA" title="Raspberry Pi 4 Review: The New Gold Standard for Single-Board Computing" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen></iframe>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ This Cassette Has a Raspberry Pi Inside, LEDs Outside  ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/this-cassette-has-a-rasperry-pi-inside-leds-outside</link>
                                                                            <description>
                            <![CDATA[ If you love old school tech, you've got to check out the Raspberry Pi-based cassette with an LED display scrolling IoT notifications ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">GAojqUbEasnyth5VxuiRf9</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/2eA5GsDiCdzM6ZXkzEixA7-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 17 Aug 2020 18:11:12 +0000</pubDate>                                                                                                                                <updated>Tue, 28 Jan 2025 14:47:21 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/2eA5GsDiCdzM6ZXkzEixA7-1280-80.jpg">
                                                            <media:credit><![CDATA[Martin Mander]]></media:credit>
                                                                                                                                                                                                                                                                                                                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/2eA5GsDiCdzM6ZXkzEixA7-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>If you look back fondly on rocking out to cassettes in your boombox, you&apos;re going to love this DIY project by Martin Mander! It uses a <a href="https://www.tomshardware.com/news/raspberry-pi"><u>Raspberry Pi</u></a> to control a tiny scrolling Pimoroni <a href="https://www.tomshardware.com/reviews/lcd-led-led-oled-panel-difference,5394.html">LED </a>screen housed inside a clear cassette tape, turning your boombox&apos;s cassette window into a bonafide show. </p><p>The idea came from the trend of clear shell electronics from the ‘80s and ‘90s, which were designed to show off the internal hardware and components. Mander decided to use a Raspberry Pi Zero to control the LED display. The maker opted for the Pi Zero because it&apos;s the only edition small enough to fit inside a cassette.</p><p>The Pi Zero receives input from an application called<a href="https://ifttt.com/" target="_blank"> If This, Then That</a> (IFTTT), used for programming between compatible apps for Internet of Things (IoT) projects. The Raspberry Pi receives data from IFTT via an Adafruit.IO feed. That data is then processed with a Python script. After, the notification message is displayed across the 11 x 7-inch scrolling LED display. The cassette even vibrates to alert you of new notifications. </p><p>This whole operation is wireless and receives power from a 150mAh LiPo battery. When the battery runs low, it can be recharged via microUSB using an <a href="https://www.adafruit.com/product/1904?gclid=EAIaIQobChMI4_j30Oei6wIVj4vICh0A-Ar-EAAYAiAAEgI1_vD_BwE" target="_blank">Adafruit Micro Lipo</a>. </p><p>This project is the perfect blend of retro and future tech. If you want to review the build details or recreate it yourself, visit the full project breakdown shared by Mander on <a href="https://www.hackster.io/martin-mander/cassette-pi-iot-scroller-cb3d3f" target="_blank"><u>Hackster</u></a>. And be sure to check back here on Tom&apos;s Hardware regularly for more cool Raspberry Pi news and projects.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ This Homemade Aquaponic Irrigation System Is Powered by a Raspberry Pi  ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/this-homemade-aquaponic-irrigation-system-is-powered-by-a-raspberry-pi</link>
                                                                            <description>
                            <![CDATA[ This Raspberry Pi project makes it much easier to monitor and manage your garden with serious precision. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">uXGWz6zPL4FoYUmhTstP4D</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/MDHnpehEX5F5dmngRZwvA6-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 06 Aug 2020 17:29:13 +0000</pubDate>                                                                                                                                <updated>Tue, 28 Jan 2025 14:48:23 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/MDHnpehEX5F5dmngRZwvA6-1280-80.jpg">
                                                            <media:credit><![CDATA[Richard Sears]]></media:credit>
                                                                                                                                                                                                                                                                                                                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/MDHnpehEX5F5dmngRZwvA6-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Your garden needs love and attention to flourish. So why not automate that love with the help of a <a href="https://www.tomshardware.com/news/raspberry-pi">Raspberry Pi</a>? Maker Richard Sears did just that with an invention aptly dubbed <a href="https://www.hackster.io/user3424878278/gardenpi-powered-by-neptune-py-c0a691" target="_blank">GardenPi</a>. It&apos;s a fully automated hydroponic/aquaponic control system made to help control and monitor your garden with ease. </p><p>We can&apos;t go forward without recognizing how much work Sears invested into this project. It has tools to control sprinkler valves, sensors to detect water levels from his fish aquariums and an application to help manage water flow between his fish and garden plots.</p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:376px;"><p class="vanilla-image-block" style="padding-top:255.32%;"><img id="" name="screen_2020-08-04_at_3_15_29_pm_SmIPIknbKf.jpg" alt="" src="https://cdn.mos.cms.futurecdn.net/itcL26rB7HsLLLgAPFrBh5.jpg" mos="" align="middle" fullscreen="1" width="376" height="960" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/itcL26rB7HsLLLgAPFrBh5.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Richard Sears)</span></figcaption></figure><p>Sears and his family keep aquariums. Up until now, they had to carry buckets of water from the aquariums to the garden by hand. The new GardenPi system takes filtered water from the aquariums and puts it into a reservoir tank. Ultrasonic sensors detect the water levels in the tank, and then GardenPi automatically pumps the water from the tank into the garden when it&apos;s time.</p><p>The project relies on a 4GB <a href="https://www.tomshardware.com/reviews/raspberry-pi-4">Raspberry Pi 4</a> model, but Sears insisted that older editions should work just as well. Although, the Pi 4 provides a bit of a buffer with the expanded RAM. </p><p>Sears also fitted his Pi 4 with a touchscreen interface and custom bezel.</p><p>If you want to explore the details of this project, check out the full write-up from Sears on <a href="https://www.hackster.io/user3424878278/gardenpi-powered-by-neptune-py-c0a691" target="_blank">Hackster</a>. You can also follow him on <a href="https://www.reddit.com/user/MD500_Pilot" target="_blank">Reddit</a> for future updates.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ How to Build a Raspberry Pi Hand Washing Timer ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/how-to/raspberry-pi-hand-washing-timer</link>
                                                                            <description>
                            <![CDATA[ Doctors advise you to wash your hands for at least 20 seconds. This Raspberry Pi project will help make sure you’re doing it for that long. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">tnNF9PJyzgNASyrTgE7chX</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/S5xNSK85ck5NcqQtJ2jBbV-1280-80.gif" type="image/gif" length="0"></enclosure>
                                                                        <pubDate>Thu, 06 Aug 2020 13:25:45 +0000</pubDate>                                                                                                                                <updated>Wed, 05 Feb 2025 14:50:09 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Caroline Dunn ]]></dc:creator>                                                                                                                                                                                                                                                                    <media:content type="image/gif" url="https://cdn.mos.cms.futurecdn.net/S5xNSK85ck5NcqQtJ2jBbV-1280-80.gif">
                                                            <media:credit><![CDATA[Tom&#039;s Hardware]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Raspberry Pi Hand Washing Timer]]></media:description>                                                            <media:text><![CDATA[Raspberry Pi Hand Washing Timer]]></media:text>
                                <media:title type="plain"><![CDATA[Raspberry Pi Hand Washing Timer]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/S5xNSK85ck5NcqQtJ2jBbV-1280-80.gif" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Due to the global pandemic, I’ve seen both useful and funny COVID-19 hacks everywhere. I thought I would make my own COVID life hack with a hand washing timer that is motion triggered and plays a 20-second music clip. Why 20 seconds? Health officials are recommending that we wash our hands often and for at least 20 seconds each time. When I reach for my soap, I trigger this hand washing timer to play a music clip and the display will countdown for 20-seconds.</p><p>This is a four part tutorial. In Part 1, you’ll learn how to connect your Raspberry Pi to an external speaker and play music clips via VLC through a Python script. Part 2 is all about adding a 16X2 LCD screen and adjusting contrast. In Part 3, we add the ultrasonic sensor and learn how to measure distance. In Part 4, we pull it all together by triggering the music and the countdown display with the ultrasonic sensor.</p><h2 id="what-you-x2019-ll-need-to-build-a-hand-washing-timer-xa0">What You’ll Need to Build a Hand Washing Timer </h2><ul><li><a href="https://www.amazon.com/ELEMENT-Element14-Raspberry-Pi-Motherboard/dp/B07P4LSDYV">Raspberry Pi 3B</a> or newer (3B+,3A+, or 4)</li><li>Power supply/Keyboard/Mouse/Monitor/HDMI Cable (for your Raspberry Pi)</li><li><a href="https://www.amazon.com/SainSmart-HC-SR04-Ranging-Detector-Distance/dp/B004U8TOE6">Ultrasonic Sensor</a></li><li><a href="https://www.amazon.com/LGDehome-Interface-Adapter-Backlight-MEGA2560/dp/B0711WLVP9">16x2 LCD screen with I2C backpack</a></li><li>Small screwdriver to adjust contrast of the LCD screen</li><li><a href="https://www.amazon.com/AmazonBasics-Stereo-Audio-Cable-Meters/dp/B00NO73MUQ">3.5mm male-to-male audio cable</a></li><li><a href="https://www.amazon.com/Wireless-Speakers-Leadsound-Portable-computer/dp/B01HB18J4O">Portable speaker with 3.5mm Aux Audio Jack</a></li><li><a href="https://www.amazon.com/Breadboards-Solderless-Breadboard-Distribution-Connecting/dp/B07DL13RZH">Breadboard</a></li><li><a href="https://www.amazon.com/Elegoo-EL-CP-004-Multicolored-Breadboard-arduino/dp/B01EV70C78">Set of jumper wires (M-to-F, M-to-M, and F-to-F)</a></li><li>2 resistors (330 ohm & 470 ohm)</li></ul><p><strong>Optional: </strong><a href="https://www.thingiverse.com/thing:4559022">3D print a case for your hand washing timer</a></p><p>This design also requires 4 - M2.5 screws and corresponding nuts to attach the LCD screen + 4 short M2.5 screws to attach the Raspberry Pi to the base.</p><iframe src="https://content.jwplatform.com/players/Sn3n18zX.html" id="Sn3n18zX" title="How to Create a Raspberry Pi Hand Washing Timer" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen></iframe><h2 id="part-1-playing-music-on-raspberry-pi-hand-washing-timer-xa0">Part 1: Playing Music on Raspberry Pi Hand Washing Timer </h2><p><strong>Connect your speaker to the Raspberry Pi’s 3.5mm jack</strong>. If it charges via USB, you can power it from one of the Pi’s ports.</p><p>1. <strong>Boot your Raspberry Pi.</strong> If you don’t already have a microSD card see our article on <a href="https://www.tomshardware.com/how-to/set-up-raspberry-pi">how to set up a Raspberry Pi for the first time</a> or how to do a <a href="https://www.tomshardware.com/reviews/raspberry-pi-headless-setup-how-to,6028.html">headless Raspberry Pi install</a>.</p><p>2. <strong>Right click on the speaker icon to select ‘Analog’ input. </strong>You’ll find it in the upper right corner of the screen. After setting ‘Analog’ input, left click the same speaker icon to set the volume to the middle (or your desired level).  </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:348px;"><p class="vanilla-image-block" style="padding-top:126.44%;"><img id="" name="image10.png" alt="Raspberry Pi Hand Washing Timer" src="https://cdn.mos.cms.futurecdn.net/7eFW7DG67BnXRFqKqjcrsS.png" mos="" align="middle" fullscreen="1" width="348" height="440" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/7eFW7DG67BnXRFqKqjcrsS.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>4. <strong>Open a Terminal</strong></p><p>5. <strong>Install VLC for Python</strong> by entering </p><pre class="line-numbers language-bash" language="bash" ><code>sudo pip install python-vlc</code></pre><p>6. <strong>Clone this repository</strong></p><pre class="line-numbers language-bash" language="bash" ><code>git clone https://github.com/carolinedunn/Handwashing_Timer_Display</code></pre><p>7. <strong>Navigate to the directory</strong> you just created</p><pre class="line-numbers language-bash" language="bash" ><code>cd Handwashing_Timer_Display</code></pre><p>8. <strong>Test your setup</strong> by entering in the Terminal</p><pre class="line-numbers language-bash" language="bash" ><code>python test_music.py</code></pre><p>If music plays, then go to the next step, if not then go back and troubleshoot. </p><p><strong>Note:</strong> Music should play (20 second clips) followed by a 5 second pause between each song.</p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1431px;"><p class="vanilla-image-block" style="padding-top:56.74%;"><img id="" name="image13.png" alt="Raspberry Pi Hand Washing Timer" src="https://cdn.mos.cms.futurecdn.net/iA8qR67kXCCccrzXCJmxET.png" mos="" align="middle" fullscreen="1" width="1431" height="812" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/iA8qR67kXCCccrzXCJmxET.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="caption-text">Troubleshooting Tips – Check your connections. Ensure the speaker is powered on. Check your network connection.  </span><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p><strong>Bonus:</strong> You can replace the music with your own music by replacing the music files but please keep the naming convention of 1.mp3, 2.mp3, etc. so that you don’t have to rewrite the code. I used <a href="https://www.audacityteam.org/"><u>Audacity</u></a> to cut the music down to 20 second clips. The music included in this tutorial is royalty free music.</p><p>You’ll need Shutdown your Raspberry Pi and unplug the power for the next part.</p><h2 id="part-2-lcd-display-for-raspberry-pi-hand-washing-timer-xa0">Part 2: LCD display for Raspberry Pi Hand Washing Timer </h2><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1999px;"><p class="vanilla-image-block" style="padding-top:75.04%;"><img id="" name="image7.jpg" alt="Raspberry Pi Hand Washing Timer" src="https://cdn.mos.cms.futurecdn.net/zc7EmYKZmzSSmsnmwQU5iS.jpg" mos="" align="middle" fullscreen="" width="1999" height="1500" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p><strong>From the I2C backpack on the LCD screen (using 4 female-to-female jumper wires):</strong></p><p>1. <strong>Connect GND to a ground pin</strong> on the Raspberry Pi.</p><p>2. <strong>Connect VCC to 5V (pin 2) </strong>on the Raspberry Pi.</p><p>3. <strong>Connect the SDA to pin 3 </strong>on the Raspberry Pi.</p><p>4. <strong>Connect the SCL to pin 5</strong> on the Raspberry Pi. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1803px;"><p class="vanilla-image-block" style="padding-top:54.91%;"><img id="" name="image6.png" alt="Raspberry Pi Hand Washing Timer" src="https://cdn.mos.cms.futurecdn.net/9MWaCA3QfcGoYk8cuJSdcS.png" mos="" align="middle" fullscreen="1" width="1803" height="990" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/9MWaCA3QfcGoYk8cuJSdcS.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>5. <strong>Boot </strong>your Raspberry Pi</p><p>6. <strong>Open the Raspberry Pi Configuration tool </strong>from the Preferences menu in the Raspbery Pi OS GUI. </p><p>7. <strong>Enable ‘I2C’</strong> on the Interfaces tab. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:600px;"><p class="vanilla-image-block" style="padding-top:74.67%;"><img id="" name="image5.gif" alt="Raspberry Pi Hand Washing Timer" src="https://cdn.mos.cms.futurecdn.net/miTjEq9qdSsotyKiF3PkUU.gif" mos="" align="middle" fullscreen="1" width="600" height="448" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/miTjEq9qdSsotyKiF3PkUU.gif' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>8. <strong>Open lcd_disp.py </strong>from the Handwashing_Timer_Display folder <strong>in Geany. </strong>The easiest way is to use file manager to navigate to the folder, right click on the file and select Geany as your editor. y. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1430px;"><p class="vanilla-image-block" style="padding-top:50.14%;"><img id="" name="image15.png" alt="Raspberry Pi Hand Washing Timer" src="https://cdn.mos.cms.futurecdn.net/DquUPFaKtEXZKc3Qq2FfUT.png" mos="" align="middle" fullscreen="1" width="1430" height="717" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/DquUPFaKtEXZKc3Qq2FfUT.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>9. <strong>Run lcd_disp.py </strong>by clicking the paper airplane icon in Geany.</p><p>You should now see text across the LCD screen.</p><p>10. <strong>Adjust the contrast dial</strong> on the back of the screen using a screw driver, until you’re comfortable with the output. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1999px;"><p class="vanilla-image-block" style="padding-top:75.04%;"><img id="" name="image12.jpg" alt="Raspberry Pi Hand Washing Timer" src="https://cdn.mos.cms.futurecdn.net/KecxXfp4MBuNk7ijkhCb4T.jpg" mos="" align="middle" fullscreen="1" width="1999" height="1500" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/KecxXfp4MBuNk7ijkhCb4T.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>Shutdown your Raspberry Pi and unplug the power for the next step. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1999px;"><p class="vanilla-image-block" style="padding-top:75.04%;"><img id="" name="image9.jpg" alt="Raspberry Pi Hand Washing Timer" src="https://cdn.mos.cms.futurecdn.net/TmzdbJTXp5MQgDnqykotpS.jpg" mos="" align="middle" fullscreen="1" width="1999" height="1500" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/TmzdbJTXp5MQgDnqykotpS.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><h2 id="part-3-ultrasonic-sensor-on-raspberry-pi-hand-washing-xa0">Part 3: Ultrasonic Sensor on Raspberry Pi Hand Washing  </h2><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1999px;"><p class="vanilla-image-block" style="padding-top:75.04%;"><img id="" name="image2.jpg" alt="Raspberry Pi Hand Washing Timer" src="https://cdn.mos.cms.futurecdn.net/xTZfFShHy5D7kb35Zws3NS.jpg" mos="" align="middle" fullscreen="" width="1999" height="1500" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>1. <strong>Attach a female to male jumper wire to each lead </strong>from the ultrasonic sensor.</p><p>2. <strong>Insert the male-end of the jumper wires to the breadboard </strong>in sequential order.</p><p>3. <strong>Connect  the VCC pin </strong>of the ultrasonic sensor <strong>to pin 4 of your Raspberry Pi for 5V power.</strong></p><p>4. <strong>Connect TRIG to GPIO 18 </strong>of your raspberry pi.</p><p>5. <strong>Connect ECHO to a 330 ohm resistor</strong>.</p><p>6. <strong>Connect the other end of the resistor to GPIO 24 </strong>of your raspberry pi.</p><p>7. <strong>Connect a 470 ohm resistor </strong>from the 330 ohm resistor <strong>to the GND rail</strong>.</p><p>8. <strong>Connect GNC pin </strong>from the sensor <strong>to the GND rail</strong>. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1803px;"><p class="vanilla-image-block" style="padding-top:64.89%;"><img id="" name="image19.png" alt="Raspberry Pi Hand Washing Timer" src="https://cdn.mos.cms.futurecdn.net/HQxXSdKSBpgDJ2iW6wQquT.png" mos="" align="middle" fullscreen="" width="1803" height="1170" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p><strong>Side Note:</strong> For testing, I found it was easiest to insert the 4 pins of the ultrasonic sensor directly into the breadboard and connect from there. In practice (actual hand washing), adding 4 female-to-male jumper wires between the ultrasonic sensor and the breadboard allowed me to be able to position the sensor for optimal usage.</p><p>9. <strong>Boot your Raspberry Pi</strong> </p><p>10. <strong>Open ultrasonic.py</strong> for editing using Geany.</p><p>11. <strong>Run ultrasonic.py </strong>by clicking the paper airplane icon in Geany.</p><p>As you hold your hand over the ultrasonic sensor, the distance between the sensor and your hand should be measured and shown in the terminal.</p><p>12. <strong>Press Ctrl-C to exit </strong>the program. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1429px;"><p class="vanilla-image-block" style="padding-top:55.98%;"><img id="" name="image16.png" alt="Raspberry Pi Hand Washing Timer" src="https://cdn.mos.cms.futurecdn.net/tzB73yqS3S4dGV3VdHH6cT.png" mos="" align="middle" fullscreen="1" width="1429" height="800" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/tzB73yqS3S4dGV3VdHH6cT.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><h2 id="part-4-pull-it-all-together-xa0">Part 4: Pull It All Together </h2><p>1. <strong>Measure / estimate the distance between your hand and the ultrasonic sensor </strong>to determine the distance you wish to set to trigger the sensor.</p><p>2. <strong>Open ultrasonic_display.py for editing</strong> in Geany</p><p>3. <strong>Adjust the dist_trig on line 51 </strong>to the distance you determined (in inches) to trigger the sensor. Default is 7 inches.</p><p>4. <strong>Save </strong>your changes.</p><p>5. Run <strong>ultrasonic_display.py</strong></p><p>6. <strong>Wave your hand over the ultrasonic sensor </strong>until you reach the distance you set to trigger the hand washing timer. Once you have moved your hand closer than the distance that you set on line 51, the music should start playing and the display should count down.</p><p>After the song ends, the display should read: </p><p><strong>“Great Job! </strong></p><p><strong>All Clean”</strong></p><p>The display should pause for at least 5 seconds before going back into “<strong>Ready for Motion</strong>” status. This prevents the hand washing timer from triggering too often.</p><p>When the hand washing sensor has reset, you should see “<strong>Ready for Motion</strong>” on the display.</p><p>7. Click the stop icon to stop the hand washing timer.</p><p>8. <strong>Set ultrasonic_display.py to run</strong> every time you boot your Raspberry Pi if you want it to work every time you power the computer on.  We have instructions here on how to <a href="https://www.tomshardware.com/how-to/run-script-at-boot-raspberry-pi"><u>set a script to boot on Raspberry Pi</u></a>.</p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1431px;"><p class="vanilla-image-block" style="padding-top:56.11%;"><img id="" name="image17.png" alt="Raspberry Pi Hand Washing Timer" src="https://cdn.mos.cms.futurecdn.net/tQ6c3fvoSuAStoJbpwcBkT.png" mos="" align="middle" fullscreen="1" width="1431" height="803" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/tQ6c3fvoSuAStoJbpwcBkT.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>Side Note: Parts 2 & 3 all seemed to work with both default Python apps in Raspberry Pi OS (Thonny and Geany). The python code <strong>test_music.py</strong> and <strong>ultrasonic_display.py</strong> did not work with Thonny as Thonny could not invoke VLC to play music files. Please use Geany or run in a terminal command > python ultrasonic_display.py </p><p><strong>Optional: </strong>When you get your project working you can 3D print a case to enclose your hand washing timer. <a href="https://www.thingiverse.com/thing:4559022"><u>https://www.thingiverse.com/thing:4559022</u></a> </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1999px;"><p class="vanilla-image-block" style="padding-top:75.04%;"><img id="" name="image14.jpg" alt="Raspberry Pi Hand Washing Timer" src="https://cdn.mos.cms.futurecdn.net/T4CMoTgbLXcrdcc6vLHQNT.jpg" mos="" align="middle" fullscreen="1" width="1999" height="1500" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/T4CMoTgbLXcrdcc6vLHQNT.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><h2 id="setup-your-hand-washing-timer-to-run-on-boot-xa0">Setup your hand washing Timer to run on Boot </h2><p>This step sets up your Raspberry Pi to always run the <strong>ultrasonic_display.py</strong> script to run on boot.</p><p>1. <strong>Open a Terminal</strong></p><p>2. Enter <strong>sudo nano /home/pi/.bashrc</strong></p><p><br></p><p>3. <strong>Enter the following text at the bottom</strong> of .bashrc</p><p><br></p><pre class="line-numbers language-bash" language="bash" ><code>python /home/pi/Handwashing_Timer_Display/ultrasonic_display.py</code></pre><p>4. Hit <strong>Ctrl-X to exit and Y to save.</strong></p><p>5. <strong>Reboot </strong>your Pi. <strong>Reboot </strong>your Pi. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1322px;"><p class="vanilla-image-block" style="padding-top:73.83%;"><img id="" name="image4.png" alt="Raspberry Pi Hand Washing Timer" src="https://cdn.mos.cms.futurecdn.net/gNFWnukv6PTM6FJoVHh8ZS.png" mos="" align="middle" fullscreen="1" width="1322" height="976" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/gNFWnukv6PTM6FJoVHh8ZS.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>Once your Pi reboots, it should automatically run <strong>ultrasonic_display.py</strong> python script every time.</p><p>Enjoy your 20-second hand washing timer!</p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1999px;"><p class="vanilla-image-block" style="padding-top:75.04%;"><img id="" name="image3.jpg" alt="Raspberry Pi Hand Washing Timer" src="https://cdn.mos.cms.futurecdn.net/Ly9YtWjwvjbxShRSyuYFTS.jpg" mos="" align="middle" fullscreen="1" width="1999" height="1500" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/Ly9YtWjwvjbxShRSyuYFTS.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ This Raspberry Pi Balance Bot Won't Fall Down ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/this-raspberry-pi-balance-bot-wont-fall-down</link>
                                                                            <description>
                            <![CDATA[ This Raspberry Pi balance bot project was inspired by the Handle robot from Boston Dynamics. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Zr4pTkKxeRiUpkjo4JcKgC</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/SsLofieq4sx5iQTRjCV3u8-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 17 Jul 2020 18:58:56 +0000</pubDate>                                                                                                                                <updated>Tue, 28 Jan 2025 14:48:49 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/SsLofieq4sx5iQTRjCV3u8-1280-80.jpg">
                                                            <media:credit><![CDATA[Harry, Raspibotics]]></media:credit>
                                                                                                                                                                                                                                                                                                                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/SsLofieq4sx5iQTRjCV3u8-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>This <a href="https://www.tomshardware.com/news/raspberry-pi"><u>Raspberry Pi</u></a> project wobbles, but it definitely won&apos;t fall down. Created by Harry from Raspibotics, this <a href="https://raspibotics.wixsite.com/pibotics-blog/post/01-build-a-self-balancing-robot-with-legs-boston-dynamics-handle-inspired" target="_blank">balancing robot </a>was inspired by the Handle robot from Boston Dynamics. It uses a Raspberry Pi as the main board to detect its current orientation and maintain balance.</p><p>Harry&apos;s balance bot stands out with the addition of two legs complete with custom wheels. This allows for height adjustment to help with stability when tipped towards a given side.</p><p>The wheels use two 38mm Nema 17 stepper motors, while each leg uses an MG996R Servo. These components allow for the control necessary to maintain balance.</p><p>An Arduino Uno handles all of the PID calculations in real-time. In addition to the Raspberry Pi, Harry used a<a href="https://www.digikey.com/catalog/en/partgroup/picon-zero-intelligent-robotics-controller-for-raspberry-pi/73327?utm_adgroup=Programmers%20Dev&utm_source=google&utm_medium=cpc&utm_campaign=Dynamic%20Search&utm_term=&utm_content=Programmers%20Dev&gclid=EAIaIQobChMIy5m0-frU6gIVkInICh2DrQCQEAAYASAAEgK0A_D_BwE" target="_blank"> Picon Zero HAT</a>. This add-on PCB has the form factor of a Pi Zero, helping to keep the overall project build smaller.</p><p>If you want to recreate this project yourself, check out the <a href="https://raspibotics.wixsite.com/pibotics-blog/post/01-build-a-self-balancing-robot-with-legs-boston-dynamics-handle-inspired" target="_blank"><u>project breakdown</u></a> on the Raspibotics website. Harry shares everything you need to get started. Be sure to follow <a href="https://raspibotics.wixsite.com/" target="_blank"><u>Raspibotics</u></a> for future Pi projects.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Raspberry Pi DIY Robot Blows Bubbles for You ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/raspberry-pi-diy-robot-blows-bubbles-for-you</link>
                                                                            <description>
                            <![CDATA[ This Raspberry Pi-powered DIY robot blows bubbles with the help of a servo motor. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">RNvaFfwjsdneKeF4AfgaEM</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/PCUt4shAd2YJE2VumQxYbe-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 01 Jul 2020 17:48:39 +0000</pubDate>                                                                                                                                <updated>Tue, 28 Jan 2025 14:48:10 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/PCUt4shAd2YJE2VumQxYbe-1280-80.jpg">
                                                            <media:credit><![CDATA[LiquidPsycho]]></media:credit>
                                                                                                                                                                                                                                                                                                                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/PCUt4shAd2YJE2VumQxYbe-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>You could really bring some fun into your summer with this automated Bubble Bot. It does exactly what it sounds like: delivers a continuous supply of bubbles for its owner. The cool thing is that this robot was made by a Reddit user known as <a href="https://www.reddit.com/r/RASPBERRY_PI_PROJECTS/comments/hhee5j/bubble_bot" target="_blank">LiquidPsycho</a> and is controlled entirely by a <a href="https://www.tomshardware.com/news/raspberry-pi">Raspberry Pi</a>.</p><p>Bubble Bot, like many <a href="https://www.tomshardware.com/features/best-raspberry-pi-projects-july-2020">Raspberry Pi projects</a>, had a few iterations before reaching the final version shared on Reddit earlier this week. According to LiquidPsycho, one big (and hilarious to picture) problem was a rowdy servo that kept throwing bubble solution everywhere. The maker was able to fix the issue in the final code.</p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:930px;"><p class="vanilla-image-block" style="padding-top:69.68%;"><img id="" name="july.jpg" alt="" src="https://cdn.mos.cms.futurecdn.net/ffdkGu8k3F6Py8WV9mZG8C.jpg" mos="" align="middle" fullscreen="1" width="930" height="648" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/ffdkGu8k3F6Py8WV9mZG8C.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: LiquidPsycho)</span></figcaption></figure><p>This DIY robot uses a Raspberry Pi Zero and works by dipping a bubble wand into bubble solution with a servo motor. A fan is used to blow the bubbles. You can see it in action on <a href="https://www.reddit.com/r/robots/comments/hhhsgg/bubble_bot_with_bubbles/" target="_blank"><u>Reddit</u></a>.</p><p>LiquidPsycho provided a complete list of hardware used in the project. It uses a servo, motor and relay board, as well as a 5V 2.1A power bank. If you use the same hardware, you will need a separate lithium-ion battery to power the motor because the power bank isn&apos;t strong enough to run everything used in the setup. You may want to consider power alternatives if you plan on building this robot yourself.</p><p>You can check out the robot&apos;s source code on <a href="https://github.com/BananaJohnny/bubbles" target="_blank"><u>Github</u></a><u>,</u> as well as a detailed list of hardware needed to construct your own Pi-powered bubble bot. Be sure to follow <a href="https://www.reddit.com/user/LiquidPsycho/" target="_blank"><u>LiquidPsycho</u></a> on Reddit for more cool Raspberry Pi projects.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Create a Raspberry Pi Light Show With Analog Inputs ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/how-to/raspberry-pi-light-show-analog-inputs</link>
                                                                            <description>
                            <![CDATA[ We use three potentiometers and an Adafruit Neopixel to show how you can use analog dials to control a Raspberry Pi. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Rg25hUb79Phf8ikrWmjGLm</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/7kGnxpyWcoZX2crfVQSuh7-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 24 Jun 2020 17:58:18 +0000</pubDate>                                                                                                                                <updated>Wed, 05 Feb 2025 15:01:45 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Les Pounder ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/mZ2MebAz6hhKR6vLUDUbsc.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/7kGnxpyWcoZX2crfVQSuh7-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Hardware]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Raspberry Pi Light Show]]></media:description>                                                            <media:text><![CDATA[Raspberry Pi Light Show]]></media:text>
                                <media:title type="plain"><![CDATA[Raspberry Pi Light Show]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/7kGnxpyWcoZX2crfVQSuh7-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The <a href="https://www.tomshardware.com/news/raspberry-pi"><u>Raspberry Pi</u></a> may be a great platform for learning, but one major thing it can’t do out of the box is use analog electronic components. That leaves everything from analog joysticks to potentiometers off limits by default, but fortunately adding an expensive chip solves the problem. The MCP3008 ADC (Analog to Digital Converter) is used to connect analog electronics to the <a href="https://www.tomshardware.com/reviews/raspberry-pi-gpio-pinout,6122.html"><u>Raspberry Pi’s 40 GPIO pins</u></a>, enabling you to use all kinds of additional components. </p><p>To show you how to take advantage of analog-to-digital conversion and how to make a fun light show, we’ve created a project that will read three potentiometers and use these dials to control the color of an Adafruit NeoPixel. Here’s how to create a colorful Raspberry Pi light show using analog input.</p><p><strong>What You Need to Make a light show with your Raspberry Pi:</strong></p><ul><li><strong>Raspberry Pi. </strong>Any model can be used</li><li><strong>Raspberry Pi OS</strong> on an 8GB+ micro SD card</li><li><strong>MCP3008 </strong>Analog to Digital (A/D) converter used to read analog signals and convert them for the Pi to understand</li><li><strong>Adafruit NeoPixels WS2812B LEDs.</strong> We used a 12 pixel LED ring from Adafruit</li><li><strong>Soldering equipment.</strong> This is only required to solder jumper wires to the NeoPixels.</li><li><strong>A 400 point of larger breadboard.</strong> Used to build the circuit</li><li><strong>3x 10k potentiometers.</strong> These are the dials used as inputs</li><li><strong>6x Male to female jumper wires</strong></li><li><strong>13x Male to male jumper wires</strong></li></ul><h2 id="how-to-create-a-rasperry-pi-light-show-with-analog-inputs-xa0">How to Create a Rasperry Pi Light Show with Analog Inputs </h2><p>1. <strong>Insert the MCP3008 into the breadboard</strong> so that the pins straddle the central cut out. The notch on the chip should face the short end of the breadboard. The 16 pins of the MCP3008 start with 1 in the bottom left corner, then we count along to 8 in the bottom right. Pin 9 is in the top right corner and finally pin 16 in the top left. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:480px;"><p class="vanilla-image-block" style="padding-top:69.38%;"><img id="" name="image3.png" alt="Raspberry Pi Light Show" src="https://cdn.mos.cms.futurecdn.net/iQTu8eWZwBHhdgdy4q2aY7.png" mos="" align="middle" fullscreen="1" width="480" height="333" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/iQTu8eWZwBHhdgdy4q2aY7.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>2. <strong>Connect the MCP3008 to the Raspberry Pi GPIO</strong> using the female to male jumper wires. First female to male wires to connect the 3.3V and GND pins to the + and - rails of the breadboard. Then use male-to-male wires to connect the rails to the MCP3008 pins for power and GND. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1257px;"><p class="vanilla-image-block" style="padding-top:75.02%;"><img id="" name="image1.png" alt="Raspberry Pi Light Show" src="https://cdn.mos.cms.futurecdn.net/SKaEnT62sdR4TC3bexecN7.png" mos="" align="middle" fullscreen="1" width="1257" height="943" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/SKaEnT62sdR4TC3bexecN7.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>3. <strong>Connect the MCP3008 to the Raspberry Pi </strong>using female to male jumper wires. </p><div ><table><thead><tr><th class="firstcol " >Wire Color</th><th  >MCP3008</th><th  >Raspberry Pi GPIO</th></tr></thead><tbody><tr><td class="firstcol " >Pink</td><td  >10</td><td  >GPIO 08</td></tr><tr><td class="firstcol " >Purple</td><td  >11</td><td  >GPIO 10</td></tr><tr><td class="firstcol " >Orange</td><td  >12</td><td  >GPIO 09</td></tr><tr><td class="firstcol " >Green</td><td  >13</td><td  >GPIO 11</td></tr></tbody></table></div><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1312px;"><p class="vanilla-image-block" style="padding-top:72.03%;"><img id="" name="image2.png" alt="Raspberry Pi Light Show" src="https://cdn.mos.cms.futurecdn.net/NRzY5oAUk3zasdQhXUXZU7.png" mos="" align="middle" fullscreen="1" width="1312" height="945" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/NRzY5oAUk3zasdQhXUXZU7.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>4. <strong>Insert the potentiometers and connect them to the MCP3008 </strong>using male to male jumper wires. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1999px;"><p class="vanilla-image-block" style="padding-top:40.07%;"><img id="" name="image4.png" alt="Raspberry Pi Light Show" src="https://cdn.mos.cms.futurecdn.net/nLVo6Lqg74s6m34huQzQd7.png" mos="" align="middle" fullscreen="1" width="1999" height="801" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/nLVo6Lqg74s6m34huQzQd7.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>5. <strong>Solder three wires to the Adafruit NeoPixels.</strong> PWR, GND and In. PWR connects to the + rail on the breadboard, GND to the - rail. “IN” is connected to GPIO 18 on the Raspberry Pi. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1999px;"><p class="vanilla-image-block" style="padding-top:56.58%;"><img id="" name="image6.png" alt="Raspberry Pi Light Show" src="https://cdn.mos.cms.futurecdn.net/8gkfhi2XRCp2ib7WRs5fo7.png" mos="" align="middle" fullscreen="1" width="1999" height="1131" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/8gkfhi2XRCp2ib7WRs5fo7.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>6. <strong>Edit the /boot/config.txt file.</strong> </p><pre class="line-numbers language-bash" language="bash" ><code>sudo nano /boot/config.txt</code></pre><p>7. <strong>Add this line to the bottom of the file.</strong> It will enable the GPIO to talk to the NeoPixels but it will disable audio output via the headphone jack. Press CTRL + X, Y and Enter to exit when done. Reboot the Pi for the changes to take effect. </p><pre class="line-numbers language-bash" language="bash" ><code>hdmi_force_hotplug=1</code></pre><p>8.<strong> Install the Python 3 modules for NeoPixels.</strong></p><pre class="line-numbers language-bash" language="bash" ><code>sudo pip3 install rpi_ws281x adafruit-circuitpython-neopixel</code></pre><p>9.  <strong>Open the Thonny IDE</strong>, found in the Programming menu.</p><p>10. <strong>Add the following lines to import modules</strong> that enable the code to work with NeoPixels, pause the code, and use the MCP3008 board. </p><pre class="line-numbers language-python" language="python" ><code>import boardimport neopixelfrom time import sleepfrom gpiozero import MCP3008</code></pre><p>11. <strong>Create three variables r,g,b</strong> which will store the raw values output by the MCP3008.</p><pre class="line-numbers language-python" language="python" ><code>r = MCP3008(channel=0)g = MCP3008(channel=1)b = MCP3008(channel=2)</code></pre><p>12. <strong>Create an object called pixels.</strong> This will enable the Python code to work with the NeoPixels.  To this object we pass the GPIO pin which is being used, D18, and the number of NeoPixels in the chain / ring, 16. </p><pre class="line-numbers language-python" language="python" ><code>pixels = neopixel.NeoPixel(board.D18, 16)</code></pre><p>13. <strong>Create a while True: loop</strong> which will continuously run the code.</p><pre class="line-numbers language-python" language="python" ><code>while True:</code></pre><p>14. <strong>Create three variables, red, green and blue</strong> which will store the returned value from the potentiometer. This value is between 0.0 and 1.0 and to convert it into something the NeoPixels can understand we multiply the value by 255. </p><pre class="line-numbers language-python" language="python" ><code>        red = round(r.value * 255)green= round(g.value * 255)blue = round(b.value * 255)</code></pre><p>15. <strong>Print the returned values to the Python shell.</strong> </p><pre class="line-numbers language-python" language="python" ><code>print(red,green,blue)</code></pre><p>16. <strong>Create a for loop which will update all 16 pixels</strong> in the ring to show the current color mix.</p><pre class="line-numbers language-python" language="python" ><code>        for i in range(16):    pixels[i] = (red, green, blue)</code></pre><p>17. <strong>Add a 0.1 second pause to the code.</strong></p><pre class="line-numbers language-python" language="python" ><code>sleep(0.1)</code></pre><p>18. <strong>Save the code as analog-inputs.py.</strong></p><p>19. <strong>Run the code using sudo in a terminal.</strong></p><pre class="line-numbers language-bash" language="bash" ><code>sudo python3 analog-inputs.py</code></pre><p>20. <strong>Turn the potentiometers to control the color of the NeoPixels.</strong> </p><h2 id="complete-code-listing-xa0">Complete Code Listing </h2><p>Here is all of the code used in this project. </p><pre class="line-numbers language-python" language="python" ><code>import boardimport neopixelfrom time import sleepfrom gpiozero import MCP3008r = MCP3008(channel=0)g = MCP3008(channel=1)b = MCP3008(channel=2)pixels = neopixel.NeoPixel(board.D18, 16)while True:    red = round(r.value * 255)    green= round(g.value * 255)    blue = round(b.value * 255)    print(red,green,blue)    for i in range(16):        pixels[i] = (red, green, blue)    sleep(0.1)</code></pre><p><strong>MORE: </strong><a href="https://www.tomshardware.com/topics/raspberry-pi/how-to"><strong>Raspberry </strong></a><a href="https://www.tomshardware.com/topics/raspberry-pi/how-to"><strong>Pi Tutorials</strong></a></p><p><strong>MORE: </strong><a href="https://www.tomshardware.com/best-picks/best-raspberry-pi-hats"><strong>Best Raspberry Pi HATs</strong></a></p><p><strong>MORE: </strong><a href="https://www.tomshardware.com/best-picks/raspberry-pi-microsd-cards"><strong>Best microSD Cards for Raspberry Pi</strong></a></p><p><br></p><iframe src="https://content.jwplatform.com/players/YdWWS5dA.html" id="YdWWS5dA" title="Raspberry Pi 4 Review: The New Gold Standard for Single-Board Computing" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen></iframe>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ DIY Robot Uses Raspberry Pi, Arduino to Fetch Balls ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/diy-robot-uses-raspberry-pi-arduino-to-fetch-balls</link>
                                                                            <description>
                            <![CDATA[ This DIY robot uses a Raspberry Pi and Arduino to locate and retrieve balls. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">p4b9uXJVofg3cd2ARK6vpm</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/592feh9Agf6FVQ7PjmT85e-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 19 Jun 2020 17:24:15 +0000</pubDate>                                                                                                                                <updated>Tue, 28 Jan 2025 14:47:55 +0000</updated>
                                                                                                                                            <category><![CDATA[Maker and STEM]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/592feh9Agf6FVQ7PjmT85e-1280-80.jpg">
                                                            <media:credit><![CDATA[The Wonderful World of Vlad/YouTube]]></media:credit>
                                                                                                                                                                                                                                                                                                                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/592feh9Agf6FVQ7PjmT85e-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Want to play fetch but don&apos;t have a pet? Vlad from <a href="https://www.youtube.com/channel/UC7DV7vZ_doUReKSSNaoPqUQ" target="_blank">The Wonderful World of Vlad</a> YouTube channel has got you covered with his new DIY robot shared recently. The bot uses a <a href="https://www.tomshardware.com/news/raspberry-pi">Raspberry Pi</a>, an Arduino and OpenCV and can go retrieve a ball placed near it. </p><p>This robot served as the maker&apos;s final project for an engineering class. It operates with a series of sensors on a custom track designed by Vlad. The robot can navigate to all four corners of its track and use its sensors to locate a ball to retrieve. There&apos;s also a little bar mounted to the back of the bot that scoops the ball safely under the machine for transport.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/SxNAXOSYJeU" allowfullscreen></iframe></div></div><p>Vlad used a Raspberry Pi Zero, as its small form factor makes it easier integrate. He also tagged in the Arduino ATMEGA338P board to interface with all of the on-board sensors.</p><p>The robot has a mounted battery, making the unit completely wireless. It uses both a Pi Cam and a distance sensor to help determine the ball location. An <a href="https://www.tomshardware.com/reviews/lcd-led-led-oled-panel-difference,5394.html">LCD</a> screen provides a readout of useful data, such as voltage information for the battery or real-time alerts and notifications.</p><p>If you want to see this robot in action and learn more about its creation, check out <a href="https://www.youtube.com/channel/UC7DV7vZ_doUReKSSNaoPqUQ" target="_blank"><u>The Wonderful World of Vlad on YouTube</u></a><u> </u>and keep an eye out for future maker projects.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ How to Make a Raspberry Pi RSS News Ticker ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/how-to/raspberry-pi-rss-news-ticker</link>
                                                                            <description>
                            <![CDATA[ Here’s a Raspberry Pi project that will use Python code to read an RSS feed and display the top five headlines on an LCD screen. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">pkAyRoLpyo2Ckb8uQUhYJS</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/jgRvzMEvZBqZdhSJotBqEU-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 13 Jun 2020 12:00:39 +0000</pubDate>                                                                                                                                <updated>Wed, 05 Feb 2025 14:55:33 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Les Pounder ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/mZ2MebAz6hhKR6vLUDUbsc.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/jgRvzMEvZBqZdhSJotBqEU-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Hardware]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Raspberry Pi RSS News Ticker]]></media:description>                                                            <media:text><![CDATA[Raspberry Pi RSS News Ticker]]></media:text>
                                <media:title type="plain"><![CDATA[Raspberry Pi RSS News Ticker]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/jgRvzMEvZBqZdhSJotBqEU-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Keeping up to date with the latest news is tough and sometimes we need a little help. RSS feeds provide a great way to quickly digest lots of news quickly. Sure you could visit an RSS feed or have an RSS reader on your computer, but what if you could have a simple, dedicated device that only shows the headlines?</p><p>Here’s a <a href="https://www.tomshardware.com/news/raspberry-pi"><u>Raspberry Pi</u></a> project that will use Python code to read an RSS feed, the Tom’s Hardware feed for example, and display the top five headlines on an LCD screen.</p><p><strong>To build this project you will need:</strong></p><ul><li>Any model of Raspberry Pi with Raspberry Pi OS and GPIO Pins</li><li>An I2C LCD screen such as <a href="https://www.amazon.com/GeeekPi-Character-Backlight-Raspberry-Electrical/dp/B07S7PJYM6/ref=sr_1_5?dchild=1&keywords=raspberry+pi+i2c+lcd+screen&qid=1591727910&sr=8-5">this one</a></li><li>4 x Female to female jumper wires</li></ul><p>1. <strong>Install Python libraries</strong> to use LCD screens and work with RSS feeds by entering the following commands:</p><pre class="line-numbers language-bash" language="bash" ><code>sudo pip3 install rpi-lcd feedparser</code></pre><p>2. <strong>Enable the I2C interface</strong> via Preferences >> Raspberry Pi Configuration</p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:503px;"><p class="vanilla-image-block" style="padding-top:91.65%;"><img id="" name="image1.png" alt="Raspberry Pi RSS News Ticker" src="https://cdn.mos.cms.futurecdn.net/Ti3xpcm3TUtR6jxMkgUiAc.png" mos="" align="middle" fullscreen="1" width="503" height="461" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/Ti3xpcm3TUtR6jxMkgUiAc.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p><br></p><p>3. <strong>Connect the I2C LCD screen as per the diagram.</strong> </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1662px;"><p class="vanilla-image-block" style="padding-top:61.01%;"><img id="" name="image2.png" alt="Raspberry Pi RSS" src="https://cdn.mos.cms.futurecdn.net/tHKgGws7mYybhd8FmoCLKX.png" mos="" align="middle" fullscreen="1" width="1662" height="1014" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/tHKgGws7mYybhd8FmoCLKX.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>4. <strong>Launch Thonny. </strong>You can find it on the start menu under Programming.</p><p>5. <strong>In a new file import libraries</strong> <strong>of Python code</strong> to use the LCD screen, control the pace of the project, read the RSS feed and finally manipulate text into chunks. </p><pre class="line-numbers language-python" language="python" ><code>from rpi_lcd import LCDfrom time import sleepimport feedparserimport textwrap</code></pre><p>6. <strong>Create an object, called “tom”</strong> which will store the RSS feed data from Tom’s Hardware. </p><pre class="line-numbers language-python" language="python" ><code>tom = feedparser.parse("https://www.tomshardware.com/uk/feeds/all")</code></pre><p>7. <strong>Create a connection to the LCD</strong> and then pause the code for 1 second. </p><pre class="line-numbers language-python" language="python" ><code>lcd = LCD()sleep(1)</code></pre><p>8. <strong>Use a for loop</strong> to repeat code five times. If you want more than 5 headlines, change the (5) to a higher number. </p><pre class="line-numbers language-python" language="python" ><code>for i in range(5):</code></pre><p>9. <strong>Print the entries from the Tom’s Hardware RSS feed.</strong> The value of i is incremented each time the for loop goes round, to a maximum of five. </p><pre class="line-numbers language-python" language="python" ><code>          print(tom['entries'][i]['title'])</code></pre><p>10. <strong>Create an object called split</strong> and use that to save 16 character chunks of the RSS feed. The chunk size is set by the 16 character screen size of the LCD. </p><pre class="line-numbers language-python" language="python" ><code>split = textwrap.wrap(text, 16)</code></pre><p>11. <strong>Create an object called split</strong> and use that to save 16 character chunks of the RSS feed. The chunk size is set by the 16 character screen size of the LCD.</p><pre class="line-numbers language-python" language="python" ><code>split = textwrap.wrap(text, 16)</code></pre><p>12. <strong>Print “Tom’s Hardware” </strong>(or the name of your news source) <strong>to the first line of the LCD screen.</strong> </p><pre class="line-numbers language-python" language="python" ><code>lcd.text("Tom's Hardware", 1)</code></pre><p>13. <strong>Create another for loop</strong> to print the contents of the split object to the LCD screen.</p><pre class="line-numbers language-python" language="python" ><code>        for i in range(len(split)):    lcd.text(split[i], 2)    sleep(0.5)</code></pre><p>14. <strong>Add a one second pause before clearing the LCD screen.</strong></p><pre class="line-numbers language-python" language="python" ><code>     sleep(1)lcd.clear()</code></pre><p>15. <strong>Save the code as TomsRSSFeed.py</strong> </p><p>16. <strong>Check your code</strong> <strong>against our complete code listing.</strong> </p><pre class="line-numbers language-python" language="python" ><code>from rpi_lcd import LCDfrom time import sleepimport feedparserimport textwraptom = feedparser.parse("https://www.tomshardware.com/uk/feeds/all")lcd = LCD()sleep(5)for i in range(5):print(tom['entries'][i]['title'])text = tom['entries'][i]['title']split = textwrap.wrap(text, 16)lcd.text("Tom's Hardware", 1)for i in range(len(split)):    lcd.text(split[i], 2)    sleep(0.5)sleep(1)lcd.clear()</code></pre><p>17. <strong>Click on Run</strong> to start the code. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1063px;"><p class="vanilla-image-block" style="padding-top:66.23%;"><img id="" name="image1.png" alt="Raspberry Pi RSS" src="https://cdn.mos.cms.futurecdn.net/FvWVneTXtSmLNEdBAXi6DX.png" mos="" align="middle" fullscreen="1" width="1063" height="704" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/FvWVneTXtSmLNEdBAXi6DX.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ This Raspberry Pi Retro TV Display Is a Work of Art ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/this-raspberry-pi-retro-tv-display-is-a-work-of-art</link>
                                                                            <description>
                            <![CDATA[ Powered by a Raspberry Pi 4, this DIY retro TV is programmed to loop vintage videos. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">MdeKWZ4DYjkykviNzxztyG</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/ZitMHyFTcSA9u3pQXxmEB7-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 12 Jun 2020 17:47:24 +0000</pubDate>                                                                                                                                <updated>Tue, 28 Jan 2025 14:47:47 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/ZitMHyFTcSA9u3pQXxmEB7-1280-80.jpg">
                                                            <media:credit><![CDATA[Ryan, The Garage Journal]]></media:credit>
                                                                                                                                                                                                                                                                                                                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/ZitMHyFTcSA9u3pQXxmEB7-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Sometimes tinkerers tap a <a href="https://www.tomshardware.com/news/raspberry-pi"><u>Raspberry P</u>i</a> to fix a problem in their life. Other times, they grab the single-board computer just to see how far they can push it. This project shared by<a href="https://www.garagejournal.com/2020/06/the-atomic-tv" target="_blank"> Ryan from The Garage Journal </a>is a little different. The DIY display looks like a retro TV but doesn&apos;t have any sound. Set to loop the maker&apos;s favorite old movies, it&apos;s simply <a href="https://www.youtube.com/watch?v=PUcWXzSy7yk&feature=emb_title" target="_blank">a piece of art</a>. </p><p>The retro TV display relies on a <a href="https://www.tomshardware.com/reviews/raspberry-pi-4">Raspberry Pi 4 </a>for all of its primary functions. Ryan designed it to play his favorite classic flicks on repeat while displayed on a shelf. </p><p>And if you do want to get some more functionality out of this vintage-looking display, you can. It&apos;s fitted with USB speakers for adding sound output.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/PUcWXzSy7yk" allowfullscreen></iframe></div></div><p>Ryan made the retro-style housing entirely from scratch. The switch panel on the front makes use of some really interesting vintage hardware, including a couple of toggle switches protected by switch guards that supposedly came from Apollo 16.</p><p>The final unit stands on a curvy mount that allows the display to swivel. The power indicator light works as an indicator that tells you when the Pi 4 is powered on.</p><p>According to the post, the maker encountered a small overheating issue (not uncommon with the Pi 4), but he easily overcame this by adding a fan. </p><p>If you want to see more of Ryan&apos;s work, check out the official <a href="https://www.garagejournal.com/" target="_blank"><u>Garage Journal</u></a> website and <a href="https://www.youtube.com/channel/UCbzLsCc3r3Mae27Yyw7UF0g" target="_blank"><u>YouTube channel</u></a> for more original content.</p><iframe src="https://content.jwplatform.com/players/YdWWS5dA.html" id="YdWWS5dA" title="Raspberry Pi 4 Review: The New Gold Standard for Single-Board Computing" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen></iframe>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ How to Build a Raspberry Pi Body Camera ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/how-to/raspberry-pi-body-camera</link>
                                                                            <description>
                            <![CDATA[ You can wear a Raspberry Pi Zero-Powered Body Camera to capture important moments at protests or in your personal life. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">9k7XFdU9CYbcApCN7amZwd</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/sWUGiGyKpzA5CxULZv8w35-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 05 Jun 2020 15:13:39 +0000</pubDate>                                                                                                                                <updated>Wed, 05 Feb 2025 14:48:36 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Les Pounder ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/mZ2MebAz6hhKR6vLUDUbsc.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/sWUGiGyKpzA5CxULZv8w35-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Hardware]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Raspberry Pi Zero-Powered Body Camera]]></media:description>                                                            <media:text><![CDATA[Raspberry Pi Zero-Powered Body Camera]]></media:text>
                                <media:title type="plain"><![CDATA[Raspberry Pi Zero-Powered Body Camera]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/sWUGiGyKpzA5CxULZv8w35-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>There’s nothing quite like the power of real, first-person video. If you’re at home playing with your children or pets, wearing a body camera lets you save those special memories, without sticking your face in your phone. And, if you’re attending a protest and want to capture malfeasance on anyone’s part, it also fits the bill.</p><p>While you could go out of your way to buy a dedicated body camera, it’s easy enough to build one using a <a href="https://www.tomshardware.com/how-to/raspberry-pi-buying-guide">Raspberry Pi Zero W</a> and a few inexpensive parts. Note that, if you are going to a protest, you’ll want to make your setup as unobtrusive and non-threatening as possible. If you have wires and duct tape hanging out of your jacket, people could get the wrong impression. The photos in this article show our best take on how to make the setup look like the body camera that it is, but you may be able to make it more compact and less scary looking.</p><p>This project will record your daily life at the push of a button. It will be constantly recording in two minute chunks, and when triggered it will save the video to disk, before uploading for safe keeping to a private Dropbox folder. So, even if your camera breaks or is confiscated, your video will be available in the cloud. From Dropbox, you can edit and share your videos as necessary.</p><p><strong>What You’ll Need to Build a Raspberry Pi Body Camera</strong></p><ul><li>A <a href="https://www.amazon.com/Raspberry-Pi-Zero-Wireless-model/dp/B06XFZC3BX">Raspberry Pi Zero W</a> </li><li>A <a href="https://www.amazon.com/Raspberry-Pi-32GB-Preloaded-NOOBS/dp/B01LXR6EOA">microSD Card with Raspberry Pi OS</a> on it</li><li><a href="https://www.amazon.com/Official-Raspberry-Pi-Zero-Case/dp/B06Y593MHV">Raspberry Pi Zero official case</a></li><li><a href="https://www.amazon.com/Raspberry-Camera-Module-Megapixels-Sensor/dp/B07L82XBNM">Raspberry Pi Camera Module</a>. Note that Pi Zeros use a narrower camera cable than other Pis.</li><li><a href="https://www.amazon.com/GenBasic-Piece-Female-Jumper-Wires/dp/B01L5ULRUA">Female to female jumper wires</a></li><li>A <a href="https://www.amazon.com/AUKEY-10000mAh-Portable-Dual-Output-Compatible/dp/B07JK63TSJ">USB power </a><a href="https://www.amazon.com/AUKEY-10000mAh-Portable-Dual-Output-Compatible/dp/B07JK63TSJ">bank</a></li><li><a href="https://www.tomshardware.com/best-picks/best-soldering-irons">Soldering iron</a> or <a href="https://shop.pimoroni.com/products/gpio-hammer-header">Pimoroni Hammerhead</a> to attach GPIO pins to Pi Zero W</li><li>One momentary push button</li><li>A mobile hotspot or phone that goes into hotspot mode</li><li>Double sided tape and sticky tape</li></ul><h2 id="hardware-setup-of-raspberry-pi-body-cam-xa0">Hardware Setup of Raspberry Pi Body Cam </h2><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:858px;"><p class="vanilla-image-block" style="padding-top:88.46%;"><img id="" name="image10.png" alt="Raspberry Pi Zero-Powered Body Camera" src="https://cdn.mos.cms.futurecdn.net/fVK5YdXg7gqPMCaiq8kWr5.png" mos="" align="middle" fullscreen="1" width="858" height="759" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/fVK5YdXg7gqPMCaiq8kWr5.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>1. <strong>Attach two wires to GPIO 16 and GND </strong>on the Raspberry Pi Zero W. You can either solder the wires on or attach GPIO pins to the Pi Zero W, either by soldering them on or using a <a href="https://www.amazon.com/Pimoroni-GPIO-Hammer-Header-Solderless/dp/B06ZYJMVQB"><u>Pimoroni Hammer Header</u></a>. Pre-soldered Raspberry Pi Zero Ws, known as the Zero WH, are also available for sale. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:355px;"><p class="vanilla-image-block" style="padding-top:72.68%;"><img id="" name="image5.jpg" alt="Raspberry Pi Zero-Powered Body Camera" src="https://cdn.mos.cms.futurecdn.net/tvdkhjhcgX3mPUfXyWTsP5.jpg" mos="" align="middle" fullscreen="1" width="355" height="258" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/tvdkhjhcgX3mPUfXyWTsP5.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="caption-text">GPIO Connections </span><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p> Using 2x female to female jumper wires and a 2 pin push button connect GPIO16 and GND to the button. </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1658px;"><p class="vanilla-image-block" style="padding-top:68.88%;"><img id="" name="image3.jpg" alt="Raspberry Pi Zero-Powered Body Camera" src="https://cdn.mos.cms.futurecdn.net/YiXwHPtVHCU7MraN7zEqG5.jpg" mos="" align="middle" fullscreen="1" width="1658" height="1142" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/YiXwHPtVHCU7MraN7zEqG5.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>2. <strong>Use a little tape or heat shrink tubing</strong> to tidy up the connection. Wrap the tape so that the button and the wires are secure.</p><p>3. <strong>Insert the camera module </strong>to the Raspberry Pi Zero W Camera slot using the adapter. Ensure that the cable is inserted correctly and locked into place. If using the official Raspberry Pi Zero W case, feed the ribbon cable through the slot on the underside of the case.<br> </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1274px;"><p class="vanilla-image-block" style="padding-top:56.28%;"><img id="" name="image7.jpg" alt="Raspberry Pi Zero-Powered Body Camera" src="https://cdn.mos.cms.futurecdn.net/rLAzwaY4h3acbbxAmMX2d5.jpg" mos="" align="middle" fullscreen="1" width="1274" height="717" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/rLAzwaY4h3acbbxAmMX2d5.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><h2 id="software-setup-of-raspberry-pi-body-camera-xa0">Software Setup of Raspberry Pi Body Camera </h2><p> 4. <strong>Boot your Raspberry Pi Zero W</strong> with peripherals connected. If you don’t already have a microSD card see our article on <a href="https://www.tomshardware.com/reviews/raspberry-pi-set-up-how-to,6029.html"><u>how to set up a Raspberry Pi for the first time</u></a>.</p><p>5. <strong>Turn on your mobile hotspot</strong>, or set your cell phone to act as an access point. Make a note of the access point name and the password.</p><p>6. <strong>Connect your Raspberry Pi to the hotspot </strong>via Wi-Fi.</p><p>7. <strong>Enable the camera module</strong> in Raspberry Pi OS. You can do that, by going to Preferences >> Raspberry Pi Configuration, clicking on the Interfaces tab and ensuring that.the Camera interface is enabled. Reboot the Pi for this to take effect.</p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:550px;"><p class="vanilla-image-block" style="padding-top:86.00%;"><img id="" name="image12.png" alt="Raspberry Pi Zero-Powered Body Camera" src="https://cdn.mos.cms.futurecdn.net/iGPgqZ6Mq4bRNTdAfqVJz5.png" mos="" align="middle" fullscreen="1" width="550" height="473" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/iGPgqZ6Mq4bRNTdAfqVJz5.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>8. <strong>Install the Dropbox library for Python 3</strong> by entering the following at the command prompt.</p><pre class="line-numbers language-bash" language="bash" ><code>sudo pip3 install dropbox</code></pre><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:695px;"><p class="vanilla-image-block" style="padding-top:68.63%;"><img id="" name="image14.png" alt="Raspberry Pi Zero-Powered Body Camera" src="https://cdn.mos.cms.futurecdn.net/7Ax7KVtPsdBfSzvPs2tPA6.png" mos="" align="middle" fullscreen="1" width="695" height="477" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/7Ax7KVtPsdBfSzvPs2tPA6.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>9. <strong>Navigate to Dropbox Developers </strong><a href="http://www.dropbox.com/developers"><u>www.dropbox.com/developers</u></a> in your browser and <strong>Click on Create Apps </strong>to sign in. If you don’t already have a Dropbox account, register for one (2GB Basic Plan is free) and then return to this page.</p><p>10. <strong>Select the Dropbox API and App Folder access.</strong> Then <strong>name the app</strong>, which creates a folder to store the video files and click <strong>Create App.</strong> </p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:977px;"><p class="vanilla-image-block" style="padding-top:69.81%;"><img id="" name="image9.png" alt="Raspberry Pi Zero-Powered Body Camera" src="https://cdn.mos.cms.futurecdn.net/S7hinNvroRY4i7DjdSxSj5.png" mos="" align="middle" fullscreen="1" width="977" height="682" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/S7hinNvroRY4i7DjdSxSj5.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>A new screen appears.</p><p>11. <strong>Click Generate</strong> under Generated access token then <strong>copy this token</strong> into a spare text document for later reference.</p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:233px;"><p class="vanilla-image-block" style="padding-top:35.19%;"><img id="" name="image2.png" alt="Raspberry Pi Zero-Powered Body Camera" src="https://cdn.mos.cms.futurecdn.net/j3FfDhAstKeqUQVEAmzd75.png" mos="" align="middle" fullscreen="1" width="233" height="82" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/j3FfDhAstKeqUQVEAmzd75.png' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><h2 id="coding-a-python-script-for-raspberry-pi-body-camera-xa0">Coding a Python Script for Raspberry Pi Body Camera </h2><p>12. <strong>Open the Geany IDE</strong>, found in the Raspberry Pi Programming menu.</p><p>13. <strong>Enter the code</strong> as described below. The first line of Python is the location of the Python3 interpreter, this is needed to make the code executable from the terminal. </p><pre class="line-numbers language-python" language="python" ><code>#!/usr/bin/python3</code></pre><p>14. <strong>Import the following libraries </strong>to add support for basic IO, a push button, the camera,  date / time and Dropbox. </p><pre class="line-numbers language-python" language="python" ><code>import iofrom gpiozero import Buttonimport picamerafrom datetime import datetimeimport dropbox</code></pre><p>15. <strong>Paste the Dropbox token </strong>into the code, and then <strong>assign it to a variable called “token”.</strong> Then a connection to Dropbox is made using the token for authentication. </p><pre class="line-numbers language-python" language="python" ><code>token = "DROPBOX TOKEN HERE"dbx = dropbox.Dropbox(token)</code></pre><p>16. <strong>Create an object, “trigger” </strong>that will be used to link the button connected to GPIO 16 to the code. </p><pre class="line-numbers language-python" language="python" ><code>trigger = Button(16)</code></pre><p>17. <strong>Create a connection to the Raspberry Pi Camera</strong>, then <strong>set the resolution to 720p</strong>.</p><pre class="line-numbers language-python" language="python" ><code>camera = picamera.PiCamera()camera.resolution = (1280, 720)</code></pre><p>18. <strong>Create a recording stream</strong>. A stream is used to create a circular buffer that will record events before the button is pressed. Here the camera is instructed to record 2 minutes before activation. The stream is recorded to an h264 file. </p><pre class="line-numbers language-python" language="python" ><code>stream = picamera.PiCameraCircularIO(camera, seconds=120)camera.start_recording(stream, format='h264')</code></pre><p>19. <strong>Add a try statement </strong>which will attempt to run the code indented within it, in this case it will start with a loop to constantly run the code within. </p><pre class="line-numbers language-python" language="python" ><code>try:while True:</code></pre><p>20. <strong>Create a delay</strong>, forcing the camera to wait for one second each time the loop iterates. </p><pre class="line-numbers language-python" language="python" ><code>camera.wait_recording(1)</code></pre><p>21. <strong>Create an if condition for the trigger </strong>and <strong>set the current date and time, </strong>used later as a timestamp. When the user presses the button, this if condition will start the process of capturing video. </p><pre class="line-numbers language-python" language="python" ><code>                if trigger.is_pressed:        now = datetime.now()</code></pre><p>22. <strong>Print a message to the terminal </strong>to show that the recorder has been triggered and <strong>set the recording time </strong>to 120 seconds.</p><pre class="line-numbers language-python" language="python" ><code>                print("ACTION")        camera.wait_recording(120)</code></pre><p>23. <strong>Add this code to save the video stream</strong> to a file, which uses the timestamp as the filename, and appends the file format to create a valid file. Another message is printed to advise the user. </p><pre class="line-numbers language-python" language="python" ><code>                stream.copy_to(str(now)+'.h264')        print("Stream saved to disk...will upload to Dropbox")</code></pre><p>24. <strong>Add this code </strong>to enable the script to open the freshly created video file in read only mode and upload it to Dropbox, overwriting any files that share the same name. A message is printed to the Terminal when this is complete. </p><pre class="line-numbers language-python" language="python" ><code>with open(str(now)+'.h264',"rb") as data:            dbx.files_upload(data.read(),'/'+str(now)+'.h264',mute=True, mode=dropbox.files.WriteMode.overwrite)        print("File uploaded to Dropbox")</code></pre><p>25. <strong>Create these last two lines of code</strong> to stop the camera recording when the user stops the code from running. </p><pre class="line-numbers language-python" language="python" ><code>finally:camera.stop_recording()</code></pre><p>26. <strong>Save the script </strong>as video-recorder.py and then close Geany. </p><iframe src="https://content.jwplatform.com/players/YdWWS5dA.html" id="YdWWS5dA" title="Raspberry Pi 4 Review: The New Gold Standard for Single-Board Computing" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen></iframe>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Raspberry Pi-based Kiosk Display Shares Weather, FAA Advisories for Drones  ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/raspberry-pi-based-kiosk-display-shares-weather-faa-advisories-for-drones</link>
                                                                            <description>
                            <![CDATA[ Avoid bad weather conditions or any FAA advisories that might inhibit your flight plans. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">rJyZzqt6gdXk2TvC9GFEC9</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/CuyKdQsPxM9EaAqbPtjsx4-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 03 Jun 2020 18:00:05 +0000</pubDate>                                                                                                                                <updated>Tue, 28 Jan 2025 14:48:10 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/CuyKdQsPxM9EaAqbPtjsx4-1280-80.jpg">
                                                            <media:credit><![CDATA[Sky Horse Tech]]></media:credit>
                                                                                                                                                                                                                                                                                                                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/CuyKdQsPxM9EaAqbPtjsx4-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>This <a href="https://www.tomshardware.com/news/raspberry-pi"><u>Raspberry Pi</u></a> project is ready for takeoff -- or at least it&apos;s ready to plan your drone&apos;s next takeoff. We recently spotted this fascinating creation from<a href="https://skyhorsetech.com/recent-projects/what-to-build-the-drone-port-or-pilot-that-has-everything" target="_blank"> Sky Horse Tech</a> that uses a Raspberry Pi as the mainboard and shows weather and current FAA advisories on a 32-inch display.</p><p>This is extremely useful for anyone planning to fly a drone, as laws and regulations vary across the U.S. and can impact when it&apos;s okay to fly. It&apos;s important to be mindful of any restrictions or compromising weather conditions before you take off.</p><p>The team built a custom housing for the kiosk made from wood. They connected a Raspberry Pi 3 B  to an <a href="https://www.tomshardware.com/reviews/lcd-led-led-oled-panel-difference,5394.html">LED </a>screen with <a href="https://www.tomshardware.com/reviews/what-is-hd,5745.html">720p </a>resolution. The Pi runs a few applications on top of <a href="https://www.tomshardware.com/news/raspberry-pi-os-no-longer-raspbian">Raspberry Pi OS</a>, formerly known as Raspbian. It uses three separate API, one for weather information and two for FAA advisories called AirMap and MapBox.</p><p>The kiosk is pre-programmed to shut off at night,. This not only saves power but makes sense, considering you can&apos;t fly unmanned aircraft systems (or UAS) at night. The team added a few different networks to the Pi so it could be easily transported and set up at different locations.</p><p>If you&apos;re interested in recreating this drone kiosk for yourself, check out the <a href="https://skyhorsetech.com/recent-projects/what-to-build-the-drone-port-or-pilot-that-has-everything" target="_blank"><u>Sky Horse tech website</u></a>. The team created a really comprehensive guide to help get you started, including blueprints for the kiosk cabinet. </p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ DIY Jukebox Jams Out With a Raspberry Pi  ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/diy-jukebox-raspberry-pi-project</link>
                                                                            <description>
                            <![CDATA[ Looking for a Pi project to get the kids excited? This Raspberry Pi jukebox uses RFID chips to change music. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">uqDu2nRGYUWoGNrXXiksmf</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/GDFG7DLJrSF65zhLPbTrxT-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 27 May 2020 18:15:21 +0000</pubDate>                                                                                                                                <updated>Tue, 28 Jan 2025 14:48:22 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/GDFG7DLJrSF65zhLPbTrxT-1280-80.jpg">
                                                            <media:credit><![CDATA[Milkris/Reddit]]></media:credit>
                                                                                                                                                                                                                                                                                                                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/GDFG7DLJrSF65zhLPbTrxT-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1152px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="featured.jpg" alt="" src="https://cdn.mos.cms.futurecdn.net/GDFG7DLJrSF65zhLPbTrxT.jpg" mos="" align="middle" fullscreen="1" width="1152" height="648" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/GDFG7DLJrSF65zhLPbTrxT.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Milkris/Reddit)</span></figcaption></figure><p><a href="https://www.tomshardware.com/news/raspberry-pi"><u>Raspberry Pi</u></a> projects meant for kids are always a plus, as they get young minds excited about STEM. This <a href="https://www.reddit.com/r/RASPBERRY_PI_PROJECTS/comments/gq7fsj/the_phoniebox_ive_created_for_my_daughters_52y_of" target="_blank">DIY jukebox</a>, created by a user known as <a href="https://www.reddit.com/user/milkris" target="_blank">Milkris </a>on Reddit, was made for his two young daughters. It lets his kids jam out by using a Raspberry Pi as the main board of a radio-frequency identification (RFID) jukebox. </p><p>The maker made the jukebox&apos;s case by hand with wood. It also features 3D printed designs on the outside. The end result is a finished box with a library of content available for exploring. </p><p>This DIY radio is controlled with custom cards fitted with RFID chips. The kids can select a card with an artist, scan it on the radio and use the buttons to interact with the associated tracks. You can find a full step by step album of progress pictures on <a href="https://imgur.com/a/K5nYBn5" target="_blank">Imgur</a>.</p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:772px;"><p class="vanilla-image-block" style="padding-top:83.94%;"><img id="" name="inside.jpg" alt="" src="https://cdn.mos.cms.futurecdn.net/zLLkJ2SEMigPrhTfxMFnvZ.jpg" mos="" align="middle" fullscreen="" width="772" height="648" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Milkris/Reddit)</span></figcaption></figure><p>You can make RFID cards for any kind of audio file, including audiobooks. The buttons on Milkris&apos; DIY jukebox appear to be arcade buttons with 3D-printed toppers. They also control the overall volume of the device.</p><p>If you&apos;d like to see more, be sure to follow <a href="https://www.reddit.com/user/milkris" target="_blank"><u>Milkris</u></a> on Reddit. There&apos;s a <a href="https://www.reddit.com/r/RASPBERRY_PI_PROJECTS/comments/gq7fsj/the_phoniebox_ive_created_for_my_daughters_52y_of" target="_blank"><u>thread</u></a> for this Raspberry Pi jukebox project with a little Q&A about the process.</p><iframe src="https://content.jwplatform.com/players/YdWWS5dA.html" id="YdWWS5dA" title="Raspberry Pi 4 Review: The New Gold Standard for Single-Board Computing" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen></iframe>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Dev Proves You Can Do 3D Modeling With Raspberry Pi  ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/raspberry-pi-3d-modeling-blender-how</link>
                                                                            <description>
                            <![CDATA[ A developer showed how to use the Raspberry Pi for 3D modeling with Blender. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">9pm3LmdMKYEzHhYSdiBdZB</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/GLEpYRveaCQrQ2VasYT4z-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 18 May 2020 18:51:38 +0000</pubDate>                                                                                                                                <updated>Thu, 30 Jan 2025 13:18:54 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/GLEpYRveaCQrQ2VasYT4z-1280-80.jpg">
                                                            <media:credit><![CDATA[Game Dev Academy/YouTube]]></media:credit>
                                                                                                                                                                                                                                                                                                                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/GLEpYRveaCQrQ2VasYT4z-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1152px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="piblender.jpg" alt="" src="https://cdn.mos.cms.futurecdn.net/GLEpYRveaCQrQ2VasYT4z.jpg" mos="" align="middle" fullscreen="" width="1152" height="648" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Game Dev Academy/YouTube)</span></figcaption></figure><p><a href="https://www.tomshardware.com/news/raspberry-pi">Raspberry Pi </a>projects are more about what you can do with a Pi, not what you should do. Earlier this week, Shane with the<a href="https://www.youtube.com/channel/UCOeB7iML5JQPOQjbwDWHXSg" target="_blank"> Game Dev Academy</a> YouTube channel pushed the Raspberry Pi to its limits by using it for <a href="https://www.youtube.com/watch?v=mk0-bae-mDc&feature=emb_title" target="_blank">3D modeling with Blender</a>. </p><p>Don&apos;t get too excited. A Raspberry Pi is far from being the ideal 3D modeling computer. You&apos;d still be much better off running Blender on a more capable <a href="https://www.tomshardware.com/reviews/best-gaming-desktops,5198.html">desktop PC</a>. But this developer has shown that Blender on Pi as at least possible. </p><p>This project was inspired out of necessity (like most Pi projects). Shane said he was working on a new tutorial when his <a href="https://www.tomshardware.com/reviews/best-gpus,4380.html">graphics card</a> failed. Instead of rushing out and <a href="https://www.tomshardware.com/reviews/gpu-buying-guide,5844.html">buying a new graphics card,</a> he looked to see if a Pi could get the job done.</p><p>Blender doesn&apos;t require much in the way of hardware. Shane decided to use <a href="https://www.blender.org/download/releases/2-79/" target="_blank">version 2.79</a>, which requires 4GB of <a href="https://www.tomshardware.com/reviews/best-ram,4057.html">RAM</a> and a dual-<a href="https://www.tomshardware.com/news/cpu-core-definition,37658.html">core</a> CPU with a <a href="https://www.tomshardware.com/news/clock-speed-definition,37657.html">clock speed</a> of at least 2 GHz. However, it&apos;s recommended that you use 16GB of RAM and a quad-core CPU. Shane chose to use a 2GB <a href="https://www.tomshardware.com/reviews/raspberry-pi-4-b,6193.html">Raspberry Pi 4,</a> which features a 1.5-GHz processor with four cores. </p><h2 id="setting-up-blender-on-raspberry-pi-xa0">Setting up Blender on Raspberry Pi </h2><p>Getting Blender to run on the Raspberry Pi looked easy enough, based on what the Game Dev Academy&apos;s video showed us. </p><p>You&apos;ll need a Raspberry Pi with Raspbian installed. Shane searched for Blender in the Add / Remove Software window to get the Blender 2.79 package. </p><p>Once installed, Blender launched, and Shane demonstrated its capabilities with a time-lapse video. The biggest drawback came with rendering, which took much longer to complete on a Raspberry Pi than a desktop. </p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/mk0-bae-mDc" allowfullscreen></iframe></div></div><p> If you want to see more of Shane&apos;s work, check out <a href="https://www.youtube.com/channel/UCOeB7iML5JQPOQjbwDWHXSg" target="_blank"><u>Game Dev Academy</u></a> on YouTube for more projects and 3D modeling tutorials. </p><iframe src="https://content.jwplatform.com/players/YdWWS5dA.html" id="YdWWS5dA" title="Raspberry Pi 4 Review: The New Gold Standard for Single-Board Computing" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen></iframe>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Open up for This Raspberry Pi Face-Detecting Candy Launcher ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/raspberry-pi-project-diy-face-detection</link>
                                                                            <description>
                            <![CDATA[ This Raspberry Pi project uses a face-detecting camera to launch candy at your mouth. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">HPsk8EHd9znm7f9Ddq9HAN</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/6J2KkNWVMxqjAysnjSud5i-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 14 May 2020 17:19:00 +0000</pubDate>                                                                                                                                <updated>Tue, 28 Jan 2025 14:47:29 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/6J2KkNWVMxqjAysnjSud5i-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                                                                                                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/6J2KkNWVMxqjAysnjSud5i-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:66.70%;"><img id="" name="shutterstock_1053244946.jpg" alt="" src="https://cdn.mos.cms.futurecdn.net/6J2KkNWVMxqjAysnjSud5i.jpg" mos="" align="middle" fullscreen="" width="1000" height="667" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>This <a href="https://www.tomshardware.com/news/raspberry-pi"><u>Raspberry Pi</u></a> project is seriously delicious. Harrison McIntyre is using his time in lockdown to create a Pi-powered candy launcher that shoots M&Ms at his mouth from across the room.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/hsGhCl0y1FY" allowfullscreen></iframe></div></div><p>McIntyre&apos;s creation has a Raspberry Pi receives voice commands by using an Amazon Echo Dot. When triggered, it uses a camera to detect a face and determine how far away it us before launching candy toward the face. </p><p>McIntyre had to work out the logistics of how to accurately project candy along the best trajectory. He opted to use regular M&Ms because of their consistent shape and size. The launching device can swivel and tilt up or down.</p><p>Other similar projects use a spring-loaded mechanism for launching; however, McIntyre opted for a flywheel design. This proved to be an excellent move, providing better control over velocity without the reload time that comes with using a spring. With everything together, McIntyre could control the angle, velocity and direction of each launch.</p><p>This project was built using a Raspberry Pi 3, but other editions should work just as well. </p><p>There&apos;s a lot that goes into this project, from setting up a number of servo motors to <a href="https://www.tomshardware.com/reviews/3d-printer-buying-guide,6335.html">3D printing</a> the chassis for the launcher. </p><p>You can check out a complete breakdown of this project on <a href="https://www.youtube.com/watch?v=hsGhCl0y1FY&feature=emb_title" target="_blank">YouTube</a>:</p><p>If you enjoyed this project, be sure to check out Harrison McIntyre&apos;s <a href="https://www.youtube.com/channel/UCZyR9xSLNfeE6Eii4KvkWMw" target="_blank"><u>YouTube channel</u></a> for more projects and future updates on this one. </p><iframe src="https://content.jwplatform.com/players/YdWWS5dA.html" id="YdWWS5dA" title="Raspberry Pi 4 Review: The New Gold Standard for Single-Board Computing" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen></iframe>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Raspberry Pi Project Helps Keep Track of Twitter Hashtags  ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/raspberry-pi-project-twitter-hashtags-leds</link>
                                                                            <description>
                            <![CDATA[ This DIY project uses a Raspberry Pi to light up when specific hashtags are tweeted. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">PDFGeGT4fK5Dd6CCjjaSjA</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/g54VREdhEheSPZNTm445sm-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 08 May 2020 19:58:20 +0000</pubDate>                                                                                                                                <updated>Thu, 30 Jan 2025 16:32:27 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/g54VREdhEheSPZNTm445sm-1280-80.jpg">
                                                            <media:credit><![CDATA[MrEdews]]></media:credit>
                                                                                                                                                                                                                                                                                                                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/g54VREdhEheSPZNTm445sm-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>If you want to check Twitter, this <a href="https://www.tomshardware.com/news/raspberry-pi"><u>Raspberry Pi</u></a>-based bot is one way to do it. This project tracks specific hashtags in real-time, with <a href="https://www.tomshardware.com/reviews/lcd-led-led-oled-panel-difference,5394.html">LEDs</a> lighting up when someone tweets the hashtag. <a href="https://www.reddit.com/r/raspberry_pi/comments/gfrmul/i_made_a_twitter_bot_that_tracks_realtime_use_of" target="_blank"><u>The project</u></a> comes from a Reddit user known as MrEdews.</p><p>Handy for social media fanatics, the project relies on an application called <a href="https://www.tweepy.org/" target="_blank"><u>Tweepy</u></a> to monitor Twitter for certain hashtags. Tweepy is a Python library designed to access Twitter&apos;s API. This makes it possible to read and respond to specific hashtags right as they&apos;re used.</p><p>Tweepy can handle sifting through tweets with multiple hashtags. MrEdews programmed his setup to keep checking until it found one of three hashtags: #quarantine, #corona and #covid19. He assigned a specific color LED to each hashtag. When the Raspberry Pi detects one of the hashtags, it illuminates the corresponding LED.</p><p>This is a fun Raspberry Pi project that should work with any model of the Raspberry Pi. If you&apos;d like to see more, follow <a href="https://www.reddit.com/user/MrEdews"><u>MrEdews</u></a> on Reddit for a video demonstration of the Twitter bot and more cool Pi projects.</p><iframe src="https://content.jwplatform.com/players/YdWWS5dA.html" id="YdWWS5dA" title="Raspberry Pi 4 Review: The New Gold Standard for Single-Board Computing" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen></iframe>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ This Raspberry Pi Emergency Toolkit Is Perfect for the End Times ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/raspberry-pi-emergency-toolkit-project-4</link>
                                                                            <description>
                            <![CDATA[ This Raspberry Pi project provides recovery tools and entertainment features to help you survive during an emergency. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">JMT3ZMkqQLBobGDFVryVv5</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/FCnYXHRcigkaBjAMMMd8Ed-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 05 May 2020 18:33:37 +0000</pubDate>                                                                                                                                <updated>Tue, 28 Jan 2025 14:47:35 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/FCnYXHRcigkaBjAMMMd8Ed-1280-80.jpg">
                                                            <media:credit><![CDATA[Blackie810]]></media:credit>
                                                                                                                                                                                                                                                                                                                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/FCnYXHRcigkaBjAMMMd8Ed-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>You don&apos;t ever want to find yourself without a computer.T hat&apos;s why one maker, known as <a href="https://www.reddit.com/user/Blackie810" target="_blank">Blackie810</a> on Reddit, designed this handy <a href="https://www.tomshardware.com/news/raspberry-pi"><u>Raspberry Pi</u></a>-based emergency <a href="https://www.reddit.com/r/raspberry_pi/comments/gcqpb7/my_take_on_the_pi_cyberdeck/" target="_blank"><u>recovery tool</u></a>. Everything you need is housed inside a protective Pelican case.</p><p>According to Blackie810, this emergency Pi rig is perfect in the event of an EMP attack or network outage. It can help with recovery or, using some features to stream media to local devices, even entertainment. </p><p>In addition to some applications, it also has quite a bit of data stored that can be seriously useful in an emergency situation. The project can provide offline access to maps—perfect for an off-the-grid getaway—or even encyclopedia services like Wikipedia. </p><p>It doesn&apos;t take much hardware to build one of these yourself. It uses a<a href="https://www.tomshardware.com/reviews/raspberry-pi-4-b,6193.html"> Raspberry Pi 4</a>, but older models will work too. The creator used a 7-inch touch screen display and a 256GB microSD card for storage. Everything was housed inside a waterproof Pelican case and supported using a <a href="https://www.tomshardware.com/reviews/3d-printer-buying-guide,6335.html">3D printed </a>frame.</p><p>When the system first boots, it loads a boot menu, where the operator can choose an instance of Debian, Kali or ParrotSec to load. This is just the OS list chosen by Blackie810 though; the device can support many different Linux distros and even Android.</p><p>Blackie810 has a few upgrades, including a permanent keyboard solution and batteries for mobility, planned for the future. </p><p>Until then, you can follow <a href="https://www.reddit.com/user/Blackie810" target="_blank"><u>Blackie810</u></a> on Reddit for more updates and future Raspberry Pi projects.</p><iframe src="https://content.jwplatform.com/players/YdWWS5dA.html" id="YdWWS5dA" title="Raspberry Pi 4 Review: The New Gold Standard for Single-Board Computing" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen></iframe>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ DIY Synthesizer Uses a Raspberry Pi to Make Your Next Beat  ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/diy-synthesizer-raspberry-pi-project-granular</link>
                                                                            <description>
                            <![CDATA[ This Raspberry Pi-powered DIY synthesizer is the perfect project for electronic music fans. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">fQeCjc8sXZH87cF4TtG9V7</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Q2obvr2FxrdP9qLZVR525-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 04 May 2020 18:19:24 +0000</pubDate>                                                                                                                                <updated>Tue, 28 Jan 2025 14:47:19 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/Q2obvr2FxrdP9qLZVR525-1280-80.jpg">
                                                            <media:credit><![CDATA[Niles Fromm]]></media:credit>
                                                                                                                                                                                                                                                                                                                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Q2obvr2FxrdP9qLZVR525-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1152px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="featured.jpg" alt="" src="https://cdn.mos.cms.futurecdn.net/Q2obvr2FxrdP9qLZVR525.jpg" mos="" align="middle" fullscreen="1" width="1152" height="648" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/Q2obvr2FxrdP9qLZVR525.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Niles Fromm)</span></figcaption></figure><p>If you&apos;re looking for a fun, music-based <a href="https://www.tomshardware.com/news/raspberry-pi"><u>Raspberry Pi</u></a> project, check out this Pi-powered granular synth called <a href="http://nilesfromm.com/work/noloop.html" target="_blank"><u>noLoop</u></a>. Created by industrial designer Niles Fromm, it&apos;s built on top of a Raspberry Pi and features a handmade case with a screen for visual output.</p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:723px;"><p class="vanilla-image-block" style="padding-top:74.55%;"><img id="" name="synth 1.jpg" alt="" src="https://cdn.mos.cms.futurecdn.net/PjbqHqot9adv4mzmQi8GH.jpg" mos="" align="middle" fullscreen="1" width="723" height="539" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/PjbqHqot9adv4mzmQi8GH.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Niles Fromm)</span></figcaption></figure><p>The Raspberry Pi in the noLoop uses the Python programming language and <a href="https://puredata.info/" target="_blank">Pure Data</a>, which is synth software used to create custom sounds that can be controlled either digitally or physically (via hardware input). The visual display features a user interface designed with <a href="https://www.pygame.org/wiki/about" target="_blank">PyGame</a>, a Python module set originally for writing video games. With this display, you get real-time visual feedback of the current audio output.</p><p>The synth offers four individual granulated audio samples, and you can filter, randomize and chop each sample using the switches. Fromm opted to use a series of knobs to adjust things like volume, pan and metronome values. There are a few master knobs to adjust things universally, like volume.</p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:723px;"><p class="vanilla-image-block" style="padding-top:74.55%;"><img id="" name="synth 2 inside.jpg" alt="" src="https://cdn.mos.cms.futurecdn.net/rvJwxsWYMeGX8JPqjQcZv.jpg" mos="" align="middle" fullscreen="1" width="723" height="539" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/rvJwxsWYMeGX8JPqjQcZv.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Niles Fromm)</span></figcaption></figure><p>If you want to recreate this project yourself, you&apos;re in luck. Fromm provided everything you need to set up Pure Data with his custom patch files on <a href="https://github.com/nilesfromm/noLoop" target="_blank"><u>GitHub</u></a>. You can see what goes into the creation process and maybe even improvise for your own custom design.</p><p>There are a few updates planned for noLoop. Fromm has expressed serious interest in SuperCollider, a programming language for real-time audio synthesis, and hopes to integrate new features with it. In the meantime, you can check out <a href="http://nilesfromm.com/" target="_blank"><u>his website</u></a> for more work and future projects.</p><iframe src="https://content.jwplatform.com/players/YdWWS5dA.html" id="YdWWS5dA" title="Raspberry Pi 4 Review: The New Gold Standard for Single-Board Computing" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen></iframe>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ This Raspberry Pi System Monitor  Displays Your PC's Hardware Stats ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/raspberry-pi-system-monitor-pc-hardware</link>
                                                                            <description>
                            <![CDATA[ This Raspberry Pi project detects your PC's hardware status in real-time and displays the information using a graphical UI. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">jiFo7smcYwEnmCoBgYSrvG</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/nvLu9ZnCboT3QeZGjo6NXh-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 17 Apr 2020 17:57:03 +0000</pubDate>                                                                                                                                <updated>Tue, 28 Jan 2025 14:47:34 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/nvLu9ZnCboT3QeZGjo6NXh-1280-80.jpg">
                                                            <media:credit><![CDATA[Debayan Sutradhar]]></media:credit>
                                                                                                                                                                                                                                                                                                                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/nvLu9ZnCboT3QeZGjo6NXh-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1152px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="" name="featured.jpg" alt="" src="https://cdn.mos.cms.futurecdn.net/nvLu9ZnCboT3QeZGjo6NXh.jpg" mos="" align="middle" fullscreen="1" width="1152" height="648" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/nvLu9ZnCboT3QeZGjo6NXh.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Debayan Sutradhar)</span></figcaption></figure><p>There are a number of different apps that let you monitor how your PC&apos;s components are doing, but this one brings in the DIY fun of <a href="https://www.tomshardware.com/news/raspberry-pi">Raspberry Pi</a>. Created by Debayan Sutradhar, a young developer with a serious knack for Pi projects, this resource monitor lets you check things like <a href="https://www.tomshardware.com/reviews/best-cpus,3986.html">CPU </a>temperature and <a href="https://www.tomshardware.com/reviews/ram-random-access-memory-definition,5757.htmlhttps://www.tomshardware.com/reviews/best-ram,4057.html">RAM </a>usage.</p><p>The Pi-powered system monitor also lets you check fan speed and even <a href="https://www.tomshardware.com/reviews/best-gpus,4380.html">GPU </a>performance. Sutradhar used a Raspberry Pi 3 B, but the project can run on other Pi models, like the Pi Zero, as well. The maker also had the UI displayed on a 7-inch (17.78cm) screen.</p><figure class="van-image-figure " data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:834px;"><p class="vanilla-image-block" style="padding-top:77.70%;"><img id="" name="resource monitor.jpg" alt="" src="https://cdn.mos.cms.futurecdn.net/jsEXMBZm6gPJ2ZFUqXuVxn.jpg" mos="" align="middle" fullscreen="1" width="834" height="648" attribution="" endorsement="" class="expandable"><a href='https://cdn.mos.cms.futurecdn.net/jsEXMBZm6gPJ2ZFUqXuVxn.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Debayan Sutradhar)</span></figcaption></figure><p>Sutradhar created the UI with JavaFX, and the UI pulls data from a Windows-based hardware monitoring tool. The PC app has a few settings that can be changed, like how frequently the information is updated on the Pi display. Overall, the setup has very little impact on performance, using just 30MB of RAM after three hours of running.</p><p>This project is still a work in progress and Sutradhar promised on <a href="https://www.reddit.com/r/raspberry_pi/comments/g2fixm/i_made_a_raspberry_pi_pc_hardware_resource_monitor" target="_blank"><u>Reddit </u></a>to provide us with more updates. You can download the <a href="https://github.com/dubbadhar/PCHWRM_Server">server</a> and <a href="https://github.com/dubbadhar/PCHWRM_Client">client</a> applications on Github. The PC app is Windows-based, but Sutradhar also expressed interest in adding macOS and Linux support. In the meantime, check out some of his other projects and follow him on <a href="https://twitter.com/dubbadhar" target="_blank"><u>Twitter</u></a>.</p><iframe src="https://content.jwplatform.com/players/YdWWS5dA.html" id="YdWWS5dA" title="Raspberry Pi 4 Review: The New Gold Standard for Single-Board Computing" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen></iframe>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Use Raspberry Pi to Bring Reactive RGB Lighting to Your TV  ]]></title>
                                                                                                                                                                                                <link>https://www.tomshardware.com/news/raspberry-pi-rgb-diy-philips-ambilight-tv</link>
                                                                            <description>
                            <![CDATA[ A maker created a clone of the Phillips Ambilight RGB lighting system for TVs that runs entirely on a Raspberry Pi. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">EQX6t3y4Bm3zvtRZUPeZ8C</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/sSWj9Nxmz28u39ndy4qbB7-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 16 Apr 2020 16:21:05 +0000</pubDate>                                                                                                                                <updated>Thu, 30 Jan 2025 14:08:51 +0000</updated>
                                                                                                                                            <category><![CDATA[Raspberry Pi]]></category>
                                                                                                                    <dc:creator><![CDATA[ Ash Hill ]]></dc:creator>                                                                <dc:description><![CDATA[ https://cdn.mos.cms.futurecdn.net/p9HsnLCwBpTQYCBBhYXgrS.jpg ]]></dc:description>
                                                                                                                                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/sSWj9Nxmz28u39ndy4qbB7-1280-80.jpg">
                                                            <media:credit><![CDATA[Moe7863]]></media:credit>
                                                                                                                                                                                                                                                                                                                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/sSWj9Nxmz28u39ndy4qbB7-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>RGB lighting has made a name for itself in the computing space, especially when it comes to gaming. But what if you could bring the trend from your gaming den to the living room? With this project shared on <a href="https://www.reddit.com/r/RASPBERRY_PI_PROJECTS/comments/g082w2/philips_ambilight_clone_for_my_55_curved_4k" target="_blank">Reddit</a> this week by a maker known as Moe7863, you can bring RGB to your TV with a <a href="https://www.tomshardware.com/news/raspberry-pi">Raspberry Pi</a>. </p><p>The setup relies on a <a href="https://www.tomshardware.com/reviews/raspberry-pi-4">Raspberry Pi 4</a> to control 116 individually addressable <a href="https://www.tomshardware.com/reviews/lcd-led-led-oled-panel-difference,5394.html">LEDs</a>. It also uses a USB camera to detect the current image and assign a color for each LED based on its location along the edge of the screen.</p><p>It doesn&apos;t take much hardware to recreate the project. In addition to the Pi 4, you&apos;ll need an <a href="https://www.newegg.com/p/023-00C1-00003?item=9SIA9PM3H46643&source=region&nm_mc=knc-googlemkp-pc&cm_mmc=knc-googlemkp-pc-_-pla-science+purchase-_-toys+-+electronics+for+kids-_-9SIA9PM3H46643&gclid=EAIaIQobChMI0qiHhKvt6AIVFI7ICh2ciww5EAYYBSABEgIHYfD_BwE&gclsrc=aw.ds" target="_blank">Arduino Uno R3</a>, LED strip, USB camera and a power supply. You don&apos;t even need an expensive LED strip, Moe7863 had no trouble using a generic LED strip from Amazon.</p><p>Moe7863 mounted the USB camera to the wall across the room. It required a 10m (32.8 feet) USB extension cable to reach the Raspberry Pi. There is a slight 50-100ms delay, as input information has to travel from the camera, through the Pi and to the Arduino before reaching the LED strip.</p><p>This is still a work in progress with plans for improvement. If you&apos;d like to check this project and more of Moe7863&apos;s work, you can follow him on <a href="https://www.reddit.com/user/moe7863" target="_blank"><u>Reddit</u></a>. </p><p>This might not be the first ambient lighting project for the Raspberry Pi, but we appreciate Moe7863 for bringing it to the Pi 4 and showing that you don&apos;t need expensive hardware to build awesome projects at home.</p><iframe src="https://content.jwplatform.com/players/YdWWS5dA.html" id="YdWWS5dA" title="Raspberry Pi 4 Review: The New Gold Standard for Single-Board Computing" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen></iframe>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
            </channel>
</rss>