<?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>Creating a Multi-Function ESP32 Desk Pet with Custom PCB and Audio Processing</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72069/creating-a-multi-function-esp32-desk-pet-with-custom-pcb-and-audio-processing</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>Creating a Multi-Function ESP32 Desk Pet with Custom PCB and Audio Processing</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72069/creating-a-multi-function-esp32-desk-pet-with-custom-pcb-and-audio-processing</link><pubDate>Thu, 11 Jun 2026 13:12:58 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:2868f4c0-73f3-4540-a1bf-de624fa66454</guid><dc:creator>e14sbhargav</dc:creator><comments>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72069/creating-a-multi-function-esp32-desk-pet-with-custom-pcb-and-audio-processing#comments</comments><description>Current Revision posted to Documents by e14sbhargav on 6/11/2026 1:12:58 PM&lt;br /&gt;
&lt;p&gt;Mark builds a desktop minion powered by an ESP32 that combines an animated eye display, temperature and humidity monitoring, audio playback, microphone input, a real-time spectrum analyser, and even a fog-generating humidifier. Along the way he designs a custom PCB, works through a hardware design issue, assembles the electronics, and brings the project to life with plenty of personality. Follow the build to see how the hardware, firmware, and enclosure come together to create a desk companion that watches, listens, reacts&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6nn2jd"&gt;Who Watches the Makers? Watch Now:&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://youtu.be/8J4jxaSzVtg"&gt;https://youtu.be/8J4jxaSzVtg&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Mark set out to create something that sits somewhere between a desk companion, environmental monitor, and electronic novelty. The result is what he calls a &amp;quot;Desk Pet Minion&amp;quot; a desktop gadget built around an ESP32 that watches the room through an animated eye, measures environmental conditions, listens for noise, produces sound effects, and even emits fog to express its displeasure.&lt;/p&gt;
&lt;p&gt;What started as a fun desk ornament quickly became a surprisingly feature-rich embedded project. Along the way, Mark designed custom hardware, assembled a dedicated PCB, integrated multiple sensors and peripherals, and worked through a significant hardware design issue that required an unexpected mid-build correction.&lt;/p&gt;
&lt;p&gt;The finished device combines environmental sensing, audio processing, display graphics, and fog generation into a single desktop companion with plenty of room for future expansion.&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/frame_5F00_000036.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl50"&gt;The Concept&lt;/h2&gt;
&lt;p&gt;At its core, the project is designed to bring a little personality to the workspace.&lt;/p&gt;
&lt;p&gt;The animated eye continuously moves and watches its surroundings, giving the impression that the device is paying attention to activity around the desk. Combined with environmental sensing and sound detection, the minion becomes more than a static display piece.&lt;/p&gt;
&lt;p&gt;As Mark explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;It displays that well, mimic eye movement so it can stare at you while you&amp;#39;re sitting at your desk.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The eye is only part of the personality. A built-in humidifier creates visible fog effects, allowing the minion to react to events and express different moods. Loud noises in the office can trigger both sound and smoke effects, turning the device into a humorous commentary on workplace volume levels.&lt;/p&gt;
&lt;p&gt;The project also includes temperature and humidity monitoring, audio playback capabilities, microphone input, and a display mode that functions as a real-time spectrum analyser.&lt;/p&gt;
&lt;p&gt;Future expansion was also part of the design from the beginning.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;In the future I might even update it to function as a radio because I&amp;#39;m using an ESP32 and it has onboard Wi-Fi.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That choice of microcontroller leaves plenty of processing power and connectivity available for additional features.&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_000084.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl51"&gt;System Architecture&lt;/h2&gt;
&lt;p&gt;The ESP32 serves as the centre of the entire design, coordinating every subsystem.&lt;/p&gt;
&lt;p&gt;Mark&amp;#39;s schematic brings together several different hardware functions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;ESP32 microcontroller&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;TFT display for eye animation and status screens&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;DHT11 temperature and humidity sensor&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Light-dependent resistor (LDR)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I2S MEMS microphone&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I2S audio output board&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Speaker&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Humidifier module&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Push-button user interface&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Volume adjustment potentiometer&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Power regulation circuitry&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One particularly useful feature is the inclusion of ambient light detection. The LDR allows the device to respond to environmental changes.&lt;/p&gt;
&lt;p&gt;As Mark describes it:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I can use that to detect whenever somebody enters the office in the morning and turns on the light.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The push button provides a simple interface for switching between display modes, allowing the animated eye to give way to environmental information when 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_000101.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl52"&gt;Custom PCB Design&lt;/h2&gt;
&lt;p&gt;Rather than wiring everything together on perfboard, Mark designed a dedicated PCB specifically for the enclosure.&lt;/p&gt;
&lt;p&gt;The custom board serves several purposes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Reduces wiring complexity&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improves assembly&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ensures all components fit inside the minion housing&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Provides dedicated connections for audio, sensing, and display hardware&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Creates a cleaner final installation&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The PCB accommodates the ESP32 module, display, microphone, humidity sensor, audio circuitry, power distribution, and humidifier control circuitry.&lt;/p&gt;
&lt;p&gt;A dedicated switching circuit drives the humidifier assembly, allowing the ESP32 to enable or disable fog generation under software control.&lt;/p&gt;
&lt;p&gt;The humidifier itself consists of a commercially available ultrasonic fog generator module paired with a small water reservoir. A test tube serves as the water container and fits neatly into the enclosure.&lt;/p&gt;
&lt;p&gt;The arrangement provides a simple and effective way of generating visible fog without requiring any custom ultrasonic hardware design.&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_000120.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl53"&gt;Hardware Assembly&lt;/h2&gt;
&lt;p&gt;Assembly began with the surface-mount components. Working without solder paste or a reflow setup, Mark manually tinned pads before placing and soldering components individually. After completing the surface-mount work, he inspected the board and moved on to the through-hole components. Like many prototype builds, the finished PCB wasn&amp;#39;t cosmetically perfect, but functionally sound.&lt;/p&gt;
&lt;p&gt;Mark notes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;In general when you look closer to this, the soldering looks kind of messy but for prototype it&amp;#39;s okay.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;He also points out that a quick pass with flux and cleaning solvent would significantly improve the appearance if desired.&lt;/p&gt;
&lt;p&gt;Several mechanical decisions were made during assembly to ensure components aligned correctly with openings in the enclosure. The microphone position required particular attention because of the distance between the PCB and the front housing.&lt;/p&gt;
&lt;p&gt;The humidity sensor was removed from its original breakout board and mounted directly onto the custom PCB, helping reduce space requirements inside the enclosure.&lt;/p&gt;
&lt;p&gt;One of the most useful parts of the build was seeing how Mark handled an unexpected hardware problem. During test fitting he discovered that the display footprint obtained from a standard library had been defined incorrectly.&lt;/p&gt;
&lt;p&gt;The display connector arrangement was effectively mirrored, meaning the screen could not be mounted in the intended orientation. As he explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I actually discovered a huge design flaw.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The problem wasn&amp;#39;t with the display itself but with the PCB footprint definition. To keep the project moving, Mark physically reversed the assembly orientation and rearranged component placement.&lt;/p&gt;
&lt;p&gt;The workaround allowed the prototype to function, but it created new packaging constraints inside the enclosure.&lt;/p&gt;
&lt;p&gt;Rather than simply accepting the issue, Mark documented the problem and committed to correcting the design files.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;If you&amp;#39;re rebuilding this I will make sure the PCB layout has been corrected.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This kind of design review and iteration is a normal part of hardware development, and documenting these mistakes is often more valuable than hiding them.&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_000142.png" /&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1jqr6mrl55"&gt;Audio Hardware and Signal Processing&lt;/h3&gt;
&lt;p&gt;Audio is one of the more sophisticated aspects of the project.&lt;/p&gt;
&lt;p&gt;The ESP32 interfaces with both an I2S microphone and an I2S audio output stage. Using I2S rather than analogue audio provides a cleaner signal path and simplifies digital processing.&lt;/p&gt;
&lt;p&gt;The firmware configuration reveals the audio architecture:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;INMP441 MEMS microphone input&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I2S digital audio interface&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dedicated speaker output&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Real-time frequency analysis&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Volume control support&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The software defines 32 frequency bands for spectrum analysis and includes a detailed cutoff table that spans frequencies from approximately 45 Hz to 17.5 kHz.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;float FreqBins[32];
int numBands=32;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The project also includes configurable noise thresholds and gain control behaviour.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;int NoiseTresshold = 2000;
#define GAIN_DAMPEN 2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Frequency band boundaries are carefully distributed across the audible spectrum.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;45, 90, 130, 180,
...
16500, 17000, 17500
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This allows the ESP32 to visualise incoming audio as a spectrum display while simultaneously using microphone data as a trigger source for behavioural responses.&lt;/p&gt;
&lt;p&gt;The result is a surprisingly capable audio subsystem for what initially appears to be a novelty desk gadget.&lt;/p&gt;
&lt;h3 id="mcetoc_1jqr6mrl56"&gt;Environmental Monitoring&lt;/h3&gt;
&lt;p&gt;Environmental sensing is handled using a DHT11 temperature and humidity sensor.&lt;/p&gt;
&lt;p&gt;The firmware configuration shows the sensor connected directly to the ESP32:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;#define DHTPIN 16
#define DHTTYPE DHT11
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The device can display:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Temperature&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Relative humidity&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Humidity index information&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These values can be accessed through the display interface, allowing the minion to double as a desktop environmental monitor.&lt;/p&gt;
&lt;p&gt;Combined with the LDR input, the system gains awareness of both ambient lighting conditions and room climate.&lt;/p&gt;
&lt;h3 id="mcetoc_1jqr6mrl57"&gt;The Animated Eye&lt;/h3&gt;
&lt;p&gt;Perhaps the most distinctive feature of the project is the animated eye.&lt;/p&gt;
&lt;p&gt;The display uses graphics assets derived from a large eye-rendering system and is configured to use a 240 &amp;times; 240 pixel display.&lt;/p&gt;
&lt;p&gt;The firmware enables both tracking and autonomous blinking behaviour.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;#define TRACKING
#define AUTOBLINK
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Additional eye behaviour includes dynamic iris adjustment based on ambient light levels.&lt;/p&gt;
&lt;p&gt;The software contains configurable parameters for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Iris size&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Light response curves&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ambient light limits&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Eyelid tracking&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Autonomous blinking&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Together these features create a display that feels surprisingly alive despite being driven by relatively modest hardware.&lt;/p&gt;
&lt;p&gt;Rather than functioning as a simple animation loop, the eye reacts to changing environmental conditions and continuously varies its appearance. Once assembly was complete, the firmware was loaded using a browser-based installation process,&amp;nbsp;the project supports direct USB programming through a web interface. This approach lowers the barrier for anyone wanting to reproduce the build. More advanced users can still modify the source code, rebuild the firmware, and upload their own versions, but newcomers can simply connect the hardware and install the firmware directly.&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_000395.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl59"&gt;Smoke, Sound and Personality and Future Development&lt;/h2&gt;
&lt;p&gt;The most entertaining behaviour appears once everything is assembled. The ultrasonic humidifier produces visible fog while the eye tracks movement and the microphone listens to the environment. At its current stage, excessive noise acts as a trigger condition. As Mark describes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;If your colleagues are too loud in your office then this device will basically say &amp;#39;Psh&amp;#39;.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The combination of sound effects and fog generation gives the minion a surprisingly expressive personality.&lt;/p&gt;
&lt;p&gt;Of course, the development process wasn&amp;#39;t entirely smoke-free. During testing, an accidental short circuit generated some very real smoke from the electronics.&lt;/p&gt;
&lt;p&gt;Mark jokes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I might have jinxed it a bit by trying to add artificial smoke.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Fortunately the issue was corrected and the project survived to reach its final form. Beyond environmental monitoring and animated eye graphics, the display can also switch into a spectrum analyser. This mode makes direct use of the I2S microphone and frequency processing code to create a visual representation of incoming audio.&lt;/p&gt;
&lt;p&gt;When demonstrating the feature, Mark jokingly asks:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Will it run Doom?&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;His answer:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;It doesn&amp;#39;t run Doom though... but it runs the spectrum analyzer.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While perhaps not as famous as running Doom, a real-time audio analyser is arguably more useful for a device designed to monitor activity in an office environment. Although fully functional, the project clearly has room to grow. Several future directions were identified during development:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Wi-Fi connected features&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Internet radio functionality&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Additional audio behaviours&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Expanded environmental responses&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New display modes&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Further personality-driven interactions&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The ESP32 platform provides ample opportunity for these additions without requiring major hardware redesign.&lt;/p&gt;
&lt;p&gt;Because the hardware already includes networking capability, microphone input, audio output, sensing hardware, and a display, much of the infrastructure required for future features is already in place. What began as a playful desktop companion evolved into a surprisingly capable embedded systems project. By combining environmental sensing, digital audio, display graphics, fog generation, and custom hardware design, Mark created something that feels much more interactive than a typical desk ornament. Equally valuable is the transparency shown throughout the build. Design mistakes, assembly challenges, packaging constraints, and debugging setbacks are all part of the story. Those lessons provide useful guidance for anyone planning to recreate or extend the project. The animated eye gives the minion character, the audio processing provides responsiveness, and the fog generator adds an unexpected physical element that makes the device stand out from conventional ESP32 projects.&lt;/p&gt;
&lt;p&gt;Most importantly, it succeeds at its original goal: creating something fun that sits on a desk, reacts to its surroundings, and occasionally reminds noisy colleagues to keep the volume down.&lt;/p&gt;
&lt;h2 id="mcetoc_1jqrchlj01"&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/151428"&gt;Episode 718 Resources - Creating a Multi-Function ESP32 Desk Pet with Custom PCB and Audio Processing&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jqrcig963"&gt;Bill of Materials / Products 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-9f517" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9730940~5,9666222,2839850,2326018,2326021~2,9227881,3019949~2,9846310,9845348,2073612~3,9352651,9333711,2073784,2073608,2533101,3121992,9730940~2,4662064&amp;nsku=26M6335~5,88H4760,49AC0350,39AM8620,85Y4611~2,96K8339,68R4910~2,58K8841,58K1462,86T3742~3,62J1280,39K0329,86T3897,86T3738,74AC2602,33AH4037,26M6335~2,15J5302&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('9f517'));" data-farnell="9730940~5,9666222,2839850,2326018,2326021~2,9227881,3019949~2,9846310,9845348,2073612~3,9352651,9333711,2073784,2073608,2533101,3121992,9730940~2,4662064" data-newark="26M6335~5,88H4760,49AC0350,39AM8620,85Y4611~2,96K8339,68R4910~2,58K8841,58K1462,86T3742~3,62J1280,39K0329,86T3897,86T3738,74AC2602,33AH4037,26M6335~2,15J5302" data-comoverride="" data-cmpoverride="" data-cpc="undefined~5,,,,undefined~2,,undefined~2,,,undefined~3,,,,,,,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;MOLEX Pin Header, Wire-to-Board, 2.5 mm, 1 Rows, 2 Contacts, Through Hole Straight, KK 5045&lt;/td&gt;
&lt;td&gt;Molex&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-befb3" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9730940~5&amp;nsku=26M6335~5&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('befb3'));" data-farnell="9730940~5" data-newark="26M6335~5" data-comoverride="" data-cmpoverride="" data-cpc="undefined~5" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ONSEMI Linear Voltage Regulator, 7808, Fixed, Positive, 10V To 35V In, 8V/1A Out, TO-220-3&lt;/td&gt;
&lt;td&gt;Onsemi&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-ec89f" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9666222&amp;nsku=88H4760&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('ec89f'));" data-farnell="9666222" data-newark="88H4760" 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;KYCON DC Power Connector, Jack, 3.5 A, 2 mm, PCB Mount, Through Hole&lt;/td&gt;
&lt;td&gt;KYCON&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-d764a" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2839850&amp;nsku=49AC0350&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('d764a'));" data-farnell="2839850" data-newark="49AC0350" 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;10u FECEA1EN100U&lt;/td&gt;
&lt;td&gt;Panasonic&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-8e6d5" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2326018&amp;nsku=39AM8620&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('8e6d5'));" data-farnell="2326018" data-newark="39AM8620" 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;22uF ECEA1EN220X&lt;/td&gt;
&lt;td&gt;Panasonic&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-53bc5" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2326021~2&amp;nsku=85Y4611~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('53bc5'));" data-farnell="2326021~2" data-newark="85Y4611~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;10uF CL31A106KBHNNNE&lt;/td&gt;
&lt;td&gt;SAMSUNG&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-97daf" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9227881&amp;nsku=96K8339&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('97daf'));" data-farnell="9227881" data-newark="96K8339" 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;100nF CC0805KRX7R9BB104&lt;/td&gt;
&lt;td&gt;YAGEO(国巨)&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-784ec" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3019949~2&amp;nsku=68R4910~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('784ec'));" data-farnell="3019949~2" data-newark="68R4910~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;FDN340P FDN340P&lt;/td&gt;
&lt;td&gt;TECH PUBLIC(台舟)&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-0935d" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9846310&amp;nsku=58K8841&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('0935d'));" data-farnell="9846310" data-newark="58K8841" 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;FDN335N FDN335N&lt;/td&gt;
&lt;td&gt;HUASHUO&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-89944" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9845348&amp;nsku=58K1462&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('89944'));" data-farnell="9845348" data-newark="58K1462" 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;10K 0805W8F1002T5E&lt;/td&gt;
&lt;td&gt;UniOhm&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-72f20" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2073612~3&amp;nsku=86T3742~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('72f20'));" data-farnell="2073612~3" data-newark="86T3742~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;10k&amp;Omega; 3266W-1-103LF&lt;/td&gt;
&lt;td&gt;BOURNS&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-28829" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9352651&amp;nsku=62J1280&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('28829'));" data-farnell="9352651" data-newark="62J1280" 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;1K 0805W8F1001T5E&lt;/td&gt;
&lt;td&gt;UniOhm&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-509d1" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9333711&amp;nsku=39K0329&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('509d1'));" data-farnell="9333711" data-newark="39K0329" 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;4.7k&amp;Omega; 0805W8F4701T5E&lt;/td&gt;
&lt;td&gt;UNI-ROYAL(厚声)&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-3b907" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2073784&amp;nsku=86T3897&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('3b907'));" data-farnell="2073784" data-newark="86T3897" 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;100k&amp;Omega; 0805W8F1003T5E&lt;/td&gt;
&lt;td&gt;UNI-ROYAL(厚声)&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-9b817" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2073608&amp;nsku=86T3738&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('9b817'));" data-farnell="2073608" data-newark="86T3738" 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;2-1825910-7&lt;/td&gt;
&lt;td&gt;TE&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-7eabb" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2533101&amp;nsku=74AC2602&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('7eabb'));" data-farnell="2533101" data-newark="74AC2602" 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;LM1085IT-5.0/NOPB LM1084T-5.0&lt;/td&gt;
&lt;td&gt;HGSEMI(华冠)&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-6d062" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3121992&amp;nsku=33AH4037&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('6d062'));" data-farnell="3121992" data-newark="33AH4037" 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;22041021 22041021&lt;/td&gt;
&lt;td&gt;MOLEX&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-8d403" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9730940~2&amp;nsku=26M6335~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('8d403'));" data-farnell="9730940~2" data-newark="26M6335~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;VISATON Speaker, Mini, 2 &amp;quot;, 500 mW, 8 ohm, 83 dB, 250 Hz to 10000 Hz&lt;/td&gt;
&lt;td&gt;Visaton&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-9674d" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4662064&amp;nsku=15J5302&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('9674d'));" data-farnell="4662064" data-newark="15J5302" 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;Manufacturer&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LCD display&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;lens OD43 ID37 H14.5 E2.5&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;I2s Audio Board&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;ESP32 Devkit V1.0&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;Power adapter 12V / 1A&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;Humidifier Kit&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;DHT11 Hum Sensor&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;INMP441-MEMS-I2S-MIC-MODULE&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;GL5516 GL5516 LDR&lt;/td&gt;
&lt;td&gt;gepyun&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: ESP32 audio project, MEMS microphone project, ESP32 display project, DIY electronics project, esp32 project, spectrum analyser esp32, ESP32 maker project, electronic desk toy, animated eye display, desk pet, humidity sensor project, ultrasonic humidifier project, Custom PCB design, friday_release, desktop companion, smart desk gadget&lt;/div&gt;
</description></item><item><title>Creating a Multi-Function ESP32 Desk Pet with Custom PCB and Audio Processing</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72069/creating-a-multi-function-esp32-desk-pet-with-custom-pcb-and-audio-processing/revision/6</link><pubDate>Thu, 11 Jun 2026 13:12:58 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:2868f4c0-73f3-4540-a1bf-de624fa66454</guid><dc:creator>cstanton</dc:creator><comments>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72069/creating-a-multi-function-esp32-desk-pet-with-custom-pcb-and-audio-processing#comments</comments><description>Revision 6 posted to Documents by cstanton on 6/11/2026 1:12:58 PM&lt;br /&gt;
&lt;p&gt;Mark builds a desktop minion powered by an ESP32 that combines an animated eye display, temperature and humidity monitoring, audio playback, microphone input, a real-time spectrum analyser, and even a fog-generating humidifier. Along the way he designs a custom PCB, works through a hardware design issue, assembles the electronics, and brings the project to life with plenty of personality. Follow the build to see how the hardware, firmware, and enclosure come together to create a desk companion that watches, listens, reacts&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6nn2jd"&gt;Who Watches the Makers? Watch Now:&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://youtu.be/8J4jxaSzVtg"&gt;https://youtu.be/8J4jxaSzVtg&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Mark set out to create something that sits somewhere between a desk companion, environmental monitor, and electronic novelty. The result is what he calls a &amp;quot;Desk Pet Minion&amp;quot; a desktop gadget built around an ESP32 that watches the room through an animated eye, measures environmental conditions, listens for noise, produces sound effects, and even emits fog to express its displeasure.&lt;/p&gt;
&lt;p&gt;What started as a fun desk ornament quickly became a surprisingly feature-rich embedded project. Along the way, Mark designed custom hardware, assembled a dedicated PCB, integrated multiple sensors and peripherals, and worked through a significant hardware design issue that required an unexpected mid-build correction.&lt;/p&gt;
&lt;p&gt;The finished device combines environmental sensing, audio processing, display graphics, and fog generation into a single desktop companion with plenty of room for future expansion.&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/frame_5F00_000036.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl50"&gt;The Concept&lt;/h2&gt;
&lt;p&gt;At its core, the project is designed to bring a little personality to the workspace.&lt;/p&gt;
&lt;p&gt;The animated eye continuously moves and watches its surroundings, giving the impression that the device is paying attention to activity around the desk. Combined with environmental sensing and sound detection, the minion becomes more than a static display piece.&lt;/p&gt;
&lt;p&gt;As Mark explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;It displays that well, mimic eye movement so it can stare at you while you&amp;#39;re sitting at your desk.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The eye is only part of the personality. A built-in humidifier creates visible fog effects, allowing the minion to react to events and express different moods. Loud noises in the office can trigger both sound and smoke effects, turning the device into a humorous commentary on workplace volume levels.&lt;/p&gt;
&lt;p&gt;The project also includes temperature and humidity monitoring, audio playback capabilities, microphone input, and a display mode that functions as a real-time spectrum analyser.&lt;/p&gt;
&lt;p&gt;Future expansion was also part of the design from the beginning.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;In the future I might even update it to function as a radio because I&amp;#39;m using an ESP32 and it has onboard Wi-Fi.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That choice of microcontroller leaves plenty of processing power and connectivity available for additional features.&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_000084.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl51"&gt;System Architecture&lt;/h2&gt;
&lt;p&gt;The ESP32 serves as the centre of the entire design, coordinating every subsystem.&lt;/p&gt;
&lt;p&gt;Mark&amp;#39;s schematic brings together several different hardware functions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;ESP32 microcontroller&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;TFT display for eye animation and status screens&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;DHT11 temperature and humidity sensor&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Light-dependent resistor (LDR)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I2S MEMS microphone&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I2S audio output board&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Speaker&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Humidifier module&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Push-button user interface&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Volume adjustment potentiometer&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Power regulation circuitry&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One particularly useful feature is the inclusion of ambient light detection. The LDR allows the device to respond to environmental changes.&lt;/p&gt;
&lt;p&gt;As Mark describes it:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I can use that to detect whenever somebody enters the office in the morning and turns on the light.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The push button provides a simple interface for switching between display modes, allowing the animated eye to give way to environmental information when 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_000101.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl52"&gt;Custom PCB Design&lt;/h2&gt;
&lt;p&gt;Rather than wiring everything together on perfboard, Mark designed a dedicated PCB specifically for the enclosure.&lt;/p&gt;
&lt;p&gt;The custom board serves several purposes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Reduces wiring complexity&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improves assembly&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ensures all components fit inside the minion housing&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Provides dedicated connections for audio, sensing, and display hardware&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Creates a cleaner final installation&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The PCB accommodates the ESP32 module, display, microphone, humidity sensor, audio circuitry, power distribution, and humidifier control circuitry.&lt;/p&gt;
&lt;p&gt;A dedicated switching circuit drives the humidifier assembly, allowing the ESP32 to enable or disable fog generation under software control.&lt;/p&gt;
&lt;p&gt;The humidifier itself consists of a commercially available ultrasonic fog generator module paired with a small water reservoir. A test tube serves as the water container and fits neatly into the enclosure.&lt;/p&gt;
&lt;p&gt;The arrangement provides a simple and effective way of generating visible fog without requiring any custom ultrasonic hardware design.&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_000120.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl53"&gt;Hardware Assembly&lt;/h2&gt;
&lt;p&gt;Assembly began with the surface-mount components. Working without solder paste or a reflow setup, Mark manually tinned pads before placing and soldering components individually. After completing the surface-mount work, he inspected the board and moved on to the through-hole components. Like many prototype builds, the finished PCB wasn&amp;#39;t cosmetically perfect, but functionally sound.&lt;/p&gt;
&lt;p&gt;Mark notes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;In general when you look closer to this, the soldering looks kind of messy but for prototype it&amp;#39;s okay.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;He also points out that a quick pass with flux and cleaning solvent would significantly improve the appearance if desired.&lt;/p&gt;
&lt;p&gt;Several mechanical decisions were made during assembly to ensure components aligned correctly with openings in the enclosure. The microphone position required particular attention because of the distance between the PCB and the front housing.&lt;/p&gt;
&lt;p&gt;The humidity sensor was removed from its original breakout board and mounted directly onto the custom PCB, helping reduce space requirements inside the enclosure.&lt;/p&gt;
&lt;p&gt;One of the most useful parts of the build was seeing how Mark handled an unexpected hardware problem. During test fitting he discovered that the display footprint obtained from a standard library had been defined incorrectly.&lt;/p&gt;
&lt;p&gt;The display connector arrangement was effectively mirrored, meaning the screen could not be mounted in the intended orientation. As he explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I actually discovered a huge design flaw.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The problem wasn&amp;#39;t with the display itself but with the PCB footprint definition. To keep the project moving, Mark physically reversed the assembly orientation and rearranged component placement.&lt;/p&gt;
&lt;p&gt;The workaround allowed the prototype to function, but it created new packaging constraints inside the enclosure.&lt;/p&gt;
&lt;p&gt;Rather than simply accepting the issue, Mark documented the problem and committed to correcting the design files.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;If you&amp;#39;re rebuilding this I will make sure the PCB layout has been corrected.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This kind of design review and iteration is a normal part of hardware development, and documenting these mistakes is often more valuable than hiding them.&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_000142.png" /&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1jqr6mrl55"&gt;Audio Hardware and Signal Processing&lt;/h3&gt;
&lt;p&gt;Audio is one of the more sophisticated aspects of the project.&lt;/p&gt;
&lt;p&gt;The ESP32 interfaces with both an I2S microphone and an I2S audio output stage. Using I2S rather than analogue audio provides a cleaner signal path and simplifies digital processing.&lt;/p&gt;
&lt;p&gt;The firmware configuration reveals the audio architecture:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;INMP441 MEMS microphone input&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I2S digital audio interface&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dedicated speaker output&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Real-time frequency analysis&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Volume control support&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The software defines 32 frequency bands for spectrum analysis and includes a detailed cutoff table that spans frequencies from approximately 45 Hz to 17.5 kHz.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;float FreqBins[32];
int numBands=32;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The project also includes configurable noise thresholds and gain control behaviour.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;int NoiseTresshold = 2000;
#define GAIN_DAMPEN 2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Frequency band boundaries are carefully distributed across the audible spectrum.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;45, 90, 130, 180,
...
16500, 17000, 17500
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This allows the ESP32 to visualise incoming audio as a spectrum display while simultaneously using microphone data as a trigger source for behavioural responses.&lt;/p&gt;
&lt;p&gt;The result is a surprisingly capable audio subsystem for what initially appears to be a novelty desk gadget.&lt;/p&gt;
&lt;h3 id="mcetoc_1jqr6mrl56"&gt;Environmental Monitoring&lt;/h3&gt;
&lt;p&gt;Environmental sensing is handled using a DHT11 temperature and humidity sensor.&lt;/p&gt;
&lt;p&gt;The firmware configuration shows the sensor connected directly to the ESP32:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;#define DHTPIN 16
#define DHTTYPE DHT11
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The device can display:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Temperature&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Relative humidity&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Humidity index information&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These values can be accessed through the display interface, allowing the minion to double as a desktop environmental monitor.&lt;/p&gt;
&lt;p&gt;Combined with the LDR input, the system gains awareness of both ambient lighting conditions and room climate.&lt;/p&gt;
&lt;h3 id="mcetoc_1jqr6mrl57"&gt;The Animated Eye&lt;/h3&gt;
&lt;p&gt;Perhaps the most distinctive feature of the project is the animated eye.&lt;/p&gt;
&lt;p&gt;The display uses graphics assets derived from a large eye-rendering system and is configured to use a 240 &amp;times; 240 pixel display.&lt;/p&gt;
&lt;p&gt;The firmware enables both tracking and autonomous blinking behaviour.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;#define TRACKING
#define AUTOBLINK
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Additional eye behaviour includes dynamic iris adjustment based on ambient light levels.&lt;/p&gt;
&lt;p&gt;The software contains configurable parameters for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Iris size&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Light response curves&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ambient light limits&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Eyelid tracking&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Autonomous blinking&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Together these features create a display that feels surprisingly alive despite being driven by relatively modest hardware.&lt;/p&gt;
&lt;p&gt;Rather than functioning as a simple animation loop, the eye reacts to changing environmental conditions and continuously varies its appearance. Once assembly was complete, the firmware was loaded using a browser-based installation process,&amp;nbsp;the project supports direct USB programming through a web interface. This approach lowers the barrier for anyone wanting to reproduce the build. More advanced users can still modify the source code, rebuild the firmware, and upload their own versions, but newcomers can simply connect the hardware and install the firmware directly.&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_000395.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl59"&gt;Smoke, Sound and Personality and Future Development&lt;/h2&gt;
&lt;p&gt;The most entertaining behaviour appears once everything is assembled. The ultrasonic humidifier produces visible fog while the eye tracks movement and the microphone listens to the environment. At its current stage, excessive noise acts as a trigger condition. As Mark describes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;If your colleagues are too loud in your office then this device will basically say &amp;#39;Psh&amp;#39;.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The combination of sound effects and fog generation gives the minion a surprisingly expressive personality.&lt;/p&gt;
&lt;p&gt;Of course, the development process wasn&amp;#39;t entirely smoke-free. During testing, an accidental short circuit generated some very real smoke from the electronics.&lt;/p&gt;
&lt;p&gt;Mark jokes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I might have jinxed it a bit by trying to add artificial smoke.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Fortunately the issue was corrected and the project survived to reach its final form. Beyond environmental monitoring and animated eye graphics, the display can also switch into a spectrum analyser. This mode makes direct use of the I2S microphone and frequency processing code to create a visual representation of incoming audio.&lt;/p&gt;
&lt;p&gt;When demonstrating the feature, Mark jokingly asks:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Will it run Doom?&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;His answer:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;It doesn&amp;#39;t run Doom though... but it runs the spectrum analyzer.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While perhaps not as famous as running Doom, a real-time audio analyser is arguably more useful for a device designed to monitor activity in an office environment. Although fully functional, the project clearly has room to grow. Several future directions were identified during development:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Wi-Fi connected features&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Internet radio functionality&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Additional audio behaviours&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Expanded environmental responses&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New display modes&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Further personality-driven interactions&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The ESP32 platform provides ample opportunity for these additions without requiring major hardware redesign.&lt;/p&gt;
&lt;p&gt;Because the hardware already includes networking capability, microphone input, audio output, sensing hardware, and a display, much of the infrastructure required for future features is already in place. What began as a playful desktop companion evolved into a surprisingly capable embedded systems project. By combining environmental sensing, digital audio, display graphics, fog generation, and custom hardware design, Mark created something that feels much more interactive than a typical desk ornament. Equally valuable is the transparency shown throughout the build. Design mistakes, assembly challenges, packaging constraints, and debugging setbacks are all part of the story. Those lessons provide useful guidance for anyone planning to recreate or extend the project. The animated eye gives the minion character, the audio processing provides responsiveness, and the fog generator adds an unexpected physical element that makes the device stand out from conventional ESP32 projects.&lt;/p&gt;
&lt;p&gt;Most importantly, it succeeds at its original goal: creating something fun that sits on a desk, reacts to its surroundings, and occasionally reminds noisy colleagues to keep the volume down.&lt;/p&gt;
&lt;h2 id="mcetoc_1jqrchlj01"&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/151428"&gt;Episode 718 Resources - Creating a Multi-Function ESP32 Desk Pet with Custom PCB and Audio Processing&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jqrcig963"&gt;Bill of Materials / Products 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-42d5e" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9730940~5,9666222,2839850,2326018,2326021~2,9227881,3019949~2,9846310,9845348,2073612~3,9352651,9333711,2073784,2073608,2533101,3121992,9730940~2,4662064&amp;nsku=26M6335~5,88H4760,49AC0350,39AM8620,85Y4611~2,96K8339,68R4910~2,58K8841,58K1462,86T3742~3,62J1280,39K0329,86T3897,86T3738,74AC2602,33AH4037,26M6335~2,15J5302&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('42d5e'));" data-farnell="9730940~5,9666222,2839850,2326018,2326021~2,9227881,3019949~2,9846310,9845348,2073612~3,9352651,9333711,2073784,2073608,2533101,3121992,9730940~2,4662064" data-newark="26M6335~5,88H4760,49AC0350,39AM8620,85Y4611~2,96K8339,68R4910~2,58K8841,58K1462,86T3742~3,62J1280,39K0329,86T3897,86T3738,74AC2602,33AH4037,26M6335~2,15J5302" data-comoverride="" data-cmpoverride="" data-cpc="undefined~5,,,,undefined~2,,undefined~2,,,undefined~3,,,,,,,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;MOLEX Pin Header, Wire-to-Board, 2.5 mm, 1 Rows, 2 Contacts, Through Hole Straight, KK 5045&lt;/td&gt;
&lt;td&gt;Molex&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-cabb8" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9730940~5&amp;nsku=26M6335~5&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('cabb8'));" data-farnell="9730940~5" data-newark="26M6335~5" data-comoverride="" data-cmpoverride="" data-cpc="undefined~5" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ONSEMI Linear Voltage Regulator, 7808, Fixed, Positive, 10V To 35V In, 8V/1A Out, TO-220-3&lt;/td&gt;
&lt;td&gt;Onsemi&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-ad1cd" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9666222&amp;nsku=88H4760&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('ad1cd'));" data-farnell="9666222" data-newark="88H4760" 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;KYCON DC Power Connector, Jack, 3.5 A, 2 mm, PCB Mount, Through Hole&lt;/td&gt;
&lt;td&gt;KYCON&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-7ffb1" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2839850&amp;nsku=49AC0350&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('7ffb1'));" data-farnell="2839850" data-newark="49AC0350" 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;10u FECEA1EN100U&lt;/td&gt;
&lt;td&gt;Panasonic&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-c82f2" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2326018&amp;nsku=39AM8620&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('c82f2'));" data-farnell="2326018" data-newark="39AM8620" 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;22uF ECEA1EN220X&lt;/td&gt;
&lt;td&gt;Panasonic&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-f2ad1" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2326021~2&amp;nsku=85Y4611~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('f2ad1'));" data-farnell="2326021~2" data-newark="85Y4611~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;10uF CL31A106KBHNNNE&lt;/td&gt;
&lt;td&gt;SAMSUNG&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-76867" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9227881&amp;nsku=96K8339&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('76867'));" data-farnell="9227881" data-newark="96K8339" 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;100nF CC0805KRX7R9BB104&lt;/td&gt;
&lt;td&gt;YAGEO(国巨)&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-ec20f" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3019949~2&amp;nsku=68R4910~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('ec20f'));" data-farnell="3019949~2" data-newark="68R4910~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;FDN340P FDN340P&lt;/td&gt;
&lt;td&gt;TECH PUBLIC(台舟)&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-6df8d" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9846310&amp;nsku=58K8841&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('6df8d'));" data-farnell="9846310" data-newark="58K8841" 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;FDN335N FDN335N&lt;/td&gt;
&lt;td&gt;HUASHUO&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-e802a" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9845348&amp;nsku=58K1462&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('e802a'));" data-farnell="9845348" data-newark="58K1462" 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;10K 0805W8F1002T5E&lt;/td&gt;
&lt;td&gt;UniOhm&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-474fb" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2073612~3&amp;nsku=86T3742~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('474fb'));" data-farnell="2073612~3" data-newark="86T3742~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;10k&amp;Omega; 3266W-1-103LF&lt;/td&gt;
&lt;td&gt;BOURNS&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-c1b2a" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9352651&amp;nsku=62J1280&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('c1b2a'));" data-farnell="9352651" data-newark="62J1280" 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;1K 0805W8F1001T5E&lt;/td&gt;
&lt;td&gt;UniOhm&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-30d56" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9333711&amp;nsku=39K0329&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('30d56'));" data-farnell="9333711" data-newark="39K0329" 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;4.7k&amp;Omega; 0805W8F4701T5E&lt;/td&gt;
&lt;td&gt;UNI-ROYAL(厚声)&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-d0619" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2073784&amp;nsku=86T3897&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('d0619'));" data-farnell="2073784" data-newark="86T3897" 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;100k&amp;Omega; 0805W8F1003T5E&lt;/td&gt;
&lt;td&gt;UNI-ROYAL(厚声)&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-9e42e" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2073608&amp;nsku=86T3738&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('9e42e'));" data-farnell="2073608" data-newark="86T3738" 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;2-1825910-7&lt;/td&gt;
&lt;td&gt;TE&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-7b1ae" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2533101&amp;nsku=74AC2602&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('7b1ae'));" data-farnell="2533101" data-newark="74AC2602" 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;LM1085IT-5.0/NOPB LM1084T-5.0&lt;/td&gt;
&lt;td&gt;HGSEMI(华冠)&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-384ce" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3121992&amp;nsku=33AH4037&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('384ce'));" data-farnell="3121992" data-newark="33AH4037" 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;22041021 22041021&lt;/td&gt;
&lt;td&gt;MOLEX&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-a9212" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9730940~2&amp;nsku=26M6335~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('a9212'));" data-farnell="9730940~2" data-newark="26M6335~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;VISATON Speaker, Mini, 2 &amp;quot;, 500 mW, 8 ohm, 83 dB, 250 Hz to 10000 Hz&lt;/td&gt;
&lt;td&gt;Visaton&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-7e6b5" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4662064&amp;nsku=15J5302&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('7e6b5'));" data-farnell="4662064" data-newark="15J5302" 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;Manufacturer&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LCD display&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;lens OD43 ID37 H14.5 E2.5&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;I2s Audio Board&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;ESP32 Devkit V1.0&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;Power adapter 12V / 1A&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;Humidifier Kit&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;DHT11 Hum Sensor&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;INMP441-MEMS-I2S-MIC-MODULE&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;GL5516 GL5516 LDR&lt;/td&gt;
&lt;td&gt;gepyun&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: ESP32 audio project, MEMS microphone project, ESP32 display project, DIY electronics project, esp32 project, spectrum analyser esp32, ESP32 maker project, electronic desk toy, animated eye display, desk pet, humidity sensor project, ultrasonic humidifier project, Custom PCB design, friday_release, desktop companion, smart desk gadget&lt;/div&gt;
</description></item><item><title>Creating a Multi-Function ESP32 Desk Pet with Custom PCB and Audio Processing</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72069/creating-a-multi-function-esp32-desk-pet-with-custom-pcb-and-audio-processing/revision/5</link><pubDate>Thu, 11 Jun 2026 13:05:39 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:2868f4c0-73f3-4540-a1bf-de624fa66454</guid><dc:creator>cstanton</dc:creator><comments>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72069/creating-a-multi-function-esp32-desk-pet-with-custom-pcb-and-audio-processing#comments</comments><description>Revision 5 posted to Documents by cstanton on 6/11/2026 1:05:39 PM&lt;br /&gt;
&lt;p&gt;Mark builds a desktop minion powered by an ESP32 that combines an animated eye display, temperature and humidity monitoring, audio playback, microphone input, a real-time spectrum analyser, and even a fog-generating humidifier. Along the way he designs a custom PCB, works through a hardware design issue, assembles the electronics, and brings the project to life with plenty of personality. Follow the build to see how the hardware, firmware, and enclosure come together to create a desk companion that watches, listens, reacts&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6nn2jd"&gt;Who Watches the Makers? Watch Now:&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://youtu.be/8J4jxaSzVtg"&gt;https://youtu.be/8J4jxaSzVtg&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Mark set out to create something that sits somewhere between a desk companion, environmental monitor, and electronic novelty. The result is what he calls a &amp;quot;Desk Pet Minion&amp;quot; a desktop gadget built around an ESP32 that watches the room through an animated eye, measures environmental conditions, listens for noise, produces sound effects, and even emits fog to express its displeasure.&lt;/p&gt;
&lt;p&gt;What started as a fun desk ornament quickly became a surprisingly feature-rich embedded project. Along the way, Mark designed custom hardware, assembled a dedicated PCB, integrated multiple sensors and peripherals, and worked through a significant hardware design issue that required an unexpected mid-build correction.&lt;/p&gt;
&lt;p&gt;The finished device combines environmental sensing, audio processing, display graphics, and fog generation into a single desktop companion with plenty of room for future expansion.&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl50"&gt;The Concept&lt;/h2&gt;
&lt;p&gt;At its core, the project is designed to bring a little personality to the workspace.&lt;/p&gt;
&lt;p&gt;The animated eye continuously moves and watches its surroundings, giving the impression that the device is paying attention to activity around the desk. Combined with environmental sensing and sound detection, the minion becomes more than a static display piece.&lt;/p&gt;
&lt;p&gt;As Mark explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;It displays that well, mimic eye movement so it can stare at you while you&amp;#39;re sitting at your desk.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The eye is only part of the personality. A built-in humidifier creates visible fog effects, allowing the minion to react to events and express different moods. Loud noises in the office can trigger both sound and smoke effects, turning the device into a humorous commentary on workplace volume levels.&lt;/p&gt;
&lt;p&gt;The project also includes temperature and humidity monitoring, audio playback capabilities, microphone input, and a display mode that functions as a real-time spectrum analyser.&lt;/p&gt;
&lt;p&gt;Future expansion was also part of the design from the beginning.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;In the future I might even update it to function as a radio because I&amp;#39;m using an ESP32 and it has onboard Wi-Fi.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That choice of microcontroller leaves plenty of processing power and connectivity available for additional features.&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl51"&gt;System Architecture&lt;/h2&gt;
&lt;p&gt;The ESP32 serves as the centre of the entire design, coordinating every subsystem.&lt;/p&gt;
&lt;p&gt;Mark&amp;#39;s schematic brings together several different hardware functions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;ESP32 microcontroller&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;TFT display for eye animation and status screens&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;DHT11 temperature and humidity sensor&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Light-dependent resistor (LDR)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I2S MEMS microphone&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I2S audio output board&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Speaker&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Humidifier module&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Push-button user interface&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Volume adjustment potentiometer&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Power regulation circuitry&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One particularly useful feature is the inclusion of ambient light detection. The LDR allows the device to respond to environmental changes.&lt;/p&gt;
&lt;p&gt;As Mark describes it:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I can use that to detect whenever somebody enters the office in the morning and turns on the light.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The push button provides a simple interface for switching between display modes, allowing the animated eye to give way to environmental information when required.&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl52"&gt;Custom PCB Design&lt;/h2&gt;
&lt;p&gt;Rather than wiring everything together on perfboard, Mark designed a dedicated PCB specifically for the enclosure.&lt;/p&gt;
&lt;p&gt;The custom board serves several purposes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Reduces wiring complexity&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improves assembly&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ensures all components fit inside the minion housing&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Provides dedicated connections for audio, sensing, and display hardware&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Creates a cleaner final installation&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The PCB accommodates the ESP32 module, display, microphone, humidity sensor, audio circuitry, power distribution, and humidifier control circuitry.&lt;/p&gt;
&lt;p&gt;A dedicated switching circuit drives the humidifier assembly, allowing the ESP32 to enable or disable fog generation under software control.&lt;/p&gt;
&lt;p&gt;The humidifier itself consists of a commercially available ultrasonic fog generator module paired with a small water reservoir. A test tube serves as the water container and fits neatly into the enclosure.&lt;/p&gt;
&lt;p&gt;The arrangement provides a simple and effective way of generating visible fog without requiring any custom ultrasonic hardware design.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl53"&gt;Hardware Assembly&lt;/h2&gt;
&lt;p&gt;Assembly began with the surface-mount components.&lt;/p&gt;
&lt;p&gt;Working without solder paste or a reflow setup, Mark manually tinned pads before placing and soldering components individually.&lt;/p&gt;
&lt;p&gt;After completing the surface-mount work, he inspected the board and moved on to the through-hole components.&lt;/p&gt;
&lt;p&gt;Like many prototype builds, the finished PCB wasn&amp;#39;t cosmetically perfect, but functionally sound.&lt;/p&gt;
&lt;p&gt;Mark notes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;In general when you look closer to this, the soldering looks kind of messy but for prototype it&amp;#39;s okay.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;He also points out that a quick pass with flux and cleaning solvent would significantly improve the appearance if desired.&lt;/p&gt;
&lt;p&gt;Several mechanical decisions were made during assembly to ensure components aligned correctly with openings in the enclosure. The microphone position required particular attention because of the distance between the PCB and the front housing.&lt;/p&gt;
&lt;p&gt;The humidity sensor was removed from its original breakout board and mounted directly onto the custom PCB, helping reduce space requirements inside the enclosure.&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl54"&gt;A Design Flaw Appears&lt;/h2&gt;
&lt;p&gt;One of the most useful parts of the build was seeing how Mark handled an unexpected hardware problem. During test fitting he discovered that the display footprint obtained from a standard library had been defined incorrectly.&lt;/p&gt;
&lt;p&gt;The display connector arrangement was effectively mirrored, meaning the screen could not be mounted in the intended orientation. As he explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I actually discovered a huge design flaw.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The problem wasn&amp;#39;t with the display itself but with the PCB footprint definition. To keep the project moving, Mark physically reversed the assembly orientation and rearranged component placement.&lt;/p&gt;
&lt;p&gt;The workaround allowed the prototype to function, but it created new packaging constraints inside the enclosure.&lt;/p&gt;
&lt;p&gt;Rather than simply accepting the issue, Mark documented the problem and committed to correcting the design files.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;If you&amp;#39;re rebuilding this I will make sure the PCB layout has been corrected.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This kind of design review and iteration is a normal part of hardware development, and documenting these mistakes is often more valuable than hiding them.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl55"&gt;Audio Hardware and Signal Processing&lt;/h2&gt;
&lt;p&gt;Audio is one of the more sophisticated aspects of the project.&lt;/p&gt;
&lt;p&gt;The ESP32 interfaces with both an I2S microphone and an I2S audio output stage. Using I2S rather than analogue audio provides a cleaner signal path and simplifies digital processing.&lt;/p&gt;
&lt;p&gt;The firmware configuration reveals the audio architecture:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;INMP441 MEMS microphone input&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I2S digital audio interface&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dedicated speaker output&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Real-time frequency analysis&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Volume control support&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The software defines 32 frequency bands for spectrum analysis and includes a detailed cutoff table that spans frequencies from approximately 45 Hz to 17.5 kHz.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;float FreqBins[32];
int numBands=32;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The project also includes configurable noise thresholds and gain control behaviour.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;int NoiseTresshold = 2000;
#define GAIN_DAMPEN 2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Frequency band boundaries are carefully distributed across the audible spectrum.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;45, 90, 130, 180,
...
16500, 17000, 17500
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This allows the ESP32 to visualise incoming audio as a spectrum display while simultaneously using microphone data as a trigger source for behavioural responses.&lt;/p&gt;
&lt;p&gt;The result is a surprisingly capable audio subsystem for what initially appears to be a novelty desk gadget.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl56"&gt;Environmental Monitoring&lt;/h2&gt;
&lt;p&gt;Environmental sensing is handled using a DHT11 temperature and humidity sensor.&lt;/p&gt;
&lt;p&gt;The firmware configuration shows the sensor connected directly to the ESP32:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;#define DHTPIN 16
#define DHTTYPE DHT11
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The device can display:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Temperature&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Relative humidity&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Humidity index information&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These values can be accessed through the display interface, allowing the minion to double as a desktop environmental monitor.&lt;/p&gt;
&lt;p&gt;Combined with the LDR input, the system gains awareness of both ambient lighting conditions and room climate.&lt;/p&gt;
&lt;h2 id="mcetoc_1jqrchlj00"&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1jqr6mrl57"&gt;The Animated Eye&lt;/h2&gt;
&lt;p&gt;Perhaps the most distinctive feature of the project is the animated eye.&lt;/p&gt;
&lt;p&gt;The display uses graphics assets derived from a large eye-rendering system and is configured to use a 240 &amp;times; 240 pixel display.&lt;/p&gt;
&lt;p&gt;The firmware enables both tracking and autonomous blinking behaviour.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;#define TRACKING
#define AUTOBLINK
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Additional eye behaviour includes dynamic iris adjustment based on ambient light levels.&lt;/p&gt;
&lt;p&gt;The software contains configurable parameters for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Iris size&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Light response curves&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ambient light limits&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Eyelid tracking&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Autonomous blinking&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Together these features create a display that feels surprisingly alive despite being driven by relatively modest hardware.&lt;/p&gt;
&lt;p&gt;Rather than functioning as a simple animation loop, the eye reacts to changing environmental conditions and continuously varies its appearance. Once assembly was complete, the firmware was loaded using a browser-based installation process,&amp;nbsp;the project supports direct USB programming through a web interface. This approach lowers the barrier for anyone wanting to reproduce the build. More advanced users can still modify the source code, rebuild the firmware, and upload their own versions, but newcomers can simply connect the hardware and install the firmware directly.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl59"&gt;Smoke, Sound and Personality&lt;/h2&gt;
&lt;p&gt;The most entertaining behaviour appears once everything is assembled. The ultrasonic humidifier produces visible fog while the eye tracks movement and the microphone listens to the environment. At its current stage, excessive noise acts as a trigger condition. As Mark describes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;If your colleagues are too loud in your office then this device will basically say &amp;#39;Psh&amp;#39;.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The combination of sound effects and fog generation gives the minion a surprisingly expressive personality.&lt;/p&gt;
&lt;p&gt;Of course, the development process wasn&amp;#39;t entirely smoke-free. During testing, an accidental short circuit generated some very real smoke from the electronics.&lt;/p&gt;
&lt;p&gt;Mark jokes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I might have jinxed it a bit by trying to add artificial smoke.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Fortunately the issue was corrected and the project survived to reach its final form. Beyond environmental monitoring and animated eye graphics, the display can also switch into a spectrum analyser. This mode makes direct use of the I2S microphone and frequency processing code to create a visual representation of incoming audio.&lt;/p&gt;
&lt;p&gt;When demonstrating the feature, Mark jokingly asks:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Will it run Doom?&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;His answer:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;It doesn&amp;#39;t run Doom though... but it runs the spectrum analyzer.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While perhaps not as famous as running Doom, a real-time audio analyser is arguably more useful for a device designed to monitor activity in an office environment.&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl5b"&gt;Future Development&lt;/h2&gt;
&lt;p&gt;Although fully functional, the project clearly has room to grow.&lt;/p&gt;
&lt;p&gt;Several future directions were identified during development:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Wi-Fi connected features&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Internet radio functionality&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Additional audio behaviours&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Expanded environmental responses&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New display modes&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Further personality-driven interactions&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The ESP32 platform provides ample opportunity for these additions without requiring major hardware redesign.&lt;/p&gt;
&lt;p&gt;Because the hardware already includes networking capability, microphone input, audio output, sensing hardware, and a display, much of the infrastructure required for future features is already in place. What began as a playful desktop companion evolved into a surprisingly capable embedded systems project. By combining environmental sensing, digital audio, display graphics, fog generation, and custom hardware design, Mark created something that feels much more interactive than a typical desk ornament. Equally valuable is the transparency shown throughout the build. Design mistakes, assembly challenges, packaging constraints, and debugging setbacks are all part of the story. Those lessons provide useful guidance for anyone planning to recreate or extend the project.&lt;/p&gt;
&lt;p&gt;The animated eye gives the minion character, the audio processing provides responsiveness, and the fog generator adds an unexpected physical element that makes the device stand out from conventional ESP32 projects.&lt;/p&gt;
&lt;p&gt;Most importantly, it succeeds at its original goal: creating something fun that sits on a desk, reacts to its surroundings, and occasionally reminds noisy colleagues to keep the volume down.&lt;/p&gt;
&lt;h2 id="mcetoc_1jqrchlj01"&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/151428"&gt;Episode 718 Resources - Creating a Multi-Function ESP32 Desk Pet with Custom PCB and Audio Processing&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jqrcig963"&gt;Bill of Materials / Products 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-6d7c1" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9730940~5,9666222,2839850,2326018,2326021~2,9227881,3019949~2,9846310,9845348,2073612~3,9352651,9333711,2073784,2073608,2533101,3121992,9730940~2,4662064&amp;nsku=26M6335~5,88H4760,49AC0350,39AM8620,85Y4611~2,96K8339,68R4910~2,58K8841,58K1462,86T3742~3,62J1280,39K0329,86T3897,86T3738,74AC2602,33AH4037,26M6335~2,15J5302&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('6d7c1'));" data-farnell="9730940~5,9666222,2839850,2326018,2326021~2,9227881,3019949~2,9846310,9845348,2073612~3,9352651,9333711,2073784,2073608,2533101,3121992,9730940~2,4662064" data-newark="26M6335~5,88H4760,49AC0350,39AM8620,85Y4611~2,96K8339,68R4910~2,58K8841,58K1462,86T3742~3,62J1280,39K0329,86T3897,86T3738,74AC2602,33AH4037,26M6335~2,15J5302" data-comoverride="" data-cmpoverride="" data-cpc="undefined~5,,,,undefined~2,,undefined~2,,,undefined~3,,,,,,,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;MOLEX Pin Header, Wire-to-Board, 2.5 mm, 1 Rows, 2 Contacts, Through Hole Straight, KK 5045&lt;/td&gt;
&lt;td&gt;Molex&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-ff9f0" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9730940~5&amp;nsku=26M6335~5&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('ff9f0'));" data-farnell="9730940~5" data-newark="26M6335~5" data-comoverride="" data-cmpoverride="" data-cpc="undefined~5" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ONSEMI Linear Voltage Regulator, 7808, Fixed, Positive, 10V To 35V In, 8V/1A Out, TO-220-3&lt;/td&gt;
&lt;td&gt;Onsemi&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-5ba4b" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9666222&amp;nsku=88H4760&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('5ba4b'));" data-farnell="9666222" data-newark="88H4760" 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;KYCON DC Power Connector, Jack, 3.5 A, 2 mm, PCB Mount, Through Hole&lt;/td&gt;
&lt;td&gt;KYCON&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-2ed77" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2839850&amp;nsku=49AC0350&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('2ed77'));" data-farnell="2839850" data-newark="49AC0350" 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;10u FECEA1EN100U&lt;/td&gt;
&lt;td&gt;Panasonic&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-9041a" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2326018&amp;nsku=39AM8620&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('9041a'));" data-farnell="2326018" data-newark="39AM8620" 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;22uF ECEA1EN220X&lt;/td&gt;
&lt;td&gt;Panasonic&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-1814b" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2326021~2&amp;nsku=85Y4611~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('1814b'));" data-farnell="2326021~2" data-newark="85Y4611~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;10uF CL31A106KBHNNNE&lt;/td&gt;
&lt;td&gt;SAMSUNG&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-98270" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9227881&amp;nsku=96K8339&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('98270'));" data-farnell="9227881" data-newark="96K8339" 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;100nF CC0805KRX7R9BB104&lt;/td&gt;
&lt;td&gt;YAGEO(国巨)&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-f3997" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3019949~2&amp;nsku=68R4910~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('f3997'));" data-farnell="3019949~2" data-newark="68R4910~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;FDN340P FDN340P&lt;/td&gt;
&lt;td&gt;TECH PUBLIC(台舟)&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-83581" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9846310&amp;nsku=58K8841&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('83581'));" data-farnell="9846310" data-newark="58K8841" 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;FDN335N FDN335N&lt;/td&gt;
&lt;td&gt;HUASHUO&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-e3d06" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9845348&amp;nsku=58K1462&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('e3d06'));" data-farnell="9845348" data-newark="58K1462" 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;10K 0805W8F1002T5E&lt;/td&gt;
&lt;td&gt;UniOhm&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-7c977" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2073612~3&amp;nsku=86T3742~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('7c977'));" data-farnell="2073612~3" data-newark="86T3742~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;10k&amp;Omega; 3266W-1-103LF&lt;/td&gt;
&lt;td&gt;BOURNS&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-40d54" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9352651&amp;nsku=62J1280&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('40d54'));" data-farnell="9352651" data-newark="62J1280" 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;1K 0805W8F1001T5E&lt;/td&gt;
&lt;td&gt;UniOhm&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-c1534" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9333711&amp;nsku=39K0329&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('c1534'));" data-farnell="9333711" data-newark="39K0329" 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;4.7k&amp;Omega; 0805W8F4701T5E&lt;/td&gt;
&lt;td&gt;UNI-ROYAL(厚声)&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-ddba5" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2073784&amp;nsku=86T3897&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('ddba5'));" data-farnell="2073784" data-newark="86T3897" 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;100k&amp;Omega; 0805W8F1003T5E&lt;/td&gt;
&lt;td&gt;UNI-ROYAL(厚声)&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-e7328" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2073608&amp;nsku=86T3738&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('e7328'));" data-farnell="2073608" data-newark="86T3738" 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;2-1825910-7&lt;/td&gt;
&lt;td&gt;TE&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-37c23" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=2533101&amp;nsku=74AC2602&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('37c23'));" data-farnell="2533101" data-newark="74AC2602" 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;LM1085IT-5.0/NOPB LM1084T-5.0&lt;/td&gt;
&lt;td&gt;HGSEMI(华冠)&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-a24c4" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3121992&amp;nsku=33AH4037&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('a24c4'));" data-farnell="3121992" data-newark="33AH4037" 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;22041021 22041021&lt;/td&gt;
&lt;td&gt;MOLEX&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-935c1" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=9730940~2&amp;nsku=26M6335~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('935c1'));" data-farnell="9730940~2" data-newark="26M6335~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;VISATON Speaker, Mini, 2 &amp;quot;, 500 mW, 8 ohm, 83 dB, 250 Hz to 10000 Hz&lt;/td&gt;
&lt;td&gt;Visaton&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-25a51" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4662064&amp;nsku=15J5302&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('25a51'));" data-farnell="4662064" data-newark="15J5302" 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;Manufacturer&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LCD display&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;lens OD43 ID37 H14.5 E2.5&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;I2s Audio Board&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;ESP32 Devkit V1.0&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;Power adapter 12V / 1A&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;Humidifier Kit&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;DHT11 Hum Sensor&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;INMP441-MEMS-I2S-MIC-MODULE&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;GL5516 GL5516 LDR&lt;/td&gt;
&lt;td&gt;gepyun&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: ESP32 audio project, MEMS microphone project, ESP32 display project, DIY electronics project, esp32 project, spectrum analyser esp32, ESP32 maker project, electronic desk toy, animated eye display, desk pet, humidity sensor project, ultrasonic humidifier project, Custom PCB design, friday_release, desktop companion, smart desk gadget&lt;/div&gt;
</description></item><item><title>Creating a Multi-Function ESP32 Desk Pet with Custom PCB and Audio Processing</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72069/creating-a-multi-function-esp32-desk-pet-with-custom-pcb-and-audio-processing/revision/4</link><pubDate>Thu, 11 Jun 2026 12:43:24 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:2868f4c0-73f3-4540-a1bf-de624fa66454</guid><dc:creator>cstanton</dc:creator><comments>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72069/creating-a-multi-function-esp32-desk-pet-with-custom-pcb-and-audio-processing#comments</comments><description>Revision 4 posted to Documents by cstanton on 6/11/2026 12:43:24 PM&lt;br /&gt;
&lt;p&gt;Mark builds a desktop minion powered by an ESP32 that combines an animated eye display, temperature and humidity monitoring, audio playback, microphone input, a real-time spectrum analyser, and even a fog-generating humidifier. Along the way he designs a custom PCB, works through a hardware design issue, assembles the electronics, and brings the project to life with plenty of personality. Follow the build to see how the hardware, firmware, and enclosure come together to create a desk companion that watches, listens, reacts&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6nn2jd"&gt;Who Watches the Makers? Watch Now:&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://youtu.be/8J4jxaSzVtg"&gt;https://youtu.be/8J4jxaSzVtg&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Mark set out to create something that sits somewhere between a desk companion, environmental monitor, and electronic novelty. The result is what he calls a &amp;quot;Desk Pet Minion&amp;quot; a desktop gadget built around an ESP32 that watches the room through an animated eye, measures environmental conditions, listens for noise, produces sound effects, and even emits fog to express its displeasure.&lt;/p&gt;
&lt;p&gt;What started as a fun desk ornament quickly became a surprisingly feature-rich embedded project. Along the way, Mark designed custom hardware, assembled a dedicated PCB, integrated multiple sensors and peripherals, and worked through a significant hardware design issue that required an unexpected mid-build correction.&lt;/p&gt;
&lt;p&gt;The finished device combines environmental sensing, audio processing, display graphics, and fog generation into a single desktop companion with plenty of room for future expansion.&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl50"&gt;The Concept&lt;/h2&gt;
&lt;p&gt;At its core, the project is designed to bring a little personality to the workspace.&lt;/p&gt;
&lt;p&gt;The animated eye continuously moves and watches its surroundings, giving the impression that the device is paying attention to activity around the desk. Combined with environmental sensing and sound detection, the minion becomes more than a static display piece.&lt;/p&gt;
&lt;p&gt;As Mark explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;It displays that well, mimic eye movement so it can stare at you while you&amp;#39;re sitting at your desk.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The eye is only part of the personality. A built-in humidifier creates visible fog effects, allowing the minion to react to events and express different moods. Loud noises in the office can trigger both sound and smoke effects, turning the device into a humorous commentary on workplace volume levels.&lt;/p&gt;
&lt;p&gt;The project also includes temperature and humidity monitoring, audio playback capabilities, microphone input, and a display mode that functions as a real-time spectrum analyser.&lt;/p&gt;
&lt;p&gt;Future expansion was also part of the design from the beginning.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;In the future I might even update it to function as a radio because I&amp;#39;m using an ESP32 and it has onboard Wi-Fi.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That choice of microcontroller leaves plenty of processing power and connectivity available for additional features.&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl51"&gt;System Architecture&lt;/h2&gt;
&lt;p&gt;The ESP32 serves as the centre of the entire design, coordinating every subsystem.&lt;/p&gt;
&lt;p&gt;Mark&amp;#39;s schematic brings together several different hardware functions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;ESP32 microcontroller&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;TFT display for eye animation and status screens&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;DHT11 temperature and humidity sensor&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Light-dependent resistor (LDR)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I2S MEMS microphone&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I2S audio output board&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Speaker&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Humidifier module&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Push-button user interface&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Volume adjustment potentiometer&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Power regulation circuitry&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One particularly useful feature is the inclusion of ambient light detection. The LDR allows the device to respond to environmental changes.&lt;/p&gt;
&lt;p&gt;As Mark describes it:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I can use that to detect whenever somebody enters the office in the morning and turns on the light.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The push button provides a simple interface for switching between display modes, allowing the animated eye to give way to environmental information when required.&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl52"&gt;Custom PCB Design&lt;/h2&gt;
&lt;p&gt;Rather than wiring everything together on perfboard, Mark designed a dedicated PCB specifically for the enclosure.&lt;/p&gt;
&lt;p&gt;The custom board serves several purposes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Reduces wiring complexity&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improves assembly&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ensures all components fit inside the minion housing&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Provides dedicated connections for audio, sensing, and display hardware&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Creates a cleaner final installation&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The PCB accommodates the ESP32 module, display, microphone, humidity sensor, audio circuitry, power distribution, and humidifier control circuitry.&lt;/p&gt;
&lt;p&gt;A dedicated switching circuit drives the humidifier assembly, allowing the ESP32 to enable or disable fog generation under software control.&lt;/p&gt;
&lt;p&gt;The humidifier itself consists of a commercially available ultrasonic fog generator module paired with a small water reservoir. A test tube serves as the water container and fits neatly into the enclosure.&lt;/p&gt;
&lt;p&gt;The arrangement provides a simple and effective way of generating visible fog without requiring any custom ultrasonic hardware design.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl53"&gt;Hardware Assembly&lt;/h2&gt;
&lt;p&gt;Assembly began with the surface-mount components.&lt;/p&gt;
&lt;p&gt;Working without solder paste or a reflow setup, Mark manually tinned pads before placing and soldering components individually.&lt;/p&gt;
&lt;p&gt;After completing the surface-mount work, he inspected the board and moved on to the through-hole components.&lt;/p&gt;
&lt;p&gt;Like many prototype builds, the finished PCB wasn&amp;#39;t cosmetically perfect, but functionally sound.&lt;/p&gt;
&lt;p&gt;Mark notes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;In general when you look closer to this, the soldering looks kind of messy but for prototype it&amp;#39;s okay.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;He also points out that a quick pass with flux and cleaning solvent would significantly improve the appearance if desired.&lt;/p&gt;
&lt;p&gt;Several mechanical decisions were made during assembly to ensure components aligned correctly with openings in the enclosure. The microphone position required particular attention because of the distance between the PCB and the front housing.&lt;/p&gt;
&lt;p&gt;The humidity sensor was removed from its original breakout board and mounted directly onto the custom PCB, helping reduce space requirements inside the enclosure.&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl54"&gt;A Design Flaw Appears&lt;/h2&gt;
&lt;p&gt;One of the most useful parts of the build was seeing how Mark handled an unexpected hardware problem. During test fitting he discovered that the display footprint obtained from a standard library had been defined incorrectly.&lt;/p&gt;
&lt;p&gt;The display connector arrangement was effectively mirrored, meaning the screen could not be mounted in the intended orientation. As he explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I actually discovered a huge design flaw.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The problem wasn&amp;#39;t with the display itself but with the PCB footprint definition. To keep the project moving, Mark physically reversed the assembly orientation and rearranged component placement.&lt;/p&gt;
&lt;p&gt;The workaround allowed the prototype to function, but it created new packaging constraints inside the enclosure.&lt;/p&gt;
&lt;p&gt;Rather than simply accepting the issue, Mark documented the problem and committed to correcting the design files.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;If you&amp;#39;re rebuilding this I will make sure the PCB layout has been corrected.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This kind of design review and iteration is a normal part of hardware development, and documenting these mistakes is often more valuable than hiding them.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl55"&gt;Audio Hardware and Signal Processing&lt;/h2&gt;
&lt;p&gt;Audio is one of the more sophisticated aspects of the project.&lt;/p&gt;
&lt;p&gt;The ESP32 interfaces with both an I2S microphone and an I2S audio output stage. Using I2S rather than analogue audio provides a cleaner signal path and simplifies digital processing.&lt;/p&gt;
&lt;p&gt;The firmware configuration reveals the audio architecture:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;INMP441 MEMS microphone input&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I2S digital audio interface&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dedicated speaker output&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Real-time frequency analysis&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Volume control support&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The software defines 32 frequency bands for spectrum analysis and includes a detailed cutoff table that spans frequencies from approximately 45 Hz to 17.5 kHz.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;float FreqBins[32];
int numBands=32;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The project also includes configurable noise thresholds and gain control behaviour.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;int NoiseTresshold = 2000;
#define GAIN_DAMPEN 2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Frequency band boundaries are carefully distributed across the audible spectrum.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;45, 90, 130, 180,
...
16500, 17000, 17500
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This allows the ESP32 to visualise incoming audio as a spectrum display while simultaneously using microphone data as a trigger source for behavioural responses.&lt;/p&gt;
&lt;p&gt;The result is a surprisingly capable audio subsystem for what initially appears to be a novelty desk gadget.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl56"&gt;Environmental Monitoring&lt;/h2&gt;
&lt;p&gt;Environmental sensing is handled using a DHT11 temperature and humidity sensor.&lt;/p&gt;
&lt;p&gt;The firmware configuration shows the sensor connected directly to the ESP32:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;#define DHTPIN 16
#define DHTTYPE DHT11
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The device can display:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Temperature&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Relative humidity&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Humidity index information&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These values can be accessed through the display interface, allowing the minion to double as a desktop environmental monitor.&lt;/p&gt;
&lt;p&gt;Combined with the LDR input, the system gains awareness of both ambient lighting conditions and room climate.&lt;/p&gt;
&lt;h2&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1jqr6mrl57"&gt;The Animated Eye&lt;/h2&gt;
&lt;p&gt;Perhaps the most distinctive feature of the project is the animated eye.&lt;/p&gt;
&lt;p&gt;The display uses graphics assets derived from a large eye-rendering system and is configured to use a 240 &amp;times; 240 pixel display.&lt;/p&gt;
&lt;p&gt;The firmware enables both tracking and autonomous blinking behaviour.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;#define TRACKING
#define AUTOBLINK
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Additional eye behaviour includes dynamic iris adjustment based on ambient light levels.&lt;/p&gt;
&lt;p&gt;The software contains configurable parameters for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Iris size&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Light response curves&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ambient light limits&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Eyelid tracking&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Autonomous blinking&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Together these features create a display that feels surprisingly alive despite being driven by relatively modest hardware.&lt;/p&gt;
&lt;p&gt;Rather than functioning as a simple animation loop, the eye reacts to changing environmental conditions and continuously varies its appearance. Once assembly was complete, the firmware was loaded using a browser-based installation process,&amp;nbsp;the project supports direct USB programming through a web interface. This approach lowers the barrier for anyone wanting to reproduce the build. More advanced users can still modify the source code, rebuild the firmware, and upload their own versions, but newcomers can simply connect the hardware and install the firmware directly.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl59"&gt;Smoke, Sound and Personality&lt;/h2&gt;
&lt;p&gt;The most entertaining behaviour appears once everything is assembled. The ultrasonic humidifier produces visible fog while the eye tracks movement and the microphone listens to the environment. At its current stage, excessive noise acts as a trigger condition. As Mark describes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;If your colleagues are too loud in your office then this device will basically say &amp;#39;Psh&amp;#39;.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The combination of sound effects and fog generation gives the minion a surprisingly expressive personality.&lt;/p&gt;
&lt;p&gt;Of course, the development process wasn&amp;#39;t entirely smoke-free. During testing, an accidental short circuit generated some very real smoke from the electronics.&lt;/p&gt;
&lt;p&gt;Mark jokes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I might have jinxed it a bit by trying to add artificial smoke.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Fortunately the issue was corrected and the project survived to reach its final form. Beyond environmental monitoring and animated eye graphics, the display can also switch into a spectrum analyser. This mode makes direct use of the I2S microphone and frequency processing code to create a visual representation of incoming audio.&lt;/p&gt;
&lt;p&gt;When demonstrating the feature, Mark jokingly asks:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Will it run Doom?&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;His answer:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;It doesn&amp;#39;t run Doom though... but it runs the spectrum analyzer.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While perhaps not as famous as running Doom, a real-time audio analyser is arguably more useful for a device designed to monitor activity in an office environment.&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl5b"&gt;Future Development&lt;/h2&gt;
&lt;p&gt;Although fully functional, the project clearly has room to grow.&lt;/p&gt;
&lt;p&gt;Several future directions were identified during development:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Wi-Fi connected features&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Internet radio functionality&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Additional audio behaviours&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Expanded environmental responses&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New display modes&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Further personality-driven interactions&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The ESP32 platform provides ample opportunity for these additions without requiring major hardware redesign.&lt;/p&gt;
&lt;p&gt;Because the hardware already includes networking capability, microphone input, audio output, sensing hardware, and a display, much of the infrastructure required for future features is already in place. What began as a playful desktop companion evolved into a surprisingly capable embedded systems project. By combining environmental sensing, digital audio, display graphics, fog generation, and custom hardware design, Mark created something that feels much more interactive than a typical desk ornament. Equally valuable is the transparency shown throughout the build. Design mistakes, assembly challenges, packaging constraints, and debugging setbacks are all part of the story. Those lessons provide useful guidance for anyone planning to recreate or extend the project.&lt;/p&gt;
&lt;p&gt;The animated eye gives the minion character, the audio processing provides responsiveness, and the fog generator adds an unexpected physical element that makes the device stand out from conventional ESP32 projects.&lt;/p&gt;
&lt;p&gt;Most importantly, it succeeds at its original goal: creating something fun that sits on a desk, reacts to its surroundings, and occasionally reminds noisy colleagues to keep the volume down.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: ESP32 audio project, MEMS microphone project, ESP32 display project, DIY electronics project, esp32 project, spectrum analyser esp32, ESP32 maker project, electronic desk toy, animated eye display, desk pet, humidity sensor project, ultrasonic humidifier project, Custom PCB design, friday_release, desktop companion, smart desk gadget&lt;/div&gt;
</description></item><item><title>Creating a Multi-Function ESP32 Desk Pet with Custom PCB and Audio Processing</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72069/creating-a-multi-function-esp32-desk-pet-with-custom-pcb-and-audio-processing/revision/3</link><pubDate>Thu, 11 Jun 2026 11:23:04 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:2868f4c0-73f3-4540-a1bf-de624fa66454</guid><dc:creator>cstanton</dc:creator><comments>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72069/creating-a-multi-function-esp32-desk-pet-with-custom-pcb-and-audio-processing#comments</comments><description>Revision 3 posted to Documents by cstanton on 6/11/2026 11:23:04 AM&lt;br /&gt;
&lt;p&gt;Mark builds a desktop minion powered by an ESP32 that combines an animated eye display, temperature and humidity monitoring, audio playback, microphone input, a real-time spectrum analyser, and even a fog-generating humidifier. Along the way he designs a custom PCB, works through a hardware design issue, assembles the electronics, and brings the project to life with plenty of personality. Follow the build to see how the hardware, firmware, and enclosure come together to create a desk companion that watches, listens, reacts&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6nn2jd"&gt;Who Watches the Makers? Watch Now:&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://youtu.be/8J4jxaSzVtg"&gt;https://youtu.be/8J4jxaSzVtg&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Mark set out to create something that sits somewhere between a desk companion, environmental monitor, and electronic novelty. The result is what he calls a &amp;quot;Desk Pet Minion&amp;quot; &amp;mdash; a desktop gadget built around an ESP32 that watches the room through an animated eye, measures environmental conditions, listens for noise, produces sound effects, and even emits fog to express its displeasure.&lt;/p&gt;
&lt;p&gt;What started as a fun desk ornament quickly became a surprisingly feature-rich embedded project. Along the way, Mark designed custom hardware, assembled a dedicated PCB, integrated multiple sensors and peripherals, and worked through a significant hardware design issue that required an unexpected mid-build correction.&lt;/p&gt;
&lt;p&gt;The finished device combines environmental sensing, audio processing, display graphics, and fog generation into a single desktop companion with plenty of room for future expansion.&lt;/p&gt;
&lt;h2 id="mcetoc_1jqr6mrl50"&gt;The Concept&lt;/h2&gt;
&lt;p&gt;At its core, the project is designed to bring a little personality to the workspace.&lt;/p&gt;
&lt;p&gt;The animated eye continuously moves and watches its surroundings, giving the impression that the device is paying attention to activity around the desk. Combined with environmental sensing and sound detection, the minion becomes more than a static display piece.&lt;/p&gt;
&lt;p&gt;As Mark explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;It displays that well, mimic eye movement so it can stare at you while you&amp;#39;re sitting at your desk.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The eye is only part of the personality. A built-in humidifier creates visible fog effects, allowing the minion to react to events and express different moods. Loud noises in the office can trigger both sound and smoke effects, turning the device into a humorous commentary on workplace volume levels.&lt;/p&gt;
&lt;p&gt;The project also includes temperature and humidity monitoring, audio playback capabilities, microphone input, and a display mode that functions as a real-time spectrum analyser.&lt;/p&gt;
&lt;p&gt;Future expansion was also part of the design from the beginning.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;In the future I might even update it to function as a radio because I&amp;#39;m using an ESP32 and it has onboard Wi-Fi.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That choice of microcontroller leaves plenty of processing power and connectivity available for additional features.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id="mcetoc_1jqr6mrl51"&gt;System Architecture&lt;/h2&gt;
&lt;p&gt;The ESP32 serves as the centre of the entire design, coordinating every subsystem.&lt;/p&gt;
&lt;p&gt;Mark&amp;#39;s schematic brings together several different hardware functions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;ESP32 microcontroller&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;TFT display for eye animation and status screens&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;DHT11 temperature and humidity sensor&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Light-dependent resistor (LDR)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I2S MEMS microphone&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I2S audio output board&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Speaker&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Humidifier module&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Push-button user interface&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Volume adjustment potentiometer&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Power regulation circuitry&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One particularly useful feature is the inclusion of ambient light detection. The LDR allows the device to respond to environmental changes.&lt;/p&gt;
&lt;p&gt;As Mark describes it:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I can use that to detect whenever somebody enters the office in the morning and turns on the light.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The push button provides a simple interface for switching between display modes, allowing the animated eye to give way to environmental information when required.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id="mcetoc_1jqr6mrl52"&gt;Custom PCB Design&lt;/h2&gt;
&lt;p&gt;Rather than wiring everything together on perfboard, Mark designed a dedicated PCB specifically for the enclosure.&lt;/p&gt;
&lt;p&gt;The custom board serves several purposes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Reduces wiring complexity&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improves assembly&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ensures all components fit inside the minion housing&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Provides dedicated connections for audio, sensing, and display hardware&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Creates a cleaner final installation&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The PCB accommodates the ESP32 module, display, microphone, humidity sensor, audio circuitry, power distribution, and humidifier control circuitry.&lt;/p&gt;
&lt;p&gt;A dedicated switching circuit drives the humidifier assembly, allowing the ESP32 to enable or disable fog generation under software control.&lt;/p&gt;
&lt;p&gt;The humidifier itself consists of a commercially available ultrasonic fog generator module paired with a small water reservoir. A test tube serves as the water container and fits neatly into the enclosure.&lt;/p&gt;
&lt;p&gt;The arrangement provides a simple and effective way of generating visible fog without requiring any custom ultrasonic hardware design.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id="mcetoc_1jqr6mrl53"&gt;Hardware Assembly&lt;/h2&gt;
&lt;p&gt;Assembly began with the surface-mount components.&lt;/p&gt;
&lt;p&gt;Working without solder paste or a reflow setup, Mark manually tinned pads before placing and soldering components individually.&lt;/p&gt;
&lt;p&gt;After completing the surface-mount work, he inspected the board and moved on to the through-hole components.&lt;/p&gt;
&lt;p&gt;Like many prototype builds, the finished PCB wasn&amp;#39;t cosmetically perfect, but functionally sound.&lt;/p&gt;
&lt;p&gt;Mark notes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;In general when you look closer to this, the soldering looks kind of messy but for prototype it&amp;#39;s okay.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;He also points out that a quick pass with flux and cleaning solvent would significantly improve the appearance if desired.&lt;/p&gt;
&lt;p&gt;Several mechanical decisions were made during assembly to ensure components aligned correctly with openings in the enclosure. The microphone position required particular attention because of the distance between the PCB and the front housing.&lt;/p&gt;
&lt;p&gt;The humidity sensor was removed from its original breakout board and mounted directly onto the custom PCB, helping reduce space requirements inside the enclosure.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id="mcetoc_1jqr6mrl54"&gt;A Design Flaw Appears&lt;/h2&gt;
&lt;p&gt;One of the most useful parts of the build was seeing how Mark handled an unexpected hardware problem.&lt;/p&gt;
&lt;p&gt;During test fitting he discovered that the display footprint obtained from a standard library had been defined incorrectly.&lt;/p&gt;
&lt;p&gt;The display connector arrangement was effectively mirrored, meaning the screen could not be mounted in the intended orientation.&lt;/p&gt;
&lt;p&gt;As he explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I actually discovered a huge design flaw.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The problem wasn&amp;#39;t with the display itself but with the PCB footprint definition. To keep the project moving, Mark physically reversed the assembly orientation and rearranged component placement.&lt;/p&gt;
&lt;p&gt;The workaround allowed the prototype to function, but it created new packaging constraints inside the enclosure.&lt;/p&gt;
&lt;p&gt;Rather than simply accepting the issue, Mark documented the problem and committed to correcting the design files.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;If you&amp;#39;re rebuilding this I will make sure the PCB layout has been corrected.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This kind of design review and iteration is a normal part of hardware development, and documenting these mistakes is often more valuable than hiding them.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id="mcetoc_1jqr6mrl55"&gt;Audio Hardware and Signal Processing&lt;/h2&gt;
&lt;p&gt;Audio is one of the more sophisticated aspects of the project.&lt;/p&gt;
&lt;p&gt;The ESP32 interfaces with both an I2S microphone and an I2S audio output stage. Using I2S rather than analogue audio provides a cleaner signal path and simplifies digital processing.&lt;/p&gt;
&lt;p&gt;The firmware configuration reveals the audio architecture:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;INMP441 MEMS microphone input&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I2S digital audio interface&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dedicated speaker output&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Real-time frequency analysis&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Volume control support&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The software defines 32 frequency bands for spectrum analysis and includes a detailed cutoff table that spans frequencies from approximately 45 Hz to 17.5 kHz.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;float FreqBins[32];
int numBands=32;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The project also includes configurable noise thresholds and gain control behaviour.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;int NoiseTresshold = 2000;
#define GAIN_DAMPEN 2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Frequency band boundaries are carefully distributed across the audible spectrum.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;45, 90, 130, 180,
...
16500, 17000, 17500
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This allows the ESP32 to visualise incoming audio as a spectrum display while simultaneously using microphone data as a trigger source for behavioural responses.&lt;/p&gt;
&lt;p&gt;The result is a surprisingly capable audio subsystem for what initially appears to be a novelty desk gadget.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id="mcetoc_1jqr6mrl56"&gt;Environmental Monitoring&lt;/h2&gt;
&lt;p&gt;Environmental sensing is handled using a DHT11 temperature and humidity sensor.&lt;/p&gt;
&lt;p&gt;The firmware configuration shows the sensor connected directly to the ESP32:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;#define DHTPIN 16
#define DHTTYPE DHT11
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The device can display:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Temperature&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Relative humidity&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Humidity index information&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These values can be accessed through the display interface, allowing the minion to double as a desktop environmental monitor.&lt;/p&gt;
&lt;p&gt;Combined with the LDR input, the system gains awareness of both ambient lighting conditions and room climate.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id="mcetoc_1jqr6mrl57"&gt;The Animated Eye&lt;/h2&gt;
&lt;p&gt;Perhaps the most distinctive feature of the project is the animated eye.&lt;/p&gt;
&lt;p&gt;The display uses graphics assets derived from a large eye-rendering system and is configured to use a 240 &amp;times; 240 pixel display.&lt;/p&gt;
&lt;p&gt;The firmware enables both tracking and autonomous blinking behaviour.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;#define TRACKING
#define AUTOBLINK
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Additional eye behaviour includes dynamic iris adjustment based on ambient light levels.&lt;/p&gt;
&lt;p&gt;The software contains configurable parameters for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Iris size&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Light response curves&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ambient light limits&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Eyelid tracking&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Autonomous blinking&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Together these features create a display that feels surprisingly alive despite being driven by relatively modest hardware.&lt;/p&gt;
&lt;p&gt;Rather than functioning as a simple animation loop, the eye reacts to changing environmental conditions and continuously varies its appearance.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id="mcetoc_1jqr6mrl58"&gt;Programming the Device&lt;/h2&gt;
&lt;p&gt;Once assembly was complete, the firmware was loaded using a browser-based installation process.&lt;/p&gt;
&lt;p&gt;Rather than requiring users to install a full development environment, the project supports direct USB programming through a web interface.&lt;/p&gt;
&lt;p&gt;This approach lowers the barrier for anyone wanting to reproduce the build.&lt;/p&gt;
&lt;p&gt;More advanced users can still modify the source code, rebuild the firmware, and upload their own versions, but newcomers can simply connect the hardware and install the firmware directly.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id="mcetoc_1jqr6mrl59"&gt;Smoke, Sound and Personality&lt;/h2&gt;
&lt;p&gt;The most entertaining behaviour appears once everything is assembled.&lt;/p&gt;
&lt;p&gt;The ultrasonic humidifier produces visible fog while the eye tracks movement and the microphone listens to the environment.&lt;/p&gt;
&lt;p&gt;At its current stage, excessive noise acts as a trigger condition.&lt;/p&gt;
&lt;p&gt;As Mark describes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;If your colleagues are too loud in your office then this device will basically say &amp;#39;Psh&amp;#39;.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The combination of sound effects and fog generation gives the minion a surprisingly expressive personality.&lt;/p&gt;
&lt;p&gt;Of course, the development process wasn&amp;#39;t entirely smoke-free.&lt;/p&gt;
&lt;p&gt;During testing, an accidental short circuit generated some very real smoke from the electronics.&lt;/p&gt;
&lt;p&gt;Mark jokes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I might have jinxed it a bit by trying to add artificial smoke.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Fortunately the issue was corrected and the project survived to reach its final form.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id="mcetoc_1jqr6mrl5a"&gt;Spectrum Analyser Mode&lt;/h2&gt;
&lt;p&gt;Beyond environmental monitoring and animated eye graphics, the display can also switch into a spectrum analyser.&lt;/p&gt;
&lt;p&gt;This mode makes direct use of the I2S microphone and frequency processing code to create a visual representation of incoming audio.&lt;/p&gt;
&lt;p&gt;When demonstrating the feature, Mark jokingly asks:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Will it run Doom?&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;His answer:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;It doesn&amp;#39;t run Doom though... but it runs the spectrum analyzer.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While perhaps not as famous as running Doom, a real-time audio analyser is arguably more useful for a device designed to monitor activity in an office environment.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id="mcetoc_1jqr6mrl5b"&gt;Future Development&lt;/h2&gt;
&lt;p&gt;Although fully functional, the project clearly has room to grow.&lt;/p&gt;
&lt;p&gt;Several future directions were identified during development:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Wi-Fi connected features&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Internet radio functionality&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Additional audio behaviours&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Expanded environmental responses&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New display modes&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Further personality-driven interactions&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The ESP32 platform provides ample opportunity for these additions without requiring major hardware redesign.&lt;/p&gt;
&lt;p&gt;Because the hardware already includes networking capability, microphone input, audio output, sensing hardware, and a display, much of the infrastructure required for future features is already in place.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id="mcetoc_1jqr6mrl5c"&gt;Final Thoughts&lt;/h2&gt;
&lt;p&gt;What began as a playful desktop companion evolved into a surprisingly capable embedded systems project.&lt;/p&gt;
&lt;p&gt;By combining environmental sensing, digital audio, display graphics, fog generation, and custom hardware design, Mark created something that feels much more interactive than a typical desk ornament.&lt;/p&gt;
&lt;p&gt;Equally valuable is the transparency shown throughout the build. Design mistakes, assembly challenges, packaging constraints, and debugging setbacks are all part of the story. Those lessons provide useful guidance for anyone planning to recreate or extend the project.&lt;/p&gt;
&lt;p&gt;The animated eye gives the minion character, the audio processing provides responsiveness, and the fog generator adds an unexpected physical element that makes the device stand out from conventional ESP32 projects.&lt;/p&gt;
&lt;p&gt;Most importantly, it succeeds at its original goal: creating something fun that sits on a desk, reacts to its surroundings, and occasionally reminds noisy colleagues to keep the volume down.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Creating a Multi-Function ESP32 Desk Pet with Custom PCB and Audio Processing</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72069/creating-a-multi-function-esp32-desk-pet-with-custom-pcb-and-audio-processing/revision/2</link><pubDate>Thu, 11 Jun 2026 09:13:38 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:2868f4c0-73f3-4540-a1bf-de624fa66454</guid><dc:creator>cstanton</dc:creator><comments>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72069/creating-a-multi-function-esp32-desk-pet-with-custom-pcb-and-audio-processing#comments</comments><description>Revision 2 posted to Documents by cstanton on 6/11/2026 9:13:38 AM&lt;br /&gt;
&lt;p&gt;Mark set out to create something that sits somewhere between a desk companion, environmental monitor, and electronic novelty. The result is what he calls a &amp;quot;Desk Pet Minion&amp;quot; &amp;mdash; a desktop gadget built around an ESP32 that watches the room through an animated eye, measures environmental conditions, listens for noise, produces sound effects, and even emits fog to express its displeasure.&lt;/p&gt;
&lt;p&gt;What started as a fun desk ornament quickly became a surprisingly feature-rich embedded project. Along the way, Mark designed custom hardware, assembled a dedicated PCB, integrated multiple sensors and peripherals, and worked through a significant hardware design issue that required an unexpected mid-build correction.&lt;/p&gt;
&lt;p&gt;The finished device combines environmental sensing, audio processing, display graphics, and fog generation into a single desktop companion with plenty of room for future expansion.&lt;/p&gt;
&lt;h2&gt;The Concept&lt;/h2&gt;
&lt;p&gt;At its core, the project is designed to bring a little personality to the workspace.&lt;/p&gt;
&lt;p&gt;The animated eye continuously moves and watches its surroundings, giving the impression that the device is paying attention to activity around the desk. Combined with environmental sensing and sound detection, the minion becomes more than a static display piece.&lt;/p&gt;
&lt;p&gt;As Mark explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;It displays that well, mimic eye movement so it can stare at you while you&amp;#39;re sitting at your desk.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The eye is only part of the personality. A built-in humidifier creates visible fog effects, allowing the minion to react to events and express different moods. Loud noises in the office can trigger both sound and smoke effects, turning the device into a humorous commentary on workplace volume levels.&lt;/p&gt;
&lt;p&gt;The project also includes temperature and humidity monitoring, audio playback capabilities, microphone input, and a display mode that functions as a real-time spectrum analyser.&lt;/p&gt;
&lt;p&gt;Future expansion was also part of the design from the beginning.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;In the future I might even update it to function as a radio because I&amp;#39;m using an ESP32 and it has onboard Wi-Fi.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That choice of microcontroller leaves plenty of processing power and connectivity available for additional features.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;System Architecture&lt;/h2&gt;
&lt;p&gt;The ESP32 serves as the centre of the entire design, coordinating every subsystem.&lt;/p&gt;
&lt;p&gt;Mark&amp;#39;s schematic brings together several different hardware functions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;ESP32 microcontroller&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;TFT display for eye animation and status screens&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;DHT11 temperature and humidity sensor&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Light-dependent resistor (LDR)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I2S MEMS microphone&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I2S audio output board&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Speaker&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Humidifier module&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Push-button user interface&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Volume adjustment potentiometer&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Power regulation circuitry&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One particularly useful feature is the inclusion of ambient light detection. The LDR allows the device to respond to environmental changes.&lt;/p&gt;
&lt;p&gt;As Mark describes it:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I can use that to detect whenever somebody enters the office in the morning and turns on the light.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The push button provides a simple interface for switching between display modes, allowing the animated eye to give way to environmental information when required.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Custom PCB Design&lt;/h2&gt;
&lt;p&gt;Rather than wiring everything together on perfboard, Mark designed a dedicated PCB specifically for the enclosure.&lt;/p&gt;
&lt;p&gt;The custom board serves several purposes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Reduces wiring complexity&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improves assembly&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ensures all components fit inside the minion housing&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Provides dedicated connections for audio, sensing, and display hardware&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Creates a cleaner final installation&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The PCB accommodates the ESP32 module, display, microphone, humidity sensor, audio circuitry, power distribution, and humidifier control circuitry.&lt;/p&gt;
&lt;p&gt;A dedicated switching circuit drives the humidifier assembly, allowing the ESP32 to enable or disable fog generation under software control.&lt;/p&gt;
&lt;p&gt;The humidifier itself consists of a commercially available ultrasonic fog generator module paired with a small water reservoir. A test tube serves as the water container and fits neatly into the enclosure.&lt;/p&gt;
&lt;p&gt;The arrangement provides a simple and effective way of generating visible fog without requiring any custom ultrasonic hardware design.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Hardware Assembly&lt;/h2&gt;
&lt;p&gt;Assembly began with the surface-mount components.&lt;/p&gt;
&lt;p&gt;Working without solder paste or a reflow setup, Mark manually tinned pads before placing and soldering components individually.&lt;/p&gt;
&lt;p&gt;After completing the surface-mount work, he inspected the board and moved on to the through-hole components.&lt;/p&gt;
&lt;p&gt;Like many prototype builds, the finished PCB wasn&amp;#39;t cosmetically perfect, but functionally sound.&lt;/p&gt;
&lt;p&gt;Mark notes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;In general when you look closer to this, the soldering looks kind of messy but for prototype it&amp;#39;s okay.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;He also points out that a quick pass with flux and cleaning solvent would significantly improve the appearance if desired.&lt;/p&gt;
&lt;p&gt;Several mechanical decisions were made during assembly to ensure components aligned correctly with openings in the enclosure. The microphone position required particular attention because of the distance between the PCB and the front housing.&lt;/p&gt;
&lt;p&gt;The humidity sensor was removed from its original breakout board and mounted directly onto the custom PCB, helping reduce space requirements inside the enclosure.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;A Design Flaw Appears&lt;/h2&gt;
&lt;p&gt;One of the most useful parts of the build was seeing how Mark handled an unexpected hardware problem.&lt;/p&gt;
&lt;p&gt;During test fitting he discovered that the display footprint obtained from a standard library had been defined incorrectly.&lt;/p&gt;
&lt;p&gt;The display connector arrangement was effectively mirrored, meaning the screen could not be mounted in the intended orientation.&lt;/p&gt;
&lt;p&gt;As he explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I actually discovered a huge design flaw.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The problem wasn&amp;#39;t with the display itself but with the PCB footprint definition. To keep the project moving, Mark physically reversed the assembly orientation and rearranged component placement.&lt;/p&gt;
&lt;p&gt;The workaround allowed the prototype to function, but it created new packaging constraints inside the enclosure.&lt;/p&gt;
&lt;p&gt;Rather than simply accepting the issue, Mark documented the problem and committed to correcting the design files.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;If you&amp;#39;re rebuilding this I will make sure the PCB layout has been corrected.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This kind of design review and iteration is a normal part of hardware development, and documenting these mistakes is often more valuable than hiding them.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Audio Hardware and Signal Processing&lt;/h2&gt;
&lt;p&gt;Audio is one of the more sophisticated aspects of the project.&lt;/p&gt;
&lt;p&gt;The ESP32 interfaces with both an I2S microphone and an I2S audio output stage. Using I2S rather than analogue audio provides a cleaner signal path and simplifies digital processing.&lt;/p&gt;
&lt;p&gt;The firmware configuration reveals the audio architecture:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;INMP441 MEMS microphone input&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I2S digital audio interface&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dedicated speaker output&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Real-time frequency analysis&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Volume control support&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The software defines 32 frequency bands for spectrum analysis and includes a detailed cutoff table that spans frequencies from approximately 45 Hz to 17.5 kHz.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;float FreqBins[32];
int numBands=32;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The project also includes configurable noise thresholds and gain control behaviour.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;int NoiseTresshold = 2000;
#define GAIN_DAMPEN 2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Frequency band boundaries are carefully distributed across the audible spectrum.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;45, 90, 130, 180,
...
16500, 17000, 17500
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This allows the ESP32 to visualise incoming audio as a spectrum display while simultaneously using microphone data as a trigger source for behavioural responses.&lt;/p&gt;
&lt;p&gt;The result is a surprisingly capable audio subsystem for what initially appears to be a novelty desk gadget.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Environmental Monitoring&lt;/h2&gt;
&lt;p&gt;Environmental sensing is handled using a DHT11 temperature and humidity sensor.&lt;/p&gt;
&lt;p&gt;The firmware configuration shows the sensor connected directly to the ESP32:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;#define DHTPIN 16
#define DHTTYPE DHT11
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The device can display:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Temperature&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Relative humidity&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Humidity index information&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These values can be accessed through the display interface, allowing the minion to double as a desktop environmental monitor.&lt;/p&gt;
&lt;p&gt;Combined with the LDR input, the system gains awareness of both ambient lighting conditions and room climate.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;The Animated Eye&lt;/h2&gt;
&lt;p&gt;Perhaps the most distinctive feature of the project is the animated eye.&lt;/p&gt;
&lt;p&gt;The display uses graphics assets derived from a large eye-rendering system and is configured to use a 240 &amp;times; 240 pixel display.&lt;/p&gt;
&lt;p&gt;The firmware enables both tracking and autonomous blinking behaviour.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;#define TRACKING
#define AUTOBLINK
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Additional eye behaviour includes dynamic iris adjustment based on ambient light levels.&lt;/p&gt;
&lt;p&gt;The software contains configurable parameters for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Iris size&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Light response curves&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ambient light limits&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Eyelid tracking&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Autonomous blinking&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Together these features create a display that feels surprisingly alive despite being driven by relatively modest hardware.&lt;/p&gt;
&lt;p&gt;Rather than functioning as a simple animation loop, the eye reacts to changing environmental conditions and continuously varies its appearance.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Programming the Device&lt;/h2&gt;
&lt;p&gt;Once assembly was complete, the firmware was loaded using a browser-based installation process.&lt;/p&gt;
&lt;p&gt;Rather than requiring users to install a full development environment, the project supports direct USB programming through a web interface.&lt;/p&gt;
&lt;p&gt;This approach lowers the barrier for anyone wanting to reproduce the build.&lt;/p&gt;
&lt;p&gt;More advanced users can still modify the source code, rebuild the firmware, and upload their own versions, but newcomers can simply connect the hardware and install the firmware directly.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Smoke, Sound and Personality&lt;/h2&gt;
&lt;p&gt;The most entertaining behaviour appears once everything is assembled.&lt;/p&gt;
&lt;p&gt;The ultrasonic humidifier produces visible fog while the eye tracks movement and the microphone listens to the environment.&lt;/p&gt;
&lt;p&gt;At its current stage, excessive noise acts as a trigger condition.&lt;/p&gt;
&lt;p&gt;As Mark describes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;If your colleagues are too loud in your office then this device will basically say &amp;#39;Psh&amp;#39;.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The combination of sound effects and fog generation gives the minion a surprisingly expressive personality.&lt;/p&gt;
&lt;p&gt;Of course, the development process wasn&amp;#39;t entirely smoke-free.&lt;/p&gt;
&lt;p&gt;During testing, an accidental short circuit generated some very real smoke from the electronics.&lt;/p&gt;
&lt;p&gt;Mark jokes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I might have jinxed it a bit by trying to add artificial smoke.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Fortunately the issue was corrected and the project survived to reach its final form.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Spectrum Analyser Mode&lt;/h2&gt;
&lt;p&gt;Beyond environmental monitoring and animated eye graphics, the display can also switch into a spectrum analyser.&lt;/p&gt;
&lt;p&gt;This mode makes direct use of the I2S microphone and frequency processing code to create a visual representation of incoming audio.&lt;/p&gt;
&lt;p&gt;When demonstrating the feature, Mark jokingly asks:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Will it run Doom?&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;His answer:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;It doesn&amp;#39;t run Doom though... but it runs the spectrum analyzer.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While perhaps not as famous as running Doom, a real-time audio analyser is arguably more useful for a device designed to monitor activity in an office environment.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Future Development&lt;/h2&gt;
&lt;p&gt;Although fully functional, the project clearly has room to grow.&lt;/p&gt;
&lt;p&gt;Several future directions were identified during development:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Wi-Fi connected features&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Internet radio functionality&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Additional audio behaviours&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Expanded environmental responses&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New display modes&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Further personality-driven interactions&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The ESP32 platform provides ample opportunity for these additions without requiring major hardware redesign.&lt;/p&gt;
&lt;p&gt;Because the hardware already includes networking capability, microphone input, audio output, sensing hardware, and a display, much of the infrastructure required for future features is already in place.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Final Thoughts&lt;/h2&gt;
&lt;p&gt;What began as a playful desktop companion evolved into a surprisingly capable embedded systems project.&lt;/p&gt;
&lt;p&gt;By combining environmental sensing, digital audio, display graphics, fog generation, and custom hardware design, Mark created something that feels much more interactive than a typical desk ornament.&lt;/p&gt;
&lt;p&gt;Equally valuable is the transparency shown throughout the build. Design mistakes, assembly challenges, packaging constraints, and debugging setbacks are all part of the story. Those lessons provide useful guidance for anyone planning to recreate or extend the project.&lt;/p&gt;
&lt;p&gt;The animated eye gives the minion character, the audio processing provides responsiveness, and the fog generator adds an unexpected physical element that makes the device stand out from conventional ESP32 projects.&lt;/p&gt;
&lt;p&gt;Most importantly, it succeeds at its original goal: creating something fun that sits on a desk, reacts to its surroundings, and occasionally reminds noisy colleagues to keep the volume down.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Creating a Multi-Function ESP32 Desk Pet with Custom PCB and Audio Processing</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72069/creating-a-multi-function-esp32-desk-pet-with-custom-pcb-and-audio-processing/revision/1</link><pubDate>Wed, 10 Jun 2026 12:15:25 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:2868f4c0-73f3-4540-a1bf-de624fa66454</guid><dc:creator>cstanton</dc:creator><comments>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72069/creating-a-multi-function-esp32-desk-pet-with-custom-pcb-and-audio-processing#comments</comments><description>Revision 1 posted to Documents by cstanton on 6/10/2026 12:15:25 PM&lt;br /&gt;
&lt;h1&gt;Building a Desktop Minion That Watches, Listens and Complains About Noise&lt;/h1&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Mark set out to create something that sits somewhere between a desk companion, environmental monitor, and electronic novelty. The result is what he calls a &amp;quot;Desk Pet Minion&amp;quot; &amp;mdash; a desktop gadget built around an ESP32 that watches the room through an animated eye, measures environmental conditions, listens for noise, produces sound effects, and even emits fog to express its displeasure.&lt;/p&gt;
&lt;p&gt;What started as a fun desk ornament quickly became a surprisingly feature-rich embedded project. Along the way, Mark designed custom hardware, assembled a dedicated PCB, integrated multiple sensors and peripherals, and worked through a significant hardware design issue that required an unexpected mid-build correction.&lt;/p&gt;
&lt;p&gt;The finished device combines environmental sensing, audio processing, display graphics, and fog generation into a single desktop companion with plenty of room for future expansion.&lt;/p&gt;
&lt;h2&gt;The Concept&lt;/h2&gt;
&lt;p&gt;At its core, the project is designed to bring a little personality to the workspace.&lt;/p&gt;
&lt;p&gt;The animated eye continuously moves and watches its surroundings, giving the impression that the device is paying attention to activity around the desk. Combined with environmental sensing and sound detection, the minion becomes more than a static display piece.&lt;/p&gt;
&lt;p&gt;As Mark explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;It displays that well, mimic eye movement so it can stare at you while you&amp;#39;re sitting at your desk.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The eye is only part of the personality. A built-in humidifier creates visible fog effects, allowing the minion to react to events and express different moods. Loud noises in the office can trigger both sound and smoke effects, turning the device into a humorous commentary on workplace volume levels.&lt;/p&gt;
&lt;p&gt;The project also includes temperature and humidity monitoring, audio playback capabilities, microphone input, and a display mode that functions as a real-time spectrum analyser.&lt;/p&gt;
&lt;p&gt;Future expansion was also part of the design from the beginning.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;In the future I might even update it to function as a radio because I&amp;#39;m using an ESP32 and it has onboard Wi-Fi.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That choice of microcontroller leaves plenty of processing power and connectivity available for additional features.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;System Architecture&lt;/h2&gt;
&lt;p&gt;The ESP32 serves as the centre of the entire design, coordinating every subsystem.&lt;/p&gt;
&lt;p&gt;Mark&amp;#39;s schematic brings together several different hardware functions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;ESP32 microcontroller&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;TFT display for eye animation and status screens&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;DHT11 temperature and humidity sensor&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Light-dependent resistor (LDR)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I2S MEMS microphone&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I2S audio output board&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Speaker&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Humidifier module&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Push-button user interface&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Volume adjustment potentiometer&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Power regulation circuitry&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One particularly useful feature is the inclusion of ambient light detection. The LDR allows the device to respond to environmental changes.&lt;/p&gt;
&lt;p&gt;As Mark describes it:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I can use that to detect whenever somebody enters the office in the morning and turns on the light.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The push button provides a simple interface for switching between display modes, allowing the animated eye to give way to environmental information when required.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Custom PCB Design&lt;/h2&gt;
&lt;p&gt;Rather than wiring everything together on perfboard, Mark designed a dedicated PCB specifically for the enclosure.&lt;/p&gt;
&lt;p&gt;The custom board serves several purposes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Reduces wiring complexity&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Improves assembly&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ensures all components fit inside the minion housing&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Provides dedicated connections for audio, sensing, and display hardware&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Creates a cleaner final installation&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The PCB accommodates the ESP32 module, display, microphone, humidity sensor, audio circuitry, power distribution, and humidifier control circuitry.&lt;/p&gt;
&lt;p&gt;A dedicated switching circuit drives the humidifier assembly, allowing the ESP32 to enable or disable fog generation under software control.&lt;/p&gt;
&lt;p&gt;The humidifier itself consists of a commercially available ultrasonic fog generator module paired with a small water reservoir. A test tube serves as the water container and fits neatly into the enclosure.&lt;/p&gt;
&lt;p&gt;The arrangement provides a simple and effective way of generating visible fog without requiring any custom ultrasonic hardware design.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Hardware Assembly&lt;/h2&gt;
&lt;p&gt;Assembly began with the surface-mount components.&lt;/p&gt;
&lt;p&gt;Working without solder paste or a reflow setup, Mark manually tinned pads before placing and soldering components individually.&lt;/p&gt;
&lt;p&gt;After completing the surface-mount work, he inspected the board and moved on to the through-hole components.&lt;/p&gt;
&lt;p&gt;Like many prototype builds, the finished PCB wasn&amp;#39;t cosmetically perfect, but functionally sound.&lt;/p&gt;
&lt;p&gt;Mark notes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;In general when you look closer to this, the soldering looks kind of messy but for prototype it&amp;#39;s okay.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;He also points out that a quick pass with flux and cleaning solvent would significantly improve the appearance if desired.&lt;/p&gt;
&lt;p&gt;Several mechanical decisions were made during assembly to ensure components aligned correctly with openings in the enclosure. The microphone position required particular attention because of the distance between the PCB and the front housing.&lt;/p&gt;
&lt;p&gt;The humidity sensor was removed from its original breakout board and mounted directly onto the custom PCB, helping reduce space requirements inside the enclosure.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;A Design Flaw Appears&lt;/h2&gt;
&lt;p&gt;One of the most useful parts of the build was seeing how Mark handled an unexpected hardware problem.&lt;/p&gt;
&lt;p&gt;During test fitting he discovered that the display footprint obtained from a standard library had been defined incorrectly.&lt;/p&gt;
&lt;p&gt;The display connector arrangement was effectively mirrored, meaning the screen could not be mounted in the intended orientation.&lt;/p&gt;
&lt;p&gt;As he explains:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I actually discovered a huge design flaw.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The problem wasn&amp;#39;t with the display itself but with the PCB footprint definition. To keep the project moving, Mark physically reversed the assembly orientation and rearranged component placement.&lt;/p&gt;
&lt;p&gt;The workaround allowed the prototype to function, but it created new packaging constraints inside the enclosure.&lt;/p&gt;
&lt;p&gt;Rather than simply accepting the issue, Mark documented the problem and committed to correcting the design files.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;If you&amp;#39;re rebuilding this I will make sure the PCB layout has been corrected.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This kind of design review and iteration is a normal part of hardware development, and documenting these mistakes is often more valuable than hiding them.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Audio Hardware and Signal Processing&lt;/h2&gt;
&lt;p&gt;Audio is one of the more sophisticated aspects of the project.&lt;/p&gt;
&lt;p&gt;The ESP32 interfaces with both an I2S microphone and an I2S audio output stage. Using I2S rather than analogue audio provides a cleaner signal path and simplifies digital processing.&lt;/p&gt;
&lt;p&gt;The firmware configuration reveals the audio architecture:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;INMP441 MEMS microphone input&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I2S digital audio interface&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dedicated speaker output&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Real-time frequency analysis&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Volume control support&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The software defines 32 frequency bands for spectrum analysis and includes a detailed cutoff table that spans frequencies from approximately 45 Hz to 17.5 kHz.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;float FreqBins[32];
int numBands=32;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The project also includes configurable noise thresholds and gain control behaviour.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;int NoiseTresshold = 2000;
#define GAIN_DAMPEN 2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Frequency band boundaries are carefully distributed across the audible spectrum.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;45, 90, 130, 180,
...
16500, 17000, 17500
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This allows the ESP32 to visualise incoming audio as a spectrum display while simultaneously using microphone data as a trigger source for behavioural responses.&lt;/p&gt;
&lt;p&gt;The result is a surprisingly capable audio subsystem for what initially appears to be a novelty desk gadget.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Environmental Monitoring&lt;/h2&gt;
&lt;p&gt;Environmental sensing is handled using a DHT11 temperature and humidity sensor.&lt;/p&gt;
&lt;p&gt;The firmware configuration shows the sensor connected directly to the ESP32:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;#define DHTPIN 16
#define DHTTYPE DHT11
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The device can display:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Temperature&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Relative humidity&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Humidity index information&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These values can be accessed through the display interface, allowing the minion to double as a desktop environmental monitor.&lt;/p&gt;
&lt;p&gt;Combined with the LDR input, the system gains awareness of both ambient lighting conditions and room climate.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;The Animated Eye&lt;/h2&gt;
&lt;p&gt;Perhaps the most distinctive feature of the project is the animated eye.&lt;/p&gt;
&lt;p&gt;The display uses graphics assets derived from a large eye-rendering system and is configured to use a 240 &amp;times; 240 pixel display.&lt;/p&gt;
&lt;p&gt;The firmware enables both tracking and autonomous blinking behaviour.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;#define TRACKING
#define AUTOBLINK
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Additional eye behaviour includes dynamic iris adjustment based on ambient light levels.&lt;/p&gt;
&lt;p&gt;The software contains configurable parameters for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Iris size&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Light response curves&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ambient light limits&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Eyelid tracking&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Autonomous blinking&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Together these features create a display that feels surprisingly alive despite being driven by relatively modest hardware.&lt;/p&gt;
&lt;p&gt;Rather than functioning as a simple animation loop, the eye reacts to changing environmental conditions and continuously varies its appearance.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Programming the Device&lt;/h2&gt;
&lt;p&gt;Once assembly was complete, the firmware was loaded using a browser-based installation process.&lt;/p&gt;
&lt;p&gt;Rather than requiring users to install a full development environment, the project supports direct USB programming through a web interface.&lt;/p&gt;
&lt;p&gt;This approach lowers the barrier for anyone wanting to reproduce the build.&lt;/p&gt;
&lt;p&gt;More advanced users can still modify the source code, rebuild the firmware, and upload their own versions, but newcomers can simply connect the hardware and install the firmware directly.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Smoke, Sound and Personality&lt;/h2&gt;
&lt;p&gt;The most entertaining behaviour appears once everything is assembled.&lt;/p&gt;
&lt;p&gt;The ultrasonic humidifier produces visible fog while the eye tracks movement and the microphone listens to the environment.&lt;/p&gt;
&lt;p&gt;At its current stage, excessive noise acts as a trigger condition.&lt;/p&gt;
&lt;p&gt;As Mark describes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;If your colleagues are too loud in your office then this device will basically say &amp;#39;Psh&amp;#39;.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The combination of sound effects and fog generation gives the minion a surprisingly expressive personality.&lt;/p&gt;
&lt;p&gt;Of course, the development process wasn&amp;#39;t entirely smoke-free.&lt;/p&gt;
&lt;p&gt;During testing, an accidental short circuit generated some very real smoke from the electronics.&lt;/p&gt;
&lt;p&gt;Mark jokes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I might have jinxed it a bit by trying to add artificial smoke.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Fortunately the issue was corrected and the project survived to reach its final form.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Spectrum Analyser Mode&lt;/h2&gt;
&lt;p&gt;Beyond environmental monitoring and animated eye graphics, the display can also switch into a spectrum analyser.&lt;/p&gt;
&lt;p&gt;This mode makes direct use of the I2S microphone and frequency processing code to create a visual representation of incoming audio.&lt;/p&gt;
&lt;p&gt;When demonstrating the feature, Mark jokingly asks:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Will it run Doom?&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;His answer:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;It doesn&amp;#39;t run Doom though... but it runs the spectrum analyzer.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While perhaps not as famous as running Doom, a real-time audio analyser is arguably more useful for a device designed to monitor activity in an office environment.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Future Development&lt;/h2&gt;
&lt;p&gt;Although fully functional, the project clearly has room to grow.&lt;/p&gt;
&lt;p&gt;Several future directions were identified during development:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Wi-Fi connected features&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Internet radio functionality&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Additional audio behaviours&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Expanded environmental responses&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;New display modes&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Further personality-driven interactions&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The ESP32 platform provides ample opportunity for these additions without requiring major hardware redesign.&lt;/p&gt;
&lt;p&gt;Because the hardware already includes networking capability, microphone input, audio output, sensing hardware, and a display, much of the infrastructure required for future features is already in place.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Final Thoughts&lt;/h2&gt;
&lt;p&gt;What began as a playful desktop companion evolved into a surprisingly capable embedded systems project.&lt;/p&gt;
&lt;p&gt;By combining environmental sensing, digital audio, display graphics, fog generation, and custom hardware design, Mark created something that feels much more interactive than a typical desk ornament.&lt;/p&gt;
&lt;p&gt;Equally valuable is the transparency shown throughout the build. Design mistakes, assembly challenges, packaging constraints, and debugging setbacks are all part of the story. Those lessons provide useful guidance for anyone planning to recreate or extend the project.&lt;/p&gt;
&lt;p&gt;The animated eye gives the minion character, the audio processing provides responsiveness, and the fog generator adds an unexpected physical element that makes the device stand out from conventional ESP32 projects.&lt;/p&gt;
&lt;p&gt;Most importantly, it succeeds at its original goal: creating something fun that sits on a desk, reacts to its surroundings, and occasionally reminds noisy colleagues to keep the volume down.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item></channel></rss>