<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Documents</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>Project Video Release Archive</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/3748/project-video-release-archive</link><pubDate>Thu, 30 Jul 2026 14:06:02 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:59ab0abe-b32d-47f9-b00c-4b73b01f3bd8</guid><dc:creator>e14sbhargav</dc:creator><description>Current Revision posted to Documents by e14sbhargav on 7/30/2026 2:06:02 PM&lt;br /&gt;
&lt;div style="background:#ffffff;border-bottom:1px solid #dadada;margin:0;padding:14px 16px 16px 18px;vertical-align:top;"&gt;
&lt;div style="display:inline-block;float:left;padding:0px 25px 8px 0px;"&gt;&lt;a href="/challengesprojects/element14-presents/" data-icid="e14" data-e14adj="t"&gt;&lt;img alt="image"  src="/e14/assets/legacy/2018/e14PresentsJune818.png" width="180px" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="display:inline-block;vertical-align:top;width:70%;"&gt;&lt;span style="font-size:18px;font-weight:bold;"&gt;Project Video Releases&lt;/span&gt;
&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a class="jivecontainerTT-hover-container jive-link-community-small" style="color:#f17c0e;" href="/challengesprojects/element14-presents/" data-icid="e14" data-e14adj="t"&gt;element14 presents&lt;/a&gt;&lt;/span&gt;&amp;nbsp; &lt;strong&gt;|&lt;/strong&gt;&amp;nbsp; &lt;span style="padding-right:5px;"&gt;&lt;a class="jivecontainerTT-hover-container jive-link-community-small" style="color:#f17c0e;" href="/challengesprojects/element14-presents/vcp-program/" data-icid="e14" data-e14adj="t"&gt;Meet the Hosts&lt;/a&gt;&lt;/span&gt;&lt;span style="padding-right:5px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72089/clem-s-workbench-upgrade-to-automated-lab-with-programmable-instruments-and-python" data-e14adj="t"&gt;Episode 725: Clem&amp;#39;s Workbench Upgrade to Automated Lab with Programmable Instruments and Python&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72087/building-and-programming-a-scara-industrial-robot-arm-an-introduction-to-robotics" data-e14adj="t"&gt;Episode 724: Building and Programming a SCARA Industrial Robot Arm &amp;ndash; An Introduction to Robotics&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72081/building-a-privacy-first-workshop-security-camera-with-pocketbeagle-2" data-e14adj="t"&gt;Episode 723: Building a Privacy-First Workshop Security Camera with PocketBeagle 2&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72077/pid-control-motion-profiles-and-ros-explained---an-introduction-to-robotics" data-e14adj="t"&gt;Episode 722: PID Control, Motion Profiles and ROS Explained - An Introduction to Robotics&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72073/designing-a-smarter-workbench-inside-mark-s-8-channel-power-monitoring-system" data-e14adj="t"&gt;Episode 721: Designing a Smarter Workbench: Inside Mark&amp;rsquo;s 8-Channel Power Monitoring System&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72071/building-the-foundations-of-your-first-robot---an-introduction-to-robotics" data-e14adj="t"&gt;Episode 720: Building the Foundations of Your First Robot - An Introduction to Robotics&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72070/turning-a-broken-robot-vacuum-into-a-network-controlled-raspberry-pi-5-rover" data-e14adj="t"&gt;Episode 719: Turning a Broken Robot Vacuum into a Network-Controlled Raspberry Pi 5 Rover&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72069/creating-a-multi-function-esp32-desk-pet-with-custom-pcb-and-audio-processing" data-e14adj="t"&gt;Episode 718: Creating a Multi-Function ESP32 Desk Pet with Custom PCB and Audio Processing&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72068/simulating-prey-vision-with-raspberry-pi-5-a-dual-camera-perception-experiment" data-e14adj="t"&gt;Episode 717: Simulating Prey Vision with Raspberry Pi 5: A Dual Camera Perception Experiment&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72067/designing-a-mobile-robot-platform-with-inverse-kinematics-and-wireless-control" data-e14adj="t"&gt;Episode 716: Designing a Mobile Robot Platform with Inverse Kinematics and Wireless Control&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72063/how-to-build-a-reaction-based-catch-game-using-arduino-and-relays" data-e14adj="t"&gt;Episode 715: How to Build a Reaction-Based Catch Game Using Arduino and Relays&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72062/find-emi-fast-with-a-low-cost-automated-way-to-see-where-your-pcb-radiates" data-e14adj="t"&gt;Episode 714: Find EMI Fast with a Low‑Cost, Automated Way to See Where Your PCB Radiates&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 713:" href="/challenges-projects/element14-presents/project-videos/w/documents/72061/how-to-make-an-led-sculpture-react-to-sound-with-micro-bit" data-e14adj="t"&gt;Episode 713:&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72061/how-to-make-an-led-sculpture-react-to-sound-with-micro-bit"&gt;How to Make an LED Sculpture React to Sound with micro:bit&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 712: Designing a More Capable Dual Motor Driver Beyond the L298N (What worked and what didn't)" href="/challenges-projects/element14-presents/project-videos/w/documents/72060/designing-a-more-capable-dual-motor-driver-beyond-the-l298n-what-worked-and-what-didn-t" data-e14adj="t"&gt;Episode 712: Designing a More Capable Dual Motor Driver Beyond the L298N (What worked and what didn&amp;#39;t)&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 711: Modern Edge AI on Raspberry Pi 5 for an Animatronic Tracker: Vision Acceleration with AI Hat+ and AI Camera" href="/challenges-projects/element14-presents/project-videos/w/documents/72059/modern-edge-ai-on-raspberry-pi-5-for-an-animatronic-tracker-vision-acceleration-with-ai-hat-and-ai-camera" data-e14adj="t"&gt;Episode 711: Modern Edge AI on Raspberry Pi 5 for an Animatronic Tracker: Vision Acceleration with AI Hat+ and AI Camera&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 710: Your First Real PCB in KiCad : An Arduino Compatible Board Designed from Scratch" href="/challenges-projects/element14-presents/project-videos/w/documents/72057/your-first-real-pcb-in-kicad-an-arduino-compatible-board-designed-from-scratch" data-e14adj="t"&gt;Episode 710: Your First Real PCB in KiCad : An Arduino Compatible Board Designed from Scratch&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 709: Was that my Number!? Fixing Caf&amp;eacute; Order Chaos with a Raspberry Pi Announcer" href="/challenges-projects/element14-presents/project-videos/w/documents/72055/was-that-my-number-fixing-cafe-order-chaos-with-a-raspberry-pi-announcer" data-e14adj="t"&gt;Episode 709: Was that my Number!? Fixing Caf&amp;eacute; Order Chaos with a Raspberry Pi Announcer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 708: Reviving a Vintage LED Sign with Arduino and PS/2 Control" href="/challenges-projects/element14-presents/project-videos/w/documents/72042/reviving-a-vintage-led-sign-with-arduino-and-ps-2-control----episode-708" data-e14adj="t"&gt;Episode 708: Reviving a Vintage LED Sign with Arduino and PS/2 Control&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 707: Building a Circuit Sculpture with LED Filament" href="/challenges-projects/element14-presents/project-videos/w/documents/72038/building-a-circuit-sculpture-with-led-filament----episode-707" data-e14adj="t"&gt;Episode 707: Building a Circuit Sculpture with LED Filament&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72037/esp32-rfid-smart-access-control-in-a-simple-diy-build----episode-706"&gt;Episode 706: ESP32 + RFID = Smart Access Control in a Simple DIY Build&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 705: Building a Super Smooth Z-Scale Train Controller with Arduino" href="/challenges-projects/element14-presents/project-videos/w/documents/72036/building-a-super-smooth-z-scale-train-controller-with-arduino----episode-705" data-e14adj="t"&gt;Episode 705: Building a Super Smooth Z-Scale Train Controller with Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 704: Hacking an IKEA Desk into a Programmable Electric Workstation" href="/challenges-projects/element14-presents/project-videos/w/documents/72035/hacking-an-ikea-desk-into-a-programmable-electric-workstation----episode-704" data-e14adj="t"&gt;Episode 704: Hacking an IKEA Desk into a Programmable Electric Workstation&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 703: How to Set Up the Raspberry Pi 5: Complete Beginner Step-by-Step Guide" href="/challenges-projects/element14-presents/project-videos/w/documents/72034/how-to-set-up-the-raspberry-pi-5-complete-beginner-step-by-step-guide----episode-703" data-e14adj="t"&gt;Episode 703: How to Set Up the Raspberry Pi 5: Complete Beginner Step-by-Step Guide&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 702: Build Your Own USB Looper for Serial Debugging and File Transfer" href="/challenges-projects/element14-presents/project-videos/w/documents/72033/build-your-own-usb-looper-for-serial-debugging-and-file-transfer----episode-702" data-e14adj="t"&gt;Episode 702: Build Your Own USB Looper for Serial Debugging and File Transfer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 700: How Voice Recognition Works on Raspberry Pi (and Why It&amp;rsquo;s Easy to Break)" href="/challenges-projects/element14-presents/project-videos/w/documents/72031/from-snooze-to-launch-the-arduino-powered-lego-alarm-clock-inspired-by-artemis-2----episode-701" data-e14adj="t"&gt;Episode 701: From Snooze to Launch: The Arduino-Powered LEGO Alarm Clock Inspired by Artemis 2&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 700: How Voice Recognition Works on Raspberry Pi (and Why It&amp;rsquo;s Easy to Break)" href="/challenges-projects/element14-presents/project-videos/w/documents/72030/how-voice-recognition-works-on-raspberry-pi-and-why-it-s-easy-to-break----episode-700" data-e14adj="t"&gt;Episode 700: How Voice Recognition Works on Raspberry Pi (and Why It&amp;rsquo;s Easy to Break)&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 697:&amp;nbsp;A Smart, Safe 3D Printer Cabinet Using Raspberry Pi and Node-RED" href="/challenges-projects/element14-presents/project-videos/w/documents/72021/gimmegpio-a-simple-way-to-get-gpio-on-laptops-and-desktops----episode-699" data-e14adj="t"&gt;Episode 699:&amp;nbsp;GimmeGPIO: A Simple Way to Get GPIO on Laptops and Desktops&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 697:&amp;nbsp;A Smart, Safe 3D Printer Cabinet Using Raspberry Pi and Node-RED" href="/challenges-projects/element14-presents/project-videos/w/documents/72020/building-a-practical-electronics-workbench-for-makers-and-engineers----episode-698" data-e14adj="t"&gt;Episode 698:&amp;nbsp;Building a Practical Electronics Workbench for Makers and Engineers&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 697:&amp;nbsp;A Smart, Safe 3D Printer Cabinet Using Raspberry Pi and Node-RED" href="/challenges-projects/element14-presents/project-videos/w/documents/72009/a-smart-safe-3d-printer-cabinet-using-raspberry-pi-and-node-red----episode-697" data-e14adj="t"&gt;Episode 697:&amp;nbsp;A Smart, Safe 3D Printer Cabinet Using Raspberry Pi and Node-RED&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/72008/how-a-pulse-metal-detector-works-and-how-to-build-one" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 696: How a Pulse Metal Detector Works, and How to Build One&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/72007/a-diy-test-and-programming-rig-built-for-small-batch-electronics-production----episode-695" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 695: A DIY Test and Programming Rig Built for Small-Batch Electronics Production&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/secret-element14-presents/w/documents/72001/earn-your-fitness-reward-with-a-smart-cookie-jar-using-strava-and-esp32----episode-694" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 694: Earn Your Fitness Reward with a Smart Cookie Jar Using Strava and ESP32&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71999/open-source-multicolour-3d-printing-upgrade-clem-s-3d-chameleon-remix----episode-693" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 693: Open-Source Multicolour 3D Printing Upgrade: Clem&amp;rsquo;s 3D Chameleon Remix&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71995/build-your-own-esp32-fitness-heart-rate-monitor-tracker----episode-692" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 692: Build Your own ESP32 Fitness Heart Rate Monitor / Tracker&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71994/how-accurate-is-bluetooth-channel-sounding-a-deep-dive-with-the-nrf54l15" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 691: How Accurate Is Bluetooth Channel Sounding? A Deep Dive with the nRF54L15&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71993/meet-the-platypusbot-now-powered-by-raspberry-pi-ros----episode-690" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 690: Meet the PlatypusBot: Now Powered by Raspberry Pi &amp;amp; ROS&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71992/how-clem-built-a-handheld-sci-fi-communicator-that-really-works----episode-689" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 689: How Clem Built a Handheld Sci-Fi Communicator That Really Works&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71990/building-the-cylon-pumpkin-combining-a-larson-scanner-and-vocoder-for-halloween----episode-688" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 688: Building the Cylon Pumpkin: Combining a Larson Scanner and Vocoder for Halloween&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71989/turning-a-10-air-fryer-into-an-arduino-powered-filament-dryer----episode-687" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 687: Turning a $10 Air Fryer into an Arduino powered Filament Dryer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71988/creepy-motion-activated-painting-you-can-build-yourself----episode-686" data-icid="e14" data-e14adj="t"&gt;Episode 686: Creepy Motion-Activated Painting You Can Build Yourself&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71987/when-your-body-becomes-the-instrument-clem-builds-the-drone-synth----episode-685" data-icid="e14" data-e14adj="t"&gt;Episode 685: When Your Body Becomes the Instrument: Clem Builds the &amp;ldquo;Dr&amp;ouml;ne&amp;rdquo; Synth&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71985/building-an-audio-reactive-led-matrix-with-a-micro-bit-and-neopixels----episode-684" data-icid="e14" data-e14adj="t"&gt;Episode 684: Building an Audio Reactive LED Matrix with a micro:bit and NeoPixels&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71984/how-to-make-a-portable-emergency-radio-with-an-arduino-nano-in-a-mint-tin----episode-683" data-icid="e14" data-e14adj="t"&gt;Episode 683: How to Make a Portable Emergency Radio with an Arduino Nano in a Mint TinT&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71974/diy-rf-modulator-raspberry-pi-pico-gaming-on-a-sony-watchman-fd-10a-crt----episode-682" data-icid="e14" data-e14adj="t"&gt;Episode 682: DIY RF Modulator + Raspberry Pi Pico = Gaming on a Sony Watchman FD-10A CRT&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71963/turn-anything-into-an-arduino-module-reusing-everyday-electronics----episode-681" data-icid="e14" data-e14adj="t"&gt;Episode 681: Turn anything into an Arduino Module: Reusing Everyday Electronics&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71961/from-kit-to-custom-design-building-a-tube-based-fm-radio----episode-680" data-icid="e14" data-e14adj="t"&gt;Episode 680: From Kit to Custom Design: Building a Tube-Based FM Radio&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71960/esp32-duolingo-owl-project-never-miss-a-lesson-again----episode-679" data-icid="e14" data-e14adj="t"&gt;Episode 679: ESP32 Duolingo Owl Project: Never Miss a Lesson Again&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71959/open-source-attiny3226-arduino-calculator-hardware-case-code-build----episode-678" data-icid="e14" data-e14adj="t"&gt;Episode 678: Open Source ATtiny3226 Arduino Calculator &amp;ndash; Hardware, Case &amp;amp; Code Build&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71955/make-your-own-vocoder-with-teensy-4-0---voice-of-a-cylon----episode-677" data-icid="e14" data-e14adj="t"&gt;Episode 677: Make Your Own Vocoder with Teensy 4.0 - Voice of a Cylon?!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71954/i-tried-building-16-attiny-robots-with-vibration-motors-it-was-a-disaster----episode-676" data-icid="e14" data-e14adj="t"&gt;Episode 676: I Tried Building 16 ATtiny Robots with Vibration Motors &amp;ndash; It Was a Disaster&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71953/avoid-conflict-with-this-esp32-defcon-task-tracker----episode-675" data-icid="e14" data-e14adj="t"&gt;Episode 675:Avoid Conflict with this ESP32 Defcon Task Tracker&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71947/building-an-open-source-blood-pressure-heart-signal-monitor----episode-674" data-icid="e14" data-e14adj="t"&gt;Episode 674: Building an Open Source Blood Pressure &amp;amp; Heart Signal Monitor&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71942/building-an-esp32-powered-warhammer-40k-rhino-with-dynamic-led-effects----episode-673" data-icid="e14" data-e14adj="t"&gt;Episode 673: Building an ESP32 Powered Warhammer 40k Rhino with Dynamic LED Effects!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71936/building-an-autonomous-lego-train-with-circuitpython-and-lidar----episode-672" data-icid="e14" data-e14adj="t"&gt;Episode 672: Building an Autonomous LEGO Train with CircuitPython and LIDAR&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71934/platypusbot---scavenging-for-robotics-parts----episode-671" data-icid="e14" data-e14adj="t"&gt;Episode 671: PlatypusBot - Scavenging for Robotics Parts&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71927/build-a-larson-scanner-with-sound-using-an-esp32----episode-670" data-icid="e14" data-e14adj="t"&gt;Episode 670: Build your own Larson Scanner&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71926/creating-an-esd-or-lightning-detector----episode-669" data-icid="e14" data-e14adj="t"&gt;Episode 669: Creating an ESD (Or Lightning!) Detector!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71925/designing-an-arduino-pid-controlled-micro-drone----episode-668" data-icid="e14" data-e14adj="t"&gt;Episode 668: Designing an Arduino PID Controlled Micro Drone&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71921/emulating-a-speech-synthesis-chip-with-an-esp32----episode-667" data-icid="e14" data-e14adj="t"&gt;Episode 667: Emulating a Speech Synthesis Chip with an ESP32&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71920/how-far-can-i2c-go----episode-666" data-icid="e14" data-e14adj="t"&gt;Episode 666: How Far Can I2C Go?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71919/raspberry-pi-ai-tracking-eye-of-sauron---ai-al-barad-dur---episode-665" data-icid="e14" data-e14adj="t"&gt;Episode 665: Raspberry Pi AI Tracking Eye of Sauron - AI AL Barad Dur&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71915/learn-how-to-make-a-photo-booth-with-the-esp32-and-telegram-automation----episode-664" data-icid="e14" data-e14adj="t"&gt;Episode 664: Learn how to Make a Photo Booth with the ESP32 and Telegram Automation!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71911/upcycling-a-vintage-microphone-into-an-emergency-radio-system----episode-663" data-icid="e14" data-e14adj="t"&gt;Episode 663: Upcycling a Vintage Microphone into an Emergency Radio System&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71909/making-a-stronger-affordable-diy-robot-arm-with-3d-printing-with-raspberry-pi-pico----episode-662" data-icid="e14" data-e14adj="t"&gt;Episode 662: Making a Stronger Affordable DIY Robot Arm with 3D Printing with Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71904/make-your-own-led-wrist-watch----episode-661" data-icid="e14" data-e14adj="t"&gt;Episode 661: Clem makes his own LED Wristwatch&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71846/lofi-beats-to-solder-to----episode-660" data-icid="e14" data-e14adj="t"&gt;Episode 660: LoFi Beats to Solder To&lt;/a&gt;&lt;/p&gt;
&lt;p style="clear:both;margin:0;padding:0px;padding-top:12px;"&gt;&lt;a title="Episode 659:&amp;nbsp;DIY Single Board Computer with ESP32 and Raspberry Pi Pico" href="/challenges-projects/element14-presents/project-videos/w/documents/71844/diy-single-board-computer-with-esp32-and-raspberry-pi-pico----episode-659" data-e14adj="t"&gt;Episode 659:&amp;nbsp;DIY Single Board Computer with ESP32 and Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71841/a-smart-youtube-counter-with-an-audio-analyzer---episode---658" data-icid="e14" data-e14adj="t"&gt;Episode 658: A Smart Youtube Counter With An Audio Analyzer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71833/how-to-control-a-lego-mindstorms-kit-with-ai-and-raspberry-pi-5----episode-657" data-icid="e14" data-e14adj="t"&gt;Episode 657: How to Control a LEGO Mindstorms kit with AI and Raspberry Pi 5&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71831/diy-jig-for-your-laser-cutter-with-custom-arduino-automation----episode-656" data-icid="e14" data-e14adj="t"&gt;Episode 656: DIY Jig for your Laser Cutter with Custom Arduino Automation&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71810/diy-hot-plate-for-smd-soldering-using-raspberry-pi-pico----episode-655" data-icid="e14" data-e14adj="t"&gt;Episode 655: DIY Hot Plate for SMD Soldering Using Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71801/how-do-battlebots-work-in-the-pit-with-hypershock----episode-654" data-icid="e14" data-e14adj="t"&gt;Episode 654: How Do BattleBots Work? In the Pit with HyperShock&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71797/edge-lit-7-segment-display-clock-using-raspberry-pi-pico----episode-653" data-icid="e14" data-e14adj="t"&gt;Episode 653: Edge-lit 7-Segment Display Clock Using Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71793/smart-windows-and-blinds-with-arduino-and-raspberry-pi-pico----episode-652" data-icid="e14" data-e14adj="t"&gt;Episode 652: Smart Windows and Blinds with Arduino and Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71784/design-for-manufacturing---project-to-product-by-modifying-off-the-shelf-cases----episode-651" data-icid="e14" data-e14adj="t"&gt;Episode 651: Design for Manufacturing - Project to Product by Modifying Off-the-Shelf Cases&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/46432/using-nordic-s-nrf7002-my-dehumidifier-tells-me-when-it-s-full----episode-650" data-icid="e14" data-e14adj="t"&gt;Episode 650: Using Nordic&amp;#39;s nRF7002, My Dehumidifier Tells Me When It&amp;#39;s Full!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/29545/giant-retro-gaming-magic-mirror-with-a-raspberry-pi-5----episode-649" data-icid="e14" data-e14adj="t"&gt;Episode 649: Giant Retro Gaming Magic Mirror with a Raspberry Pi 5!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/29540/home-ai-image-generation-server-with-lattepanda-and-stable-diffusion----episode-648" data-icid="e14" data-e14adj="t"&gt;Episode 648: Home AI Image Generation Server with LattePanda and Stable Diffusion&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/29537/building-an-open-source-tool-for-cave-surveying----episode-647" data-icid="e14" data-e14adj="t"&gt;Episode 647: Building an Open-Source Tool for Cave Surveying&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28802/creating-a-digital-roulette-table-with-an-esp32-devkit----episode-646" data-icid="e14" data-e14adj="t"&gt;Episode 646: Creating a Digital Roulette Table with an ESP32 DevKit&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28438/practical-diy-pi-pico-current-load-circuits----episode-645" data-icid="e14" data-e14adj="t"&gt;Episode 645: Practical DIY Pi Pico Current Load Circuits&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28421/turning-a-raspberry-pi-pico-into-a-gpu----episode-644" data-icid="e14" data-e14adj="t"&gt;Episode 644: Turning a Raspberry Pi Pico into a GPU!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28418/making-a-tribble-that-detects-klingons----episode-643" data-icid="e14" data-e14adj="t"&gt;Episode 643: Making a Tribble that Detects Klingons&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28416/making-a-time-lapse-camera-with-a-raspberry-pi-5----episode-642" data-icid="e14" data-e14adj="t"&gt;Episode 642: Making a Time-lapse Camera with a Raspberry Pi 5&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28409/moon-phase-display-with-raspberry-pi-pico----episode-641" data-icid="e14" data-e14adj="t"&gt;Episode 641: Moon Phase Display with Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28407/tinkering-vs-engineering-can-you-build-a-laptop-from-scratch----episode-640" data-icid="e14" data-e14adj="t"&gt;Episode 640: Tinkering vs Engineering: Can You Build a Laptop from Scratch?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28405/off-grid-remote-generator-starter----episode-639" data-icid="e14" data-e14adj="t"&gt;Episode 639: Off-Grid Remote Generator Starter?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28387/rp2040-pcb-design-turn-on-and-debug---how-hard-could-it-be----episode-638" data-icid="e14" data-e14adj="t"&gt;Episode 638: RP2040 PCB: Design, Turn-On, and Debug - How Hard Could It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28386/making-music-with-a-lego-guitar-and-capacitive-touch----episode-637" data-icid="e14" data-e14adj="t"&gt;Episode 637: Making Music with a Lego Guitar and Capacitive Touch&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28384/creating-an-imu-based-3d-mouse-with-an-esp32-s3----episode-636" data-icid="e14" data-e14adj="t"&gt;Episode 636: Creating an IMU based 3D Mouse with an ESP32-S3&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28382/vintage-electronics-exploration-with-a-bally-cypress-gardens-bingo-machine---episode-635" data-icid="e14" data-e14adj="t"&gt;Episode 635: Vintage Electronics Exploration with a Bally Cypress Gardens Bingo Machine&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28381/craft-a-festive-led-christmas-sweater-featuring-the-attiny416----episode-634" data-icid="e14" data-e14adj="t"&gt;Episode 634: Craft a Festive LED Christmas Sweater Featuring the ATtiny416&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28376/spying-under-the-christmas-tree-with-an-arduino-powered-ornament----episode-633" data-icid="e14" data-e14adj="t"&gt;Episode 633: Spying Under the Christmas Tree with an Arduino-powered Ornament&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28374/revamping-old-school-pinball-with-an-esp32----episode-632" data-icid="e14" data-e14adj="t"&gt;Episode 632: Revamping Old School Pinball with an ESP32&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28372/all-purpose-debugging-a-practical-universal-screen-with-lcd-displays----episode-631" data-icid="e14" data-e14adj="t"&gt;Episode 631: All-Purpose Debugging: A Practical Universal Screen with LCD Displays&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28370/mega-iie-first-fully-functional-computer-built-around-the-apple-mega-ii-chip----episode-630" data-icid="e14" data-e14adj="t"&gt;Episode 630: Mega IIe: First Fully Functional Computer built around the Apple Mega-II Chip&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28366/backpack-splash-mark-s-water-gun-upgrade-for-epic-outdoor-water-wars----episode-629" data-icid="e14" data-e14adj="t"&gt;Episode 629: Backpack Splash: Mark&amp;#39;s Water Gun Upgrade for Epic Outdoor Water Wars!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28361/affordable-diy-robot-arm-a-deep-dive-into-3d-printing-and-servo-motors----episode-628" data-icid="e14" data-e14adj="t"&gt;Episode 628: Affordable DIY Robot Arm - A Deep Dive into 3D Printing and Servo Motors&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28353/creating-sudostick---from-prototype-to-product----episode-627" data-icid="e14" data-e14adj="t"&gt;Episode 627: Creating sudostick - From Prototype to Product&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28351/catching-you-up-on-bonesnapper-ridge---off-grid-maker-shop----episode-626" data-icid="e14" data-e14adj="t"&gt;Episode 626: Catching you Up on Bonesnapper Ridge - Off-Grid Maker Shop&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28344/interactive-magic-creating-an-enchanted-cauldron----episode-625" data-icid="e14" data-e14adj="t"&gt;Episode 625: Interactive Magic - Creating an Enchanted Cauldron&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28342/episode-624-modding-a-smoke-machine-to-add-motion-detection" data-icid="e14" data-e14adj="t"&gt;Episode 624: Modding A Smoke Machine to Add Motion Detection&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28339/episode-623-how-to-run-linux-on-an-esp32" data-icid="e14" data-e14adj="t"&gt;Episode 623: How to Run Linux on an ESP32&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28334/episode-622-building-spooky-fun-halloween-sound-pranks-with-nrf-5340-ble-audio" data-icid="e14" data-e14adj="t"&gt;Episode 622: Building Spooky Fun: Halloween Sound Pranks with nRF 5340 BLE Audio&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28330/episode-621-color-sensor-based-water-quality-tracker-diy-environmental-monitoring" data-icid="e14" data-e14adj="t"&gt;Episode 621: Color Sensor-Based Water Quality Tracker: DIY Environmental Monitoring&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28328/episode-620-stey-by-step-guide-to-creating-your-own-speaking-animatronic-hat" data-icid="e14" data-e14adj="t"&gt;Episode 620: Stey-by-Step Guide to Creating your own Speaking Animatronic Hat&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28316/episode-619-how-to-build-an-open-source-bluetooth-mechanical-keyboard" data-icid="e14" data-e14adj="t"&gt;Episode 619: How to Build an Open Source Bluetooth Mechanical Keyboard&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28308/episode-618-upgrading-my-racing-sim-with-a-force-sensitive-keyboard" data-icid="e14" data-e14adj="t"&gt;Episode 618: Upgrading My Racing Sim with a Force-Sensitive Keyboard&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28306/episode-617-simplify-network-monitoring-building-an-esp32-powered-solution" data-icid="e14" data-e14adj="t"&gt;Episode 617: Simplify Network Monitoring: Building an ESP32-Powered Solution&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28300/episode-616-mastering-oven-control-precision-resin-curing-with-diy-modifications---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 616: Mastering Oven Control: Precision Resin Curing with DIY Modifications - How Hard Can it Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28290/episode-615-building-a-unique-usb-card-reader-from-idea-to-prototype" data-icid="e14" data-e14adj="t"&gt;Episode 615: Building a Unique USB Card Reader: From Idea to Prototype&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28278/episode-614-using-pid-proportional-integral-derivative-in-robotics---how-hard-could-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 614: Using PID (Proportional-Integral-Derivative) in Robotics - How Hard Could It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28274/episode-613-building-a-magic-wand-talking-sound-board" data-icid="e14" data-e14adj="t"&gt;Episode 613: Building a Magic Wand Talking Sound Board&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28271/episode-612-handheld-basic-computer-in-badge-format-with-the-arduino-uno" data-icid="e14" data-e14adj="t"&gt;Episode 612: Handheld BASIC computer in Badge Format with the Arduino Uno&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28267/episode-611-how-to-run-the-distance-to-the-moon-with-strava-data-and-a-pico-w-board" data-icid="e14" data-e14adj="t"&gt;Episode 611: How to Run the Distance to the Moon with Strava Data and a Pico W Board&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28214/episode-610-how-to-embroider-with-circuits-and-conductive-thread" data-icid="e14" data-e14adj="t"&gt;Episode 610: How to Embroider with Circuits and Conductive Thread&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28213/episode-609-updating-a-fujitsu-n860-2500-t111-keyboard-to-work-with-a-ps2-standard" data-icid="e14" data-e14adj="t"&gt;Episode 609: Updating a Fujitsu N860-2500-T111 Keyboard to Work with a PS2 Standard&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28200/episode-608-making-the-simplest-diy-wind-energy-generator---how-hard-could-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 608: Making the Simplest DIY Wind Energy Generator - How Hard Could it Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28198/episode-607-from-strava-to-motion-creating-an-arduino-powered-arcade-game-with-running-data" data-icid="e14" data-e14adj="t"&gt;Episode 607: From Strava to Motion: Creating an Arduino-Powered Arcade Game with Running Data&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28184/episode-606-how-to-use-lorawan-to-launch-model-rockets-wirelessly" data-icid="e14" data-e14adj="t"&gt;Episode 606: How to Use LoRaWAN to Launch Model Rockets Wirelessly&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28152/episode-605-arduino-and-leds-make-solitaire-easier-to-solve" data-icid="e14" data-e14adj="t"&gt;Episode 605: Arduino and LEDs Make Solitaire Easier to Solve&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28140/episode-604-charlieplexing-buttons-and-leds-at-the-same-time---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 604: Charlieplexing Buttons and LEDs at the Same Time - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28138/episode-603-create-your-own-air-hockey-table-with-arduino-scoring" data-icid="e14" data-e14adj="t"&gt;Episode 603: Create Your Own Air Hockey Table with Arduino Scoring&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28133/episode-602-diy-ac-dimmer-circuit-control-your-lights-with-a-raspberry-pi-pico" data-icid="e14" data-e14adj="t"&gt;Episode 602: DIY AC Dimmer Circuit: Control Your Lights with a Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28131/episode-601-how-to-reverse-engineer-electronics-building-a-developer-board-for-a-coding-class" data-icid="e14" data-e14adj="t"&gt;Episode 601: How to Reverse Engineer Electronics: Building a Developer Board for a Coding Class&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28126/episode-600-building-my-dream-digital-clock-diy-7-segment-display-with-a-cute-robot-twist" data-icid="e14" data-e14adj="t"&gt;Episode 600: Building My Dream Digital Clock: DIY 7 Segment Display with a Cute Robot Twist!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28117/episode-599-how-to-build-a-spectrum-analyzer-with-lego-bricks-discrete-electronics" data-icid="e14" data-e14adj="t"&gt;Episode 599: How to Build a Spectrum Analyzer with Lego Bricks &amp;amp; Discrete Electronics&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28102/episode-598-how-to-build-a-portable-solar-charged-off-grid-power-station" data-icid="e14" data-e14adj="t"&gt;Episode 598: How To Build a Portable, Solar-Charged Off-Grid Power Station&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28097/episode-597-how-to-build-a-robot-that-celebrates-good-grades-with-arduino" data-icid="e14" data-e14adj="t"&gt;Episode 597: How to Build a Robot that Celebrates Good Grades with Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28084/episode-596-how-to-build-your-own-voice-assistant-with-mycroft-ai---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 596: How to Build Your Own Voice Assistant with MyCroft AI - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28082/episode-595-member-challenge-accepted---universal-lanc-controller-for-dslr-cameras" data-icid="e14" data-e14adj="t"&gt;Episode 595: Member Challenge Accepted - Universal LANC Controller for DSLR cameras&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28059/episode-594-repairing-a-neewer-660-studio-light---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 594: Repairing a Neewer 660 Studio light - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28057/episode-593-playing-3d-famicom-games-wirelessly-on-the-nes---how-hard-could-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 593: Playing 3D Famicom Games Wirelessly on the NES - How Hard Could It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28050/episode-592-lamptopus-spinning-led-desk-lamp" data-icid="e14" data-e14adj="t"&gt;Episode 592: Lamptopus: Spinning LED Desk Lamp&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28036/episode-591-building-a-bluetooth-speaker-in-5-minutes---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 591: Building A Bluetooth Speaker in 5 Minutes - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28033/episode-590-seven-kingdoms-open-source-bartop-arcade" data-icid="e14" data-e14adj="t"&gt;Episode 590: Seven Kingdoms Open Source Bartop Arcade&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28024/episode-589-upgrading-the-imac-g4-with-a-nuc" data-icid="e14" data-e14adj="t"&gt;Episode 589: Upgrading the iMac G4 With a NUC&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28020/episode-588-highlights-from-element14-presents-2022" data-icid="e14" data-e14adj="t"&gt;Episode 588: Highlights from element14 presents 2022&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27982/episode-587-create-your-own-talking-stress-indicator" data-icid="e14" data-e14adj="t"&gt;Episode 587: Create Your Own Talking Stress Indicator&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27965/episode-586-diy-open-source-bluetooth-headphones" data-icid="e14" data-e14adj="t"&gt;Episode 586: DIY Open Source Bluetooth Headphones&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27960/episode-585-enhancing-a-magnifying-headband-with-auto-sensing-light" data-icid="e14" data-e14adj="t"&gt;Episode 585: Enhancing a Magnifying Headband with Auto Sensing Light&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27952/episode-584-going-beyond-periodic-wakes-using-wifi-to-revive-a-sleeping-device" data-icid="e14" data-e14adj="t"&gt;Episode 584: Going Beyond Periodic Wakes: Using WiFi to Revive a Sleeping Device&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27934/episode-583-epic-neopixel-birthday-cake" data-icid="e14" data-e14adj="t"&gt;Episode 583: Epic Neopixel Birthday Cake&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27917/episode-582-smart-christmas-decoration-with-raspberry-pi-pico-and-mqtt" data-icid="e14" data-e14adj="t"&gt;Episode 582: Smart Christmas Decoration with Raspberry Pi Pico and MQTT&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27900/episode-581-bee-saving-electronics-prototype" data-icid="e14" data-e14adj="t"&gt;Episode 581: Bee-Saving Electronics Prototype&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27894/episode-580-diy-low-cost-capacitance-meter-using-a-555-timer" data-icid="e14" data-e14adj="t"&gt;Episode 580: DIY Low Cost Capacitance Meter Using a 555 Timer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27881/episode-579-how-to-make-a-basketball-auto-score-keeper-using-colour-sensing" data-icid="e14" data-e14adj="t"&gt;Episode 579: How to Make a Basketball Auto Score Keeper Using Colour Sensing&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27879/episode-578-build-your-own-bat-detector-with-analog-parts" data-icid="e14" data-e14adj="t"&gt;Episode 578: Build your Own Bat Detector with Analog Parts&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27862/episode-577-the-game-guy-mini-upgrading-the-unportable-game-boy" data-icid="e14" data-e14adj="t"&gt;Episode 577: The Game Guy Mini, Upgrading the Unportable Game Boy!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27861/episode-576-build-your-own-underwater-drone-with-3d-printed-parts" data-icid="e14" data-e14adj="t"&gt;Episode 576: Build your own Underwater Drone with 3D Printed Parts&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27855/episode-575-how-to-make-a-secured-parcel-pickup-box-with-arduino" data-icid="e14" data-e14adj="t"&gt;Episode 575: How to Make a Secured Parcel Pickup Box with Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27846/episode-574-ghost-rider-halloween-costume" data-icid="e14" data-e14adj="t"&gt;Episode 574: Ghost Rider Halloween Costume&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27836/episode-573-using-a-pi-pico-to-convert-keyboard-input-to-morse-code" data-icid="e14" data-e14adj="t"&gt;Episode 573: Using a Pi Pico to Convert Keyboard Input to Morse Code&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27824/episode-572-how-to-use-an-esp32-camera-to-know-you-ve-got-mail" data-icid="e14" data-e14adj="t"&gt;Episode 572: How to Use an ESP32 &amp;amp; Camera to Know You&amp;#39;ve Got Mail!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27807/episode-571-using-dead-batteries-to-test-for-dead-batteries" data-icid="e14" data-e14adj="t"&gt;Episode 571: Using Dead Batteries to Test for Dead Batteries&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27805/episode-570-making-a-wifi-connected-audio-spectrum-analyzer-with-esp32" data-icid="e14" data-e14adj="t"&gt;Episode 570: Making a WiFi Connected Audio Spectrum Analyzer with ESP32&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27803/episode-569-multi-spectrum-uv-resin-curing-station-with-wurth-leds" data-icid="e14" data-e14adj="t"&gt;Episode 569: Multi-Spectrum UV Resin Curing Station with W&amp;uuml;rth LEDs&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27787/episode-568-how-to-make-a-custom-soundboard-with-the-stm32f4-using-freecad" data-icid="e14" data-e14adj="t"&gt;Episode 568: How to Make a Custom Soundboard with the STM32F4 using FreeCAD&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27785/episode-567-synced-neopixel-mickey-mouse-ears" data-icid="e14" data-e14adj="t"&gt;Episode 567: Synced NeoPixel Mickey Mouse Ears&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27760/episode-566-how-to-automate-industrial-welding-positioners-with-arduino" data-icid="e14" data-e14adj="t"&gt;Episode 566: How to Automate Industrial Welding Positioners with Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27758/episode-565-measuring-destructive-testing-force-with-a-20-ton-hydraulic-press" data-icid="e14" data-e14adj="t"&gt;Episode 565: Measuring Destructive Testing Force with a 20 Ton Hydraulic Press&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27734/episode-564-build-a-vu-meter-with-led-pixelated-nixie-tubes" data-icid="e14" data-e14adj="t"&gt;Episode 564: Build a VU Meter with LED Pixelated Nixie Tubes&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27732/episode-563-creating-augmented-reality-circuits-with-meta-quest-2-and-unity" data-icid="e14" data-e14adj="t"&gt;Episode 563: Creating Augmented Reality Circuits with Meta Quest 2 and Unity&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27730/episode-562-pi-home-temperature-monitoring-system" data-icid="e14" data-e14adj="t"&gt;Episode 562: Pi Home Temperature Monitoring System&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27728/episode-561-wifi-to-parallel-port-ascii-art-dot-matrix-printer" data-icid="e14" data-e14adj="t"&gt;Episode 561: WiFi to Parallel Port Ascii Art Dot-Matrix Printer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27727/episode-560-raspberry-pi-controlled-lego-train-with-build-hat" data-icid="e14" data-e14adj="t"&gt;Episode 560: Raspberry Pi Controlled Lego Train with Build HAT&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27706/episode-559-create-a-magic-makeup-mirror-with-pose-detection" data-icid="e14" data-e14adj="t"&gt;Episode 559: Create a Magic Makeup Mirror with Pose Detection&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27700/episode-558-3d-object-rendering-using-an-fpga" data-icid="e14" data-e14adj="t"&gt;Episode 558: 3D Object Rendering Using an FPGA&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27694/episode-557-create-your-own-handheld-serial-monitor-for-project-debugging" data-icid="e14" data-e14adj="t"&gt;Episode 557: Create your own Handheld Serial Monitor for Project Debugging&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27666/episode-556-hacking-a-hotel-pos-tablet---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 556: Hacking a Hotel POS Tablet - How Hard Can it Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27664/episode-555-dance-central-pose-estimation-game-with-tensorflow-and-raspberry-pi" data-icid="e14" data-e14adj="t"&gt;Episode 555: Dance Central Pose Estimation Game with Tensorflow and Raspberry Pi&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27647/episode-554-arduino-uno-mini-limited-edition-led-necklace" data-icid="e14" data-e14adj="t"&gt;Episode 554: Arduino Uno Mini Limited Edition LED Necklace&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27645/episode-553-adding-a-parallel-printer-port-to-an-android-phone" data-icid="e14" data-e14adj="t"&gt;Episode 553: Adding a Parallel Printer Port to an Android Phone&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27616/episode-552---magical-potion-bottle-rack" data-icid="e14" data-e14adj="t"&gt;Episode 552: Magical Potion Bottle Rack&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27614/episode-551-can-we-rebuild-a-1930s-accounting-machine" data-icid="e14" data-e14adj="t"&gt;Episode 551: Can We Rebuild a 1930s Accounting Machine?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27608/episode-550-diy-electronic-controlled-motorized-wheelchair" data-icid="e14" data-e14adj="t"&gt;Episode 550: DIY Electronic Controlled Motorized Wheelchair&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27606/episode-549-using-a-teletype-machine-as-a-usb-printer-with-arduino" data-icid="e14" data-e14adj="t"&gt;Episode 549: Using a Teletype Machine as a USB Printer with Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27597/episode-548-electronic-fidget-cube-building-your-ideas" data-icid="e14" data-e14adj="t"&gt;Episode 548: Electronic Fidget Cube, Building Your Ideas!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27577/episode-547-creating-a-mummy-wake-word-detector-with-raspberry-pi-and-edge-impulse" data-icid="e14" data-e14adj="t"&gt;Episode 547: Creating a &amp;ldquo;Mummy&amp;rdquo; Wake Word Detector with Raspberry Pi and Edge Impulse&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27567/episode-546-mapping-the-outputs-of-a-1960s-teletype-machine---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 546: Mapping the Outputs of a 1960s Teletype Machine - How Hard Can it Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27576/episode-545-designing-a-custom-pcb-for-microsoft-jacdac" data-icid="e14" data-e14adj="t"&gt;Episode 545: Designing a Custom PCB for Microsoft Jacdac&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27548/episode-544-reviving-the-1984-ibm-5155---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 544: Reviving the 1984 IBM 5155 - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27522/episode-543-lego-spike-prime-weather-station-with-raspberry-pi" data-icid="e14" data-e14adj="t"&gt;Episode 543: Lego Spike Prime Weather Station with Raspberry Pi&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27520/episode-542-a-noise-free-diy-switching-power-supply---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 542: A Noise-Free DIY Switching Power Supply - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27495/episode-541-vintage-laptop-battery-replaced-with-usb-power---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 541: Vintage Laptop Battery Replaced with USB Power - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27493/episode-540-object-detection-for-smart-recycling" data-icid="e14" data-e14adj="t"&gt;Episode 540: Object Detection for Smart Recycling&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27484/episode-539-training-a-machine-to-recognize-objects---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 539: Training a Machine to Recognize Objects - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27483/episode-538-how-to-build-a-quadruped-robot---no-math" data-icid="e14" data-e14adj="t"&gt;Episode 538: How to Build a Quadruped Robot - NO MATH!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27460/episode-537-build-a-phonograph-preamplifier---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 537: Build a Phonograph Preamplifier - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27458/episode-536-interactive-light-up-window-with-pose-detection-using-a-raspberry-pi-and-micro-bit" data-icid="e14" data-e14adj="t"&gt;Episode 536: Interactive Light-Up Window with Pose Detection using a Raspberry Pi and micro:bit&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27441/episode-535-repair-a-sega-game-gear---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 535: Repair a Sega Game Gear - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27435/episode-534-open-source-inventory-warehousing-system" data-icid="e14" data-e14adj="t"&gt;Episode 534: Open Source Inventory Warehousing System&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27432/episode-533-jumbo-diy-led" data-icid="e14" data-e14adj="t"&gt;Episode 533: Jumbo DIY LED&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27412/episode-532-world-s-first-single-chip-apple-ii-boots" data-icid="e14" data-e14adj="t"&gt;Episode 532: World&amp;rsquo;s First Single-Chip Apple II Boots!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27407/episode-531-game-guy---the-unportable-game-boy" data-icid="e14" data-e14adj="t"&gt;Episode 531: Game Guy - The Unportable Game Boy&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27399/episode-530-mqtt-controlled-led-christmas-baubles-with-raspberry-pi-pico" data-icid="e14" data-e14adj="t"&gt;Episode 530: MQTT controlled LED Christmas Baubles with Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27392/episode-529-updi-program-for-new-attiny" data-icid="e14" data-e14adj="t"&gt;Episode 529: UPDI Program for new ATTiny&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27383/episode-528-let-s-build-an-electronic-fidget-cube" data-icid="e14" data-e14adj="t"&gt;Episode 528: Let&amp;#39;s Build an Electronic Fidget Cube!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27375/episode-527---interactive-light-up-window-using-a-raspberry-pi-and-micro-bit" data-icid="e14" data-e14adj="t"&gt;Episode 527: Interactive Light Up Window using a Raspberry Pi and micro:bit&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27366/episode-526-cnc-router-remote-control" data-icid="e14" data-e14adj="t"&gt;Episode 526: CNC Router Remote Control&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27338/episode-525-demonstrating-magnetic-fields-with-helmholtz-coils-in-a-snow-globe" data-icid="e14" data-e14adj="t"&gt;Episode 525: DIY Helmholtz Snow Globe&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/27287/episode-524-arduino-iot-cloud-weather-station" data-e14adj="t"&gt;Episode 524: Arduino IoT Cloud Weather Station&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/27276/episode-523-make-your-own-auto-sensing-solder-fume-extractor" data-e14adj="t"&gt;Episode 523: Make your Own Auto-Sensing Solder Fume Extractor&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/23245/episode-522-siren-head-halloween-wearable-costume" data-e14adj="t"&gt;Episode 522: Siren Head Halloween Wearable Costume&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/23240/episode-521-diy-static-grass-applicator" data-e14adj="t"&gt;Episode 521: DIY Static Grass Applicator&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/23232/episode-520-adding-android-auto-as-non-permanent-add-on-with-raspberry-pi" data-e14adj="t"&gt;Episode 520: Adding Android Auto as Non-Permanent Add-On with Raspberry Pi&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/23225/episode-519-make-your-own-ye-olde-book-nook-diorama-with-arduino" data-e14adj="t"&gt;Episode 519: Make Your Own Ye Olde Book Nook Diorama with Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/23212/episode-518-guitar-vacuum-tube-distortion-pedal" data-e14adj="t"&gt;Episode 518: Guitar Vacuum Tube Distortion Pedal&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/secret-element14-presents/w/documents/4141/episode-517-emulate-an-eprom---how-hard-could-it-be" data-e14adj="t"&gt;Episode 517: Emulate an EPROM - How Hard Could it Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/23199/episode-516-modding-a-wireless-doorbell-with-raspberry-pi-and-esp8266" data-e14adj="t"&gt;Episode 516: Modding a Wireless Doorbell with Raspberry Pi and ESP8266&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/23190/episode-515-upcycling-a-lenovo-pc-into-a-raspberry-pi-wifi-access-point" data-e14adj="t"&gt;Episode 515: Upcycling a Lenovo PC into a Raspberry Pi WiFi Access Point&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/23183/episode-514-making-a-3d-graphics-card-for-the-atari-800-xl" data-e14adj="t"&gt;Episode 514: Making a 3D Graphics Card for the Atari 800 XL&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5429/episode-513-bike-speedometer-with-arduino-and-gps" data-e14adj="t"&gt;Episode 513: Bike Speedometer with Arduino and GPS&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5422/episode-512-you-cannot-buy-this-vacuum-tube-tester-you-build-it" data-e14adj="t"&gt;Episode 512: You Cannot Buy This Vacuum Tube Tester. You Build It!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5418/episode-511-face-tracking-cheeseball-launcher" data-e14adj="t"&gt;Episode 511:&amp;nbsp; Raspberry Pi Powered Cheeseball Launcher&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5407/episode-510-laser-cutter-command-station" data-e14adj="t"&gt;Episode 510: Laser Cutter Command Station&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5402/episode-509-diy-discrete-logic-led-countdown-timer" data-e14adj="t"&gt;Episode 509: DIY Discrete Logic LED Countdown Timer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5397/episode-508-raspberry-pi-fpv-rover-easy-robot-arm-upgrade" data-e14adj="t"&gt;Episode 508: Raspberry Pi FPV Rover Easy Robot Arm Upgrade&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5391/episode-507-massive-raspberry-pi" data-e14adj="t"&gt;Episode 507: Massive Raspberry Pi&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5377/episode-506-diy-star-trek-tricorder-from-build-inside-the-box" data-e14adj="t"&gt;Episode 506: DIY Star Trek Tricorder from Build Inside the Box&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5374/episode-505-super-8-camera-digitizer" data-e14adj="t"&gt;Episode 505: Super 8 Camera Digitizer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5369/episode-504-diy-sump-pump-alarm" data-e14adj="t"&gt;Episode 504: DIY Sump Pump Alarm&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5360/episode-503-meet-cheesoid---the-robot-that-smells" data-e14adj="t"&gt;Episode 503: Meet Cheesoid - The Robot That Smells!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5352/episode-502-make-your-bike-a-pokebike" data-e14adj="t"&gt;Episode 502: Make Your Bike a Pokebike!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5033/episode-501-raspberry-pi-nfc-button-free-music-player" data-e14adj="t"&gt;Episode 501: Raspberry Pi NFC Button-Free Music Player&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/20721/episode-500-build-inside-the-box-challenge" data-e14adj="t"&gt;Episode 500:&amp;nbsp; Build Inside The Box Challenge!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5332/episode-499-diy-four-channel-arduino-servo-tester" data-e14adj="t"&gt;Episode 499: DIY Four Channel Arduino Servo Tester&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8706/episode-498-raspberry-pi-smart-water-dispenser" data-e14adj="t"&gt;Episode 498: Raspberry Pi Smart Water Dispenser&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5318/episode-497-raspberry-pi-rfid-pocket-money-keeper" data-e14adj="t"&gt;Episode 497: RFID Pocket Money Keeper&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8705/episode-496-compute-module-4-powered-3d-printer-board" data-e14adj="t"&gt;Episode 496: Compute Module 4 Powered 3D Printer Board&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5308/episode-495-magic-gif-ball-powered-by-raspberry-pi" data-e14adj="t"&gt;Episode 495: Magic GIF Ball Powered By Raspberry Pi&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5299/episode-494-keyboard-shortcuts-keypad-with-raspberry-pi-pico" data-e14adj="t"&gt;Episode 494: Keyboard Shortcuts Keypad with Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5290/episode-493-neopixel-7-segment-display-clock-update" data-e14adj="t"&gt;Episode 493: NeoPixel 7 Segment Display Clock Update&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5275/episode-492-arduino-vs-555-timer---tiny-slot-car-racers" data-e14adj="t"&gt;Episode 492: Arduino vs 555 Timer - Tiny Slot Car Racers&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5273/episode-491-arduino-single-wheel-balancing-robot" data-e14adj="t"&gt;Episode 491: Arduino Single-Wheel Balancing Robot&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5256/episode-490-diy-raspberry-pi-pico-fizz-buzz-multiplication-game" data-e14adj="t"&gt;Episode 490: DIY Raspberry Pi Pico Fizz Buzz Multiplication Game&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5254/episode-489-build-an-fpv-rover-with-raspberry-pi" data-e14adj="t"&gt;Episode 489: Build An FPV Rover with Raspberry Pi&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5233/episode-488-diy-raspberry-pi-cyberdeck" data-e14adj="t"&gt;Episode 488: DIY Raspberry Pi Cyberdeck&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5232/episode-487-diy-magsafe-battery-charger" data-e14adj="t"&gt;Episode 487: DIY MagSafe Battery Charger&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5229/episode-486-make-the-ultimate-phone-charging-camping-flashlight" data-e14adj="t"&gt;Episode 486: Make The Ultimate Phone Charging Camping Flashlight&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5213/episode-485-how-to-make-a-custom-pcb-from-design-to-assembly" data-e14adj="t"&gt;Episode 485: How To Make A Custom PCB From Design To Assembly&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5211/episode-484-raspberry-pi-bird-watching-camera" data-e14adj="t"&gt;Episode 484: Raspberry Pi Bird Watching Camera&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5201/episode-483-diy-miniature-multimeter" data-e14adj="t"&gt;Episode 483: DIY Miniature Multimeter&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5196/episode-482-gigantic-3d-printed-7-segment-display-clock" data-e14adj="t"&gt;Episode 482: Gigantic 3D Printed 7 Segment Display Clock&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5188/episode-481-diy-lost-swan-station-split-flap-display-timer" data-e14adj="t"&gt;Episode 481: DIY LOST Swan Station Split Flap Display Timer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5181/episode-480-diy-toothbrush-timer" data-e14adj="t"&gt;Episode 480: DIY Toothbrush Timer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5179/episode-479-raspberry-pi-2xl-robot-assistant-part-2" data-e14adj="t"&gt;Episode 479: Raspberry Pi 2XL Robot Assistant Part 2&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5171/episode-478-upgrading-a-christmas-train-with-python-and-raspberry-pi" data-e14adj="t"&gt;Episode 478: Upgrading A Christmas Train&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5169/episode-477-metal-plate-your-3d-prints-with-a-diy-galvanizing-machine" data-e14adj="t"&gt;Episode 477: Metal Plate Your 3D Prints with a DIY Galvanizing Machine&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5160/episode-476-iot-arduino-ntp-world-clock-with-spi-display" data-e14adj="t"&gt;Episode 476: IoT Arduino NTP World Clock with SPI Display&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5147/episode-475-diy-wall-mounted-arduino-barometer" data-e14adj="t"&gt;Episode 475: DIY Wall Mounted Arduino Barometer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5144/episode-474-continuum-robot-tentacle-prototype" data-e14adj="t"&gt;Episode 474: Continuum Robot Tentacle Prototype&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8680/episode-473-mendel-3d-printer-upgrade-and-maintenance" data-e14adj="t"&gt;Episode 473: Mendel 3D Printer Upgrade and Maintenance&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5120/episode-472-diy-hydration-reminder-system" data-e14adj="t"&gt;Episode 472: DIY Hydration Reminder System&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5113/episode-471-diy-dance-dance-revolution-mat" data-e14adj="t"&gt;Episode 471: DIY Dance Dance Revolution Mat&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5102/episode-470-voice-activated-inspector-gadget-hat" data-e14adj="t"&gt;Episode 470: Voice Activated Inspector Gadget Hat&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5063/episode-469-nintendo-super-scope-modded-for-modern-televisions" data-e14adj="t"&gt;Episode 469: Nintendo Super Scope Modded For Modern Televisions&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5092/episode-468-socially-distanced-halloween-candy-dispenser" data-e14adj="t"&gt;Episode 468: Socially Distanced Halloween Candy Dispenser&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5077/episode-467-repairing-the-world-s-first-laptop-epson-hx-20" data-e14adj="t"&gt;Episode 467: Repairing the World&amp;#39;s First Laptop! (Epson HX-20)&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5061/episode-466-arduino-powered-hexadecimal-color-code-clock" data-e14adj="t"&gt;Episode 466: Arduino-powered Hexadecimal Color Code Clock&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5034/episode-465-lego-raspberry-pi-hq-camera" data-e14adj="t"&gt;Episode 465: Lego Raspberry Pi HQ Camera&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5031/episode-464-particle-voice-recognition-for-home-appliances" data-e14adj="t"&gt;Episode 464: Particle Voice Recognition for Home Appliances&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5002/episode-463-raspberry-pi-speech-to-text-led-face-mask" data-e14adj="t"&gt;Episode 463: Raspberry Pi Speech to Text LED Face Mask&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5012/episode-462-joycon-controlled-electronic-rock-em-sock-em-robots" data-e14adj="t"&gt;Episode 462: Joycon Controlled Electronic Rock&amp;#39;Em Sock&amp;#39;Em Robots&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4980/episode-461-portal-2-security-camera-with-raspberry-pi-2" data-e14adj="t"&gt;Episode 461: Portal 2 Security Camera with Raspberry Pi 2&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4985/episode-460-trinamic-open-source-ventilator-tosv-teardown" data-e14adj="t"&gt;Episode 460: Trinamic Open Source Ventilator (TOSV) Teardown&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4961/episode-459-raspberry-pi-4-vr-conference-call-assistant" data-e14adj="t"&gt;Episode 459: Raspberry Pi 4 VR Conference Call Assistant&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4971/episode-458-diy-arduino-automated-metal-bending-machine" data-e14adj="t"&gt;Episode 458: DIY Arduino Automated Metal Bending Machine&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4966/episode-457-arduino-mkr-zero-animatronic-rosie-the-robot-from-the-jetsons" data-e14adj="t"&gt;Episode 457: Raspberry Pi 4 Animatronic Rosie the Robot from the Jetsons&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8665/episode-456-unhackable-arduino-switch-matrix" data-e14adj="t"&gt;Episode 456: Unhackable Arduino Switch Matrix&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8664/episode-455-arduino-unit-conversion-calculator" data-e14adj="t"&gt;Episode 455: Arduino Unit Conversion Calculator&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4942/episode-454-soldering-up-the-rc2014-homebrew-z80-computer-kit" data-e14adj="t"&gt;Episode 454: Soldering Up the rc2014 Homebrew Z80 Computer Kit&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4937/episode-453-build-an-anti-troll-bot-using-tensorflow-and-arduino" data-e14adj="t"&gt;Episode 453: Build an Anti-Troll Bot Using TensorFlow and Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4914/episode-452-raspberry-pi-4-experimental-resin-3d-printer-updated" data-e14adj="t"&gt;Episode 452: Raspberry Pi 4 Experimental Resin 3D Printer Updated!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4913/episode-451-build-an-off-grid-wikipedia-with-raspberry-pi" data-e14adj="t"&gt;Episode 451: Build an Off Grid Wikipedia with Raspberry Pi&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4906/episode-450-sega-gamegear-rebuild-with-leds" data-e14adj="t"&gt;Episode 450: Sega GameGear Rebuild with LEDs&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8657/episode-449-diy-tamagotchi---build-a-virtual-pet" data-e14adj="t"&gt;Episode 449: DIY Tamagotchi - Build a Virtual Pet&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4895/episode-448-diy-raspberry-pi-4-boxing-game" data-e14adj="t"&gt;Episode 448: DIY Raspberry Pi 4 Boxing Game&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4873/episode-447-diy-stop-motion-rig-with-lattepanda" data-e14adj="t"&gt;Episode 447: DIY Stop Motion Rig with LattePanda&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4871/episode-446-raspberry-pi-2xl-robot-assistant-part-1" data-e14adj="t"&gt;Episode 446: Raspberry Pi 2XL Robot Assistant Part 1&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8652/episode-445-raspberry-pi-4-animatronic-bd-1-companion-robot" data-e14adj="t"&gt;Episode 445: Raspberry Pi 4 Animatronic BD-1 Companion Robot&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4848/episode-444-raspberry-pi-4-dvr" data-e14adj="t"&gt;Episode 444: Raspberry Pi 4 DVR&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4836/episode-443-arduino-uno-rc-remote---can-it-be-done" data-e14adj="t"&gt;Episode 443: Arduino Uno RC Remote - Can It Be Done?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4834/episode-442-make-your-own-giant-servo" data-e14adj="t"&gt;Episode 442: Make Your Own Giant Servo&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4818/episode-441-raspberry-pi-4-international-space-station-tracker" data-e14adj="t"&gt;Episode 441: Raspberry Pi 4 International Space Station Tracker&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4810/episode-440-diy-arduino-helicopter-collective-joystick-control" data-e14adj="t"&gt;Episode 440: DIY Arduino Helicopter Collective Joystick Control&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4796/episode-439---mechanical-arcade-game-with-barebones-arduino" data-e14adj="t"&gt;Episode 439 - Mechanical Arcade Game with Barebones Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4787/episode-438-smartphone-controlled-diy-rover-using-websockets" data-e14adj="t"&gt;Episode 438: Smartphone Controlled DIY Rover Using Websockets&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4771/episode-437-diy-motorized-zoom-for-your-dslr" data-e14adj="t"&gt;Episode 437: DIY Motorized Zoom for Your DSLR&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4767/episode-436-automated-raspberry-pi-planet-tracking-goto-telescope" data-e14adj="t"&gt;Episode 436: Automated Raspberry Pi Planet Tracking GOTO Telescope&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4756/episode-435-raspberry-pi-4-music-player-w-analog-controls" data-e14adj="t"&gt;Episode 435: Raspberry Pi 4 Music Player w/Analog Controls&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8637/episode-434-infineon-smart-city-model" data-e14adj="t"&gt;Episode 434: Infineon Smart City Model&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4742/episode-433---arduino-based-love-tester" data-e14adj="t"&gt;Episode 433: Arduino Based Love Tester&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4728/episode-432-super-fx-sword-using-the-bbc-micro-bit" data-e14adj="t"&gt;Episode 432: Super FX Sword using the BBC micro:bit&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4726/episode-431-room-sized-studio-light-speakers-combo" data-e14adj="t"&gt;Episode 431: Room-Sized Studio Light Speakers Combo&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4692/episode-430-flaming-xylophone-rubens-tube" data-e14adj="t"&gt;Episode 430: Flaming Xylophone Rubens&amp;#39; Tube&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4670/episode-429-youtuber-on-air-light-with-particle-mesh-network" data-e14adj="t"&gt;Episode 429: YouTuber &amp;quot;On Air&amp;quot; Light with Particle Mesh Network&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4668/episode-428-raspberry-pi-4-crt-based-vr-headset" data-e14adj="t"&gt;Episode 428: Raspberry Pi 4 CRT-based VR Headset&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4657/episode-427-diy-retro-gaming-portable-on-a-budget" data-e14adj="t"&gt; Episode 427: DIY Retro Gaming Portable on a Budget!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4142/episode-426-retro-tv-ads-holiday-ornament" data-e14adj="t"&gt; Episode 426: Retro TV Ads Holiday Ornament&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4651/episode-425-make-your-own-raspberry-pi-4-photobooth" data-e14adj="t"&gt; Episode 425: Make Your Own Raspberry Pi 4 Photobooth!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4646/episode-424-diy-escape-room-puzzle" data-e14adj="t"&gt; Episode 424: DIY Escape Room Puzzle&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4644/episode-423-programmable-arduino-synthesizer-watch" data-e14adj="t"&gt; Episode 423: Programmable Arduino Synthesizer Watch&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4628/episode-422-raspberry-pi-e-ink-task-organizer" data-e14adj="t"&gt; Episode 422: Raspberry Pi E-Ink Task Organizer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4627/episode-421-raspberry-pi-4-commodore-sx-64-inspired-portable-computer" data-e14adj="t"&gt; Episode 421: Raspberry Pi 4 Commodore SX-64 Inspired Portable Computer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4616/episode-420-diy-shapeoko-cnc-pendant" data-e14adj="t"&gt; Episode 420: DIY Shapeoko CNC Pendant&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4607/episode-419-altair-8800-laptop" data-e14adj="t"&gt; Episode 419: Altair 8800 Laptop &lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4604/episode-418-animatronic-terminator-skull-with-beaglebone-ai-and-giveaway" data-e14adj="t"&gt;&amp;nbsp;Episode 418: Animatronic Terminator Skull with BeagleBone&lt;span class="emoticon" data-url="https://community.element14.com/cfs-file/__key/system/emoji/00ae.svg" title="Registered"&gt;&amp;#x00ae;&lt;/span&gt;&amp;nbsp;AI&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8619/episode-417-pipboy-2000-mk-ii" data-e14adj="t"&gt;Episode 417: #Pipboy 2000 Mk II&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4596/episode-416---diy-3dprinted-label-spooler" data-e14adj="t"&gt;Episode 416: DIY #3DPrinted Label Spooler&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4588/episode-415-iron-man-helmet-heads-up-display" data-e14adj="t"&gt;Episode 415: Iron Man Helmet Heads Up Display&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4580/episode-414-raspberry-pi-4-experimental-resin-3d-printer" data-e14adj="t"&gt;Episode 414: Raspberry Pi 4 Experimental Resin 3D Printer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8610/episode-413-animatronic-claptrap-case-mod-part-2" data-e14adj="t"&gt;Episode 413: Animatronic Claptrap Case Mod Part 2&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4558/episode-412-get-to-know-your-adc-with-a-diy-temperature-probe" data-e14adj="t"&gt;Episode 412: Get to Know Your ADC with a DIY Temperature Probe&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4531/episode-411-animatronic-claptrap-computer-case---part-1" data-e14adj="t"&gt;Episode 411: Animatronic Claptrap Computer Case - Part 1&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4537/episode-410-macpro-g5-cheese-grater-with-raspberry-pi-4" data-e14adj="t"&gt;Episode 410: MacPro G5 Cheese Grater with Raspberry Pi 4&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4522/episode-409-commodore-sx-64-restoration" data-e14adj="t"&gt;Episode 409: Commodore SX-64 Restoration&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4516/episode-408-hand-soldered-led-oscilloscope" data-e14adj="t"&gt;Episode 408: Hand Soldered LED Oscilloscope&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4514/episode-407-the-ultimate-raspberry-pi-4-laptop" data-e14adj="t"&gt;Episode 407: The Ultimate Raspberry Pi 4 Laptop&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4507/episode-406-automated-robot-artist" data-e14adj="t"&gt;Episode 406: Automated Robot Artist&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4493/episode-405-rc-ornithopter-concept" data-e14adj="t"&gt;Episode 405: RC Ornithopter Concept&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4488/episode-404-arduino-powered-close-encounters-midi-light-board" data-e14adj="t"&gt;Episode 404: Arduino Powered Close Encounters Midi Light Board&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4459/episode-403-upcycled-iot-coffee-pot-ramen-maker" data-e14adj="t"&gt;Episode 403: Upcycled IoT Coffee Pot Ramen Maker&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4422/episode-402-piphone-the-giant-raspberry-pi-flip-phone" data-e14adj="t"&gt;Episode 402: PiPhone++ The Giant Raspberry Pi Flip Phone&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4128/episode-401-matrix-voice-controlled-robot" data-e14adj="t"&gt;Episode 401: Matrix Voice Controlled Robot&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4127/episode-400-the-ultimate-raspberry-pi-stress-test" data-e14adj="t"&gt;Episode 400: The Ultimate Raspberry Pi Stress Test&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4129/episode-399-candle-powered-robot" data-e14adj="t"&gt;Episode 399: Candle-Powered Robotl&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4044/episode-398-let-me-out-hooman-bluetooth-dog-doorbell" data-e14adj="t"&gt;Episode 398: Let Me Out Hooman! Bluetooth Dog Doorbell&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4126/episode-397-steam-powered-retropie-console" data-e14adj="t"&gt;Episode 397: Steam Powered Retropie Console&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4043/episode-396-arduino-retro-led-matrix-handheld" data-e14adj="t"&gt;Episode 396: Arduino Retro LED Matrix Handheld&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4042/episode-395-raspberry-pi-stop-motion-machine" data-e14adj="t"&gt;Episode 395: Raspberry Pi Stop Motion Machine&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8531/episode-394-animatronic-glados-head-with-raspberry-pi" data-e14adj="t"&gt;Episode 394: Animatronic GLaDOS Head with Raspberry Pi&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4125/episode-393-gameboy-walkman" data-e14adj="t"&gt;Episode 393: GameBoy Walkman&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4191/episode-392-multi-line-telephone-intercom" data-e14adj="t"&gt;Episode 392: Multi-Line Telephone Intercom&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4124/episode-391-first-person-view-rc-car-with-ps1-steering-wheel" data-e14adj="t"&gt;Episode 391: First Person View RC Car with PS2 Steering Wheel&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4122/episode-390-retro-texting-smart-watch-of-the-future" data-e14adj="t"&gt;Episode 390: Retro Texting Smart Watch of the Future!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4120/episode-389-playstation-classic-portable-prototype" data-e14adj="t"&gt;Episode 389: PlayStation Classic Portable Prototype&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8519/episode-388-fpga-midi-music-synthesizer" data-e14adj="t"&gt;Episode 388: FPGA MIDI Music Synthesizer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4057/episode-387-rotocell---the-rotary-cell-phone-of-the-future" data-e14adj="t"&gt;Episode 387: Rotocell - The Rotary Cell Phone of the Future!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4038/episode-386-xybernaut-wearable-pc" data-e14adj="t"&gt;Episode 386: Xybernaut Wearable PC&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4117/episode-385-20-pcb-design-pitfalls" data-e14adj="t"&gt;Episode 385: 20 PCB Design Pitfalls&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4035/episode-384-retro-gaming-handheld-without-a-pcb" data-e14adj="t"&gt;Episode 384: Retro Gaming Handheld Without a PCB&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4058/episode-383-gameboy-wireless-link-cable-dmg1" data-e14adj="t"&gt;Episode 383: Gameboy Wireless Link Cable (DMG1)&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8501/episode-382-modding-a-super-8-camera-into-a-digital" data-e14adj="t"&gt;Episode 382: Modding a Super 8 Camera into a Digital&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4067/episode-381-reverse-music-box" data-e14adj="t"&gt;Episode 381: Reverse Music Box&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4039/episode-380-nes-zapper-on-retropie" data-e14adj="t"&gt;Episode 380: NES Zapper on RetroPie&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4036/episode-379-macroscope-soldering-tool" data-e14adj="t"&gt;Episode 379: Macroscope Soldering Tool&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8500/episode-378-invader-zim-animatronic-gir" data-e14adj="t"&gt;Episode 378: Invader ZIM Animatronic GIR&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4034/episode-377-altair-8800-replica" data-e14adj="t"&gt;Episode 377: Altair 8800 Replica&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4028/episode-376-4d-gaming-with-the-matrix-creator" data-e14adj="t"&gt;Episode 376: 4D Gaming with the Matrix Creator&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4025/episode-375-hacked-fetal-detector-music-synthesizer" data-e14adj="t"&gt;Episode 375: Hacked Fetal Detector Music Synthesizer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4008/episode-374-raspberry-pi-donkey-kong-holiday-ornament" data-e14adj="t"&gt;Episode 374: Raspberry Pi Donkey Kong Holiday Ornament&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3992/episode-373-raspberry-pi-fallout-terminal-pc" data-e14adj="t"&gt;Episode 373: Raspberry Pi Fallout Terminal PC&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8497/episode-372-raspberry-pi-auto-etch-a-sketch" data-e14adj="t"&gt;Episode 372: Raspberry Pi Auto Etch A Sketch&lt;span class="emoticon" data-url="https://community.element14.com/cfs-file/__key/system/emoji/2122.svg" title="Tm"&gt;&amp;#x2122;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3990/episode-371-fpga-game-genie-for-atari-2600" data-e14adj="t"&gt;Episode 371: FPGA &amp;quot;Game Genie&amp;quot; for Atari 2600&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3989/episode-370-raspberry-pi-noaa-satellite-receiver" data-e14adj="t"&gt;Episode 370: Raspberry Pi NOAA Satellite Receiver&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3979/episode-369-recreating-the-atari-portfolio" data-e14adj="t"&gt;Episode 369: Recreating the Atari Portfolio&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3977/episode-368-arduino-automatic-wire-cutter-and-stripper" data-e14adj="t"&gt;Episode 368: Arduino Automatic Wire Cutter and Stripper&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3968/episode-367-most-useless-iot-device-ever---part-2" data-e14adj="t"&gt;Episode 367: Most Useless IoT Device Ever - Part 2&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3960/episode-366-infinity-icosahedron" data-e14adj="t"&gt;Episode 366: Infinity Icosahedron&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3949/episode-365-twilight-zone-fortune-telling-machine" data-e14adj="t"&gt;Episode 365: Twilight Zone Fortune Telling Machine&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3934/episode-364-raspberry-pi-virtual-reality-arcade" data-e14adj="t"&gt;Episode 364: Raspberry Pi Virtual Reality Arcade #VR&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3920/episode-363-add-a-motor-to-your-bike-with-arduino" data-e14adj="t"&gt;Episode 363 - Add a Motor to your Bike with Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3912/episode-362-most-worthless-iot-device-ever---part-1" data-e14adj="t"&gt;Episode 362: Most Worthless IoT Device Ever Pt. 1&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3903/episode-361-r-o-b-rebuild-and-upgrade" data-e14adj="t"&gt;Episode 361: R.O.B Rebuild and Upgrade&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3887/episode-360-make-your-own-raspberry-pi-cell-phone" data-e14adj="t"&gt;Episode 360: Make Your Own Raspberry Pi Cell Phone&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3875/episode-359-make-your-own-cnc-pyrography-wood-burner" data-e14adj="t"&gt;Episode 359: Make Your Own CNC Pyrography Wood Burner&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3863/episode-358-the-shrimp-of-terror" data-e14adj="t"&gt;Episode 358: The Shrimp of Terror!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3848/episode-357-raspberry-pi-asteroid-tracker" data-e14adj="t"&gt;Episode 357: Raspberry Pi Asteroid Tracker&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8491/episode-356-bank-to-the-future-with-arduino-ti" data-e14adj="t"&gt;Episode 356: Bank to the Future with Arduino &amp;amp; TI&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3826/episode-355-raspberry-pi-pirate-radio" data-e14adj="t"&gt;Episode 355: Raspberry Pi Pirate Radio&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3816/episode-354-tiny-vacuum-forming-machine" data-e14adj="t"&gt;Episode 354: Tiny Vacuum Forming Machine&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3809/episode-353-program-your-own-fpga-video-game" data-e14adj="t"&gt;Episode 353: Program Your Own FPGA Video Game&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3784/episode-352-pripyat---diy-geiger-counter" data-e14adj="t"&gt;Episode 352: Pripyat - DIY Geiger Counter&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3747/episode-349-raspberry-pi-selfie-rocket" data-e14adj="t"&gt;Episode 349: Raspberry Pi Selfie Rocket&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/benheck/ben-heck-exclusive/w/documents/9678/the-ben-heck-show-episode-archive" data-e14adj="t"&gt;See All Previous Episodes&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: episode releases, friday_release_archive, element14 presents, project videos, episodes, friday releases, episode release archive, episode archive, friday release archive, project_videos&lt;/div&gt;
</description></item><item><title>Clem's Workbench Upgrade to Automated Lab with Programmable Instruments and Python</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72089/clem-s-workbench-upgrade-to-automated-lab-with-programmable-instruments-and-python</link><pubDate>Thu, 30 Jul 2026 12:54:10 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:24a4dbe8-e5a8-463e-9424-13dc1797f639</guid><dc:creator>e14sbhargav</dc:creator><description>Current Revision posted to Documents by e14sbhargav on 7/30/2026 12:54:10 PM&lt;br /&gt;
&lt;p&gt;Clem&amp;#39;s latest workbench upgrade brings together a programmable power supply, precision bench multimeter, electronic load and arbitrary waveform generator to create a fully automated measurement platform. By writing custom Python libraries for each instrument and connecting everything over Ethernet, he can run repeatable test routines that validate power-supply accuracy, characterise voltage drop, measure cable resistance, simulate real-world loads and even explore signal injection and ripple analysis.&lt;/p&gt;
&lt;p&gt;Alongside the automation upgrades, he also installs a dual-arm fume extraction system, expands his collection of test leads, and adds a non-invasive AC/DC current probe that makes current measurements easier without breaking into a circuit. If you&amp;#39;ve ever wanted to move beyond manual measurements and build a smarter, data-driven electronics bench, this project offers a practical look at what&amp;#39;s possible with a handful of programmable instruments and some carefully written code - you can find links to the Python libraries, and supporting resources below along with the episode!&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amb0"&gt;Time to Work Smarter, not Harder!&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://players.brightcove.net/1362235890001/default_default/index.html?videoId=6402412263112"&gt;players.brightcove.net/.../index.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Following the previous workbench upgrade, which focused on organisation, infrastructure, and day-to-day usability, Clem&amp;#39;s latest round of improvements takes a different direction. This time, the emphasis is on automation, repeatability, and measurement accuracy. By combining programmable test equipment with custom software, the bench evolves from a collection of instruments into a coordinated testing environment capable of generating reliable data with minimal manual intervention.&lt;/p&gt;
&lt;p&gt;As with previous upgrades, the equipment was selected by Clem according to his own requirements. The goal was not simply to add more instruments, but to create a system that could answer practical engineering questions automatically, repeatedly, and with greater precision than would be possible through manual measurements alone.&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/4555.frame_5F00_000066.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc1"&gt;A Better Approach to Fume Extraction&lt;/h2&gt;
&lt;p&gt;One of the more visible upgrades came directly from community feedback. During the previous workbench tour, viewers questioned whether the existing DIY extraction setup provided adequate protection for prolonged soldering sessions. Rather than making incremental changes, Clem decided to install a dedicated dual-arm fume extraction unit. The system incorporates pre-filtration, HEPA filtration, and activated carbon filtering within a self-contained package.&lt;/p&gt;
&lt;p&gt;The upgrade complements the original extraction arrangement rather than replacing it entirely. Both systems have been integrated into the existing remote-controlled switching setup, allowing them to operate simultaneously whenever soldering work begins.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;The community&amp;#39;s nagging got me to upgrade the fume extraction system.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In use, the dual extraction arms provide considerably more flexibility than the previous fixed arrangement, allowing airflow to be positioned directly where fumes are generated. While the original extraction system continues to contribute overall airflow, the dedicated extractor offers the advantage of being portable and self-contained, making it useful in situations where permanent ducting is impractical. After testing both approaches side-by-side, Clem concluded that the dedicated extractor provided superior filtration and positioning flexibility while still integrating neatly into the existing workshop infrastructure.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/1016.frame_5F00_000090.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc2"&gt;Expanding the Power and Measurement Stack&lt;/h2&gt;
&lt;p&gt;Although Clem remains a fan of his existing bench power supply, particularly because of its simplicity and speed of use, the new upgrade focuses on capabilities beyond simply delivering power. The centrepiece of the new measurement stack is a programmable four-output bench supply featuring two 0-30 V, 5 A channels alongside a dedicated low-voltage precision channel and an independently controlled USB output. The additional channels dramatically increase flexibility when powering more complex projects.&lt;/p&gt;
&lt;p&gt;The power supply is supported by a programmable bench digital multimeter, a programmable DC electronic load, and an arbitrary waveform generator. Together they create a complete measurement platform capable of sourcing power, applying controlled loads, performing precision measurements, and generating test signals.&lt;/p&gt;
&lt;p&gt;The installed equipment includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MP711001 programmable four-output power supply&lt;/li&gt;
&lt;li&gt;MP730027 bench digital multimeter&lt;/li&gt;
&lt;li&gt;MP710771 programmable DC electronic load&lt;/li&gt;
&lt;li&gt;MP750513 arbitrary waveform generator&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All instruments support remote connectivity via Ethernet, USB, and even RS232, allowing them to be integrated into automated workflows rather than operated exclusively through their front panels.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I&amp;#39;ve got a serious new bench upgrade.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;One detail Clem found particularly useful is that the bench multimeter can act as a trusted measurement reference rather than relying solely on values reported internally by the power supply.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I can have a reliable voltage and current measurement over this precision instrument and don&amp;#39;t have to rely on the output that the power supply tells me it does.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This allows the instruments to effectively validate one another and provides a higher level of confidence when collecting measurement data.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000125.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc3"&gt;Why Add a Programmable DC Load?&lt;/h2&gt;
&lt;p&gt;For many electronics projects, power consumption testing often starts with a collection of power resistors. While effective, resistors provide only a single fixed load characteristic. The programmable electronic load removes these limitations.&lt;/p&gt;
&lt;p&gt;In addition to conventional constant-current and constant-voltage operation, the instrument supports constant-power and constant-resistance modes. More importantly, it also provides dynamic versions of those operating modes. This allows entire load profiles to be generated automatically, enabling simulation of changing operating conditions that would be difficult to reproduce manually.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;These modes don&amp;#39;t end with constant ones. They are also dynamic ones.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The unit also includes battery testing functionality and remote sense inputs, providing significantly more capability than a collection of passive load resistors ever could. For engineers developing motor controllers, battery-powered electronics, or power conversion systems, the ability to simulate loads that are not physically present becomes particularly valuable.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I don&amp;#39;t have to guess anymore how my things will perform. I can already know before I even buy the parts.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="mcetoc_1jupg8sau0"&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000274.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1jun99amc4"&gt;Measurement Capabilities Created by Combining the Instruments&lt;/h2&gt;
&lt;p&gt;The real strength of the setup emerges when all four instruments operate together. Rather than performing isolated measurements, Clem can now build repeatable test scenarios that coordinate the power supply, multimeter, electronic load, and waveform generator simultaneously.&lt;/p&gt;
&lt;p&gt;The automated environment supports:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Voltage accuracy verification between power supply output and precision DMM measurements&lt;/li&gt;
&lt;li&gt;Load regulation testing across multiple voltage rails&lt;/li&gt;
&lt;li&gt;Power-delivery characterisation under varying current demands&lt;/li&gt;
&lt;li&gt;Cable resistance measurement using controlled voltage-drop testing&lt;/li&gt;
&lt;li&gt;Contact resistance identification&lt;/li&gt;
&lt;li&gt;Error mapping across operating ranges&lt;/li&gt;
&lt;li&gt;Signal injection and disturbance testing&lt;/li&gt;
&lt;li&gt;Dynamic load simulation&lt;/li&gt;
&lt;li&gt;Filter and ripple analysis&lt;/li&gt;
&lt;li&gt;Battery and motor behaviour emulation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One particularly useful capability involves measuring voltage drops through cables and connectors and deriving the associated resistance automatically. The software evaluates the relationship between load current and voltage drop to estimate the combined resistance of wiring and connections.&lt;/p&gt;
&lt;p&gt;Within the test framework, the calculation is performed directly from sweep data:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;r_cable = (d1 - d0) / 1000 / (i1 - i0)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That simple calculation transforms a series of load measurements into a quantified resistance value, making it easy to compare wiring arrangements and identify poor connections.&lt;/p&gt;
&lt;h2 id="mcetoc_1jupg9v7v1"&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000355.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1jun99amc5"&gt;Automating Everything with Python and&amp;nbsp;A Unified Lab API and Demonstration Framework&lt;/h2&gt;
&lt;p&gt;Although all of the instruments include their own interfaces and software, Clem quickly realised that remembering the behaviour of several unrelated front-panel interfaces was not the most productive way to work.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I&amp;#39;d better use them programmatically over the network and have them do my bidding just via some code.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The solution was to create a collection of Python libraries that expose a consistent programming interface across all of the devices.&lt;/p&gt;
&lt;p&gt;The project ultimately became more involved than expected.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;There were some quirks with some of the devices, especially the load gave me a difficult time.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While the digital multimeter proved relatively straightforward to integrate, other instruments required additional investigation before stable communication could be achieved. The resulting drivers focus on reliability and predictable operation. Each device is abstracted behind its own class, providing a clean interface for controlling power supplies, multimeters, electronic loads, and waveform generators.&lt;/p&gt;
&lt;p&gt;The codebase even includes a dedicated diagnostic utility for investigating SCPI communications with the arbitrary waveform generator. This tool systematically tests alternative command variations when communicating with the instrument, helping identify protocol differences and implementation quirks that often appear when automating laboratory equipment. After developing individual device drivers, Clem wrapped everything inside a higher-level laboratory API.&lt;/p&gt;
&lt;p&gt;The demonstration application performs several automated validation exercises that would be time-consuming to execute manually.&lt;/p&gt;
&lt;p&gt;The workflow includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No-load accuracy validation at multiple output voltages&lt;/li&gt;
&lt;li&gt;Voltage-drop characterisation under increasing load current&lt;/li&gt;
&lt;li&gt;Power-supply regulation testing across 3.3 V, 5 V and 12 V rails&lt;/li&gt;
&lt;li&gt;Constant-resistance load testing&lt;/li&gt;
&lt;li&gt;Arbitrary waveform generator control and activation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The script automatically applies voltages, changes load conditions, waits for outputs to settle, collects readings from multiple instruments, calculates deviations, and records the results. Rather than simply taking a single measurement, the framework sweeps through operating ranges to build a much more complete understanding of system behaviour.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I can automate that and just go through all the possible scenarios and then see how much the error in measurement is.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Because every instrument is connected via Ethernet, the measurements can be run from anywhere on the network.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;For sensitive measurements I can even leave the room and run them from outside and still look at all the data in real time.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This becomes useful whenever environmental effects could disturb measurements or when long-duration tests need to be left unattended.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000293.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc7"&gt;Expanding into Signal Integrity and Ripple Analysis and&amp;nbsp;Non-Invasive Current Measurement&lt;/h2&gt;
&lt;p&gt;The arbitrary waveform generator opens the door to testing scenarios beyond simple DC measurements. Although Clem described the waveform generator library as still being a work in progress, the intent is already clear. The instrument can inject controlled signals into circuits and, when combined with the current probe and oscilloscope, create a surprisingly capable signal analysis platform.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;We even can see how much of ripple that we could inject into a power path would at the end get filtered out.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This allows evaluation of filters, power-distribution networks, and noise-sensitive circuits across different frequencies, voltages, and load conditions.&lt;/p&gt;
&lt;p&gt;It also points towards future development of the software platform as additional instrumentation becomes integrated into the automated environment. Another small but surprisingly useful addition is an active AC/DC current probe.&lt;/p&gt;
&lt;p&gt;Unlike traditional current measurements that require inserting a meter into the circuit, the clamp allows current to be monitored without disconnecting or modifying wiring.&lt;/p&gt;
&lt;p&gt;The probe provides a voltage output proportional to the measured current, making it suitable for direct connection to either a multimeter or an oscilloscope.&lt;/p&gt;
&lt;p&gt;Selectable output scaling allows engineers to trade sensitivity for measurement range, depending on the application.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I don&amp;#39;t have to break up the circuit anymore.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While not intended to replace precision inline measurements, the probe dramatically simplifies troubleshooting and verification tasks where convenience is more important than ultimate accuracy.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000361.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/6685.frame_5F00_000368.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc9"&gt;From Hobby Workbench to Automated Test Environment&lt;/h2&gt;
&lt;p&gt;Viewed individually, none of these upgrades are particularly dramatic. A better extractor, a programmable power supply, an electronic load, a current probe, some test leads, and a few hundred lines of Python code are all commonplace tools. Taken together, however, they fundamentally change how the bench can be used.&lt;/p&gt;
&lt;p&gt;The workbench is no longer simply a place where measurements are taken manually. It has become a programmable measurement platform capable of validating power systems, characterising components, simulating hardware that is not physically available, and performing repeatable tests automatically.&lt;/p&gt;
&lt;p&gt;As Clem summarised after bringing the instruments and software together:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;That&amp;#39;s quite a lot of capability that we just added with a few simple upgrades and a bit of code.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="mcetoc_1jupgfq3q2"&gt;Supporting Links and Files&lt;/h2&gt;
&lt;p&gt;-&amp;nbsp;&amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/m/files/151544"&gt;Episode 725 Resources - Clem&amp;#39;s Workbench Upgrade to Automated Lab with Programmable Instruments and Python&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;h2 id="mcetoc_1jupgl82k3"&gt;Bill of Materials / Parts Used&lt;/h2&gt;
&lt;table class="e14-product-bom-main"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;th&gt;&lt;a id="e14-product-link-00b7f" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3727151,4216058,1651038,4350691,3517219,3490494,3562440,3562438&amp;nsku=52AH6649,79AK9535,80AC8983,none,none,89AH1098,80AC8986,80AC8985&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_BUY_KIT" class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('00b7f'));" data-farnell="3727151,4216058,1651038,4350691,3517219,3490494,3562440,3562438" data-newark="52AH6649,79AK9535,80AC8983,none,none,89AH1098,80AC8986,80AC8985" data-comoverride="" data-cmpoverride="" data-cpc=",,,,,,," data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Kit&lt;/a&gt; &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DC Electronic Load, Multicomp Pro DC Electronic Loads, 300 W, Programmable, 0 V, 150 V, 40 A&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-09169" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3727151&amp;nsku=52AH6649&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('09169'));" data-farnell="3727151" data-newark="52AH6649" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bench Power Supply, USB Power Output, Programmable, 4 Output, 0 V, 32 V, 0 A, 5 A&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-afb2b" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4216058&amp;nsku=79AK9535&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('afb2b'));" data-farnell="4216058" data-newark="79AK9535" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Test Lead Set, Hook Clip, Hook Clip, 60 V, 6 A, Grey, 500 mm&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-02c8b" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1651038&amp;nsku=80AC8983&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('02c8b'));" data-farnell="1651038" data-newark="80AC8983" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Current Probe, BNC Plug, Current Clamp, 65 A, 20 mA, Multimeters &amp;amp; Oscilloscopes&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-a28f7" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4350691&amp;nsku=none&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('a28f7'));" data-farnell="4350691" data-newark="none" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fume Extractor, 320 m&amp;sup3;/h, 240 VAC, 200 W, EU, UK, Dual Channel&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-1083b" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3517219&amp;nsku=none&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('1083b'));" data-farnell="3517219" data-newark="none" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Test Lead Set, Banana Plug Stackable, Alligator Clip, Banana Plug, Hook Clip, 1 kV, 5 A&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-dbed2" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3490494&amp;nsku=89AH1098&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('dbed2'));" data-farnell="3490494" data-newark="89AH1098" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TEST LEAD, RED, 1.524M, 1.2KV, 12A&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-e287f" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3562440&amp;nsku=80AC8986&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('e287f'));" data-farnell="3562440" data-newark="80AC8986" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TEST LEAD, BLK, 1.016M, 1.2KV, 12A&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-86129" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3562438&amp;nsku=80AC8985&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('86129'));" data-farnell="3562438" data-newark="80AC8985" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="xs-hide"&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: ethernet test equipment, power supply accuracy testing, electronics test bench automation, electronic load characterisation, programmable power supply testing, automated electronics measurements, electronics workbench upgrade, SCPI instrument control, voltage drop measurement, programmable DC load projects, cable resistance calculation, non-invasive current measurement, bench digital multimeter setup, python lab automation, friday_release, arbitrary waveform generator applications&lt;/div&gt;
</description></item><item><title>Clem's Workbench Upgrade to Automated Lab with Programmable Instruments and Python</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72089/clem-s-workbench-upgrade-to-automated-lab-with-programmable-instruments-and-python/revision/7</link><pubDate>Thu, 30 Jul 2026 12:54:10 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:24a4dbe8-e5a8-463e-9424-13dc1797f639</guid><dc:creator>cstanton</dc:creator><description>Revision 7 posted to Documents by cstanton on 7/30/2026 12:54:10 PM&lt;br /&gt;
&lt;p&gt;Clem&amp;#39;s latest workbench upgrade brings together a programmable power supply, precision bench multimeter, electronic load and arbitrary waveform generator to create a fully automated measurement platform. By writing custom Python libraries for each instrument and connecting everything over Ethernet, he can run repeatable test routines that validate power-supply accuracy, characterise voltage drop, measure cable resistance, simulate real-world loads and even explore signal injection and ripple analysis.&lt;/p&gt;
&lt;p&gt;Alongside the automation upgrades, he also installs a dual-arm fume extraction system, expands his collection of test leads, and adds a non-invasive AC/DC current probe that makes current measurements easier without breaking into a circuit. If you&amp;#39;ve ever wanted to move beyond manual measurements and build a smarter, data-driven electronics bench, this project offers a practical look at what&amp;#39;s possible with a handful of programmable instruments and some carefully written code - you can find links to the Python libraries, and supporting resources below along with the episode!&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amb0"&gt;Time to Work Smarter, not Harder!&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://players.brightcove.net/1362235890001/default_default/index.html?videoId=6402412263112"&gt;players.brightcove.net/.../index.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Following the previous workbench upgrade, which focused on organisation, infrastructure, and day-to-day usability, Clem&amp;#39;s latest round of improvements takes a different direction. This time, the emphasis is on automation, repeatability, and measurement accuracy. By combining programmable test equipment with custom software, the bench evolves from a collection of instruments into a coordinated testing environment capable of generating reliable data with minimal manual intervention.&lt;/p&gt;
&lt;p&gt;As with previous upgrades, the equipment was selected by Clem according to his own requirements. The goal was not simply to add more instruments, but to create a system that could answer practical engineering questions automatically, repeatedly, and with greater precision than would be possible through manual measurements alone.&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/4555.frame_5F00_000066.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc1"&gt;A Better Approach to Fume Extraction&lt;/h2&gt;
&lt;p&gt;One of the more visible upgrades came directly from community feedback. During the previous workbench tour, viewers questioned whether the existing DIY extraction setup provided adequate protection for prolonged soldering sessions. Rather than making incremental changes, Clem decided to install a dedicated dual-arm fume extraction unit. The system incorporates pre-filtration, HEPA filtration, and activated carbon filtering within a self-contained package.&lt;/p&gt;
&lt;p&gt;The upgrade complements the original extraction arrangement rather than replacing it entirely. Both systems have been integrated into the existing remote-controlled switching setup, allowing them to operate simultaneously whenever soldering work begins.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;The community&amp;#39;s nagging got me to upgrade the fume extraction system.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In use, the dual extraction arms provide considerably more flexibility than the previous fixed arrangement, allowing airflow to be positioned directly where fumes are generated. While the original extraction system continues to contribute overall airflow, the dedicated extractor offers the advantage of being portable and self-contained, making it useful in situations where permanent ducting is impractical. After testing both approaches side-by-side, Clem concluded that the dedicated extractor provided superior filtration and positioning flexibility while still integrating neatly into the existing workshop infrastructure.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/1016.frame_5F00_000090.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc2"&gt;Expanding the Power and Measurement Stack&lt;/h2&gt;
&lt;p&gt;Although Clem remains a fan of his existing bench power supply, particularly because of its simplicity and speed of use, the new upgrade focuses on capabilities beyond simply delivering power. The centrepiece of the new measurement stack is a programmable four-output bench supply featuring two 0-30 V, 5 A channels alongside a dedicated low-voltage precision channel and an independently controlled USB output. The additional channels dramatically increase flexibility when powering more complex projects.&lt;/p&gt;
&lt;p&gt;The power supply is supported by a programmable bench digital multimeter, a programmable DC electronic load, and an arbitrary waveform generator. Together they create a complete measurement platform capable of sourcing power, applying controlled loads, performing precision measurements, and generating test signals.&lt;/p&gt;
&lt;p&gt;The installed equipment includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MP711001 programmable four-output power supply&lt;/li&gt;
&lt;li&gt;MP730027 bench digital multimeter&lt;/li&gt;
&lt;li&gt;MP710771 programmable DC electronic load&lt;/li&gt;
&lt;li&gt;MP750513 arbitrary waveform generator&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All instruments support remote connectivity via Ethernet, USB, and even RS232, allowing them to be integrated into automated workflows rather than operated exclusively through their front panels.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I&amp;#39;ve got a serious new bench upgrade.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;One detail Clem found particularly useful is that the bench multimeter can act as a trusted measurement reference rather than relying solely on values reported internally by the power supply.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I can have a reliable voltage and current measurement over this precision instrument and don&amp;#39;t have to rely on the output that the power supply tells me it does.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This allows the instruments to effectively validate one another and provides a higher level of confidence when collecting measurement data.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000125.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc3"&gt;Why Add a Programmable DC Load?&lt;/h2&gt;
&lt;p&gt;For many electronics projects, power consumption testing often starts with a collection of power resistors. While effective, resistors provide only a single fixed load characteristic. The programmable electronic load removes these limitations.&lt;/p&gt;
&lt;p&gt;In addition to conventional constant-current and constant-voltage operation, the instrument supports constant-power and constant-resistance modes. More importantly, it also provides dynamic versions of those operating modes. This allows entire load profiles to be generated automatically, enabling simulation of changing operating conditions that would be difficult to reproduce manually.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;These modes don&amp;#39;t end with constant ones. They are also dynamic ones.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The unit also includes battery testing functionality and remote sense inputs, providing significantly more capability than a collection of passive load resistors ever could. For engineers developing motor controllers, battery-powered electronics, or power conversion systems, the ability to simulate loads that are not physically present becomes particularly valuable.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I don&amp;#39;t have to guess anymore how my things will perform. I can already know before I even buy the parts.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="mcetoc_1jupg8sau0"&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000274.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1jun99amc4"&gt;Measurement Capabilities Created by Combining the Instruments&lt;/h2&gt;
&lt;p&gt;The real strength of the setup emerges when all four instruments operate together. Rather than performing isolated measurements, Clem can now build repeatable test scenarios that coordinate the power supply, multimeter, electronic load, and waveform generator simultaneously.&lt;/p&gt;
&lt;p&gt;The automated environment supports:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Voltage accuracy verification between power supply output and precision DMM measurements&lt;/li&gt;
&lt;li&gt;Load regulation testing across multiple voltage rails&lt;/li&gt;
&lt;li&gt;Power-delivery characterisation under varying current demands&lt;/li&gt;
&lt;li&gt;Cable resistance measurement using controlled voltage-drop testing&lt;/li&gt;
&lt;li&gt;Contact resistance identification&lt;/li&gt;
&lt;li&gt;Error mapping across operating ranges&lt;/li&gt;
&lt;li&gt;Signal injection and disturbance testing&lt;/li&gt;
&lt;li&gt;Dynamic load simulation&lt;/li&gt;
&lt;li&gt;Filter and ripple analysis&lt;/li&gt;
&lt;li&gt;Battery and motor behaviour emulation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One particularly useful capability involves measuring voltage drops through cables and connectors and deriving the associated resistance automatically. The software evaluates the relationship between load current and voltage drop to estimate the combined resistance of wiring and connections.&lt;/p&gt;
&lt;p&gt;Within the test framework, the calculation is performed directly from sweep data:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;r_cable = (d1 - d0) / 1000 / (i1 - i0)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That simple calculation transforms a series of load measurements into a quantified resistance value, making it easy to compare wiring arrangements and identify poor connections.&lt;/p&gt;
&lt;h2 id="mcetoc_1jupg9v7v1"&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000355.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1jun99amc5"&gt;Automating Everything with Python and&amp;nbsp;A Unified Lab API and Demonstration Framework&lt;/h2&gt;
&lt;p&gt;Although all of the instruments include their own interfaces and software, Clem quickly realised that remembering the behaviour of several unrelated front-panel interfaces was not the most productive way to work.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I&amp;#39;d better use them programmatically over the network and have them do my bidding just via some code.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The solution was to create a collection of Python libraries that expose a consistent programming interface across all of the devices.&lt;/p&gt;
&lt;p&gt;The project ultimately became more involved than expected.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;There were some quirks with some of the devices, especially the load gave me a difficult time.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While the digital multimeter proved relatively straightforward to integrate, other instruments required additional investigation before stable communication could be achieved. The resulting drivers focus on reliability and predictable operation. Each device is abstracted behind its own class, providing a clean interface for controlling power supplies, multimeters, electronic loads, and waveform generators.&lt;/p&gt;
&lt;p&gt;The codebase even includes a dedicated diagnostic utility for investigating SCPI communications with the arbitrary waveform generator. This tool systematically tests alternative command variations when communicating with the instrument, helping identify protocol differences and implementation quirks that often appear when automating laboratory equipment. After developing individual device drivers, Clem wrapped everything inside a higher-level laboratory API.&lt;/p&gt;
&lt;p&gt;The demonstration application performs several automated validation exercises that would be time-consuming to execute manually.&lt;/p&gt;
&lt;p&gt;The workflow includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No-load accuracy validation at multiple output voltages&lt;/li&gt;
&lt;li&gt;Voltage-drop characterisation under increasing load current&lt;/li&gt;
&lt;li&gt;Power-supply regulation testing across 3.3 V, 5 V and 12 V rails&lt;/li&gt;
&lt;li&gt;Constant-resistance load testing&lt;/li&gt;
&lt;li&gt;Arbitrary waveform generator control and activation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The script automatically applies voltages, changes load conditions, waits for outputs to settle, collects readings from multiple instruments, calculates deviations, and records the results. Rather than simply taking a single measurement, the framework sweeps through operating ranges to build a much more complete understanding of system behaviour.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I can automate that and just go through all the possible scenarios and then see how much the error in measurement is.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Because every instrument is connected via Ethernet, the measurements can be run from anywhere on the network.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;For sensitive measurements I can even leave the room and run them from outside and still look at all the data in real time.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This becomes useful whenever environmental effects could disturb measurements or when long-duration tests need to be left unattended.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000293.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc7"&gt;Expanding into Signal Integrity and Ripple Analysis and&amp;nbsp;Non-Invasive Current Measurement&lt;/h2&gt;
&lt;p&gt;The arbitrary waveform generator opens the door to testing scenarios beyond simple DC measurements. Although Clem described the waveform generator library as still being a work in progress, the intent is already clear. The instrument can inject controlled signals into circuits and, when combined with the current probe and oscilloscope, create a surprisingly capable signal analysis platform.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;We even can see how much of ripple that we could inject into a power path would at the end get filtered out.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This allows evaluation of filters, power-distribution networks, and noise-sensitive circuits across different frequencies, voltages, and load conditions.&lt;/p&gt;
&lt;p&gt;It also points towards future development of the software platform as additional instrumentation becomes integrated into the automated environment. Another small but surprisingly useful addition is an active AC/DC current probe.&lt;/p&gt;
&lt;p&gt;Unlike traditional current measurements that require inserting a meter into the circuit, the clamp allows current to be monitored without disconnecting or modifying wiring.&lt;/p&gt;
&lt;p&gt;The probe provides a voltage output proportional to the measured current, making it suitable for direct connection to either a multimeter or an oscilloscope.&lt;/p&gt;
&lt;p&gt;Selectable output scaling allows engineers to trade sensitivity for measurement range, depending on the application.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I don&amp;#39;t have to break up the circuit anymore.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While not intended to replace precision inline measurements, the probe dramatically simplifies troubleshooting and verification tasks where convenience is more important than ultimate accuracy.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000361.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/6685.frame_5F00_000368.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc9"&gt;From Hobby Workbench to Automated Test Environment&lt;/h2&gt;
&lt;p&gt;Viewed individually, none of these upgrades are particularly dramatic. A better extractor, a programmable power supply, an electronic load, a current probe, some test leads, and a few hundred lines of Python code are all commonplace tools. Taken together, however, they fundamentally change how the bench can be used.&lt;/p&gt;
&lt;p&gt;The workbench is no longer simply a place where measurements are taken manually. It has become a programmable measurement platform capable of validating power systems, characterising components, simulating hardware that is not physically available, and performing repeatable tests automatically.&lt;/p&gt;
&lt;p&gt;As Clem summarised after bringing the instruments and software together:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;That&amp;#39;s quite a lot of capability that we just added with a few simple upgrades and a bit of code.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="mcetoc_1jupgfq3q2"&gt;Supporting Links and Files&lt;/h2&gt;
&lt;p&gt;-&amp;nbsp;&amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/m/files/151544"&gt;Episode 725 Resources - Clem&amp;#39;s Workbench Upgrade to Automated Lab with Programmable Instruments and Python&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;h2 id="mcetoc_1jupgl82k3"&gt;Bill of Materials / Parts Used&lt;/h2&gt;
&lt;table class="e14-product-bom-main"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;th&gt;&lt;a id="e14-product-link-60ef8" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3727151,4216058,1651038,4350691,3517219,3490494,3562440,3562438&amp;nsku=52AH6649,79AK9535,80AC8983,none,none,89AH1098,80AC8986,80AC8985&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_BUY_KIT" class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('60ef8'));" data-farnell="3727151,4216058,1651038,4350691,3517219,3490494,3562440,3562438" data-newark="52AH6649,79AK9535,80AC8983,none,none,89AH1098,80AC8986,80AC8985" data-comoverride="" data-cmpoverride="" data-cpc=",,,,,,," data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Kit&lt;/a&gt; &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DC Electronic Load, Multicomp Pro DC Electronic Loads, 300 W, Programmable, 0 V, 150 V, 40 A&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-9c2d9" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3727151&amp;nsku=52AH6649&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('9c2d9'));" data-farnell="3727151" data-newark="52AH6649" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bench Power Supply, USB Power Output, Programmable, 4 Output, 0 V, 32 V, 0 A, 5 A&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-d349c" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4216058&amp;nsku=79AK9535&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('d349c'));" data-farnell="4216058" data-newark="79AK9535" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Test Lead Set, Hook Clip, Hook Clip, 60 V, 6 A, Grey, 500 mm&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-f476e" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1651038&amp;nsku=80AC8983&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('f476e'));" data-farnell="1651038" data-newark="80AC8983" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Current Probe, BNC Plug, Current Clamp, 65 A, 20 mA, Multimeters &amp;amp; Oscilloscopes&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-781b5" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4350691&amp;nsku=none&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('781b5'));" data-farnell="4350691" data-newark="none" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fume Extractor, 320 m&amp;sup3;/h, 240 VAC, 200 W, EU, UK, Dual Channel&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-799dc" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3517219&amp;nsku=none&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('799dc'));" data-farnell="3517219" data-newark="none" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Test Lead Set, Banana Plug Stackable, Alligator Clip, Banana Plug, Hook Clip, 1 kV, 5 A&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-eb016" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3490494&amp;nsku=89AH1098&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('eb016'));" data-farnell="3490494" data-newark="89AH1098" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TEST LEAD, RED, 1.524M, 1.2KV, 12A&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-fb0e3" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3562440&amp;nsku=80AC8986&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('fb0e3'));" data-farnell="3562440" data-newark="80AC8986" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TEST LEAD, BLK, 1.016M, 1.2KV, 12A&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-c41ab" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3562438&amp;nsku=80AC8985&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('c41ab'));" data-farnell="3562438" data-newark="80AC8985" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="xs-hide"&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: ethernet test equipment, power supply accuracy testing, electronics test bench automation, electronic load characterisation, programmable power supply testing, automated electronics measurements, electronics workbench upgrade, SCPI instrument control, voltage drop measurement, programmable DC load projects, cable resistance calculation, non-invasive current measurement, bench digital multimeter setup, python lab automation, friday_release, arbitrary waveform generator applications&lt;/div&gt;
</description></item><item><title>Clem's Workbench Upgrade to Automated Lab with Programmable Instruments and Python</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72089/clem-s-workbench-upgrade-to-automated-lab-with-programmable-instruments-and-python/revision/6</link><pubDate>Thu, 30 Jul 2026 12:44:30 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:24a4dbe8-e5a8-463e-9424-13dc1797f639</guid><dc:creator>cstanton</dc:creator><description>Revision 6 posted to Documents by cstanton on 7/30/2026 12:44:30 PM&lt;br /&gt;
&lt;p&gt;Clem&amp;#39;s latest workbench upgrade brings together a programmable power supply, precision bench multimeter, electronic load and arbitrary waveform generator to create a fully automated measurement platform. By writing custom Python libraries for each instrument and connecting everything over Ethernet, he can run repeatable test routines that validate power-supply accuracy, characterise voltage drop, measure cable resistance, simulate real-world loads and even explore signal injection and ripple analysis. Alongside the automation upgrades, he also installs a dual-arm fume extraction system, expands his collection of test leads, and adds a non-invasive AC/DC current probe that makes current measurements easier without breaking into a circuit. If you&amp;#39;ve ever wanted to move beyond manual measurements and build a smarter, data-driven electronics bench, this project offers a practical look at what&amp;#39;s possible with a handful of programmable instruments and some carefully written code - you can find links to the Python libraries, and supporting resources below along with the episode!&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amb0"&gt;Time to Work Smarter, not Harder!&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://players.brightcove.net/1362235890001/default_default/index.html?videoId=6402412263112"&gt;players.brightcove.net/.../index.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Following the previous workbench upgrade, which focused on organisation, infrastructure, and day-to-day usability, Clem&amp;#39;s latest round of improvements takes a different direction. This time, the emphasis is on automation, repeatability, and measurement accuracy. By combining programmable test equipment with custom software, the bench evolves from a collection of instruments into a coordinated testing environment capable of generating reliable data with minimal manual intervention.&lt;/p&gt;
&lt;p&gt;As with previous upgrades, the equipment was selected by Clem according to his own requirements. The goal was not simply to add more instruments, but to create a system that could answer practical engineering questions automatically, repeatedly, and with greater precision than would be possible through manual measurements alone.&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/4555.frame_5F00_000066.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc1"&gt;A Better Approach to Fume Extraction&lt;/h2&gt;
&lt;p&gt;One of the more visible upgrades came directly from community feedback. During the previous workbench tour, viewers questioned whether the existing DIY extraction setup provided adequate protection for prolonged soldering sessions.&lt;/p&gt;
&lt;p&gt;Rather than making incremental changes, Clem decided to install a dedicated dual-arm fume extraction unit. The system incorporates pre-filtration, HEPA filtration, and activated carbon filtering within a self-contained package.&lt;/p&gt;
&lt;p&gt;The upgrade complements the original extraction arrangement rather than replacing it entirely. Both systems have been integrated into the existing remote-controlled switching setup, allowing them to operate simultaneously whenever soldering work begins.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;The community&amp;#39;s nagging got me to upgrade the fume extraction system.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In use, the dual extraction arms provide considerably more flexibility than the previous fixed arrangement, allowing airflow to be positioned directly where fumes are generated. While the original extraction system continues to contribute overall airflow, the dedicated extractor offers the advantage of being portable and self-contained, making it useful in situations where permanent ducting is impractical.&lt;/p&gt;
&lt;p&gt;After testing both approaches side-by-side, Clem concluded that the dedicated extractor provided superior filtration and positioning flexibility while still integrating neatly into the existing workshop infrastructure.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/1016.frame_5F00_000090.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc2"&gt;Expanding the Power and Measurement Stack&lt;/h2&gt;
&lt;p&gt;Although Clem remains a fan of his existing bench power supply, particularly because of its simplicity and speed of use, the new upgrade focuses on capabilities beyond simply delivering power.&lt;/p&gt;
&lt;p&gt;The centrepiece of the new measurement stack is a programmable four-output bench supply featuring two 0-30 V, 5 A channels alongside a dedicated low-voltage precision channel and an independently controlled USB output. The additional channels dramatically increase flexibility when powering more complex projects.&lt;/p&gt;
&lt;p&gt;The power supply is supported by a programmable bench digital multimeter, a programmable DC electronic load, and an arbitrary waveform generator. Together they create a complete measurement platform capable of sourcing power, applying controlled loads, performing precision measurements, and generating test signals.&lt;/p&gt;
&lt;p&gt;The installed equipment includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MP711001 programmable four-output power supply&lt;/li&gt;
&lt;li&gt;MP730027 bench digital multimeter&lt;/li&gt;
&lt;li&gt;MP710771 programmable DC electronic load&lt;/li&gt;
&lt;li&gt;MP750513 arbitrary waveform generator&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All instruments support remote connectivity via Ethernet, USB, and even RS232, allowing them to be integrated into automated workflows rather than operated exclusively through their front panels.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I&amp;#39;ve got a serious new bench upgrade.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;One detail Clem found particularly useful is that the bench multimeter can act as a trusted measurement reference rather than relying solely on values reported internally by the power supply.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I can have a reliable voltage and current measurement over this precision instrument and don&amp;#39;t have to rely on the output that the power supply tells me it does.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This allows the instruments to effectively validate one another and provides a higher level of confidence when collecting measurement data.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000125.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc3"&gt;Why Add a Programmable DC Load?&lt;/h2&gt;
&lt;p&gt;For many electronics projects, power consumption testing often starts with a collection of power resistors. While effective, resistors provide only a single fixed load characteristic.&lt;/p&gt;
&lt;p&gt;The programmable electronic load removes these limitations.&lt;/p&gt;
&lt;p&gt;In addition to conventional constant-current and constant-voltage operation, the instrument supports constant-power and constant-resistance modes. More importantly, it also provides dynamic versions of those operating modes.&lt;/p&gt;
&lt;p&gt;This allows entire load profiles to be generated automatically, enabling simulation of changing operating conditions that would be difficult to reproduce manually.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;These modes don&amp;#39;t end with constant ones. They are also dynamic ones.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The unit also includes battery testing functionality and remote sense inputs, providing significantly more capability than a collection of passive load resistors ever could.&lt;/p&gt;
&lt;p&gt;For engineers developing motor controllers, battery-powered electronics, or power conversion systems, the ability to simulate loads that are not physically present becomes particularly valuable.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I don&amp;#39;t have to guess anymore how my things will perform. I can already know before I even buy the parts.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="mcetoc_1jupg8sau0"&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000274.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1jun99amc4"&gt;Measurement Capabilities Created by Combining the Instruments&lt;/h2&gt;
&lt;p&gt;The real strength of the setup emerges when all four instruments operate together.&lt;/p&gt;
&lt;p&gt;Rather than performing isolated measurements, Clem can now build repeatable test scenarios that coordinate the power supply, multimeter, electronic load, and waveform generator simultaneously.&lt;/p&gt;
&lt;p&gt;The automated environment supports:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Voltage accuracy verification between power supply output and precision DMM measurements&lt;/li&gt;
&lt;li&gt;Load regulation testing across multiple voltage rails&lt;/li&gt;
&lt;li&gt;Power-delivery characterisation under varying current demands&lt;/li&gt;
&lt;li&gt;Cable resistance measurement using controlled voltage-drop testing&lt;/li&gt;
&lt;li&gt;Contact resistance identification&lt;/li&gt;
&lt;li&gt;Error mapping across operating ranges&lt;/li&gt;
&lt;li&gt;Signal injection and disturbance testing&lt;/li&gt;
&lt;li&gt;Dynamic load simulation&lt;/li&gt;
&lt;li&gt;Filter and ripple analysis&lt;/li&gt;
&lt;li&gt;Battery and motor behaviour emulation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One particularly useful capability involves measuring voltage drops through cables and connectors and deriving the associated resistance automatically.&lt;/p&gt;
&lt;p&gt;The software evaluates the relationship between load current and voltage drop to estimate the combined resistance of wiring and connections.&lt;/p&gt;
&lt;p&gt;Within the test framework, the calculation is performed directly from sweep data:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;r_cable = (d1 - d0) / 1000 / (i1 - i0)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That simple calculation transforms a series of load measurements into a quantified resistance value, making it easy to compare wiring arrangements and identify poor connections.&lt;/p&gt;
&lt;h2 id="mcetoc_1jupg9v7v1"&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000355.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1jun99amc5"&gt;Automating Everything with Python and&amp;nbsp;A Unified Lab API and Demonstration Framework&lt;/h2&gt;
&lt;p&gt;Although all of the instruments include their own interfaces and software, Clem quickly realised that remembering the behaviour of several unrelated front-panel interfaces was not the most productive way to work.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I&amp;#39;d better use them programmatically over the network and have them do my bidding just via some code.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The solution was to create a collection of Python libraries that expose a consistent programming interface across all of the devices.&lt;/p&gt;
&lt;p&gt;The project ultimately became more involved than expected.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;There were some quirks with some of the devices, especially the load gave me a difficult time.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While the digital multimeter proved relatively straightforward to integrate, other instruments required additional investigation before stable communication could be achieved.&lt;/p&gt;
&lt;p&gt;The resulting drivers focus on reliability and predictable operation. Each device is abstracted behind its own class, providing a clean interface for controlling power supplies, multimeters, electronic loads, and waveform generators.&lt;/p&gt;
&lt;p&gt;The codebase even includes a dedicated diagnostic utility for investigating SCPI communications with the arbitrary waveform generator. This tool systematically tests alternative command variations when communicating with the instrument, helping identify protocol differences and implementation quirks that often appear when automating laboratory equipment. After developing individual device drivers, Clem wrapped everything inside a higher-level laboratory API.&lt;/p&gt;
&lt;p&gt;The demonstration application performs several automated validation exercises that would be time-consuming to execute manually.&lt;/p&gt;
&lt;p&gt;The workflow includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No-load accuracy validation at multiple output voltages&lt;/li&gt;
&lt;li&gt;Voltage-drop characterisation under increasing load current&lt;/li&gt;
&lt;li&gt;Power-supply regulation testing across 3.3 V, 5 V and 12 V rails&lt;/li&gt;
&lt;li&gt;Constant-resistance load testing&lt;/li&gt;
&lt;li&gt;Arbitrary waveform generator control and activation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The script automatically applies voltages, changes load conditions, waits for outputs to settle, collects readings from multiple instruments, calculates deviations, and records the results.&lt;/p&gt;
&lt;p&gt;Rather than simply taking a single measurement, the framework sweeps through operating ranges to build a much more complete understanding of system behaviour.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I can automate that and just go through all the possible scenarios and then see how much the error in measurement is.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Because every instrument is connected via Ethernet, the measurements can be run from anywhere on the network.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;For sensitive measurements I can even leave the room and run them from outside and still look at all the data in real time.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This becomes useful whenever environmental effects could disturb measurements or when long-duration tests need to be left unattended.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000293.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc7"&gt;Expanding into Signal Integrity and Ripple Analysis and&amp;nbsp;Non-Invasive Current Measurement&lt;/h2&gt;
&lt;p&gt;The arbitrary waveform generator opens the door to testing scenarios beyond simple DC measurements.&lt;/p&gt;
&lt;p&gt;Although Clem described the waveform generator library as still being a work in progress, the intent is already clear.&lt;/p&gt;
&lt;p&gt;The instrument can inject controlled signals into circuits and, when combined with the current probe and oscilloscope, create a surprisingly capable signal analysis platform.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;We even can see how much of ripple that we could inject into a power path would at the end get filtered out.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This allows evaluation of filters, power-distribution networks, and noise-sensitive circuits across different frequencies, voltages, and load conditions.&lt;/p&gt;
&lt;p&gt;It also points towards future development of the software platform as additional instrumentation becomes integrated into the automated environment. Another small but surprisingly useful addition is an active AC/DC current probe.&lt;/p&gt;
&lt;p&gt;Unlike traditional current measurements that require inserting a meter into the circuit, the clamp allows current to be monitored without disconnecting or modifying wiring.&lt;/p&gt;
&lt;p&gt;The probe provides a voltage output proportional to the measured current, making it suitable for direct connection to either a multimeter or an oscilloscope.&lt;/p&gt;
&lt;p&gt;Selectable output scaling allows engineers to trade sensitivity for measurement range, depending on the application.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I don&amp;#39;t have to break up the circuit anymore.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While not intended to replace precision inline measurements, the probe dramatically simplifies troubleshooting and verification tasks where convenience is more important than ultimate accuracy.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000361.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/6685.frame_5F00_000368.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc9"&gt;From Hobby Workbench to Automated Test Environment&lt;/h2&gt;
&lt;p&gt;Viewed individually, none of these upgrades are particularly dramatic. A better extractor, a programmable power supply, an electronic load, a current probe, some test leads, and a few hundred lines of Python code are all commonplace tools.&lt;/p&gt;
&lt;p&gt;Taken together, however, they fundamentally change how the bench can be used.&lt;/p&gt;
&lt;p&gt;The workbench is no longer simply a place where measurements are taken manually. It has become a programmable measurement platform capable of validating power systems, characterising components, simulating hardware that is not physically available, and performing repeatable tests automatically.&lt;/p&gt;
&lt;p&gt;As Clem summarised after bringing the instruments and software together:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;That&amp;#39;s quite a lot of capability that we just added with a few simple upgrades and a bit of code.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="mcetoc_1jupgfq3q2"&gt;Supporting Links and Files&lt;/h2&gt;
&lt;p&gt;-&amp;nbsp;&amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/m/files/151544"&gt;Episode 725 Resources - Clem&amp;#39;s Workbench Upgrade to Automated Lab with Programmable Instruments and Python&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;h2 id="mcetoc_1jupgl82k3"&gt;Bill of Materials / Parts Used&lt;/h2&gt;
&lt;table class="e14-product-bom-main"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;th&gt;&lt;a id="e14-product-link-bc20f" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3727151,4216058,1651038,4350691,3517219,3490494,3562440,3562438&amp;nsku=52AH6649,79AK9535,80AC8983,none,none,89AH1098,80AC8986,80AC8985&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_BUY_KIT" class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('bc20f'));" data-farnell="3727151,4216058,1651038,4350691,3517219,3490494,3562440,3562438" data-newark="52AH6649,79AK9535,80AC8983,none,none,89AH1098,80AC8986,80AC8985" data-comoverride="" data-cmpoverride="" data-cpc=",,,,,,," data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Kit&lt;/a&gt; &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DC Electronic Load, Multicomp Pro DC Electronic Loads, 300 W, Programmable, 0 V, 150 V, 40 A&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-e789b" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3727151&amp;nsku=52AH6649&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('e789b'));" data-farnell="3727151" data-newark="52AH6649" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bench Power Supply, USB Power Output, Programmable, 4 Output, 0 V, 32 V, 0 A, 5 A&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-73eec" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4216058&amp;nsku=79AK9535&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('73eec'));" data-farnell="4216058" data-newark="79AK9535" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Test Lead Set, Hook Clip, Hook Clip, 60 V, 6 A, Grey, 500 mm&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-9d324" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1651038&amp;nsku=80AC8983&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('9d324'));" data-farnell="1651038" data-newark="80AC8983" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Current Probe, BNC Plug, Current Clamp, 65 A, 20 mA, Multimeters &amp;amp; Oscilloscopes&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-cc97e" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4350691&amp;nsku=none&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('cc97e'));" data-farnell="4350691" data-newark="none" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fume Extractor, 320 m&amp;sup3;/h, 240 VAC, 200 W, EU, UK, Dual Channel&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-47618" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3517219&amp;nsku=none&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('47618'));" data-farnell="3517219" data-newark="none" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Test Lead Set, Banana Plug Stackable, Alligator Clip, Banana Plug, Hook Clip, 1 kV, 5 A&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-7e49e" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3490494&amp;nsku=89AH1098&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('7e49e'));" data-farnell="3490494" data-newark="89AH1098" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TEST LEAD, RED, 1.524M, 1.2KV, 12A&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-13374" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3562440&amp;nsku=80AC8986&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('13374'));" data-farnell="3562440" data-newark="80AC8986" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TEST LEAD, BLK, 1.016M, 1.2KV, 12A&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-cbc5c" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3562438&amp;nsku=80AC8985&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('cbc5c'));" data-farnell="3562438" data-newark="80AC8985" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="xs-hide"&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: ethernet test equipment, power supply accuracy testing, electronics test bench automation, electronic load characterisation, programmable power supply testing, automated electronics measurements, electronics workbench upgrade, SCPI instrument control, voltage drop measurement, programmable DC load projects, cable resistance calculation, non-invasive current measurement, bench digital multimeter setup, python lab automation, friday_release, arbitrary waveform generator applications&lt;/div&gt;
</description></item><item><title>Clem's Workbench Upgrade to Automated Lab with Programmable Instruments and Python</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72089/clem-s-workbench-upgrade-to-automated-lab-with-programmable-instruments-and-python/revision/5</link><pubDate>Thu, 30 Jul 2026 12:41:28 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:24a4dbe8-e5a8-463e-9424-13dc1797f639</guid><dc:creator>cstanton</dc:creator><description>Revision 5 posted to Documents by cstanton on 7/30/2026 12:41:28 PM&lt;br /&gt;
&lt;p&gt;Clem&amp;#39;s latest workbench upgrade brings together a programmable power supply, precision bench multimeter, electronic load and arbitrary waveform generator to create a fully automated measurement platform. By writing custom Python libraries for each instrument and connecting everything over Ethernet, he can run repeatable test routines that validate power-supply accuracy, characterise voltage drop, measure cable resistance, simulate real-world loads and even explore signal injection and ripple analysis. Alongside the automation upgrades, he also installs a dual-arm fume extraction system, expands his collection of test leads, and adds a non-invasive AC/DC current probe that makes current measurements easier without breaking into a circuit. If you&amp;#39;ve ever wanted to move beyond manual measurements and build a smarter, data-driven electronics bench, this project offers a practical look at what&amp;#39;s possible with a handful of programmable instruments and some carefully written code - you can find links to the Python libraries, and supporting resources below along with the episode!&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amb0"&gt;Time to Work Smarter, not Harder!&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://players.brightcove.net/1362235890001/default_default/index.html?videoId=6402412263112"&gt;players.brightcove.net/.../index.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Following the previous workbench upgrade, which focused on organisation, infrastructure, and day-to-day usability, Clem&amp;#39;s latest round of improvements takes a different direction. This time, the emphasis is on automation, repeatability, and measurement accuracy. By combining programmable test equipment with custom software, the bench evolves from a collection of instruments into a coordinated testing environment capable of generating reliable data with minimal manual intervention.&lt;/p&gt;
&lt;p&gt;As with previous upgrades, the equipment was selected by Clem according to his own requirements. The goal was not simply to add more instruments, but to create a system that could answer practical engineering questions automatically, repeatedly, and with greater precision than would be possible through manual measurements alone.&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/4555.frame_5F00_000066.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc1"&gt;A Better Approach to Fume Extraction&lt;/h2&gt;
&lt;p&gt;One of the more visible upgrades came directly from community feedback. During the previous workbench tour, viewers questioned whether the existing DIY extraction setup provided adequate protection for prolonged soldering sessions.&lt;/p&gt;
&lt;p&gt;Rather than making incremental changes, Clem decided to install a dedicated dual-arm fume extraction unit. The system incorporates pre-filtration, HEPA filtration, and activated carbon filtering within a self-contained package.&lt;/p&gt;
&lt;p&gt;The upgrade complements the original extraction arrangement rather than replacing it entirely. Both systems have been integrated into the existing remote-controlled switching setup, allowing them to operate simultaneously whenever soldering work begins.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;The community&amp;#39;s nagging got me to upgrade the fume extraction system.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In use, the dual extraction arms provide considerably more flexibility than the previous fixed arrangement, allowing airflow to be positioned directly where fumes are generated. While the original extraction system continues to contribute overall airflow, the dedicated extractor offers the advantage of being portable and self-contained, making it useful in situations where permanent ducting is impractical.&lt;/p&gt;
&lt;p&gt;After testing both approaches side-by-side, Clem concluded that the dedicated extractor provided superior filtration and positioning flexibility while still integrating neatly into the existing workshop infrastructure.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/1016.frame_5F00_000090.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc2"&gt;Expanding the Power and Measurement Stack&lt;/h2&gt;
&lt;p&gt;Although Clem remains a fan of his existing bench power supply, particularly because of its simplicity and speed of use, the new upgrade focuses on capabilities beyond simply delivering power.&lt;/p&gt;
&lt;p&gt;The centrepiece of the new measurement stack is a programmable four-output bench supply featuring two 0-30 V, 5 A channels alongside a dedicated low-voltage precision channel and an independently controlled USB output. The additional channels dramatically increase flexibility when powering more complex projects.&lt;/p&gt;
&lt;p&gt;The power supply is supported by a programmable bench digital multimeter, a programmable DC electronic load, and an arbitrary waveform generator. Together they create a complete measurement platform capable of sourcing power, applying controlled loads, performing precision measurements, and generating test signals.&lt;/p&gt;
&lt;p&gt;The installed equipment includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MP711001 programmable four-output power supply&lt;/li&gt;
&lt;li&gt;MP730027 bench digital multimeter&lt;/li&gt;
&lt;li&gt;MP710771 programmable DC electronic load&lt;/li&gt;
&lt;li&gt;MP750513 arbitrary waveform generator&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All instruments support remote connectivity via Ethernet, USB, and even RS232, allowing them to be integrated into automated workflows rather than operated exclusively through their front panels.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I&amp;#39;ve got a serious new bench upgrade.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;One detail Clem found particularly useful is that the bench multimeter can act as a trusted measurement reference rather than relying solely on values reported internally by the power supply.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I can have a reliable voltage and current measurement over this precision instrument and don&amp;#39;t have to rely on the output that the power supply tells me it does.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This allows the instruments to effectively validate one another and provides a higher level of confidence when collecting measurement data.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000125.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc3"&gt;Why Add a Programmable DC Load?&lt;/h2&gt;
&lt;p&gt;For many electronics projects, power consumption testing often starts with a collection of power resistors. While effective, resistors provide only a single fixed load characteristic.&lt;/p&gt;
&lt;p&gt;The programmable electronic load removes these limitations.&lt;/p&gt;
&lt;p&gt;In addition to conventional constant-current and constant-voltage operation, the instrument supports constant-power and constant-resistance modes. More importantly, it also provides dynamic versions of those operating modes.&lt;/p&gt;
&lt;p&gt;This allows entire load profiles to be generated automatically, enabling simulation of changing operating conditions that would be difficult to reproduce manually.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;These modes don&amp;#39;t end with constant ones. They are also dynamic ones.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The unit also includes battery testing functionality and remote sense inputs, providing significantly more capability than a collection of passive load resistors ever could.&lt;/p&gt;
&lt;p&gt;For engineers developing motor controllers, battery-powered electronics, or power conversion systems, the ability to simulate loads that are not physically present becomes particularly valuable.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I don&amp;#39;t have to guess anymore how my things will perform. I can already know before I even buy the parts.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="mcetoc_1jupg8sau0"&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000274.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1jun99amc4"&gt;Measurement Capabilities Created by Combining the Instruments&lt;/h2&gt;
&lt;p&gt;The real strength of the setup emerges when all four instruments operate together.&lt;/p&gt;
&lt;p&gt;Rather than performing isolated measurements, Clem can now build repeatable test scenarios that coordinate the power supply, multimeter, electronic load, and waveform generator simultaneously.&lt;/p&gt;
&lt;p&gt;The automated environment supports:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Voltage accuracy verification between power supply output and precision DMM measurements&lt;/li&gt;
&lt;li&gt;Load regulation testing across multiple voltage rails&lt;/li&gt;
&lt;li&gt;Power-delivery characterisation under varying current demands&lt;/li&gt;
&lt;li&gt;Cable resistance measurement using controlled voltage-drop testing&lt;/li&gt;
&lt;li&gt;Contact resistance identification&lt;/li&gt;
&lt;li&gt;Error mapping across operating ranges&lt;/li&gt;
&lt;li&gt;Signal injection and disturbance testing&lt;/li&gt;
&lt;li&gt;Dynamic load simulation&lt;/li&gt;
&lt;li&gt;Filter and ripple analysis&lt;/li&gt;
&lt;li&gt;Battery and motor behaviour emulation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One particularly useful capability involves measuring voltage drops through cables and connectors and deriving the associated resistance automatically.&lt;/p&gt;
&lt;p&gt;The software evaluates the relationship between load current and voltage drop to estimate the combined resistance of wiring and connections.&lt;/p&gt;
&lt;p&gt;Within the test framework, the calculation is performed directly from sweep data:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;r_cable = (d1 - d0) / 1000 / (i1 - i0)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That simple calculation transforms a series of load measurements into a quantified resistance value, making it easy to compare wiring arrangements and identify poor connections.&lt;/p&gt;
&lt;h2 id="mcetoc_1jupg9v7v1"&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000355.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1jun99amc5"&gt;Automating Everything with Python and&amp;nbsp;A Unified Lab API and Demonstration Framework&lt;/h2&gt;
&lt;p&gt;Although all of the instruments include their own interfaces and software, Clem quickly realised that remembering the behaviour of several unrelated front-panel interfaces was not the most productive way to work.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I&amp;#39;d better use them programmatically over the network and have them do my bidding just via some code.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The solution was to create a collection of Python libraries that expose a consistent programming interface across all of the devices.&lt;/p&gt;
&lt;p&gt;The project ultimately became more involved than expected.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;There were some quirks with some of the devices, especially the load gave me a difficult time.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While the digital multimeter proved relatively straightforward to integrate, other instruments required additional investigation before stable communication could be achieved.&lt;/p&gt;
&lt;p&gt;The resulting drivers focus on reliability and predictable operation. Each device is abstracted behind its own class, providing a clean interface for controlling power supplies, multimeters, electronic loads, and waveform generators.&lt;/p&gt;
&lt;p&gt;The codebase even includes a dedicated diagnostic utility for investigating SCPI communications with the arbitrary waveform generator. This tool systematically tests alternative command variations when communicating with the instrument, helping identify protocol differences and implementation quirks that often appear when automating laboratory equipment. After developing individual device drivers, Clem wrapped everything inside a higher-level laboratory API.&lt;/p&gt;
&lt;p&gt;The demonstration application performs several automated validation exercises that would be time-consuming to execute manually.&lt;/p&gt;
&lt;p&gt;The workflow includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No-load accuracy validation at multiple output voltages&lt;/li&gt;
&lt;li&gt;Voltage-drop characterisation under increasing load current&lt;/li&gt;
&lt;li&gt;Power-supply regulation testing across 3.3 V, 5 V and 12 V rails&lt;/li&gt;
&lt;li&gt;Constant-resistance load testing&lt;/li&gt;
&lt;li&gt;Arbitrary waveform generator control and activation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The script automatically applies voltages, changes load conditions, waits for outputs to settle, collects readings from multiple instruments, calculates deviations, and records the results.&lt;/p&gt;
&lt;p&gt;Rather than simply taking a single measurement, the framework sweeps through operating ranges to build a much more complete understanding of system behaviour.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I can automate that and just go through all the possible scenarios and then see how much the error in measurement is.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Because every instrument is connected via Ethernet, the measurements can be run from anywhere on the network.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;For sensitive measurements I can even leave the room and run them from outside and still look at all the data in real time.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This becomes useful whenever environmental effects could disturb measurements or when long-duration tests need to be left unattended.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000293.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc7"&gt;Expanding into Signal Integrity and Ripple Analysis and&amp;nbsp;Non-Invasive Current Measurement&lt;/h2&gt;
&lt;p&gt;The arbitrary waveform generator opens the door to testing scenarios beyond simple DC measurements.&lt;/p&gt;
&lt;p&gt;Although Clem described the waveform generator library as still being a work in progress, the intent is already clear.&lt;/p&gt;
&lt;p&gt;The instrument can inject controlled signals into circuits and, when combined with the current probe and oscilloscope, create a surprisingly capable signal analysis platform.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;We even can see how much of ripple that we could inject into a power path would at the end get filtered out.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This allows evaluation of filters, power-distribution networks, and noise-sensitive circuits across different frequencies, voltages, and load conditions.&lt;/p&gt;
&lt;p&gt;It also points towards future development of the software platform as additional instrumentation becomes integrated into the automated environment. Another small but surprisingly useful addition is an active AC/DC current probe.&lt;/p&gt;
&lt;p&gt;Unlike traditional current measurements that require inserting a meter into the circuit, the clamp allows current to be monitored without disconnecting or modifying wiring.&lt;/p&gt;
&lt;p&gt;The probe provides a voltage output proportional to the measured current, making it suitable for direct connection to either a multimeter or an oscilloscope.&lt;/p&gt;
&lt;p&gt;Selectable output scaling allows engineers to trade sensitivity for measurement range, depending on the application.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I don&amp;#39;t have to break up the circuit anymore.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While not intended to replace precision inline measurements, the probe dramatically simplifies troubleshooting and verification tasks where convenience is more important than ultimate accuracy.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000361.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/6685.frame_5F00_000368.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc9"&gt;From Hobby Workbench to Automated Test Environment&lt;/h2&gt;
&lt;p&gt;Viewed individually, none of these upgrades are particularly dramatic. A better extractor, a programmable power supply, an electronic load, a current probe, some test leads, and a few hundred lines of Python code are all commonplace tools.&lt;/p&gt;
&lt;p&gt;Taken together, however, they fundamentally change how the bench can be used.&lt;/p&gt;
&lt;p&gt;The workbench is no longer simply a place where measurements are taken manually. It has become a programmable measurement platform capable of validating power systems, characterising components, simulating hardware that is not physically available, and performing repeatable tests automatically.&lt;/p&gt;
&lt;p&gt;As Clem summarised after bringing the instruments and software together:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;That&amp;#39;s quite a lot of capability that we just added with a few simple upgrades and a bit of code.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="mcetoc_1jupgfq3q2"&gt;Supporting Links and Files&lt;/h2&gt;
&lt;p&gt;-&amp;nbsp;&lt;/p&gt;
&lt;h2 id="mcetoc_1jupgl82k3"&gt;Bill of Materials / Parts Used&lt;/h2&gt;
&lt;table class="e14-product-bom-main"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;th&gt;&lt;a id="e14-product-link-26fea" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3727151,4216058,1651038,4350691,3517219,3490494,3562440,3562438&amp;nsku=52AH6649,79AK9535,80AC8983,none,none,89AH1098,80AC8986,80AC8985&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_BUY_KIT" class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('26fea'));" data-farnell="3727151,4216058,1651038,4350691,3517219,3490494,3562440,3562438" data-newark="52AH6649,79AK9535,80AC8983,none,none,89AH1098,80AC8986,80AC8985" data-comoverride="" data-cmpoverride="" data-cpc=",,,,,,," data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Kit&lt;/a&gt; &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DC Electronic Load, Multicomp Pro DC Electronic Loads, 300 W, Programmable, 0 V, 150 V, 40 A&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-307de" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3727151&amp;nsku=52AH6649&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('307de'));" data-farnell="3727151" data-newark="52AH6649" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bench Power Supply, USB Power Output, Programmable, 4 Output, 0 V, 32 V, 0 A, 5 A&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-26514" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4216058&amp;nsku=79AK9535&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('26514'));" data-farnell="4216058" data-newark="79AK9535" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Test Lead Set, Hook Clip, Hook Clip, 60 V, 6 A, Grey, 500 mm&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-f6362" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1651038&amp;nsku=80AC8983&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('f6362'));" data-farnell="1651038" data-newark="80AC8983" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Current Probe, BNC Plug, Current Clamp, 65 A, 20 mA, Multimeters &amp;amp; Oscilloscopes&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-1343c" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4350691&amp;nsku=none&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('1343c'));" data-farnell="4350691" data-newark="none" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fume Extractor, 320 m&amp;sup3;/h, 240 VAC, 200 W, EU, UK, Dual Channel&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-1bf62" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3517219&amp;nsku=none&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('1bf62'));" data-farnell="3517219" data-newark="none" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Test Lead Set, Banana Plug Stackable, Alligator Clip, Banana Plug, Hook Clip, 1 kV, 5 A&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-c5970" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3490494&amp;nsku=89AH1098&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('c5970'));" data-farnell="3490494" data-newark="89AH1098" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TEST LEAD, RED, 1.524M, 1.2KV, 12A&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-91d8b" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3562440&amp;nsku=80AC8986&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('91d8b'));" data-farnell="3562440" data-newark="80AC8986" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TEST LEAD, BLK, 1.016M, 1.2KV, 12A&lt;/td&gt;
&lt;td&gt;multicomp pro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-adb82" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3562438&amp;nsku=80AC8985&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('adb82'));" data-farnell="3562438" data-newark="80AC8985" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="xs-hide"&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: ethernet test equipment, power supply accuracy testing, electronics test bench automation, electronic load characterisation, programmable power supply testing, automated electronics measurements, electronics workbench upgrade, SCPI instrument control, voltage drop measurement, programmable DC load projects, cable resistance calculation, non-invasive current measurement, bench digital multimeter setup, python lab automation, friday_release, arbitrary waveform generator applications&lt;/div&gt;
</description></item><item><title>Clem's Workbench Upgrade to Automated Lab with Programmable Instruments and Python</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72089/clem-s-workbench-upgrade-to-automated-lab-with-programmable-instruments-and-python/revision/4</link><pubDate>Thu, 30 Jul 2026 11:39:44 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:24a4dbe8-e5a8-463e-9424-13dc1797f639</guid><dc:creator>cstanton</dc:creator><description>Revision 4 posted to Documents by cstanton on 7/30/2026 11:39:44 AM&lt;br /&gt;
&lt;p&gt;Clem&amp;#39;s latest workbench upgrade brings together a programmable power supply, precision bench multimeter, electronic load and arbitrary waveform generator to create a fully automated measurement platform. By writing custom Python libraries for each instrument and connecting everything over Ethernet, he can run repeatable test routines that validate power-supply accuracy, characterise voltage drop, measure cable resistance, simulate real-world loads and even explore signal injection and ripple analysis. Alongside the automation upgrades, he also installs a dual-arm fume extraction system, expands his collection of test leads, and adds a non-invasive AC/DC current probe that makes current measurements easier without breaking into a circuit. If you&amp;#39;ve ever wanted to move beyond manual measurements and build a smarter, data-driven electronics bench, this project offers a practical look at what&amp;#39;s possible with a handful of programmable instruments and some carefully written code - you can find links to the Python libraries, and supporting resources below along with the episode!&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amb0"&gt;Time to Work Smarter, not Harder!&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://players.brightcove.net/1362235890001/default_default/index.html?videoId=6402412263112"&gt;players.brightcove.net/.../index.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Following the previous workbench upgrade, which focused on organisation, infrastructure, and day-to-day usability, Clem&amp;#39;s latest round of improvements takes a different direction. This time, the emphasis is on automation, repeatability, and measurement accuracy. By combining programmable test equipment with custom software, the bench evolves from a collection of instruments into a coordinated testing environment capable of generating reliable data with minimal manual intervention.&lt;/p&gt;
&lt;p&gt;As with previous upgrades, the equipment was selected by Clem according to his own requirements. The goal was not simply to add more instruments, but to create a system that could answer practical engineering questions automatically, repeatedly, and with greater precision than would be possible through manual measurements alone.&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc1"&gt;A Better Approach to Fume Extraction&lt;/h2&gt;
&lt;p&gt;One of the more visible upgrades came directly from community feedback. During the previous workbench tour, viewers questioned whether the existing DIY extraction setup provided adequate protection for prolonged soldering sessions.&lt;/p&gt;
&lt;p&gt;Rather than making incremental changes, Clem decided to install a dedicated dual-arm fume extraction unit. The system incorporates pre-filtration, HEPA filtration, and activated carbon filtering within a self-contained package.&lt;/p&gt;
&lt;p&gt;The upgrade complements the original extraction arrangement rather than replacing it entirely. Both systems have been integrated into the existing remote-controlled switching setup, allowing them to operate simultaneously whenever soldering work begins.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;The community&amp;#39;s nagging got me to upgrade the fume extraction system.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In use, the dual extraction arms provide considerably more flexibility than the previous fixed arrangement, allowing airflow to be positioned directly where fumes are generated. While the original extraction system continues to contribute overall airflow, the dedicated extractor offers the advantage of being portable and self-contained, making it useful in situations where permanent ducting is impractical.&lt;/p&gt;
&lt;p&gt;After testing both approaches side-by-side, Clem concluded that the dedicated extractor provided superior filtration and positioning flexibility while still integrating neatly into the existing workshop infrastructure.&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc2"&gt;Expanding the Power and Measurement Stack&lt;/h2&gt;
&lt;p&gt;Although Clem remains a fan of his existing bench power supply, particularly because of its simplicity and speed of use, the new upgrade focuses on capabilities beyond simply delivering power.&lt;/p&gt;
&lt;p&gt;The centrepiece of the new measurement stack is a programmable four-output bench supply featuring two 0-30 V, 5 A channels alongside a dedicated low-voltage precision channel and an independently controlled USB output. The additional channels dramatically increase flexibility when powering more complex projects.&lt;/p&gt;
&lt;p&gt;The power supply is supported by a programmable bench digital multimeter, a programmable DC electronic load, and an arbitrary waveform generator. Together they create a complete measurement platform capable of sourcing power, applying controlled loads, performing precision measurements, and generating test signals.&lt;/p&gt;
&lt;p&gt;The installed equipment includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MP711001 programmable four-output power supply&lt;/li&gt;
&lt;li&gt;MP730027 bench digital multimeter&lt;/li&gt;
&lt;li&gt;MP710771 programmable DC electronic load&lt;/li&gt;
&lt;li&gt;MP750513 arbitrary waveform generator&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All instruments support remote connectivity via Ethernet, USB, and even RS232, allowing them to be integrated into automated workflows rather than operated exclusively through their front panels.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I&amp;#39;ve got a serious new bench upgrade.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;One detail Clem found particularly useful is that the bench multimeter can act as a trusted measurement reference rather than relying solely on values reported internally by the power supply.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I can have a reliable voltage and current measurement over this precision instrument and don&amp;#39;t have to rely on the output that the power supply tells me it does.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This allows the instruments to effectively validate one another and provides a higher level of confidence when collecting measurement data.&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc3"&gt;Why Add a Programmable DC Load?&lt;/h2&gt;
&lt;p&gt;For many electronics projects, power consumption testing often starts with a collection of power resistors. While effective, resistors provide only a single fixed load characteristic.&lt;/p&gt;
&lt;p&gt;The programmable electronic load removes these limitations.&lt;/p&gt;
&lt;p&gt;In addition to conventional constant-current and constant-voltage operation, the instrument supports constant-power and constant-resistance modes. More importantly, it also provides dynamic versions of those operating modes.&lt;/p&gt;
&lt;p&gt;This allows entire load profiles to be generated automatically, enabling simulation of changing operating conditions that would be difficult to reproduce manually.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;These modes don&amp;#39;t end with constant ones. They are also dynamic ones.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The unit also includes battery testing functionality and remote sense inputs, providing significantly more capability than a collection of passive load resistors ever could.&lt;/p&gt;
&lt;p&gt;For engineers developing motor controllers, battery-powered electronics, or power conversion systems, the ability to simulate loads that are not physically present becomes particularly valuable.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I don&amp;#39;t have to guess anymore how my things will perform. I can already know before I even buy the parts.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="mcetoc_1jun99amc4"&gt;Measurement Capabilities Created by Combining the Instruments&lt;/h2&gt;
&lt;p&gt;The real strength of the setup emerges when all four instruments operate together.&lt;/p&gt;
&lt;p&gt;Rather than performing isolated measurements, Clem can now build repeatable test scenarios that coordinate the power supply, multimeter, electronic load, and waveform generator simultaneously.&lt;/p&gt;
&lt;p&gt;The automated environment supports:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Voltage accuracy verification between power supply output and precision DMM measurements&lt;/li&gt;
&lt;li&gt;Load regulation testing across multiple voltage rails&lt;/li&gt;
&lt;li&gt;Power-delivery characterisation under varying current demands&lt;/li&gt;
&lt;li&gt;Cable resistance measurement using controlled voltage-drop testing&lt;/li&gt;
&lt;li&gt;Contact resistance identification&lt;/li&gt;
&lt;li&gt;Error mapping across operating ranges&lt;/li&gt;
&lt;li&gt;Signal injection and disturbance testing&lt;/li&gt;
&lt;li&gt;Dynamic load simulation&lt;/li&gt;
&lt;li&gt;Filter and ripple analysis&lt;/li&gt;
&lt;li&gt;Battery and motor behaviour emulation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One particularly useful capability involves measuring voltage drops through cables and connectors and deriving the associated resistance automatically.&lt;/p&gt;
&lt;p&gt;The software evaluates the relationship between load current and voltage drop to estimate the combined resistance of wiring and connections.&lt;/p&gt;
&lt;p&gt;Within the test framework, the calculation is performed directly from sweep data:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;r_cable = (d1 - d0) / 1000 / (i1 - i0)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That simple calculation transforms a series of load measurements into a quantified resistance value, making it easy to compare wiring arrangements and identify poor connections.&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc5"&gt;Automating Everything with Python&lt;/h2&gt;
&lt;p&gt;Although all of the instruments include their own interfaces and software, Clem quickly realised that remembering the behaviour of several unrelated front-panel interfaces was not the most productive way to work.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I&amp;#39;d better use them programmatically over the network and have them do my bidding just via some code.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The solution was to create a collection of Python libraries that expose a consistent programming interface across all of the devices.&lt;/p&gt;
&lt;p&gt;The project ultimately became more involved than expected.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;There were some quirks with some of the devices, especially the load gave me a difficult time.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While the digital multimeter proved relatively straightforward to integrate, other instruments required additional investigation before stable communication could be achieved.&lt;/p&gt;
&lt;p&gt;The resulting drivers focus on reliability and predictable operation. Each device is abstracted behind its own class, providing a clean interface for controlling power supplies, multimeters, electronic loads, and waveform generators.&lt;/p&gt;
&lt;p&gt;The codebase even includes a dedicated diagnostic utility for investigating SCPI communications with the arbitrary waveform generator. This tool systematically tests alternative command variations when communicating with the instrument, helping identify protocol differences and implementation quirks that often appear when automating laboratory equipment.&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc6"&gt;A Unified Lab API and Demonstration Framework&lt;/h2&gt;
&lt;p&gt;After developing individual device drivers, Clem wrapped everything inside a higher-level laboratory API.&lt;/p&gt;
&lt;p&gt;The demonstration application performs several automated validation exercises that would be time-consuming to execute manually.&lt;/p&gt;
&lt;p&gt;The workflow includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No-load accuracy validation at multiple output voltages&lt;/li&gt;
&lt;li&gt;Voltage-drop characterisation under increasing load current&lt;/li&gt;
&lt;li&gt;Power-supply regulation testing across 3.3 V, 5 V and 12 V rails&lt;/li&gt;
&lt;li&gt;Constant-resistance load testing&lt;/li&gt;
&lt;li&gt;Arbitrary waveform generator control and activation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The script automatically applies voltages, changes load conditions, waits for outputs to settle, collects readings from multiple instruments, calculates deviations, and records the results.&lt;/p&gt;
&lt;p&gt;Rather than simply taking a single measurement, the framework sweeps through operating ranges to build a much more complete understanding of system behaviour.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I can automate that and just go through all the possible scenarios and then see how much the error in measurement is.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Because every instrument is connected via Ethernet, the measurements can be run from anywhere on the network.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;For sensitive measurements I can even leave the room and run them from outside and still look at all the data in real time.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This becomes useful whenever environmental effects could disturb measurements or when long-duration tests need to be left unattended.&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc7"&gt;Expanding into Signal Integrity and Ripple Analysis&lt;/h2&gt;
&lt;p&gt;The arbitrary waveform generator opens the door to testing scenarios beyond simple DC measurements.&lt;/p&gt;
&lt;p&gt;Although Clem described the waveform generator library as still being a work in progress, the intent is already clear.&lt;/p&gt;
&lt;p&gt;The instrument can inject controlled signals into circuits and, when combined with the current probe and oscilloscope, create a surprisingly capable signal analysis platform.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;We even can see how much of ripple that we could inject into a power path would at the end get filtered out.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This allows evaluation of filters, power-distribution networks, and noise-sensitive circuits across different frequencies, voltages, and load conditions.&lt;/p&gt;
&lt;p&gt;It also points towards future development of the software platform as additional instrumentation becomes integrated into the automated environment.&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc8"&gt;Non-Invasive Current Measurement&lt;/h2&gt;
&lt;p&gt;Another small but surprisingly useful addition is an active AC/DC current probe.&lt;/p&gt;
&lt;p&gt;Unlike traditional current measurements that require inserting a meter into the circuit, the clamp allows current to be monitored without disconnecting or modifying wiring.&lt;/p&gt;
&lt;p&gt;The probe provides a voltage output proportional to the measured current, making it suitable for direct connection to either a multimeter or an oscilloscope.&lt;/p&gt;
&lt;p&gt;Selectable output scaling allows engineers to trade sensitivity for measurement range, depending on the application.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I don&amp;#39;t have to break up the circuit anymore.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While not intended to replace precision inline measurements, the probe dramatically simplifies troubleshooting and verification tasks where convenience is more important than ultimate accuracy.&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc9"&gt;From Hobby Workbench to Automated Test Environment&lt;/h2&gt;
&lt;p&gt;Viewed individually, none of these upgrades are particularly dramatic. A better extractor, a programmable power supply, an electronic load, a current probe, some test leads, and a few hundred lines of Python code are all commonplace tools.&lt;/p&gt;
&lt;p&gt;Taken together, however, they fundamentally change how the bench can be used.&lt;/p&gt;
&lt;p&gt;The workbench is no longer simply a place where measurements are taken manually. It has become a programmable measurement platform capable of validating power systems, characterising components, simulating hardware that is not physically available, and performing repeatable tests automatically.&lt;/p&gt;
&lt;p&gt;As Clem summarised after bringing the instruments and software together:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;That&amp;#39;s quite a lot of capability that we just added with a few simple upgrades and a bit of code.&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: ethernet test equipment, power supply accuracy testing, electronics test bench automation, electronic load characterisation, programmable power supply testing, automated electronics measurements, electronics workbench upgrade, SCPI instrument control, voltage drop measurement, programmable DC load projects, cable resistance calculation, non-invasive current measurement, bench digital multimeter setup, python lab automation, friday_release, arbitrary waveform generator applications&lt;/div&gt;
</description></item><item><title>Clem's Workbench Upgrade to Automated Lab with Programmable Instruments and Python</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72089/clem-s-workbench-upgrade-to-automated-lab-with-programmable-instruments-and-python/revision/3</link><pubDate>Thu, 30 Jul 2026 09:31:37 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:24a4dbe8-e5a8-463e-9424-13dc1797f639</guid><dc:creator>cstanton</dc:creator><description>Revision 3 posted to Documents by cstanton on 7/30/2026 9:31:37 AM&lt;br /&gt;
&lt;p&gt;Clem&amp;#39;s latest workbench upgrade brings together a programmable power supply, precision bench multimeter, electronic load and arbitrary waveform generator to create a fully automated measurement platform. By writing custom Python libraries for each instrument and connecting everything over Ethernet, he can run repeatable test routines that validate power-supply accuracy, characterise voltage drop, measure cable resistance, simulate real-world loads and even explore signal injection and ripple analysis. Alongside the automation upgrades, he also installs a dual-arm fume extraction system, expands his collection of test leads, and adds a non-invasive AC/DC current probe that makes current measurements easier without breaking into a circuit. If you&amp;#39;ve ever wanted to move beyond manual measurements and build a smarter, data-driven electronics bench, this project offers a practical look at what&amp;#39;s possible with a handful of programmable instruments and some carefully written code - you can find links to the Python libraries, and supporting resources below along with the episode!&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amb0"&gt;Time to Work Smarter, not Harder!&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://players.brightcove.net/1362235890001/default_default/index.html?videoId=6402412263112"&gt;players.brightcove.net/.../index.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Following the previous workbench upgrade, which focused on organisation, infrastructure, and day-to-day usability, Clem&amp;#39;s latest round of improvements takes a different direction. This time, the emphasis is on automation, repeatability, and measurement accuracy. By combining programmable test equipment with custom software, the bench evolves from a collection of instruments into a coordinated testing environment capable of generating reliable data with minimal manual intervention.&lt;/p&gt;
&lt;p&gt;As with previous upgrades, the equipment was selected by Clem according to his own requirements. The goal was not simply to add more instruments, but to create a system that could answer practical engineering questions automatically, repeatedly, and with greater precision than would be possible through manual measurements alone.&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc1"&gt;A Better Approach to Fume Extraction&lt;/h2&gt;
&lt;p&gt;One of the more visible upgrades came directly from community feedback. During the previous workbench tour, viewers questioned whether the existing DIY extraction setup provided adequate protection for prolonged soldering sessions.&lt;/p&gt;
&lt;p&gt;Rather than making incremental changes, Clem decided to install a dedicated dual-arm fume extraction unit. The system incorporates pre-filtration, HEPA filtration, and activated carbon filtering within a self-contained package.&lt;/p&gt;
&lt;p&gt;The upgrade complements the original extraction arrangement rather than replacing it entirely. Both systems have been integrated into the existing remote-controlled switching setup, allowing them to operate simultaneously whenever soldering work begins.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;The community&amp;#39;s nagging got me to upgrade the fume extraction system.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In use, the dual extraction arms provide considerably more flexibility than the previous fixed arrangement, allowing airflow to be positioned directly where fumes are generated. While the original extraction system continues to contribute overall airflow, the dedicated extractor offers the advantage of being portable and self-contained, making it useful in situations where permanent ducting is impractical.&lt;/p&gt;
&lt;p&gt;After testing both approaches side-by-side, Clem concluded that the dedicated extractor provided superior filtration and positioning flexibility while still integrating neatly into the existing workshop infrastructure.&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc2"&gt;Expanding the Power and Measurement Stack&lt;/h2&gt;
&lt;p&gt;Although Clem remains a fan of his existing bench power supply, particularly because of its simplicity and speed of use, the new upgrade focuses on capabilities beyond simply delivering power.&lt;/p&gt;
&lt;p&gt;The centrepiece of the new measurement stack is a programmable four-output bench supply featuring two 0-30 V, 5 A channels alongside a dedicated low-voltage precision channel and an independently controlled USB output. The additional channels dramatically increase flexibility when powering more complex projects.&lt;/p&gt;
&lt;p&gt;The power supply is supported by a programmable bench digital multimeter, a programmable DC electronic load, and an arbitrary waveform generator. Together they create a complete measurement platform capable of sourcing power, applying controlled loads, performing precision measurements, and generating test signals.&lt;/p&gt;
&lt;p&gt;The installed equipment includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MP711001 programmable four-output power supply&lt;/li&gt;
&lt;li&gt;MP730027 bench digital multimeter&lt;/li&gt;
&lt;li&gt;MP710771 programmable DC electronic load&lt;/li&gt;
&lt;li&gt;MP750513 arbitrary waveform generator&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All instruments support remote connectivity via Ethernet, USB, and even RS232, allowing them to be integrated into automated workflows rather than operated exclusively through their front panels.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I&amp;#39;ve got a serious new bench upgrade.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;One detail Clem found particularly useful is that the bench multimeter can act as a trusted measurement reference rather than relying solely on values reported internally by the power supply.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I can have a reliable voltage and current measurement over this precision instrument and don&amp;#39;t have to rely on the output that the power supply tells me it does.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This allows the instruments to effectively validate one another and provides a higher level of confidence when collecting measurement data.&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc3"&gt;Why Add a Programmable DC Load?&lt;/h2&gt;
&lt;p&gt;For many electronics projects, power consumption testing often starts with a collection of power resistors. While effective, resistors provide only a single fixed load characteristic.&lt;/p&gt;
&lt;p&gt;The programmable electronic load removes these limitations.&lt;/p&gt;
&lt;p&gt;In addition to conventional constant-current and constant-voltage operation, the instrument supports constant-power and constant-resistance modes. More importantly, it also provides dynamic versions of those operating modes.&lt;/p&gt;
&lt;p&gt;This allows entire load profiles to be generated automatically, enabling simulation of changing operating conditions that would be difficult to reproduce manually.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;These modes don&amp;#39;t end with constant ones. They are also dynamic ones.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The unit also includes battery testing functionality and remote sense inputs, providing significantly more capability than a collection of passive load resistors ever could.&lt;/p&gt;
&lt;p&gt;For engineers developing motor controllers, battery-powered electronics, or power conversion systems, the ability to simulate loads that are not physically present becomes particularly valuable.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I don&amp;#39;t have to guess anymore how my things will perform. I can already know before I even buy the parts.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="mcetoc_1jun99amc4"&gt;Measurement Capabilities Created by Combining the Instruments&lt;/h2&gt;
&lt;p&gt;The real strength of the setup emerges when all four instruments operate together.&lt;/p&gt;
&lt;p&gt;Rather than performing isolated measurements, Clem can now build repeatable test scenarios that coordinate the power supply, multimeter, electronic load, and waveform generator simultaneously.&lt;/p&gt;
&lt;p&gt;The automated environment supports:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Voltage accuracy verification between power supply output and precision DMM measurements&lt;/li&gt;
&lt;li&gt;Load regulation testing across multiple voltage rails&lt;/li&gt;
&lt;li&gt;Power-delivery characterisation under varying current demands&lt;/li&gt;
&lt;li&gt;Cable resistance measurement using controlled voltage-drop testing&lt;/li&gt;
&lt;li&gt;Contact resistance identification&lt;/li&gt;
&lt;li&gt;Error mapping across operating ranges&lt;/li&gt;
&lt;li&gt;Signal injection and disturbance testing&lt;/li&gt;
&lt;li&gt;Dynamic load simulation&lt;/li&gt;
&lt;li&gt;Filter and ripple analysis&lt;/li&gt;
&lt;li&gt;Battery and motor behaviour emulation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One particularly useful capability involves measuring voltage drops through cables and connectors and deriving the associated resistance automatically.&lt;/p&gt;
&lt;p&gt;The software evaluates the relationship between load current and voltage drop to estimate the combined resistance of wiring and connections.&lt;/p&gt;
&lt;p&gt;Within the test framework, the calculation is performed directly from sweep data:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;r_cable = (d1 - d0) / 1000 / (i1 - i0)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That simple calculation transforms a series of load measurements into a quantified resistance value, making it easy to compare wiring arrangements and identify poor connections.&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc5"&gt;Automating Everything with Python&lt;/h2&gt;
&lt;p&gt;Although all of the instruments include their own interfaces and software, Clem quickly realised that remembering the behaviour of several unrelated front-panel interfaces was not the most productive way to work.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I&amp;#39;d better use them programmatically over the network and have them do my bidding just via some code.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The solution was to create a collection of Python libraries that expose a consistent programming interface across all of the devices.&lt;/p&gt;
&lt;p&gt;The project ultimately became more involved than expected.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;There were some quirks with some of the devices, especially the load gave me a difficult time.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While the digital multimeter proved relatively straightforward to integrate, other instruments required additional investigation before stable communication could be achieved.&lt;/p&gt;
&lt;p&gt;The resulting drivers focus on reliability and predictable operation. Each device is abstracted behind its own class, providing a clean interface for controlling power supplies, multimeters, electronic loads, and waveform generators.&lt;/p&gt;
&lt;p&gt;The codebase even includes a dedicated diagnostic utility for investigating SCPI communications with the arbitrary waveform generator. This tool systematically tests alternative command variations when communicating with the instrument, helping identify protocol differences and implementation quirks that often appear when automating laboratory equipment.&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc6"&gt;A Unified Lab API and Demonstration Framework&lt;/h2&gt;
&lt;p&gt;After developing individual device drivers, Clem wrapped everything inside a higher-level laboratory API.&lt;/p&gt;
&lt;p&gt;The demonstration application performs several automated validation exercises that would be time-consuming to execute manually.&lt;/p&gt;
&lt;p&gt;The workflow includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No-load accuracy validation at multiple output voltages&lt;/li&gt;
&lt;li&gt;Voltage-drop characterisation under increasing load current&lt;/li&gt;
&lt;li&gt;Power-supply regulation testing across 3.3 V, 5 V and 12 V rails&lt;/li&gt;
&lt;li&gt;Constant-resistance load testing&lt;/li&gt;
&lt;li&gt;Arbitrary waveform generator control and activation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The script automatically applies voltages, changes load conditions, waits for outputs to settle, collects readings from multiple instruments, calculates deviations, and records the results.&lt;/p&gt;
&lt;p&gt;Rather than simply taking a single measurement, the framework sweeps through operating ranges to build a much more complete understanding of system behaviour.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I can automate that and just go through all the possible scenarios and then see how much the error in measurement is.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Because every instrument is connected via Ethernet, the measurements can be run from anywhere on the network.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;For sensitive measurements I can even leave the room and run them from outside and still look at all the data in real time.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This becomes useful whenever environmental effects could disturb measurements or when long-duration tests need to be left unattended.&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc7"&gt;Expanding into Signal Integrity and Ripple Analysis&lt;/h2&gt;
&lt;p&gt;The arbitrary waveform generator opens the door to testing scenarios beyond simple DC measurements.&lt;/p&gt;
&lt;p&gt;Although Clem described the waveform generator library as still being a work in progress, the intent is already clear.&lt;/p&gt;
&lt;p&gt;The instrument can inject controlled signals into circuits and, when combined with the current probe and oscilloscope, create a surprisingly capable signal analysis platform.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;We even can see how much of ripple that we could inject into a power path would at the end get filtered out.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This allows evaluation of filters, power-distribution networks, and noise-sensitive circuits across different frequencies, voltages, and load conditions.&lt;/p&gt;
&lt;p&gt;It also points towards future development of the software platform as additional instrumentation becomes integrated into the automated environment.&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc8"&gt;Non-Invasive Current Measurement&lt;/h2&gt;
&lt;p&gt;Another small but surprisingly useful addition is an active AC/DC current probe.&lt;/p&gt;
&lt;p&gt;Unlike traditional current measurements that require inserting a meter into the circuit, the clamp allows current to be monitored without disconnecting or modifying wiring.&lt;/p&gt;
&lt;p&gt;The probe provides a voltage output proportional to the measured current, making it suitable for direct connection to either a multimeter or an oscilloscope.&lt;/p&gt;
&lt;p&gt;Selectable output scaling allows engineers to trade sensitivity for measurement range, depending on the application.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I don&amp;#39;t have to break up the circuit anymore.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While not intended to replace precision inline measurements, the probe dramatically simplifies troubleshooting and verification tasks where convenience is more important than ultimate accuracy.&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc9"&gt;From Hobby Workbench to Automated Test Environment&lt;/h2&gt;
&lt;p&gt;Viewed individually, none of these upgrades are particularly dramatic. A better extractor, a programmable power supply, an electronic load, a current probe, some test leads, and a few hundred lines of Python code are all commonplace tools.&lt;/p&gt;
&lt;p&gt;Taken together, however, they fundamentally change how the bench can be used.&lt;/p&gt;
&lt;p&gt;The workbench is no longer simply a place where measurements are taken manually. It has become a programmable measurement platform capable of validating power systems, characterising components, simulating hardware that is not physically available, and performing repeatable tests automatically.&lt;/p&gt;
&lt;p&gt;As Clem summarised after bringing the instruments and software together:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;That&amp;#39;s quite a lot of capability that we just added with a few simple upgrades and a bit of code.&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Clem's Workbench Upgrade to Automated Lab with Programmable Instruments and Python</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72089/clem-s-workbench-upgrade-to-automated-lab-with-programmable-instruments-and-python/revision/2</link><pubDate>Wed, 29 Jul 2026 16:01:01 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:24a4dbe8-e5a8-463e-9424-13dc1797f639</guid><dc:creator>cstanton</dc:creator><description>Revision 2 posted to Documents by cstanton on 7/29/2026 4:01:01 PM&lt;br /&gt;
&lt;p&gt;Clem&amp;#39;s latest workbench upgrade brings together a programmable power supply, precision bench multimeter, electronic load and arbitrary waveform generator to create a fully automated measurement platform. By writing custom Python libraries for each instrument and connecting everything over Ethernet, he can run repeatable test routines that validate power-supply accuracy, characterise voltage drop, measure cable resistance, simulate real-world loads and even explore signal injection and ripple analysis. Alongside the automation upgrades, he also installs a dual-arm fume extraction system, expands his collection of test leads, and adds a non-invasive AC/DC current probe that makes current measurements easier without breaking into a circuit. If you&amp;#39;ve ever wanted to move beyond manual measurements and build a smarter, data-driven electronics bench, this project offers a practical look at what&amp;#39;s possible with a handful of programmable instruments and some carefully written code - you can find links to the Python libraries, and supporting resources below along with the episode!&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amb0"&gt;Time to Work Smarter, not Harder!&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://community.element14.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-04-35/Clems-Workbench-Upgrade-to-Automated-Lab-with-Programmable-Instruments-and-Python.mp4"&gt;community.element14.com/.../Clems-Workbench-Upgrade-to-Automated-Lab-with-Programmable-Instruments-and-Python.mp4&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Following the previous workbench upgrade, which focused on organisation, infrastructure, and day-to-day usability, Clem&amp;#39;s latest round of improvements takes a different direction. This time, the emphasis is on automation, repeatability, and measurement accuracy. By combining programmable test equipment with custom software, the bench evolves from a collection of instruments into a coordinated testing environment capable of generating reliable data with minimal manual intervention.&lt;/p&gt;
&lt;p&gt;As with previous upgrades, the equipment was selected by Clem according to his own requirements. The goal was not simply to add more instruments, but to create a system that could answer practical engineering questions automatically, repeatedly, and with greater precision than would be possible through manual measurements alone.&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc1"&gt;A Better Approach to Fume Extraction&lt;/h2&gt;
&lt;p&gt;One of the more visible upgrades came directly from community feedback. During the previous workbench tour, viewers questioned whether the existing DIY extraction setup provided adequate protection for prolonged soldering sessions.&lt;/p&gt;
&lt;p&gt;Rather than making incremental changes, Clem decided to install a dedicated dual-arm fume extraction unit. The system incorporates pre-filtration, HEPA filtration, and activated carbon filtering within a self-contained package.&lt;/p&gt;
&lt;p&gt;The upgrade complements the original extraction arrangement rather than replacing it entirely. Both systems have been integrated into the existing remote-controlled switching setup, allowing them to operate simultaneously whenever soldering work begins.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;The community&amp;#39;s nagging got me to upgrade the fume extraction system.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In use, the dual extraction arms provide considerably more flexibility than the previous fixed arrangement, allowing airflow to be positioned directly where fumes are generated. While the original extraction system continues to contribute overall airflow, the dedicated extractor offers the advantage of being portable and self-contained, making it useful in situations where permanent ducting is impractical.&lt;/p&gt;
&lt;p&gt;After testing both approaches side-by-side, Clem concluded that the dedicated extractor provided superior filtration and positioning flexibility while still integrating neatly into the existing workshop infrastructure.&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc2"&gt;Expanding the Power and Measurement Stack&lt;/h2&gt;
&lt;p&gt;Although Clem remains a fan of his existing bench power supply, particularly because of its simplicity and speed of use, the new upgrade focuses on capabilities beyond simply delivering power.&lt;/p&gt;
&lt;p&gt;The centrepiece of the new measurement stack is a programmable four-output bench supply featuring two 0-30 V, 5 A channels alongside a dedicated low-voltage precision channel and an independently controlled USB output. The additional channels dramatically increase flexibility when powering more complex projects.&lt;/p&gt;
&lt;p&gt;The power supply is supported by a programmable bench digital multimeter, a programmable DC electronic load, and an arbitrary waveform generator. Together they create a complete measurement platform capable of sourcing power, applying controlled loads, performing precision measurements, and generating test signals.&lt;/p&gt;
&lt;p&gt;The installed equipment includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MP711001 programmable four-output power supply&lt;/li&gt;
&lt;li&gt;MP730027 bench digital multimeter&lt;/li&gt;
&lt;li&gt;MP710771 programmable DC electronic load&lt;/li&gt;
&lt;li&gt;MP750513 arbitrary waveform generator&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All instruments support remote connectivity via Ethernet, USB, and even RS232, allowing them to be integrated into automated workflows rather than operated exclusively through their front panels.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I&amp;#39;ve got a serious new bench upgrade.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;One detail Clem found particularly useful is that the bench multimeter can act as a trusted measurement reference rather than relying solely on values reported internally by the power supply.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I can have a reliable voltage and current measurement over this precision instrument and don&amp;#39;t have to rely on the output that the power supply tells me it does.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This allows the instruments to effectively validate one another and provides a higher level of confidence when collecting measurement data.&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc3"&gt;Why Add a Programmable DC Load?&lt;/h2&gt;
&lt;p&gt;For many electronics projects, power consumption testing often starts with a collection of power resistors. While effective, resistors provide only a single fixed load characteristic.&lt;/p&gt;
&lt;p&gt;The programmable electronic load removes these limitations.&lt;/p&gt;
&lt;p&gt;In addition to conventional constant-current and constant-voltage operation, the instrument supports constant-power and constant-resistance modes. More importantly, it also provides dynamic versions of those operating modes.&lt;/p&gt;
&lt;p&gt;This allows entire load profiles to be generated automatically, enabling simulation of changing operating conditions that would be difficult to reproduce manually.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;These modes don&amp;#39;t end with constant ones. They are also dynamic ones.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The unit also includes battery testing functionality and remote sense inputs, providing significantly more capability than a collection of passive load resistors ever could.&lt;/p&gt;
&lt;p&gt;For engineers developing motor controllers, battery-powered electronics, or power conversion systems, the ability to simulate loads that are not physically present becomes particularly valuable.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I don&amp;#39;t have to guess anymore how my things will perform. I can already know before I even buy the parts.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="mcetoc_1jun99amc4"&gt;Measurement Capabilities Created by Combining the Instruments&lt;/h2&gt;
&lt;p&gt;The real strength of the setup emerges when all four instruments operate together.&lt;/p&gt;
&lt;p&gt;Rather than performing isolated measurements, Clem can now build repeatable test scenarios that coordinate the power supply, multimeter, electronic load, and waveform generator simultaneously.&lt;/p&gt;
&lt;p&gt;The automated environment supports:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Voltage accuracy verification between power supply output and precision DMM measurements&lt;/li&gt;
&lt;li&gt;Load regulation testing across multiple voltage rails&lt;/li&gt;
&lt;li&gt;Power-delivery characterisation under varying current demands&lt;/li&gt;
&lt;li&gt;Cable resistance measurement using controlled voltage-drop testing&lt;/li&gt;
&lt;li&gt;Contact resistance identification&lt;/li&gt;
&lt;li&gt;Error mapping across operating ranges&lt;/li&gt;
&lt;li&gt;Signal injection and disturbance testing&lt;/li&gt;
&lt;li&gt;Dynamic load simulation&lt;/li&gt;
&lt;li&gt;Filter and ripple analysis&lt;/li&gt;
&lt;li&gt;Battery and motor behaviour emulation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One particularly useful capability involves measuring voltage drops through cables and connectors and deriving the associated resistance automatically.&lt;/p&gt;
&lt;p&gt;The software evaluates the relationship between load current and voltage drop to estimate the combined resistance of wiring and connections.&lt;/p&gt;
&lt;p&gt;Within the test framework, the calculation is performed directly from sweep data:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;r_cable = (d1 - d0) / 1000 / (i1 - i0)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That simple calculation transforms a series of load measurements into a quantified resistance value, making it easy to compare wiring arrangements and identify poor connections.&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc5"&gt;Automating Everything with Python&lt;/h2&gt;
&lt;p&gt;Although all of the instruments include their own interfaces and software, Clem quickly realised that remembering the behaviour of several unrelated front-panel interfaces was not the most productive way to work.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I&amp;#39;d better use them programmatically over the network and have them do my bidding just via some code.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The solution was to create a collection of Python libraries that expose a consistent programming interface across all of the devices.&lt;/p&gt;
&lt;p&gt;The project ultimately became more involved than expected.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;There were some quirks with some of the devices, especially the load gave me a difficult time.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While the digital multimeter proved relatively straightforward to integrate, other instruments required additional investigation before stable communication could be achieved.&lt;/p&gt;
&lt;p&gt;The resulting drivers focus on reliability and predictable operation. Each device is abstracted behind its own class, providing a clean interface for controlling power supplies, multimeters, electronic loads, and waveform generators.&lt;/p&gt;
&lt;p&gt;The codebase even includes a dedicated diagnostic utility for investigating SCPI communications with the arbitrary waveform generator. This tool systematically tests alternative command variations when communicating with the instrument, helping identify protocol differences and implementation quirks that often appear when automating laboratory equipment.&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc6"&gt;A Unified Lab API and Demonstration Framework&lt;/h2&gt;
&lt;p&gt;After developing individual device drivers, Clem wrapped everything inside a higher-level laboratory API.&lt;/p&gt;
&lt;p&gt;The demonstration application performs several automated validation exercises that would be time-consuming to execute manually.&lt;/p&gt;
&lt;p&gt;The workflow includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No-load accuracy validation at multiple output voltages&lt;/li&gt;
&lt;li&gt;Voltage-drop characterisation under increasing load current&lt;/li&gt;
&lt;li&gt;Power-supply regulation testing across 3.3 V, 5 V and 12 V rails&lt;/li&gt;
&lt;li&gt;Constant-resistance load testing&lt;/li&gt;
&lt;li&gt;Arbitrary waveform generator control and activation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The script automatically applies voltages, changes load conditions, waits for outputs to settle, collects readings from multiple instruments, calculates deviations, and records the results.&lt;/p&gt;
&lt;p&gt;Rather than simply taking a single measurement, the framework sweeps through operating ranges to build a much more complete understanding of system behaviour.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I can automate that and just go through all the possible scenarios and then see how much the error in measurement is.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Because every instrument is connected via Ethernet, the measurements can be run from anywhere on the network.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;For sensitive measurements I can even leave the room and run them from outside and still look at all the data in real time.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This becomes useful whenever environmental effects could disturb measurements or when long-duration tests need to be left unattended.&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc7"&gt;Expanding into Signal Integrity and Ripple Analysis&lt;/h2&gt;
&lt;p&gt;The arbitrary waveform generator opens the door to testing scenarios beyond simple DC measurements.&lt;/p&gt;
&lt;p&gt;Although Clem described the waveform generator library as still being a work in progress, the intent is already clear.&lt;/p&gt;
&lt;p&gt;The instrument can inject controlled signals into circuits and, when combined with the current probe and oscilloscope, create a surprisingly capable signal analysis platform.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;We even can see how much of ripple that we could inject into a power path would at the end get filtered out.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This allows evaluation of filters, power-distribution networks, and noise-sensitive circuits across different frequencies, voltages, and load conditions.&lt;/p&gt;
&lt;p&gt;It also points towards future development of the software platform as additional instrumentation becomes integrated into the automated environment.&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc8"&gt;Non-Invasive Current Measurement&lt;/h2&gt;
&lt;p&gt;Another small but surprisingly useful addition is an active AC/DC current probe.&lt;/p&gt;
&lt;p&gt;Unlike traditional current measurements that require inserting a meter into the circuit, the clamp allows current to be monitored without disconnecting or modifying wiring.&lt;/p&gt;
&lt;p&gt;The probe provides a voltage output proportional to the measured current, making it suitable for direct connection to either a multimeter or an oscilloscope.&lt;/p&gt;
&lt;p&gt;Selectable output scaling allows engineers to trade sensitivity for measurement range, depending on the application.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I don&amp;#39;t have to break up the circuit anymore.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While not intended to replace precision inline measurements, the probe dramatically simplifies troubleshooting and verification tasks where convenience is more important than ultimate accuracy.&lt;/p&gt;
&lt;h2 id="mcetoc_1jun99amc9"&gt;From Hobby Workbench to Automated Test Environment&lt;/h2&gt;
&lt;p&gt;Viewed individually, none of these upgrades are particularly dramatic. A better extractor, a programmable power supply, an electronic load, a current probe, some test leads, and a few hundred lines of Python code are all commonplace tools.&lt;/p&gt;
&lt;p&gt;Taken together, however, they fundamentally change how the bench can be used.&lt;/p&gt;
&lt;p&gt;The workbench is no longer simply a place where measurements are taken manually. It has become a programmable measurement platform capable of validating power systems, characterising components, simulating hardware that is not physically available, and performing repeatable tests automatically.&lt;/p&gt;
&lt;p&gt;As Clem summarised after bringing the instruments and software together:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;That&amp;#39;s quite a lot of capability that we just added with a few simple upgrades and a bit of code.&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Clem's Workbench Upgrade to Automated Lab with Programmable Instruments and Python</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72089/clem-s-workbench-upgrade-to-automated-lab-with-programmable-instruments-and-python/revision/1</link><pubDate>Wed, 29 Jul 2026 15:44:11 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:24a4dbe8-e5a8-463e-9424-13dc1797f639</guid><dc:creator>cstanton</dc:creator><description>Revision 1 posted to Documents by cstanton on 7/29/2026 3:44:11 PM&lt;br /&gt;
&lt;p&gt;Following the previous workbench upgrade, which focused on organisation, infrastructure, and day-to-day usability, Clem&amp;#39;s latest round of improvements takes a different direction. This time, the emphasis is on automation, repeatability, and measurement accuracy. By combining programmable test equipment with custom software, the bench evolves from a collection of instruments into a coordinated testing environment capable of generating reliable data with minimal manual intervention.&lt;/p&gt;
&lt;p&gt;As with previous upgrades, the equipment was selected by Clem according to his own requirements. The goal was not simply to add more instruments, but to create a system that could answer practical engineering questions automatically, repeatedly, and with greater precision than would be possible through manual measurements alone.&lt;/p&gt;
&lt;h2&gt;A Better Approach to Fume Extraction&lt;/h2&gt;
&lt;p&gt;One of the more visible upgrades came directly from community feedback. During the previous workbench tour, viewers questioned whether the existing DIY extraction setup provided adequate protection for prolonged soldering sessions.&lt;/p&gt;
&lt;p&gt;Rather than making incremental changes, Clem decided to install a dedicated dual-arm fume extraction unit. The system incorporates pre-filtration, HEPA filtration, and activated carbon filtering within a self-contained package.&lt;/p&gt;
&lt;p&gt;The upgrade complements the original extraction arrangement rather than replacing it entirely. Both systems have been integrated into the existing remote-controlled switching setup, allowing them to operate simultaneously whenever soldering work begins.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;The community&amp;#39;s nagging got me to upgrade the fume extraction system.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In use, the dual extraction arms provide considerably more flexibility than the previous fixed arrangement, allowing airflow to be positioned directly where fumes are generated. While the original extraction system continues to contribute overall airflow, the dedicated extractor offers the advantage of being portable and self-contained, making it useful in situations where permanent ducting is impractical.&lt;/p&gt;
&lt;p&gt;After testing both approaches side-by-side, Clem concluded that the dedicated extractor provided superior filtration and positioning flexibility while still integrating neatly into the existing workshop infrastructure.&lt;/p&gt;
&lt;h2&gt;Expanding the Power and Measurement Stack&lt;/h2&gt;
&lt;p&gt;Although Clem remains a fan of his existing bench power supply, particularly because of its simplicity and speed of use, the new upgrade focuses on capabilities beyond simply delivering power.&lt;/p&gt;
&lt;p&gt;The centrepiece of the new measurement stack is a programmable four-output bench supply featuring two 0-30 V, 5 A channels alongside a dedicated low-voltage precision channel and an independently controlled USB output. The additional channels dramatically increase flexibility when powering more complex projects.&lt;/p&gt;
&lt;p&gt;The power supply is supported by a programmable bench digital multimeter, a programmable DC electronic load, and an arbitrary waveform generator. Together they create a complete measurement platform capable of sourcing power, applying controlled loads, performing precision measurements, and generating test signals.&lt;/p&gt;
&lt;p&gt;The installed equipment includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MP711001 programmable four-output power supply&lt;/li&gt;
&lt;li&gt;MP730027 bench digital multimeter&lt;/li&gt;
&lt;li&gt;MP710771 programmable DC electronic load&lt;/li&gt;
&lt;li&gt;MP750513 arbitrary waveform generator&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All instruments support remote connectivity via Ethernet, USB, and even RS232, allowing them to be integrated into automated workflows rather than operated exclusively through their front panels.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I&amp;#39;ve got a serious new bench upgrade.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;One detail Clem found particularly useful is that the bench multimeter can act as a trusted measurement reference rather than relying solely on values reported internally by the power supply.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I can have a reliable voltage and current measurement over this precision instrument and don&amp;#39;t have to rely on the output that the power supply tells me it does.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This allows the instruments to effectively validate one another and provides a higher level of confidence when collecting measurement data.&lt;/p&gt;
&lt;h2&gt;Why Add a Programmable DC Load?&lt;/h2&gt;
&lt;p&gt;For many electronics projects, power consumption testing often starts with a collection of power resistors. While effective, resistors provide only a single fixed load characteristic.&lt;/p&gt;
&lt;p&gt;The programmable electronic load removes these limitations.&lt;/p&gt;
&lt;p&gt;In addition to conventional constant-current and constant-voltage operation, the instrument supports constant-power and constant-resistance modes. More importantly, it also provides dynamic versions of those operating modes.&lt;/p&gt;
&lt;p&gt;This allows entire load profiles to be generated automatically, enabling simulation of changing operating conditions that would be difficult to reproduce manually.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;These modes don&amp;#39;t end with constant ones. They are also dynamic ones.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The unit also includes battery testing functionality and remote sense inputs, providing significantly more capability than a collection of passive load resistors ever could.&lt;/p&gt;
&lt;p&gt;For engineers developing motor controllers, battery-powered electronics, or power conversion systems, the ability to simulate loads that are not physically present becomes particularly valuable.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I don&amp;#39;t have to guess anymore how my things will perform. I can already know before I even buy the parts.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Measurement Capabilities Created by Combining the Instruments&lt;/h2&gt;
&lt;p&gt;The real strength of the setup emerges when all four instruments operate together.&lt;/p&gt;
&lt;p&gt;Rather than performing isolated measurements, Clem can now build repeatable test scenarios that coordinate the power supply, multimeter, electronic load, and waveform generator simultaneously.&lt;/p&gt;
&lt;p&gt;The automated environment supports:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Voltage accuracy verification between power supply output and precision DMM measurements&lt;/li&gt;
&lt;li&gt;Load regulation testing across multiple voltage rails&lt;/li&gt;
&lt;li&gt;Power-delivery characterisation under varying current demands&lt;/li&gt;
&lt;li&gt;Cable resistance measurement using controlled voltage-drop testing&lt;/li&gt;
&lt;li&gt;Contact resistance identification&lt;/li&gt;
&lt;li&gt;Error mapping across operating ranges&lt;/li&gt;
&lt;li&gt;Signal injection and disturbance testing&lt;/li&gt;
&lt;li&gt;Dynamic load simulation&lt;/li&gt;
&lt;li&gt;Filter and ripple analysis&lt;/li&gt;
&lt;li&gt;Battery and motor behaviour emulation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One particularly useful capability involves measuring voltage drops through cables and connectors and deriving the associated resistance automatically.&lt;/p&gt;
&lt;p&gt;The software evaluates the relationship between load current and voltage drop to estimate the combined resistance of wiring and connections.&lt;/p&gt;
&lt;p&gt;Within the test framework, the calculation is performed directly from sweep data:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;r_cable = (d1 - d0) / 1000 / (i1 - i0)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That simple calculation transforms a series of load measurements into a quantified resistance value, making it easy to compare wiring arrangements and identify poor connections.&lt;/p&gt;
&lt;h2&gt;Automating Everything with Python&lt;/h2&gt;
&lt;p&gt;Although all of the instruments include their own interfaces and software, Clem quickly realised that remembering the behaviour of several unrelated front-panel interfaces was not the most productive way to work.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I&amp;#39;d better use them programmatically over the network and have them do my bidding just via some code.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The solution was to create a collection of Python libraries that expose a consistent programming interface across all of the devices.&lt;/p&gt;
&lt;p&gt;The project ultimately became more involved than expected.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;There were some quirks with some of the devices, especially the load gave me a difficult time.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While the digital multimeter proved relatively straightforward to integrate, other instruments required additional investigation before stable communication could be achieved.&lt;/p&gt;
&lt;p&gt;The resulting drivers focus on reliability and predictable operation. Each device is abstracted behind its own class, providing a clean interface for controlling power supplies, multimeters, electronic loads, and waveform generators.&lt;/p&gt;
&lt;p&gt;The codebase even includes a dedicated diagnostic utility for investigating SCPI communications with the arbitrary waveform generator. This tool systematically tests alternative command variations when communicating with the instrument, helping identify protocol differences and implementation quirks that often appear when automating laboratory equipment.&lt;/p&gt;
&lt;h2&gt;A Unified Lab API and Demonstration Framework&lt;/h2&gt;
&lt;p&gt;After developing individual device drivers, Clem wrapped everything inside a higher-level laboratory API.&lt;/p&gt;
&lt;p&gt;The demonstration application performs several automated validation exercises that would be time-consuming to execute manually.&lt;/p&gt;
&lt;p&gt;The workflow includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No-load accuracy validation at multiple output voltages&lt;/li&gt;
&lt;li&gt;Voltage-drop characterisation under increasing load current&lt;/li&gt;
&lt;li&gt;Power-supply regulation testing across 3.3 V, 5 V and 12 V rails&lt;/li&gt;
&lt;li&gt;Constant-resistance load testing&lt;/li&gt;
&lt;li&gt;Arbitrary waveform generator control and activation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The script automatically applies voltages, changes load conditions, waits for outputs to settle, collects readings from multiple instruments, calculates deviations, and records the results.&lt;/p&gt;
&lt;p&gt;Rather than simply taking a single measurement, the framework sweeps through operating ranges to build a much more complete understanding of system behaviour.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I can automate that and just go through all the possible scenarios and then see how much the error in measurement is.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Because every instrument is connected via Ethernet, the measurements can be run from anywhere on the network.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;For sensitive measurements I can even leave the room and run them from outside and still look at all the data in real time.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This becomes useful whenever environmental effects could disturb measurements or when long-duration tests need to be left unattended.&lt;/p&gt;
&lt;h2&gt;Expanding into Signal Integrity and Ripple Analysis&lt;/h2&gt;
&lt;p&gt;The arbitrary waveform generator opens the door to testing scenarios beyond simple DC measurements.&lt;/p&gt;
&lt;p&gt;Although Clem described the waveform generator library as still being a work in progress, the intent is already clear.&lt;/p&gt;
&lt;p&gt;The instrument can inject controlled signals into circuits and, when combined with the current probe and oscilloscope, create a surprisingly capable signal analysis platform.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;We even can see how much of ripple that we could inject into a power path would at the end get filtered out.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This allows evaluation of filters, power-distribution networks, and noise-sensitive circuits across different frequencies, voltages, and load conditions.&lt;/p&gt;
&lt;p&gt;It also points towards future development of the software platform as additional instrumentation becomes integrated into the automated environment.&lt;/p&gt;
&lt;h2&gt;Non-Invasive Current Measurement&lt;/h2&gt;
&lt;p&gt;Another small but surprisingly useful addition is an active AC/DC current probe.&lt;/p&gt;
&lt;p&gt;Unlike traditional current measurements that require inserting a meter into the circuit, the clamp allows current to be monitored without disconnecting or modifying wiring.&lt;/p&gt;
&lt;p&gt;The probe provides a voltage output proportional to the measured current, making it suitable for direct connection to either a multimeter or an oscilloscope.&lt;/p&gt;
&lt;p&gt;Selectable output scaling allows engineers to trade sensitivity for measurement range, depending on the application.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I don&amp;#39;t have to break up the circuit anymore.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While not intended to replace precision inline measurements, the probe dramatically simplifies troubleshooting and verification tasks where convenience is more important than ultimate accuracy.&lt;/p&gt;
&lt;h2&gt;From Hobby Workbench to Automated Test Environment&lt;/h2&gt;
&lt;p&gt;Viewed individually, none of these upgrades are particularly dramatic. A better extractor, a programmable power supply, an electronic load, a current probe, some test leads, and a few hundred lines of Python code are all commonplace tools.&lt;/p&gt;
&lt;p&gt;Taken together, however, they fundamentally change how the bench can be used.&lt;/p&gt;
&lt;p&gt;The workbench is no longer simply a place where measurements are taken manually. It has become a programmable measurement platform capable of validating power systems, characterising components, simulating hardware that is not physically available, and performing repeatable tests automatically.&lt;/p&gt;
&lt;p&gt;As Clem summarised after bringing the instruments and software together:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;That&amp;#39;s quite a lot of capability that we just added with a few simple upgrades and a bit of code.&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Building and Programming a SCARA Industrial Robot Arm – An Introduction to Robotics</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72087/building-and-programming-a-scara-industrial-robot-arm-an-introduction-to-robotics</link><pubDate>Thu, 23 Jul 2026 14:27:33 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4e4a8dd3-a2e0-4155-ae19-ef2b140a1557</guid><dc:creator>e14cstanton</dc:creator><description>Current Revision posted to Documents by e14cstanton on 7/23/2026 2:27:33 PM&lt;br /&gt;
&lt;p&gt;Join Milos as he builds a simple SCARA robot arm and explores the fundamentals of robotics through practical engineering. From robot arm configurations and direct and inverse kinematics to firmware development, Python control software and motion planning, the project shows how mathematical concepts translate into real-world movement. Using a Raspberry Pi Pico 2 W, hobby servos and a custom GUI, the robot is able to move to coordinates, follow trajectories and even draw shapes, providing a hands-on introduction to robotic control systems, calibration and coordinate-based motion. Watch along and you can find the supporting files&amp;nbsp;below.&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7e3uee0"&gt;Time to Strong-Arm Electronics!&lt;/h2&gt;
&lt;div&gt;&lt;a href="https://players.brightcove.net/1362235890001/default_default/index.html?videoId=6401908837112"&gt;players.brightcove.net/.../index.html&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;After exploring electronics, mechanics, control engineering, microcontrollers and robotics fundamentals in the previous instalments of this introduction to robotics series, Milos moves from theory into a practical build. Rather than discussing robotics from an abstract perspective, this project demonstrates how those concepts come together in a working machine: a compact SCARA robot arm capable of moving to coordinates, visualising kinematics and even drawing shapes.&lt;/p&gt;
&lt;p&gt;The aim is not to build the most accurate robot arm possible. Instead, the project focuses on creating something approachable, affordable and educational. As Milos explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;This is the main goal of this course is to keep it as simple as possible so for people that are doing anything like this for the first time.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;By keeping the design simple, the project becomes an effective platform for understanding the principles that underpin industrial robots, from coordinate systems and kinematics through to feedback, calibration and motion control.&lt;/p&gt;
&lt;p&gt;If you&amp;#39;re new to robotics, it is worth reviewing the earlier episodes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72071/building-the-foundations-of-your-first-robot---an-introduction-to-robotics" data-e14adj="t"&gt;Building the Foundations of Your First Robot&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72077/pid-control-motion-profiles-and-ros-explained---an-introduction-to-robotics" data-e14adj="t"&gt;PID Control, Motion Profiles and ROS Explained&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1ju7e3uee1"&gt;&lt;img alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000034.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1ju7b36p79"&gt;Understanding Robot Arms and Kinematics&lt;/h2&gt;
&lt;p&gt;Before touching any hardware, Milos begins with one of the most important concepts in robotics: robot arm configuration. Whether a robot is a compact desktop arm, an industrial manipulator or a SCARA system, every robot arm can be described by its joints, the links connecting those joints and the position of its tool centre point (TCP).&lt;/p&gt;
&lt;p&gt;Once the joint positions and link lengths are known, it becomes possible to describe the entire robot mathematically. This is where kinematics enters the picture.&lt;/p&gt;
&lt;p&gt;As Milos explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;When we talk about robot arms, we&amp;#39;re usually interested in kinematics. That means direct kinematics and inverse kinematics.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Direct kinematics starts with known joint angles and link lengths and calculates the position of the TCP. Inverse kinematics takes the opposite approach. A target position is specified first, and the required joint angles are calculated afterwards.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Maybe we want to place the tool at a certain coordinate. To do that we need to calculate all of the angles in the joints.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The robot built in this project uses a SCARA (Selective Compliance Articulated Robot Arm) configuration. Unlike a traditional articulated robot arm with many joints, a SCARA robot uses two rotary joints operating in a plane and a simple actuator for vertical movement.&lt;/p&gt;
&lt;p&gt;This simplified structure makes it ideal for learning robotics because the mathematics remains approachable while still introducing the same principles used on larger industrial systems.&lt;/p&gt;
&lt;p&gt;Milos also highlights an important concept encountered in real robotic systems: multiple inverse kinematics solutions.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;We can reach the same point with two distinct configurations.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;These are commonly referred to as elbow-up and elbow-down configurations. Both reach the same TCP coordinate while positioning the robot differently.&lt;/p&gt;
&lt;p&gt;The project also introduces singularities. In the fully extended position, the robot loses one of its available configurations and can only reach that point in a single orientation.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The arm is completely stretched where we would have a singularity position.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Anyone interested in exploring these concepts further can find additional resources within the element14 Learning Centre, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/27574/the-basics-of-microcontrollers" data-e14adj="t"&gt;The Basics of Microcontrollers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/23151/magnetic-encoders" data-e14adj="t"&gt;Magnetic Encoders&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/29543/essentials-of-robot-operating-system-2" data-e14adj="t"&gt;Essentials of ROS 2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1ju7e5erc2"&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000069.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1ju7b36p7a"&gt;Hardware Design&lt;/h2&gt;
&lt;p&gt;The hardware reflects the project&amp;#39;s educational focus. The goal was to minimise complexity without removing important robotics concepts.&lt;/p&gt;
&lt;p&gt;At the centre of the system is the Raspberry Pi Pico 2 W, a compact microcontroller with more than enough processing power to handle servo control, communications and feedback acquisition.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It&amp;#39;s a brand new microcontroller, it&amp;#39;s more than powerful enough for this and it&amp;#39;s a small form factor.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Three servo motors are used. Two control the primary arm joints while the third operates the pen-lift mechanism.&lt;/p&gt;
&lt;p&gt;Rather than using stepper motors or brushless motors with dedicated drivers, Milos chose standard RC servos because they are inexpensive, easy to source and straightforward to control.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Why not use stepper motors or BLDC motors? One thing, simplicity.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Two of the servos also provide analogue feedback signals. These are connected directly to the Pico&amp;#39;s ADC inputs, allowing the software to monitor actual joint movement and compare commanded positions with measured positions.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;This is just an additional line that will feed the Pico ADC so we can measure the actual angle and get some graphs back.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Mechanically, the arm was designed in Fusion 360 and printed in PLA. The design uses two equal-length links measuring 150mm each.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Both links are at 150 millimeters which was my goal so we can keep them as easy as possible.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The drawing mechanism is equally simple. An SG90 servo lifts and lowers a pen through a small cam arrangement, enabling the robot to trace paths onto paper.&lt;/p&gt;
&lt;p&gt;All CAD resources, including STEP and STL files, are available for builders wishing to recreate or modify the project.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/5305.frame_5F00_000094.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7b36p7b"&gt;Firmware and Control Architecture&lt;/h2&gt;
&lt;p&gt;The software architecture is intentionally split into two layers.&lt;/p&gt;
&lt;p&gt;The Pico firmware acts primarily as a hardware interface, while the more computationally demanding robotics calculations are performed on the PC.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The heavy lifting for the robot arm will be actually done on the computer.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Communication takes place over a serial connection using a command structure inspired by G-code.&lt;/p&gt;
&lt;p&gt;As Milos explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The commands pretty much resemble G-code style commands.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Commands such as &lt;code&gt;G0&lt;/code&gt; and &lt;code&gt;G1&lt;/code&gt; provide rapid and smooth movement control, while calibration, streaming and configuration commands allow deeper interaction with the robot.&lt;/p&gt;
&lt;p&gt;The firmware itself documents this clearly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;G0 A B Z        - move in degrees
G1 A B Z [F]    - move in degrees
G28             - home
G90             - report position
M10             - ADC snapshot
M11             - start streaming
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Servo calibration and motion tuning are configurable directly from the firmware. For example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;float move_speed = 5.0;
int move_delay_ms = 20;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;These settings determine how smoothly the servos move between commanded positions.&lt;/p&gt;
&lt;p&gt;The firmware also incorporates safety functions such as emergency stop support:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;M112 - Emergency stop / detach all servos
M113 - Re-attach servos
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This allows the robot to be safely disabled and recovered during experimentation.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000059.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7b36p7c"&gt;The Python GUI and Practical Robotics&lt;/h2&gt;
&lt;p&gt;The second part of the software stack is a substantial Python-based GUI created specifically for learning robotics concepts.&lt;/p&gt;
&lt;p&gt;Rather than relying entirely on terminal commands, the interface provides visual tools for understanding the relationship between coordinates, joint angles and robot motion.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The graphical user interface communicates with the robot arm.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Joint sliders allow direct manipulation of servo positions, while a Cartesian control system lets the user command positions using X-Y coordinates.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The GUI allows the user to send xy coordinates which get recalculated into servo angles using inverse kinematics.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A dedicated kinematics learning section was included in the software. The Python application features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Forward and inverse kinematics demonstrations&lt;/li&gt;
&lt;li&gt;Workspace visualisation&lt;/li&gt;
&lt;li&gt;Joint tracking plots&lt;/li&gt;
&lt;li&gt;Feedback monitoring&lt;/li&gt;
&lt;li&gt;CSV path playback&lt;/li&gt;
&lt;li&gt;Calibration tools&lt;/li&gt;
&lt;li&gt;Teach mode functionality&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The source code describes the goal directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Kinematics Lab tab dedicated to teaching FK and IK side-by-side with the underlying formulas.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The software also visualises both elbow-up and elbow-down inverse kinematic solutions, helping users understand why multiple solutions exist for many reachable points.&lt;/p&gt;
&lt;p&gt;For those looking to strengthen their software skills, element14&amp;#39;s Learning Centre also provides:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/28063/an-introduction-to-programming-with-python" data-e14adj="t"&gt;An Introduction to Programming with Python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/products/arduino/arduino-tutorials/b/blog/posts/jeremy-blum-arduino-tutorials" data-e14adj="t"&gt;Jeremy Blum&amp;#39;s Arduino Tutorials&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1ju7e8jiq3"&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000134.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1ju7b36p7d"&gt;Drawing Paths with CSV Trajectories&lt;/h2&gt;
&lt;p&gt;Once direct control was working, the next challenge was creating repeatable motion.&lt;/p&gt;
&lt;p&gt;The GUI includes a path playback system capable of loading CSV files containing coordinate lists.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;We can load up a custom CSV with a bunch of points to which the robot arm should go and we can trace different outlines.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;To simplify shape creation, Milos also created Python tools capable of generating geometric paths automatically.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It generates your CSV shape in a bunch of dots and when you load that in the graphical user interface your arm will actually replay that path.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This transforms the robot from a coordinate demonstration into a machine capable of producing recognisable drawings.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000119.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000204.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7b36p7e"&gt;Testing the Robot Arm&lt;/h2&gt;
&lt;p&gt;With the mechanical assembly complete and the software operating correctly, the final stage was testing.&lt;/p&gt;
&lt;p&gt;Initial tests focused on simple joint movement and home positioning. The graphical representation matched the physical robot closely, demonstrating that the kinematic calculations were behaving correctly.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;You can see that we are getting the movements that mimic what&amp;#39;s also happening on the user interface.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The inverse kinematic controller proved particularly successful.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;If we go and say move to xy you can see how it moves rapidly.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As expected, the limitations of hobby-grade servos quickly became apparent.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The arm moves a lot and that&amp;#39;s the main issue with servos like this, they just aren&amp;#39;t that accurate.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;However, the educational value remained high.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;For the price and for the simplicity of how easy they are to use they are a pretty good deal.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Path playback tests produced some impressive results, including stars and even an element14 logo. Although the robot occasionally exhibited visible oscillation, Milos identified exactly why:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It actually stops between each point so it&amp;#39;s not as accurate as it could be.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Future improvements could incorporate more advanced path-planning methods and look-ahead algorithms to smooth motion between waypoints.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;You can do this much better with proper path planning look forward algorithms that would make the actual path for both the servos smooth.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="mcetoc_1ju7ebh994"&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000271.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1ju7b36p7f"&gt;From Theory to Practical Robotics&lt;/h2&gt;
&lt;p&gt;This build demonstrates one of the most rewarding aspects of robotics: seeing mathematical models become physical motion.&lt;/p&gt;
&lt;p&gt;Throughout the project, concepts such as coordinate systems, direct kinematics, inverse kinematics, servo control, calibration and feedback move from sketches on a whiteboard into a functioning machine.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;We can see some connection between actual theory with all of those equations that you&amp;#39;ve seen in the beginning and with actual real world results.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For newcomers, the project provides an approachable way to understand how robot arms operate. For more experienced makers and engineers, it offers a solid foundation for exploring advanced topics such as motion planning, PID control, encoder feedback and ROS integration.&lt;/p&gt;
&lt;p&gt;Most importantly, it demonstrates that robotics does not need to begin with expensive hardware or industrial equipment. With a Raspberry Pi Pico 2 W, a handful of servos, some printed parts and a willingness to experiment, it is possible to build a robot that brings the mathematics of robotics to life.&lt;/p&gt;
&lt;h2&gt;Supporting Files and Links&lt;/h2&gt;
&lt;p&gt;-&amp;nbsp;&amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/m/files/151529"&gt;Episode 724 Supporting Files - Building and Programming a SCARA Industrial Robot Arm – An Introduction to Robotics&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;-&amp;nbsp;&lt;a href="/products/arduino/arduino-tutorials/b/blog/posts/jeremy-blum-arduino-tutorials" data-e14adj="t"&gt;https://community.element14.com/products/arduino/arduino-tutorials/b/blog/posts/jeremy-blum-arduino-tutorials&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;-&amp;nbsp;&amp;nbsp;&lt;a href="/learn/learning-center/" data-e14adj="t"&gt;https://community.element14.com/learn/learning-center/&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;-&amp;nbsp;&amp;nbsp;&lt;a href="https://community.element14.com/learn/learning-center/essentials/w/documents/3194/power-essentials-for-makers"&gt;Power Essentials for Makers&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/learn/learning-center/essentials/w/documents/3508/motor-control-motor-drive-control-for-makers"&gt;Motor Control: Motor Drive Control for Makers&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/learn/learning-center/essentials/w/documents/27574/the-basics-of-microcontrollers"&gt;The Basics of Microcontrollers&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/learn/learning-center/essentials/w/documents/23151/magnetic-encoders"&gt;Magnetic Encoders&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &lt;a id="" href="/learn/learning-center/essentials/Keyword=microcontrollers&amp;amp;pifragment-2619SortOrder=Ascending" data-e14adj="t"&gt;https://community.element14.com/learn/learning-center/essentials/Keyword=microcontrollers&amp;amp;pifragment-2619SortOrder=Ascending&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/learn/learning-center/essentials/w/documents/28063/an-introduction-to-programming-with-python"&gt;An Introduction to Programming with Python&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/learn/learning-center/essentials/w/documents/29543/essentials-of-robot-operating-system-2"&gt;Essentials of Robot Operating System 2&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72077/pid-control-motion-profiles-and-ros-explained---an-introduction-to-robotics"&gt;PID Control, Motion Profiles and ROS Explained - An Introduction to Robotics&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72071/building-the-foundations-of-your-first-robot---an-introduction-to-robotics"&gt;Building the Foundations of Your First Robot - An Introduction to Robotics&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7elgi85"&gt;Bill of Materials / Parts Used&lt;/h2&gt;
&lt;table class="e14-product-bom-main"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;th&gt;&lt;a id="e14-product-link-c63c9" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3769950~2,2845502,4531086,3769965&amp;nsku=52AJ5993~2,50AC9541,11AM9749,52AJ5992&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_BUY_KIT" class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('c63c9'));" data-farnell="3769950~2,2845502,4531086,3769965" data-newark="52AJ5993~2,50AC9541,11AM9749,52AJ5992" data-comoverride="" data-cmpoverride="" data-cpc="undefined~2,,," data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Kit&lt;/a&gt; &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Servo Motor SER0044&lt;/td&gt;
&lt;td&gt;DFROBOT&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-05c74" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3769950~2&amp;nsku=52AJ5993~2&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('05c74'));" data-farnell="3769950~2" data-newark="52AJ5993~2" data-comoverride="" data-cmpoverride="" data-cpc="undefined~2" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Filament MC002555&lt;/td&gt;
&lt;td&gt;MULTICOMP PRO&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-389e2" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2845502&amp;nsku=50AC9541&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('389e2'));" data-farnell="2845502" data-newark="50AC9541" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RASPBERRY-PI PICO 2&lt;/td&gt;
&lt;td&gt;RASPBERRY PI&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-60166" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4531086&amp;nsku=11AM9749&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('60166'));" data-farnell="4531086" data-newark="11AM9749" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Servo Motor SER0039&lt;/td&gt;
&lt;td&gt;DFROBOT&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-94ada" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3769965&amp;nsku=52AJ5992&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('94ada'));" data-farnell="3769965" data-newark="52AJ5992" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="xs-hide"&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7elgi86"&gt;Additional Parts&lt;/h2&gt;
&lt;table class="e14-product-bom-additional"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;M3 machine screws&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Perfboard&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wires&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="mcetoc_1ju7elgi87"&gt;&lt;/h3&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: raspberry pi pico robot project, inverse kinematics tutorial, forward kinematics explained, raspberry pi pico 2w project, introduction to robotics, diy robot arm build, servo motor robotics, learn robotics with projects, robotics motion control, python robot control gui, scara robot tutorial, robotics programming for beginners, robot arm path planning, robot arm kinematics, SCARA robot arm, e14presents_milosrasic, friday_release&lt;/div&gt;
</description></item><item><title>Project Video Release Archive</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/3748/project-video-release-archive/revision/222</link><pubDate>Thu, 23 Jul 2026 14:06:21 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:59ab0abe-b32d-47f9-b00c-4b73b01f3bd8</guid><dc:creator>e14sbhargav</dc:creator><description>Revision 222 posted to Documents by e14sbhargav on 7/23/2026 2:06:21 PM&lt;br /&gt;
&lt;div style="background:#ffffff;border-bottom:1px solid #dadada;margin:0;padding:14px 16px 16px 18px;vertical-align:top;"&gt;
&lt;div style="display:inline-block;float:left;padding:0px 25px 8px 0px;"&gt;&lt;a href="/challengesprojects/element14-presents/" data-icid="e14" data-e14adj="t"&gt;&lt;img alt="image"  src="/e14/assets/legacy/2018/e14PresentsJune818.png" width="180px" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="display:inline-block;vertical-align:top;width:70%;"&gt;&lt;span style="font-size:18px;font-weight:bold;"&gt;Project Video Releases&lt;/span&gt;
&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a class="jivecontainerTT-hover-container jive-link-community-small" style="color:#f17c0e;" href="/challengesprojects/element14-presents/" data-icid="e14" data-e14adj="t"&gt;element14 presents&lt;/a&gt;&lt;/span&gt;&amp;nbsp; &lt;strong&gt;|&lt;/strong&gt;&amp;nbsp; &lt;span style="padding-right:5px;"&gt;&lt;a class="jivecontainerTT-hover-container jive-link-community-small" style="color:#f17c0e;" href="/challengesprojects/element14-presents/vcp-program/" data-icid="e14" data-e14adj="t"&gt;Meet the Hosts&lt;/a&gt;&lt;/span&gt;&lt;span style="padding-right:5px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72087/building-and-programming-a-scara-industrial-robot-arm-an-introduction-to-robotics" data-e14adj="t"&gt;Episode 724: Building and Programming a SCARA Industrial Robot Arm &amp;ndash; An Introduction to Robotics&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72081/building-a-privacy-first-workshop-security-camera-with-pocketbeagle-2" data-e14adj="t"&gt;Episode 723: Building a Privacy-First Workshop Security Camera with PocketBeagle 2&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72077/pid-control-motion-profiles-and-ros-explained---an-introduction-to-robotics" data-e14adj="t"&gt;Episode 722: PID Control, Motion Profiles and ROS Explained - An Introduction to Robotics&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72073/designing-a-smarter-workbench-inside-mark-s-8-channel-power-monitoring-system" data-e14adj="t"&gt;Episode 721: Designing a Smarter Workbench: Inside Mark&amp;rsquo;s 8-Channel Power Monitoring System&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72071/building-the-foundations-of-your-first-robot---an-introduction-to-robotics" data-e14adj="t"&gt;Episode 720: Building the Foundations of Your First Robot - An Introduction to Robotics&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72070/turning-a-broken-robot-vacuum-into-a-network-controlled-raspberry-pi-5-rover" data-e14adj="t"&gt;Episode 719: Turning a Broken Robot Vacuum into a Network-Controlled Raspberry Pi 5 Rover&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72069/creating-a-multi-function-esp32-desk-pet-with-custom-pcb-and-audio-processing" data-e14adj="t"&gt;Episode 718: Creating a Multi-Function ESP32 Desk Pet with Custom PCB and Audio Processing&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72068/simulating-prey-vision-with-raspberry-pi-5-a-dual-camera-perception-experiment" data-e14adj="t"&gt;Episode 717: Simulating Prey Vision with Raspberry Pi 5: A Dual Camera Perception Experiment&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72067/designing-a-mobile-robot-platform-with-inverse-kinematics-and-wireless-control" data-e14adj="t"&gt;Episode 716: Designing a Mobile Robot Platform with Inverse Kinematics and Wireless Control&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72063/how-to-build-a-reaction-based-catch-game-using-arduino-and-relays" data-e14adj="t"&gt;Episode 715: How to Build a Reaction-Based Catch Game Using Arduino and Relays&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72062/find-emi-fast-with-a-low-cost-automated-way-to-see-where-your-pcb-radiates" data-e14adj="t"&gt;Episode 714: Find EMI Fast with a Low‑Cost, Automated Way to See Where Your PCB Radiates&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 713:" href="/challenges-projects/element14-presents/project-videos/w/documents/72061/how-to-make-an-led-sculpture-react-to-sound-with-micro-bit" data-e14adj="t"&gt;Episode 713:&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72061/how-to-make-an-led-sculpture-react-to-sound-with-micro-bit"&gt;How to Make an LED Sculpture React to Sound with micro:bit&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 712: Designing a More Capable Dual Motor Driver Beyond the L298N (What worked and what didn't)" href="/challenges-projects/element14-presents/project-videos/w/documents/72060/designing-a-more-capable-dual-motor-driver-beyond-the-l298n-what-worked-and-what-didn-t" data-e14adj="t"&gt;Episode 712: Designing a More Capable Dual Motor Driver Beyond the L298N (What worked and what didn&amp;#39;t)&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 711: Modern Edge AI on Raspberry Pi 5 for an Animatronic Tracker: Vision Acceleration with AI Hat+ and AI Camera" href="/challenges-projects/element14-presents/project-videos/w/documents/72059/modern-edge-ai-on-raspberry-pi-5-for-an-animatronic-tracker-vision-acceleration-with-ai-hat-and-ai-camera" data-e14adj="t"&gt;Episode 711: Modern Edge AI on Raspberry Pi 5 for an Animatronic Tracker: Vision Acceleration with AI Hat+ and AI Camera&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 710: Your First Real PCB in KiCad : An Arduino Compatible Board Designed from Scratch" href="/challenges-projects/element14-presents/project-videos/w/documents/72057/your-first-real-pcb-in-kicad-an-arduino-compatible-board-designed-from-scratch" data-e14adj="t"&gt;Episode 710: Your First Real PCB in KiCad : An Arduino Compatible Board Designed from Scratch&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 709: Was that my Number!? Fixing Caf&amp;eacute; Order Chaos with a Raspberry Pi Announcer" href="/challenges-projects/element14-presents/project-videos/w/documents/72055/was-that-my-number-fixing-cafe-order-chaos-with-a-raspberry-pi-announcer" data-e14adj="t"&gt;Episode 709: Was that my Number!? Fixing Caf&amp;eacute; Order Chaos with a Raspberry Pi Announcer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 708: Reviving a Vintage LED Sign with Arduino and PS/2 Control" href="/challenges-projects/element14-presents/project-videos/w/documents/72042/reviving-a-vintage-led-sign-with-arduino-and-ps-2-control----episode-708" data-e14adj="t"&gt;Episode 708: Reviving a Vintage LED Sign with Arduino and PS/2 Control&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 707: Building a Circuit Sculpture with LED Filament" href="/challenges-projects/element14-presents/project-videos/w/documents/72038/building-a-circuit-sculpture-with-led-filament----episode-707" data-e14adj="t"&gt;Episode 707: Building a Circuit Sculpture with LED Filament&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72037/esp32-rfid-smart-access-control-in-a-simple-diy-build----episode-706"&gt;Episode 706: ESP32 + RFID = Smart Access Control in a Simple DIY Build&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 705: Building a Super Smooth Z-Scale Train Controller with Arduino" href="/challenges-projects/element14-presents/project-videos/w/documents/72036/building-a-super-smooth-z-scale-train-controller-with-arduino----episode-705" data-e14adj="t"&gt;Episode 705: Building a Super Smooth Z-Scale Train Controller with Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 704: Hacking an IKEA Desk into a Programmable Electric Workstation" href="/challenges-projects/element14-presents/project-videos/w/documents/72035/hacking-an-ikea-desk-into-a-programmable-electric-workstation----episode-704" data-e14adj="t"&gt;Episode 704: Hacking an IKEA Desk into a Programmable Electric Workstation&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 703: How to Set Up the Raspberry Pi 5: Complete Beginner Step-by-Step Guide" href="/challenges-projects/element14-presents/project-videos/w/documents/72034/how-to-set-up-the-raspberry-pi-5-complete-beginner-step-by-step-guide----episode-703" data-e14adj="t"&gt;Episode 703: How to Set Up the Raspberry Pi 5: Complete Beginner Step-by-Step Guide&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 702: Build Your Own USB Looper for Serial Debugging and File Transfer" href="/challenges-projects/element14-presents/project-videos/w/documents/72033/build-your-own-usb-looper-for-serial-debugging-and-file-transfer----episode-702" data-e14adj="t"&gt;Episode 702: Build Your Own USB Looper for Serial Debugging and File Transfer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 700: How Voice Recognition Works on Raspberry Pi (and Why It&amp;rsquo;s Easy to Break)" href="/challenges-projects/element14-presents/project-videos/w/documents/72031/from-snooze-to-launch-the-arduino-powered-lego-alarm-clock-inspired-by-artemis-2----episode-701" data-e14adj="t"&gt;Episode 701: From Snooze to Launch: The Arduino-Powered LEGO Alarm Clock Inspired by Artemis 2&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 700: How Voice Recognition Works on Raspberry Pi (and Why It&amp;rsquo;s Easy to Break)" href="/challenges-projects/element14-presents/project-videos/w/documents/72030/how-voice-recognition-works-on-raspberry-pi-and-why-it-s-easy-to-break----episode-700" data-e14adj="t"&gt;Episode 700: How Voice Recognition Works on Raspberry Pi (and Why It&amp;rsquo;s Easy to Break)&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 697:&amp;nbsp;A Smart, Safe 3D Printer Cabinet Using Raspberry Pi and Node-RED" href="/challenges-projects/element14-presents/project-videos/w/documents/72021/gimmegpio-a-simple-way-to-get-gpio-on-laptops-and-desktops----episode-699" data-e14adj="t"&gt;Episode 699:&amp;nbsp;GimmeGPIO: A Simple Way to Get GPIO on Laptops and Desktops&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 697:&amp;nbsp;A Smart, Safe 3D Printer Cabinet Using Raspberry Pi and Node-RED" href="/challenges-projects/element14-presents/project-videos/w/documents/72020/building-a-practical-electronics-workbench-for-makers-and-engineers----episode-698" data-e14adj="t"&gt;Episode 698:&amp;nbsp;Building a Practical Electronics Workbench for Makers and Engineers&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 697:&amp;nbsp;A Smart, Safe 3D Printer Cabinet Using Raspberry Pi and Node-RED" href="/challenges-projects/element14-presents/project-videos/w/documents/72009/a-smart-safe-3d-printer-cabinet-using-raspberry-pi-and-node-red----episode-697" data-e14adj="t"&gt;Episode 697:&amp;nbsp;A Smart, Safe 3D Printer Cabinet Using Raspberry Pi and Node-RED&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/72008/how-a-pulse-metal-detector-works-and-how-to-build-one" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 696: How a Pulse Metal Detector Works, and How to Build One&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/72007/a-diy-test-and-programming-rig-built-for-small-batch-electronics-production----episode-695" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 695: A DIY Test and Programming Rig Built for Small-Batch Electronics Production&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/secret-element14-presents/w/documents/72001/earn-your-fitness-reward-with-a-smart-cookie-jar-using-strava-and-esp32----episode-694" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 694: Earn Your Fitness Reward with a Smart Cookie Jar Using Strava and ESP32&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71999/open-source-multicolour-3d-printing-upgrade-clem-s-3d-chameleon-remix----episode-693" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 693: Open-Source Multicolour 3D Printing Upgrade: Clem&amp;rsquo;s 3D Chameleon Remix&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71995/build-your-own-esp32-fitness-heart-rate-monitor-tracker----episode-692" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 692: Build Your own ESP32 Fitness Heart Rate Monitor / Tracker&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71994/how-accurate-is-bluetooth-channel-sounding-a-deep-dive-with-the-nrf54l15" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 691: How Accurate Is Bluetooth Channel Sounding? A Deep Dive with the nRF54L15&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71993/meet-the-platypusbot-now-powered-by-raspberry-pi-ros----episode-690" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 690: Meet the PlatypusBot: Now Powered by Raspberry Pi &amp;amp; ROS&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71992/how-clem-built-a-handheld-sci-fi-communicator-that-really-works----episode-689" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 689: How Clem Built a Handheld Sci-Fi Communicator That Really Works&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71990/building-the-cylon-pumpkin-combining-a-larson-scanner-and-vocoder-for-halloween----episode-688" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 688: Building the Cylon Pumpkin: Combining a Larson Scanner and Vocoder for Halloween&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71989/turning-a-10-air-fryer-into-an-arduino-powered-filament-dryer----episode-687" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 687: Turning a $10 Air Fryer into an Arduino powered Filament Dryer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71988/creepy-motion-activated-painting-you-can-build-yourself----episode-686" data-icid="e14" data-e14adj="t"&gt;Episode 686: Creepy Motion-Activated Painting You Can Build Yourself&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71987/when-your-body-becomes-the-instrument-clem-builds-the-drone-synth----episode-685" data-icid="e14" data-e14adj="t"&gt;Episode 685: When Your Body Becomes the Instrument: Clem Builds the &amp;ldquo;Dr&amp;ouml;ne&amp;rdquo; Synth&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71985/building-an-audio-reactive-led-matrix-with-a-micro-bit-and-neopixels----episode-684" data-icid="e14" data-e14adj="t"&gt;Episode 684: Building an Audio Reactive LED Matrix with a micro:bit and NeoPixels&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71984/how-to-make-a-portable-emergency-radio-with-an-arduino-nano-in-a-mint-tin----episode-683" data-icid="e14" data-e14adj="t"&gt;Episode 683: How to Make a Portable Emergency Radio with an Arduino Nano in a Mint TinT&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71974/diy-rf-modulator-raspberry-pi-pico-gaming-on-a-sony-watchman-fd-10a-crt----episode-682" data-icid="e14" data-e14adj="t"&gt;Episode 682: DIY RF Modulator + Raspberry Pi Pico = Gaming on a Sony Watchman FD-10A CRT&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71963/turn-anything-into-an-arduino-module-reusing-everyday-electronics----episode-681" data-icid="e14" data-e14adj="t"&gt;Episode 681: Turn anything into an Arduino Module: Reusing Everyday Electronics&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71961/from-kit-to-custom-design-building-a-tube-based-fm-radio----episode-680" data-icid="e14" data-e14adj="t"&gt;Episode 680: From Kit to Custom Design: Building a Tube-Based FM Radio&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71960/esp32-duolingo-owl-project-never-miss-a-lesson-again----episode-679" data-icid="e14" data-e14adj="t"&gt;Episode 679: ESP32 Duolingo Owl Project: Never Miss a Lesson Again&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71959/open-source-attiny3226-arduino-calculator-hardware-case-code-build----episode-678" data-icid="e14" data-e14adj="t"&gt;Episode 678: Open Source ATtiny3226 Arduino Calculator &amp;ndash; Hardware, Case &amp;amp; Code Build&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71955/make-your-own-vocoder-with-teensy-4-0---voice-of-a-cylon----episode-677" data-icid="e14" data-e14adj="t"&gt;Episode 677: Make Your Own Vocoder with Teensy 4.0 - Voice of a Cylon?!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71954/i-tried-building-16-attiny-robots-with-vibration-motors-it-was-a-disaster----episode-676" data-icid="e14" data-e14adj="t"&gt;Episode 676: I Tried Building 16 ATtiny Robots with Vibration Motors &amp;ndash; It Was a Disaster&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71953/avoid-conflict-with-this-esp32-defcon-task-tracker----episode-675" data-icid="e14" data-e14adj="t"&gt;Episode 675:Avoid Conflict with this ESP32 Defcon Task Tracker&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71947/building-an-open-source-blood-pressure-heart-signal-monitor----episode-674" data-icid="e14" data-e14adj="t"&gt;Episode 674: Building an Open Source Blood Pressure &amp;amp; Heart Signal Monitor&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71942/building-an-esp32-powered-warhammer-40k-rhino-with-dynamic-led-effects----episode-673" data-icid="e14" data-e14adj="t"&gt;Episode 673: Building an ESP32 Powered Warhammer 40k Rhino with Dynamic LED Effects!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71936/building-an-autonomous-lego-train-with-circuitpython-and-lidar----episode-672" data-icid="e14" data-e14adj="t"&gt;Episode 672: Building an Autonomous LEGO Train with CircuitPython and LIDAR&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71934/platypusbot---scavenging-for-robotics-parts----episode-671" data-icid="e14" data-e14adj="t"&gt;Episode 671: PlatypusBot - Scavenging for Robotics Parts&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71927/build-a-larson-scanner-with-sound-using-an-esp32----episode-670" data-icid="e14" data-e14adj="t"&gt;Episode 670: Build your own Larson Scanner&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71926/creating-an-esd-or-lightning-detector----episode-669" data-icid="e14" data-e14adj="t"&gt;Episode 669: Creating an ESD (Or Lightning!) Detector!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71925/designing-an-arduino-pid-controlled-micro-drone----episode-668" data-icid="e14" data-e14adj="t"&gt;Episode 668: Designing an Arduino PID Controlled Micro Drone&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71921/emulating-a-speech-synthesis-chip-with-an-esp32----episode-667" data-icid="e14" data-e14adj="t"&gt;Episode 667: Emulating a Speech Synthesis Chip with an ESP32&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71920/how-far-can-i2c-go----episode-666" data-icid="e14" data-e14adj="t"&gt;Episode 666: How Far Can I2C Go?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71919/raspberry-pi-ai-tracking-eye-of-sauron---ai-al-barad-dur---episode-665" data-icid="e14" data-e14adj="t"&gt;Episode 665: Raspberry Pi AI Tracking Eye of Sauron - AI AL Barad Dur&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71915/learn-how-to-make-a-photo-booth-with-the-esp32-and-telegram-automation----episode-664" data-icid="e14" data-e14adj="t"&gt;Episode 664: Learn how to Make a Photo Booth with the ESP32 and Telegram Automation!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71911/upcycling-a-vintage-microphone-into-an-emergency-radio-system----episode-663" data-icid="e14" data-e14adj="t"&gt;Episode 663: Upcycling a Vintage Microphone into an Emergency Radio System&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71909/making-a-stronger-affordable-diy-robot-arm-with-3d-printing-with-raspberry-pi-pico----episode-662" data-icid="e14" data-e14adj="t"&gt;Episode 662: Making a Stronger Affordable DIY Robot Arm with 3D Printing with Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71904/make-your-own-led-wrist-watch----episode-661" data-icid="e14" data-e14adj="t"&gt;Episode 661: Clem makes his own LED Wristwatch&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71846/lofi-beats-to-solder-to----episode-660" data-icid="e14" data-e14adj="t"&gt;Episode 660: LoFi Beats to Solder To&lt;/a&gt;&lt;/p&gt;
&lt;p style="clear:both;margin:0;padding:0px;padding-top:12px;"&gt;&lt;a title="Episode 659:&amp;nbsp;DIY Single Board Computer with ESP32 and Raspberry Pi Pico" href="/challenges-projects/element14-presents/project-videos/w/documents/71844/diy-single-board-computer-with-esp32-and-raspberry-pi-pico----episode-659" data-e14adj="t"&gt;Episode 659:&amp;nbsp;DIY Single Board Computer with ESP32 and Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71841/a-smart-youtube-counter-with-an-audio-analyzer---episode---658" data-icid="e14" data-e14adj="t"&gt;Episode 658: A Smart Youtube Counter With An Audio Analyzer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71833/how-to-control-a-lego-mindstorms-kit-with-ai-and-raspberry-pi-5----episode-657" data-icid="e14" data-e14adj="t"&gt;Episode 657: How to Control a LEGO Mindstorms kit with AI and Raspberry Pi 5&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71831/diy-jig-for-your-laser-cutter-with-custom-arduino-automation----episode-656" data-icid="e14" data-e14adj="t"&gt;Episode 656: DIY Jig for your Laser Cutter with Custom Arduino Automation&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71810/diy-hot-plate-for-smd-soldering-using-raspberry-pi-pico----episode-655" data-icid="e14" data-e14adj="t"&gt;Episode 655: DIY Hot Plate for SMD Soldering Using Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71801/how-do-battlebots-work-in-the-pit-with-hypershock----episode-654" data-icid="e14" data-e14adj="t"&gt;Episode 654: How Do BattleBots Work? In the Pit with HyperShock&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71797/edge-lit-7-segment-display-clock-using-raspberry-pi-pico----episode-653" data-icid="e14" data-e14adj="t"&gt;Episode 653: Edge-lit 7-Segment Display Clock Using Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71793/smart-windows-and-blinds-with-arduino-and-raspberry-pi-pico----episode-652" data-icid="e14" data-e14adj="t"&gt;Episode 652: Smart Windows and Blinds with Arduino and Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71784/design-for-manufacturing---project-to-product-by-modifying-off-the-shelf-cases----episode-651" data-icid="e14" data-e14adj="t"&gt;Episode 651: Design for Manufacturing - Project to Product by Modifying Off-the-Shelf Cases&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/46432/using-nordic-s-nrf7002-my-dehumidifier-tells-me-when-it-s-full----episode-650" data-icid="e14" data-e14adj="t"&gt;Episode 650: Using Nordic&amp;#39;s nRF7002, My Dehumidifier Tells Me When It&amp;#39;s Full!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/29545/giant-retro-gaming-magic-mirror-with-a-raspberry-pi-5----episode-649" data-icid="e14" data-e14adj="t"&gt;Episode 649: Giant Retro Gaming Magic Mirror with a Raspberry Pi 5!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/29540/home-ai-image-generation-server-with-lattepanda-and-stable-diffusion----episode-648" data-icid="e14" data-e14adj="t"&gt;Episode 648: Home AI Image Generation Server with LattePanda and Stable Diffusion&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/29537/building-an-open-source-tool-for-cave-surveying----episode-647" data-icid="e14" data-e14adj="t"&gt;Episode 647: Building an Open-Source Tool for Cave Surveying&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28802/creating-a-digital-roulette-table-with-an-esp32-devkit----episode-646" data-icid="e14" data-e14adj="t"&gt;Episode 646: Creating a Digital Roulette Table with an ESP32 DevKit&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28438/practical-diy-pi-pico-current-load-circuits----episode-645" data-icid="e14" data-e14adj="t"&gt;Episode 645: Practical DIY Pi Pico Current Load Circuits&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28421/turning-a-raspberry-pi-pico-into-a-gpu----episode-644" data-icid="e14" data-e14adj="t"&gt;Episode 644: Turning a Raspberry Pi Pico into a GPU!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28418/making-a-tribble-that-detects-klingons----episode-643" data-icid="e14" data-e14adj="t"&gt;Episode 643: Making a Tribble that Detects Klingons&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28416/making-a-time-lapse-camera-with-a-raspberry-pi-5----episode-642" data-icid="e14" data-e14adj="t"&gt;Episode 642: Making a Time-lapse Camera with a Raspberry Pi 5&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28409/moon-phase-display-with-raspberry-pi-pico----episode-641" data-icid="e14" data-e14adj="t"&gt;Episode 641: Moon Phase Display with Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28407/tinkering-vs-engineering-can-you-build-a-laptop-from-scratch----episode-640" data-icid="e14" data-e14adj="t"&gt;Episode 640: Tinkering vs Engineering: Can You Build a Laptop from Scratch?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28405/off-grid-remote-generator-starter----episode-639" data-icid="e14" data-e14adj="t"&gt;Episode 639: Off-Grid Remote Generator Starter?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28387/rp2040-pcb-design-turn-on-and-debug---how-hard-could-it-be----episode-638" data-icid="e14" data-e14adj="t"&gt;Episode 638: RP2040 PCB: Design, Turn-On, and Debug - How Hard Could It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28386/making-music-with-a-lego-guitar-and-capacitive-touch----episode-637" data-icid="e14" data-e14adj="t"&gt;Episode 637: Making Music with a Lego Guitar and Capacitive Touch&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28384/creating-an-imu-based-3d-mouse-with-an-esp32-s3----episode-636" data-icid="e14" data-e14adj="t"&gt;Episode 636: Creating an IMU based 3D Mouse with an ESP32-S3&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28382/vintage-electronics-exploration-with-a-bally-cypress-gardens-bingo-machine---episode-635" data-icid="e14" data-e14adj="t"&gt;Episode 635: Vintage Electronics Exploration with a Bally Cypress Gardens Bingo Machine&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28381/craft-a-festive-led-christmas-sweater-featuring-the-attiny416----episode-634" data-icid="e14" data-e14adj="t"&gt;Episode 634: Craft a Festive LED Christmas Sweater Featuring the ATtiny416&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28376/spying-under-the-christmas-tree-with-an-arduino-powered-ornament----episode-633" data-icid="e14" data-e14adj="t"&gt;Episode 633: Spying Under the Christmas Tree with an Arduino-powered Ornament&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28374/revamping-old-school-pinball-with-an-esp32----episode-632" data-icid="e14" data-e14adj="t"&gt;Episode 632: Revamping Old School Pinball with an ESP32&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28372/all-purpose-debugging-a-practical-universal-screen-with-lcd-displays----episode-631" data-icid="e14" data-e14adj="t"&gt;Episode 631: All-Purpose Debugging: A Practical Universal Screen with LCD Displays&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28370/mega-iie-first-fully-functional-computer-built-around-the-apple-mega-ii-chip----episode-630" data-icid="e14" data-e14adj="t"&gt;Episode 630: Mega IIe: First Fully Functional Computer built around the Apple Mega-II Chip&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28366/backpack-splash-mark-s-water-gun-upgrade-for-epic-outdoor-water-wars----episode-629" data-icid="e14" data-e14adj="t"&gt;Episode 629: Backpack Splash: Mark&amp;#39;s Water Gun Upgrade for Epic Outdoor Water Wars!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28361/affordable-diy-robot-arm-a-deep-dive-into-3d-printing-and-servo-motors----episode-628" data-icid="e14" data-e14adj="t"&gt;Episode 628: Affordable DIY Robot Arm - A Deep Dive into 3D Printing and Servo Motors&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28353/creating-sudostick---from-prototype-to-product----episode-627" data-icid="e14" data-e14adj="t"&gt;Episode 627: Creating sudostick - From Prototype to Product&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28351/catching-you-up-on-bonesnapper-ridge---off-grid-maker-shop----episode-626" data-icid="e14" data-e14adj="t"&gt;Episode 626: Catching you Up on Bonesnapper Ridge - Off-Grid Maker Shop&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28344/interactive-magic-creating-an-enchanted-cauldron----episode-625" data-icid="e14" data-e14adj="t"&gt;Episode 625: Interactive Magic - Creating an Enchanted Cauldron&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28342/episode-624-modding-a-smoke-machine-to-add-motion-detection" data-icid="e14" data-e14adj="t"&gt;Episode 624: Modding A Smoke Machine to Add Motion Detection&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28339/episode-623-how-to-run-linux-on-an-esp32" data-icid="e14" data-e14adj="t"&gt;Episode 623: How to Run Linux on an ESP32&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28334/episode-622-building-spooky-fun-halloween-sound-pranks-with-nrf-5340-ble-audio" data-icid="e14" data-e14adj="t"&gt;Episode 622: Building Spooky Fun: Halloween Sound Pranks with nRF 5340 BLE Audio&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28330/episode-621-color-sensor-based-water-quality-tracker-diy-environmental-monitoring" data-icid="e14" data-e14adj="t"&gt;Episode 621: Color Sensor-Based Water Quality Tracker: DIY Environmental Monitoring&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28328/episode-620-stey-by-step-guide-to-creating-your-own-speaking-animatronic-hat" data-icid="e14" data-e14adj="t"&gt;Episode 620: Stey-by-Step Guide to Creating your own Speaking Animatronic Hat&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28316/episode-619-how-to-build-an-open-source-bluetooth-mechanical-keyboard" data-icid="e14" data-e14adj="t"&gt;Episode 619: How to Build an Open Source Bluetooth Mechanical Keyboard&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28308/episode-618-upgrading-my-racing-sim-with-a-force-sensitive-keyboard" data-icid="e14" data-e14adj="t"&gt;Episode 618: Upgrading My Racing Sim with a Force-Sensitive Keyboard&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28306/episode-617-simplify-network-monitoring-building-an-esp32-powered-solution" data-icid="e14" data-e14adj="t"&gt;Episode 617: Simplify Network Monitoring: Building an ESP32-Powered Solution&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28300/episode-616-mastering-oven-control-precision-resin-curing-with-diy-modifications---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 616: Mastering Oven Control: Precision Resin Curing with DIY Modifications - How Hard Can it Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28290/episode-615-building-a-unique-usb-card-reader-from-idea-to-prototype" data-icid="e14" data-e14adj="t"&gt;Episode 615: Building a Unique USB Card Reader: From Idea to Prototype&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28278/episode-614-using-pid-proportional-integral-derivative-in-robotics---how-hard-could-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 614: Using PID (Proportional-Integral-Derivative) in Robotics - How Hard Could It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28274/episode-613-building-a-magic-wand-talking-sound-board" data-icid="e14" data-e14adj="t"&gt;Episode 613: Building a Magic Wand Talking Sound Board&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28271/episode-612-handheld-basic-computer-in-badge-format-with-the-arduino-uno" data-icid="e14" data-e14adj="t"&gt;Episode 612: Handheld BASIC computer in Badge Format with the Arduino Uno&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28267/episode-611-how-to-run-the-distance-to-the-moon-with-strava-data-and-a-pico-w-board" data-icid="e14" data-e14adj="t"&gt;Episode 611: How to Run the Distance to the Moon with Strava Data and a Pico W Board&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28214/episode-610-how-to-embroider-with-circuits-and-conductive-thread" data-icid="e14" data-e14adj="t"&gt;Episode 610: How to Embroider with Circuits and Conductive Thread&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28213/episode-609-updating-a-fujitsu-n860-2500-t111-keyboard-to-work-with-a-ps2-standard" data-icid="e14" data-e14adj="t"&gt;Episode 609: Updating a Fujitsu N860-2500-T111 Keyboard to Work with a PS2 Standard&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28200/episode-608-making-the-simplest-diy-wind-energy-generator---how-hard-could-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 608: Making the Simplest DIY Wind Energy Generator - How Hard Could it Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28198/episode-607-from-strava-to-motion-creating-an-arduino-powered-arcade-game-with-running-data" data-icid="e14" data-e14adj="t"&gt;Episode 607: From Strava to Motion: Creating an Arduino-Powered Arcade Game with Running Data&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28184/episode-606-how-to-use-lorawan-to-launch-model-rockets-wirelessly" data-icid="e14" data-e14adj="t"&gt;Episode 606: How to Use LoRaWAN to Launch Model Rockets Wirelessly&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28152/episode-605-arduino-and-leds-make-solitaire-easier-to-solve" data-icid="e14" data-e14adj="t"&gt;Episode 605: Arduino and LEDs Make Solitaire Easier to Solve&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28140/episode-604-charlieplexing-buttons-and-leds-at-the-same-time---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 604: Charlieplexing Buttons and LEDs at the Same Time - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28138/episode-603-create-your-own-air-hockey-table-with-arduino-scoring" data-icid="e14" data-e14adj="t"&gt;Episode 603: Create Your Own Air Hockey Table with Arduino Scoring&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28133/episode-602-diy-ac-dimmer-circuit-control-your-lights-with-a-raspberry-pi-pico" data-icid="e14" data-e14adj="t"&gt;Episode 602: DIY AC Dimmer Circuit: Control Your Lights with a Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28131/episode-601-how-to-reverse-engineer-electronics-building-a-developer-board-for-a-coding-class" data-icid="e14" data-e14adj="t"&gt;Episode 601: How to Reverse Engineer Electronics: Building a Developer Board for a Coding Class&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28126/episode-600-building-my-dream-digital-clock-diy-7-segment-display-with-a-cute-robot-twist" data-icid="e14" data-e14adj="t"&gt;Episode 600: Building My Dream Digital Clock: DIY 7 Segment Display with a Cute Robot Twist!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28117/episode-599-how-to-build-a-spectrum-analyzer-with-lego-bricks-discrete-electronics" data-icid="e14" data-e14adj="t"&gt;Episode 599: How to Build a Spectrum Analyzer with Lego Bricks &amp;amp; Discrete Electronics&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28102/episode-598-how-to-build-a-portable-solar-charged-off-grid-power-station" data-icid="e14" data-e14adj="t"&gt;Episode 598: How To Build a Portable, Solar-Charged Off-Grid Power Station&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28097/episode-597-how-to-build-a-robot-that-celebrates-good-grades-with-arduino" data-icid="e14" data-e14adj="t"&gt;Episode 597: How to Build a Robot that Celebrates Good Grades with Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28084/episode-596-how-to-build-your-own-voice-assistant-with-mycroft-ai---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 596: How to Build Your Own Voice Assistant with MyCroft AI - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28082/episode-595-member-challenge-accepted---universal-lanc-controller-for-dslr-cameras" data-icid="e14" data-e14adj="t"&gt;Episode 595: Member Challenge Accepted - Universal LANC Controller for DSLR cameras&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28059/episode-594-repairing-a-neewer-660-studio-light---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 594: Repairing a Neewer 660 Studio light - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28057/episode-593-playing-3d-famicom-games-wirelessly-on-the-nes---how-hard-could-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 593: Playing 3D Famicom Games Wirelessly on the NES - How Hard Could It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28050/episode-592-lamptopus-spinning-led-desk-lamp" data-icid="e14" data-e14adj="t"&gt;Episode 592: Lamptopus: Spinning LED Desk Lamp&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28036/episode-591-building-a-bluetooth-speaker-in-5-minutes---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 591: Building A Bluetooth Speaker in 5 Minutes - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28033/episode-590-seven-kingdoms-open-source-bartop-arcade" data-icid="e14" data-e14adj="t"&gt;Episode 590: Seven Kingdoms Open Source Bartop Arcade&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28024/episode-589-upgrading-the-imac-g4-with-a-nuc" data-icid="e14" data-e14adj="t"&gt;Episode 589: Upgrading the iMac G4 With a NUC&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28020/episode-588-highlights-from-element14-presents-2022" data-icid="e14" data-e14adj="t"&gt;Episode 588: Highlights from element14 presents 2022&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27982/episode-587-create-your-own-talking-stress-indicator" data-icid="e14" data-e14adj="t"&gt;Episode 587: Create Your Own Talking Stress Indicator&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27965/episode-586-diy-open-source-bluetooth-headphones" data-icid="e14" data-e14adj="t"&gt;Episode 586: DIY Open Source Bluetooth Headphones&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27960/episode-585-enhancing-a-magnifying-headband-with-auto-sensing-light" data-icid="e14" data-e14adj="t"&gt;Episode 585: Enhancing a Magnifying Headband with Auto Sensing Light&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27952/episode-584-going-beyond-periodic-wakes-using-wifi-to-revive-a-sleeping-device" data-icid="e14" data-e14adj="t"&gt;Episode 584: Going Beyond Periodic Wakes: Using WiFi to Revive a Sleeping Device&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27934/episode-583-epic-neopixel-birthday-cake" data-icid="e14" data-e14adj="t"&gt;Episode 583: Epic Neopixel Birthday Cake&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27917/episode-582-smart-christmas-decoration-with-raspberry-pi-pico-and-mqtt" data-icid="e14" data-e14adj="t"&gt;Episode 582: Smart Christmas Decoration with Raspberry Pi Pico and MQTT&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27900/episode-581-bee-saving-electronics-prototype" data-icid="e14" data-e14adj="t"&gt;Episode 581: Bee-Saving Electronics Prototype&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27894/episode-580-diy-low-cost-capacitance-meter-using-a-555-timer" data-icid="e14" data-e14adj="t"&gt;Episode 580: DIY Low Cost Capacitance Meter Using a 555 Timer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27881/episode-579-how-to-make-a-basketball-auto-score-keeper-using-colour-sensing" data-icid="e14" data-e14adj="t"&gt;Episode 579: How to Make a Basketball Auto Score Keeper Using Colour Sensing&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27879/episode-578-build-your-own-bat-detector-with-analog-parts" data-icid="e14" data-e14adj="t"&gt;Episode 578: Build your Own Bat Detector with Analog Parts&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27862/episode-577-the-game-guy-mini-upgrading-the-unportable-game-boy" data-icid="e14" data-e14adj="t"&gt;Episode 577: The Game Guy Mini, Upgrading the Unportable Game Boy!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27861/episode-576-build-your-own-underwater-drone-with-3d-printed-parts" data-icid="e14" data-e14adj="t"&gt;Episode 576: Build your own Underwater Drone with 3D Printed Parts&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27855/episode-575-how-to-make-a-secured-parcel-pickup-box-with-arduino" data-icid="e14" data-e14adj="t"&gt;Episode 575: How to Make a Secured Parcel Pickup Box with Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27846/episode-574-ghost-rider-halloween-costume" data-icid="e14" data-e14adj="t"&gt;Episode 574: Ghost Rider Halloween Costume&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27836/episode-573-using-a-pi-pico-to-convert-keyboard-input-to-morse-code" data-icid="e14" data-e14adj="t"&gt;Episode 573: Using a Pi Pico to Convert Keyboard Input to Morse Code&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27824/episode-572-how-to-use-an-esp32-camera-to-know-you-ve-got-mail" data-icid="e14" data-e14adj="t"&gt;Episode 572: How to Use an ESP32 &amp;amp; Camera to Know You&amp;#39;ve Got Mail!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27807/episode-571-using-dead-batteries-to-test-for-dead-batteries" data-icid="e14" data-e14adj="t"&gt;Episode 571: Using Dead Batteries to Test for Dead Batteries&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27805/episode-570-making-a-wifi-connected-audio-spectrum-analyzer-with-esp32" data-icid="e14" data-e14adj="t"&gt;Episode 570: Making a WiFi Connected Audio Spectrum Analyzer with ESP32&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27803/episode-569-multi-spectrum-uv-resin-curing-station-with-wurth-leds" data-icid="e14" data-e14adj="t"&gt;Episode 569: Multi-Spectrum UV Resin Curing Station with W&amp;uuml;rth LEDs&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27787/episode-568-how-to-make-a-custom-soundboard-with-the-stm32f4-using-freecad" data-icid="e14" data-e14adj="t"&gt;Episode 568: How to Make a Custom Soundboard with the STM32F4 using FreeCAD&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27785/episode-567-synced-neopixel-mickey-mouse-ears" data-icid="e14" data-e14adj="t"&gt;Episode 567: Synced NeoPixel Mickey Mouse Ears&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27760/episode-566-how-to-automate-industrial-welding-positioners-with-arduino" data-icid="e14" data-e14adj="t"&gt;Episode 566: How to Automate Industrial Welding Positioners with Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27758/episode-565-measuring-destructive-testing-force-with-a-20-ton-hydraulic-press" data-icid="e14" data-e14adj="t"&gt;Episode 565: Measuring Destructive Testing Force with a 20 Ton Hydraulic Press&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27734/episode-564-build-a-vu-meter-with-led-pixelated-nixie-tubes" data-icid="e14" data-e14adj="t"&gt;Episode 564: Build a VU Meter with LED Pixelated Nixie Tubes&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27732/episode-563-creating-augmented-reality-circuits-with-meta-quest-2-and-unity" data-icid="e14" data-e14adj="t"&gt;Episode 563: Creating Augmented Reality Circuits with Meta Quest 2 and Unity&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27730/episode-562-pi-home-temperature-monitoring-system" data-icid="e14" data-e14adj="t"&gt;Episode 562: Pi Home Temperature Monitoring System&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27728/episode-561-wifi-to-parallel-port-ascii-art-dot-matrix-printer" data-icid="e14" data-e14adj="t"&gt;Episode 561: WiFi to Parallel Port Ascii Art Dot-Matrix Printer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27727/episode-560-raspberry-pi-controlled-lego-train-with-build-hat" data-icid="e14" data-e14adj="t"&gt;Episode 560: Raspberry Pi Controlled Lego Train with Build HAT&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27706/episode-559-create-a-magic-makeup-mirror-with-pose-detection" data-icid="e14" data-e14adj="t"&gt;Episode 559: Create a Magic Makeup Mirror with Pose Detection&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27700/episode-558-3d-object-rendering-using-an-fpga" data-icid="e14" data-e14adj="t"&gt;Episode 558: 3D Object Rendering Using an FPGA&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27694/episode-557-create-your-own-handheld-serial-monitor-for-project-debugging" data-icid="e14" data-e14adj="t"&gt;Episode 557: Create your own Handheld Serial Monitor for Project Debugging&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27666/episode-556-hacking-a-hotel-pos-tablet---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 556: Hacking a Hotel POS Tablet - How Hard Can it Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27664/episode-555-dance-central-pose-estimation-game-with-tensorflow-and-raspberry-pi" data-icid="e14" data-e14adj="t"&gt;Episode 555: Dance Central Pose Estimation Game with Tensorflow and Raspberry Pi&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27647/episode-554-arduino-uno-mini-limited-edition-led-necklace" data-icid="e14" data-e14adj="t"&gt;Episode 554: Arduino Uno Mini Limited Edition LED Necklace&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27645/episode-553-adding-a-parallel-printer-port-to-an-android-phone" data-icid="e14" data-e14adj="t"&gt;Episode 553: Adding a Parallel Printer Port to an Android Phone&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27616/episode-552---magical-potion-bottle-rack" data-icid="e14" data-e14adj="t"&gt;Episode 552: Magical Potion Bottle Rack&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27614/episode-551-can-we-rebuild-a-1930s-accounting-machine" data-icid="e14" data-e14adj="t"&gt;Episode 551: Can We Rebuild a 1930s Accounting Machine?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27608/episode-550-diy-electronic-controlled-motorized-wheelchair" data-icid="e14" data-e14adj="t"&gt;Episode 550: DIY Electronic Controlled Motorized Wheelchair&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27606/episode-549-using-a-teletype-machine-as-a-usb-printer-with-arduino" data-icid="e14" data-e14adj="t"&gt;Episode 549: Using a Teletype Machine as a USB Printer with Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27597/episode-548-electronic-fidget-cube-building-your-ideas" data-icid="e14" data-e14adj="t"&gt;Episode 548: Electronic Fidget Cube, Building Your Ideas!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27577/episode-547-creating-a-mummy-wake-word-detector-with-raspberry-pi-and-edge-impulse" data-icid="e14" data-e14adj="t"&gt;Episode 547: Creating a &amp;ldquo;Mummy&amp;rdquo; Wake Word Detector with Raspberry Pi and Edge Impulse&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27567/episode-546-mapping-the-outputs-of-a-1960s-teletype-machine---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 546: Mapping the Outputs of a 1960s Teletype Machine - How Hard Can it Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27576/episode-545-designing-a-custom-pcb-for-microsoft-jacdac" data-icid="e14" data-e14adj="t"&gt;Episode 545: Designing a Custom PCB for Microsoft Jacdac&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27548/episode-544-reviving-the-1984-ibm-5155---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 544: Reviving the 1984 IBM 5155 - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27522/episode-543-lego-spike-prime-weather-station-with-raspberry-pi" data-icid="e14" data-e14adj="t"&gt;Episode 543: Lego Spike Prime Weather Station with Raspberry Pi&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27520/episode-542-a-noise-free-diy-switching-power-supply---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 542: A Noise-Free DIY Switching Power Supply - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27495/episode-541-vintage-laptop-battery-replaced-with-usb-power---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 541: Vintage Laptop Battery Replaced with USB Power - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27493/episode-540-object-detection-for-smart-recycling" data-icid="e14" data-e14adj="t"&gt;Episode 540: Object Detection for Smart Recycling&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27484/episode-539-training-a-machine-to-recognize-objects---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 539: Training a Machine to Recognize Objects - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27483/episode-538-how-to-build-a-quadruped-robot---no-math" data-icid="e14" data-e14adj="t"&gt;Episode 538: How to Build a Quadruped Robot - NO MATH!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27460/episode-537-build-a-phonograph-preamplifier---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 537: Build a Phonograph Preamplifier - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27458/episode-536-interactive-light-up-window-with-pose-detection-using-a-raspberry-pi-and-micro-bit" data-icid="e14" data-e14adj="t"&gt;Episode 536: Interactive Light-Up Window with Pose Detection using a Raspberry Pi and micro:bit&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27441/episode-535-repair-a-sega-game-gear---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 535: Repair a Sega Game Gear - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27435/episode-534-open-source-inventory-warehousing-system" data-icid="e14" data-e14adj="t"&gt;Episode 534: Open Source Inventory Warehousing System&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27432/episode-533-jumbo-diy-led" data-icid="e14" data-e14adj="t"&gt;Episode 533: Jumbo DIY LED&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27412/episode-532-world-s-first-single-chip-apple-ii-boots" data-icid="e14" data-e14adj="t"&gt;Episode 532: World&amp;rsquo;s First Single-Chip Apple II Boots!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27407/episode-531-game-guy---the-unportable-game-boy" data-icid="e14" data-e14adj="t"&gt;Episode 531: Game Guy - The Unportable Game Boy&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27399/episode-530-mqtt-controlled-led-christmas-baubles-with-raspberry-pi-pico" data-icid="e14" data-e14adj="t"&gt;Episode 530: MQTT controlled LED Christmas Baubles with Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27392/episode-529-updi-program-for-new-attiny" data-icid="e14" data-e14adj="t"&gt;Episode 529: UPDI Program for new ATTiny&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27383/episode-528-let-s-build-an-electronic-fidget-cube" data-icid="e14" data-e14adj="t"&gt;Episode 528: Let&amp;#39;s Build an Electronic Fidget Cube!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27375/episode-527---interactive-light-up-window-using-a-raspberry-pi-and-micro-bit" data-icid="e14" data-e14adj="t"&gt;Episode 527: Interactive Light Up Window using a Raspberry Pi and micro:bit&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27366/episode-526-cnc-router-remote-control" data-icid="e14" data-e14adj="t"&gt;Episode 526: CNC Router Remote Control&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27338/episode-525-demonstrating-magnetic-fields-with-helmholtz-coils-in-a-snow-globe" data-icid="e14" data-e14adj="t"&gt;Episode 525: DIY Helmholtz Snow Globe&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/27287/episode-524-arduino-iot-cloud-weather-station" data-e14adj="t"&gt;Episode 524: Arduino IoT Cloud Weather Station&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/27276/episode-523-make-your-own-auto-sensing-solder-fume-extractor" data-e14adj="t"&gt;Episode 523: Make your Own Auto-Sensing Solder Fume Extractor&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/23245/episode-522-siren-head-halloween-wearable-costume" data-e14adj="t"&gt;Episode 522: Siren Head Halloween Wearable Costume&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/23240/episode-521-diy-static-grass-applicator" data-e14adj="t"&gt;Episode 521: DIY Static Grass Applicator&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/23232/episode-520-adding-android-auto-as-non-permanent-add-on-with-raspberry-pi" data-e14adj="t"&gt;Episode 520: Adding Android Auto as Non-Permanent Add-On with Raspberry Pi&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/23225/episode-519-make-your-own-ye-olde-book-nook-diorama-with-arduino" data-e14adj="t"&gt;Episode 519: Make Your Own Ye Olde Book Nook Diorama with Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/23212/episode-518-guitar-vacuum-tube-distortion-pedal" data-e14adj="t"&gt;Episode 518: Guitar Vacuum Tube Distortion Pedal&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/secret-element14-presents/w/documents/4141/episode-517-emulate-an-eprom---how-hard-could-it-be" data-e14adj="t"&gt;Episode 517: Emulate an EPROM - How Hard Could it Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/23199/episode-516-modding-a-wireless-doorbell-with-raspberry-pi-and-esp8266" data-e14adj="t"&gt;Episode 516: Modding a Wireless Doorbell with Raspberry Pi and ESP8266&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/23190/episode-515-upcycling-a-lenovo-pc-into-a-raspberry-pi-wifi-access-point" data-e14adj="t"&gt;Episode 515: Upcycling a Lenovo PC into a Raspberry Pi WiFi Access Point&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/23183/episode-514-making-a-3d-graphics-card-for-the-atari-800-xl" data-e14adj="t"&gt;Episode 514: Making a 3D Graphics Card for the Atari 800 XL&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5429/episode-513-bike-speedometer-with-arduino-and-gps" data-e14adj="t"&gt;Episode 513: Bike Speedometer with Arduino and GPS&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5422/episode-512-you-cannot-buy-this-vacuum-tube-tester-you-build-it" data-e14adj="t"&gt;Episode 512: You Cannot Buy This Vacuum Tube Tester. You Build It!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5418/episode-511-face-tracking-cheeseball-launcher" data-e14adj="t"&gt;Episode 511:&amp;nbsp; Raspberry Pi Powered Cheeseball Launcher&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5407/episode-510-laser-cutter-command-station" data-e14adj="t"&gt;Episode 510: Laser Cutter Command Station&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5402/episode-509-diy-discrete-logic-led-countdown-timer" data-e14adj="t"&gt;Episode 509: DIY Discrete Logic LED Countdown Timer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5397/episode-508-raspberry-pi-fpv-rover-easy-robot-arm-upgrade" data-e14adj="t"&gt;Episode 508: Raspberry Pi FPV Rover Easy Robot Arm Upgrade&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5391/episode-507-massive-raspberry-pi" data-e14adj="t"&gt;Episode 507: Massive Raspberry Pi&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5377/episode-506-diy-star-trek-tricorder-from-build-inside-the-box" data-e14adj="t"&gt;Episode 506: DIY Star Trek Tricorder from Build Inside the Box&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5374/episode-505-super-8-camera-digitizer" data-e14adj="t"&gt;Episode 505: Super 8 Camera Digitizer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5369/episode-504-diy-sump-pump-alarm" data-e14adj="t"&gt;Episode 504: DIY Sump Pump Alarm&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5360/episode-503-meet-cheesoid---the-robot-that-smells" data-e14adj="t"&gt;Episode 503: Meet Cheesoid - The Robot That Smells!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5352/episode-502-make-your-bike-a-pokebike" data-e14adj="t"&gt;Episode 502: Make Your Bike a Pokebike!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5033/episode-501-raspberry-pi-nfc-button-free-music-player" data-e14adj="t"&gt;Episode 501: Raspberry Pi NFC Button-Free Music Player&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/20721/episode-500-build-inside-the-box-challenge" data-e14adj="t"&gt;Episode 500:&amp;nbsp; Build Inside The Box Challenge!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5332/episode-499-diy-four-channel-arduino-servo-tester" data-e14adj="t"&gt;Episode 499: DIY Four Channel Arduino Servo Tester&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8706/episode-498-raspberry-pi-smart-water-dispenser" data-e14adj="t"&gt;Episode 498: Raspberry Pi Smart Water Dispenser&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5318/episode-497-raspberry-pi-rfid-pocket-money-keeper" data-e14adj="t"&gt;Episode 497: RFID Pocket Money Keeper&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8705/episode-496-compute-module-4-powered-3d-printer-board" data-e14adj="t"&gt;Episode 496: Compute Module 4 Powered 3D Printer Board&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5308/episode-495-magic-gif-ball-powered-by-raspberry-pi" data-e14adj="t"&gt;Episode 495: Magic GIF Ball Powered By Raspberry Pi&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5299/episode-494-keyboard-shortcuts-keypad-with-raspberry-pi-pico" data-e14adj="t"&gt;Episode 494: Keyboard Shortcuts Keypad with Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5290/episode-493-neopixel-7-segment-display-clock-update" data-e14adj="t"&gt;Episode 493: NeoPixel 7 Segment Display Clock Update&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5275/episode-492-arduino-vs-555-timer---tiny-slot-car-racers" data-e14adj="t"&gt;Episode 492: Arduino vs 555 Timer - Tiny Slot Car Racers&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5273/episode-491-arduino-single-wheel-balancing-robot" data-e14adj="t"&gt;Episode 491: Arduino Single-Wheel Balancing Robot&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5256/episode-490-diy-raspberry-pi-pico-fizz-buzz-multiplication-game" data-e14adj="t"&gt;Episode 490: DIY Raspberry Pi Pico Fizz Buzz Multiplication Game&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5254/episode-489-build-an-fpv-rover-with-raspberry-pi" data-e14adj="t"&gt;Episode 489: Build An FPV Rover with Raspberry Pi&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5233/episode-488-diy-raspberry-pi-cyberdeck" data-e14adj="t"&gt;Episode 488: DIY Raspberry Pi Cyberdeck&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5232/episode-487-diy-magsafe-battery-charger" data-e14adj="t"&gt;Episode 487: DIY MagSafe Battery Charger&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5229/episode-486-make-the-ultimate-phone-charging-camping-flashlight" data-e14adj="t"&gt;Episode 486: Make The Ultimate Phone Charging Camping Flashlight&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5213/episode-485-how-to-make-a-custom-pcb-from-design-to-assembly" data-e14adj="t"&gt;Episode 485: How To Make A Custom PCB From Design To Assembly&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5211/episode-484-raspberry-pi-bird-watching-camera" data-e14adj="t"&gt;Episode 484: Raspberry Pi Bird Watching Camera&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5201/episode-483-diy-miniature-multimeter" data-e14adj="t"&gt;Episode 483: DIY Miniature Multimeter&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5196/episode-482-gigantic-3d-printed-7-segment-display-clock" data-e14adj="t"&gt;Episode 482: Gigantic 3D Printed 7 Segment Display Clock&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5188/episode-481-diy-lost-swan-station-split-flap-display-timer" data-e14adj="t"&gt;Episode 481: DIY LOST Swan Station Split Flap Display Timer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5181/episode-480-diy-toothbrush-timer" data-e14adj="t"&gt;Episode 480: DIY Toothbrush Timer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5179/episode-479-raspberry-pi-2xl-robot-assistant-part-2" data-e14adj="t"&gt;Episode 479: Raspberry Pi 2XL Robot Assistant Part 2&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5171/episode-478-upgrading-a-christmas-train-with-python-and-raspberry-pi" data-e14adj="t"&gt;Episode 478: Upgrading A Christmas Train&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5169/episode-477-metal-plate-your-3d-prints-with-a-diy-galvanizing-machine" data-e14adj="t"&gt;Episode 477: Metal Plate Your 3D Prints with a DIY Galvanizing Machine&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5160/episode-476-iot-arduino-ntp-world-clock-with-spi-display" data-e14adj="t"&gt;Episode 476: IoT Arduino NTP World Clock with SPI Display&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5147/episode-475-diy-wall-mounted-arduino-barometer" data-e14adj="t"&gt;Episode 475: DIY Wall Mounted Arduino Barometer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5144/episode-474-continuum-robot-tentacle-prototype" data-e14adj="t"&gt;Episode 474: Continuum Robot Tentacle Prototype&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8680/episode-473-mendel-3d-printer-upgrade-and-maintenance" data-e14adj="t"&gt;Episode 473: Mendel 3D Printer Upgrade and Maintenance&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5120/episode-472-diy-hydration-reminder-system" data-e14adj="t"&gt;Episode 472: DIY Hydration Reminder System&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5113/episode-471-diy-dance-dance-revolution-mat" data-e14adj="t"&gt;Episode 471: DIY Dance Dance Revolution Mat&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5102/episode-470-voice-activated-inspector-gadget-hat" data-e14adj="t"&gt;Episode 470: Voice Activated Inspector Gadget Hat&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5063/episode-469-nintendo-super-scope-modded-for-modern-televisions" data-e14adj="t"&gt;Episode 469: Nintendo Super Scope Modded For Modern Televisions&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5092/episode-468-socially-distanced-halloween-candy-dispenser" data-e14adj="t"&gt;Episode 468: Socially Distanced Halloween Candy Dispenser&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5077/episode-467-repairing-the-world-s-first-laptop-epson-hx-20" data-e14adj="t"&gt;Episode 467: Repairing the World&amp;#39;s First Laptop! (Epson HX-20)&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5061/episode-466-arduino-powered-hexadecimal-color-code-clock" data-e14adj="t"&gt;Episode 466: Arduino-powered Hexadecimal Color Code Clock&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5034/episode-465-lego-raspberry-pi-hq-camera" data-e14adj="t"&gt;Episode 465: Lego Raspberry Pi HQ Camera&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5031/episode-464-particle-voice-recognition-for-home-appliances" data-e14adj="t"&gt;Episode 464: Particle Voice Recognition for Home Appliances&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5002/episode-463-raspberry-pi-speech-to-text-led-face-mask" data-e14adj="t"&gt;Episode 463: Raspberry Pi Speech to Text LED Face Mask&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5012/episode-462-joycon-controlled-electronic-rock-em-sock-em-robots" data-e14adj="t"&gt;Episode 462: Joycon Controlled Electronic Rock&amp;#39;Em Sock&amp;#39;Em Robots&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4980/episode-461-portal-2-security-camera-with-raspberry-pi-2" data-e14adj="t"&gt;Episode 461: Portal 2 Security Camera with Raspberry Pi 2&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4985/episode-460-trinamic-open-source-ventilator-tosv-teardown" data-e14adj="t"&gt;Episode 460: Trinamic Open Source Ventilator (TOSV) Teardown&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4961/episode-459-raspberry-pi-4-vr-conference-call-assistant" data-e14adj="t"&gt;Episode 459: Raspberry Pi 4 VR Conference Call Assistant&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4971/episode-458-diy-arduino-automated-metal-bending-machine" data-e14adj="t"&gt;Episode 458: DIY Arduino Automated Metal Bending Machine&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4966/episode-457-arduino-mkr-zero-animatronic-rosie-the-robot-from-the-jetsons" data-e14adj="t"&gt;Episode 457: Raspberry Pi 4 Animatronic Rosie the Robot from the Jetsons&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8665/episode-456-unhackable-arduino-switch-matrix" data-e14adj="t"&gt;Episode 456: Unhackable Arduino Switch Matrix&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8664/episode-455-arduino-unit-conversion-calculator" data-e14adj="t"&gt;Episode 455: Arduino Unit Conversion Calculator&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4942/episode-454-soldering-up-the-rc2014-homebrew-z80-computer-kit" data-e14adj="t"&gt;Episode 454: Soldering Up the rc2014 Homebrew Z80 Computer Kit&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4937/episode-453-build-an-anti-troll-bot-using-tensorflow-and-arduino" data-e14adj="t"&gt;Episode 453: Build an Anti-Troll Bot Using TensorFlow and Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4914/episode-452-raspberry-pi-4-experimental-resin-3d-printer-updated" data-e14adj="t"&gt;Episode 452: Raspberry Pi 4 Experimental Resin 3D Printer Updated!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4913/episode-451-build-an-off-grid-wikipedia-with-raspberry-pi" data-e14adj="t"&gt;Episode 451: Build an Off Grid Wikipedia with Raspberry Pi&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4906/episode-450-sega-gamegear-rebuild-with-leds" data-e14adj="t"&gt;Episode 450: Sega GameGear Rebuild with LEDs&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8657/episode-449-diy-tamagotchi---build-a-virtual-pet" data-e14adj="t"&gt;Episode 449: DIY Tamagotchi - Build a Virtual Pet&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4895/episode-448-diy-raspberry-pi-4-boxing-game" data-e14adj="t"&gt;Episode 448: DIY Raspberry Pi 4 Boxing Game&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4873/episode-447-diy-stop-motion-rig-with-lattepanda" data-e14adj="t"&gt;Episode 447: DIY Stop Motion Rig with LattePanda&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4871/episode-446-raspberry-pi-2xl-robot-assistant-part-1" data-e14adj="t"&gt;Episode 446: Raspberry Pi 2XL Robot Assistant Part 1&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8652/episode-445-raspberry-pi-4-animatronic-bd-1-companion-robot" data-e14adj="t"&gt;Episode 445: Raspberry Pi 4 Animatronic BD-1 Companion Robot&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4848/episode-444-raspberry-pi-4-dvr" data-e14adj="t"&gt;Episode 444: Raspberry Pi 4 DVR&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4836/episode-443-arduino-uno-rc-remote---can-it-be-done" data-e14adj="t"&gt;Episode 443: Arduino Uno RC Remote - Can It Be Done?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4834/episode-442-make-your-own-giant-servo" data-e14adj="t"&gt;Episode 442: Make Your Own Giant Servo&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4818/episode-441-raspberry-pi-4-international-space-station-tracker" data-e14adj="t"&gt;Episode 441: Raspberry Pi 4 International Space Station Tracker&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4810/episode-440-diy-arduino-helicopter-collective-joystick-control" data-e14adj="t"&gt;Episode 440: DIY Arduino Helicopter Collective Joystick Control&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4796/episode-439---mechanical-arcade-game-with-barebones-arduino" data-e14adj="t"&gt;Episode 439 - Mechanical Arcade Game with Barebones Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4787/episode-438-smartphone-controlled-diy-rover-using-websockets" data-e14adj="t"&gt;Episode 438: Smartphone Controlled DIY Rover Using Websockets&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4771/episode-437-diy-motorized-zoom-for-your-dslr" data-e14adj="t"&gt;Episode 437: DIY Motorized Zoom for Your DSLR&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4767/episode-436-automated-raspberry-pi-planet-tracking-goto-telescope" data-e14adj="t"&gt;Episode 436: Automated Raspberry Pi Planet Tracking GOTO Telescope&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4756/episode-435-raspberry-pi-4-music-player-w-analog-controls" data-e14adj="t"&gt;Episode 435: Raspberry Pi 4 Music Player w/Analog Controls&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8637/episode-434-infineon-smart-city-model" data-e14adj="t"&gt;Episode 434: Infineon Smart City Model&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4742/episode-433---arduino-based-love-tester" data-e14adj="t"&gt;Episode 433: Arduino Based Love Tester&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4728/episode-432-super-fx-sword-using-the-bbc-micro-bit" data-e14adj="t"&gt;Episode 432: Super FX Sword using the BBC micro:bit&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4726/episode-431-room-sized-studio-light-speakers-combo" data-e14adj="t"&gt;Episode 431: Room-Sized Studio Light Speakers Combo&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4692/episode-430-flaming-xylophone-rubens-tube" data-e14adj="t"&gt;Episode 430: Flaming Xylophone Rubens&amp;#39; Tube&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4670/episode-429-youtuber-on-air-light-with-particle-mesh-network" data-e14adj="t"&gt;Episode 429: YouTuber &amp;quot;On Air&amp;quot; Light with Particle Mesh Network&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4668/episode-428-raspberry-pi-4-crt-based-vr-headset" data-e14adj="t"&gt;Episode 428: Raspberry Pi 4 CRT-based VR Headset&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4657/episode-427-diy-retro-gaming-portable-on-a-budget" data-e14adj="t"&gt; Episode 427: DIY Retro Gaming Portable on a Budget!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4142/episode-426-retro-tv-ads-holiday-ornament" data-e14adj="t"&gt; Episode 426: Retro TV Ads Holiday Ornament&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4651/episode-425-make-your-own-raspberry-pi-4-photobooth" data-e14adj="t"&gt; Episode 425: Make Your Own Raspberry Pi 4 Photobooth!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4646/episode-424-diy-escape-room-puzzle" data-e14adj="t"&gt; Episode 424: DIY Escape Room Puzzle&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4644/episode-423-programmable-arduino-synthesizer-watch" data-e14adj="t"&gt; Episode 423: Programmable Arduino Synthesizer Watch&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4628/episode-422-raspberry-pi-e-ink-task-organizer" data-e14adj="t"&gt; Episode 422: Raspberry Pi E-Ink Task Organizer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4627/episode-421-raspberry-pi-4-commodore-sx-64-inspired-portable-computer" data-e14adj="t"&gt; Episode 421: Raspberry Pi 4 Commodore SX-64 Inspired Portable Computer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4616/episode-420-diy-shapeoko-cnc-pendant" data-e14adj="t"&gt; Episode 420: DIY Shapeoko CNC Pendant&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4607/episode-419-altair-8800-laptop" data-e14adj="t"&gt; Episode 419: Altair 8800 Laptop &lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4604/episode-418-animatronic-terminator-skull-with-beaglebone-ai-and-giveaway" data-e14adj="t"&gt;&amp;nbsp;Episode 418: Animatronic Terminator Skull with BeagleBone&lt;span class="emoticon" data-url="https://community.element14.com/cfs-file/__key/system/emoji/00ae.svg" title="Registered"&gt;&amp;#x00ae;&lt;/span&gt;&amp;nbsp;AI&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8619/episode-417-pipboy-2000-mk-ii" data-e14adj="t"&gt;Episode 417: #Pipboy 2000 Mk II&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4596/episode-416---diy-3dprinted-label-spooler" data-e14adj="t"&gt;Episode 416: DIY #3DPrinted Label Spooler&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4588/episode-415-iron-man-helmet-heads-up-display" data-e14adj="t"&gt;Episode 415: Iron Man Helmet Heads Up Display&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4580/episode-414-raspberry-pi-4-experimental-resin-3d-printer" data-e14adj="t"&gt;Episode 414: Raspberry Pi 4 Experimental Resin 3D Printer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8610/episode-413-animatronic-claptrap-case-mod-part-2" data-e14adj="t"&gt;Episode 413: Animatronic Claptrap Case Mod Part 2&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4558/episode-412-get-to-know-your-adc-with-a-diy-temperature-probe" data-e14adj="t"&gt;Episode 412: Get to Know Your ADC with a DIY Temperature Probe&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4531/episode-411-animatronic-claptrap-computer-case---part-1" data-e14adj="t"&gt;Episode 411: Animatronic Claptrap Computer Case - Part 1&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4537/episode-410-macpro-g5-cheese-grater-with-raspberry-pi-4" data-e14adj="t"&gt;Episode 410: MacPro G5 Cheese Grater with Raspberry Pi 4&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4522/episode-409-commodore-sx-64-restoration" data-e14adj="t"&gt;Episode 409: Commodore SX-64 Restoration&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4516/episode-408-hand-soldered-led-oscilloscope" data-e14adj="t"&gt;Episode 408: Hand Soldered LED Oscilloscope&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4514/episode-407-the-ultimate-raspberry-pi-4-laptop" data-e14adj="t"&gt;Episode 407: The Ultimate Raspberry Pi 4 Laptop&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4507/episode-406-automated-robot-artist" data-e14adj="t"&gt;Episode 406: Automated Robot Artist&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4493/episode-405-rc-ornithopter-concept" data-e14adj="t"&gt;Episode 405: RC Ornithopter Concept&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4488/episode-404-arduino-powered-close-encounters-midi-light-board" data-e14adj="t"&gt;Episode 404: Arduino Powered Close Encounters Midi Light Board&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4459/episode-403-upcycled-iot-coffee-pot-ramen-maker" data-e14adj="t"&gt;Episode 403: Upcycled IoT Coffee Pot Ramen Maker&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4422/episode-402-piphone-the-giant-raspberry-pi-flip-phone" data-e14adj="t"&gt;Episode 402: PiPhone++ The Giant Raspberry Pi Flip Phone&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4128/episode-401-matrix-voice-controlled-robot" data-e14adj="t"&gt;Episode 401: Matrix Voice Controlled Robot&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4127/episode-400-the-ultimate-raspberry-pi-stress-test" data-e14adj="t"&gt;Episode 400: The Ultimate Raspberry Pi Stress Test&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4129/episode-399-candle-powered-robot" data-e14adj="t"&gt;Episode 399: Candle-Powered Robotl&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4044/episode-398-let-me-out-hooman-bluetooth-dog-doorbell" data-e14adj="t"&gt;Episode 398: Let Me Out Hooman! Bluetooth Dog Doorbell&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4126/episode-397-steam-powered-retropie-console" data-e14adj="t"&gt;Episode 397: Steam Powered Retropie Console&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4043/episode-396-arduino-retro-led-matrix-handheld" data-e14adj="t"&gt;Episode 396: Arduino Retro LED Matrix Handheld&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4042/episode-395-raspberry-pi-stop-motion-machine" data-e14adj="t"&gt;Episode 395: Raspberry Pi Stop Motion Machine&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8531/episode-394-animatronic-glados-head-with-raspberry-pi" data-e14adj="t"&gt;Episode 394: Animatronic GLaDOS Head with Raspberry Pi&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4125/episode-393-gameboy-walkman" data-e14adj="t"&gt;Episode 393: GameBoy Walkman&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4191/episode-392-multi-line-telephone-intercom" data-e14adj="t"&gt;Episode 392: Multi-Line Telephone Intercom&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4124/episode-391-first-person-view-rc-car-with-ps1-steering-wheel" data-e14adj="t"&gt;Episode 391: First Person View RC Car with PS2 Steering Wheel&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4122/episode-390-retro-texting-smart-watch-of-the-future" data-e14adj="t"&gt;Episode 390: Retro Texting Smart Watch of the Future!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4120/episode-389-playstation-classic-portable-prototype" data-e14adj="t"&gt;Episode 389: PlayStation Classic Portable Prototype&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8519/episode-388-fpga-midi-music-synthesizer" data-e14adj="t"&gt;Episode 388: FPGA MIDI Music Synthesizer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4057/episode-387-rotocell---the-rotary-cell-phone-of-the-future" data-e14adj="t"&gt;Episode 387: Rotocell - The Rotary Cell Phone of the Future!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4038/episode-386-xybernaut-wearable-pc" data-e14adj="t"&gt;Episode 386: Xybernaut Wearable PC&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4117/episode-385-20-pcb-design-pitfalls" data-e14adj="t"&gt;Episode 385: 20 PCB Design Pitfalls&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4035/episode-384-retro-gaming-handheld-without-a-pcb" data-e14adj="t"&gt;Episode 384: Retro Gaming Handheld Without a PCB&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4058/episode-383-gameboy-wireless-link-cable-dmg1" data-e14adj="t"&gt;Episode 383: Gameboy Wireless Link Cable (DMG1)&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8501/episode-382-modding-a-super-8-camera-into-a-digital" data-e14adj="t"&gt;Episode 382: Modding a Super 8 Camera into a Digital&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4067/episode-381-reverse-music-box" data-e14adj="t"&gt;Episode 381: Reverse Music Box&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4039/episode-380-nes-zapper-on-retropie" data-e14adj="t"&gt;Episode 380: NES Zapper on RetroPie&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4036/episode-379-macroscope-soldering-tool" data-e14adj="t"&gt;Episode 379: Macroscope Soldering Tool&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8500/episode-378-invader-zim-animatronic-gir" data-e14adj="t"&gt;Episode 378: Invader ZIM Animatronic GIR&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4034/episode-377-altair-8800-replica" data-e14adj="t"&gt;Episode 377: Altair 8800 Replica&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4028/episode-376-4d-gaming-with-the-matrix-creator" data-e14adj="t"&gt;Episode 376: 4D Gaming with the Matrix Creator&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4025/episode-375-hacked-fetal-detector-music-synthesizer" data-e14adj="t"&gt;Episode 375: Hacked Fetal Detector Music Synthesizer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4008/episode-374-raspberry-pi-donkey-kong-holiday-ornament" data-e14adj="t"&gt;Episode 374: Raspberry Pi Donkey Kong Holiday Ornament&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3992/episode-373-raspberry-pi-fallout-terminal-pc" data-e14adj="t"&gt;Episode 373: Raspberry Pi Fallout Terminal PC&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8497/episode-372-raspberry-pi-auto-etch-a-sketch" data-e14adj="t"&gt;Episode 372: Raspberry Pi Auto Etch A Sketch&lt;span class="emoticon" data-url="https://community.element14.com/cfs-file/__key/system/emoji/2122.svg" title="Tm"&gt;&amp;#x2122;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3990/episode-371-fpga-game-genie-for-atari-2600" data-e14adj="t"&gt;Episode 371: FPGA &amp;quot;Game Genie&amp;quot; for Atari 2600&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3989/episode-370-raspberry-pi-noaa-satellite-receiver" data-e14adj="t"&gt;Episode 370: Raspberry Pi NOAA Satellite Receiver&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3979/episode-369-recreating-the-atari-portfolio" data-e14adj="t"&gt;Episode 369: Recreating the Atari Portfolio&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3977/episode-368-arduino-automatic-wire-cutter-and-stripper" data-e14adj="t"&gt;Episode 368: Arduino Automatic Wire Cutter and Stripper&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3968/episode-367-most-useless-iot-device-ever---part-2" data-e14adj="t"&gt;Episode 367: Most Useless IoT Device Ever - Part 2&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3960/episode-366-infinity-icosahedron" data-e14adj="t"&gt;Episode 366: Infinity Icosahedron&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3949/episode-365-twilight-zone-fortune-telling-machine" data-e14adj="t"&gt;Episode 365: Twilight Zone Fortune Telling Machine&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3934/episode-364-raspberry-pi-virtual-reality-arcade" data-e14adj="t"&gt;Episode 364: Raspberry Pi Virtual Reality Arcade #VR&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3920/episode-363-add-a-motor-to-your-bike-with-arduino" data-e14adj="t"&gt;Episode 363 - Add a Motor to your Bike with Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3912/episode-362-most-worthless-iot-device-ever---part-1" data-e14adj="t"&gt;Episode 362: Most Worthless IoT Device Ever Pt. 1&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3903/episode-361-r-o-b-rebuild-and-upgrade" data-e14adj="t"&gt;Episode 361: R.O.B Rebuild and Upgrade&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3887/episode-360-make-your-own-raspberry-pi-cell-phone" data-e14adj="t"&gt;Episode 360: Make Your Own Raspberry Pi Cell Phone&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3875/episode-359-make-your-own-cnc-pyrography-wood-burner" data-e14adj="t"&gt;Episode 359: Make Your Own CNC Pyrography Wood Burner&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3863/episode-358-the-shrimp-of-terror" data-e14adj="t"&gt;Episode 358: The Shrimp of Terror!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3848/episode-357-raspberry-pi-asteroid-tracker" data-e14adj="t"&gt;Episode 357: Raspberry Pi Asteroid Tracker&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8491/episode-356-bank-to-the-future-with-arduino-ti" data-e14adj="t"&gt;Episode 356: Bank to the Future with Arduino &amp;amp; TI&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3826/episode-355-raspberry-pi-pirate-radio" data-e14adj="t"&gt;Episode 355: Raspberry Pi Pirate Radio&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3816/episode-354-tiny-vacuum-forming-machine" data-e14adj="t"&gt;Episode 354: Tiny Vacuum Forming Machine&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3809/episode-353-program-your-own-fpga-video-game" data-e14adj="t"&gt;Episode 353: Program Your Own FPGA Video Game&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3784/episode-352-pripyat---diy-geiger-counter" data-e14adj="t"&gt;Episode 352: Pripyat - DIY Geiger Counter&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3747/episode-349-raspberry-pi-selfie-rocket" data-e14adj="t"&gt;Episode 349: Raspberry Pi Selfie Rocket&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/benheck/ben-heck-exclusive/w/documents/9678/the-ben-heck-show-episode-archive" data-e14adj="t"&gt;See All Previous Episodes&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: episode releases, friday_release_archive, element14 presents, project videos, episodes, friday releases, episode release archive, episode archive, friday release archive, project_videos&lt;/div&gt;
</description></item><item><title>Building and Programming a SCARA Industrial Robot Arm – An Introduction to Robotics</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72087/building-and-programming-a-scara-industrial-robot-arm-an-introduction-to-robotics/revision/5</link><pubDate>Thu, 23 Jul 2026 12:25:32 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4e4a8dd3-a2e0-4155-ae19-ef2b140a1557</guid><dc:creator>cstanton</dc:creator><description>Revision 5 posted to Documents by cstanton on 7/23/2026 12:25:32 PM&lt;br /&gt;
&lt;p&gt;Join Milos as he builds a simple SCARA robot arm and explores the fundamentals of robotics through practical engineering. From robot arm configurations and direct and inverse kinematics to firmware development, Python control software and motion planning, the project shows how mathematical concepts translate into real-world movement. Using a Raspberry Pi Pico 2 W, hobby servos and a custom GUI, the robot is able to move to coordinates, follow trajectories and even draw shapes, providing a hands-on introduction to robotic control systems, calibration and coordinate-based motion. Watch along and you can find the supporting files on the element14 Community.&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7e3uee0"&gt;Time to Strong-Arm Electronics!&lt;/h2&gt;
&lt;div&gt;&lt;a href="https://players.brightcove.net/1362235890001/default_default/index.html?videoId=6401908837112"&gt;players.brightcove.net/.../index.html&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;After exploring electronics, mechanics, control engineering, microcontrollers and robotics fundamentals in the previous instalments of this introduction to robotics series, Milos moves from theory into a practical build. Rather than discussing robotics from an abstract perspective, this project demonstrates how those concepts come together in a working machine: a compact SCARA robot arm capable of moving to coordinates, visualising kinematics and even drawing shapes.&lt;/p&gt;
&lt;p&gt;The aim is not to build the most accurate robot arm possible. Instead, the project focuses on creating something approachable, affordable and educational. As Milos explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;This is the main goal of this course is to keep it as simple as possible so for people that are doing anything like this for the first time.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;By keeping the design simple, the project becomes an effective platform for understanding the principles that underpin industrial robots, from coordinate systems and kinematics through to feedback, calibration and motion control.&lt;/p&gt;
&lt;p&gt;If you&amp;#39;re new to robotics, it is worth reviewing the earlier episodes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72071/building-the-foundations-of-your-first-robot---an-introduction-to-robotics" data-e14adj="t"&gt;Building the Foundations of Your First Robot&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72077/pid-control-motion-profiles-and-ros-explained---an-introduction-to-robotics" data-e14adj="t"&gt;PID Control, Motion Profiles and ROS Explained&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1ju7e3uee1"&gt;&lt;img alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000034.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1ju7b36p79"&gt;Understanding Robot Arms and Kinematics&lt;/h2&gt;
&lt;p&gt;Before touching any hardware, Milos begins with one of the most important concepts in robotics: robot arm configuration. Whether a robot is a compact desktop arm, an industrial manipulator or a SCARA system, every robot arm can be described by its joints, the links connecting those joints and the position of its tool centre point (TCP).&lt;/p&gt;
&lt;p&gt;Once the joint positions and link lengths are known, it becomes possible to describe the entire robot mathematically. This is where kinematics enters the picture.&lt;/p&gt;
&lt;p&gt;As Milos explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;When we talk about robot arms, we&amp;#39;re usually interested in kinematics. That means direct kinematics and inverse kinematics.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Direct kinematics starts with known joint angles and link lengths and calculates the position of the TCP. Inverse kinematics takes the opposite approach. A target position is specified first, and the required joint angles are calculated afterwards.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Maybe we want to place the tool at a certain coordinate. To do that we need to calculate all of the angles in the joints.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The robot built in this project uses a SCARA (Selective Compliance Articulated Robot Arm) configuration. Unlike a traditional articulated robot arm with many joints, a SCARA robot uses two rotary joints operating in a plane and a simple actuator for vertical movement.&lt;/p&gt;
&lt;p&gt;This simplified structure makes it ideal for learning robotics because the mathematics remains approachable while still introducing the same principles used on larger industrial systems.&lt;/p&gt;
&lt;p&gt;Milos also highlights an important concept encountered in real robotic systems: multiple inverse kinematics solutions.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;We can reach the same point with two distinct configurations.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;These are commonly referred to as elbow-up and elbow-down configurations. Both reach the same TCP coordinate while positioning the robot differently.&lt;/p&gt;
&lt;p&gt;The project also introduces singularities. In the fully extended position, the robot loses one of its available configurations and can only reach that point in a single orientation.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The arm is completely stretched where we would have a singularity position.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Anyone interested in exploring these concepts further can find additional resources within the element14 Learning Centre, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/27574/the-basics-of-microcontrollers" data-e14adj="t"&gt;The Basics of Microcontrollers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/23151/magnetic-encoders" data-e14adj="t"&gt;Magnetic Encoders&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/29543/essentials-of-robot-operating-system-2" data-e14adj="t"&gt;Essentials of ROS 2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1ju7e5erc2"&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000069.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1ju7b36p7a"&gt;Hardware Design&lt;/h2&gt;
&lt;p&gt;The hardware reflects the project&amp;#39;s educational focus. The goal was to minimise complexity without removing important robotics concepts.&lt;/p&gt;
&lt;p&gt;At the centre of the system is the Raspberry Pi Pico 2 W, a compact microcontroller with more than enough processing power to handle servo control, communications and feedback acquisition.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It&amp;#39;s a brand new microcontroller, it&amp;#39;s more than powerful enough for this and it&amp;#39;s a small form factor.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Three servo motors are used. Two control the primary arm joints while the third operates the pen-lift mechanism.&lt;/p&gt;
&lt;p&gt;Rather than using stepper motors or brushless motors with dedicated drivers, Milos chose standard RC servos because they are inexpensive, easy to source and straightforward to control.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Why not use stepper motors or BLDC motors? One thing, simplicity.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Two of the servos also provide analogue feedback signals. These are connected directly to the Pico&amp;#39;s ADC inputs, allowing the software to monitor actual joint movement and compare commanded positions with measured positions.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;This is just an additional line that will feed the Pico ADC so we can measure the actual angle and get some graphs back.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Mechanically, the arm was designed in Fusion 360 and printed in PLA. The design uses two equal-length links measuring 150mm each.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Both links are at 150 millimeters which was my goal so we can keep them as easy as possible.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The drawing mechanism is equally simple. An SG90 servo lifts and lowers a pen through a small cam arrangement, enabling the robot to trace paths onto paper.&lt;/p&gt;
&lt;p&gt;All CAD resources, including STEP and STL files, are available for builders wishing to recreate or modify the project.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/5305.frame_5F00_000094.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7b36p7b"&gt;Firmware and Control Architecture&lt;/h2&gt;
&lt;p&gt;The software architecture is intentionally split into two layers.&lt;/p&gt;
&lt;p&gt;The Pico firmware acts primarily as a hardware interface, while the more computationally demanding robotics calculations are performed on the PC.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The heavy lifting for the robot arm will be actually done on the computer.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Communication takes place over a serial connection using a command structure inspired by G-code.&lt;/p&gt;
&lt;p&gt;As Milos explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The commands pretty much resemble G-code style commands.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Commands such as &lt;code&gt;G0&lt;/code&gt; and &lt;code&gt;G1&lt;/code&gt; provide rapid and smooth movement control, while calibration, streaming and configuration commands allow deeper interaction with the robot.&lt;/p&gt;
&lt;p&gt;The firmware itself documents this clearly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;G0 A B Z        - move in degrees
G1 A B Z [F]    - move in degrees
G28             - home
G90             - report position
M10             - ADC snapshot
M11             - start streaming
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Servo calibration and motion tuning are configurable directly from the firmware. For example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;float move_speed = 5.0;
int move_delay_ms = 20;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;These settings determine how smoothly the servos move between commanded positions.&lt;/p&gt;
&lt;p&gt;The firmware also incorporates safety functions such as emergency stop support:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;M112 - Emergency stop / detach all servos
M113 - Re-attach servos
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This allows the robot to be safely disabled and recovered during experimentation.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000059.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7b36p7c"&gt;The Python GUI and Practical Robotics&lt;/h2&gt;
&lt;p&gt;The second part of the software stack is a substantial Python-based GUI created specifically for learning robotics concepts.&lt;/p&gt;
&lt;p&gt;Rather than relying entirely on terminal commands, the interface provides visual tools for understanding the relationship between coordinates, joint angles and robot motion.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The graphical user interface communicates with the robot arm.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Joint sliders allow direct manipulation of servo positions, while a Cartesian control system lets the user command positions using X-Y coordinates.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The GUI allows the user to send xy coordinates which get recalculated into servo angles using inverse kinematics.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A dedicated kinematics learning section was included in the software. The Python application features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Forward and inverse kinematics demonstrations&lt;/li&gt;
&lt;li&gt;Workspace visualisation&lt;/li&gt;
&lt;li&gt;Joint tracking plots&lt;/li&gt;
&lt;li&gt;Feedback monitoring&lt;/li&gt;
&lt;li&gt;CSV path playback&lt;/li&gt;
&lt;li&gt;Calibration tools&lt;/li&gt;
&lt;li&gt;Teach mode functionality&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The source code describes the goal directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Kinematics Lab tab dedicated to teaching FK and IK side-by-side with the underlying formulas.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The software also visualises both elbow-up and elbow-down inverse kinematic solutions, helping users understand why multiple solutions exist for many reachable points.&lt;/p&gt;
&lt;p&gt;For those looking to strengthen their software skills, element14&amp;#39;s Learning Centre also provides:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/28063/an-introduction-to-programming-with-python" data-e14adj="t"&gt;An Introduction to Programming with Python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/products/arduino/arduino-tutorials/b/blog/posts/jeremy-blum-arduino-tutorials" data-e14adj="t"&gt;Jeremy Blum&amp;#39;s Arduino Tutorials&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1ju7e8jiq3"&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000134.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1ju7b36p7d"&gt;Drawing Paths with CSV Trajectories&lt;/h2&gt;
&lt;p&gt;Once direct control was working, the next challenge was creating repeatable motion.&lt;/p&gt;
&lt;p&gt;The GUI includes a path playback system capable of loading CSV files containing coordinate lists.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;We can load up a custom CSV with a bunch of points to which the robot arm should go and we can trace different outlines.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;To simplify shape creation, Milos also created Python tools capable of generating geometric paths automatically.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It generates your CSV shape in a bunch of dots and when you load that in the graphical user interface your arm will actually replay that path.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This transforms the robot from a coordinate demonstration into a machine capable of producing recognisable drawings.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000119.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000204.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7b36p7e"&gt;Testing the Robot Arm&lt;/h2&gt;
&lt;p&gt;With the mechanical assembly complete and the software operating correctly, the final stage was testing.&lt;/p&gt;
&lt;p&gt;Initial tests focused on simple joint movement and home positioning. The graphical representation matched the physical robot closely, demonstrating that the kinematic calculations were behaving correctly.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;You can see that we are getting the movements that mimic what&amp;#39;s also happening on the user interface.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The inverse kinematic controller proved particularly successful.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;If we go and say move to xy you can see how it moves rapidly.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As expected, the limitations of hobby-grade servos quickly became apparent.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The arm moves a lot and that&amp;#39;s the main issue with servos like this, they just aren&amp;#39;t that accurate.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;However, the educational value remained high.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;For the price and for the simplicity of how easy they are to use they are a pretty good deal.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Path playback tests produced some impressive results, including stars and even an element14 logo. Although the robot occasionally exhibited visible oscillation, Milos identified exactly why:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It actually stops between each point so it&amp;#39;s not as accurate as it could be.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Future improvements could incorporate more advanced path-planning methods and look-ahead algorithms to smooth motion between waypoints.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;You can do this much better with proper path planning look forward algorithms that would make the actual path for both the servos smooth.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="mcetoc_1ju7ebh994"&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000271.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1ju7b36p7f"&gt;From Theory to Practical Robotics&lt;/h2&gt;
&lt;p&gt;This build demonstrates one of the most rewarding aspects of robotics: seeing mathematical models become physical motion.&lt;/p&gt;
&lt;p&gt;Throughout the project, concepts such as coordinate systems, direct kinematics, inverse kinematics, servo control, calibration and feedback move from sketches on a whiteboard into a functioning machine.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;We can see some connection between actual theory with all of those equations that you&amp;#39;ve seen in the beginning and with actual real world results.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For newcomers, the project provides an approachable way to understand how robot arms operate. For more experienced makers and engineers, it offers a solid foundation for exploring advanced topics such as motion planning, PID control, encoder feedback and ROS integration.&lt;/p&gt;
&lt;p&gt;Most importantly, it demonstrates that robotics does not need to begin with expensive hardware or industrial equipment. With a Raspberry Pi Pico 2 W, a handful of servos, some printed parts and a willingness to experiment, it is possible to build a robot that brings the mathematics of robotics to life.&lt;/p&gt;
&lt;h2&gt;Supporting Files and Links&lt;/h2&gt;
&lt;p&gt;-&amp;nbsp;&amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/m/files/151529"&gt;Episode 724 Supporting Files - Building and Programming a SCARA Industrial Robot Arm – An Introduction to Robotics&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;-&amp;nbsp;&lt;a href="/products/arduino/arduino-tutorials/b/blog/posts/jeremy-blum-arduino-tutorials" data-e14adj="t"&gt;https://community.element14.com/products/arduino/arduino-tutorials/b/blog/posts/jeremy-blum-arduino-tutorials&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;-&amp;nbsp;&amp;nbsp;&lt;a href="/learn/learning-center/" data-e14adj="t"&gt;https://community.element14.com/learn/learning-center/&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;-&amp;nbsp;&amp;nbsp;&lt;a href="https://community.element14.com/learn/learning-center/essentials/w/documents/3194/power-essentials-for-makers"&gt;Power Essentials for Makers&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/learn/learning-center/essentials/w/documents/3508/motor-control-motor-drive-control-for-makers"&gt;Motor Control: Motor Drive Control for Makers&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/learn/learning-center/essentials/w/documents/27574/the-basics-of-microcontrollers"&gt;The Basics of Microcontrollers&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/learn/learning-center/essentials/w/documents/23151/magnetic-encoders"&gt;Magnetic Encoders&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &lt;a id="" href="/learn/learning-center/essentials/Keyword=microcontrollers&amp;amp;pifragment-2619SortOrder=Ascending" data-e14adj="t"&gt;https://community.element14.com/learn/learning-center/essentials/Keyword=microcontrollers&amp;amp;pifragment-2619SortOrder=Ascending&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/learn/learning-center/essentials/w/documents/28063/an-introduction-to-programming-with-python"&gt;An Introduction to Programming with Python&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/learn/learning-center/essentials/w/documents/29543/essentials-of-robot-operating-system-2"&gt;Essentials of Robot Operating System 2&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72077/pid-control-motion-profiles-and-ros-explained---an-introduction-to-robotics"&gt;PID Control, Motion Profiles and ROS Explained - An Introduction to Robotics&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72071/building-the-foundations-of-your-first-robot---an-introduction-to-robotics"&gt;Building the Foundations of Your First Robot - An Introduction to Robotics&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7elgi85"&gt;Bill of Materials / Parts Used&lt;/h2&gt;
&lt;table class="e14-product-bom-main"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;th&gt;&lt;a id="e14-product-link-40a08" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3769950~2,2845502,4531086,3769965&amp;nsku=52AJ5993~2,50AC9541,11AM9749,52AJ5992&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_BUY_KIT" class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('40a08'));" data-farnell="3769950~2,2845502,4531086,3769965" data-newark="52AJ5993~2,50AC9541,11AM9749,52AJ5992" data-comoverride="" data-cmpoverride="" data-cpc="undefined~2,,," data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Kit&lt;/a&gt; &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Servo Motor SER0044&lt;/td&gt;
&lt;td&gt;DFROBOT&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-92c90" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3769950~2&amp;nsku=52AJ5993~2&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('92c90'));" data-farnell="3769950~2" data-newark="52AJ5993~2" data-comoverride="" data-cmpoverride="" data-cpc="undefined~2" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Filament MC002555&lt;/td&gt;
&lt;td&gt;MULTICOMP PRO&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-bacf4" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2845502&amp;nsku=50AC9541&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('bacf4'));" data-farnell="2845502" data-newark="50AC9541" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RASPBERRY-PI PICO 2&lt;/td&gt;
&lt;td&gt;RASPBERRY PI&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-41394" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4531086&amp;nsku=11AM9749&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('41394'));" data-farnell="4531086" data-newark="11AM9749" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Servo Motor SER0039&lt;/td&gt;
&lt;td&gt;DFROBOT&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-7dc39" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3769965&amp;nsku=52AJ5992&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('7dc39'));" data-farnell="3769965" data-newark="52AJ5992" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="xs-hide"&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7elgi86"&gt;Additional Parts&lt;/h2&gt;
&lt;table class="e14-product-bom-additional"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;M3 machine screws&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Perfboard&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wires&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="mcetoc_1ju7elgi87"&gt;&lt;/h3&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: raspberry pi pico robot project, inverse kinematics tutorial, forward kinematics explained, raspberry pi pico 2w project, introduction to robotics, diy robot arm build, servo motor robotics, learn robotics with projects, robotics motion control, python robot control gui, scara robot tutorial, robotics programming for beginners, robot arm path planning, robot arm kinematics, SCARA robot arm, e14presents_milosrasic, friday_release&lt;/div&gt;
</description></item><item><title>Building and Programming a SCARA Industrial Robot Arm – An Introduction to Robotics</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72087/building-and-programming-a-scara-industrial-robot-arm-an-introduction-to-robotics/revision/6</link><pubDate>Thu, 23 Jul 2026 12:25:32 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4e4a8dd3-a2e0-4155-ae19-ef2b140a1557</guid><dc:creator>e14sbhargav</dc:creator><description>Revision 6 posted to Documents by e14sbhargav on 7/23/2026 12:25:32 PM&lt;br /&gt;
&lt;p&gt;Join Milos as he builds a simple SCARA robot arm and explores the fundamentals of robotics through practical engineering. From robot arm configurations and direct and inverse kinematics to firmware development, Python control software and motion planning, the project shows how mathematical concepts translate into real-world movement. Using a Raspberry Pi Pico 2 W, hobby servos and a custom GUI, the robot is able to move to coordinates, follow trajectories and even draw shapes, providing a hands-on introduction to robotic control systems, calibration and coordinate-based motion. Watch along and you can find the supporting files on the element14 Community.&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7e3uee0"&gt;Time to Strong-Arm Electronics!&lt;/h2&gt;
&lt;div&gt;&lt;a href="https://players.brightcove.net/1362235890001/default_default/index.html?videoId=6401908837112"&gt;players.brightcove.net/.../index.html&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;After exploring electronics, mechanics, control engineering, microcontrollers and robotics fundamentals in the previous instalments of this introduction to robotics series, Milos moves from theory into a practical build. Rather than discussing robotics from an abstract perspective, this project demonstrates how those concepts come together in a working machine: a compact SCARA robot arm capable of moving to coordinates, visualising kinematics and even drawing shapes.&lt;/p&gt;
&lt;p&gt;The aim is not to build the most accurate robot arm possible. Instead, the project focuses on creating something approachable, affordable and educational. As Milos explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;This is the main goal of this course is to keep it as simple as possible so for people that are doing anything like this for the first time.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;By keeping the design simple, the project becomes an effective platform for understanding the principles that underpin industrial robots, from coordinate systems and kinematics through to feedback, calibration and motion control.&lt;/p&gt;
&lt;p&gt;If you&amp;#39;re new to robotics, it is worth reviewing the earlier episodes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72071/building-the-foundations-of-your-first-robot---an-introduction-to-robotics" data-e14adj="t"&gt;Building the Foundations of Your First Robot&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72077/pid-control-motion-profiles-and-ros-explained---an-introduction-to-robotics" data-e14adj="t"&gt;PID Control, Motion Profiles and ROS Explained&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1ju7e3uee1"&gt;&lt;img alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000034.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1ju7b36p79"&gt;Understanding Robot Arms and Kinematics&lt;/h2&gt;
&lt;p&gt;Before touching any hardware, Milos begins with one of the most important concepts in robotics: robot arm configuration. Whether a robot is a compact desktop arm, an industrial manipulator or a SCARA system, every robot arm can be described by its joints, the links connecting those joints and the position of its tool centre point (TCP).&lt;/p&gt;
&lt;p&gt;Once the joint positions and link lengths are known, it becomes possible to describe the entire robot mathematically. This is where kinematics enters the picture.&lt;/p&gt;
&lt;p&gt;As Milos explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;When we talk about robot arms, we&amp;#39;re usually interested in kinematics. That means direct kinematics and inverse kinematics.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Direct kinematics starts with known joint angles and link lengths and calculates the position of the TCP. Inverse kinematics takes the opposite approach. A target position is specified first, and the required joint angles are calculated afterwards.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Maybe we want to place the tool at a certain coordinate. To do that we need to calculate all of the angles in the joints.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The robot built in this project uses a SCARA (Selective Compliance Articulated Robot Arm) configuration. Unlike a traditional articulated robot arm with many joints, a SCARA robot uses two rotary joints operating in a plane and a simple actuator for vertical movement.&lt;/p&gt;
&lt;p&gt;This simplified structure makes it ideal for learning robotics because the mathematics remains approachable while still introducing the same principles used on larger industrial systems.&lt;/p&gt;
&lt;p&gt;Milos also highlights an important concept encountered in real robotic systems: multiple inverse kinematics solutions.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;We can reach the same point with two distinct configurations.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;These are commonly referred to as elbow-up and elbow-down configurations. Both reach the same TCP coordinate while positioning the robot differently.&lt;/p&gt;
&lt;p&gt;The project also introduces singularities. In the fully extended position, the robot loses one of its available configurations and can only reach that point in a single orientation.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The arm is completely stretched where we would have a singularity position.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Anyone interested in exploring these concepts further can find additional resources within the element14 Learning Centre, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/27574/the-basics-of-microcontrollers" data-e14adj="t"&gt;The Basics of Microcontrollers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/23151/magnetic-encoders" data-e14adj="t"&gt;Magnetic Encoders&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/29543/essentials-of-robot-operating-system-2" data-e14adj="t"&gt;Essentials of ROS 2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1ju7e5erc2"&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000069.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1ju7b36p7a"&gt;Hardware Design&lt;/h2&gt;
&lt;p&gt;The hardware reflects the project&amp;#39;s educational focus. The goal was to minimise complexity without removing important robotics concepts.&lt;/p&gt;
&lt;p&gt;At the centre of the system is the Raspberry Pi Pico 2 W, a compact microcontroller with more than enough processing power to handle servo control, communications and feedback acquisition.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It&amp;#39;s a brand new microcontroller, it&amp;#39;s more than powerful enough for this and it&amp;#39;s a small form factor.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Three servo motors are used. Two control the primary arm joints while the third operates the pen-lift mechanism.&lt;/p&gt;
&lt;p&gt;Rather than using stepper motors or brushless motors with dedicated drivers, Milos chose standard RC servos because they are inexpensive, easy to source and straightforward to control.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Why not use stepper motors or BLDC motors? One thing, simplicity.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Two of the servos also provide analogue feedback signals. These are connected directly to the Pico&amp;#39;s ADC inputs, allowing the software to monitor actual joint movement and compare commanded positions with measured positions.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;This is just an additional line that will feed the Pico ADC so we can measure the actual angle and get some graphs back.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Mechanically, the arm was designed in Fusion 360 and printed in PLA. The design uses two equal-length links measuring 150mm each.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Both links are at 150 millimeters which was my goal so we can keep them as easy as possible.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The drawing mechanism is equally simple. An SG90 servo lifts and lowers a pen through a small cam arrangement, enabling the robot to trace paths onto paper.&lt;/p&gt;
&lt;p&gt;All CAD resources, including STEP and STL files, are available for builders wishing to recreate or modify the project.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/5305.frame_5F00_000094.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7b36p7b"&gt;Firmware and Control Architecture&lt;/h2&gt;
&lt;p&gt;The software architecture is intentionally split into two layers.&lt;/p&gt;
&lt;p&gt;The Pico firmware acts primarily as a hardware interface, while the more computationally demanding robotics calculations are performed on the PC.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The heavy lifting for the robot arm will be actually done on the computer.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Communication takes place over a serial connection using a command structure inspired by G-code.&lt;/p&gt;
&lt;p&gt;As Milos explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The commands pretty much resemble G-code style commands.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Commands such as &lt;code&gt;G0&lt;/code&gt; and &lt;code&gt;G1&lt;/code&gt; provide rapid and smooth movement control, while calibration, streaming and configuration commands allow deeper interaction with the robot.&lt;/p&gt;
&lt;p&gt;The firmware itself documents this clearly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;G0 A B Z        - move in degrees
G1 A B Z [F]    - move in degrees
G28             - home
G90             - report position
M10             - ADC snapshot
M11             - start streaming
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Servo calibration and motion tuning are configurable directly from the firmware. For example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;float move_speed = 5.0;
int move_delay_ms = 20;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;These settings determine how smoothly the servos move between commanded positions.&lt;/p&gt;
&lt;p&gt;The firmware also incorporates safety functions such as emergency stop support:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;M112 - Emergency stop / detach all servos
M113 - Re-attach servos
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This allows the robot to be safely disabled and recovered during experimentation.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000059.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7b36p7c"&gt;The Python GUI and Practical Robotics&lt;/h2&gt;
&lt;p&gt;The second part of the software stack is a substantial Python-based GUI created specifically for learning robotics concepts.&lt;/p&gt;
&lt;p&gt;Rather than relying entirely on terminal commands, the interface provides visual tools for understanding the relationship between coordinates, joint angles and robot motion.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The graphical user interface communicates with the robot arm.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Joint sliders allow direct manipulation of servo positions, while a Cartesian control system lets the user command positions using X-Y coordinates.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The GUI allows the user to send xy coordinates which get recalculated into servo angles using inverse kinematics.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A dedicated kinematics learning section was included in the software. The Python application features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Forward and inverse kinematics demonstrations&lt;/li&gt;
&lt;li&gt;Workspace visualisation&lt;/li&gt;
&lt;li&gt;Joint tracking plots&lt;/li&gt;
&lt;li&gt;Feedback monitoring&lt;/li&gt;
&lt;li&gt;CSV path playback&lt;/li&gt;
&lt;li&gt;Calibration tools&lt;/li&gt;
&lt;li&gt;Teach mode functionality&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The source code describes the goal directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Kinematics Lab tab dedicated to teaching FK and IK side-by-side with the underlying formulas.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The software also visualises both elbow-up and elbow-down inverse kinematic solutions, helping users understand why multiple solutions exist for many reachable points.&lt;/p&gt;
&lt;p&gt;For those looking to strengthen their software skills, element14&amp;#39;s Learning Centre also provides:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/28063/an-introduction-to-programming-with-python" data-e14adj="t"&gt;An Introduction to Programming with Python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/products/arduino/arduino-tutorials/b/blog/posts/jeremy-blum-arduino-tutorials" data-e14adj="t"&gt;Jeremy Blum&amp;#39;s Arduino Tutorials&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1ju7e8jiq3"&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000134.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1ju7b36p7d"&gt;Drawing Paths with CSV Trajectories&lt;/h2&gt;
&lt;p&gt;Once direct control was working, the next challenge was creating repeatable motion.&lt;/p&gt;
&lt;p&gt;The GUI includes a path playback system capable of loading CSV files containing coordinate lists.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;We can load up a custom CSV with a bunch of points to which the robot arm should go and we can trace different outlines.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;To simplify shape creation, Milos also created Python tools capable of generating geometric paths automatically.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It generates your CSV shape in a bunch of dots and when you load that in the graphical user interface your arm will actually replay that path.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This transforms the robot from a coordinate demonstration into a machine capable of producing recognisable drawings.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000119.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000204.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7b36p7e"&gt;Testing the Robot Arm&lt;/h2&gt;
&lt;p&gt;With the mechanical assembly complete and the software operating correctly, the final stage was testing.&lt;/p&gt;
&lt;p&gt;Initial tests focused on simple joint movement and home positioning. The graphical representation matched the physical robot closely, demonstrating that the kinematic calculations were behaving correctly.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;You can see that we are getting the movements that mimic what&amp;#39;s also happening on the user interface.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The inverse kinematic controller proved particularly successful.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;If we go and say move to xy you can see how it moves rapidly.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As expected, the limitations of hobby-grade servos quickly became apparent.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The arm moves a lot and that&amp;#39;s the main issue with servos like this, they just aren&amp;#39;t that accurate.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;However, the educational value remained high.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;For the price and for the simplicity of how easy they are to use they are a pretty good deal.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Path playback tests produced some impressive results, including stars and even an element14 logo. Although the robot occasionally exhibited visible oscillation, Milos identified exactly why:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It actually stops between each point so it&amp;#39;s not as accurate as it could be.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Future improvements could incorporate more advanced path-planning methods and look-ahead algorithms to smooth motion between waypoints.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;You can do this much better with proper path planning look forward algorithms that would make the actual path for both the servos smooth.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="mcetoc_1ju7ebh994"&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000271.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1ju7b36p7f"&gt;From Theory to Practical Robotics&lt;/h2&gt;
&lt;p&gt;This build demonstrates one of the most rewarding aspects of robotics: seeing mathematical models become physical motion.&lt;/p&gt;
&lt;p&gt;Throughout the project, concepts such as coordinate systems, direct kinematics, inverse kinematics, servo control, calibration and feedback move from sketches on a whiteboard into a functioning machine.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;We can see some connection between actual theory with all of those equations that you&amp;#39;ve seen in the beginning and with actual real world results.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For newcomers, the project provides an approachable way to understand how robot arms operate. For more experienced makers and engineers, it offers a solid foundation for exploring advanced topics such as motion planning, PID control, encoder feedback and ROS integration.&lt;/p&gt;
&lt;p&gt;Most importantly, it demonstrates that robotics does not need to begin with expensive hardware or industrial equipment. With a Raspberry Pi Pico 2 W, a handful of servos, some printed parts and a willingness to experiment, it is possible to build a robot that brings the mathematics of robotics to life.&lt;/p&gt;
&lt;h2&gt;Supporting Files and Links&lt;/h2&gt;
&lt;p&gt;-&amp;nbsp;&amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/m/files/151529"&gt;Episode 724 Supporting Files - Building and Programming a SCARA Industrial Robot Arm – An Introduction to Robotics&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;-&amp;nbsp;&lt;a href="/products/arduino/arduino-tutorials/b/blog/posts/jeremy-blum-arduino-tutorials" data-e14adj="t"&gt;https://community.element14.com/products/arduino/arduino-tutorials/b/blog/posts/jeremy-blum-arduino-tutorials&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;-&amp;nbsp;&amp;nbsp;&lt;a href="/learn/learning-center/" data-e14adj="t"&gt;https://community.element14.com/learn/learning-center/&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;-&amp;nbsp;&amp;nbsp;&lt;a href="https://community.element14.com/learn/learning-center/essentials/w/documents/3194/power-essentials-for-makers"&gt;Power Essentials for Makers&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/learn/learning-center/essentials/w/documents/3508/motor-control-motor-drive-control-for-makers"&gt;Motor Control: Motor Drive Control for Makers&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/learn/learning-center/essentials/w/documents/27574/the-basics-of-microcontrollers"&gt;The Basics of Microcontrollers&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/learn/learning-center/essentials/w/documents/23151/magnetic-encoders"&gt;Magnetic Encoders&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &lt;a id="" href="/learn/learning-center/essentials/Keyword=microcontrollers&amp;amp;pifragment-2619SortOrder=Ascending" data-e14adj="t"&gt;https://community.element14.com/learn/learning-center/essentials/Keyword=microcontrollers&amp;amp;pifragment-2619SortOrder=Ascending&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/learn/learning-center/essentials/w/documents/28063/an-introduction-to-programming-with-python"&gt;An Introduction to Programming with Python&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/learn/learning-center/essentials/w/documents/29543/essentials-of-robot-operating-system-2"&gt;Essentials of Robot Operating System 2&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72077/pid-control-motion-profiles-and-ros-explained---an-introduction-to-robotics"&gt;PID Control, Motion Profiles and ROS Explained - An Introduction to Robotics&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72071/building-the-foundations-of-your-first-robot---an-introduction-to-robotics"&gt;Building the Foundations of Your First Robot - An Introduction to Robotics&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7elgi85"&gt;Bill of Materials / Parts Used&lt;/h2&gt;
&lt;table class="e14-product-bom-main"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;th&gt;&lt;a id="e14-product-link-08174" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3769950~2,2845502,4531086,3769965&amp;nsku=52AJ5993~2,50AC9541,11AM9749,52AJ5992&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_BUY_KIT" class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('08174'));" data-farnell="3769950~2,2845502,4531086,3769965" data-newark="52AJ5993~2,50AC9541,11AM9749,52AJ5992" data-comoverride="" data-cmpoverride="" data-cpc="undefined~2,,," data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Kit&lt;/a&gt; &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Servo Motor SER0044&lt;/td&gt;
&lt;td&gt;DFROBOT&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-4e370" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3769950~2&amp;nsku=52AJ5993~2&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('4e370'));" data-farnell="3769950~2" data-newark="52AJ5993~2" data-comoverride="" data-cmpoverride="" data-cpc="undefined~2" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Filament MC002555&lt;/td&gt;
&lt;td&gt;MULTICOMP PRO&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-dc22d" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2845502&amp;nsku=50AC9541&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('dc22d'));" data-farnell="2845502" data-newark="50AC9541" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RASPBERRY-PI PICO 2&lt;/td&gt;
&lt;td&gt;RASPBERRY PI&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-64cbd" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4531086&amp;nsku=11AM9749&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('64cbd'));" data-farnell="4531086" data-newark="11AM9749" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Servo Motor SER0039&lt;/td&gt;
&lt;td&gt;DFROBOT&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-9b2db" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3769965&amp;nsku=52AJ5992&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('9b2db'));" data-farnell="3769965" data-newark="52AJ5992" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="xs-hide"&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7elgi86"&gt;Additional Parts&lt;/h2&gt;
&lt;table class="e14-product-bom-additional"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;M3 machine screws&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Perfboard&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wires&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="mcetoc_1ju7elgi87"&gt;&lt;/h3&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: raspberry pi pico robot project, inverse kinematics tutorial, forward kinematics explained, raspberry pi pico 2w project, introduction to robotics, diy robot arm build, servo motor robotics, learn robotics with projects, robotics motion control, python robot control gui, scara robot tutorial, robotics programming for beginners, robot arm path planning, robot arm kinematics, SCARA robot arm, e14presents_milosrasic, friday_release&lt;/div&gt;
</description></item><item><title>Building and Programming a SCARA Industrial Robot Arm – An Introduction to Robotics</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72087/building-and-programming-a-scara-industrial-robot-arm-an-introduction-to-robotics/revision/4</link><pubDate>Thu, 23 Jul 2026 12:22:30 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4e4a8dd3-a2e0-4155-ae19-ef2b140a1557</guid><dc:creator>cstanton</dc:creator><description>Revision 4 posted to Documents by cstanton on 7/23/2026 12:22:30 PM&lt;br /&gt;
&lt;p&gt;Join Milos as he builds a simple SCARA robot arm and explores the fundamentals of robotics through practical engineering. From robot arm configurations and direct and inverse kinematics to firmware development, Python control software and motion planning, the project shows how mathematical concepts translate into real-world movement. Using a Raspberry Pi Pico 2 W, hobby servos and a custom GUI, the robot is able to move to coordinates, follow trajectories and even draw shapes, providing a hands-on introduction to robotic control systems, calibration and coordinate-based motion. Watch along and you can find the supporting files on the element14 Community.&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7e3uee0"&gt;Time to Strong-Arm Electronics!&lt;/h2&gt;
&lt;div&gt;&lt;a href="https://players.brightcove.net/1362235890001/default_default/index.html?videoId=6401908837112"&gt;players.brightcove.net/.../index.html&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;After exploring electronics, mechanics, control engineering, microcontrollers and robotics fundamentals in the previous instalments of this introduction to robotics series, Milos moves from theory into a practical build. Rather than discussing robotics from an abstract perspective, this project demonstrates how those concepts come together in a working machine: a compact SCARA robot arm capable of moving to coordinates, visualising kinematics and even drawing shapes.&lt;/p&gt;
&lt;p&gt;The aim is not to build the most accurate robot arm possible. Instead, the project focuses on creating something approachable, affordable and educational. As Milos explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;This is the main goal of this course is to keep it as simple as possible so for people that are doing anything like this for the first time.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;By keeping the design simple, the project becomes an effective platform for understanding the principles that underpin industrial robots, from coordinate systems and kinematics through to feedback, calibration and motion control.&lt;/p&gt;
&lt;p&gt;If you&amp;#39;re new to robotics, it is worth reviewing the earlier episodes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72071/building-the-foundations-of-your-first-robot---an-introduction-to-robotics" data-e14adj="t"&gt;Building the Foundations of Your First Robot&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72077/pid-control-motion-profiles-and-ros-explained---an-introduction-to-robotics" data-e14adj="t"&gt;PID Control, Motion Profiles and ROS Explained&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1ju7e3uee1"&gt;&lt;img alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000034.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1ju7b36p79"&gt;Understanding Robot Arms and Kinematics&lt;/h2&gt;
&lt;p&gt;Before touching any hardware, Milos begins with one of the most important concepts in robotics: robot arm configuration. Whether a robot is a compact desktop arm, an industrial manipulator or a SCARA system, every robot arm can be described by its joints, the links connecting those joints and the position of its tool centre point (TCP).&lt;/p&gt;
&lt;p&gt;Once the joint positions and link lengths are known, it becomes possible to describe the entire robot mathematically. This is where kinematics enters the picture.&lt;/p&gt;
&lt;p&gt;As Milos explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;When we talk about robot arms, we&amp;#39;re usually interested in kinematics. That means direct kinematics and inverse kinematics.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Direct kinematics starts with known joint angles and link lengths and calculates the position of the TCP. Inverse kinematics takes the opposite approach. A target position is specified first, and the required joint angles are calculated afterwards.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Maybe we want to place the tool at a certain coordinate. To do that we need to calculate all of the angles in the joints.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The robot built in this project uses a SCARA (Selective Compliance Articulated Robot Arm) configuration. Unlike a traditional articulated robot arm with many joints, a SCARA robot uses two rotary joints operating in a plane and a simple actuator for vertical movement.&lt;/p&gt;
&lt;p&gt;This simplified structure makes it ideal for learning robotics because the mathematics remains approachable while still introducing the same principles used on larger industrial systems.&lt;/p&gt;
&lt;p&gt;Milos also highlights an important concept encountered in real robotic systems: multiple inverse kinematics solutions.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;We can reach the same point with two distinct configurations.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;These are commonly referred to as elbow-up and elbow-down configurations. Both reach the same TCP coordinate while positioning the robot differently.&lt;/p&gt;
&lt;p&gt;The project also introduces singularities. In the fully extended position, the robot loses one of its available configurations and can only reach that point in a single orientation.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The arm is completely stretched where we would have a singularity position.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Anyone interested in exploring these concepts further can find additional resources within the element14 Learning Centre, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/27574/the-basics-of-microcontrollers" data-e14adj="t"&gt;The Basics of Microcontrollers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/23151/magnetic-encoders" data-e14adj="t"&gt;Magnetic Encoders&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/29543/essentials-of-robot-operating-system-2" data-e14adj="t"&gt;Essentials of ROS 2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1ju7e5erc2"&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000069.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1ju7b36p7a"&gt;Hardware Design&lt;/h2&gt;
&lt;p&gt;The hardware reflects the project&amp;#39;s educational focus. The goal was to minimise complexity without removing important robotics concepts.&lt;/p&gt;
&lt;p&gt;At the centre of the system is the Raspberry Pi Pico 2 W, a compact microcontroller with more than enough processing power to handle servo control, communications and feedback acquisition.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It&amp;#39;s a brand new microcontroller, it&amp;#39;s more than powerful enough for this and it&amp;#39;s a small form factor.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Three servo motors are used. Two control the primary arm joints while the third operates the pen-lift mechanism.&lt;/p&gt;
&lt;p&gt;Rather than using stepper motors or brushless motors with dedicated drivers, Milos chose standard RC servos because they are inexpensive, easy to source and straightforward to control.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Why not use stepper motors or BLDC motors? One thing, simplicity.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Two of the servos also provide analogue feedback signals. These are connected directly to the Pico&amp;#39;s ADC inputs, allowing the software to monitor actual joint movement and compare commanded positions with measured positions.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;This is just an additional line that will feed the Pico ADC so we can measure the actual angle and get some graphs back.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Mechanically, the arm was designed in Fusion 360 and printed in PLA. The design uses two equal-length links measuring 150mm each.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Both links are at 150 millimeters which was my goal so we can keep them as easy as possible.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The drawing mechanism is equally simple. An SG90 servo lifts and lowers a pen through a small cam arrangement, enabling the robot to trace paths onto paper.&lt;/p&gt;
&lt;p&gt;All CAD resources, including STEP and STL files, are available for builders wishing to recreate or modify the project.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/5305.frame_5F00_000094.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7b36p7b"&gt;Firmware and Control Architecture&lt;/h2&gt;
&lt;p&gt;The software architecture is intentionally split into two layers.&lt;/p&gt;
&lt;p&gt;The Pico firmware acts primarily as a hardware interface, while the more computationally demanding robotics calculations are performed on the PC.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The heavy lifting for the robot arm will be actually done on the computer.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Communication takes place over a serial connection using a command structure inspired by G-code.&lt;/p&gt;
&lt;p&gt;As Milos explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The commands pretty much resemble G-code style commands.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Commands such as &lt;code&gt;G0&lt;/code&gt; and &lt;code&gt;G1&lt;/code&gt; provide rapid and smooth movement control, while calibration, streaming and configuration commands allow deeper interaction with the robot.&lt;/p&gt;
&lt;p&gt;The firmware itself documents this clearly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;G0 A B Z        - move in degrees
G1 A B Z [F]    - move in degrees
G28             - home
G90             - report position
M10             - ADC snapshot
M11             - start streaming
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Servo calibration and motion tuning are configurable directly from the firmware. For example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;float move_speed = 5.0;
int move_delay_ms = 20;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;These settings determine how smoothly the servos move between commanded positions.&lt;/p&gt;
&lt;p&gt;The firmware also incorporates safety functions such as emergency stop support:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;M112 - Emergency stop / detach all servos
M113 - Re-attach servos
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This allows the robot to be safely disabled and recovered during experimentation.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000059.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7b36p7c"&gt;The Python GUI and Practical Robotics&lt;/h2&gt;
&lt;p&gt;The second part of the software stack is a substantial Python-based GUI created specifically for learning robotics concepts.&lt;/p&gt;
&lt;p&gt;Rather than relying entirely on terminal commands, the interface provides visual tools for understanding the relationship between coordinates, joint angles and robot motion.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The graphical user interface communicates with the robot arm.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Joint sliders allow direct manipulation of servo positions, while a Cartesian control system lets the user command positions using X-Y coordinates.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The GUI allows the user to send xy coordinates which get recalculated into servo angles using inverse kinematics.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A dedicated kinematics learning section was included in the software. The Python application features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Forward and inverse kinematics demonstrations&lt;/li&gt;
&lt;li&gt;Workspace visualisation&lt;/li&gt;
&lt;li&gt;Joint tracking plots&lt;/li&gt;
&lt;li&gt;Feedback monitoring&lt;/li&gt;
&lt;li&gt;CSV path playback&lt;/li&gt;
&lt;li&gt;Calibration tools&lt;/li&gt;
&lt;li&gt;Teach mode functionality&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The source code describes the goal directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Kinematics Lab tab dedicated to teaching FK and IK side-by-side with the underlying formulas.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The software also visualises both elbow-up and elbow-down inverse kinematic solutions, helping users understand why multiple solutions exist for many reachable points.&lt;/p&gt;
&lt;p&gt;For those looking to strengthen their software skills, element14&amp;#39;s Learning Centre also provides:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/28063/an-introduction-to-programming-with-python" data-e14adj="t"&gt;An Introduction to Programming with Python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/products/arduino/arduino-tutorials/b/blog/posts/jeremy-blum-arduino-tutorials" data-e14adj="t"&gt;Jeremy Blum&amp;#39;s Arduino Tutorials&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1ju7e8jiq3"&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000134.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1ju7b36p7d"&gt;Drawing Paths with CSV Trajectories&lt;/h2&gt;
&lt;p&gt;Once direct control was working, the next challenge was creating repeatable motion.&lt;/p&gt;
&lt;p&gt;The GUI includes a path playback system capable of loading CSV files containing coordinate lists.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;We can load up a custom CSV with a bunch of points to which the robot arm should go and we can trace different outlines.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;To simplify shape creation, Milos also created Python tools capable of generating geometric paths automatically.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It generates your CSV shape in a bunch of dots and when you load that in the graphical user interface your arm will actually replay that path.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This transforms the robot from a coordinate demonstration into a machine capable of producing recognisable drawings.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000119.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000204.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7b36p7e"&gt;Testing the Robot Arm&lt;/h2&gt;
&lt;p&gt;With the mechanical assembly complete and the software operating correctly, the final stage was testing.&lt;/p&gt;
&lt;p&gt;Initial tests focused on simple joint movement and home positioning. The graphical representation matched the physical robot closely, demonstrating that the kinematic calculations were behaving correctly.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;You can see that we are getting the movements that mimic what&amp;#39;s also happening on the user interface.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The inverse kinematic controller proved particularly successful.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;If we go and say move to xy you can see how it moves rapidly.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As expected, the limitations of hobby-grade servos quickly became apparent.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The arm moves a lot and that&amp;#39;s the main issue with servos like this, they just aren&amp;#39;t that accurate.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;However, the educational value remained high.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;For the price and for the simplicity of how easy they are to use they are a pretty good deal.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Path playback tests produced some impressive results, including stars and even an element14 logo. Although the robot occasionally exhibited visible oscillation, Milos identified exactly why:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It actually stops between each point so it&amp;#39;s not as accurate as it could be.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Future improvements could incorporate more advanced path-planning methods and look-ahead algorithms to smooth motion between waypoints.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;You can do this much better with proper path planning look forward algorithms that would make the actual path for both the servos smooth.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="mcetoc_1ju7ebh994"&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000271.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1ju7b36p7f"&gt;From Theory to Practical Robotics&lt;/h2&gt;
&lt;p&gt;This build demonstrates one of the most rewarding aspects of robotics: seeing mathematical models become physical motion.&lt;/p&gt;
&lt;p&gt;Throughout the project, concepts such as coordinate systems, direct kinematics, inverse kinematics, servo control, calibration and feedback move from sketches on a whiteboard into a functioning machine.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;We can see some connection between actual theory with all of those equations that you&amp;#39;ve seen in the beginning and with actual real world results.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For newcomers, the project provides an approachable way to understand how robot arms operate. For more experienced makers and engineers, it offers a solid foundation for exploring advanced topics such as motion planning, PID control, encoder feedback and ROS integration.&lt;/p&gt;
&lt;p&gt;Most importantly, it demonstrates that robotics does not need to begin with expensive hardware or industrial equipment. With a Raspberry Pi Pico 2 W, a handful of servos, some printed parts and a willingness to experiment, it is possible to build a robot that brings the mathematics of robotics to life.&lt;/p&gt;
&lt;p&gt;Supporting Files and Links&lt;/p&gt;
&lt;p&gt;-&amp;nbsp;&amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/m/files/151529"&gt;Episode 724 Supporting Files - Building and Programming a SCARA Industrial Robot Arm – An Introduction to Robotics&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;-&amp;nbsp;&lt;a href="/products/arduino/arduino-tutorials/b/blog/posts/jeremy-blum-arduino-tutorials" data-e14adj="t"&gt;https://community.element14.com/products/arduino/arduino-tutorials/b/blog/posts/jeremy-blum-arduino-tutorials&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;-&amp;nbsp;&amp;nbsp;&lt;a href="/learn/learning-center/" data-e14adj="t"&gt;https://community.element14.com/learn/learning-center/&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;-&amp;nbsp;&amp;nbsp;&lt;a href="https://community.element14.com/learn/learning-center/essentials/w/documents/3194/power-essentials-for-makers"&gt;Power Essentials for Makers&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/learn/learning-center/essentials/w/documents/3508/motor-control-motor-drive-control-for-makers"&gt;Motor Control: Motor Drive Control for Makers&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/learn/learning-center/essentials/w/documents/27574/the-basics-of-microcontrollers"&gt;The Basics of Microcontrollers&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/learn/learning-center/essentials/w/documents/23151/magnetic-encoders"&gt;Magnetic Encoders&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &lt;a id="" href="/learn/learning-center/essentials/Keyword=microcontrollers&amp;amp;pifragment-2619SortOrder=Ascending" data-e14adj="t"&gt;https://community.element14.com/learn/learning-center/essentials/Keyword=microcontrollers&amp;amp;pifragment-2619SortOrder=Ascending&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/learn/learning-center/essentials/w/documents/28063/an-introduction-to-programming-with-python"&gt;An Introduction to Programming with Python&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/learn/learning-center/essentials/w/documents/29543/essentials-of-robot-operating-system-2"&gt;Essentials of Robot Operating System 2&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72077/pid-control-motion-profiles-and-ros-explained---an-introduction-to-robotics"&gt;PID Control, Motion Profiles and ROS Explained - An Introduction to Robotics&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- &amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72071/building-the-foundations-of-your-first-robot---an-introduction-to-robotics"&gt;Building the Foundations of Your First Robot - An Introduction to Robotics&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7elgi85"&gt;Bill of Materials / Parts Used&lt;/h2&gt;
&lt;table class="e14-product-bom-main"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;th&gt;&lt;a id="e14-product-link-30ef0" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3769950~2,2845502,4531086,3769965&amp;nsku=52AJ5993~2,50AC9541,11AM9749,52AJ5992&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_BUY_KIT" class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('30ef0'));" data-farnell="3769950~2,2845502,4531086,3769965" data-newark="52AJ5993~2,50AC9541,11AM9749,52AJ5992" data-comoverride="" data-cmpoverride="" data-cpc="undefined~2,,," data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Kit&lt;/a&gt; &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Servo Motor SER0044&lt;/td&gt;
&lt;td&gt;DFROBOT&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-8262d" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3769950~2&amp;nsku=52AJ5993~2&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('8262d'));" data-farnell="3769950~2" data-newark="52AJ5993~2" data-comoverride="" data-cmpoverride="" data-cpc="undefined~2" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Filament MC002555&lt;/td&gt;
&lt;td&gt;MULTICOMP PRO&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-e1550" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2845502&amp;nsku=50AC9541&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('e1550'));" data-farnell="2845502" data-newark="50AC9541" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RASPBERRY-PI PICO 2&lt;/td&gt;
&lt;td&gt;RASPBERRY PI&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-6256e" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4531086&amp;nsku=11AM9749&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('6256e'));" data-farnell="4531086" data-newark="11AM9749" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Servo Motor SER0039&lt;/td&gt;
&lt;td&gt;DFROBOT&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-739a8" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3769965&amp;nsku=52AJ5992&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('739a8'));" data-farnell="3769965" data-newark="52AJ5992" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="xs-hide"&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7elgi86"&gt;Additional Parts&lt;/h2&gt;
&lt;table class="e14-product-bom-additional"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;M3 machine screws&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Perfboard&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wires&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="mcetoc_1ju7elgi87"&gt;&lt;/h3&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: raspberry pi pico robot project, inverse kinematics tutorial, forward kinematics explained, raspberry pi pico 2w project, introduction to robotics, diy robot arm build, servo motor robotics, learn robotics with projects, robotics motion control, python robot control gui, scara robot tutorial, robotics programming for beginners, robot arm path planning, robot arm kinematics, SCARA robot arm, e14presents_milosrasic, friday_release&lt;/div&gt;
</description></item><item><title>Building and Programming a SCARA Industrial Robot Arm – An Introduction to Robotics</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72087/building-and-programming-a-scara-industrial-robot-arm-an-introduction-to-robotics/revision/3</link><pubDate>Thu, 23 Jul 2026 11:45:43 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4e4a8dd3-a2e0-4155-ae19-ef2b140a1557</guid><dc:creator>cstanton</dc:creator><description>Revision 3 posted to Documents by cstanton on 7/23/2026 11:45:43 AM&lt;br /&gt;
&lt;p&gt;Join Milos as he builds a simple SCARA robot arm and explores the fundamentals of robotics through practical engineering. From robot arm configurations and direct and inverse kinematics to firmware development, Python control software and motion planning, the project shows how mathematical concepts translate into real-world movement. Using a Raspberry Pi Pico 2 W, hobby servos and a custom GUI, the robot is able to move to coordinates, follow trajectories and even draw shapes, providing a hands-on introduction to robotic control systems, calibration and coordinate-based motion. Watch along and you can find the supporting files on the element14 Community.&lt;/p&gt;
&lt;h2&gt;Time to Strong-Arm Electronics!&lt;/h2&gt;
&lt;div&gt;&lt;a href="https://players.brightcove.net/1362235890001/default_default/index.html?videoId=6401908837112"&gt;players.brightcove.net/.../index.html&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;After exploring electronics, mechanics, control engineering, microcontrollers and robotics fundamentals in the previous instalments of this introduction to robotics series, Milos moves from theory into a practical build. Rather than discussing robotics from an abstract perspective, this project demonstrates how those concepts come together in a working machine: a compact SCARA robot arm capable of moving to coordinates, visualising kinematics and even drawing shapes.&lt;/p&gt;
&lt;p&gt;The aim is not to build the most accurate robot arm possible. Instead, the project focuses on creating something approachable, affordable and educational. As Milos explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;This is the main goal of this course is to keep it as simple as possible so for people that are doing anything like this for the first time.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;By keeping the design simple, the project becomes an effective platform for understanding the principles that underpin industrial robots, from coordinate systems and kinematics through to feedback, calibration and motion control.&lt;/p&gt;
&lt;p&gt;If you&amp;#39;re new to robotics, it is worth reviewing the earlier episodes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72071/building-the-foundations-of-your-first-robot---an-introduction-to-robotics" data-e14adj="t"&gt;Building the Foundations of Your First Robot&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72077/pid-control-motion-profiles-and-ros-explained---an-introduction-to-robotics" data-e14adj="t"&gt;PID Control, Motion Profiles and ROS Explained&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1ju7b36p79"&gt;Understanding Robot Arms and Kinematics&lt;/h2&gt;
&lt;p&gt;Before touching any hardware, Milos begins with one of the most important concepts in robotics: robot arm configuration. Whether a robot is a compact desktop arm, an industrial manipulator or a SCARA system, every robot arm can be described by its joints, the links connecting those joints and the position of its tool centre point (TCP).&lt;/p&gt;
&lt;p&gt;Once the joint positions and link lengths are known, it becomes possible to describe the entire robot mathematically. This is where kinematics enters the picture.&lt;/p&gt;
&lt;p&gt;As Milos explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;When we talk about robot arms, we&amp;#39;re usually interested in kinematics. That means direct kinematics and inverse kinematics.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Direct kinematics starts with known joint angles and link lengths and calculates the position of the TCP. Inverse kinematics takes the opposite approach. A target position is specified first, and the required joint angles are calculated afterwards.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Maybe we want to place the tool at a certain coordinate. To do that we need to calculate all of the angles in the joints.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The robot built in this project uses a SCARA (Selective Compliance Articulated Robot Arm) configuration. Unlike a traditional articulated robot arm with many joints, a SCARA robot uses two rotary joints operating in a plane and a simple actuator for vertical movement.&lt;/p&gt;
&lt;p&gt;This simplified structure makes it ideal for learning robotics because the mathematics remains approachable while still introducing the same principles used on larger industrial systems.&lt;/p&gt;
&lt;p&gt;Milos also highlights an important concept encountered in real robotic systems: multiple inverse kinematics solutions.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;We can reach the same point with two distinct configurations.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;These are commonly referred to as elbow-up and elbow-down configurations. Both reach the same TCP coordinate while positioning the robot differently.&lt;/p&gt;
&lt;p&gt;The project also introduces singularities. In the fully extended position, the robot loses one of its available configurations and can only reach that point in a single orientation.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The arm is completely stretched where we would have a singularity position.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Anyone interested in exploring these concepts further can find additional resources within the element14 Learning Centre, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/27574/the-basics-of-microcontrollers" data-e14adj="t"&gt;The Basics of Microcontrollers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/23151/magnetic-encoders" data-e14adj="t"&gt;Magnetic Encoders&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/29543/essentials-of-robot-operating-system-2" data-e14adj="t"&gt;Essentials of ROS 2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1ju7b36p7a"&gt;Hardware Design&lt;/h2&gt;
&lt;p&gt;The hardware reflects the project&amp;#39;s educational focus. The goal was to minimise complexity without removing important robotics concepts.&lt;/p&gt;
&lt;p&gt;At the centre of the system is the Raspberry Pi Pico 2 W, a compact microcontroller with more than enough processing power to handle servo control, communications and feedback acquisition.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It&amp;#39;s a brand new microcontroller, it&amp;#39;s more than powerful enough for this and it&amp;#39;s a small form factor.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Three servo motors are used. Two control the primary arm joints while the third operates the pen-lift mechanism.&lt;/p&gt;
&lt;p&gt;Rather than using stepper motors or brushless motors with dedicated drivers, Milos chose standard RC servos because they are inexpensive, easy to source and straightforward to control.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Why not use stepper motors or BLDC motors? One thing, simplicity.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Two of the servos also provide analogue feedback signals. These are connected directly to the Pico&amp;#39;s ADC inputs, allowing the software to monitor actual joint movement and compare commanded positions with measured positions.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;This is just an additional line that will feed the Pico ADC so we can measure the actual angle and get some graphs back.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Mechanically, the arm was designed in Fusion 360 and printed in PLA. The design uses two equal-length links measuring 150mm each.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Both links are at 150 millimeters which was my goal so we can keep them as easy as possible.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The drawing mechanism is equally simple. An SG90 servo lifts and lowers a pen through a small cam arrangement, enabling the robot to trace paths onto paper.&lt;/p&gt;
&lt;p&gt;All CAD resources, including STEP and STL files, are available for builders wishing to recreate or modify the project.&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7b36p7b"&gt;Firmware and Control Architecture&lt;/h2&gt;
&lt;p&gt;The software architecture is intentionally split into two layers.&lt;/p&gt;
&lt;p&gt;The Pico firmware acts primarily as a hardware interface, while the more computationally demanding robotics calculations are performed on the PC.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The heavy lifting for the robot arm will be actually done on the computer.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Communication takes place over a serial connection using a command structure inspired by G-code.&lt;/p&gt;
&lt;p&gt;As Milos explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The commands pretty much resemble G-code style commands.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Commands such as &lt;code&gt;G0&lt;/code&gt; and &lt;code&gt;G1&lt;/code&gt; provide rapid and smooth movement control, while calibration, streaming and configuration commands allow deeper interaction with the robot.&lt;/p&gt;
&lt;p&gt;The firmware itself documents this clearly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;G0 A B Z        - move in degrees
G1 A B Z [F]    - move in degrees
G28             - home
G90             - report position
M10             - ADC snapshot
M11             - start streaming
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Servo calibration and motion tuning are configurable directly from the firmware. For example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;float move_speed = 5.0;
int move_delay_ms = 20;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;These settings determine how smoothly the servos move between commanded positions.&lt;/p&gt;
&lt;p&gt;The firmware also incorporates safety functions such as emergency stop support:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;M112 - Emergency stop / detach all servos
M113 - Re-attach servos
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This allows the robot to be safely disabled and recovered during experimentation.&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7b36p7c"&gt;The Python GUI and Practical Robotics&lt;/h2&gt;
&lt;p&gt;The second part of the software stack is a substantial Python-based GUI created specifically for learning robotics concepts.&lt;/p&gt;
&lt;p&gt;Rather than relying entirely on terminal commands, the interface provides visual tools for understanding the relationship between coordinates, joint angles and robot motion.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The graphical user interface communicates with the robot arm.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Joint sliders allow direct manipulation of servo positions, while a Cartesian control system lets the user command positions using X-Y coordinates.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The GUI allows the user to send xy coordinates which get recalculated into servo angles using inverse kinematics.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A dedicated kinematics learning section was included in the software. The Python application features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Forward and inverse kinematics demonstrations&lt;/li&gt;
&lt;li&gt;Workspace visualisation&lt;/li&gt;
&lt;li&gt;Joint tracking plots&lt;/li&gt;
&lt;li&gt;Feedback monitoring&lt;/li&gt;
&lt;li&gt;CSV path playback&lt;/li&gt;
&lt;li&gt;Calibration tools&lt;/li&gt;
&lt;li&gt;Teach mode functionality&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The source code describes the goal directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Kinematics Lab tab dedicated to teaching FK and IK side-by-side with the underlying formulas.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The software also visualises both elbow-up and elbow-down inverse kinematic solutions, helping users understand why multiple solutions exist for many reachable points.&lt;/p&gt;
&lt;p&gt;For those looking to strengthen their software skills, element14&amp;#39;s Learning Centre also provides:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/28063/an-introduction-to-programming-with-python" data-e14adj="t"&gt;An Introduction to Programming with Python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/products/arduino/arduino-tutorials/b/blog/posts/jeremy-blum-arduino-tutorials" data-e14adj="t"&gt;Jeremy Blum&amp;#39;s Arduino Tutorials&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1ju7b36p7d"&gt;Drawing Paths with CSV Trajectories&lt;/h2&gt;
&lt;p&gt;Once direct control was working, the next challenge was creating repeatable motion.&lt;/p&gt;
&lt;p&gt;The GUI includes a path playback system capable of loading CSV files containing coordinate lists.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;We can load up a custom CSV with a bunch of points to which the robot arm should go and we can trace different outlines.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;To simplify shape creation, Milos also created Python tools capable of generating geometric paths automatically.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It generates your CSV shape in a bunch of dots and when you load that in the graphical user interface your arm will actually replay that path.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This transforms the robot from a coordinate demonstration into a machine capable of producing recognisable drawings.&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7b36p7e"&gt;Testing the Robot Arm&lt;/h2&gt;
&lt;p&gt;With the mechanical assembly complete and the software operating correctly, the final stage was testing.&lt;/p&gt;
&lt;p&gt;Initial tests focused on simple joint movement and home positioning. The graphical representation matched the physical robot closely, demonstrating that the kinematic calculations were behaving correctly.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;You can see that we are getting the movements that mimic what&amp;#39;s also happening on the user interface.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The inverse kinematic controller proved particularly successful.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;If we go and say move to xy you can see how it moves rapidly.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As expected, the limitations of hobby-grade servos quickly became apparent.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The arm moves a lot and that&amp;#39;s the main issue with servos like this, they just aren&amp;#39;t that accurate.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;However, the educational value remained high.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;For the price and for the simplicity of how easy they are to use they are a pretty good deal.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Path playback tests produced some impressive results, including stars and even an element14 logo. Although the robot occasionally exhibited visible oscillation, Milos identified exactly why:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It actually stops between each point so it&amp;#39;s not as accurate as it could be.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Future improvements could incorporate more advanced path-planning methods and look-ahead algorithms to smooth motion between waypoints.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;You can do this much better with proper path planning look forward algorithms that would make the actual path for both the servos smooth.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="mcetoc_1ju7b36p7f"&gt;From Theory to Practical Robotics&lt;/h2&gt;
&lt;p&gt;This build demonstrates one of the most rewarding aspects of robotics: seeing mathematical models become physical motion.&lt;/p&gt;
&lt;p&gt;Throughout the project, concepts such as coordinate systems, direct kinematics, inverse kinematics, servo control, calibration and feedback move from sketches on a whiteboard into a functioning machine.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;We can see some connection between actual theory with all of those equations that you&amp;#39;ve seen in the beginning and with actual real world results.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For newcomers, the project provides an approachable way to understand how robot arms operate. For more experienced makers and engineers, it offers a solid foundation for exploring advanced topics such as motion planning, PID control, encoder feedback and ROS integration.&lt;/p&gt;
&lt;p&gt;Most importantly, it demonstrates that robotics does not need to begin with expensive hardware or industrial equipment. With a Raspberry Pi Pico 2 W, a handful of servos, some printed parts and a willingness to experiment, it is possible to build a robot that brings the mathematics of robotics to life.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Building and Programming a SCARA Industrial Robot Arm – An Introduction to Robotics</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72087/building-and-programming-a-scara-industrial-robot-arm-an-introduction-to-robotics/revision/2</link><pubDate>Thu, 23 Jul 2026 11:45:21 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4e4a8dd3-a2e0-4155-ae19-ef2b140a1557</guid><dc:creator>cstanton</dc:creator><description>Revision 2 posted to Documents by cstanton on 7/23/2026 11:45:21 AM&lt;br /&gt;
&lt;p&gt;Join Milos as he builds a simple SCARA robot arm and explores the fundamentals of robotics through practical engineering. From robot arm configurations and direct and inverse kinematics to firmware development, Python control software and motion planning, the project shows how mathematical concepts translate into real-world movement. Using a Raspberry Pi Pico 2 W, hobby servos and a custom GUI, the robot is able to move to coordinates, follow trajectories and even draw shapes, providing a hands-on introduction to robotic control systems, calibration and coordinate-based motion. Watch along and you can find the supporting files on the element14 Community.&lt;/p&gt;
&lt;h2&gt;Time to Strong-Arm Electronics!&lt;/h2&gt;
&lt;div&gt;&lt;a href="https://players.brightcove.net/1362235890001/default_default/index.html?videoId=6401908837112"&gt;players.brightcove.net/.../index.html&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;After exploring electronics, mechanics, control engineering, microcontrollers and robotics fundamentals in the previous instalments of this introduction to robotics series, Milos moves from theory into a practical build. Rather than discussing robotics from an abstract perspective, this project demonstrates how those concepts come together in a working machine: a compact SCARA robot arm capable of moving to coordinates, visualising kinematics and even drawing shapes.&lt;/p&gt;
&lt;p&gt;The aim is not to build the most accurate robot arm possible. Instead, the project focuses on creating something approachable, affordable and educational. As Milos explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;This is the main goal of this course is to keep it as simple as possible so for people that are doing anything like this for the first time.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;By keeping the design simple, the project becomes an effective platform for understanding the principles that underpin industrial robots, from coordinate systems and kinematics through to feedback, calibration and motion control.&lt;/p&gt;
&lt;p&gt;If you&amp;#39;re new to robotics, it is worth reviewing the earlier episodes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72071/building-the-foundations-of-your-first-robot---an-introduction-to-robotics" data-e14adj="t"&gt;Building the Foundations of Your First Robot&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72077/pid-control-motion-profiles-and-ros-explained---an-introduction-to-robotics" data-e14adj="t"&gt;PID Control, Motion Profiles and ROS Explained&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1ju7b36p79"&gt;Understanding Robot Arms and Kinematics&lt;/h2&gt;
&lt;p&gt;Before touching any hardware, Milos begins with one of the most important concepts in robotics: robot arm configuration. Whether a robot is a compact desktop arm, an industrial manipulator or a SCARA system, every robot arm can be described by its joints, the links connecting those joints and the position of its tool centre point (TCP).&lt;/p&gt;
&lt;p&gt;Once the joint positions and link lengths are known, it becomes possible to describe the entire robot mathematically. This is where kinematics enters the picture.&lt;/p&gt;
&lt;p&gt;As Milos explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;When we talk about robot arms, we&amp;#39;re usually interested in kinematics. That means direct kinematics and inverse kinematics.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Direct kinematics starts with known joint angles and link lengths and calculates the position of the TCP. Inverse kinematics takes the opposite approach. A target position is specified first, and the required joint angles are calculated afterwards.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Maybe we want to place the tool at a certain coordinate. To do that we need to calculate all of the angles in the joints.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The robot built in this project uses a SCARA (Selective Compliance Articulated Robot Arm) configuration. Unlike a traditional articulated robot arm with many joints, a SCARA robot uses two rotary joints operating in a plane and a simple actuator for vertical movement.&lt;/p&gt;
&lt;p&gt;This simplified structure makes it ideal for learning robotics because the mathematics remains approachable while still introducing the same principles used on larger industrial systems.&lt;/p&gt;
&lt;p&gt;Milos also highlights an important concept encountered in real robotic systems: multiple inverse kinematics solutions.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;We can reach the same point with two distinct configurations.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;These are commonly referred to as elbow-up and elbow-down configurations. Both reach the same TCP coordinate while positioning the robot differently.&lt;/p&gt;
&lt;p&gt;The project also introduces singularities. In the fully extended position, the robot loses one of its available configurations and can only reach that point in a single orientation.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The arm is completely stretched where we would have a singularity position.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Anyone interested in exploring these concepts further can find additional resources within the element14 Learning Centre, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/27574/the-basics-of-microcontrollers" data-e14adj="t"&gt;The Basics of Microcontrollers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/23151/magnetic-encoders" data-e14adj="t"&gt;Magnetic Encoders&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/29543/essentials-of-robot-operating-system-2" data-e14adj="t"&gt;Essentials of ROS 2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1ju7b36p7a"&gt;Hardware Design&lt;/h2&gt;
&lt;p&gt;The hardware reflects the project&amp;#39;s educational focus. The goal was to minimise complexity without removing important robotics concepts.&lt;/p&gt;
&lt;p&gt;At the centre of the system is the Raspberry Pi Pico 2 W, a compact microcontroller with more than enough processing power to handle servo control, communications and feedback acquisition.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It&amp;#39;s a brand new microcontroller, it&amp;#39;s more than powerful enough for this and it&amp;#39;s a small form factor.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Three servo motors are used. Two control the primary arm joints while the third operates the pen-lift mechanism.&lt;/p&gt;
&lt;p&gt;Rather than using stepper motors or brushless motors with dedicated drivers, Milos chose standard RC servos because they are inexpensive, easy to source and straightforward to control.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Why not use stepper motors or BLDC motors? One thing, simplicity.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Two of the servos also provide analogue feedback signals. These are connected directly to the Pico&amp;#39;s ADC inputs, allowing the software to monitor actual joint movement and compare commanded positions with measured positions.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;This is just an additional line that will feed the Pico ADC so we can measure the actual angle and get some graphs back.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Mechanically, the arm was designed in Fusion 360 and printed in PLA. The design uses two equal-length links measuring 150mm each.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Both links are at 150 millimeters which was my goal so we can keep them as easy as possible.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The drawing mechanism is equally simple. An SG90 servo lifts and lowers a pen through a small cam arrangement, enabling the robot to trace paths onto paper.&lt;/p&gt;
&lt;p&gt;All CAD resources, including STEP and STL files, are available for builders wishing to recreate or modify the project.&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7b36p7b"&gt;Firmware and Control Architecture&lt;/h2&gt;
&lt;p&gt;The software architecture is intentionally split into two layers.&lt;/p&gt;
&lt;p&gt;The Pico firmware acts primarily as a hardware interface, while the more computationally demanding robotics calculations are performed on the PC.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The heavy lifting for the robot arm will be actually done on the computer.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Communication takes place over a serial connection using a command structure inspired by G-code.&lt;/p&gt;
&lt;p&gt;As Milos explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The commands pretty much resemble G-code style commands.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Commands such as &lt;code&gt;G0&lt;/code&gt; and &lt;code&gt;G1&lt;/code&gt; provide rapid and smooth movement control, while calibration, streaming and configuration commands allow deeper interaction with the robot.&lt;/p&gt;
&lt;p&gt;The firmware itself documents this clearly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;G0 A B Z        - move in degrees
G1 A B Z [F]    - move in degrees
G28             - home
G90             - report position
M10             - ADC snapshot
M11             - start streaming
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Servo calibration and motion tuning are configurable directly from the firmware. For example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;float move_speed = 5.0;
int move_delay_ms = 20;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;These settings determine how smoothly the servos move between commanded positions.&lt;/p&gt;
&lt;p&gt;The firmware also incorporates safety functions such as emergency stop support:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;M112 - Emergency stop / detach all servos
M113 - Re-attach servos
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This allows the robot to be safely disabled and recovered during experimentation.&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7b36p7c"&gt;The Python GUI and Practical Robotics&lt;/h2&gt;
&lt;p&gt;The second part of the software stack is a substantial Python-based GUI created specifically for learning robotics concepts.&lt;/p&gt;
&lt;p&gt;Rather than relying entirely on terminal commands, the interface provides visual tools for understanding the relationship between coordinates, joint angles and robot motion.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The graphical user interface communicates with the robot arm.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Joint sliders allow direct manipulation of servo positions, while a Cartesian control system lets the user command positions using X-Y coordinates.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The GUI allows the user to send xy coordinates which get recalculated into servo angles using inverse kinematics.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A dedicated kinematics learning section was included in the software. The Python application features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Forward and inverse kinematics demonstrations&lt;/li&gt;
&lt;li&gt;Workspace visualisation&lt;/li&gt;
&lt;li&gt;Joint tracking plots&lt;/li&gt;
&lt;li&gt;Feedback monitoring&lt;/li&gt;
&lt;li&gt;CSV path playback&lt;/li&gt;
&lt;li&gt;Calibration tools&lt;/li&gt;
&lt;li&gt;Teach mode functionality&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The source code describes the goal directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Kinematics Lab tab dedicated to teaching FK and IK side-by-side with the underlying formulas.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The software also visualises both elbow-up and elbow-down inverse kinematic solutions, helping users understand why multiple solutions exist for many reachable points.&lt;/p&gt;
&lt;p&gt;For those looking to strengthen their software skills, element14&amp;#39;s Learning Centre also provides:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/28063/an-introduction-to-programming-with-python" data-e14adj="t"&gt;An Introduction to Programming with Python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/products/arduino/arduino-tutorials/b/blog/posts/jeremy-blum-arduino-tutorials" data-e14adj="t"&gt;Jeremy Blum&amp;#39;s Arduino Tutorials&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1ju7b36p7d"&gt;Drawing Paths with CSV Trajectories&lt;/h2&gt;
&lt;p&gt;Once direct control was working, the next challenge was creating repeatable motion.&lt;/p&gt;
&lt;p&gt;The GUI includes a path playback system capable of loading CSV files containing coordinate lists.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;We can load up a custom CSV with a bunch of points to which the robot arm should go and we can trace different outlines.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;To simplify shape creation, Milos also created Python tools capable of generating geometric paths automatically.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It generates your CSV shape in a bunch of dots and when you load that in the graphical user interface your arm will actually replay that path.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This transforms the robot from a coordinate demonstration into a machine capable of producing recognisable drawings.&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7b36p7e"&gt;Testing the Robot Arm&lt;/h2&gt;
&lt;p&gt;With the mechanical assembly complete and the software operating correctly, the final stage was testing.&lt;/p&gt;
&lt;p&gt;Initial tests focused on simple joint movement and home positioning. The graphical representation matched the physical robot closely, demonstrating that the kinematic calculations were behaving correctly.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;You can see that we are getting the movements that mimic what&amp;#39;s also happening on the user interface.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The inverse kinematic controller proved particularly successful.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;If we go and say move to xy you can see how it moves rapidly.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As expected, the limitations of hobby-grade servos quickly became apparent.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The arm moves a lot and that&amp;#39;s the main issue with servos like this, they just aren&amp;#39;t that accurate.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;However, the educational value remained high.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;For the price and for the simplicity of how easy they are to use they are a pretty good deal.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Path playback tests produced some impressive results, including stars and even an element14 logo. Although the robot occasionally exhibited visible oscillation, Milos identified exactly why:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It actually stops between each point so it&amp;#39;s not as accurate as it could be.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Future improvements could incorporate more advanced path-planning methods and look-ahead algorithms to smooth motion between waypoints.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;You can do this much better with proper path planning look forward algorithms that would make the actual path for both the servos smooth.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="mcetoc_1ju7b36p7f"&gt;From Theory to Practical Robotics&lt;/h2&gt;
&lt;p&gt;This build demonstrates one of the most rewarding aspects of robotics: seeing mathematical models become physical motion.&lt;/p&gt;
&lt;p&gt;Throughout the project, concepts such as coordinate systems, direct kinematics, inverse kinematics, servo control, calibration and feedback move from sketches on a whiteboard into a functioning machine.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;We can see some connection between actual theory with all of those equations that you&amp;#39;ve seen in the beginning and with actual real world results.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For newcomers, the project provides an approachable way to understand how robot arms operate. For more experienced makers and engineers, it offers a solid foundation for exploring advanced topics such as motion planning, PID control, encoder feedback and ROS integration.&lt;/p&gt;
&lt;p&gt;Most importantly, it demonstrates that robotics does not need to begin with expensive hardware or industrial equipment. With a Raspberry Pi Pico 2 W, a handful of servos, some printed parts and a willingness to experiment, it is possible to build a robot that brings the mathematics of robotics to life.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Building and Programming a SCARA Industrial Robot Arm – An Introduction to Robotics</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72087/building-and-programming-a-scara-industrial-robot-arm-an-introduction-to-robotics/revision/1</link><pubDate>Thu, 23 Jul 2026 11:29:34 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4e4a8dd3-a2e0-4155-ae19-ef2b140a1557</guid><dc:creator>cstanton</dc:creator><description>Revision 1 posted to Documents by cstanton on 7/23/2026 11:29:34 AM&lt;br /&gt;
&lt;h1 id="mcetoc_1ju7b36p77"&gt;&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;Join Milos as he builds a simple SCARA robot arm and explores the fundamentals of robotics through practical engineering. From robot arm configurations and direct and inverse kinematics to firmware development, Python control software and motion planning, the project shows how mathematical concepts translate into real-world movement. Using a Raspberry Pi Pico 2 W, hobby servos and a custom GUI, the robot is able to move to coordinates, follow trajectories and even draw shapes, providing a hands-on introduction to robotic control systems, calibration and coordinate-based motion. Watch along and you can find the supporting files on the element14 Community.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Time to Strong-Arm Electronics!&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="https://community.element14.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-04-35/Building-and-Programming-a-SCARA-Industrial-Robot-Arm-_2D00_-An-Introduction-to-Robotics.mp4"&gt;community.element14.com/.../Building-and-Programming-a-SCARA-Industrial-Robot-Arm-_2D00_-An-Introduction-to-Robotics.mp4&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;After exploring electronics, mechanics, control engineering, microcontrollers and robotics fundamentals in the previous instalments of this introduction to robotics series, Milos moves from theory into a practical build. Rather than discussing robotics from an abstract perspective, this project demonstrates how those concepts come together in a working machine: a compact SCARA robot arm capable of moving to coordinates, visualising kinematics and even drawing shapes.&lt;/p&gt;
&lt;p&gt;The aim is not to build the most accurate robot arm possible. Instead, the project focuses on creating something approachable, affordable and educational. As Milos explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;This is the main goal of this course is to keep it as simple as possible so for people that are doing anything like this for the first time.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;By keeping the design simple, the project becomes an effective platform for understanding the principles that underpin industrial robots, from coordinate systems and kinematics through to feedback, calibration and motion control.&lt;/p&gt;
&lt;p&gt;If you&amp;#39;re new to robotics, it is worth reviewing the earlier episodes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72071/building-the-foundations-of-your-first-robot---an-introduction-to-robotics" data-e14adj="t"&gt;Building the Foundations of Your First Robot&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72077/pid-control-motion-profiles-and-ros-explained---an-introduction-to-robotics" data-e14adj="t"&gt;PID Control, Motion Profiles and ROS Explained&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1ju7b36p79"&gt;Understanding Robot Arms and Kinematics&lt;/h2&gt;
&lt;p&gt;Before touching any hardware, Milos begins with one of the most important concepts in robotics: robot arm configuration. Whether a robot is a compact desktop arm, an industrial manipulator or a SCARA system, every robot arm can be described by its joints, the links connecting those joints and the position of its tool centre point (TCP).&lt;/p&gt;
&lt;p&gt;Once the joint positions and link lengths are known, it becomes possible to describe the entire robot mathematically. This is where kinematics enters the picture.&lt;/p&gt;
&lt;p&gt;As Milos explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;When we talk about robot arms, we&amp;#39;re usually interested in kinematics. That means direct kinematics and inverse kinematics.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Direct kinematics starts with known joint angles and link lengths and calculates the position of the TCP. Inverse kinematics takes the opposite approach. A target position is specified first, and the required joint angles are calculated afterwards.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Maybe we want to place the tool at a certain coordinate. To do that we need to calculate all of the angles in the joints.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The robot built in this project uses a SCARA (Selective Compliance Articulated Robot Arm) configuration. Unlike a traditional articulated robot arm with many joints, a SCARA robot uses two rotary joints operating in a plane and a simple actuator for vertical movement.&lt;/p&gt;
&lt;p&gt;This simplified structure makes it ideal for learning robotics because the mathematics remains approachable while still introducing the same principles used on larger industrial systems.&lt;/p&gt;
&lt;p&gt;Milos also highlights an important concept encountered in real robotic systems: multiple inverse kinematics solutions.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;We can reach the same point with two distinct configurations.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;These are commonly referred to as elbow-up and elbow-down configurations. Both reach the same TCP coordinate while positioning the robot differently.&lt;/p&gt;
&lt;p&gt;The project also introduces singularities. In the fully extended position, the robot loses one of its available configurations and can only reach that point in a single orientation.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The arm is completely stretched where we would have a singularity position.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Anyone interested in exploring these concepts further can find additional resources within the element14 Learning Centre, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/27574/the-basics-of-microcontrollers" data-e14adj="t"&gt;The Basics of Microcontrollers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/23151/magnetic-encoders" data-e14adj="t"&gt;Magnetic Encoders&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/29543/essentials-of-robot-operating-system-2" data-e14adj="t"&gt;Essentials of ROS 2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1ju7b36p7a"&gt;Hardware Design&lt;/h2&gt;
&lt;p&gt;The hardware reflects the project&amp;#39;s educational focus. The goal was to minimise complexity without removing important robotics concepts.&lt;/p&gt;
&lt;p&gt;At the centre of the system is the Raspberry Pi Pico 2 W, a compact microcontroller with more than enough processing power to handle servo control, communications and feedback acquisition.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It&amp;#39;s a brand new microcontroller, it&amp;#39;s more than powerful enough for this and it&amp;#39;s a small form factor.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Three servo motors are used. Two control the primary arm joints while the third operates the pen-lift mechanism.&lt;/p&gt;
&lt;p&gt;Rather than using stepper motors or brushless motors with dedicated drivers, Milos chose standard RC servos because they are inexpensive, easy to source and straightforward to control.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Why not use stepper motors or BLDC motors? One thing, simplicity.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Two of the servos also provide analogue feedback signals. These are connected directly to the Pico&amp;#39;s ADC inputs, allowing the software to monitor actual joint movement and compare commanded positions with measured positions.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;This is just an additional line that will feed the Pico ADC so we can measure the actual angle and get some graphs back.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Mechanically, the arm was designed in Fusion 360 and printed in PLA. The design uses two equal-length links measuring 150mm each.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Both links are at 150 millimeters which was my goal so we can keep them as easy as possible.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The drawing mechanism is equally simple. An SG90 servo lifts and lowers a pen through a small cam arrangement, enabling the robot to trace paths onto paper.&lt;/p&gt;
&lt;p&gt;All CAD resources, including STEP and STL files, are available for builders wishing to recreate or modify the project.&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7b36p7b"&gt;Firmware and Control Architecture&lt;/h2&gt;
&lt;p&gt;The software architecture is intentionally split into two layers.&lt;/p&gt;
&lt;p&gt;The Pico firmware acts primarily as a hardware interface, while the more computationally demanding robotics calculations are performed on the PC.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The heavy lifting for the robot arm will be actually done on the computer.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Communication takes place over a serial connection using a command structure inspired by G-code.&lt;/p&gt;
&lt;p&gt;As Milos explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The commands pretty much resemble G-code style commands.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Commands such as &lt;code&gt;G0&lt;/code&gt; and &lt;code&gt;G1&lt;/code&gt; provide rapid and smooth movement control, while calibration, streaming and configuration commands allow deeper interaction with the robot.&lt;/p&gt;
&lt;p&gt;The firmware itself documents this clearly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;G0 A B Z        - move in degrees
G1 A B Z [F]    - move in degrees
G28             - home
G90             - report position
M10             - ADC snapshot
M11             - start streaming
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Servo calibration and motion tuning are configurable directly from the firmware. For example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;float move_speed = 5.0;
int move_delay_ms = 20;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;These settings determine how smoothly the servos move between commanded positions.&lt;/p&gt;
&lt;p&gt;The firmware also incorporates safety functions such as emergency stop support:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;M112 - Emergency stop / detach all servos
M113 - Re-attach servos
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This allows the robot to be safely disabled and recovered during experimentation.&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7b36p7c"&gt;The Python GUI and Practical Robotics&lt;/h2&gt;
&lt;p&gt;The second part of the software stack is a substantial Python-based GUI created specifically for learning robotics concepts.&lt;/p&gt;
&lt;p&gt;Rather than relying entirely on terminal commands, the interface provides visual tools for understanding the relationship between coordinates, joint angles and robot motion.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The graphical user interface communicates with the robot arm.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Joint sliders allow direct manipulation of servo positions, while a Cartesian control system lets the user command positions using X-Y coordinates.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The GUI allows the user to send xy coordinates which get recalculated into servo angles using inverse kinematics.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A dedicated kinematics learning section was included in the software. The Python application features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Forward and inverse kinematics demonstrations&lt;/li&gt;
&lt;li&gt;Workspace visualisation&lt;/li&gt;
&lt;li&gt;Joint tracking plots&lt;/li&gt;
&lt;li&gt;Feedback monitoring&lt;/li&gt;
&lt;li&gt;CSV path playback&lt;/li&gt;
&lt;li&gt;Calibration tools&lt;/li&gt;
&lt;li&gt;Teach mode functionality&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The source code describes the goal directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Kinematics Lab tab dedicated to teaching FK and IK side-by-side with the underlying formulas.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The software also visualises both elbow-up and elbow-down inverse kinematic solutions, helping users understand why multiple solutions exist for many reachable points.&lt;/p&gt;
&lt;p&gt;For those looking to strengthen their software skills, element14&amp;#39;s Learning Centre also provides:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/learn/learning-center/essentials/w/documents/28063/an-introduction-to-programming-with-python" data-e14adj="t"&gt;An Introduction to Programming with Python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/products/arduino/arduino-tutorials/b/blog/posts/jeremy-blum-arduino-tutorials" data-e14adj="t"&gt;Jeremy Blum&amp;#39;s Arduino Tutorials&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1ju7b36p7d"&gt;Drawing Paths with CSV Trajectories&lt;/h2&gt;
&lt;p&gt;Once direct control was working, the next challenge was creating repeatable motion.&lt;/p&gt;
&lt;p&gt;The GUI includes a path playback system capable of loading CSV files containing coordinate lists.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;We can load up a custom CSV with a bunch of points to which the robot arm should go and we can trace different outlines.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;To simplify shape creation, Milos also created Python tools capable of generating geometric paths automatically.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It generates your CSV shape in a bunch of dots and when you load that in the graphical user interface your arm will actually replay that path.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This transforms the robot from a coordinate demonstration into a machine capable of producing recognisable drawings.&lt;/p&gt;
&lt;h2 id="mcetoc_1ju7b36p7e"&gt;Testing the Robot Arm&lt;/h2&gt;
&lt;p&gt;With the mechanical assembly complete and the software operating correctly, the final stage was testing.&lt;/p&gt;
&lt;p&gt;Initial tests focused on simple joint movement and home positioning. The graphical representation matched the physical robot closely, demonstrating that the kinematic calculations were behaving correctly.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;You can see that we are getting the movements that mimic what&amp;#39;s also happening on the user interface.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The inverse kinematic controller proved particularly successful.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;If we go and say move to xy you can see how it moves rapidly.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As expected, the limitations of hobby-grade servos quickly became apparent.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The arm moves a lot and that&amp;#39;s the main issue with servos like this, they just aren&amp;#39;t that accurate.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;However, the educational value remained high.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;For the price and for the simplicity of how easy they are to use they are a pretty good deal.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Path playback tests produced some impressive results, including stars and even an element14 logo. Although the robot occasionally exhibited visible oscillation, Milos identified exactly why:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;It actually stops between each point so it&amp;#39;s not as accurate as it could be.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Future improvements could incorporate more advanced path-planning methods and look-ahead algorithms to smooth motion between waypoints.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;You can do this much better with proper path planning look forward algorithms that would make the actual path for both the servos smooth.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="mcetoc_1ju7b36p7f"&gt;From Theory to Practical Robotics&lt;/h2&gt;
&lt;p&gt;This build demonstrates one of the most rewarding aspects of robotics: seeing mathematical models become physical motion.&lt;/p&gt;
&lt;p&gt;Throughout the project, concepts such as coordinate systems, direct kinematics, inverse kinematics, servo control, calibration and feedback move from sketches on a whiteboard into a functioning machine.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;We can see some connection between actual theory with all of those equations that you&amp;#39;ve seen in the beginning and with actual real world results.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For newcomers, the project provides an approachable way to understand how robot arms operate. For more experienced makers and engineers, it offers a solid foundation for exploring advanced topics such as motion planning, PID control, encoder feedback and ROS integration.&lt;/p&gt;
&lt;p&gt;Most importantly, it demonstrates that robotics does not need to begin with expensive hardware or industrial equipment. With a Raspberry Pi Pico 2 W, a handful of servos, some printed parts and a willingness to experiment, it is possible to build a robot that brings the mathematics of robotics to life.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Project Video Release Archive</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/3748/project-video-release-archive/revision/221</link><pubDate>Thu, 16 Jul 2026 14:06:49 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:59ab0abe-b32d-47f9-b00c-4b73b01f3bd8</guid><dc:creator>e14sbhargav</dc:creator><description>Revision 221 posted to Documents by e14sbhargav on 7/16/2026 2:06:49 PM&lt;br /&gt;
&lt;div style="background:#ffffff;border-bottom:1px solid #dadada;margin:0;padding:14px 16px 16px 18px;vertical-align:top;"&gt;
&lt;div style="display:inline-block;float:left;padding:0px 25px 8px 0px;"&gt;&lt;a href="/challengesprojects/element14-presents/" data-icid="e14" data-e14adj="t"&gt;&lt;img alt="image"  src="/e14/assets/legacy/2018/e14PresentsJune818.png" width="180px" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="display:inline-block;vertical-align:top;width:70%;"&gt;&lt;span style="font-size:18px;font-weight:bold;"&gt;Project Video Releases&lt;/span&gt;
&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a class="jivecontainerTT-hover-container jive-link-community-small" style="color:#f17c0e;" href="/challengesprojects/element14-presents/" data-icid="e14" data-e14adj="t"&gt;element14 presents&lt;/a&gt;&lt;/span&gt;&amp;nbsp; &lt;strong&gt;|&lt;/strong&gt;&amp;nbsp; &lt;span style="padding-right:5px;"&gt;&lt;a class="jivecontainerTT-hover-container jive-link-community-small" style="color:#f17c0e;" href="/challengesprojects/element14-presents/vcp-program/" data-icid="e14" data-e14adj="t"&gt;Meet the Hosts&lt;/a&gt;&lt;/span&gt;&lt;span style="padding-right:5px;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72081/building-a-privacy-first-workshop-security-camera-with-pocketbeagle-2" data-e14adj="t"&gt;Episode 723: Building a Privacy-First Workshop Security Camera with PocketBeagle 2&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72077/pid-control-motion-profiles-and-ros-explained---an-introduction-to-robotics" data-e14adj="t"&gt;Episode 722: PID Control, Motion Profiles and ROS Explained - An Introduction to Robotics&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72073/designing-a-smarter-workbench-inside-mark-s-8-channel-power-monitoring-system" data-e14adj="t"&gt;Episode 721: Designing a Smarter Workbench: Inside Mark&amp;rsquo;s 8-Channel Power Monitoring System&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72071/building-the-foundations-of-your-first-robot---an-introduction-to-robotics" data-e14adj="t"&gt;Episode 720: Building the Foundations of Your First Robot - An Introduction to Robotics&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72070/turning-a-broken-robot-vacuum-into-a-network-controlled-raspberry-pi-5-rover" data-e14adj="t"&gt;Episode 719: Turning a Broken Robot Vacuum into a Network-Controlled Raspberry Pi 5 Rover&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72069/creating-a-multi-function-esp32-desk-pet-with-custom-pcb-and-audio-processing" data-e14adj="t"&gt;Episode 718: Creating a Multi-Function ESP32 Desk Pet with Custom PCB and Audio Processing&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72068/simulating-prey-vision-with-raspberry-pi-5-a-dual-camera-perception-experiment" data-e14adj="t"&gt;Episode 717: Simulating Prey Vision with Raspberry Pi 5: A Dual Camera Perception Experiment&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72067/designing-a-mobile-robot-platform-with-inverse-kinematics-and-wireless-control" data-e14adj="t"&gt;Episode 716: Designing a Mobile Robot Platform with Inverse Kinematics and Wireless Control&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72063/how-to-build-a-reaction-based-catch-game-using-arduino-and-relays" data-e14adj="t"&gt;Episode 715: How to Build a Reaction-Based Catch Game Using Arduino and Relays&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a href="/challenges-projects/element14-presents/project-videos/w/documents/72062/find-emi-fast-with-a-low-cost-automated-way-to-see-where-your-pcb-radiates" data-e14adj="t"&gt;Episode 714: Find EMI Fast with a Low‑Cost, Automated Way to See Where Your PCB Radiates&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 713:" href="/challenges-projects/element14-presents/project-videos/w/documents/72061/how-to-make-an-led-sculpture-react-to-sound-with-micro-bit" data-e14adj="t"&gt;Episode 713:&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72061/how-to-make-an-led-sculpture-react-to-sound-with-micro-bit"&gt;How to Make an LED Sculpture React to Sound with micro:bit&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 712: Designing a More Capable Dual Motor Driver Beyond the L298N (What worked and what didn't)" href="/challenges-projects/element14-presents/project-videos/w/documents/72060/designing-a-more-capable-dual-motor-driver-beyond-the-l298n-what-worked-and-what-didn-t" data-e14adj="t"&gt;Episode 712: Designing a More Capable Dual Motor Driver Beyond the L298N (What worked and what didn&amp;#39;t)&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 711: Modern Edge AI on Raspberry Pi 5 for an Animatronic Tracker: Vision Acceleration with AI Hat+ and AI Camera" href="/challenges-projects/element14-presents/project-videos/w/documents/72059/modern-edge-ai-on-raspberry-pi-5-for-an-animatronic-tracker-vision-acceleration-with-ai-hat-and-ai-camera" data-e14adj="t"&gt;Episode 711: Modern Edge AI on Raspberry Pi 5 for an Animatronic Tracker: Vision Acceleration with AI Hat+ and AI Camera&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 710: Your First Real PCB in KiCad : An Arduino Compatible Board Designed from Scratch" href="/challenges-projects/element14-presents/project-videos/w/documents/72057/your-first-real-pcb-in-kicad-an-arduino-compatible-board-designed-from-scratch" data-e14adj="t"&gt;Episode 710: Your First Real PCB in KiCad : An Arduino Compatible Board Designed from Scratch&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 709: Was that my Number!? Fixing Caf&amp;eacute; Order Chaos with a Raspberry Pi Announcer" href="/challenges-projects/element14-presents/project-videos/w/documents/72055/was-that-my-number-fixing-cafe-order-chaos-with-a-raspberry-pi-announcer" data-e14adj="t"&gt;Episode 709: Was that my Number!? Fixing Caf&amp;eacute; Order Chaos with a Raspberry Pi Announcer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 708: Reviving a Vintage LED Sign with Arduino and PS/2 Control" href="/challenges-projects/element14-presents/project-videos/w/documents/72042/reviving-a-vintage-led-sign-with-arduino-and-ps-2-control----episode-708" data-e14adj="t"&gt;Episode 708: Reviving a Vintage LED Sign with Arduino and PS/2 Control&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 707: Building a Circuit Sculpture with LED Filament" href="/challenges-projects/element14-presents/project-videos/w/documents/72038/building-a-circuit-sculpture-with-led-filament----episode-707" data-e14adj="t"&gt;Episode 707: Building a Circuit Sculpture with LED Filament&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72037/esp32-rfid-smart-access-control-in-a-simple-diy-build----episode-706"&gt;Episode 706: ESP32 + RFID = Smart Access Control in a Simple DIY Build&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 705: Building a Super Smooth Z-Scale Train Controller with Arduino" href="/challenges-projects/element14-presents/project-videos/w/documents/72036/building-a-super-smooth-z-scale-train-controller-with-arduino----episode-705" data-e14adj="t"&gt;Episode 705: Building a Super Smooth Z-Scale Train Controller with Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 704: Hacking an IKEA Desk into a Programmable Electric Workstation" href="/challenges-projects/element14-presents/project-videos/w/documents/72035/hacking-an-ikea-desk-into-a-programmable-electric-workstation----episode-704" data-e14adj="t"&gt;Episode 704: Hacking an IKEA Desk into a Programmable Electric Workstation&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 703: How to Set Up the Raspberry Pi 5: Complete Beginner Step-by-Step Guide" href="/challenges-projects/element14-presents/project-videos/w/documents/72034/how-to-set-up-the-raspberry-pi-5-complete-beginner-step-by-step-guide----episode-703" data-e14adj="t"&gt;Episode 703: How to Set Up the Raspberry Pi 5: Complete Beginner Step-by-Step Guide&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 702: Build Your Own USB Looper for Serial Debugging and File Transfer" href="/challenges-projects/element14-presents/project-videos/w/documents/72033/build-your-own-usb-looper-for-serial-debugging-and-file-transfer----episode-702" data-e14adj="t"&gt;Episode 702: Build Your Own USB Looper for Serial Debugging and File Transfer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 700: How Voice Recognition Works on Raspberry Pi (and Why It&amp;rsquo;s Easy to Break)" href="/challenges-projects/element14-presents/project-videos/w/documents/72031/from-snooze-to-launch-the-arduino-powered-lego-alarm-clock-inspired-by-artemis-2----episode-701" data-e14adj="t"&gt;Episode 701: From Snooze to Launch: The Arduino-Powered LEGO Alarm Clock Inspired by Artemis 2&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 700: How Voice Recognition Works on Raspberry Pi (and Why It&amp;rsquo;s Easy to Break)" href="/challenges-projects/element14-presents/project-videos/w/documents/72030/how-voice-recognition-works-on-raspberry-pi-and-why-it-s-easy-to-break----episode-700" data-e14adj="t"&gt;Episode 700: How Voice Recognition Works on Raspberry Pi (and Why It&amp;rsquo;s Easy to Break)&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 697:&amp;nbsp;A Smart, Safe 3D Printer Cabinet Using Raspberry Pi and Node-RED" href="/challenges-projects/element14-presents/project-videos/w/documents/72021/gimmegpio-a-simple-way-to-get-gpio-on-laptops-and-desktops----episode-699" data-e14adj="t"&gt;Episode 699:&amp;nbsp;GimmeGPIO: A Simple Way to Get GPIO on Laptops and Desktops&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 697:&amp;nbsp;A Smart, Safe 3D Printer Cabinet Using Raspberry Pi and Node-RED" href="/challenges-projects/element14-presents/project-videos/w/documents/72020/building-a-practical-electronics-workbench-for-makers-and-engineers----episode-698" data-e14adj="t"&gt;Episode 698:&amp;nbsp;Building a Practical Electronics Workbench for Makers and Engineers&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a title="Episode 697:&amp;nbsp;A Smart, Safe 3D Printer Cabinet Using Raspberry Pi and Node-RED" href="/challenges-projects/element14-presents/project-videos/w/documents/72009/a-smart-safe-3d-printer-cabinet-using-raspberry-pi-and-node-red----episode-697" data-e14adj="t"&gt;Episode 697:&amp;nbsp;A Smart, Safe 3D Printer Cabinet Using Raspberry Pi and Node-RED&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/72008/how-a-pulse-metal-detector-works-and-how-to-build-one" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 696: How a Pulse Metal Detector Works, and How to Build One&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/72007/a-diy-test-and-programming-rig-built-for-small-batch-electronics-production----episode-695" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 695: A DIY Test and Programming Rig Built for Small-Batch Electronics Production&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/secret-element14-presents/w/documents/72001/earn-your-fitness-reward-with-a-smart-cookie-jar-using-strava-and-esp32----episode-694" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 694: Earn Your Fitness Reward with a Smart Cookie Jar Using Strava and ESP32&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71999/open-source-multicolour-3d-printing-upgrade-clem-s-3d-chameleon-remix----episode-693" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 693: Open-Source Multicolour 3D Printing Upgrade: Clem&amp;rsquo;s 3D Chameleon Remix&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71995/build-your-own-esp32-fitness-heart-rate-monitor-tracker----episode-692" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 692: Build Your own ESP32 Fitness Heart Rate Monitor / Tracker&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71994/how-accurate-is-bluetooth-channel-sounding-a-deep-dive-with-the-nrf54l15" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 691: How Accurate Is Bluetooth Channel Sounding? A Deep Dive with the nRF54L15&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71993/meet-the-platypusbot-now-powered-by-raspberry-pi-ros----episode-690" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 690: Meet the PlatypusBot: Now Powered by Raspberry Pi &amp;amp; ROS&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71992/how-clem-built-a-handheld-sci-fi-communicator-that-really-works----episode-689" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 689: How Clem Built a Handheld Sci-Fi Communicator That Really Works&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71990/building-the-cylon-pumpkin-combining-a-larson-scanner-and-vocoder-for-halloween----episode-688" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 688: Building the Cylon Pumpkin: Combining a Larson Scanner and Vocoder for Halloween&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71989/turning-a-10-air-fryer-into-an-arduino-powered-filament-dryer----episode-687" data-icid="e14p-ep687-eplist" data-e14adj="t"&gt;Episode 687: Turning a $10 Air Fryer into an Arduino powered Filament Dryer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71988/creepy-motion-activated-painting-you-can-build-yourself----episode-686" data-icid="e14" data-e14adj="t"&gt;Episode 686: Creepy Motion-Activated Painting You Can Build Yourself&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71987/when-your-body-becomes-the-instrument-clem-builds-the-drone-synth----episode-685" data-icid="e14" data-e14adj="t"&gt;Episode 685: When Your Body Becomes the Instrument: Clem Builds the &amp;ldquo;Dr&amp;ouml;ne&amp;rdquo; Synth&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71985/building-an-audio-reactive-led-matrix-with-a-micro-bit-and-neopixels----episode-684" data-icid="e14" data-e14adj="t"&gt;Episode 684: Building an Audio Reactive LED Matrix with a micro:bit and NeoPixels&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71984/how-to-make-a-portable-emergency-radio-with-an-arduino-nano-in-a-mint-tin----episode-683" data-icid="e14" data-e14adj="t"&gt;Episode 683: How to Make a Portable Emergency Radio with an Arduino Nano in a Mint TinT&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71974/diy-rf-modulator-raspberry-pi-pico-gaming-on-a-sony-watchman-fd-10a-crt----episode-682" data-icid="e14" data-e14adj="t"&gt;Episode 682: DIY RF Modulator + Raspberry Pi Pico = Gaming on a Sony Watchman FD-10A CRT&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71963/turn-anything-into-an-arduino-module-reusing-everyday-electronics----episode-681" data-icid="e14" data-e14adj="t"&gt;Episode 681: Turn anything into an Arduino Module: Reusing Everyday Electronics&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71961/from-kit-to-custom-design-building-a-tube-based-fm-radio----episode-680" data-icid="e14" data-e14adj="t"&gt;Episode 680: From Kit to Custom Design: Building a Tube-Based FM Radio&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71960/esp32-duolingo-owl-project-never-miss-a-lesson-again----episode-679" data-icid="e14" data-e14adj="t"&gt;Episode 679: ESP32 Duolingo Owl Project: Never Miss a Lesson Again&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71959/open-source-attiny3226-arduino-calculator-hardware-case-code-build----episode-678" data-icid="e14" data-e14adj="t"&gt;Episode 678: Open Source ATtiny3226 Arduino Calculator &amp;ndash; Hardware, Case &amp;amp; Code Build&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71955/make-your-own-vocoder-with-teensy-4-0---voice-of-a-cylon----episode-677" data-icid="e14" data-e14adj="t"&gt;Episode 677: Make Your Own Vocoder with Teensy 4.0 - Voice of a Cylon?!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71954/i-tried-building-16-attiny-robots-with-vibration-motors-it-was-a-disaster----episode-676" data-icid="e14" data-e14adj="t"&gt;Episode 676: I Tried Building 16 ATtiny Robots with Vibration Motors &amp;ndash; It Was a Disaster&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71953/avoid-conflict-with-this-esp32-defcon-task-tracker----episode-675" data-icid="e14" data-e14adj="t"&gt;Episode 675:Avoid Conflict with this ESP32 Defcon Task Tracker&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71947/building-an-open-source-blood-pressure-heart-signal-monitor----episode-674" data-icid="e14" data-e14adj="t"&gt;Episode 674: Building an Open Source Blood Pressure &amp;amp; Heart Signal Monitor&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71942/building-an-esp32-powered-warhammer-40k-rhino-with-dynamic-led-effects----episode-673" data-icid="e14" data-e14adj="t"&gt;Episode 673: Building an ESP32 Powered Warhammer 40k Rhino with Dynamic LED Effects!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71936/building-an-autonomous-lego-train-with-circuitpython-and-lidar----episode-672" data-icid="e14" data-e14adj="t"&gt;Episode 672: Building an Autonomous LEGO Train with CircuitPython and LIDAR&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71934/platypusbot---scavenging-for-robotics-parts----episode-671" data-icid="e14" data-e14adj="t"&gt;Episode 671: PlatypusBot - Scavenging for Robotics Parts&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71927/build-a-larson-scanner-with-sound-using-an-esp32----episode-670" data-icid="e14" data-e14adj="t"&gt;Episode 670: Build your own Larson Scanner&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71926/creating-an-esd-or-lightning-detector----episode-669" data-icid="e14" data-e14adj="t"&gt;Episode 669: Creating an ESD (Or Lightning!) Detector!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71925/designing-an-arduino-pid-controlled-micro-drone----episode-668" data-icid="e14" data-e14adj="t"&gt;Episode 668: Designing an Arduino PID Controlled Micro Drone&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71921/emulating-a-speech-synthesis-chip-with-an-esp32----episode-667" data-icid="e14" data-e14adj="t"&gt;Episode 667: Emulating a Speech Synthesis Chip with an ESP32&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71920/how-far-can-i2c-go----episode-666" data-icid="e14" data-e14adj="t"&gt;Episode 666: How Far Can I2C Go?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71919/raspberry-pi-ai-tracking-eye-of-sauron---ai-al-barad-dur---episode-665" data-icid="e14" data-e14adj="t"&gt;Episode 665: Raspberry Pi AI Tracking Eye of Sauron - AI AL Barad Dur&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71915/learn-how-to-make-a-photo-booth-with-the-esp32-and-telegram-automation----episode-664" data-icid="e14" data-e14adj="t"&gt;Episode 664: Learn how to Make a Photo Booth with the ESP32 and Telegram Automation!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71911/upcycling-a-vintage-microphone-into-an-emergency-radio-system----episode-663" data-icid="e14" data-e14adj="t"&gt;Episode 663: Upcycling a Vintage Microphone into an Emergency Radio System&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/71909/making-a-stronger-affordable-diy-robot-arm-with-3d-printing-with-raspberry-pi-pico----episode-662" data-icid="e14" data-e14adj="t"&gt;Episode 662: Making a Stronger Affordable DIY Robot Arm with 3D Printing with Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71904/make-your-own-led-wrist-watch----episode-661" data-icid="e14" data-e14adj="t"&gt;Episode 661: Clem makes his own LED Wristwatch&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71846/lofi-beats-to-solder-to----episode-660" data-icid="e14" data-e14adj="t"&gt;Episode 660: LoFi Beats to Solder To&lt;/a&gt;&lt;/p&gt;
&lt;p style="clear:both;margin:0;padding:0px;padding-top:12px;"&gt;&lt;a title="Episode 659:&amp;nbsp;DIY Single Board Computer with ESP32 and Raspberry Pi Pico" href="/challenges-projects/element14-presents/project-videos/w/documents/71844/diy-single-board-computer-with-esp32-and-raspberry-pi-pico----episode-659" data-e14adj="t"&gt;Episode 659:&amp;nbsp;DIY Single Board Computer with ESP32 and Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71841/a-smart-youtube-counter-with-an-audio-analyzer---episode---658" data-icid="e14" data-e14adj="t"&gt;Episode 658: A Smart Youtube Counter With An Audio Analyzer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71833/how-to-control-a-lego-mindstorms-kit-with-ai-and-raspberry-pi-5----episode-657" data-icid="e14" data-e14adj="t"&gt;Episode 657: How to Control a LEGO Mindstorms kit with AI and Raspberry Pi 5&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71831/diy-jig-for-your-laser-cutter-with-custom-arduino-automation----episode-656" data-icid="e14" data-e14adj="t"&gt;Episode 656: DIY Jig for your Laser Cutter with Custom Arduino Automation&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71810/diy-hot-plate-for-smd-soldering-using-raspberry-pi-pico----episode-655" data-icid="e14" data-e14adj="t"&gt;Episode 655: DIY Hot Plate for SMD Soldering Using Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71801/how-do-battlebots-work-in-the-pit-with-hypershock----episode-654" data-icid="e14" data-e14adj="t"&gt;Episode 654: How Do BattleBots Work? In the Pit with HyperShock&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71797/edge-lit-7-segment-display-clock-using-raspberry-pi-pico----episode-653" data-icid="e14" data-e14adj="t"&gt;Episode 653: Edge-lit 7-Segment Display Clock Using Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71793/smart-windows-and-blinds-with-arduino-and-raspberry-pi-pico----episode-652" data-icid="e14" data-e14adj="t"&gt;Episode 652: Smart Windows and Blinds with Arduino and Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/71784/design-for-manufacturing---project-to-product-by-modifying-off-the-shelf-cases----episode-651" data-icid="e14" data-e14adj="t"&gt;Episode 651: Design for Manufacturing - Project to Product by Modifying Off-the-Shelf Cases&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/46432/using-nordic-s-nrf7002-my-dehumidifier-tells-me-when-it-s-full----episode-650" data-icid="e14" data-e14adj="t"&gt;Episode 650: Using Nordic&amp;#39;s nRF7002, My Dehumidifier Tells Me When It&amp;#39;s Full!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/29545/giant-retro-gaming-magic-mirror-with-a-raspberry-pi-5----episode-649" data-icid="e14" data-e14adj="t"&gt;Episode 649: Giant Retro Gaming Magic Mirror with a Raspberry Pi 5!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/29540/home-ai-image-generation-server-with-lattepanda-and-stable-diffusion----episode-648" data-icid="e14" data-e14adj="t"&gt;Episode 648: Home AI Image Generation Server with LattePanda and Stable Diffusion&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/29537/building-an-open-source-tool-for-cave-surveying----episode-647" data-icid="e14" data-e14adj="t"&gt;Episode 647: Building an Open-Source Tool for Cave Surveying&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28802/creating-a-digital-roulette-table-with-an-esp32-devkit----episode-646" data-icid="e14" data-e14adj="t"&gt;Episode 646: Creating a Digital Roulette Table with an ESP32 DevKit&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28438/practical-diy-pi-pico-current-load-circuits----episode-645" data-icid="e14" data-e14adj="t"&gt;Episode 645: Practical DIY Pi Pico Current Load Circuits&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28421/turning-a-raspberry-pi-pico-into-a-gpu----episode-644" data-icid="e14" data-e14adj="t"&gt;Episode 644: Turning a Raspberry Pi Pico into a GPU!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28418/making-a-tribble-that-detects-klingons----episode-643" data-icid="e14" data-e14adj="t"&gt;Episode 643: Making a Tribble that Detects Klingons&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28416/making-a-time-lapse-camera-with-a-raspberry-pi-5----episode-642" data-icid="e14" data-e14adj="t"&gt;Episode 642: Making a Time-lapse Camera with a Raspberry Pi 5&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28409/moon-phase-display-with-raspberry-pi-pico----episode-641" data-icid="e14" data-e14adj="t"&gt;Episode 641: Moon Phase Display with Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28407/tinkering-vs-engineering-can-you-build-a-laptop-from-scratch----episode-640" data-icid="e14" data-e14adj="t"&gt;Episode 640: Tinkering vs Engineering: Can You Build a Laptop from Scratch?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28405/off-grid-remote-generator-starter----episode-639" data-icid="e14" data-e14adj="t"&gt;Episode 639: Off-Grid Remote Generator Starter?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28387/rp2040-pcb-design-turn-on-and-debug---how-hard-could-it-be----episode-638" data-icid="e14" data-e14adj="t"&gt;Episode 638: RP2040 PCB: Design, Turn-On, and Debug - How Hard Could It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28386/making-music-with-a-lego-guitar-and-capacitive-touch----episode-637" data-icid="e14" data-e14adj="t"&gt;Episode 637: Making Music with a Lego Guitar and Capacitive Touch&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28384/creating-an-imu-based-3d-mouse-with-an-esp32-s3----episode-636" data-icid="e14" data-e14adj="t"&gt;Episode 636: Creating an IMU based 3D Mouse with an ESP32-S3&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28382/vintage-electronics-exploration-with-a-bally-cypress-gardens-bingo-machine---episode-635" data-icid="e14" data-e14adj="t"&gt;Episode 635: Vintage Electronics Exploration with a Bally Cypress Gardens Bingo Machine&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28381/craft-a-festive-led-christmas-sweater-featuring-the-attiny416----episode-634" data-icid="e14" data-e14adj="t"&gt;Episode 634: Craft a Festive LED Christmas Sweater Featuring the ATtiny416&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28376/spying-under-the-christmas-tree-with-an-arduino-powered-ornament----episode-633" data-icid="e14" data-e14adj="t"&gt;Episode 633: Spying Under the Christmas Tree with an Arduino-powered Ornament&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28374/revamping-old-school-pinball-with-an-esp32----episode-632" data-icid="e14" data-e14adj="t"&gt;Episode 632: Revamping Old School Pinball with an ESP32&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28372/all-purpose-debugging-a-practical-universal-screen-with-lcd-displays----episode-631" data-icid="e14" data-e14adj="t"&gt;Episode 631: All-Purpose Debugging: A Practical Universal Screen with LCD Displays&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28370/mega-iie-first-fully-functional-computer-built-around-the-apple-mega-ii-chip----episode-630" data-icid="e14" data-e14adj="t"&gt;Episode 630: Mega IIe: First Fully Functional Computer built around the Apple Mega-II Chip&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28366/backpack-splash-mark-s-water-gun-upgrade-for-epic-outdoor-water-wars----episode-629" data-icid="e14" data-e14adj="t"&gt;Episode 629: Backpack Splash: Mark&amp;#39;s Water Gun Upgrade for Epic Outdoor Water Wars!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28361/affordable-diy-robot-arm-a-deep-dive-into-3d-printing-and-servo-motors----episode-628" data-icid="e14" data-e14adj="t"&gt;Episode 628: Affordable DIY Robot Arm - A Deep Dive into 3D Printing and Servo Motors&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28353/creating-sudostick---from-prototype-to-product----episode-627" data-icid="e14" data-e14adj="t"&gt;Episode 627: Creating sudostick - From Prototype to Product&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28351/catching-you-up-on-bonesnapper-ridge---off-grid-maker-shop----episode-626" data-icid="e14" data-e14adj="t"&gt;Episode 626: Catching you Up on Bonesnapper Ridge - Off-Grid Maker Shop&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28344/interactive-magic-creating-an-enchanted-cauldron----episode-625" data-icid="e14" data-e14adj="t"&gt;Episode 625: Interactive Magic - Creating an Enchanted Cauldron&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28342/episode-624-modding-a-smoke-machine-to-add-motion-detection" data-icid="e14" data-e14adj="t"&gt;Episode 624: Modding A Smoke Machine to Add Motion Detection&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28339/episode-623-how-to-run-linux-on-an-esp32" data-icid="e14" data-e14adj="t"&gt;Episode 623: How to Run Linux on an ESP32&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28334/episode-622-building-spooky-fun-halloween-sound-pranks-with-nrf-5340-ble-audio" data-icid="e14" data-e14adj="t"&gt;Episode 622: Building Spooky Fun: Halloween Sound Pranks with nRF 5340 BLE Audio&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28330/episode-621-color-sensor-based-water-quality-tracker-diy-environmental-monitoring" data-icid="e14" data-e14adj="t"&gt;Episode 621: Color Sensor-Based Water Quality Tracker: DIY Environmental Monitoring&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28328/episode-620-stey-by-step-guide-to-creating-your-own-speaking-animatronic-hat" data-icid="e14" data-e14adj="t"&gt;Episode 620: Stey-by-Step Guide to Creating your own Speaking Animatronic Hat&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28316/episode-619-how-to-build-an-open-source-bluetooth-mechanical-keyboard" data-icid="e14" data-e14adj="t"&gt;Episode 619: How to Build an Open Source Bluetooth Mechanical Keyboard&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28308/episode-618-upgrading-my-racing-sim-with-a-force-sensitive-keyboard" data-icid="e14" data-e14adj="t"&gt;Episode 618: Upgrading My Racing Sim with a Force-Sensitive Keyboard&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28306/episode-617-simplify-network-monitoring-building-an-esp32-powered-solution" data-icid="e14" data-e14adj="t"&gt;Episode 617: Simplify Network Monitoring: Building an ESP32-Powered Solution&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28300/episode-616-mastering-oven-control-precision-resin-curing-with-diy-modifications---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 616: Mastering Oven Control: Precision Resin Curing with DIY Modifications - How Hard Can it Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28290/episode-615-building-a-unique-usb-card-reader-from-idea-to-prototype" data-icid="e14" data-e14adj="t"&gt;Episode 615: Building a Unique USB Card Reader: From Idea to Prototype&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28278/episode-614-using-pid-proportional-integral-derivative-in-robotics---how-hard-could-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 614: Using PID (Proportional-Integral-Derivative) in Robotics - How Hard Could It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28274/episode-613-building-a-magic-wand-talking-sound-board" data-icid="e14" data-e14adj="t"&gt;Episode 613: Building a Magic Wand Talking Sound Board&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28271/episode-612-handheld-basic-computer-in-badge-format-with-the-arduino-uno" data-icid="e14" data-e14adj="t"&gt;Episode 612: Handheld BASIC computer in Badge Format with the Arduino Uno&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28267/episode-611-how-to-run-the-distance-to-the-moon-with-strava-data-and-a-pico-w-board" data-icid="e14" data-e14adj="t"&gt;Episode 611: How to Run the Distance to the Moon with Strava Data and a Pico W Board&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28214/episode-610-how-to-embroider-with-circuits-and-conductive-thread" data-icid="e14" data-e14adj="t"&gt;Episode 610: How to Embroider with Circuits and Conductive Thread&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28213/episode-609-updating-a-fujitsu-n860-2500-t111-keyboard-to-work-with-a-ps2-standard" data-icid="e14" data-e14adj="t"&gt;Episode 609: Updating a Fujitsu N860-2500-T111 Keyboard to Work with a PS2 Standard&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28200/episode-608-making-the-simplest-diy-wind-energy-generator---how-hard-could-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 608: Making the Simplest DIY Wind Energy Generator - How Hard Could it Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28198/episode-607-from-strava-to-motion-creating-an-arduino-powered-arcade-game-with-running-data" data-icid="e14" data-e14adj="t"&gt;Episode 607: From Strava to Motion: Creating an Arduino-Powered Arcade Game with Running Data&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28184/episode-606-how-to-use-lorawan-to-launch-model-rockets-wirelessly" data-icid="e14" data-e14adj="t"&gt;Episode 606: How to Use LoRaWAN to Launch Model Rockets Wirelessly&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28152/episode-605-arduino-and-leds-make-solitaire-easier-to-solve" data-icid="e14" data-e14adj="t"&gt;Episode 605: Arduino and LEDs Make Solitaire Easier to Solve&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28140/episode-604-charlieplexing-buttons-and-leds-at-the-same-time---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 604: Charlieplexing Buttons and LEDs at the Same Time - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28138/episode-603-create-your-own-air-hockey-table-with-arduino-scoring" data-icid="e14" data-e14adj="t"&gt;Episode 603: Create Your Own Air Hockey Table with Arduino Scoring&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28133/episode-602-diy-ac-dimmer-circuit-control-your-lights-with-a-raspberry-pi-pico" data-icid="e14" data-e14adj="t"&gt;Episode 602: DIY AC Dimmer Circuit: Control Your Lights with a Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28131/episode-601-how-to-reverse-engineer-electronics-building-a-developer-board-for-a-coding-class" data-icid="e14" data-e14adj="t"&gt;Episode 601: How to Reverse Engineer Electronics: Building a Developer Board for a Coding Class&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28126/episode-600-building-my-dream-digital-clock-diy-7-segment-display-with-a-cute-robot-twist" data-icid="e14" data-e14adj="t"&gt;Episode 600: Building My Dream Digital Clock: DIY 7 Segment Display with a Cute Robot Twist!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28117/episode-599-how-to-build-a-spectrum-analyzer-with-lego-bricks-discrete-electronics" data-icid="e14" data-e14adj="t"&gt;Episode 599: How to Build a Spectrum Analyzer with Lego Bricks &amp;amp; Discrete Electronics&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28102/episode-598-how-to-build-a-portable-solar-charged-off-grid-power-station" data-icid="e14" data-e14adj="t"&gt;Episode 598: How To Build a Portable, Solar-Charged Off-Grid Power Station&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28097/episode-597-how-to-build-a-robot-that-celebrates-good-grades-with-arduino" data-icid="e14" data-e14adj="t"&gt;Episode 597: How to Build a Robot that Celebrates Good Grades with Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28084/episode-596-how-to-build-your-own-voice-assistant-with-mycroft-ai---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 596: How to Build Your Own Voice Assistant with MyCroft AI - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28082/episode-595-member-challenge-accepted---universal-lanc-controller-for-dslr-cameras" data-icid="e14" data-e14adj="t"&gt;Episode 595: Member Challenge Accepted - Universal LANC Controller for DSLR cameras&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28059/episode-594-repairing-a-neewer-660-studio-light---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 594: Repairing a Neewer 660 Studio light - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28057/episode-593-playing-3d-famicom-games-wirelessly-on-the-nes---how-hard-could-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 593: Playing 3D Famicom Games Wirelessly on the NES - How Hard Could It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28050/episode-592-lamptopus-spinning-led-desk-lamp" data-icid="e14" data-e14adj="t"&gt;Episode 592: Lamptopus: Spinning LED Desk Lamp&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28036/episode-591-building-a-bluetooth-speaker-in-5-minutes---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 591: Building A Bluetooth Speaker in 5 Minutes - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28033/episode-590-seven-kingdoms-open-source-bartop-arcade" data-icid="e14" data-e14adj="t"&gt;Episode 590: Seven Kingdoms Open Source Bartop Arcade&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28024/episode-589-upgrading-the-imac-g4-with-a-nuc" data-icid="e14" data-e14adj="t"&gt;Episode 589: Upgrading the iMac G4 With a NUC&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/28020/episode-588-highlights-from-element14-presents-2022" data-icid="e14" data-e14adj="t"&gt;Episode 588: Highlights from element14 presents 2022&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27982/episode-587-create-your-own-talking-stress-indicator" data-icid="e14" data-e14adj="t"&gt;Episode 587: Create Your Own Talking Stress Indicator&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27965/episode-586-diy-open-source-bluetooth-headphones" data-icid="e14" data-e14adj="t"&gt;Episode 586: DIY Open Source Bluetooth Headphones&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27960/episode-585-enhancing-a-magnifying-headband-with-auto-sensing-light" data-icid="e14" data-e14adj="t"&gt;Episode 585: Enhancing a Magnifying Headband with Auto Sensing Light&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27952/episode-584-going-beyond-periodic-wakes-using-wifi-to-revive-a-sleeping-device" data-icid="e14" data-e14adj="t"&gt;Episode 584: Going Beyond Periodic Wakes: Using WiFi to Revive a Sleeping Device&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27934/episode-583-epic-neopixel-birthday-cake" data-icid="e14" data-e14adj="t"&gt;Episode 583: Epic Neopixel Birthday Cake&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27917/episode-582-smart-christmas-decoration-with-raspberry-pi-pico-and-mqtt" data-icid="e14" data-e14adj="t"&gt;Episode 582: Smart Christmas Decoration with Raspberry Pi Pico and MQTT&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27900/episode-581-bee-saving-electronics-prototype" data-icid="e14" data-e14adj="t"&gt;Episode 581: Bee-Saving Electronics Prototype&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27894/episode-580-diy-low-cost-capacitance-meter-using-a-555-timer" data-icid="e14" data-e14adj="t"&gt;Episode 580: DIY Low Cost Capacitance Meter Using a 555 Timer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27881/episode-579-how-to-make-a-basketball-auto-score-keeper-using-colour-sensing" data-icid="e14" data-e14adj="t"&gt;Episode 579: How to Make a Basketball Auto Score Keeper Using Colour Sensing&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27879/episode-578-build-your-own-bat-detector-with-analog-parts" data-icid="e14" data-e14adj="t"&gt;Episode 578: Build your Own Bat Detector with Analog Parts&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27862/episode-577-the-game-guy-mini-upgrading-the-unportable-game-boy" data-icid="e14" data-e14adj="t"&gt;Episode 577: The Game Guy Mini, Upgrading the Unportable Game Boy!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27861/episode-576-build-your-own-underwater-drone-with-3d-printed-parts" data-icid="e14" data-e14adj="t"&gt;Episode 576: Build your own Underwater Drone with 3D Printed Parts&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27855/episode-575-how-to-make-a-secured-parcel-pickup-box-with-arduino" data-icid="e14" data-e14adj="t"&gt;Episode 575: How to Make a Secured Parcel Pickup Box with Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27846/episode-574-ghost-rider-halloween-costume" data-icid="e14" data-e14adj="t"&gt;Episode 574: Ghost Rider Halloween Costume&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27836/episode-573-using-a-pi-pico-to-convert-keyboard-input-to-morse-code" data-icid="e14" data-e14adj="t"&gt;Episode 573: Using a Pi Pico to Convert Keyboard Input to Morse Code&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27824/episode-572-how-to-use-an-esp32-camera-to-know-you-ve-got-mail" data-icid="e14" data-e14adj="t"&gt;Episode 572: How to Use an ESP32 &amp;amp; Camera to Know You&amp;#39;ve Got Mail!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27807/episode-571-using-dead-batteries-to-test-for-dead-batteries" data-icid="e14" data-e14adj="t"&gt;Episode 571: Using Dead Batteries to Test for Dead Batteries&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27805/episode-570-making-a-wifi-connected-audio-spectrum-analyzer-with-esp32" data-icid="e14" data-e14adj="t"&gt;Episode 570: Making a WiFi Connected Audio Spectrum Analyzer with ESP32&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27803/episode-569-multi-spectrum-uv-resin-curing-station-with-wurth-leds" data-icid="e14" data-e14adj="t"&gt;Episode 569: Multi-Spectrum UV Resin Curing Station with W&amp;uuml;rth LEDs&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27787/episode-568-how-to-make-a-custom-soundboard-with-the-stm32f4-using-freecad" data-icid="e14" data-e14adj="t"&gt;Episode 568: How to Make a Custom Soundboard with the STM32F4 using FreeCAD&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27785/episode-567-synced-neopixel-mickey-mouse-ears" data-icid="e14" data-e14adj="t"&gt;Episode 567: Synced NeoPixel Mickey Mouse Ears&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27760/episode-566-how-to-automate-industrial-welding-positioners-with-arduino" data-icid="e14" data-e14adj="t"&gt;Episode 566: How to Automate Industrial Welding Positioners with Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27758/episode-565-measuring-destructive-testing-force-with-a-20-ton-hydraulic-press" data-icid="e14" data-e14adj="t"&gt;Episode 565: Measuring Destructive Testing Force with a 20 Ton Hydraulic Press&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27734/episode-564-build-a-vu-meter-with-led-pixelated-nixie-tubes" data-icid="e14" data-e14adj="t"&gt;Episode 564: Build a VU Meter with LED Pixelated Nixie Tubes&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27732/episode-563-creating-augmented-reality-circuits-with-meta-quest-2-and-unity" data-icid="e14" data-e14adj="t"&gt;Episode 563: Creating Augmented Reality Circuits with Meta Quest 2 and Unity&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27730/episode-562-pi-home-temperature-monitoring-system" data-icid="e14" data-e14adj="t"&gt;Episode 562: Pi Home Temperature Monitoring System&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27728/episode-561-wifi-to-parallel-port-ascii-art-dot-matrix-printer" data-icid="e14" data-e14adj="t"&gt;Episode 561: WiFi to Parallel Port Ascii Art Dot-Matrix Printer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27727/episode-560-raspberry-pi-controlled-lego-train-with-build-hat" data-icid="e14" data-e14adj="t"&gt;Episode 560: Raspberry Pi Controlled Lego Train with Build HAT&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27706/episode-559-create-a-magic-makeup-mirror-with-pose-detection" data-icid="e14" data-e14adj="t"&gt;Episode 559: Create a Magic Makeup Mirror with Pose Detection&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27700/episode-558-3d-object-rendering-using-an-fpga" data-icid="e14" data-e14adj="t"&gt;Episode 558: 3D Object Rendering Using an FPGA&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27694/episode-557-create-your-own-handheld-serial-monitor-for-project-debugging" data-icid="e14" data-e14adj="t"&gt;Episode 557: Create your own Handheld Serial Monitor for Project Debugging&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27666/episode-556-hacking-a-hotel-pos-tablet---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 556: Hacking a Hotel POS Tablet - How Hard Can it Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27664/episode-555-dance-central-pose-estimation-game-with-tensorflow-and-raspberry-pi" data-icid="e14" data-e14adj="t"&gt;Episode 555: Dance Central Pose Estimation Game with Tensorflow and Raspberry Pi&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27647/episode-554-arduino-uno-mini-limited-edition-led-necklace" data-icid="e14" data-e14adj="t"&gt;Episode 554: Arduino Uno Mini Limited Edition LED Necklace&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27645/episode-553-adding-a-parallel-printer-port-to-an-android-phone" data-icid="e14" data-e14adj="t"&gt;Episode 553: Adding a Parallel Printer Port to an Android Phone&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27616/episode-552---magical-potion-bottle-rack" data-icid="e14" data-e14adj="t"&gt;Episode 552: Magical Potion Bottle Rack&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27614/episode-551-can-we-rebuild-a-1930s-accounting-machine" data-icid="e14" data-e14adj="t"&gt;Episode 551: Can We Rebuild a 1930s Accounting Machine?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27608/episode-550-diy-electronic-controlled-motorized-wheelchair" data-icid="e14" data-e14adj="t"&gt;Episode 550: DIY Electronic Controlled Motorized Wheelchair&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27606/episode-549-using-a-teletype-machine-as-a-usb-printer-with-arduino" data-icid="e14" data-e14adj="t"&gt;Episode 549: Using a Teletype Machine as a USB Printer with Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27597/episode-548-electronic-fidget-cube-building-your-ideas" data-icid="e14" data-e14adj="t"&gt;Episode 548: Electronic Fidget Cube, Building Your Ideas!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27577/episode-547-creating-a-mummy-wake-word-detector-with-raspberry-pi-and-edge-impulse" data-icid="e14" data-e14adj="t"&gt;Episode 547: Creating a &amp;ldquo;Mummy&amp;rdquo; Wake Word Detector with Raspberry Pi and Edge Impulse&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27567/episode-546-mapping-the-outputs-of-a-1960s-teletype-machine---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 546: Mapping the Outputs of a 1960s Teletype Machine - How Hard Can it Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27576/episode-545-designing-a-custom-pcb-for-microsoft-jacdac" data-icid="e14" data-e14adj="t"&gt;Episode 545: Designing a Custom PCB for Microsoft Jacdac&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27548/episode-544-reviving-the-1984-ibm-5155---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 544: Reviving the 1984 IBM 5155 - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27522/episode-543-lego-spike-prime-weather-station-with-raspberry-pi" data-icid="e14" data-e14adj="t"&gt;Episode 543: Lego Spike Prime Weather Station with Raspberry Pi&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27520/episode-542-a-noise-free-diy-switching-power-supply---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 542: A Noise-Free DIY Switching Power Supply - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27495/episode-541-vintage-laptop-battery-replaced-with-usb-power---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 541: Vintage Laptop Battery Replaced with USB Power - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27493/episode-540-object-detection-for-smart-recycling" data-icid="e14" data-e14adj="t"&gt;Episode 540: Object Detection for Smart Recycling&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27484/episode-539-training-a-machine-to-recognize-objects---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 539: Training a Machine to Recognize Objects - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27483/episode-538-how-to-build-a-quadruped-robot---no-math" data-icid="e14" data-e14adj="t"&gt;Episode 538: How to Build a Quadruped Robot - NO MATH!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27460/episode-537-build-a-phonograph-preamplifier---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 537: Build a Phonograph Preamplifier - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27458/episode-536-interactive-light-up-window-with-pose-detection-using-a-raspberry-pi-and-micro-bit" data-icid="e14" data-e14adj="t"&gt;Episode 536: Interactive Light-Up Window with Pose Detection using a Raspberry Pi and micro:bit&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27441/episode-535-repair-a-sega-game-gear---how-hard-can-it-be" data-icid="e14" data-e14adj="t"&gt;Episode 535: Repair a Sega Game Gear - How Hard Can It Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27435/episode-534-open-source-inventory-warehousing-system" data-icid="e14" data-e14adj="t"&gt;Episode 534: Open Source Inventory Warehousing System&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27432/episode-533-jumbo-diy-led" data-icid="e14" data-e14adj="t"&gt;Episode 533: Jumbo DIY LED&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27412/episode-532-world-s-first-single-chip-apple-ii-boots" data-icid="e14" data-e14adj="t"&gt;Episode 532: World&amp;rsquo;s First Single-Chip Apple II Boots!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27407/episode-531-game-guy---the-unportable-game-boy" data-icid="e14" data-e14adj="t"&gt;Episode 531: Game Guy - The Unportable Game Boy&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27399/episode-530-mqtt-controlled-led-christmas-baubles-with-raspberry-pi-pico" data-icid="e14" data-e14adj="t"&gt;Episode 530: MQTT controlled LED Christmas Baubles with Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27392/episode-529-updi-program-for-new-attiny" data-icid="e14" data-e14adj="t"&gt;Episode 529: UPDI Program for new ATTiny&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27383/episode-528-let-s-build-an-electronic-fidget-cube" data-icid="e14" data-e14adj="t"&gt;Episode 528: Let&amp;#39;s Build an Electronic Fidget Cube!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27375/episode-527---interactive-light-up-window-using-a-raspberry-pi-and-micro-bit" data-icid="e14" data-e14adj="t"&gt;Episode 527: Interactive Light Up Window using a Raspberry Pi and micro:bit&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27366/episode-526-cnc-router-remote-control" data-icid="e14" data-e14adj="t"&gt;Episode 526: CNC Router Remote Control&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/w/documents/27338/episode-525-demonstrating-magnetic-fields-with-helmholtz-coils-in-a-snow-globe" data-icid="e14" data-e14adj="t"&gt;Episode 525: DIY Helmholtz Snow Globe&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/27287/episode-524-arduino-iot-cloud-weather-station" data-e14adj="t"&gt;Episode 524: Arduino IoT Cloud Weather Station&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/27276/episode-523-make-your-own-auto-sensing-solder-fume-extractor" data-e14adj="t"&gt;Episode 523: Make your Own Auto-Sensing Solder Fume Extractor&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/23245/episode-522-siren-head-halloween-wearable-costume" data-e14adj="t"&gt;Episode 522: Siren Head Halloween Wearable Costume&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/23240/episode-521-diy-static-grass-applicator" data-e14adj="t"&gt;Episode 521: DIY Static Grass Applicator&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/23232/episode-520-adding-android-auto-as-non-permanent-add-on-with-raspberry-pi" data-e14adj="t"&gt;Episode 520: Adding Android Auto as Non-Permanent Add-On with Raspberry Pi&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/23225/episode-519-make-your-own-ye-olde-book-nook-diorama-with-arduino" data-e14adj="t"&gt;Episode 519: Make Your Own Ye Olde Book Nook Diorama with Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/23212/episode-518-guitar-vacuum-tube-distortion-pedal" data-e14adj="t"&gt;Episode 518: Guitar Vacuum Tube Distortion Pedal&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/secret-element14-presents/w/documents/4141/episode-517-emulate-an-eprom---how-hard-could-it-be" data-e14adj="t"&gt;Episode 517: Emulate an EPROM - How Hard Could it Be?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/23199/episode-516-modding-a-wireless-doorbell-with-raspberry-pi-and-esp8266" data-e14adj="t"&gt;Episode 516: Modding a Wireless Doorbell with Raspberry Pi and ESP8266&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/23190/episode-515-upcycling-a-lenovo-pc-into-a-raspberry-pi-wifi-access-point" data-e14adj="t"&gt;Episode 515: Upcycling a Lenovo PC into a Raspberry Pi WiFi Access Point&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/23183/episode-514-making-a-3d-graphics-card-for-the-atari-800-xl" data-e14adj="t"&gt;Episode 514: Making a 3D Graphics Card for the Atari 800 XL&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5429/episode-513-bike-speedometer-with-arduino-and-gps" data-e14adj="t"&gt;Episode 513: Bike Speedometer with Arduino and GPS&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5422/episode-512-you-cannot-buy-this-vacuum-tube-tester-you-build-it" data-e14adj="t"&gt;Episode 512: You Cannot Buy This Vacuum Tube Tester. You Build It!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5418/episode-511-face-tracking-cheeseball-launcher" data-e14adj="t"&gt;Episode 511:&amp;nbsp; Raspberry Pi Powered Cheeseball Launcher&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5407/episode-510-laser-cutter-command-station" data-e14adj="t"&gt;Episode 510: Laser Cutter Command Station&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5402/episode-509-diy-discrete-logic-led-countdown-timer" data-e14adj="t"&gt;Episode 509: DIY Discrete Logic LED Countdown Timer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5397/episode-508-raspberry-pi-fpv-rover-easy-robot-arm-upgrade" data-e14adj="t"&gt;Episode 508: Raspberry Pi FPV Rover Easy Robot Arm Upgrade&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5391/episode-507-massive-raspberry-pi" data-e14adj="t"&gt;Episode 507: Massive Raspberry Pi&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5377/episode-506-diy-star-trek-tricorder-from-build-inside-the-box" data-e14adj="t"&gt;Episode 506: DIY Star Trek Tricorder from Build Inside the Box&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5374/episode-505-super-8-camera-digitizer" data-e14adj="t"&gt;Episode 505: Super 8 Camera Digitizer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5369/episode-504-diy-sump-pump-alarm" data-e14adj="t"&gt;Episode 504: DIY Sump Pump Alarm&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5360/episode-503-meet-cheesoid---the-robot-that-smells" data-e14adj="t"&gt;Episode 503: Meet Cheesoid - The Robot That Smells!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5352/episode-502-make-your-bike-a-pokebike" data-e14adj="t"&gt;Episode 502: Make Your Bike a Pokebike!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5033/episode-501-raspberry-pi-nfc-button-free-music-player" data-e14adj="t"&gt;Episode 501: Raspberry Pi NFC Button-Free Music Player&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/20721/episode-500-build-inside-the-box-challenge" data-e14adj="t"&gt;Episode 500:&amp;nbsp; Build Inside The Box Challenge!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5332/episode-499-diy-four-channel-arduino-servo-tester" data-e14adj="t"&gt;Episode 499: DIY Four Channel Arduino Servo Tester&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8706/episode-498-raspberry-pi-smart-water-dispenser" data-e14adj="t"&gt;Episode 498: Raspberry Pi Smart Water Dispenser&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5318/episode-497-raspberry-pi-rfid-pocket-money-keeper" data-e14adj="t"&gt;Episode 497: RFID Pocket Money Keeper&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8705/episode-496-compute-module-4-powered-3d-printer-board" data-e14adj="t"&gt;Episode 496: Compute Module 4 Powered 3D Printer Board&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5308/episode-495-magic-gif-ball-powered-by-raspberry-pi" data-e14adj="t"&gt;Episode 495: Magic GIF Ball Powered By Raspberry Pi&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5299/episode-494-keyboard-shortcuts-keypad-with-raspberry-pi-pico" data-e14adj="t"&gt;Episode 494: Keyboard Shortcuts Keypad with Raspberry Pi Pico&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5290/episode-493-neopixel-7-segment-display-clock-update" data-e14adj="t"&gt;Episode 493: NeoPixel 7 Segment Display Clock Update&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5275/episode-492-arduino-vs-555-timer---tiny-slot-car-racers" data-e14adj="t"&gt;Episode 492: Arduino vs 555 Timer - Tiny Slot Car Racers&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5273/episode-491-arduino-single-wheel-balancing-robot" data-e14adj="t"&gt;Episode 491: Arduino Single-Wheel Balancing Robot&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5256/episode-490-diy-raspberry-pi-pico-fizz-buzz-multiplication-game" data-e14adj="t"&gt;Episode 490: DIY Raspberry Pi Pico Fizz Buzz Multiplication Game&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5254/episode-489-build-an-fpv-rover-with-raspberry-pi" data-e14adj="t"&gt;Episode 489: Build An FPV Rover with Raspberry Pi&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5233/episode-488-diy-raspberry-pi-cyberdeck" data-e14adj="t"&gt;Episode 488: DIY Raspberry Pi Cyberdeck&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5232/episode-487-diy-magsafe-battery-charger" data-e14adj="t"&gt;Episode 487: DIY MagSafe Battery Charger&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5229/episode-486-make-the-ultimate-phone-charging-camping-flashlight" data-e14adj="t"&gt;Episode 486: Make The Ultimate Phone Charging Camping Flashlight&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5213/episode-485-how-to-make-a-custom-pcb-from-design-to-assembly" data-e14adj="t"&gt;Episode 485: How To Make A Custom PCB From Design To Assembly&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5211/episode-484-raspberry-pi-bird-watching-camera" data-e14adj="t"&gt;Episode 484: Raspberry Pi Bird Watching Camera&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5201/episode-483-diy-miniature-multimeter" data-e14adj="t"&gt;Episode 483: DIY Miniature Multimeter&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5196/episode-482-gigantic-3d-printed-7-segment-display-clock" data-e14adj="t"&gt;Episode 482: Gigantic 3D Printed 7 Segment Display Clock&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5188/episode-481-diy-lost-swan-station-split-flap-display-timer" data-e14adj="t"&gt;Episode 481: DIY LOST Swan Station Split Flap Display Timer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5181/episode-480-diy-toothbrush-timer" data-e14adj="t"&gt;Episode 480: DIY Toothbrush Timer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5179/episode-479-raspberry-pi-2xl-robot-assistant-part-2" data-e14adj="t"&gt;Episode 479: Raspberry Pi 2XL Robot Assistant Part 2&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5171/episode-478-upgrading-a-christmas-train-with-python-and-raspberry-pi" data-e14adj="t"&gt;Episode 478: Upgrading A Christmas Train&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5169/episode-477-metal-plate-your-3d-prints-with-a-diy-galvanizing-machine" data-e14adj="t"&gt;Episode 477: Metal Plate Your 3D Prints with a DIY Galvanizing Machine&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5160/episode-476-iot-arduino-ntp-world-clock-with-spi-display" data-e14adj="t"&gt;Episode 476: IoT Arduino NTP World Clock with SPI Display&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5147/episode-475-diy-wall-mounted-arduino-barometer" data-e14adj="t"&gt;Episode 475: DIY Wall Mounted Arduino Barometer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5144/episode-474-continuum-robot-tentacle-prototype" data-e14adj="t"&gt;Episode 474: Continuum Robot Tentacle Prototype&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8680/episode-473-mendel-3d-printer-upgrade-and-maintenance" data-e14adj="t"&gt;Episode 473: Mendel 3D Printer Upgrade and Maintenance&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5120/episode-472-diy-hydration-reminder-system" data-e14adj="t"&gt;Episode 472: DIY Hydration Reminder System&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5113/episode-471-diy-dance-dance-revolution-mat" data-e14adj="t"&gt;Episode 471: DIY Dance Dance Revolution Mat&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5102/episode-470-voice-activated-inspector-gadget-hat" data-e14adj="t"&gt;Episode 470: Voice Activated Inspector Gadget Hat&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5063/episode-469-nintendo-super-scope-modded-for-modern-televisions" data-e14adj="t"&gt;Episode 469: Nintendo Super Scope Modded For Modern Televisions&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5092/episode-468-socially-distanced-halloween-candy-dispenser" data-e14adj="t"&gt;Episode 468: Socially Distanced Halloween Candy Dispenser&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5077/episode-467-repairing-the-world-s-first-laptop-epson-hx-20" data-e14adj="t"&gt;Episode 467: Repairing the World&amp;#39;s First Laptop! (Epson HX-20)&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5061/episode-466-arduino-powered-hexadecimal-color-code-clock" data-e14adj="t"&gt;Episode 466: Arduino-powered Hexadecimal Color Code Clock&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5034/episode-465-lego-raspberry-pi-hq-camera" data-e14adj="t"&gt;Episode 465: Lego Raspberry Pi HQ Camera&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5031/episode-464-particle-voice-recognition-for-home-appliances" data-e14adj="t"&gt;Episode 464: Particle Voice Recognition for Home Appliances&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5002/episode-463-raspberry-pi-speech-to-text-led-face-mask" data-e14adj="t"&gt;Episode 463: Raspberry Pi Speech to Text LED Face Mask&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/5012/episode-462-joycon-controlled-electronic-rock-em-sock-em-robots" data-e14adj="t"&gt;Episode 462: Joycon Controlled Electronic Rock&amp;#39;Em Sock&amp;#39;Em Robots&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4980/episode-461-portal-2-security-camera-with-raspberry-pi-2" data-e14adj="t"&gt;Episode 461: Portal 2 Security Camera with Raspberry Pi 2&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4985/episode-460-trinamic-open-source-ventilator-tosv-teardown" data-e14adj="t"&gt;Episode 460: Trinamic Open Source Ventilator (TOSV) Teardown&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4961/episode-459-raspberry-pi-4-vr-conference-call-assistant" data-e14adj="t"&gt;Episode 459: Raspberry Pi 4 VR Conference Call Assistant&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4971/episode-458-diy-arduino-automated-metal-bending-machine" data-e14adj="t"&gt;Episode 458: DIY Arduino Automated Metal Bending Machine&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4966/episode-457-arduino-mkr-zero-animatronic-rosie-the-robot-from-the-jetsons" data-e14adj="t"&gt;Episode 457: Raspberry Pi 4 Animatronic Rosie the Robot from the Jetsons&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8665/episode-456-unhackable-arduino-switch-matrix" data-e14adj="t"&gt;Episode 456: Unhackable Arduino Switch Matrix&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8664/episode-455-arduino-unit-conversion-calculator" data-e14adj="t"&gt;Episode 455: Arduino Unit Conversion Calculator&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4942/episode-454-soldering-up-the-rc2014-homebrew-z80-computer-kit" data-e14adj="t"&gt;Episode 454: Soldering Up the rc2014 Homebrew Z80 Computer Kit&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4937/episode-453-build-an-anti-troll-bot-using-tensorflow-and-arduino" data-e14adj="t"&gt;Episode 453: Build an Anti-Troll Bot Using TensorFlow and Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4914/episode-452-raspberry-pi-4-experimental-resin-3d-printer-updated" data-e14adj="t"&gt;Episode 452: Raspberry Pi 4 Experimental Resin 3D Printer Updated!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4913/episode-451-build-an-off-grid-wikipedia-with-raspberry-pi" data-e14adj="t"&gt;Episode 451: Build an Off Grid Wikipedia with Raspberry Pi&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4906/episode-450-sega-gamegear-rebuild-with-leds" data-e14adj="t"&gt;Episode 450: Sega GameGear Rebuild with LEDs&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8657/episode-449-diy-tamagotchi---build-a-virtual-pet" data-e14adj="t"&gt;Episode 449: DIY Tamagotchi - Build a Virtual Pet&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4895/episode-448-diy-raspberry-pi-4-boxing-game" data-e14adj="t"&gt;Episode 448: DIY Raspberry Pi 4 Boxing Game&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4873/episode-447-diy-stop-motion-rig-with-lattepanda" data-e14adj="t"&gt;Episode 447: DIY Stop Motion Rig with LattePanda&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4871/episode-446-raspberry-pi-2xl-robot-assistant-part-1" data-e14adj="t"&gt;Episode 446: Raspberry Pi 2XL Robot Assistant Part 1&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8652/episode-445-raspberry-pi-4-animatronic-bd-1-companion-robot" data-e14adj="t"&gt;Episode 445: Raspberry Pi 4 Animatronic BD-1 Companion Robot&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4848/episode-444-raspberry-pi-4-dvr" data-e14adj="t"&gt;Episode 444: Raspberry Pi 4 DVR&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4836/episode-443-arduino-uno-rc-remote---can-it-be-done" data-e14adj="t"&gt;Episode 443: Arduino Uno RC Remote - Can It Be Done?&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4834/episode-442-make-your-own-giant-servo" data-e14adj="t"&gt;Episode 442: Make Your Own Giant Servo&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4818/episode-441-raspberry-pi-4-international-space-station-tracker" data-e14adj="t"&gt;Episode 441: Raspberry Pi 4 International Space Station Tracker&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4810/episode-440-diy-arduino-helicopter-collective-joystick-control" data-e14adj="t"&gt;Episode 440: DIY Arduino Helicopter Collective Joystick Control&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4796/episode-439---mechanical-arcade-game-with-barebones-arduino" data-e14adj="t"&gt;Episode 439 - Mechanical Arcade Game with Barebones Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4787/episode-438-smartphone-controlled-diy-rover-using-websockets" data-e14adj="t"&gt;Episode 438: Smartphone Controlled DIY Rover Using Websockets&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4771/episode-437-diy-motorized-zoom-for-your-dslr" data-e14adj="t"&gt;Episode 437: DIY Motorized Zoom for Your DSLR&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4767/episode-436-automated-raspberry-pi-planet-tracking-goto-telescope" data-e14adj="t"&gt;Episode 436: Automated Raspberry Pi Planet Tracking GOTO Telescope&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4756/episode-435-raspberry-pi-4-music-player-w-analog-controls" data-e14adj="t"&gt;Episode 435: Raspberry Pi 4 Music Player w/Analog Controls&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8637/episode-434-infineon-smart-city-model" data-e14adj="t"&gt;Episode 434: Infineon Smart City Model&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4742/episode-433---arduino-based-love-tester" data-e14adj="t"&gt;Episode 433: Arduino Based Love Tester&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4728/episode-432-super-fx-sword-using-the-bbc-micro-bit" data-e14adj="t"&gt;Episode 432: Super FX Sword using the BBC micro:bit&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4726/episode-431-room-sized-studio-light-speakers-combo" data-e14adj="t"&gt;Episode 431: Room-Sized Studio Light Speakers Combo&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4692/episode-430-flaming-xylophone-rubens-tube" data-e14adj="t"&gt;Episode 430: Flaming Xylophone Rubens&amp;#39; Tube&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4670/episode-429-youtuber-on-air-light-with-particle-mesh-network" data-e14adj="t"&gt;Episode 429: YouTuber &amp;quot;On Air&amp;quot; Light with Particle Mesh Network&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4668/episode-428-raspberry-pi-4-crt-based-vr-headset" data-e14adj="t"&gt;Episode 428: Raspberry Pi 4 CRT-based VR Headset&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4657/episode-427-diy-retro-gaming-portable-on-a-budget" data-e14adj="t"&gt; Episode 427: DIY Retro Gaming Portable on a Budget!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4142/episode-426-retro-tv-ads-holiday-ornament" data-e14adj="t"&gt; Episode 426: Retro TV Ads Holiday Ornament&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4651/episode-425-make-your-own-raspberry-pi-4-photobooth" data-e14adj="t"&gt; Episode 425: Make Your Own Raspberry Pi 4 Photobooth!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4646/episode-424-diy-escape-room-puzzle" data-e14adj="t"&gt; Episode 424: DIY Escape Room Puzzle&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4644/episode-423-programmable-arduino-synthesizer-watch" data-e14adj="t"&gt; Episode 423: Programmable Arduino Synthesizer Watch&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4628/episode-422-raspberry-pi-e-ink-task-organizer" data-e14adj="t"&gt; Episode 422: Raspberry Pi E-Ink Task Organizer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4627/episode-421-raspberry-pi-4-commodore-sx-64-inspired-portable-computer" data-e14adj="t"&gt; Episode 421: Raspberry Pi 4 Commodore SX-64 Inspired Portable Computer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4616/episode-420-diy-shapeoko-cnc-pendant" data-e14adj="t"&gt; Episode 420: DIY Shapeoko CNC Pendant&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4607/episode-419-altair-8800-laptop" data-e14adj="t"&gt; Episode 419: Altair 8800 Laptop &lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4604/episode-418-animatronic-terminator-skull-with-beaglebone-ai-and-giveaway" data-e14adj="t"&gt;&amp;nbsp;Episode 418: Animatronic Terminator Skull with BeagleBone&lt;span class="emoticon" data-url="https://community.element14.com/cfs-file/__key/system/emoji/00ae.svg" title="Registered"&gt;&amp;#x00ae;&lt;/span&gt;&amp;nbsp;AI&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8619/episode-417-pipboy-2000-mk-ii" data-e14adj="t"&gt;Episode 417: #Pipboy 2000 Mk II&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4596/episode-416---diy-3dprinted-label-spooler" data-e14adj="t"&gt;Episode 416: DIY #3DPrinted Label Spooler&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4588/episode-415-iron-man-helmet-heads-up-display" data-e14adj="t"&gt;Episode 415: Iron Man Helmet Heads Up Display&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4580/episode-414-raspberry-pi-4-experimental-resin-3d-printer" data-e14adj="t"&gt;Episode 414: Raspberry Pi 4 Experimental Resin 3D Printer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8610/episode-413-animatronic-claptrap-case-mod-part-2" data-e14adj="t"&gt;Episode 413: Animatronic Claptrap Case Mod Part 2&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4558/episode-412-get-to-know-your-adc-with-a-diy-temperature-probe" data-e14adj="t"&gt;Episode 412: Get to Know Your ADC with a DIY Temperature Probe&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4531/episode-411-animatronic-claptrap-computer-case---part-1" data-e14adj="t"&gt;Episode 411: Animatronic Claptrap Computer Case - Part 1&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4537/episode-410-macpro-g5-cheese-grater-with-raspberry-pi-4" data-e14adj="t"&gt;Episode 410: MacPro G5 Cheese Grater with Raspberry Pi 4&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4522/episode-409-commodore-sx-64-restoration" data-e14adj="t"&gt;Episode 409: Commodore SX-64 Restoration&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4516/episode-408-hand-soldered-led-oscilloscope" data-e14adj="t"&gt;Episode 408: Hand Soldered LED Oscilloscope&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4514/episode-407-the-ultimate-raspberry-pi-4-laptop" data-e14adj="t"&gt;Episode 407: The Ultimate Raspberry Pi 4 Laptop&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4507/episode-406-automated-robot-artist" data-e14adj="t"&gt;Episode 406: Automated Robot Artist&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4493/episode-405-rc-ornithopter-concept" data-e14adj="t"&gt;Episode 405: RC Ornithopter Concept&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4488/episode-404-arduino-powered-close-encounters-midi-light-board" data-e14adj="t"&gt;Episode 404: Arduino Powered Close Encounters Midi Light Board&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4459/episode-403-upcycled-iot-coffee-pot-ramen-maker" data-e14adj="t"&gt;Episode 403: Upcycled IoT Coffee Pot Ramen Maker&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4422/episode-402-piphone-the-giant-raspberry-pi-flip-phone" data-e14adj="t"&gt;Episode 402: PiPhone++ The Giant Raspberry Pi Flip Phone&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4128/episode-401-matrix-voice-controlled-robot" data-e14adj="t"&gt;Episode 401: Matrix Voice Controlled Robot&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4127/episode-400-the-ultimate-raspberry-pi-stress-test" data-e14adj="t"&gt;Episode 400: The Ultimate Raspberry Pi Stress Test&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4129/episode-399-candle-powered-robot" data-e14adj="t"&gt;Episode 399: Candle-Powered Robotl&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4044/episode-398-let-me-out-hooman-bluetooth-dog-doorbell" data-e14adj="t"&gt;Episode 398: Let Me Out Hooman! Bluetooth Dog Doorbell&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4126/episode-397-steam-powered-retropie-console" data-e14adj="t"&gt;Episode 397: Steam Powered Retropie Console&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4043/episode-396-arduino-retro-led-matrix-handheld" data-e14adj="t"&gt;Episode 396: Arduino Retro LED Matrix Handheld&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4042/episode-395-raspberry-pi-stop-motion-machine" data-e14adj="t"&gt;Episode 395: Raspberry Pi Stop Motion Machine&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8531/episode-394-animatronic-glados-head-with-raspberry-pi" data-e14adj="t"&gt;Episode 394: Animatronic GLaDOS Head with Raspberry Pi&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4125/episode-393-gameboy-walkman" data-e14adj="t"&gt;Episode 393: GameBoy Walkman&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4191/episode-392-multi-line-telephone-intercom" data-e14adj="t"&gt;Episode 392: Multi-Line Telephone Intercom&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4124/episode-391-first-person-view-rc-car-with-ps1-steering-wheel" data-e14adj="t"&gt;Episode 391: First Person View RC Car with PS2 Steering Wheel&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4122/episode-390-retro-texting-smart-watch-of-the-future" data-e14adj="t"&gt;Episode 390: Retro Texting Smart Watch of the Future!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4120/episode-389-playstation-classic-portable-prototype" data-e14adj="t"&gt;Episode 389: PlayStation Classic Portable Prototype&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8519/episode-388-fpga-midi-music-synthesizer" data-e14adj="t"&gt;Episode 388: FPGA MIDI Music Synthesizer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4057/episode-387-rotocell---the-rotary-cell-phone-of-the-future" data-e14adj="t"&gt;Episode 387: Rotocell - The Rotary Cell Phone of the Future!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4038/episode-386-xybernaut-wearable-pc" data-e14adj="t"&gt;Episode 386: Xybernaut Wearable PC&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4117/episode-385-20-pcb-design-pitfalls" data-e14adj="t"&gt;Episode 385: 20 PCB Design Pitfalls&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4035/episode-384-retro-gaming-handheld-without-a-pcb" data-e14adj="t"&gt;Episode 384: Retro Gaming Handheld Without a PCB&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4058/episode-383-gameboy-wireless-link-cable-dmg1" data-e14adj="t"&gt;Episode 383: Gameboy Wireless Link Cable (DMG1)&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8501/episode-382-modding-a-super-8-camera-into-a-digital" data-e14adj="t"&gt;Episode 382: Modding a Super 8 Camera into a Digital&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4067/episode-381-reverse-music-box" data-e14adj="t"&gt;Episode 381: Reverse Music Box&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4039/episode-380-nes-zapper-on-retropie" data-e14adj="t"&gt;Episode 380: NES Zapper on RetroPie&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4036/episode-379-macroscope-soldering-tool" data-e14adj="t"&gt;Episode 379: Macroscope Soldering Tool&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8500/episode-378-invader-zim-animatronic-gir" data-e14adj="t"&gt;Episode 378: Invader ZIM Animatronic GIR&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4034/episode-377-altair-8800-replica" data-e14adj="t"&gt;Episode 377: Altair 8800 Replica&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4028/episode-376-4d-gaming-with-the-matrix-creator" data-e14adj="t"&gt;Episode 376: 4D Gaming with the Matrix Creator&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4025/episode-375-hacked-fetal-detector-music-synthesizer" data-e14adj="t"&gt;Episode 375: Hacked Fetal Detector Music Synthesizer&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/4008/episode-374-raspberry-pi-donkey-kong-holiday-ornament" data-e14adj="t"&gt;Episode 374: Raspberry Pi Donkey Kong Holiday Ornament&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3992/episode-373-raspberry-pi-fallout-terminal-pc" data-e14adj="t"&gt;Episode 373: Raspberry Pi Fallout Terminal PC&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8497/episode-372-raspberry-pi-auto-etch-a-sketch" data-e14adj="t"&gt;Episode 372: Raspberry Pi Auto Etch A Sketch&lt;span class="emoticon" data-url="https://community.element14.com/cfs-file/__key/system/emoji/2122.svg" title="Tm"&gt;&amp;#x2122;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3990/episode-371-fpga-game-genie-for-atari-2600" data-e14adj="t"&gt;Episode 371: FPGA &amp;quot;Game Genie&amp;quot; for Atari 2600&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3989/episode-370-raspberry-pi-noaa-satellite-receiver" data-e14adj="t"&gt;Episode 370: Raspberry Pi NOAA Satellite Receiver&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3979/episode-369-recreating-the-atari-portfolio" data-e14adj="t"&gt;Episode 369: Recreating the Atari Portfolio&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3977/episode-368-arduino-automatic-wire-cutter-and-stripper" data-e14adj="t"&gt;Episode 368: Arduino Automatic Wire Cutter and Stripper&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3968/episode-367-most-useless-iot-device-ever---part-2" data-e14adj="t"&gt;Episode 367: Most Useless IoT Device Ever - Part 2&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3960/episode-366-infinity-icosahedron" data-e14adj="t"&gt;Episode 366: Infinity Icosahedron&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3949/episode-365-twilight-zone-fortune-telling-machine" data-e14adj="t"&gt;Episode 365: Twilight Zone Fortune Telling Machine&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3934/episode-364-raspberry-pi-virtual-reality-arcade" data-e14adj="t"&gt;Episode 364: Raspberry Pi Virtual Reality Arcade #VR&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3920/episode-363-add-a-motor-to-your-bike-with-arduino" data-e14adj="t"&gt;Episode 363 - Add a Motor to your Bike with Arduino&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3912/episode-362-most-worthless-iot-device-ever---part-1" data-e14adj="t"&gt;Episode 362: Most Worthless IoT Device Ever Pt. 1&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3903/episode-361-r-o-b-rebuild-and-upgrade" data-e14adj="t"&gt;Episode 361: R.O.B Rebuild and Upgrade&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3887/episode-360-make-your-own-raspberry-pi-cell-phone" data-e14adj="t"&gt;Episode 360: Make Your Own Raspberry Pi Cell Phone&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3875/episode-359-make-your-own-cnc-pyrography-wood-burner" data-e14adj="t"&gt;Episode 359: Make Your Own CNC Pyrography Wood Burner&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3863/episode-358-the-shrimp-of-terror" data-e14adj="t"&gt;Episode 358: The Shrimp of Terror!&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3848/episode-357-raspberry-pi-asteroid-tracker" data-e14adj="t"&gt;Episode 357: Raspberry Pi Asteroid Tracker&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/8491/episode-356-bank-to-the-future-with-arduino-ti" data-e14adj="t"&gt;Episode 356: Bank to the Future with Arduino &amp;amp; TI&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3826/episode-355-raspberry-pi-pirate-radio" data-e14adj="t"&gt;Episode 355: Raspberry Pi Pirate Radio&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3816/episode-354-tiny-vacuum-forming-machine" data-e14adj="t"&gt;Episode 354: Tiny Vacuum Forming Machine&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3809/episode-353-program-your-own-fpga-video-game" data-e14adj="t"&gt;Episode 353: Program Your Own FPGA Video Game&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3784/episode-352-pripyat---diy-geiger-counter" data-e14adj="t"&gt;Episode 352: Pripyat - DIY Geiger Counter&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/project-videos/w/documents/3747/episode-349-raspberry-pi-selfie-rocket" data-e14adj="t"&gt;Episode 349: Raspberry Pi Selfie Rocket&lt;/a&gt;&lt;/p&gt;
&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0;padding-top:12px;"&gt;&lt;a class="jive-link-wiki-small" href="/challenges-projects/element14-presents/benheck/ben-heck-exclusive/w/documents/9678/the-ben-heck-show-episode-archive" data-e14adj="t"&gt;See All Previous Episodes&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: episode releases, friday_release_archive, element14 presents, project videos, episodes, friday releases, episode release archive, episode archive, friday release archive, project_videos&lt;/div&gt;
</description></item><item><title>Building a Privacy-First Workshop Security Camera with PocketBeagle 2</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72081/building-a-privacy-first-workshop-security-camera-with-pocketbeagle-2/revision/5</link><pubDate>Wed, 15 Jul 2026 16:54:40 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:51a0a7fa-97a4-4777-902b-0e7b0e6bf00b</guid><dc:creator>cstanton</dc:creator><description>Revision 5 posted to Documents by cstanton on 7/15/2026 4:54:40 PM&lt;br /&gt;
&lt;p&gt;Clem builds a fully self-contained, privacy-first security camera around the PocketBeagle 2, combining a custom PCB, USB hub design, battery backup, and edge AI person detection to create a system that only records when it matters. Along the way, he overcomes real-world challenges, from unstable networking caused by voltage drop to last-minute hardware changes, resulting in a robust, workshop-ready solution that keeps every frame entirely local&lt;/p&gt;
&lt;h2 id="mcetoc_1jtj1jst50"&gt;Watch the Build&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://players.brightcove.net/1362235890001/default_default/index.html?videoId=6401206576112"&gt;players.brightcove.net/.../index.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When it comes to security cameras, most off-the-shelf solutions expect users to place blind trust in cloud services and proprietary systems. For Clem, that simply wasn&amp;rsquo;t acceptable. As he bluntly puts it,&lt;/p&gt;
&lt;blockquote&gt;&amp;ldquo;you cannot trust anybody&amp;#39;s claim that they will not abuse your data&amp;hellip; you have to control it.&amp;rdquo;&lt;/blockquote&gt;
&lt;p&gt;Instead of relying on a commercial solution, he set out to build a completely local, self-controlled camera system using a PocketBeagle 2, custom hardware, and fully open software.&lt;/p&gt;
&lt;p&gt;The result is a tightly integrated build that brings together embedded Linux, machine vision, power resilience, and mechanical ingenuity into a compact device designed specifically for workshop surveillance, without ever handing data to a third party.&lt;/p&gt;
&lt;h3 id="mcetoc_1jtjao83g2"&gt;&lt;img alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/0755.frame_5F00_000036.png" /&gt;&lt;/h3&gt;
&lt;h2 id="mcetoc_1jtj1jst51"&gt;Designing the Hardware&lt;/h2&gt;
&lt;p&gt;At the centre of the build is the PocketBeagle 2, chosen not for simplicity but for control and flexibility. Although not as beginner-friendly as some alternatives, Clem deliberately leans into its strengths, noting its fast boot time and suitability for edge applications.&lt;/p&gt;
&lt;p&gt;To give the device a familiar form factor, parts from a dummy security camera were repurposed,including the glass front and swivel mount. However, the final enclosure is far more robust. A watertight aluminium housing from Hammond Manufacturing provides environmental protection, while internal slots allow direct PCB mounting.&lt;/p&gt;
&lt;p&gt;Mechanical design plays a key role throughout. Custom ASA 3D printed parts ensure precise positioning of the USB camera module, with the material selected for its durability and thermal stability. Clem highlights the importance of temperature resilience, explaining that internal heat from the embedded computer required a material that wouldn&amp;rsquo;t deform over time.&lt;/p&gt;
&lt;p&gt;The project demonstrates careful planning at the mechanical-electrical boundary. By using manufacturer CAD data, Clem designed the PCB before receiving the enclosure, achieving a precise fit with just 0.2 mm of tolerance,evidence of how reliable modern design workflows can be when properly executed.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000080.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jtj1jst52"&gt;Custom PCB and USB Integration&lt;/h2&gt;
&lt;p&gt;The custom PCB serves as the backbone of the system, integrating power distribution, USB connectivity, and expansion. A Microchip USB2514 hub controller enables multiple USB devices to operate simultaneously, crucial for combining the camera, storage, and networking interfaces.&lt;/p&gt;
&lt;p&gt;This aspect proved to be one of the most challenging. Clem admits,&lt;/p&gt;
&lt;blockquote&gt;&amp;ldquo;I&amp;rsquo;ve been a bit of a burnt child with USB hub designs&amp;hellip; it was down to the crystal and its load capacitors.&amp;rdquo;&lt;/blockquote&gt;
&lt;p&gt;Initially intending to simplify the design with an oscillator, he encountered a compatibility issue late in the process. The device he selected produced a voltage level unsuitable for the hub controller, risking damage to the chip.&lt;/p&gt;
&lt;p&gt;A last-minute redesign reverted the system to a traditional crystal oscillator network. Even then, compromises had to be made:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;
MODEL_PROTOTXT = &amp;quot;dnn_model/deploy.prototxt&amp;quot;
MODEL_WEIGHTS  = &amp;quot;dnn_model/mobilenet_iter_73000.caffemodel&amp;quot;
PERSON_CLASS_ID      = 15
NO_PERSON_TIMEOUT    = 3.0
MAX_RECORDING_AGE    = 72 * 3600
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Although this configuration snippet relates to the software stack, it reflects the same engineering philosophy, working within constraints while maintaining system-level reliability. On the hardware side, Clem worked with slightly mismatched capacitor values, relying on trace capacitance to balance the circuit.&lt;/p&gt;
&lt;blockquote&gt;&amp;ldquo;The only way to find out is to just try it.&amp;rdquo;&lt;/blockquote&gt;
&lt;h3 id="mcetoc_1jtjarlmu3"&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000115.png" /&gt;&lt;/h3&gt;
&lt;h2 id="mcetoc_1jtj1jst53"&gt;Power, Networking, and Real-World Pitfalls&lt;/h2&gt;
&lt;p&gt;Networking and power delivery introduced unexpected complexity. Instead of integrating networking directly into the camera housing, Clem routes connectivity through an external junction box. This isolates access points and ensures that tampering with the camera itself doesn&amp;rsquo;t expose the network interface.&lt;/p&gt;
&lt;p&gt;The system uses a Traco Power 5 V supply, paired with carefully tuned voltage output. What initially appeared to be a networking issue turned out to be something far subtler:&lt;/p&gt;
&lt;blockquote&gt;&amp;ldquo;Under full load my device will draw enough power to make the voltage drop&amp;hellip; just enough to make the PocketBeagle stall.&amp;rdquo;&lt;/blockquote&gt;
&lt;p&gt;A minor voltage adjustment, from borderline levels to a stable ~5.0 V, resolved persistent connection failures. This kind of issue is often overlooked but demonstrates how sensitive embedded systems can be to power integrity.&lt;/p&gt;
&lt;p&gt;Battery backup is integrated via an 18650 holder, leveraging the PocketBeagle 2&amp;rsquo;s onboard power management. This ensures uninterrupted operation even if external power is lost&amp;mdash;particularly important for a security system that must remain active during outages.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000087.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jtj1jst54"&gt;Thermal Management in a Sealed Design&lt;/h2&gt;
&lt;p&gt;With all components enclosed in a watertight aluminium housing, heat dissipation becomes critical. Clem addresses this with a small heatsink mounted directly to the processor, coupled to the enclosure using thermal compound.&lt;/p&gt;
&lt;p&gt;This effectively turns the entire chassis into a passive heat spreader. As a secondary benefit, the system self-heats in colder environments, reducing the risk of condensation or frost:&lt;/p&gt;
&lt;blockquote&gt;&amp;ldquo;It produces warmth itself&amp;hellip; in the winter&amp;hellip; it will also keep itself free of any frost.&amp;rdquo;&lt;/blockquote&gt;
&lt;h3 id="mcetoc_1jtjavqt34"&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000229.png" /&gt;&lt;/h3&gt;
&lt;h2 id="mcetoc_1jtj1jst55"&gt;AI-Powered Detection at the Edge&lt;/h2&gt;
&lt;p&gt;Rather than recording continuously, the system uses on-device computer vision to detect human presence. Two detection methods are implemented: HOG (Histogram of Oriented Gradients) and a lightweight DNN running locally on the PocketBeagle 2.&lt;/p&gt;
&lt;p&gt;As Clem explains:&lt;/p&gt;
&lt;blockquote&gt;&amp;ldquo;HOG&amp;hellip; barely works&amp;hellip; But DNN&amp;hellip; does all the inference locally on its own hardware.&amp;rdquo;&lt;/blockquote&gt;
&lt;p&gt;The software stack is intentionally minimal, built around Python, OpenCV, and a simple web server. The streaming and recording logic is handled through a Flask-based application:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;
@app.route(&amp;quot;/video_feed&amp;quot;)
@requires_auth
def video_feed():
    return Response(
        generate_frames(),
        mimetype=&amp;quot;multipart/x-mixed-replace; boundary=frame&amp;quot;
    )
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Basic authentication is built in:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;
USERNAME = &amp;quot;admin&amp;quot;
PASSWORD = &amp;quot;password123&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;While simple, this reinforces the project&amp;rsquo;s emphasis on local control. Users are expected to adapt and harden the system to suit their own environments.&lt;/p&gt;
&lt;p&gt;Recording is triggered only when a person is detected, with a short delay before stopping:&lt;/p&gt;
&lt;blockquote&gt;&amp;ldquo;If a person gets in view&amp;hellip; it starts recording&amp;hellip; and if that person left&amp;hellip; for more than three seconds it will stop it.&amp;rdquo;&lt;/blockquote&gt;
&lt;p&gt;This behaviour dramatically reduces storage requirements and makes reviewing footage far more efficient.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000237.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jtj1jst56"&gt;Local Storage with Automatic Management&lt;/h2&gt;
&lt;p&gt;All video is stored locally on the device, with automatic cleanup ensuring storage remains under control. After 72 hours, recordings are deleted:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;
CLEANUP_INTERVAL  = 24 * 3600
MAX_RECORDING_AGE = 72 * 3600
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A background thread handles this maintenance, quietly removing outdated files without user intervention. Additional USB ports integrated into the PCB allow storage expansion, providing flexibility for longer retention if required.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000295.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/frame_5F00_000094.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jtj1jst57"&gt;A Purpose-Built, Fully Controlled System&lt;/h2&gt;
&lt;p&gt;Clem&amp;rsquo;s security camera is not just a technical exercise, it&amp;rsquo;s about ownership and trust. By combining open hardware, custom electronics, and local AI processing, he avoids the privacy pitfalls of commercial surveillance systems entirely.&lt;/p&gt;
&lt;p&gt;The finished device records only when necessary, stores data locally, survives power interruptions, and operates independently of any cloud service. Or, in Clem&amp;rsquo;s own words:&lt;/p&gt;
&lt;blockquote&gt;&amp;ldquo;Never trust the device you haven&amp;#39;t built from scratch.&amp;rdquo;&lt;/blockquote&gt;
&lt;p&gt;For engineers, makers, and embedded developers, the project offers a compelling blueprint for building secure, autonomous systems that prioritise control without sacrificing capability.&lt;/p&gt;
&lt;h2 id="mcetoc_1jtjagr160"&gt;Supporting Links and Files&lt;/h2&gt;
&lt;p&gt;-&amp;nbsp;&amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/m/files/151523"&gt;Episode 723 Resources - Building a Privacy-First Workshop Security Camera with PocketBeagle 2&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;h2 id="mcetoc_1jtjahdlm1"&gt;Bill of Materials / Parts Used&lt;/h2&gt;
&lt;table class="e14-product-bom-main"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;th&gt;&lt;a id="e14-product-link-51a25" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4628783,3498606,1635217,2292604,4162736,4049873,1825866~3,3769900,1877340&amp;nsku=21AM3898,78AH1768,19P1158,66W2137,83AK6230,56T2028,79R6955~3,52AJ5095,04N9980&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_BUY_KIT" class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('51a25'));" data-farnell="4628783,3498606,1635217,2292604,4162736,4049873,1825866~3,3769900,1877340" data-newark="21AM3898,78AH1768,19P1158,66W2137,83AK6230,56T2028,79R6955~3,52AJ5095,04N9980" data-comoverride="" data-cmpoverride="" data-cpc=",,,,,,undefined~3,,,,," data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Kit&lt;/a&gt; &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PocketBeagle 2 Board, AM6232ASCGHAALWR, ARM Cortex-A53, Sitara - AM62x, Instruction Card&lt;/td&gt;
&lt;td&gt;BeAGLEBOARD&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-247cd" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4628783&amp;nsku=21AM3898&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('247cd'));" data-farnell="4628783" data-newark="21AM3898" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Flash Memory Card, MicroSDHC Card, 16 GB, Class 10, UHS-I U1, A1&lt;/td&gt;
&lt;td&gt;integral&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-9a719" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3498606&amp;nsku=78AH1768&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('9a719'));" data-farnell="3498606" data-newark="78AH1768" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AC/DC DIN Rail Power Supply (PSU), ITE, 1 Output, 12 W, 5 VDC, 2.4 A&lt;/td&gt;
&lt;td&gt;Traco power&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-1cda3" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1635217&amp;nsku=19P1158&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('1cda3'));" data-farnell="1635217" data-newark="19P1158" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;USB Interface, USB Hub Controller, USB 2.0, 3 V, 3.6 V, QFN, 36 Pins&lt;/td&gt;
&lt;td&gt;microchip&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-4dba4" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2292604&amp;nsku=66W2137&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('4dba4'));" data-farnell="2292604" data-newark="66W2137" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ETHERNET ADAPTER, USB3.0 GIGABIT WHI&lt;/td&gt;
&lt;td&gt;Pro-signal&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-f9e20" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4162736&amp;nsku=83AK6230&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('f9e20'));" data-farnell="4162736" data-newark="83AK6230" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BATT HOLDER, 18650 X 1, TH&lt;/td&gt;
&lt;td&gt;keystone&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-17050" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4049873&amp;nsku=56T2028&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('17050'));" data-farnell="4049873" data-newark="56T2028" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TVS Diode, WE-TVS, Unidirectional, 5 V, 6.8 V, SOT-23, 6 Pins&lt;/td&gt;
&lt;td&gt;w&amp;uuml;rth&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-94812" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1825866~3&amp;nsku=79R6955~3&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('94812'));" data-farnell="1825866~3" data-newark="79R6955~3" data-comoverride="" data-cmpoverride="" data-cpc="undefined~3" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Raspberry Pi Module, Raspberry Pi and Jetson Nano Mainboard, Imx291, Sony, Night Camera&lt;/td&gt;
&lt;td&gt;DFROBOT&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-6d2a7" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3769900&amp;nsku=52AJ5095&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('6d2a7'));" data-farnell="3769900" data-newark="52AJ5095" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Metal Enclosure, Watertight, Extruded, EMI / RFI, Anodised, IP54, Small, Extruded Aluminium, 120 mm&lt;/td&gt;
&lt;td&gt;Hammond Mfg&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-7643e" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1877340&amp;nsku=04N9980&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('7643e'));" data-farnell="1877340" data-newark="04N9980" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oscillator, 24 MHz, 50 ppm, Through Hole, 13.2mm x 13.2mm, HCMOS, 5 V, QX8 Series&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;24Mhz crystal needed &amp;rarr; salvaged from other project.&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;bunch of passives&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="xs-hide"&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: smart camera build, diy security camera, local surveillance system, no cloud camera, edge ai detection, usb hub integration, e14presents_mayermakes, opencv person detection, embedded linux project, privacy focused tech, machine vision diy, computer vision project, workshop security, Custom PCB design, pocketbeagle 2 project, friday_release, battery backup electronics&lt;/div&gt;
</description></item><item><title>Building a Privacy-First Workshop Security Camera with PocketBeagle 2</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72081/building-a-privacy-first-workshop-security-camera-with-pocketbeagle-2</link><pubDate>Wed, 15 Jul 2026 16:54:40 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:51a0a7fa-97a4-4777-902b-0e7b0e6bf00b</guid><dc:creator>e14sbhargav</dc:creator><description>Current Revision posted to Documents by e14sbhargav on 7/15/2026 4:54:40 PM&lt;br /&gt;
&lt;p&gt;Clem builds a fully self-contained, privacy-first security camera around the PocketBeagle 2, combining a custom PCB, USB hub design, battery backup, and edge AI person detection to create a system that only records when it matters. Along the way, he overcomes real-world challenges, from unstable networking caused by voltage drop to last-minute hardware changes, resulting in a robust, workshop-ready solution that keeps every frame entirely local&lt;/p&gt;
&lt;h2 id="mcetoc_1jtj1jst50"&gt;Watch the Build&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://players.brightcove.net/1362235890001/default_default/index.html?videoId=6401206576112"&gt;players.brightcove.net/.../index.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When it comes to security cameras, most off-the-shelf solutions expect users to place blind trust in cloud services and proprietary systems. For Clem, that simply wasn&amp;rsquo;t acceptable. As he bluntly puts it,&lt;/p&gt;
&lt;blockquote&gt;&amp;ldquo;you cannot trust anybody&amp;#39;s claim that they will not abuse your data&amp;hellip; you have to control it.&amp;rdquo;&lt;/blockquote&gt;
&lt;p&gt;Instead of relying on a commercial solution, he set out to build a completely local, self-controlled camera system using a PocketBeagle 2, custom hardware, and fully open software.&lt;/p&gt;
&lt;p&gt;The result is a tightly integrated build that brings together embedded Linux, machine vision, power resilience, and mechanical ingenuity into a compact device designed specifically for workshop surveillance, without ever handing data to a third party.&lt;/p&gt;
&lt;h3 id="mcetoc_1jtjao83g2"&gt;&lt;img alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/0755.frame_5F00_000036.png" /&gt;&lt;/h3&gt;
&lt;h2 id="mcetoc_1jtj1jst51"&gt;Designing the Hardware&lt;/h2&gt;
&lt;p&gt;At the centre of the build is the PocketBeagle 2, chosen not for simplicity but for control and flexibility. Although not as beginner-friendly as some alternatives, Clem deliberately leans into its strengths, noting its fast boot time and suitability for edge applications.&lt;/p&gt;
&lt;p&gt;To give the device a familiar form factor, parts from a dummy security camera were repurposed,including the glass front and swivel mount. However, the final enclosure is far more robust. A watertight aluminium housing from Hammond Manufacturing provides environmental protection, while internal slots allow direct PCB mounting.&lt;/p&gt;
&lt;p&gt;Mechanical design plays a key role throughout. Custom ASA 3D printed parts ensure precise positioning of the USB camera module, with the material selected for its durability and thermal stability. Clem highlights the importance of temperature resilience, explaining that internal heat from the embedded computer required a material that wouldn&amp;rsquo;t deform over time.&lt;/p&gt;
&lt;p&gt;The project demonstrates careful planning at the mechanical-electrical boundary. By using manufacturer CAD data, Clem designed the PCB before receiving the enclosure, achieving a precise fit with just 0.2 mm of tolerance,evidence of how reliable modern design workflows can be when properly executed.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000080.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jtj1jst52"&gt;Custom PCB and USB Integration&lt;/h2&gt;
&lt;p&gt;The custom PCB serves as the backbone of the system, integrating power distribution, USB connectivity, and expansion. A Microchip USB2514 hub controller enables multiple USB devices to operate simultaneously, crucial for combining the camera, storage, and networking interfaces.&lt;/p&gt;
&lt;p&gt;This aspect proved to be one of the most challenging. Clem admits,&lt;/p&gt;
&lt;blockquote&gt;&amp;ldquo;I&amp;rsquo;ve been a bit of a burnt child with USB hub designs&amp;hellip; it was down to the crystal and its load capacitors.&amp;rdquo;&lt;/blockquote&gt;
&lt;p&gt;Initially intending to simplify the design with an oscillator, he encountered a compatibility issue late in the process. The device he selected produced a voltage level unsuitable for the hub controller, risking damage to the chip.&lt;/p&gt;
&lt;p&gt;A last-minute redesign reverted the system to a traditional crystal oscillator network. Even then, compromises had to be made:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;
MODEL_PROTOTXT = &amp;quot;dnn_model/deploy.prototxt&amp;quot;
MODEL_WEIGHTS  = &amp;quot;dnn_model/mobilenet_iter_73000.caffemodel&amp;quot;
PERSON_CLASS_ID      = 15
NO_PERSON_TIMEOUT    = 3.0
MAX_RECORDING_AGE    = 72 * 3600
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Although this configuration snippet relates to the software stack, it reflects the same engineering philosophy, working within constraints while maintaining system-level reliability. On the hardware side, Clem worked with slightly mismatched capacitor values, relying on trace capacitance to balance the circuit.&lt;/p&gt;
&lt;blockquote&gt;&amp;ldquo;The only way to find out is to just try it.&amp;rdquo;&lt;/blockquote&gt;
&lt;h3 id="mcetoc_1jtjarlmu3"&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000115.png" /&gt;&lt;/h3&gt;
&lt;h2 id="mcetoc_1jtj1jst53"&gt;Power, Networking, and Real-World Pitfalls&lt;/h2&gt;
&lt;p&gt;Networking and power delivery introduced unexpected complexity. Instead of integrating networking directly into the camera housing, Clem routes connectivity through an external junction box. This isolates access points and ensures that tampering with the camera itself doesn&amp;rsquo;t expose the network interface.&lt;/p&gt;
&lt;p&gt;The system uses a Traco Power 5 V supply, paired with carefully tuned voltage output. What initially appeared to be a networking issue turned out to be something far subtler:&lt;/p&gt;
&lt;blockquote&gt;&amp;ldquo;Under full load my device will draw enough power to make the voltage drop&amp;hellip; just enough to make the PocketBeagle stall.&amp;rdquo;&lt;/blockquote&gt;
&lt;p&gt;A minor voltage adjustment, from borderline levels to a stable ~5.0 V, resolved persistent connection failures. This kind of issue is often overlooked but demonstrates how sensitive embedded systems can be to power integrity.&lt;/p&gt;
&lt;p&gt;Battery backup is integrated via an 18650 holder, leveraging the PocketBeagle 2&amp;rsquo;s onboard power management. This ensures uninterrupted operation even if external power is lost&amp;mdash;particularly important for a security system that must remain active during outages.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000087.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jtj1jst54"&gt;Thermal Management in a Sealed Design&lt;/h2&gt;
&lt;p&gt;With all components enclosed in a watertight aluminium housing, heat dissipation becomes critical. Clem addresses this with a small heatsink mounted directly to the processor, coupled to the enclosure using thermal compound.&lt;/p&gt;
&lt;p&gt;This effectively turns the entire chassis into a passive heat spreader. As a secondary benefit, the system self-heats in colder environments, reducing the risk of condensation or frost:&lt;/p&gt;
&lt;blockquote&gt;&amp;ldquo;It produces warmth itself&amp;hellip; in the winter&amp;hellip; it will also keep itself free of any frost.&amp;rdquo;&lt;/blockquote&gt;
&lt;h3 id="mcetoc_1jtjavqt34"&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000229.png" /&gt;&lt;/h3&gt;
&lt;h2 id="mcetoc_1jtj1jst55"&gt;AI-Powered Detection at the Edge&lt;/h2&gt;
&lt;p&gt;Rather than recording continuously, the system uses on-device computer vision to detect human presence. Two detection methods are implemented: HOG (Histogram of Oriented Gradients) and a lightweight DNN running locally on the PocketBeagle 2.&lt;/p&gt;
&lt;p&gt;As Clem explains:&lt;/p&gt;
&lt;blockquote&gt;&amp;ldquo;HOG&amp;hellip; barely works&amp;hellip; But DNN&amp;hellip; does all the inference locally on its own hardware.&amp;rdquo;&lt;/blockquote&gt;
&lt;p&gt;The software stack is intentionally minimal, built around Python, OpenCV, and a simple web server. The streaming and recording logic is handled through a Flask-based application:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;
@app.route(&amp;quot;/video_feed&amp;quot;)
@requires_auth
def video_feed():
    return Response(
        generate_frames(),
        mimetype=&amp;quot;multipart/x-mixed-replace; boundary=frame&amp;quot;
    )
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Basic authentication is built in:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;
USERNAME = &amp;quot;admin&amp;quot;
PASSWORD = &amp;quot;password123&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;While simple, this reinforces the project&amp;rsquo;s emphasis on local control. Users are expected to adapt and harden the system to suit their own environments.&lt;/p&gt;
&lt;p&gt;Recording is triggered only when a person is detected, with a short delay before stopping:&lt;/p&gt;
&lt;blockquote&gt;&amp;ldquo;If a person gets in view&amp;hellip; it starts recording&amp;hellip; and if that person left&amp;hellip; for more than three seconds it will stop it.&amp;rdquo;&lt;/blockquote&gt;
&lt;p&gt;This behaviour dramatically reduces storage requirements and makes reviewing footage far more efficient.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000237.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jtj1jst56"&gt;Local Storage with Automatic Management&lt;/h2&gt;
&lt;p&gt;All video is stored locally on the device, with automatic cleanup ensuring storage remains under control. After 72 hours, recordings are deleted:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;
CLEANUP_INTERVAL  = 24 * 3600
MAX_RECORDING_AGE = 72 * 3600
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A background thread handles this maintenance, quietly removing outdated files without user intervention. Additional USB ports integrated into the PCB allow storage expansion, providing flexibility for longer retention if required.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000295.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/frame_5F00_000094.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jtj1jst57"&gt;A Purpose-Built, Fully Controlled System&lt;/h2&gt;
&lt;p&gt;Clem&amp;rsquo;s security camera is not just a technical exercise, it&amp;rsquo;s about ownership and trust. By combining open hardware, custom electronics, and local AI processing, he avoids the privacy pitfalls of commercial surveillance systems entirely.&lt;/p&gt;
&lt;p&gt;The finished device records only when necessary, stores data locally, survives power interruptions, and operates independently of any cloud service. Or, in Clem&amp;rsquo;s own words:&lt;/p&gt;
&lt;blockquote&gt;&amp;ldquo;Never trust the device you haven&amp;#39;t built from scratch.&amp;rdquo;&lt;/blockquote&gt;
&lt;p&gt;For engineers, makers, and embedded developers, the project offers a compelling blueprint for building secure, autonomous systems that prioritise control without sacrificing capability.&lt;/p&gt;
&lt;h2 id="mcetoc_1jtjagr160"&gt;Supporting Links and Files&lt;/h2&gt;
&lt;p&gt;-&amp;nbsp;&amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/m/files/151523"&gt;Episode 723 Resources - Building a Privacy-First Workshop Security Camera with PocketBeagle 2&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;h2 id="mcetoc_1jtjahdlm1"&gt;Bill of Materials / Parts Used&lt;/h2&gt;
&lt;table class="e14-product-bom-main"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;th&gt;&lt;a id="e14-product-link-13898" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4628783,3498606,1635217,2292604,4162736,4049873,1825866~3,3769900,1877340&amp;nsku=21AM3898,78AH1768,19P1158,66W2137,83AK6230,56T2028,79R6955~3,52AJ5095,04N9980&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_BUY_KIT" class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('13898'));" data-farnell="4628783,3498606,1635217,2292604,4162736,4049873,1825866~3,3769900,1877340" data-newark="21AM3898,78AH1768,19P1158,66W2137,83AK6230,56T2028,79R6955~3,52AJ5095,04N9980" data-comoverride="" data-cmpoverride="" data-cpc=",,,,,,undefined~3,,,,," data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Kit&lt;/a&gt; &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PocketBeagle 2 Board, AM6232ASCGHAALWR, ARM Cortex-A53, Sitara - AM62x, Instruction Card&lt;/td&gt;
&lt;td&gt;BeAGLEBOARD&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-8c6ca" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4628783&amp;nsku=21AM3898&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('8c6ca'));" data-farnell="4628783" data-newark="21AM3898" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Flash Memory Card, MicroSDHC Card, 16 GB, Class 10, UHS-I U1, A1&lt;/td&gt;
&lt;td&gt;integral&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-f57f0" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3498606&amp;nsku=78AH1768&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('f57f0'));" data-farnell="3498606" data-newark="78AH1768" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AC/DC DIN Rail Power Supply (PSU), ITE, 1 Output, 12 W, 5 VDC, 2.4 A&lt;/td&gt;
&lt;td&gt;Traco power&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-24d61" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1635217&amp;nsku=19P1158&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('24d61'));" data-farnell="1635217" data-newark="19P1158" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;USB Interface, USB Hub Controller, USB 2.0, 3 V, 3.6 V, QFN, 36 Pins&lt;/td&gt;
&lt;td&gt;microchip&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-3803f" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2292604&amp;nsku=66W2137&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('3803f'));" data-farnell="2292604" data-newark="66W2137" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ETHERNET ADAPTER, USB3.0 GIGABIT WHI&lt;/td&gt;
&lt;td&gt;Pro-signal&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-a1dfe" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4162736&amp;nsku=83AK6230&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('a1dfe'));" data-farnell="4162736" data-newark="83AK6230" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BATT HOLDER, 18650 X 1, TH&lt;/td&gt;
&lt;td&gt;keystone&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-cd5c8" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4049873&amp;nsku=56T2028&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('cd5c8'));" data-farnell="4049873" data-newark="56T2028" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TVS Diode, WE-TVS, Unidirectional, 5 V, 6.8 V, SOT-23, 6 Pins&lt;/td&gt;
&lt;td&gt;w&amp;uuml;rth&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-f4038" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1825866~3&amp;nsku=79R6955~3&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('f4038'));" data-farnell="1825866~3" data-newark="79R6955~3" data-comoverride="" data-cmpoverride="" data-cpc="undefined~3" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Raspberry Pi Module, Raspberry Pi and Jetson Nano Mainboard, Imx291, Sony, Night Camera&lt;/td&gt;
&lt;td&gt;DFROBOT&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-c7670" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3769900&amp;nsku=52AJ5095&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('c7670'));" data-farnell="3769900" data-newark="52AJ5095" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Metal Enclosure, Watertight, Extruded, EMI / RFI, Anodised, IP54, Small, Extruded Aluminium, 120 mm&lt;/td&gt;
&lt;td&gt;Hammond Mfg&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-55a61" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=1877340&amp;nsku=04N9980&amp;COM=e14c-noscript&amp;CMP=e14c-noscript&amp;osetc=e14-noscript-tracking-loss" data-at-label="PRODUCT_POPUP_OPEN"class="e14-embedded e14_shopping-cart-far e14-button" onclick="event.preventDefault();e14.func.displayProduct(e14.meta.user.country, this, 'embedded-link', e14.func.getProductLinkJSON('55a61'));" data-farnell="1877340" data-newark="04N9980" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oscillator, 24 MHz, 50 ppm, Through Hole, 13.2mm x 13.2mm, HCMOS, 5 V, QX8 Series&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;24Mhz crystal needed &amp;rarr; salvaged from other project.&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;bunch of passives&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="xs-hide"&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: smart camera build, diy security camera, local surveillance system, no cloud camera, edge ai detection, usb hub integration, e14presents_mayermakes, opencv person detection, embedded linux project, privacy focused tech, machine vision diy, computer vision project, workshop security, Custom PCB design, pocketbeagle 2 project, friday_release, battery backup electronics&lt;/div&gt;
</description></item></channel></rss>