<?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>From Snooze to Launch: The Arduino-Powered LEGO Alarm Clock Inspired by Artemis 2 -- Episode 701</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72031/from-snooze-to-launch-the-arduino-powered-lego-alarm-clock-inspired-by-artemis-2----episode-701</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>From Snooze to Launch: The Arduino-Powered LEGO Alarm Clock Inspired by Artemis 2 -- Episode 701</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72031/from-snooze-to-launch-the-arduino-powered-lego-alarm-clock-inspired-by-artemis-2----episode-701</link><pubDate>Wed, 01 Apr 2026 22:50:48 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:8c6e2dc4-14f4-4f87-b134-63786c04c12b</guid><dc:creator>cstanton</dc:creator><comments>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72031/from-snooze-to-launch-the-arduino-powered-lego-alarm-clock-inspired-by-artemis-2----episode-701#comments</comments><description>Current Revision posted to Documents by cstanton on 4/1/2026 10:50:48 PM&lt;br /&gt;
&lt;p&gt;What if your alarm clock launched a rocket instead of playing a gentle tone? In this project, Milos turns the LEGO NASA Artemis SLS into a motorised, Arduino-powered alarm clock that raises the rocket and blasts a megaphone when it&amp;rsquo;s time to wake up. The build combines a NEMA 17 stepper motor, relays to hack a megaphone, an LED matrix display, Wi-Fi control, and a custom web interface so you can configure everything from your browser.&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r0"&gt;Watch the&amp;nbsp;Lift-Off!&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://youtu.be/Qg7JDSrsakI"&gt;https://youtu.be/Qg7JDSrsakI&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r1" data-start="0" data-end="42"&gt;Building the World&amp;rsquo;s Loudest LEGO Alarm Clock&lt;/h2&gt;
&lt;p data-start="44" data-end="421"&gt;When Milos set out to build a new alarm clock, he did not start with typical design constraints like size, comfort, or subtlety. Instead, he started with a simple premise: rockets are among the loudest human-made machines ever created. That idea quickly evolved into a LEGO NASA Artemis rocket that would not just look the part, but behave like a launch sequence every morning.&lt;/p&gt;
&lt;p data-start="423" data-end="583"&gt;The result is a project that blends mechanical LEGO engineering, Arduino automation, reverse-engineered consumer electronics, and a web-based control interface.&lt;/p&gt;
&lt;p data-start="423" data-end="583"&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/pastedimage1770889119242v1.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r2" data-start="590" data-end="639"&gt;From Rocket Inspiration to Alarm Clock Concept&lt;/h2&gt;
&lt;p data-start="641" data-end="1002"&gt;The project began with the LEGO NASA Artemis Space Launch System set. While assembling it, Milos discovered a mechanical detail that set the tone for the entire build: a tiny internal gear designed to rattle during operation to mimic the sound of launch vibration. That detail pushed the concept from a simple motorised display to a full alarm clock experience.&lt;/p&gt;
&lt;p data-start="1004" data-end="1088"&gt;In the transcript, Milos reflects on how the idea escalated beyond a simple novelty:&lt;/p&gt;
&lt;blockquote data-start="1090" data-end="1220"&gt;
&lt;p data-start="1092" data-end="1220"&gt;&lt;em&gt;&lt;strong&gt;&amp;ldquo;I wanted something that would actually force me to wake up&amp;hellip; something you cannot ignore.&amp;rdquo; &lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="1222" data-end="1260"&gt;The design goals quickly became clear:&lt;/p&gt;
&lt;ul data-start="1262" data-end="1387"&gt;
&lt;li data-start="1262" data-end="1300"&gt;
&lt;p data-start="1264" data-end="1300"&gt;Motorise the LEGO launch mechanism&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="1301" data-end="1331"&gt;
&lt;p data-start="1303" data-end="1331"&gt;Add a display and controls&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="1332" data-end="1387"&gt;
&lt;p data-start="1334" data-end="1387"&gt;Create an alarm that is impossible to sleep through&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start="1389" data-end="1456"&gt;The third requirement became the defining challenge of the project.&lt;/p&gt;
&lt;p data-start="1389" data-end="1456"&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/pastedimage1770889159853v2.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/pastedimage1770889183751v3.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r3" data-start="1463" data-end="1511"&gt;Solving the Sound Problem: The Megaphone Hack&lt;/h2&gt;
&lt;p data-start="1513" data-end="1828"&gt;Originally, the plan was to use a megaphone capable of playing MP3 files via USB. The delivered device did not match expectations. Instead of USB playback, it only supported record and playback through a microphone. What initially looked like a setback became one of the project&amp;rsquo;s most interesting design decisions.&lt;/p&gt;
&lt;p data-start="1830" data-end="2090"&gt;The limitation actually made the system more flexible and tactile. Any sound could be recorded directly into the megaphone and replayed as the alarm. This gave the clock a unique personality and avoided the complexity of integrating audio playback electronics.&lt;/p&gt;
&lt;p data-start="2092" data-end="2208"&gt;But controlling the megaphone electronically introduced a major obstacle: it was designed for manual button presses.&lt;/p&gt;
&lt;p data-start="2210" data-end="2248"&gt;Milos explains the workaround clearly:&lt;/p&gt;
&lt;blockquote data-start="2250" data-end="2443"&gt;
&lt;p data-start="2252" data-end="2443"&gt;&lt;em&gt;&lt;strong&gt;&amp;ldquo;The megaphone is designed to be used by pressing the buttons&amp;hellip; so I soldered wires in parallel with the buttons and used relays to simulate the presses.&amp;rdquo; &lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="2445" data-end="2756"&gt;This approach essentially turned the megaphone into a remotely controlled device. The Arduino does not generate audio; it triggers the megaphone&amp;rsquo;s existing circuitry in the correct sequence. It is a clean example of hardware hacking that avoids reinventing functionality already present in consumer electronics.&lt;/p&gt;
&lt;p data-start="2445" data-end="2756"&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/pastedimage1770889296622v4.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r4" data-start="2763" data-end="2811"&gt;Electronics Architecture and Control Strategy&lt;/h2&gt;
&lt;p data-start="2813" data-end="3016"&gt;At the center of the build sits an Arduino Uno R4 WiFi. The choice of board was deliberate: the project requires multiple GPIO pins, relay control, motor control, Wi-Fi connectivity, and a web interface.&lt;/p&gt;
&lt;p data-start="3018" data-end="3105"&gt;From the code, the relay pins controlling the megaphone buttons are defined explicitly:&lt;/p&gt;
&lt;p data-start="3018" data-end="3105"&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define RECORD 3
#define PLAY 4
#define TRIGGER 5
#define STOP 6&lt;/pre&gt;&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&lt;code class="whitespace-pre! language-cpp"&gt;&lt;span&gt;&lt;span class="hljs-meta"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;These outputs allow the Arduino to emulate the physical button presses required to operate the megaphone.&lt;/div&gt;
&lt;div class="overflow-y-auto p-4" dir="ltr"&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/pastedimage1770889369440v5.png" /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="3293" data-end="3358"&gt;The firmware also defines a complete stepper motor configuration:&lt;/p&gt;
&lt;p data-start="3293" data-end="3358"&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define STEP_PIN 9
#define DIR_PIN 8
#define ENABLE_PIN 7
#define LIMIT_SWITCH_MIN 11
#define LIMIT_SWITCH_MAX 12
&lt;/pre&gt;&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div&gt;
&lt;div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;code class="whitespace-pre! language-cpp"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="3486" data-end="3677"&gt;The presence of limit switches is a key safety and reliability feature. The mechanism cannot overrun its physical bounds. This is critical for a device that operates unattended every morning.&lt;/p&gt;
&lt;p data-start="3679" data-end="3739"&gt;Milos notes in the transcript how important reliability was:&lt;/p&gt;
&lt;blockquote data-start="3741" data-end="3885"&gt;
&lt;p data-start="3743" data-end="3885"&gt;&lt;em&gt;&lt;strong&gt;&amp;ldquo;This has to work every day without me touching it, otherwise it defeats the purpose of an alarm clock.&amp;rdquo;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="mcetoc_1jh8jnvreh" data-start="3892" data-end="3942"&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/pastedimage1770889415983v6.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1jh8jas8r5" data-start="3892" data-end="3942"&gt;Mechanical Integration: Driving LEGO from Below&lt;/h2&gt;
&lt;p data-start="3944" data-end="4040"&gt;One of the most thoughtful aspects of the build is how the motor integrates with the LEGO model.&lt;/p&gt;
&lt;p data-start="4042" data-end="4270"&gt;Rather than mounting the stepper motor visibly on the side, Milos redesigned the drive path so the motor sits beneath the rocket base. He created a 3D-printed coupler that connects a NEMA 17 stepper motor to the LEGO gear train.&lt;/p&gt;
&lt;p data-start="4272" data-end="4492"&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/pastedimage1770889438147v7.png" /&gt;&lt;/p&gt;
&lt;p data-start="4272" data-end="4492"&gt;This preserves the visual integrity of the LEGO set while still using the original gearing. It also highlights a recurring theme in the project: keep the LEGO aesthetic intact while embedding real engineering underneath.&lt;/p&gt;
&lt;p data-start="4494" data-end="4545"&gt;He explains this design decision in the transcript:&lt;/p&gt;
&lt;blockquote data-start="4547" data-end="4677"&gt;
&lt;p data-start="4549" data-end="4677"&gt;&lt;em&gt;&lt;strong&gt;&amp;ldquo;I didn&amp;rsquo;t want the motor visible anywhere&amp;hellip; everything had to stay hidden under the model.&amp;rdquo; &lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="4679" data-end="4824"&gt;The enclosure itself was printed in black PLA and dimension-ed using LEGO&amp;rsquo;s standardised spacing, making the mechanical alignment straightforward.&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r6" data-start="4831" data-end="4867"&gt;Software Design and Web Interface&lt;/h2&gt;
&lt;p data-start="4869" data-end="5030"&gt;The software side of the project is far more sophisticated than a typical Arduino alarm clock. The firmware includes Wi-Fi connectivity and a full web interface.&lt;/p&gt;
&lt;p data-start="5032" data-end="5069"&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/pastedimage1770889971821v9.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/pastedimage1770889981635v10.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/pastedimage1770889986720v11.png" /&gt;&lt;/p&gt;
&lt;p data-start="5032" data-end="5069"&gt;Key features of the firmware include:&lt;/p&gt;
&lt;ul data-start="5071" data-end="5297"&gt;
&lt;li data-start="5071" data-end="5114"&gt;
&lt;p data-start="5073" data-end="5114"&gt;Static IP configuration for easy access&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5115" data-end="5145"&gt;
&lt;p data-start="5117" data-end="5145"&gt;Web-based alarm scheduling&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5146" data-end="5183"&gt;
&lt;p data-start="5148" data-end="5183"&gt;Time synchronisation via internet&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5184" data-end="5223"&gt;
&lt;p data-start="5186" data-end="5223"&gt;Relay testing and calibration tools&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5224" data-end="5263"&gt;
&lt;p data-start="5226" data-end="5263"&gt;Stepper motor min/max configuration&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5264" data-end="5297"&gt;
&lt;p data-start="5266" data-end="5297"&gt;LED matrix brightness control&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start="5299" data-end="5313"&gt;From the code:&lt;/p&gt;
&lt;p data-start="5299" data-end="5313"&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define NTP_SERVER &amp;quot;pool.ntp.org&amp;quot;
#define GMT_OFFSET_SEC 0
#define DAYLIGHT_OFFSET_SEC 3600
&lt;/pre&gt;&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div&gt;
&lt;div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;code class="whitespace-pre! language-cpp"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="5419" data-end="5513"&gt;This enables automatic time updates using NTP, eliminating the need to manually set the clock.&lt;/p&gt;
&lt;p data-start="5515" data-end="5709"&gt;The web interface is designed to complement physical controls rather than replace them. Physical buttons remain available for emergency silence when the megaphone begins blasting in the morning.&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r7" data-start="5716" data-end="5749"&gt;Sequencing the Wake-Up Routine&lt;/h2&gt;
&lt;p data-start="5751" data-end="5811"&gt;The firmware reveals how the alarm sequence is orchestrated.&lt;/p&gt;
&lt;p data-start="5813" data-end="5858"&gt;Timing constants define the startup behaviour:&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div&gt;
&lt;div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define RECORD_DELAY 2000
#define PLAY_DELAY 2000
#define MOTOR_RUN_TIME 15000
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="5951" data-end="6000"&gt;This suggests a carefully choreographed sequence:&lt;/p&gt;
&lt;ol data-start="6002" data-end="6186"&gt;
&lt;li data-start="6002" data-end="6052"&gt;
&lt;p data-start="6005" data-end="6052"&gt;Trigger megaphone playback via relay sequence&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="6053" data-end="6111"&gt;
&lt;p data-start="6056" data-end="6111"&gt;Run the stepper motor to animate the rocket mechanism&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="6112" data-end="6153"&gt;
&lt;p data-start="6115" data-end="6153"&gt;Maintain motion for a fixed duration&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="6154" data-end="6186"&gt;
&lt;p data-start="6157" data-end="6186"&gt;Allow manual stop if needed&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-start="6188" data-end="6296"&gt;The combination of mechanical motion and amplified audio turns the wake-up routine into a full launch event.&lt;/p&gt;
&lt;p data-start="6188" data-end="6296"&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/pastedimage1770890210579v12.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/pastedimage1770890221427v13.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r8" data-start="6303" data-end="6336"&gt;Challenges and Lessons Learned&lt;/h2&gt;
&lt;p data-start="6338" data-end="6426"&gt;&lt;/p&gt;
&lt;p data-start="0" data-end="538"&gt;As the real Artemis mission prepares for launch, Milos discovered that the biggest challenge in building his own morning &amp;ldquo;launch system&amp;rdquo; wasn&amp;rsquo;t the mechanics or the code, it was the wiring. Packing everything neatly into the enclosure turned into the most time-consuming part of the build. As he admits, &lt;strong&gt;&lt;em data-start="305" data-end="378"&gt;&amp;ldquo;The wiring was definitely the most tedious part of the whole project.&amp;rdquo;&lt;/em&gt;&lt;/strong&gt; That challenge reflects the wider balance he was aiming for: something bold and loud enough to wake you instantly, but reliable enough to run every single day.&lt;/p&gt;
&lt;p data-start="540" data-end="792"&gt;The decision to control the megaphone using relays captures that mindset perfectly. Instead of redesigning the megaphone electronics, Milos focused on a practical solution that works consistently and keeps the build approachable for others to recreate.&lt;/p&gt;
&lt;p data-start="794" data-end="1093"&gt;This isn&amp;rsquo;t a finished idea either. Milos already sees the project as something to keep evolving. &lt;strong&gt;&lt;em data-start="891" data-end="948"&gt;&amp;ldquo;There are definitely more things I want to add later,&amp;rdquo;&lt;/em&gt;&lt;/strong&gt; he says, with plans to keep experimenting with the web interface, motion behaviour, sounds, and general refinements to the enclosure and wiring.&lt;/p&gt;
&lt;p data-start="1095" data-end="1353"&gt;Even now, the project works exactly as intended: a dramatic, over-the-top alarm clock inspired by a real rocket launch. With the Artemis mission on the horizon, it feels fitting that this LEGO SLS now delivers its own daily countdown and liftoff on the desk.&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8kg718i" data-start="1095" data-end="1353"&gt;Supporting Links and Downloads&lt;/h2&gt;
&lt;p data-start="1095" data-end="1353"&gt;-&amp;nbsp;&amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/m/files/150996"&gt;Episode 701 Resources&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;h2 id="mcetoc_1jl5jrji90"&gt;&lt;a href="https://www.youtube.com/watch?v=Tf_UjBMIzNo"&gt;www.youtube.com/watch&lt;/a&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1jh8jc9khe"&gt;Bill of Materials&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-e66ed" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4208544,4007767,3879694,4062476&amp;nsku=77AK2287,42AK5727,99AJ4561,54AK7721&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('e66ed'));" data-farnell="4208544,4007767,3879694,4062476" data-newark="77AK2287,42AK5727,99AJ4561,54AK7721" data-comoverride="" data-cmpoverride="" data-cpc=",,," data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Kit&lt;/a&gt; &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Arduino Uno R4 WiFi&lt;/td&gt;
&lt;td&gt;Arduino&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-5cd81" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4208544&amp;nsku=77AK2287&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('5cd81'));" data-farnell="4208544" data-newark="77AK2287" 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 Channel Relay Module&lt;/td&gt;
&lt;td&gt;SEEED Studio&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-e6d58" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4007767&amp;nsku=42AK5727&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('e6d58'));" data-farnell="4007767" data-newark="42AK5727" 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;NEMA 17 Stepper Motor - FIT0278&lt;/td&gt;
&lt;td&gt;DFROBOT&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-97ae5" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3879694&amp;nsku=99AJ4561&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('97ae5'));" data-farnell="3879694" data-newark="99AJ4561" 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;Black PLA - MP010755&lt;/td&gt;
&lt;td&gt;MULTICOMP PRO&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-a57ce" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4062476&amp;nsku=54AK7721&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('a57ce'));" data-farnell="4062476" data-newark="54AK7721" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="xs-hide"&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jc9khf"&gt;Additional Parts&lt;/h2&gt;
&lt;table class="e14-product-bom-additional"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SLS LEGO Set - &lt;a id="" href="https://www.lego.com/en-us/product/nasa-artemis-space-launch-system-rocket-42221" rel="noopener noreferrer nofollow" target="_blank" data-e14adj="t"&gt;https://www.lego.com/en-us/product/nasa-artemis-space-launch-system-rocket-42221&lt;/a&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Battery Powererd Megaphone&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Quad LED Matrix Module - MAX7219&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A4988 Stepper Motor Driver&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A4988 Adapter Board&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Push buttons&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wires&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Screws M3 and M4&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="mcetoc_1jh8jc9khg"&gt;&lt;/h3&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: arduino alarm clock tutorial, arduino nema 17 stepper tutorial, arduino web server project example, lego motorised rocket arduino, arduino stepper motor project tutorial, diy loud alarm clock project, arduino uno r4 wifi projects, arduino relay control tutorial, diy arudino clock with wifi, arduin projects for beginners and makers, lego arduino integration project, led matrix clock arduino tutorial, hot to control megaphone with arduino, lego alarm clock project, diy smart alarm clock arduino, friday_release&lt;/div&gt;
</description></item><item><title>From Snooze to Launch: The Arduino-Powered LEGO Alarm Clock Inspired by Artemis 2 -- Episode 701</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72031/from-snooze-to-launch-the-arduino-powered-lego-alarm-clock-inspired-by-artemis-2----episode-701/revision/5</link><pubDate>Thu, 12 Feb 2026 11:32:20 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:8c6e2dc4-14f4-4f87-b134-63786c04c12b</guid><dc:creator>cstanton</dc:creator><comments>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72031/from-snooze-to-launch-the-arduino-powered-lego-alarm-clock-inspired-by-artemis-2----episode-701#comments</comments><description>Revision 5 posted to Documents by cstanton on 2/12/2026 11:32:20 AM&lt;br /&gt;
&lt;p&gt;What if your alarm clock launched a rocket instead of playing a gentle tone? In this project, Milos turns the LEGO NASA Artemis SLS into a motorised, Arduino-powered alarm clock that raises the rocket and blasts a megaphone when it&amp;rsquo;s time to wake up. The build combines a NEMA 17 stepper motor, relays to hack a megaphone, an LED matrix display, Wi-Fi control, and a custom web interface so you can configure everything from your browser.&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r0"&gt;Watch the&amp;nbsp;Lift-Off!&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://youtu.be/Qg7JDSrsakI"&gt;https://youtu.be/Qg7JDSrsakI&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r1" data-start="0" data-end="42"&gt;Building the World&amp;rsquo;s Loudest LEGO Alarm Clock&lt;/h2&gt;
&lt;p data-start="44" data-end="421"&gt;When Milos set out to build a new alarm clock, he did not start with typical design constraints like size, comfort, or subtlety. Instead, he started with a simple premise: rockets are among the loudest human-made machines ever created. That idea quickly evolved into a LEGO NASA Artemis rocket that would not just look the part, but behave like a launch sequence every morning.&lt;/p&gt;
&lt;p data-start="423" data-end="583"&gt;The result is a project that blends mechanical LEGO engineering, Arduino automation, reverse-engineered consumer electronics, and a web-based control interface.&lt;/p&gt;
&lt;p data-start="423" data-end="583"&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/pastedimage1770889119242v1.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r2" data-start="590" data-end="639"&gt;From Rocket Inspiration to Alarm Clock Concept&lt;/h2&gt;
&lt;p data-start="641" data-end="1002"&gt;The project began with the LEGO NASA Artemis Space Launch System set. While assembling it, Milos discovered a mechanical detail that set the tone for the entire build: a tiny internal gear designed to rattle during operation to mimic the sound of launch vibration. That detail pushed the concept from a simple motorised display to a full alarm clock experience.&lt;/p&gt;
&lt;p data-start="1004" data-end="1088"&gt;In the transcript, Milos reflects on how the idea escalated beyond a simple novelty:&lt;/p&gt;
&lt;blockquote data-start="1090" data-end="1220"&gt;
&lt;p data-start="1092" data-end="1220"&gt;&lt;em&gt;&lt;strong&gt;&amp;ldquo;I wanted something that would actually force me to wake up&amp;hellip; something you cannot ignore.&amp;rdquo; &lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="1222" data-end="1260"&gt;The design goals quickly became clear:&lt;/p&gt;
&lt;ul data-start="1262" data-end="1387"&gt;
&lt;li data-start="1262" data-end="1300"&gt;
&lt;p data-start="1264" data-end="1300"&gt;Motorise the LEGO launch mechanism&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="1301" data-end="1331"&gt;
&lt;p data-start="1303" data-end="1331"&gt;Add a display and controls&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="1332" data-end="1387"&gt;
&lt;p data-start="1334" data-end="1387"&gt;Create an alarm that is impossible to sleep through&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start="1389" data-end="1456"&gt;The third requirement became the defining challenge of the project.&lt;/p&gt;
&lt;p data-start="1389" data-end="1456"&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/pastedimage1770889159853v2.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/pastedimage1770889183751v3.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r3" data-start="1463" data-end="1511"&gt;Solving the Sound Problem: The Megaphone Hack&lt;/h2&gt;
&lt;p data-start="1513" data-end="1828"&gt;Originally, the plan was to use a megaphone capable of playing MP3 files via USB. The delivered device did not match expectations. Instead of USB playback, it only supported record and playback through a microphone. What initially looked like a setback became one of the project&amp;rsquo;s most interesting design decisions.&lt;/p&gt;
&lt;p data-start="1830" data-end="2090"&gt;The limitation actually made the system more flexible and tactile. Any sound could be recorded directly into the megaphone and replayed as the alarm. This gave the clock a unique personality and avoided the complexity of integrating audio playback electronics.&lt;/p&gt;
&lt;p data-start="2092" data-end="2208"&gt;But controlling the megaphone electronically introduced a major obstacle: it was designed for manual button presses.&lt;/p&gt;
&lt;p data-start="2210" data-end="2248"&gt;Milos explains the workaround clearly:&lt;/p&gt;
&lt;blockquote data-start="2250" data-end="2443"&gt;
&lt;p data-start="2252" data-end="2443"&gt;&lt;em&gt;&lt;strong&gt;&amp;ldquo;The megaphone is designed to be used by pressing the buttons&amp;hellip; so I soldered wires in parallel with the buttons and used relays to simulate the presses.&amp;rdquo; &lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="2445" data-end="2756"&gt;This approach essentially turned the megaphone into a remotely controlled device. The Arduino does not generate audio; it triggers the megaphone&amp;rsquo;s existing circuitry in the correct sequence. It is a clean example of hardware hacking that avoids reinventing functionality already present in consumer electronics.&lt;/p&gt;
&lt;p data-start="2445" data-end="2756"&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/pastedimage1770889296622v4.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r4" data-start="2763" data-end="2811"&gt;Electronics Architecture and Control Strategy&lt;/h2&gt;
&lt;p data-start="2813" data-end="3016"&gt;At the center of the build sits an Arduino Uno R4 WiFi. The choice of board was deliberate: the project requires multiple GPIO pins, relay control, motor control, Wi-Fi connectivity, and a web interface.&lt;/p&gt;
&lt;p data-start="3018" data-end="3105"&gt;From the code, the relay pins controlling the megaphone buttons are defined explicitly:&lt;/p&gt;
&lt;p data-start="3018" data-end="3105"&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define RECORD 3
#define PLAY 4
#define TRIGGER 5
#define STOP 6&lt;/pre&gt;&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&lt;code class="whitespace-pre! language-cpp"&gt;&lt;span&gt;&lt;span class="hljs-meta"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;These outputs allow the Arduino to emulate the physical button presses required to operate the megaphone.&lt;/div&gt;
&lt;div class="overflow-y-auto p-4" dir="ltr"&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/pastedimage1770889369440v5.png" /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="3293" data-end="3358"&gt;The firmware also defines a complete stepper motor configuration:&lt;/p&gt;
&lt;p data-start="3293" data-end="3358"&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define STEP_PIN 9
#define DIR_PIN 8
#define ENABLE_PIN 7
#define LIMIT_SWITCH_MIN 11
#define LIMIT_SWITCH_MAX 12
&lt;/pre&gt;&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div&gt;
&lt;div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;code class="whitespace-pre! language-cpp"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="3486" data-end="3677"&gt;The presence of limit switches is a key safety and reliability feature. The mechanism cannot overrun its physical bounds. This is critical for a device that operates unattended every morning.&lt;/p&gt;
&lt;p data-start="3679" data-end="3739"&gt;Milos notes in the transcript how important reliability was:&lt;/p&gt;
&lt;blockquote data-start="3741" data-end="3885"&gt;
&lt;p data-start="3743" data-end="3885"&gt;&lt;em&gt;&lt;strong&gt;&amp;ldquo;This has to work every day without me touching it, otherwise it defeats the purpose of an alarm clock.&amp;rdquo;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="mcetoc_1jh8jnvreh" data-start="3892" data-end="3942"&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/pastedimage1770889415983v6.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1jh8jas8r5" data-start="3892" data-end="3942"&gt;Mechanical Integration: Driving LEGO from Below&lt;/h2&gt;
&lt;p data-start="3944" data-end="4040"&gt;One of the most thoughtful aspects of the build is how the motor integrates with the LEGO model.&lt;/p&gt;
&lt;p data-start="4042" data-end="4270"&gt;Rather than mounting the stepper motor visibly on the side, Milos redesigned the drive path so the motor sits beneath the rocket base. He created a 3D-printed coupler that connects a NEMA 17 stepper motor to the LEGO gear train.&lt;/p&gt;
&lt;p data-start="4272" data-end="4492"&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/pastedimage1770889438147v7.png" /&gt;&lt;/p&gt;
&lt;p data-start="4272" data-end="4492"&gt;This preserves the visual integrity of the LEGO set while still using the original gearing. It also highlights a recurring theme in the project: keep the LEGO aesthetic intact while embedding real engineering underneath.&lt;/p&gt;
&lt;p data-start="4494" data-end="4545"&gt;He explains this design decision in the transcript:&lt;/p&gt;
&lt;blockquote data-start="4547" data-end="4677"&gt;
&lt;p data-start="4549" data-end="4677"&gt;&lt;em&gt;&lt;strong&gt;&amp;ldquo;I didn&amp;rsquo;t want the motor visible anywhere&amp;hellip; everything had to stay hidden under the model.&amp;rdquo; &lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="4679" data-end="4824"&gt;The enclosure itself was printed in black PLA and dimension-ed using LEGO&amp;rsquo;s standardised spacing, making the mechanical alignment straightforward.&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r6" data-start="4831" data-end="4867"&gt;Software Design and Web Interface&lt;/h2&gt;
&lt;p data-start="4869" data-end="5030"&gt;The software side of the project is far more sophisticated than a typical Arduino alarm clock. The firmware includes Wi-Fi connectivity and a full web interface.&lt;/p&gt;
&lt;p data-start="5032" data-end="5069"&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/pastedimage1770889971821v9.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/pastedimage1770889981635v10.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/pastedimage1770889986720v11.png" /&gt;&lt;/p&gt;
&lt;p data-start="5032" data-end="5069"&gt;Key features of the firmware include:&lt;/p&gt;
&lt;ul data-start="5071" data-end="5297"&gt;
&lt;li data-start="5071" data-end="5114"&gt;
&lt;p data-start="5073" data-end="5114"&gt;Static IP configuration for easy access&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5115" data-end="5145"&gt;
&lt;p data-start="5117" data-end="5145"&gt;Web-based alarm scheduling&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5146" data-end="5183"&gt;
&lt;p data-start="5148" data-end="5183"&gt;Time synchronisation via internet&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5184" data-end="5223"&gt;
&lt;p data-start="5186" data-end="5223"&gt;Relay testing and calibration tools&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5224" data-end="5263"&gt;
&lt;p data-start="5226" data-end="5263"&gt;Stepper motor min/max configuration&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5264" data-end="5297"&gt;
&lt;p data-start="5266" data-end="5297"&gt;LED matrix brightness control&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start="5299" data-end="5313"&gt;From the code:&lt;/p&gt;
&lt;p data-start="5299" data-end="5313"&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define NTP_SERVER &amp;quot;pool.ntp.org&amp;quot;
#define GMT_OFFSET_SEC 0
#define DAYLIGHT_OFFSET_SEC 3600
&lt;/pre&gt;&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div&gt;
&lt;div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;code class="whitespace-pre! language-cpp"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="5419" data-end="5513"&gt;This enables automatic time updates using NTP, eliminating the need to manually set the clock.&lt;/p&gt;
&lt;p data-start="5515" data-end="5709"&gt;The web interface is designed to complement physical controls rather than replace them. Physical buttons remain available for emergency silence when the megaphone begins blasting in the morning.&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r7" data-start="5716" data-end="5749"&gt;Sequencing the Wake-Up Routine&lt;/h2&gt;
&lt;p data-start="5751" data-end="5811"&gt;The firmware reveals how the alarm sequence is orchestrated.&lt;/p&gt;
&lt;p data-start="5813" data-end="5858"&gt;Timing constants define the startup behaviour:&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div&gt;
&lt;div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define RECORD_DELAY 2000
#define PLAY_DELAY 2000
#define MOTOR_RUN_TIME 15000
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="5951" data-end="6000"&gt;This suggests a carefully choreographed sequence:&lt;/p&gt;
&lt;ol data-start="6002" data-end="6186"&gt;
&lt;li data-start="6002" data-end="6052"&gt;
&lt;p data-start="6005" data-end="6052"&gt;Trigger megaphone playback via relay sequence&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="6053" data-end="6111"&gt;
&lt;p data-start="6056" data-end="6111"&gt;Run the stepper motor to animate the rocket mechanism&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="6112" data-end="6153"&gt;
&lt;p data-start="6115" data-end="6153"&gt;Maintain motion for a fixed duration&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="6154" data-end="6186"&gt;
&lt;p data-start="6157" data-end="6186"&gt;Allow manual stop if needed&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-start="6188" data-end="6296"&gt;The combination of mechanical motion and amplified audio turns the wake-up routine into a full launch event.&lt;/p&gt;
&lt;p data-start="6188" data-end="6296"&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/pastedimage1770890210579v12.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/pastedimage1770890221427v13.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r8" data-start="6303" data-end="6336"&gt;Challenges and Lessons Learned&lt;/h2&gt;
&lt;p data-start="6338" data-end="6426"&gt;&lt;/p&gt;
&lt;p data-start="0" data-end="538"&gt;As the real Artemis mission prepares for launch, Milos discovered that the biggest challenge in building his own morning &amp;ldquo;launch system&amp;rdquo; wasn&amp;rsquo;t the mechanics or the code, it was the wiring. Packing everything neatly into the enclosure turned into the most time-consuming part of the build. As he admits, &lt;strong&gt;&lt;em data-start="305" data-end="378"&gt;&amp;ldquo;The wiring was definitely the most tedious part of the whole project.&amp;rdquo;&lt;/em&gt;&lt;/strong&gt; That challenge reflects the wider balance he was aiming for: something bold and loud enough to wake you instantly, but reliable enough to run every single day.&lt;/p&gt;
&lt;p data-start="540" data-end="792"&gt;The decision to control the megaphone using relays captures that mindset perfectly. Instead of redesigning the megaphone electronics, Milos focused on a practical solution that works consistently and keeps the build approachable for others to recreate.&lt;/p&gt;
&lt;p data-start="794" data-end="1093"&gt;This isn&amp;rsquo;t a finished idea either. Milos already sees the project as something to keep evolving. &lt;strong&gt;&lt;em data-start="891" data-end="948"&gt;&amp;ldquo;There are definitely more things I want to add later,&amp;rdquo;&lt;/em&gt;&lt;/strong&gt; he says, with plans to keep experimenting with the web interface, motion behaviour, sounds, and general refinements to the enclosure and wiring.&lt;/p&gt;
&lt;p data-start="1095" data-end="1353"&gt;Even now, the project works exactly as intended: a dramatic, over-the-top alarm clock inspired by a real rocket launch. With the Artemis mission on the horizon, it feels fitting that this LEGO SLS now delivers its own daily countdown and liftoff on the desk.&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8kg718i" data-start="1095" data-end="1353"&gt;Supporting Links and Downloads&lt;/h2&gt;
&lt;p data-start="1095" data-end="1353"&gt;-&amp;nbsp;&amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/m/files/150996"&gt;Episode 701 Resources&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jc9khe"&gt;Bill of Materials&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-50768" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4208544,4007767,3879694,4062476&amp;nsku=77AK2287,42AK5727,99AJ4561,54AK7721&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('50768'));" data-farnell="4208544,4007767,3879694,4062476" data-newark="77AK2287,42AK5727,99AJ4561,54AK7721" data-comoverride="" data-cmpoverride="" data-cpc=",,," data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Kit&lt;/a&gt; &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Arduino Uno R4 WiFi&lt;/td&gt;
&lt;td&gt;Arduino&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-d0c2e" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4208544&amp;nsku=77AK2287&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('d0c2e'));" data-farnell="4208544" data-newark="77AK2287" 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 Channel Relay Module&lt;/td&gt;
&lt;td&gt;SEEED Studio&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-d6ef5" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4007767&amp;nsku=42AK5727&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('d6ef5'));" data-farnell="4007767" data-newark="42AK5727" 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;NEMA 17 Stepper Motor - FIT0278&lt;/td&gt;
&lt;td&gt;DFROBOT&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-01f9f" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3879694&amp;nsku=99AJ4561&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('01f9f'));" data-farnell="3879694" data-newark="99AJ4561" 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;Black PLA - MP010755&lt;/td&gt;
&lt;td&gt;MULTICOMP PRO&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-7ad65" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4062476&amp;nsku=54AK7721&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('7ad65'));" data-farnell="4062476" data-newark="54AK7721" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="xs-hide"&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jc9khf"&gt;Additional Parts&lt;/h2&gt;
&lt;table class="e14-product-bom-additional"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SLS LEGO Set - &lt;a id="" href="https://www.lego.com/en-us/product/nasa-artemis-space-launch-system-rocket-42221" rel="noopener noreferrer nofollow" target="_blank" data-e14adj="t"&gt;https://www.lego.com/en-us/product/nasa-artemis-space-launch-system-rocket-42221&lt;/a&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Battery Powererd Megaphone&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Quad LED Matrix Module - MAX7219&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A4988 Stepper Motor Driver&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A4988 Adapter Board&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Push buttons&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wires&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Screws M3 and M4&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="mcetoc_1jh8jc9khg"&gt;&lt;/h3&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: arduino alarm clock tutorial, arduino nema 17 stepper tutorial, arduino web server project example, lego motorised rocket arduino, arduino stepper motor project tutorial, diy loud alarm clock project, arduino uno r4 wifi projects, arduino relay control tutorial, diy arudino clock with wifi, arduin projects for beginners and makers, lego arduino integration project, led matrix clock arduino tutorial, hot to control megaphone with arduino, lego alarm clock project, diy smart alarm clock arduino, friday_release&lt;/div&gt;
</description></item><item><title>From Snooze to Launch: The Arduino-Powered LEGO Alarm Clock Inspired by Artemis 2 -- Episode 701</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72031/from-snooze-to-launch-the-arduino-powered-lego-alarm-clock-inspired-by-artemis-2----episode-701/revision/6</link><pubDate>Thu, 12 Feb 2026 11:32:20 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:8c6e2dc4-14f4-4f87-b134-63786c04c12b</guid><dc:creator>e14sbhargav</dc:creator><comments>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72031/from-snooze-to-launch-the-arduino-powered-lego-alarm-clock-inspired-by-artemis-2----episode-701#comments</comments><description>Revision 6 posted to Documents by e14sbhargav on 2/12/2026 11:32:20 AM&lt;br /&gt;
&lt;p&gt;What if your alarm clock launched a rocket instead of playing a gentle tone? In this project, Milos turns the LEGO NASA Artemis SLS into a motorised, Arduino-powered alarm clock that raises the rocket and blasts a megaphone when it&amp;rsquo;s time to wake up. The build combines a NEMA 17 stepper motor, relays to hack a megaphone, an LED matrix display, Wi-Fi control, and a custom web interface so you can configure everything from your browser.&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r0"&gt;Watch the&amp;nbsp;Lift-Off!&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://youtu.be/Qg7JDSrsakI"&gt;https://youtu.be/Qg7JDSrsakI&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r1" data-start="0" data-end="42"&gt;Building the World&amp;rsquo;s Loudest LEGO Alarm Clock&lt;/h2&gt;
&lt;p data-start="44" data-end="421"&gt;When Milos set out to build a new alarm clock, he did not start with typical design constraints like size, comfort, or subtlety. Instead, he started with a simple premise: rockets are among the loudest human-made machines ever created. That idea quickly evolved into a LEGO NASA Artemis rocket that would not just look the part, but behave like a launch sequence every morning.&lt;/p&gt;
&lt;p data-start="423" data-end="583"&gt;The result is a project that blends mechanical LEGO engineering, Arduino automation, reverse-engineered consumer electronics, and a web-based control interface.&lt;/p&gt;
&lt;p data-start="423" data-end="583"&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/pastedimage1770889119242v1.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r2" data-start="590" data-end="639"&gt;From Rocket Inspiration to Alarm Clock Concept&lt;/h2&gt;
&lt;p data-start="641" data-end="1002"&gt;The project began with the LEGO NASA Artemis Space Launch System set. While assembling it, Milos discovered a mechanical detail that set the tone for the entire build: a tiny internal gear designed to rattle during operation to mimic the sound of launch vibration. That detail pushed the concept from a simple motorised display to a full alarm clock experience.&lt;/p&gt;
&lt;p data-start="1004" data-end="1088"&gt;In the transcript, Milos reflects on how the idea escalated beyond a simple novelty:&lt;/p&gt;
&lt;blockquote data-start="1090" data-end="1220"&gt;
&lt;p data-start="1092" data-end="1220"&gt;&lt;em&gt;&lt;strong&gt;&amp;ldquo;I wanted something that would actually force me to wake up&amp;hellip; something you cannot ignore.&amp;rdquo; &lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="1222" data-end="1260"&gt;The design goals quickly became clear:&lt;/p&gt;
&lt;ul data-start="1262" data-end="1387"&gt;
&lt;li data-start="1262" data-end="1300"&gt;
&lt;p data-start="1264" data-end="1300"&gt;Motorise the LEGO launch mechanism&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="1301" data-end="1331"&gt;
&lt;p data-start="1303" data-end="1331"&gt;Add a display and controls&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="1332" data-end="1387"&gt;
&lt;p data-start="1334" data-end="1387"&gt;Create an alarm that is impossible to sleep through&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start="1389" data-end="1456"&gt;The third requirement became the defining challenge of the project.&lt;/p&gt;
&lt;p data-start="1389" data-end="1456"&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/pastedimage1770889159853v2.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/pastedimage1770889183751v3.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r3" data-start="1463" data-end="1511"&gt;Solving the Sound Problem: The Megaphone Hack&lt;/h2&gt;
&lt;p data-start="1513" data-end="1828"&gt;Originally, the plan was to use a megaphone capable of playing MP3 files via USB. The delivered device did not match expectations. Instead of USB playback, it only supported record and playback through a microphone. What initially looked like a setback became one of the project&amp;rsquo;s most interesting design decisions.&lt;/p&gt;
&lt;p data-start="1830" data-end="2090"&gt;The limitation actually made the system more flexible and tactile. Any sound could be recorded directly into the megaphone and replayed as the alarm. This gave the clock a unique personality and avoided the complexity of integrating audio playback electronics.&lt;/p&gt;
&lt;p data-start="2092" data-end="2208"&gt;But controlling the megaphone electronically introduced a major obstacle: it was designed for manual button presses.&lt;/p&gt;
&lt;p data-start="2210" data-end="2248"&gt;Milos explains the workaround clearly:&lt;/p&gt;
&lt;blockquote data-start="2250" data-end="2443"&gt;
&lt;p data-start="2252" data-end="2443"&gt;&lt;em&gt;&lt;strong&gt;&amp;ldquo;The megaphone is designed to be used by pressing the buttons&amp;hellip; so I soldered wires in parallel with the buttons and used relays to simulate the presses.&amp;rdquo; &lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="2445" data-end="2756"&gt;This approach essentially turned the megaphone into a remotely controlled device. The Arduino does not generate audio; it triggers the megaphone&amp;rsquo;s existing circuitry in the correct sequence. It is a clean example of hardware hacking that avoids reinventing functionality already present in consumer electronics.&lt;/p&gt;
&lt;p data-start="2445" data-end="2756"&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/pastedimage1770889296622v4.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r4" data-start="2763" data-end="2811"&gt;Electronics Architecture and Control Strategy&lt;/h2&gt;
&lt;p data-start="2813" data-end="3016"&gt;At the center of the build sits an Arduino Uno R4 WiFi. The choice of board was deliberate: the project requires multiple GPIO pins, relay control, motor control, Wi-Fi connectivity, and a web interface.&lt;/p&gt;
&lt;p data-start="3018" data-end="3105"&gt;From the code, the relay pins controlling the megaphone buttons are defined explicitly:&lt;/p&gt;
&lt;p data-start="3018" data-end="3105"&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define RECORD 3
#define PLAY 4
#define TRIGGER 5
#define STOP 6&lt;/pre&gt;&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&lt;code class="whitespace-pre! language-cpp"&gt;&lt;span&gt;&lt;span class="hljs-meta"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;These outputs allow the Arduino to emulate the physical button presses required to operate the megaphone.&lt;/div&gt;
&lt;div class="overflow-y-auto p-4" dir="ltr"&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/pastedimage1770889369440v5.png" /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="3293" data-end="3358"&gt;The firmware also defines a complete stepper motor configuration:&lt;/p&gt;
&lt;p data-start="3293" data-end="3358"&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define STEP_PIN 9
#define DIR_PIN 8
#define ENABLE_PIN 7
#define LIMIT_SWITCH_MIN 11
#define LIMIT_SWITCH_MAX 12
&lt;/pre&gt;&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div&gt;
&lt;div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;code class="whitespace-pre! language-cpp"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="3486" data-end="3677"&gt;The presence of limit switches is a key safety and reliability feature. The mechanism cannot overrun its physical bounds. This is critical for a device that operates unattended every morning.&lt;/p&gt;
&lt;p data-start="3679" data-end="3739"&gt;Milos notes in the transcript how important reliability was:&lt;/p&gt;
&lt;blockquote data-start="3741" data-end="3885"&gt;
&lt;p data-start="3743" data-end="3885"&gt;&lt;em&gt;&lt;strong&gt;&amp;ldquo;This has to work every day without me touching it, otherwise it defeats the purpose of an alarm clock.&amp;rdquo;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="mcetoc_1jh8jnvreh" data-start="3892" data-end="3942"&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/pastedimage1770889415983v6.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1jh8jas8r5" data-start="3892" data-end="3942"&gt;Mechanical Integration: Driving LEGO from Below&lt;/h2&gt;
&lt;p data-start="3944" data-end="4040"&gt;One of the most thoughtful aspects of the build is how the motor integrates with the LEGO model.&lt;/p&gt;
&lt;p data-start="4042" data-end="4270"&gt;Rather than mounting the stepper motor visibly on the side, Milos redesigned the drive path so the motor sits beneath the rocket base. He created a 3D-printed coupler that connects a NEMA 17 stepper motor to the LEGO gear train.&lt;/p&gt;
&lt;p data-start="4272" data-end="4492"&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/pastedimage1770889438147v7.png" /&gt;&lt;/p&gt;
&lt;p data-start="4272" data-end="4492"&gt;This preserves the visual integrity of the LEGO set while still using the original gearing. It also highlights a recurring theme in the project: keep the LEGO aesthetic intact while embedding real engineering underneath.&lt;/p&gt;
&lt;p data-start="4494" data-end="4545"&gt;He explains this design decision in the transcript:&lt;/p&gt;
&lt;blockquote data-start="4547" data-end="4677"&gt;
&lt;p data-start="4549" data-end="4677"&gt;&lt;em&gt;&lt;strong&gt;&amp;ldquo;I didn&amp;rsquo;t want the motor visible anywhere&amp;hellip; everything had to stay hidden under the model.&amp;rdquo; &lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="4679" data-end="4824"&gt;The enclosure itself was printed in black PLA and dimension-ed using LEGO&amp;rsquo;s standardised spacing, making the mechanical alignment straightforward.&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r6" data-start="4831" data-end="4867"&gt;Software Design and Web Interface&lt;/h2&gt;
&lt;p data-start="4869" data-end="5030"&gt;The software side of the project is far more sophisticated than a typical Arduino alarm clock. The firmware includes Wi-Fi connectivity and a full web interface.&lt;/p&gt;
&lt;p data-start="5032" data-end="5069"&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/pastedimage1770889971821v9.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/pastedimage1770889981635v10.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/pastedimage1770889986720v11.png" /&gt;&lt;/p&gt;
&lt;p data-start="5032" data-end="5069"&gt;Key features of the firmware include:&lt;/p&gt;
&lt;ul data-start="5071" data-end="5297"&gt;
&lt;li data-start="5071" data-end="5114"&gt;
&lt;p data-start="5073" data-end="5114"&gt;Static IP configuration for easy access&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5115" data-end="5145"&gt;
&lt;p data-start="5117" data-end="5145"&gt;Web-based alarm scheduling&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5146" data-end="5183"&gt;
&lt;p data-start="5148" data-end="5183"&gt;Time synchronisation via internet&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5184" data-end="5223"&gt;
&lt;p data-start="5186" data-end="5223"&gt;Relay testing and calibration tools&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5224" data-end="5263"&gt;
&lt;p data-start="5226" data-end="5263"&gt;Stepper motor min/max configuration&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5264" data-end="5297"&gt;
&lt;p data-start="5266" data-end="5297"&gt;LED matrix brightness control&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start="5299" data-end="5313"&gt;From the code:&lt;/p&gt;
&lt;p data-start="5299" data-end="5313"&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define NTP_SERVER &amp;quot;pool.ntp.org&amp;quot;
#define GMT_OFFSET_SEC 0
#define DAYLIGHT_OFFSET_SEC 3600
&lt;/pre&gt;&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div&gt;
&lt;div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;code class="whitespace-pre! language-cpp"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="5419" data-end="5513"&gt;This enables automatic time updates using NTP, eliminating the need to manually set the clock.&lt;/p&gt;
&lt;p data-start="5515" data-end="5709"&gt;The web interface is designed to complement physical controls rather than replace them. Physical buttons remain available for emergency silence when the megaphone begins blasting in the morning.&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r7" data-start="5716" data-end="5749"&gt;Sequencing the Wake-Up Routine&lt;/h2&gt;
&lt;p data-start="5751" data-end="5811"&gt;The firmware reveals how the alarm sequence is orchestrated.&lt;/p&gt;
&lt;p data-start="5813" data-end="5858"&gt;Timing constants define the startup behaviour:&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div&gt;
&lt;div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define RECORD_DELAY 2000
#define PLAY_DELAY 2000
#define MOTOR_RUN_TIME 15000
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="5951" data-end="6000"&gt;This suggests a carefully choreographed sequence:&lt;/p&gt;
&lt;ol data-start="6002" data-end="6186"&gt;
&lt;li data-start="6002" data-end="6052"&gt;
&lt;p data-start="6005" data-end="6052"&gt;Trigger megaphone playback via relay sequence&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="6053" data-end="6111"&gt;
&lt;p data-start="6056" data-end="6111"&gt;Run the stepper motor to animate the rocket mechanism&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="6112" data-end="6153"&gt;
&lt;p data-start="6115" data-end="6153"&gt;Maintain motion for a fixed duration&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="6154" data-end="6186"&gt;
&lt;p data-start="6157" data-end="6186"&gt;Allow manual stop if needed&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-start="6188" data-end="6296"&gt;The combination of mechanical motion and amplified audio turns the wake-up routine into a full launch event.&lt;/p&gt;
&lt;p data-start="6188" data-end="6296"&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/pastedimage1770890210579v12.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-03-81/pastedimage1770890221427v13.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r8" data-start="6303" data-end="6336"&gt;Challenges and Lessons Learned&lt;/h2&gt;
&lt;p data-start="6338" data-end="6426"&gt;&lt;/p&gt;
&lt;p data-start="0" data-end="538"&gt;As the real Artemis mission prepares for launch, Milos discovered that the biggest challenge in building his own morning &amp;ldquo;launch system&amp;rdquo; wasn&amp;rsquo;t the mechanics or the code, it was the wiring. Packing everything neatly into the enclosure turned into the most time-consuming part of the build. As he admits, &lt;strong&gt;&lt;em data-start="305" data-end="378"&gt;&amp;ldquo;The wiring was definitely the most tedious part of the whole project.&amp;rdquo;&lt;/em&gt;&lt;/strong&gt; That challenge reflects the wider balance he was aiming for: something bold and loud enough to wake you instantly, but reliable enough to run every single day.&lt;/p&gt;
&lt;p data-start="540" data-end="792"&gt;The decision to control the megaphone using relays captures that mindset perfectly. Instead of redesigning the megaphone electronics, Milos focused on a practical solution that works consistently and keeps the build approachable for others to recreate.&lt;/p&gt;
&lt;p data-start="794" data-end="1093"&gt;This isn&amp;rsquo;t a finished idea either. Milos already sees the project as something to keep evolving. &lt;strong&gt;&lt;em data-start="891" data-end="948"&gt;&amp;ldquo;There are definitely more things I want to add later,&amp;rdquo;&lt;/em&gt;&lt;/strong&gt; he says, with plans to keep experimenting with the web interface, motion behaviour, sounds, and general refinements to the enclosure and wiring.&lt;/p&gt;
&lt;p data-start="1095" data-end="1353"&gt;Even now, the project works exactly as intended: a dramatic, over-the-top alarm clock inspired by a real rocket launch. With the Artemis mission on the horizon, it feels fitting that this LEGO SLS now delivers its own daily countdown and liftoff on the desk.&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8kg718i" data-start="1095" data-end="1353"&gt;Supporting Links and Downloads&lt;/h2&gt;
&lt;p data-start="1095" data-end="1353"&gt;-&amp;nbsp;&amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/m/files/150996"&gt;Episode 701 Resources&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jc9khe"&gt;Bill of Materials&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-dd176" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4208544,4007767,3879694,4062476&amp;nsku=77AK2287,42AK5727,99AJ4561,54AK7721&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('dd176'));" data-farnell="4208544,4007767,3879694,4062476" data-newark="77AK2287,42AK5727,99AJ4561,54AK7721" data-comoverride="" data-cmpoverride="" data-cpc=",,," data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Kit&lt;/a&gt; &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Arduino Uno R4 WiFi&lt;/td&gt;
&lt;td&gt;Arduino&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-4d42f" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4208544&amp;nsku=77AK2287&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('4d42f'));" data-farnell="4208544" data-newark="77AK2287" 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 Channel Relay Module&lt;/td&gt;
&lt;td&gt;SEEED Studio&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-4c661" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4007767&amp;nsku=42AK5727&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('4c661'));" data-farnell="4007767" data-newark="42AK5727" 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;NEMA 17 Stepper Motor - FIT0278&lt;/td&gt;
&lt;td&gt;DFROBOT&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-35d61" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3879694&amp;nsku=99AJ4561&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('35d61'));" data-farnell="3879694" data-newark="99AJ4561" 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;Black PLA - MP010755&lt;/td&gt;
&lt;td&gt;MULTICOMP PRO&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-0f49a" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4062476&amp;nsku=54AK7721&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('0f49a'));" data-farnell="4062476" data-newark="54AK7721" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="xs-hide"&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jc9khf"&gt;Additional Parts&lt;/h2&gt;
&lt;table class="e14-product-bom-additional"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SLS LEGO Set - &lt;a id="" href="https://www.lego.com/en-us/product/nasa-artemis-space-launch-system-rocket-42221" rel="noopener noreferrer nofollow" target="_blank" data-e14adj="t"&gt;https://www.lego.com/en-us/product/nasa-artemis-space-launch-system-rocket-42221&lt;/a&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Battery Powererd Megaphone&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Quad LED Matrix Module - MAX7219&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A4988 Stepper Motor Driver&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A4988 Adapter Board&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Push buttons&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wires&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Screws M3 and M4&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="mcetoc_1jh8jc9khg"&gt;&lt;/h3&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: arduino alarm clock tutorial, arduino nema 17 stepper tutorial, arduino web server project example, lego motorised rocket arduino, arduino stepper motor project tutorial, diy loud alarm clock project, arduino uno r4 wifi projects, arduino relay control tutorial, diy arudino clock with wifi, arduin projects for beginners and makers, lego arduino integration project, led matrix clock arduino tutorial, hot to control megaphone with arduino, lego alarm clock project, diy smart alarm clock arduino, friday_release&lt;/div&gt;
</description></item><item><title>From Snooze to Launch: The Arduino-Powered LEGO Alarm Clock Inspired by Artemis 2 -- Episode 701</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72031/from-snooze-to-launch-the-arduino-powered-lego-alarm-clock-inspired-by-artemis-2----episode-701/revision/4</link><pubDate>Thu, 12 Feb 2026 10:06:31 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:8c6e2dc4-14f4-4f87-b134-63786c04c12b</guid><dc:creator>cstanton</dc:creator><comments>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72031/from-snooze-to-launch-the-arduino-powered-lego-alarm-clock-inspired-by-artemis-2----episode-701#comments</comments><description>Revision 4 posted to Documents by cstanton on 2/12/2026 10:06:31 AM&lt;br /&gt;
&lt;p&gt;What if your alarm clock launched a rocket instead of playing a gentle tone? In this project, Milos turns the LEGO NASA Artemis SLS into a motorised, Arduino-powered alarm clock that raises the rocket and blasts a megaphone when it&amp;rsquo;s time to wake up. The build combines a NEMA 17 stepper motor, relays to hack a megaphone, an LED matrix display, Wi-Fi control, and a custom web interface so you can configure everything from your browser.&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r0"&gt;Watch the&amp;nbsp;Lift-Off!&lt;/h2&gt;
&lt;p&gt;&amp;lt;embed video&amp;gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r1" data-start="0" data-end="42"&gt;Building the World&amp;rsquo;s Loudest LEGO Alarm Clock&lt;/h2&gt;
&lt;p data-start="44" data-end="421"&gt;When Milos set out to build a new alarm clock, he did not start with typical design constraints like size, comfort, or subtlety. Instead, he started with a simple premise: rockets are among the loudest human-made machines ever created. That idea quickly evolved into a LEGO NASA Artemis rocket that would not just look the part, but behave like a launch sequence every morning.&lt;/p&gt;
&lt;p data-start="423" data-end="583"&gt;The result is a project that blends mechanical LEGO engineering, Arduino automation, reverse-engineered consumer electronics, and a web-based control interface.&lt;/p&gt;
&lt;p data-start="423" data-end="583"&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/pastedimage1770889119242v1.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r2" data-start="590" data-end="639"&gt;From Rocket Inspiration to Alarm Clock Concept&lt;/h2&gt;
&lt;p data-start="641" data-end="1002"&gt;The project began with the LEGO NASA Artemis Space Launch System set. While assembling it, Milos discovered a mechanical detail that set the tone for the entire build: a tiny internal gear designed to rattle during operation to mimic the sound of launch vibration. That detail pushed the concept from a simple motorised display to a full alarm clock experience.&lt;/p&gt;
&lt;p data-start="1004" data-end="1088"&gt;In the transcript, Milos reflects on how the idea escalated beyond a simple novelty:&lt;/p&gt;
&lt;blockquote data-start="1090" data-end="1220"&gt;
&lt;p data-start="1092" data-end="1220"&gt;&lt;em&gt;&lt;strong&gt;&amp;ldquo;I wanted something that would actually force me to wake up&amp;hellip; something you cannot ignore.&amp;rdquo; &lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="1222" data-end="1260"&gt;The design goals quickly became clear:&lt;/p&gt;
&lt;ul data-start="1262" data-end="1387"&gt;
&lt;li data-start="1262" data-end="1300"&gt;
&lt;p data-start="1264" data-end="1300"&gt;Motorise the LEGO launch mechanism&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="1301" data-end="1331"&gt;
&lt;p data-start="1303" data-end="1331"&gt;Add a display and controls&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="1332" data-end="1387"&gt;
&lt;p data-start="1334" data-end="1387"&gt;Create an alarm that is impossible to sleep through&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start="1389" data-end="1456"&gt;The third requirement became the defining challenge of the project.&lt;/p&gt;
&lt;p data-start="1389" data-end="1456"&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/pastedimage1770889159853v2.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/pastedimage1770889183751v3.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r3" data-start="1463" data-end="1511"&gt;Solving the Sound Problem: The Megaphone Hack&lt;/h2&gt;
&lt;p data-start="1513" data-end="1828"&gt;Originally, the plan was to use a megaphone capable of playing MP3 files via USB. The delivered device did not match expectations. Instead of USB playback, it only supported record and playback through a microphone. What initially looked like a setback became one of the project&amp;rsquo;s most interesting design decisions.&lt;/p&gt;
&lt;p data-start="1830" data-end="2090"&gt;The limitation actually made the system more flexible and tactile. Any sound could be recorded directly into the megaphone and replayed as the alarm. This gave the clock a unique personality and avoided the complexity of integrating audio playback electronics.&lt;/p&gt;
&lt;p data-start="2092" data-end="2208"&gt;But controlling the megaphone electronically introduced a major obstacle: it was designed for manual button presses.&lt;/p&gt;
&lt;p data-start="2210" data-end="2248"&gt;Milos explains the workaround clearly:&lt;/p&gt;
&lt;blockquote data-start="2250" data-end="2443"&gt;
&lt;p data-start="2252" data-end="2443"&gt;&lt;em&gt;&lt;strong&gt;&amp;ldquo;The megaphone is designed to be used by pressing the buttons&amp;hellip; so I soldered wires in parallel with the buttons and used relays to simulate the presses.&amp;rdquo; &lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="2445" data-end="2756"&gt;This approach essentially turned the megaphone into a remotely controlled device. The Arduino does not generate audio; it triggers the megaphone&amp;rsquo;s existing circuitry in the correct sequence. It is a clean example of hardware hacking that avoids reinventing functionality already present in consumer electronics.&lt;/p&gt;
&lt;p data-start="2445" data-end="2756"&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/pastedimage1770889296622v4.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r4" data-start="2763" data-end="2811"&gt;Electronics Architecture and Control Strategy&lt;/h2&gt;
&lt;p data-start="2813" data-end="3016"&gt;At the center of the build sits an Arduino Uno R4 WiFi. The choice of board was deliberate: the project requires multiple GPIO pins, relay control, motor control, Wi-Fi connectivity, and a web interface.&lt;/p&gt;
&lt;p data-start="3018" data-end="3105"&gt;From the code, the relay pins controlling the megaphone buttons are defined explicitly:&lt;/p&gt;
&lt;p data-start="3018" data-end="3105"&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define RECORD 3
#define PLAY 4
#define TRIGGER 5
#define STOP 6&lt;/pre&gt;&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&lt;code class="whitespace-pre! language-cpp"&gt;&lt;span&gt;&lt;span class="hljs-meta"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;These outputs allow the Arduino to emulate the physical button presses required to operate the megaphone.&lt;/div&gt;
&lt;div class="overflow-y-auto p-4" dir="ltr"&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/pastedimage1770889369440v5.png" /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="3293" data-end="3358"&gt;The firmware also defines a complete stepper motor configuration:&lt;/p&gt;
&lt;p data-start="3293" data-end="3358"&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define STEP_PIN 9
#define DIR_PIN 8
#define ENABLE_PIN 7
#define LIMIT_SWITCH_MIN 11
#define LIMIT_SWITCH_MAX 12
&lt;/pre&gt;&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div&gt;
&lt;div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;code class="whitespace-pre! language-cpp"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="3486" data-end="3677"&gt;The presence of limit switches is a key safety and reliability feature. The mechanism cannot overrun its physical bounds. This is critical for a device that operates unattended every morning.&lt;/p&gt;
&lt;p data-start="3679" data-end="3739"&gt;Milos notes in the transcript how important reliability was:&lt;/p&gt;
&lt;blockquote data-start="3741" data-end="3885"&gt;
&lt;p data-start="3743" data-end="3885"&gt;&lt;em&gt;&lt;strong&gt;&amp;ldquo;This has to work every day without me touching it, otherwise it defeats the purpose of an alarm clock.&amp;rdquo;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="mcetoc_1jh8jnvreh" data-start="3892" data-end="3942"&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/pastedimage1770889415983v6.png" /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1jh8jas8r5" data-start="3892" data-end="3942"&gt;Mechanical Integration: Driving LEGO from Below&lt;/h2&gt;
&lt;p data-start="3944" data-end="4040"&gt;One of the most thoughtful aspects of the build is how the motor integrates with the LEGO model.&lt;/p&gt;
&lt;p data-start="4042" data-end="4270"&gt;Rather than mounting the stepper motor visibly on the side, Milos redesigned the drive path so the motor sits beneath the rocket base. He created a 3D-printed coupler that connects a NEMA 17 stepper motor to the LEGO gear train.&lt;/p&gt;
&lt;p data-start="4272" data-end="4492"&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/pastedimage1770889438147v7.png" /&gt;&lt;/p&gt;
&lt;p data-start="4272" data-end="4492"&gt;This preserves the visual integrity of the LEGO set while still using the original gearing. It also highlights a recurring theme in the project: keep the LEGO aesthetic intact while embedding real engineering underneath.&lt;/p&gt;
&lt;p data-start="4494" data-end="4545"&gt;He explains this design decision in the transcript:&lt;/p&gt;
&lt;blockquote data-start="4547" data-end="4677"&gt;
&lt;p data-start="4549" data-end="4677"&gt;&lt;em&gt;&lt;strong&gt;&amp;ldquo;I didn&amp;rsquo;t want the motor visible anywhere&amp;hellip; everything had to stay hidden under the model.&amp;rdquo; &lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="4679" data-end="4824"&gt;The enclosure itself was printed in black PLA and dimension-ed using LEGO&amp;rsquo;s standardised spacing, making the mechanical alignment straightforward.&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r6" data-start="4831" data-end="4867"&gt;Software Design and Web Interface&lt;/h2&gt;
&lt;p data-start="4869" data-end="5030"&gt;The software side of the project is far more sophisticated than a typical Arduino alarm clock. The firmware includes Wi-Fi connectivity and a full web interface.&lt;/p&gt;
&lt;p data-start="5032" data-end="5069"&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/pastedimage1770889971821v9.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/pastedimage1770889981635v10.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/pastedimage1770889986720v11.png" /&gt;&lt;/p&gt;
&lt;p data-start="5032" data-end="5069"&gt;Key features of the firmware include:&lt;/p&gt;
&lt;ul data-start="5071" data-end="5297"&gt;
&lt;li data-start="5071" data-end="5114"&gt;
&lt;p data-start="5073" data-end="5114"&gt;Static IP configuration for easy access&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5115" data-end="5145"&gt;
&lt;p data-start="5117" data-end="5145"&gt;Web-based alarm scheduling&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5146" data-end="5183"&gt;
&lt;p data-start="5148" data-end="5183"&gt;Time synchronisation via internet&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5184" data-end="5223"&gt;
&lt;p data-start="5186" data-end="5223"&gt;Relay testing and calibration tools&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5224" data-end="5263"&gt;
&lt;p data-start="5226" data-end="5263"&gt;Stepper motor min/max configuration&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5264" data-end="5297"&gt;
&lt;p data-start="5266" data-end="5297"&gt;LED matrix brightness control&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start="5299" data-end="5313"&gt;From the code:&lt;/p&gt;
&lt;p data-start="5299" data-end="5313"&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define NTP_SERVER &amp;quot;pool.ntp.org&amp;quot;
#define GMT_OFFSET_SEC 0
#define DAYLIGHT_OFFSET_SEC 3600
&lt;/pre&gt;&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div&gt;
&lt;div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;code class="whitespace-pre! language-cpp"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="5419" data-end="5513"&gt;This enables automatic time updates using NTP, eliminating the need to manually set the clock.&lt;/p&gt;
&lt;p data-start="5515" data-end="5709"&gt;The web interface is designed to complement physical controls rather than replace them. Physical buttons remain available for emergency silence when the megaphone begins blasting in the morning.&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r7" data-start="5716" data-end="5749"&gt;Sequencing the Wake-Up Routine&lt;/h2&gt;
&lt;p data-start="5751" data-end="5811"&gt;The firmware reveals how the alarm sequence is orchestrated.&lt;/p&gt;
&lt;p data-start="5813" data-end="5858"&gt;Timing constants define the startup behaviour:&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div&gt;
&lt;div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define RECORD_DELAY 2000
#define PLAY_DELAY 2000
#define MOTOR_RUN_TIME 15000
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="5951" data-end="6000"&gt;This suggests a carefully choreographed sequence:&lt;/p&gt;
&lt;ol data-start="6002" data-end="6186"&gt;
&lt;li data-start="6002" data-end="6052"&gt;
&lt;p data-start="6005" data-end="6052"&gt;Trigger megaphone playback via relay sequence&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="6053" data-end="6111"&gt;
&lt;p data-start="6056" data-end="6111"&gt;Run the stepper motor to animate the rocket mechanism&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="6112" data-end="6153"&gt;
&lt;p data-start="6115" data-end="6153"&gt;Maintain motion for a fixed duration&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="6154" data-end="6186"&gt;
&lt;p data-start="6157" data-end="6186"&gt;Allow manual stop if needed&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-start="6188" data-end="6296"&gt;The combination of mechanical motion and amplified audio turns the wake-up routine into a full launch event.&lt;/p&gt;
&lt;p data-start="6188" data-end="6296"&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/pastedimage1770890210579v12.png" /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;"  src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/pastedimage1770890221427v13.png" /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r8" data-start="6303" data-end="6336"&gt;Challenges and Lessons Learned&lt;/h2&gt;
&lt;p data-start="6338" data-end="6426"&gt;&lt;/p&gt;
&lt;p data-start="0" data-end="538"&gt;As the real Artemis mission prepares for launch, Milos discovered that the biggest challenge in building his own morning &amp;ldquo;launch system&amp;rdquo; wasn&amp;rsquo;t the mechanics or the code, it was the wiring. Packing everything neatly into the enclosure turned into the most time-consuming part of the build. As he admits, &lt;strong&gt;&lt;em data-start="305" data-end="378"&gt;&amp;ldquo;The wiring was definitely the most tedious part of the whole project.&amp;rdquo;&lt;/em&gt;&lt;/strong&gt; That challenge reflects the wider balance he was aiming for: something bold and loud enough to wake you instantly, but reliable enough to run every single day.&lt;/p&gt;
&lt;p data-start="540" data-end="792"&gt;The decision to control the megaphone using relays captures that mindset perfectly. Instead of redesigning the megaphone electronics, Milos focused on a practical solution that works consistently and keeps the build approachable for others to recreate.&lt;/p&gt;
&lt;p data-start="794" data-end="1093"&gt;This isn&amp;rsquo;t a finished idea either. Milos already sees the project as something to keep evolving. &lt;strong&gt;&lt;em data-start="891" data-end="948"&gt;&amp;ldquo;There are definitely more things I want to add later,&amp;rdquo;&lt;/em&gt;&lt;/strong&gt; he says, with plans to keep experimenting with the web interface, motion behaviour, sounds, and general refinements to the enclosure and wiring.&lt;/p&gt;
&lt;p data-start="1095" data-end="1353"&gt;Even now, the project works exactly as intended: a dramatic, over-the-top alarm clock inspired by a real rocket launch. With the Artemis mission on the horizon, it feels fitting that this LEGO SLS now delivers its own daily countdown and liftoff on the desk.&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8kg718i" data-start="1095" data-end="1353"&gt;Supporting Links and Downloads&lt;/h2&gt;
&lt;p data-start="1095" data-end="1353"&gt;-&amp;nbsp;&amp;nbsp;&lt;a href="https://community.element14.com/challenges-projects/element14-presents/m/files/150996"&gt;Episode 701 Resources&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jc9khe"&gt;Bill of Materials&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-a319c" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4208544,4007767,3879694,4062476&amp;nsku=77AK2287,42AK5727,99AJ4561,54AK7721&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('a319c'));" data-farnell="4208544,4007767,3879694,4062476" data-newark="77AK2287,42AK5727,99AJ4561,54AK7721" data-comoverride="" data-cmpoverride="" data-cpc=",,," data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Kit&lt;/a&gt; &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Arduino Uno R4 WiFi&lt;/td&gt;
&lt;td&gt;Arduino&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-a6c7c" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4208544&amp;nsku=77AK2287&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('a6c7c'));" data-farnell="4208544" data-newark="77AK2287" 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 Channel Relay Module&lt;/td&gt;
&lt;td&gt;SEEED Studio&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-dcc74" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4007767&amp;nsku=42AK5727&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('dcc74'));" data-farnell="4007767" data-newark="42AK5727" 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;NEMA 17 Stepper Motor - FIT0278&lt;/td&gt;
&lt;td&gt;DFROBOT&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-ba135" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3879694&amp;nsku=99AJ4561&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('ba135'));" data-farnell="3879694" data-newark="99AJ4561" 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;Black PLA - MP010755&lt;/td&gt;
&lt;td&gt;MULTICOMP PRO&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-ea3d7" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4062476&amp;nsku=54AK7721&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('ea3d7'));" data-farnell="4062476" data-newark="54AK7721" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="xs-hide"&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jc9khf"&gt;Additional Parts&lt;/h2&gt;
&lt;table class="e14-product-bom-additional"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SLS LEGO Set - &lt;a id="" href="https://www.lego.com/en-us/product/nasa-artemis-space-launch-system-rocket-42221" rel="noopener noreferrer nofollow" target="_blank" data-e14adj="t"&gt;https://www.lego.com/en-us/product/nasa-artemis-space-launch-system-rocket-42221&lt;/a&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Battery Powererd Megaphone&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Quad LED Matrix Module - MAX7219&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A4988 Stepper Motor Driver&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A4988 Adapter Board&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Push buttons&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wires&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Screws M3 and M4&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="mcetoc_1jh8jc9khg"&gt;&lt;/h3&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: arduino alarm clock tutorial, arduino nema 17 stepper tutorial, arduino web server project example, lego motorised rocket arduino, arduino stepper motor project tutorial, diy loud alarm clock project, arduino uno r4 wifi projects, arduino relay control tutorial, diy arudino clock with wifi, arduin projects for beginners and makers, lego arduino integration project, led matrix clock arduino tutorial, hot to control megaphone with arduino, lego alarm clock project, diy smart alarm clock arduino, friday_release&lt;/div&gt;
</description></item><item><title>From Snooze to Launch: The Arduino-Powered LEGO Alarm Clock Inspired by Artemis 2 -- Episode 701</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72031/from-snooze-to-launch-the-arduino-powered-lego-alarm-clock-inspired-by-artemis-2----episode-701/revision/3</link><pubDate>Thu, 12 Feb 2026 09:57:16 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:8c6e2dc4-14f4-4f87-b134-63786c04c12b</guid><dc:creator>cstanton</dc:creator><comments>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72031/from-snooze-to-launch-the-arduino-powered-lego-alarm-clock-inspired-by-artemis-2----episode-701#comments</comments><description>Revision 3 posted to Documents by cstanton on 2/12/2026 9:57:16 AM&lt;br /&gt;
&lt;p&gt;What if your alarm clock launched a rocket instead of playing a gentle tone? In this project, Milos turns the LEGO NASA Artemis SLS into a motorised, Arduino-powered alarm clock that raises the rocket and blasts a megaphone when it&amp;rsquo;s time to wake up. The build combines a NEMA 17 stepper motor, relays to hack a megaphone, an LED matrix display, Wi-Fi control, and a custom web interface so you can configure everything from your browser.&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r0"&gt;Watch the&amp;nbsp;Lift-Off!&lt;/h2&gt;
&lt;p&gt;&amp;lt;embed video&amp;gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r1" data-start="0" data-end="42"&gt;Building the World&amp;rsquo;s Loudest LEGO Alarm Clock&lt;/h2&gt;
&lt;p data-start="44" data-end="421"&gt;When Milos set out to build a new alarm clock, he did not start with typical design constraints like size, comfort, or subtlety. Instead, he started with a simple premise: rockets are among the loudest human-made machines ever created. That idea quickly evolved into a LEGO NASA Artemis rocket that would not just look the part, but behave like a launch sequence every morning.&lt;/p&gt;
&lt;p data-start="423" data-end="583"&gt;The result is a project that blends mechanical LEGO engineering, Arduino automation, reverse-engineered consumer electronics, and a web-based control interface.&lt;/p&gt;
&lt;p data-start="423" data-end="583"&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/pastedimage1770889119242v1.png"  /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r2" data-start="590" data-end="639"&gt;From Rocket Inspiration to Alarm Clock Concept&lt;/h2&gt;
&lt;p data-start="641" data-end="1002"&gt;The project began with the LEGO NASA Artemis Space Launch System set. While assembling it, Milos discovered a mechanical detail that set the tone for the entire build: a tiny internal gear designed to rattle during operation to mimic the sound of launch vibration. That detail pushed the concept from a simple motorised display to a full alarm clock experience.&lt;/p&gt;
&lt;p data-start="1004" data-end="1088"&gt;In the transcript, Milos reflects on how the idea escalated beyond a simple novelty:&lt;/p&gt;
&lt;blockquote data-start="1090" data-end="1220"&gt;
&lt;p data-start="1092" data-end="1220"&gt;&lt;em&gt;&lt;strong&gt;&amp;ldquo;I wanted something that would actually force me to wake up&amp;hellip; something you cannot ignore.&amp;rdquo; &lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="1222" data-end="1260"&gt;The design goals quickly became clear:&lt;/p&gt;
&lt;ul data-start="1262" data-end="1387"&gt;
&lt;li data-start="1262" data-end="1300"&gt;
&lt;p data-start="1264" data-end="1300"&gt;Motorise the LEGO launch mechanism&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="1301" data-end="1331"&gt;
&lt;p data-start="1303" data-end="1331"&gt;Add a display and controls&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="1332" data-end="1387"&gt;
&lt;p data-start="1334" data-end="1387"&gt;Create an alarm that is impossible to sleep through&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start="1389" data-end="1456"&gt;The third requirement became the defining challenge of the project.&lt;/p&gt;
&lt;p data-start="1389" data-end="1456"&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/pastedimage1770889159853v2.png"  /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;" src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/pastedimage1770889183751v3.png"  /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r3" data-start="1463" data-end="1511"&gt;Solving the Sound Problem: The Megaphone Hack&lt;/h2&gt;
&lt;p data-start="1513" data-end="1828"&gt;Originally, the plan was to use a megaphone capable of playing MP3 files via USB. The delivered device did not match expectations. Instead of USB playback, it only supported record and playback through a microphone. What initially looked like a setback became one of the project&amp;rsquo;s most interesting design decisions.&lt;/p&gt;
&lt;p data-start="1830" data-end="2090"&gt;The limitation actually made the system more flexible and tactile. Any sound could be recorded directly into the megaphone and replayed as the alarm. This gave the clock a unique personality and avoided the complexity of integrating audio playback electronics.&lt;/p&gt;
&lt;p data-start="2092" data-end="2208"&gt;But controlling the megaphone electronically introduced a major obstacle: it was designed for manual button presses.&lt;/p&gt;
&lt;p data-start="2210" data-end="2248"&gt;Milos explains the workaround clearly:&lt;/p&gt;
&lt;blockquote data-start="2250" data-end="2443"&gt;
&lt;p data-start="2252" data-end="2443"&gt;&lt;em&gt;&lt;strong&gt;&amp;ldquo;The megaphone is designed to be used by pressing the buttons&amp;hellip; so I soldered wires in parallel with the buttons and used relays to simulate the presses.&amp;rdquo; &lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="2445" data-end="2756"&gt;This approach essentially turned the megaphone into a remotely controlled device. The Arduino does not generate audio; it triggers the megaphone&amp;rsquo;s existing circuitry in the correct sequence. It is a clean example of hardware hacking that avoids reinventing functionality already present in consumer electronics.&lt;/p&gt;
&lt;p data-start="2445" data-end="2756"&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/pastedimage1770889296622v4.png"  /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r4" data-start="2763" data-end="2811"&gt;Electronics Architecture and Control Strategy&lt;/h2&gt;
&lt;p data-start="2813" data-end="3016"&gt;At the center of the build sits an Arduino Uno R4 WiFi. The choice of board was deliberate: the project requires multiple GPIO pins, relay control, motor control, Wi-Fi connectivity, and a web interface.&lt;/p&gt;
&lt;p data-start="3018" data-end="3105"&gt;From the code, the relay pins controlling the megaphone buttons are defined explicitly:&lt;/p&gt;
&lt;p data-start="3018" data-end="3105"&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define RECORD 3
#define PLAY 4
#define TRIGGER 5
#define STOP 6&lt;/pre&gt;&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&lt;code class="whitespace-pre! language-cpp"&gt;&lt;span&gt;&lt;span class="hljs-meta"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;These outputs allow the Arduino to emulate the physical button presses required to operate the megaphone.&lt;/div&gt;
&lt;div class="overflow-y-auto p-4" dir="ltr"&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/pastedimage1770889369440v5.png"  /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="3293" data-end="3358"&gt;The firmware also defines a complete stepper motor configuration:&lt;/p&gt;
&lt;p data-start="3293" data-end="3358"&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define STEP_PIN 9
#define DIR_PIN 8
#define ENABLE_PIN 7
#define LIMIT_SWITCH_MIN 11
#define LIMIT_SWITCH_MAX 12
&lt;/pre&gt;&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div&gt;
&lt;div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;code class="whitespace-pre! language-cpp"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="3486" data-end="3677"&gt;The presence of limit switches is a key safety and reliability feature. The mechanism cannot overrun its physical bounds. This is critical for a device that operates unattended every morning.&lt;/p&gt;
&lt;p data-start="3679" data-end="3739"&gt;Milos notes in the transcript how important reliability was:&lt;/p&gt;
&lt;blockquote data-start="3741" data-end="3885"&gt;
&lt;p data-start="3743" data-end="3885"&gt;&lt;em&gt;&lt;strong&gt;&amp;ldquo;This has to work every day without me touching it, otherwise it defeats the purpose of an alarm clock.&amp;rdquo;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="mcetoc_1jh8jnvreh" data-start="3892" data-end="3942"&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/pastedimage1770889415983v6.png"  /&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1jh8jas8r5" data-start="3892" data-end="3942"&gt;Mechanical Integration: Driving LEGO from Below&lt;/h2&gt;
&lt;p data-start="3944" data-end="4040"&gt;One of the most thoughtful aspects of the build is how the motor integrates with the LEGO model.&lt;/p&gt;
&lt;p data-start="4042" data-end="4270"&gt;Rather than mounting the stepper motor visibly on the side, Milos redesigned the drive path so the motor sits beneath the rocket base. He created a 3D-printed coupler that connects a NEMA 17 stepper motor to the LEGO gear train.&lt;/p&gt;
&lt;p data-start="4272" data-end="4492"&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/pastedimage1770889438147v7.png"  /&gt;&lt;/p&gt;
&lt;p data-start="4272" data-end="4492"&gt;This preserves the visual integrity of the LEGO set while still using the original gearing. It also highlights a recurring theme in the project: keep the LEGO aesthetic intact while embedding real engineering underneath.&lt;/p&gt;
&lt;p data-start="4494" data-end="4545"&gt;He explains this design decision in the transcript:&lt;/p&gt;
&lt;blockquote data-start="4547" data-end="4677"&gt;
&lt;p data-start="4549" data-end="4677"&gt;&lt;em&gt;&lt;strong&gt;&amp;ldquo;I didn&amp;rsquo;t want the motor visible anywhere&amp;hellip; everything had to stay hidden under the model.&amp;rdquo; &lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="4679" data-end="4824"&gt;The enclosure itself was printed in black PLA and dimension-ed using LEGO&amp;rsquo;s standardised spacing, making the mechanical alignment straightforward.&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r6" data-start="4831" data-end="4867"&gt;Software Design and Web Interface&lt;/h2&gt;
&lt;p data-start="4869" data-end="5030"&gt;The software side of the project is far more sophisticated than a typical Arduino alarm clock. The firmware includes Wi-Fi connectivity and a full web interface.&lt;/p&gt;
&lt;p data-start="5032" data-end="5069"&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/pastedimage1770889971821v9.png"  /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;" src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/pastedimage1770889981635v10.png"  /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;" src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/pastedimage1770889986720v11.png"  /&gt;&lt;/p&gt;
&lt;p data-start="5032" data-end="5069"&gt;Key features of the firmware include:&lt;/p&gt;
&lt;ul data-start="5071" data-end="5297"&gt;
&lt;li data-start="5071" data-end="5114"&gt;
&lt;p data-start="5073" data-end="5114"&gt;Static IP configuration for easy access&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5115" data-end="5145"&gt;
&lt;p data-start="5117" data-end="5145"&gt;Web-based alarm scheduling&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5146" data-end="5183"&gt;
&lt;p data-start="5148" data-end="5183"&gt;Time synchronisation via internet&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5184" data-end="5223"&gt;
&lt;p data-start="5186" data-end="5223"&gt;Relay testing and calibration tools&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5224" data-end="5263"&gt;
&lt;p data-start="5226" data-end="5263"&gt;Stepper motor min/max configuration&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5264" data-end="5297"&gt;
&lt;p data-start="5266" data-end="5297"&gt;LED matrix brightness control&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start="5299" data-end="5313"&gt;From the code:&lt;/p&gt;
&lt;p data-start="5299" data-end="5313"&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define NTP_SERVER &amp;quot;pool.ntp.org&amp;quot;
#define GMT_OFFSET_SEC 0
#define DAYLIGHT_OFFSET_SEC 3600
&lt;/pre&gt;&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div&gt;
&lt;div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;code class="whitespace-pre! language-cpp"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="5419" data-end="5513"&gt;This enables automatic time updates using NTP, eliminating the need to manually set the clock.&lt;/p&gt;
&lt;p data-start="5515" data-end="5709"&gt;The web interface is designed to complement physical controls rather than replace them. Physical buttons remain available for emergency silence when the megaphone begins blasting in the morning.&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r7" data-start="5716" data-end="5749"&gt;Sequencing the Wake-Up Routine&lt;/h2&gt;
&lt;p data-start="5751" data-end="5811"&gt;The firmware reveals how the alarm sequence is orchestrated.&lt;/p&gt;
&lt;p data-start="5813" data-end="5858"&gt;Timing constants define the startup behaviour:&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div&gt;
&lt;div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#define RECORD_DELAY 2000
#define PLAY_DELAY 2000
#define MOTOR_RUN_TIME 15000
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="5951" data-end="6000"&gt;This suggests a carefully choreographed sequence:&lt;/p&gt;
&lt;ol data-start="6002" data-end="6186"&gt;
&lt;li data-start="6002" data-end="6052"&gt;
&lt;p data-start="6005" data-end="6052"&gt;Trigger megaphone playback via relay sequence&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="6053" data-end="6111"&gt;
&lt;p data-start="6056" data-end="6111"&gt;Run the stepper motor to animate the rocket mechanism&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="6112" data-end="6153"&gt;
&lt;p data-start="6115" data-end="6153"&gt;Maintain motion for a fixed duration&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="6154" data-end="6186"&gt;
&lt;p data-start="6157" data-end="6186"&gt;Allow manual stop if needed&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-start="6188" data-end="6296"&gt;The combination of mechanical motion and amplified audio turns the wake-up routine into a full launch event.&lt;/p&gt;
&lt;p data-start="6188" data-end="6296"&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/pastedimage1770890210579v12.png"  /&gt;&lt;img loading="lazy" alt="image" style="max-height:360px;max-width:640px;" src="/resized-image/__size/1280x720/__key/communityserver-wikis-components-files/00-00-00-04-35/pastedimage1770890221427v13.png"  /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jas8r8" data-start="6303" data-end="6336"&gt;Challenges and Lessons Learned&lt;/h2&gt;
&lt;p data-start="6338" data-end="6426"&gt;&lt;/p&gt;
&lt;p data-start="0" data-end="538"&gt;As the real Artemis mission prepares for launch, Milos discovered that the biggest challenge in building his own morning &amp;ldquo;launch system&amp;rdquo; wasn&amp;rsquo;t the mechanics or the code, it was the wiring. Packing everything neatly into the enclosure turned into the most time-consuming part of the build. As he admits, &lt;strong&gt;&lt;em data-start="305" data-end="378"&gt;&amp;ldquo;The wiring was definitely the most tedious part of the whole project.&amp;rdquo;&lt;/em&gt;&lt;/strong&gt; That challenge reflects the wider balance he was aiming for: something bold and loud enough to wake you instantly, but reliable enough to run every single day.&lt;/p&gt;
&lt;p data-start="540" data-end="792"&gt;The decision to control the megaphone using relays captures that mindset perfectly. Instead of redesigning the megaphone electronics, Milos focused on a practical solution that works consistently and keeps the build approachable for others to recreate.&lt;/p&gt;
&lt;p data-start="794" data-end="1093"&gt;This isn&amp;rsquo;t a finished idea either. Milos already sees the project as something to keep evolving. &lt;strong&gt;&lt;em data-start="891" data-end="948"&gt;&amp;ldquo;There are definitely more things I want to add later,&amp;rdquo;&lt;/em&gt;&lt;/strong&gt; he says, with plans to keep experimenting with the web interface, motion behaviour, sounds, and general refinements to the enclosure and wiring.&lt;/p&gt;
&lt;p data-start="1095" data-end="1353"&gt;Even now, the project works exactly as intended: a dramatic, over-the-top alarm clock inspired by a real rocket launch. With the Artemis mission on the horizon, it feels fitting that this LEGO SLS now delivers its own daily countdown and liftoff on the desk.&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8kg718i" data-start="1095" data-end="1353"&gt;Supporting Links and Downloads&lt;/h2&gt;
&lt;p data-start="1095" data-end="1353"&gt;-&amp;nbsp;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jc9khe"&gt;Bill of Materials&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-0bbb6" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4208544,4007767,3879694,4062476&amp;nsku=77AK2287,42AK5727,99AJ4561,54AK7721&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('0bbb6'));" data-farnell="4208544,4007767,3879694,4062476" data-newark="77AK2287,42AK5727,99AJ4561,54AK7721" data-comoverride="" data-cmpoverride="" data-cpc=",,," data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Kit&lt;/a&gt; &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Arduino Uno R4 WiFi&lt;/td&gt;
&lt;td&gt;Arduino&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-96d89" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4208544&amp;nsku=77AK2287&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('96d89'));" data-farnell="4208544" data-newark="77AK2287" 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 Channel Relay Module&lt;/td&gt;
&lt;td&gt;SEEED Studio&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-f37e2" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4007767&amp;nsku=42AK5727&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('f37e2'));" data-farnell="4007767" data-newark="42AK5727" 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;NEMA 17 Stepper Motor - FIT0278&lt;/td&gt;
&lt;td&gt;DFROBOT&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-fde23" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=3879694&amp;nsku=99AJ4561&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('fde23'));" data-farnell="3879694" data-newark="99AJ4561" 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;Black PLA - MP010755&lt;/td&gt;
&lt;td&gt;MULTICOMP PRO&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a id="e14-product-link-5d18d" data-at-areainteracted="rte-content" data-at-type="click" data-at-link-type="button" href="https://referral.element14.com/OrderCodeView?fsku=4062476&amp;nsku=54AK7721&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('5d18d'));" data-farnell="4062476" data-newark="54AK7721" data-comoverride="" data-cmpoverride="" data-cpc="undefined" data-avnetemea="" data-avnetema="" data-avnetasia="" &gt;Buy Now&lt;/a&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="xs-hide"&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1jh8jc9khf"&gt;Additional Parts&lt;/h2&gt;
&lt;table class="e14-product-bom-additional"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Product Name&lt;/th&gt;
&lt;th&gt;Manufacturer&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SLS LEGO Set - &lt;a id="" href="https://www.lego.com/en-us/product/nasa-artemis-space-launch-system-rocket-42221" rel="noopener noreferrer nofollow" target="_blank" data-e14adj="t"&gt;https://www.lego.com/en-us/product/nasa-artemis-space-launch-system-rocket-42221&lt;/a&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Battery Powererd Megaphone&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Quad LED Matrix Module - MAX7219&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A4988 Stepper Motor Driver&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A4988 Adapter Board&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Push buttons&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wires&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Screws M3 and M4&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="mcetoc_1jh8jc9khg"&gt;&lt;/h3&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: arduino alarm clock tutorial, arduino nema 17 stepper tutorial, arduino web server project example, lego motorised rocket arduino, arduino stepper motor project tutorial, diy loud alarm clock project, arduino uno r4 wifi projects, arduino relay control tutorial, diy arudino clock with wifi, arduin projects for beginners and makers, lego arduino integration project, led matrix clock arduino tutorial, hot to control megaphone with arduino, lego alarm clock project, diy smart alarm clock arduino, friday_release&lt;/div&gt;
</description></item><item><title>From Snooze to Launch: The Arduino-Powered LEGO Alarm Clock Inspired by Artemis 2 -- Episode 701</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72031/from-snooze-to-launch-the-arduino-powered-lego-alarm-clock-inspired-by-artemis-2----episode-701/revision/2</link><pubDate>Thu, 12 Feb 2026 09:24:20 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:8c6e2dc4-14f4-4f87-b134-63786c04c12b</guid><dc:creator>cstanton</dc:creator><comments>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72031/from-snooze-to-launch-the-arduino-powered-lego-alarm-clock-inspired-by-artemis-2----episode-701#comments</comments><description>Revision 2 posted to Documents by cstanton on 2/12/2026 9:24:20 AM&lt;br /&gt;
&lt;p&gt;What if your alarm clock launched a rocket instead of playing a gentle tone? In this project, Milos turns the LEGO NASA Artemis SLS into a motorised, Arduino-powered alarm clock that raises the rocket and blasts a megaphone when it&amp;rsquo;s time to wake up. The build combines a NEMA 17 stepper motor, relays to hack a megaphone, an LED matrix display, Wi-Fi control, and a custom web interface so you can configure everything from your browser.&lt;/p&gt;
&lt;h2&gt;Watch the&amp;nbsp;Lift-Off!&lt;/h2&gt;
&lt;p&gt;&amp;lt;embed video&amp;gt;&lt;/p&gt;
&lt;h2 data-start="0" data-end="42"&gt;Building the World&amp;rsquo;s Loudest LEGO Alarm Clock&lt;/h2&gt;
&lt;p data-start="44" data-end="421"&gt;When Milos set out to build a new alarm clock, he did not start with typical design constraints like size, comfort, or subtlety. Instead, he started with a simple premise: rockets are among the loudest human-made machines ever created. That idea quickly evolved into a LEGO NASA Artemis rocket that would not just look the part, but behave like a launch sequence every morning.&lt;/p&gt;
&lt;p data-start="423" data-end="583"&gt;The result is a project that blends mechanical LEGO engineering, Arduino automation, reverse-engineered consumer electronics, and a web-based control interface.&lt;/p&gt;
&lt;hr data-start="585" data-end="588" /&gt;
&lt;h2 data-start="590" data-end="639"&gt;From Rocket Inspiration to Alarm Clock Concept&lt;/h2&gt;
&lt;p data-start="641" data-end="1002"&gt;The project began with the LEGO NASA Artemis Space Launch System set. While assembling it, Milos discovered a mechanical detail that set the tone for the entire build: a tiny internal gear designed to rattle during operation to mimic the sound of launch vibration. That detail pushed the concept from a simple motorized display to a full alarm clock experience.&lt;/p&gt;
&lt;p data-start="1004" data-end="1088"&gt;In the transcript, Milos reflects on how the idea escalated beyond a simple novelty:&lt;/p&gt;
&lt;blockquote data-start="1090" data-end="1220"&gt;
&lt;p data-start="1092" data-end="1220"&gt;&amp;ldquo;I wanted something that would actually force me to wake up&amp;hellip; something you cannot ignore.&amp;rdquo; &lt;span class="" data-state="closed"&gt;&lt;span class="relative inline-flex items-center"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="not-prose mt-0! mb-0! flex-auto truncate"&gt;audio&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="1222" data-end="1260"&gt;The design goals quickly became clear:&lt;/p&gt;
&lt;ul data-start="1262" data-end="1387"&gt;
&lt;li data-start="1262" data-end="1300"&gt;
&lt;p data-start="1264" data-end="1300"&gt;Motorize the LEGO launch mechanism&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="1301" data-end="1331"&gt;
&lt;p data-start="1303" data-end="1331"&gt;Add a display and controls&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="1332" data-end="1387"&gt;
&lt;p data-start="1334" data-end="1387"&gt;Create an alarm that is impossible to sleep through&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start="1389" data-end="1456"&gt;The third requirement became the defining challenge of the project.&lt;/p&gt;
&lt;hr data-start="1458" data-end="1461" /&gt;
&lt;h2 data-start="1463" data-end="1511"&gt;Solving the Sound Problem: The Megaphone Hack&lt;/h2&gt;
&lt;p data-start="1513" data-end="1828"&gt;Originally, the plan was to use a megaphone capable of playing MP3 files via USB. The delivered device did not match expectations. Instead of USB playback, it only supported record and playback through a microphone. What initially looked like a setback became one of the project&amp;rsquo;s most interesting design decisions.&lt;/p&gt;
&lt;p data-start="1830" data-end="2090"&gt;The limitation actually made the system more flexible and tactile. Any sound could be recorded directly into the megaphone and replayed as the alarm. This gave the clock a unique personality and avoided the complexity of integrating audio playback electronics.&lt;/p&gt;
&lt;p data-start="2092" data-end="2208"&gt;But controlling the megaphone electronically introduced a major obstacle: it was designed for manual button presses.&lt;/p&gt;
&lt;p data-start="2210" data-end="2248"&gt;Milos explains the workaround clearly:&lt;/p&gt;
&lt;blockquote data-start="2250" data-end="2443"&gt;
&lt;p data-start="2252" data-end="2443"&gt;&amp;ldquo;The megaphone is designed to be used by pressing the buttons&amp;hellip; so I soldered wires in parallel with the buttons and used relays to simulate the presses.&amp;rdquo; &lt;span class="" data-state="closed"&gt;&lt;span class="relative inline-flex items-center"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="not-prose mt-0! mb-0! flex-auto truncate"&gt;audio&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="2445" data-end="2756"&gt;This approach essentially turned the megaphone into a remotely controlled device. The Arduino does not generate audio; it triggers the megaphone&amp;rsquo;s existing circuitry in the correct sequence. It is a clean example of hardware hacking that avoids reinventing functionality already present in consumer electronics.&lt;/p&gt;
&lt;hr data-start="2758" data-end="2761" /&gt;
&lt;h2 data-start="2763" data-end="2811"&gt;Electronics Architecture and Control Strategy&lt;/h2&gt;
&lt;p data-start="2813" data-end="3016"&gt;At the center of the build sits an Arduino Uno R4 WiFi. The choice of board was deliberate: the project requires multiple GPIO pins, relay control, motor control, Wi-Fi connectivity, and a web interface.&lt;/p&gt;
&lt;p data-start="3018" data-end="3105"&gt;From the code, the relay pins controlling the megaphone buttons are defined explicitly:&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div&gt;
&lt;div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&lt;code class="whitespace-pre! language-cpp"&gt;&lt;span&gt;&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; RECORD 3
&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; PLAY 4
&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; TRIGGER 5
&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; STOP 6
&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="3186" data-end="3291"&gt;These outputs allow the Arduino to emulate the physical button presses required to operate the megaphone.&lt;/p&gt;
&lt;p data-start="3293" data-end="3358"&gt;The firmware also defines a complete stepper motor configuration:&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div&gt;
&lt;div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&lt;code class="whitespace-pre! language-cpp"&gt;&lt;span&gt;&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; STEP_PIN 9
&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; DIR_PIN 8
&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; ENABLE_PIN 7
&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; LIMIT_SWITCH_MIN 11
&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; LIMIT_SWITCH_MAX 12
&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="3486" data-end="3677"&gt;The presence of limit switches is a key safety and reliability feature. The mechanism cannot overrun its physical bounds. This is critical for a device that operates unattended every morning.&lt;/p&gt;
&lt;p data-start="3679" data-end="3739"&gt;Milos notes in the transcript how important reliability was:&lt;/p&gt;
&lt;blockquote data-start="3741" data-end="3885"&gt;
&lt;p data-start="3743" data-end="3885"&gt;&amp;ldquo;This has to work every day without me touching it, otherwise it defeats the purpose of an alarm clock.&amp;rdquo; &lt;span class="" data-state="closed"&gt;&lt;span class="relative inline-flex items-center"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="not-prose mt-0! mb-0! flex-auto truncate"&gt;audio&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr data-start="3887" data-end="3890" /&gt;
&lt;h2 data-start="3892" data-end="3942"&gt;Mechanical Integration: Driving LEGO from Below&lt;/h2&gt;
&lt;p data-start="3944" data-end="4040"&gt;One of the most thoughtful aspects of the build is how the motor integrates with the LEGO model.&lt;/p&gt;
&lt;p data-start="4042" data-end="4270"&gt;Rather than mounting the stepper motor visibly on the side, Milos redesigned the drive path so the motor sits beneath the rocket base. He created a 3D-printed coupler that connects a NEMA 17 stepper motor to the LEGO gear train.&lt;/p&gt;
&lt;p data-start="4272" data-end="4492"&gt;This preserves the visual integrity of the LEGO set while still using the original gearing. It also highlights a recurring theme in the project: keep the LEGO aesthetic intact while embedding real engineering underneath.&lt;/p&gt;
&lt;p data-start="4494" data-end="4545"&gt;He explains this design decision in the transcript:&lt;/p&gt;
&lt;blockquote data-start="4547" data-end="4677"&gt;
&lt;p data-start="4549" data-end="4677"&gt;&amp;ldquo;I didn&amp;rsquo;t want the motor visible anywhere&amp;hellip; everything had to stay hidden under the model.&amp;rdquo; &lt;span class="" data-state="closed"&gt;&lt;span class="relative inline-flex items-center"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="not-prose mt-0! mb-0! flex-auto truncate"&gt;audio&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="4679" data-end="4824"&gt;The enclosure itself was printed in black PLA and dimensioned using LEGO&amp;rsquo;s standardized spacing, making the mechanical alignment straightforward.&lt;/p&gt;
&lt;hr data-start="4826" data-end="4829" /&gt;
&lt;h2 data-start="4831" data-end="4867"&gt;Software Design and Web Interface&lt;/h2&gt;
&lt;p data-start="4869" data-end="5030"&gt;The software side of the project is far more sophisticated than a typical Arduino alarm clock. The firmware includes Wi-Fi connectivity and a full web interface.&lt;/p&gt;
&lt;p data-start="5032" data-end="5069"&gt;Key features of the firmware include:&lt;/p&gt;
&lt;ul data-start="5071" data-end="5297"&gt;
&lt;li data-start="5071" data-end="5114"&gt;
&lt;p data-start="5073" data-end="5114"&gt;Static IP configuration for easy access&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5115" data-end="5145"&gt;
&lt;p data-start="5117" data-end="5145"&gt;Web-based alarm scheduling&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5146" data-end="5183"&gt;
&lt;p data-start="5148" data-end="5183"&gt;Time synchronization via internet&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5184" data-end="5223"&gt;
&lt;p data-start="5186" data-end="5223"&gt;Relay testing and calibration tools&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5224" data-end="5263"&gt;
&lt;p data-start="5226" data-end="5263"&gt;Stepper motor min/max configuration&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5264" data-end="5297"&gt;
&lt;p data-start="5266" data-end="5297"&gt;LED matrix brightness control&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start="5299" data-end="5313"&gt;From the code:&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div&gt;
&lt;div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&lt;code class="whitespace-pre! language-cpp"&gt;&lt;span&gt;&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; NTP_SERVER &lt;span class="hljs-string"&gt;&amp;quot;pool.ntp.org&amp;quot;&lt;/span&gt;
&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; GMT_OFFSET_SEC 0
&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; DAYLIGHT_OFFSET_SEC 3600
&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="5419" data-end="5513"&gt;This enables automatic time updates using NTP, eliminating the need to manually set the clock.&lt;/p&gt;
&lt;p data-start="5515" data-end="5709"&gt;The web interface is designed to complement physical controls rather than replace them. Physical buttons remain available for emergency silence when the megaphone begins blasting in the morning.&lt;/p&gt;
&lt;hr data-start="5711" data-end="5714" /&gt;
&lt;h2 data-start="5716" data-end="5749"&gt;Sequencing the Wake-Up Routine&lt;/h2&gt;
&lt;p data-start="5751" data-end="5811"&gt;The firmware reveals how the alarm sequence is orchestrated.&lt;/p&gt;
&lt;p data-start="5813" data-end="5858"&gt;Timing constants define the startup behavior:&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div&gt;
&lt;div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&lt;code class="whitespace-pre! language-cpp"&gt;&lt;span&gt;&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; RECORD_DELAY 2000
&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; PLAY_DELAY 2000
&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; MOTOR_RUN_TIME 15000
&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="5951" data-end="6000"&gt;This suggests a carefully choreographed sequence:&lt;/p&gt;
&lt;ol data-start="6002" data-end="6186"&gt;
&lt;li data-start="6002" data-end="6052"&gt;
&lt;p data-start="6005" data-end="6052"&gt;Trigger megaphone playback via relay sequence&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="6053" data-end="6111"&gt;
&lt;p data-start="6056" data-end="6111"&gt;Run the stepper motor to animate the rocket mechanism&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="6112" data-end="6153"&gt;
&lt;p data-start="6115" data-end="6153"&gt;Maintain motion for a fixed duration&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="6154" data-end="6186"&gt;
&lt;p data-start="6157" data-end="6186"&gt;Allow manual stop if needed&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-start="6188" data-end="6296"&gt;The combination of mechanical motion and amplified audio turns the wake-up routine into a full launch event.&lt;/p&gt;
&lt;hr data-start="6298" data-end="6301" /&gt;
&lt;h2 data-start="6303" data-end="6336"&gt;Challenges and Lessons Learned&lt;/h2&gt;
&lt;p data-start="6338" data-end="6426"&gt;Several reflections from the transcript highlight the practical challenges of the build.&lt;/p&gt;
&lt;p data-start="6428" data-end="6465"&gt;Wiring complexity was a major hurdle:&lt;/p&gt;
&lt;blockquote data-start="6467" data-end="6578"&gt;
&lt;p data-start="6469" data-end="6578"&gt;&amp;ldquo;The wiring was definitely the most tedious part of the whole project.&amp;rdquo; &lt;span class="" data-state="closed"&gt;&lt;span class="relative inline-flex items-center"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="not-prose mt-0! mb-0! flex-auto truncate"&gt;audio&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="6580" data-end="6730"&gt;Another recurring theme is the balance between creativity and practicality. The project had to be loud and dramatic, but also reliable and repeatable.&lt;/p&gt;
&lt;p data-start="6732" data-end="6913"&gt;The choice to simulate button presses with relays is a strong example of this balance. It avoids reverse-engineering the megaphone&amp;rsquo;s circuitry while still achieving full automation.&lt;/p&gt;
&lt;hr data-start="6915" data-end="6918" /&gt;
&lt;h2 data-start="6920" data-end="6952"&gt;Future Improvements and Ideas&lt;/h2&gt;
&lt;p data-start="6954" data-end="7110"&gt;The transcript hints at potential future expansion of the project. Milos discusses refining the system and experimenting further with sounds and automation.&lt;/p&gt;
&lt;p data-start="7112" data-end="7121"&gt;He notes:&lt;/p&gt;
&lt;blockquote data-start="7123" data-end="7218"&gt;
&lt;p data-start="7125" data-end="7218"&gt;&amp;ldquo;There are definitely more things I want to add later.&amp;rdquo; &lt;span class="" data-state="closed"&gt;&lt;span class="relative inline-flex items-center"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="not-prose mt-0! mb-0! flex-auto truncate"&gt;audio&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="7220" data-end="7266"&gt;Possible areas for future development include:&lt;/p&gt;
&lt;ul data-start="7268" data-end="7432"&gt;
&lt;li data-start="7268" data-end="7316"&gt;
&lt;p data-start="7270" data-end="7316"&gt;Additional automation features in the web UI&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="7317" data-end="7351"&gt;
&lt;p data-start="7319" data-end="7351"&gt;More advanced motion sequences&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="7352" data-end="7381"&gt;
&lt;p data-start="7354" data-end="7381"&gt;Additional sound profiles&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="7382" data-end="7432"&gt;
&lt;p data-start="7384" data-end="7432"&gt;Further refinement of the enclosure and wiring&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start="7434" data-end="7546"&gt;The project already functions as a complete alarm clock, but its modular architecture leaves room for iteration.&lt;/p&gt;
&lt;hr data-start="7548" data-end="7551" /&gt;
&lt;h2 data-start="7553" data-end="7570"&gt;Final Thoughts&lt;/h2&gt;
&lt;p data-start="7572" data-end="7717"&gt;This build is a strong example of combining off-the-shelf hardware, custom firmware, and creative mechanical integration into a cohesive project.&lt;/p&gt;
&lt;p data-start="7719" data-end="7927"&gt;The alarm clock is not just loud; it is theatrical. The mechanical motion, the relay-controlled megaphone, and the web-configured automation all contribute to a wake-up experience that is difficult to ignore.&lt;/p&gt;
&lt;p data-start="7929" data-end="8001"&gt;For anyone attempting a similar build, the most important takeaways are:&lt;/p&gt;
&lt;ul data-start="8003" data-end="8197"&gt;
&lt;li data-start="8003" data-end="8047"&gt;
&lt;p data-start="8005" data-end="8047"&gt;Repurpose existing devices when possible&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="8048" data-end="8097"&gt;
&lt;p data-start="8050" data-end="8097"&gt;Prioritize reliability for daily-use projects&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="8098" data-end="8154"&gt;
&lt;p data-start="8100" data-end="8154"&gt;Preserve aesthetics while hiding engineering beneath&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="8155" data-end="8197"&gt;
&lt;p data-start="8157" data-end="8197"&gt;Use software to make hardware flexible&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start="8199" data-end="8338" data-is-last-node="" data-is-only-node=""&gt;In the end, the project delivers exactly what it set out to achieve: a LEGO rocket launch that starts the day whether you are ready or not.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: arduino alarm clock tutorial, arduino nema 17 stepper tutorial, arduino web server project example, lego motorised rocket arduino, arduino stepper motor project tutorial, diy loud alarm clock project, arduino uno r4 wifi projects, arduino relay control tutorial, diy arudino clock with wifi, arduin projects for beginners and makers, lego arduino integration project, led matrix clock arduino tutorial, hot to control megaphone with arduino, lego alarm clock project, diy smart alarm clock arduino, friday_release&lt;/div&gt;
</description></item><item><title>From Snooze to Launch: The Arduino-Powered LEGO Alarm Clock Inspired by Artemis 2 -- Episode 701</title><link>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72031/from-snooze-to-launch-the-arduino-powered-lego-alarm-clock-inspired-by-artemis-2----episode-701/revision/1</link><pubDate>Wed, 11 Feb 2026 17:13:53 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:8c6e2dc4-14f4-4f87-b134-63786c04c12b</guid><dc:creator>cstanton</dc:creator><comments>https://community.element14.com/challenges-projects/element14-presents/project-videos/w/documents/72031/from-snooze-to-launch-the-arduino-powered-lego-alarm-clock-inspired-by-artemis-2----episode-701#comments</comments><description>Revision 1 posted to Documents by cstanton on 2/11/2026 5:13:53 PM&lt;br /&gt;
&lt;h2 data-start="0" data-end="42"&gt;MR23 &amp;ndash; World&amp;rsquo;s Loudest LEGO Alarm Clock&lt;/h2&gt;
&lt;p data-start="44" data-end="421"&gt;When Milos set out to build a new alarm clock, he did not start with typical design constraints like size, comfort, or subtlety. Instead, he started with a simple premise: rockets are among the loudest human-made machines ever created. That idea quickly evolved into a LEGO NASA Artemis rocket that would not just look the part, but behave like a launch sequence every morning.&lt;/p&gt;
&lt;p data-start="423" data-end="583"&gt;The result is a project that blends mechanical LEGO engineering, Arduino automation, reverse-engineered consumer electronics, and a web-based control interface.&lt;/p&gt;
&lt;hr data-start="585" data-end="588" /&gt;
&lt;h2 data-start="590" data-end="639"&gt;From Rocket Inspiration to Alarm Clock Concept&lt;/h2&gt;
&lt;p data-start="641" data-end="1002"&gt;The project began with the LEGO NASA Artemis Space Launch System set. While assembling it, Milos discovered a mechanical detail that set the tone for the entire build: a tiny internal gear designed to rattle during operation to mimic the sound of launch vibration. That detail pushed the concept from a simple motorized display to a full alarm clock experience.&lt;/p&gt;
&lt;p data-start="1004" data-end="1088"&gt;In the transcript, Milos reflects on how the idea escalated beyond a simple novelty:&lt;/p&gt;
&lt;blockquote data-start="1090" data-end="1220"&gt;
&lt;p data-start="1092" data-end="1220"&gt;&amp;ldquo;I wanted something that would actually force me to wake up&amp;hellip; something you cannot ignore.&amp;rdquo; &lt;span class="" data-state="closed"&gt;&lt;span class="relative inline-flex items-center"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="not-prose mt-0! mb-0! flex-auto truncate"&gt;audio&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="1222" data-end="1260"&gt;The design goals quickly became clear:&lt;/p&gt;
&lt;ul data-start="1262" data-end="1387"&gt;
&lt;li data-start="1262" data-end="1300"&gt;
&lt;p data-start="1264" data-end="1300"&gt;Motorize the LEGO launch mechanism&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="1301" data-end="1331"&gt;
&lt;p data-start="1303" data-end="1331"&gt;Add a display and controls&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="1332" data-end="1387"&gt;
&lt;p data-start="1334" data-end="1387"&gt;Create an alarm that is impossible to sleep through&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start="1389" data-end="1456"&gt;The third requirement became the defining challenge of the project.&lt;/p&gt;
&lt;hr data-start="1458" data-end="1461" /&gt;
&lt;h2 data-start="1463" data-end="1511"&gt;Solving the Sound Problem: The Megaphone Hack&lt;/h2&gt;
&lt;p data-start="1513" data-end="1828"&gt;Originally, the plan was to use a megaphone capable of playing MP3 files via USB. The delivered device did not match expectations. Instead of USB playback, it only supported record and playback through a microphone. What initially looked like a setback became one of the project&amp;rsquo;s most interesting design decisions.&lt;/p&gt;
&lt;p data-start="1830" data-end="2090"&gt;The limitation actually made the system more flexible and tactile. Any sound could be recorded directly into the megaphone and replayed as the alarm. This gave the clock a unique personality and avoided the complexity of integrating audio playback electronics.&lt;/p&gt;
&lt;p data-start="2092" data-end="2208"&gt;But controlling the megaphone electronically introduced a major obstacle: it was designed for manual button presses.&lt;/p&gt;
&lt;p data-start="2210" data-end="2248"&gt;Milos explains the workaround clearly:&lt;/p&gt;
&lt;blockquote data-start="2250" data-end="2443"&gt;
&lt;p data-start="2252" data-end="2443"&gt;&amp;ldquo;The megaphone is designed to be used by pressing the buttons&amp;hellip; so I soldered wires in parallel with the buttons and used relays to simulate the presses.&amp;rdquo; &lt;span class="" data-state="closed"&gt;&lt;span class="relative inline-flex items-center"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="not-prose mt-0! mb-0! flex-auto truncate"&gt;audio&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="2445" data-end="2756"&gt;This approach essentially turned the megaphone into a remotely controlled device. The Arduino does not generate audio; it triggers the megaphone&amp;rsquo;s existing circuitry in the correct sequence. It is a clean example of hardware hacking that avoids reinventing functionality already present in consumer electronics.&lt;/p&gt;
&lt;hr data-start="2758" data-end="2761" /&gt;
&lt;h2 data-start="2763" data-end="2811"&gt;Electronics Architecture and Control Strategy&lt;/h2&gt;
&lt;p data-start="2813" data-end="3016"&gt;At the center of the build sits an Arduino Uno R4 WiFi. The choice of board was deliberate: the project requires multiple GPIO pins, relay control, motor control, Wi-Fi connectivity, and a web interface.&lt;/p&gt;
&lt;p data-start="3018" data-end="3105"&gt;From the code, the relay pins controlling the megaphone buttons are defined explicitly:&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div&gt;
&lt;div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&lt;code class="whitespace-pre! language-cpp"&gt;&lt;span&gt;&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; RECORD 3
&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; PLAY 4
&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; TRIGGER 5
&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; STOP 6
&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="3186" data-end="3291"&gt;These outputs allow the Arduino to emulate the physical button presses required to operate the megaphone.&lt;/p&gt;
&lt;p data-start="3293" data-end="3358"&gt;The firmware also defines a complete stepper motor configuration:&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div&gt;
&lt;div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&lt;code class="whitespace-pre! language-cpp"&gt;&lt;span&gt;&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; STEP_PIN 9
&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; DIR_PIN 8
&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; ENABLE_PIN 7
&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; LIMIT_SWITCH_MIN 11
&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; LIMIT_SWITCH_MAX 12
&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="3486" data-end="3677"&gt;The presence of limit switches is a key safety and reliability feature. The mechanism cannot overrun its physical bounds. This is critical for a device that operates unattended every morning.&lt;/p&gt;
&lt;p data-start="3679" data-end="3739"&gt;Milos notes in the transcript how important reliability was:&lt;/p&gt;
&lt;blockquote data-start="3741" data-end="3885"&gt;
&lt;p data-start="3743" data-end="3885"&gt;&amp;ldquo;This has to work every day without me touching it, otherwise it defeats the purpose of an alarm clock.&amp;rdquo; &lt;span class="" data-state="closed"&gt;&lt;span class="relative inline-flex items-center"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="not-prose mt-0! mb-0! flex-auto truncate"&gt;audio&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr data-start="3887" data-end="3890" /&gt;
&lt;h2 data-start="3892" data-end="3942"&gt;Mechanical Integration: Driving LEGO from Below&lt;/h2&gt;
&lt;p data-start="3944" data-end="4040"&gt;One of the most thoughtful aspects of the build is how the motor integrates with the LEGO model.&lt;/p&gt;
&lt;p data-start="4042" data-end="4270"&gt;Rather than mounting the stepper motor visibly on the side, Milos redesigned the drive path so the motor sits beneath the rocket base. He created a 3D-printed coupler that connects a NEMA 17 stepper motor to the LEGO gear train.&lt;/p&gt;
&lt;p data-start="4272" data-end="4492"&gt;This preserves the visual integrity of the LEGO set while still using the original gearing. It also highlights a recurring theme in the project: keep the LEGO aesthetic intact while embedding real engineering underneath.&lt;/p&gt;
&lt;p data-start="4494" data-end="4545"&gt;He explains this design decision in the transcript:&lt;/p&gt;
&lt;blockquote data-start="4547" data-end="4677"&gt;
&lt;p data-start="4549" data-end="4677"&gt;&amp;ldquo;I didn&amp;rsquo;t want the motor visible anywhere&amp;hellip; everything had to stay hidden under the model.&amp;rdquo; &lt;span class="" data-state="closed"&gt;&lt;span class="relative inline-flex items-center"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="not-prose mt-0! mb-0! flex-auto truncate"&gt;audio&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="4679" data-end="4824"&gt;The enclosure itself was printed in black PLA and dimensioned using LEGO&amp;rsquo;s standardized spacing, making the mechanical alignment straightforward.&lt;/p&gt;
&lt;hr data-start="4826" data-end="4829" /&gt;
&lt;h2 data-start="4831" data-end="4867"&gt;Software Design and Web Interface&lt;/h2&gt;
&lt;p data-start="4869" data-end="5030"&gt;The software side of the project is far more sophisticated than a typical Arduino alarm clock. The firmware includes Wi-Fi connectivity and a full web interface.&lt;/p&gt;
&lt;p data-start="5032" data-end="5069"&gt;Key features of the firmware include:&lt;/p&gt;
&lt;ul data-start="5071" data-end="5297"&gt;
&lt;li data-start="5071" data-end="5114"&gt;
&lt;p data-start="5073" data-end="5114"&gt;Static IP configuration for easy access&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5115" data-end="5145"&gt;
&lt;p data-start="5117" data-end="5145"&gt;Web-based alarm scheduling&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5146" data-end="5183"&gt;
&lt;p data-start="5148" data-end="5183"&gt;Time synchronization via internet&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5184" data-end="5223"&gt;
&lt;p data-start="5186" data-end="5223"&gt;Relay testing and calibration tools&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5224" data-end="5263"&gt;
&lt;p data-start="5226" data-end="5263"&gt;Stepper motor min/max configuration&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="5264" data-end="5297"&gt;
&lt;p data-start="5266" data-end="5297"&gt;LED matrix brightness control&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start="5299" data-end="5313"&gt;From the code:&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div&gt;
&lt;div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&lt;code class="whitespace-pre! language-cpp"&gt;&lt;span&gt;&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; NTP_SERVER &lt;span class="hljs-string"&gt;&amp;quot;pool.ntp.org&amp;quot;&lt;/span&gt;
&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; GMT_OFFSET_SEC 0
&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; DAYLIGHT_OFFSET_SEC 3600
&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="5419" data-end="5513"&gt;This enables automatic time updates using NTP, eliminating the need to manually set the clock.&lt;/p&gt;
&lt;p data-start="5515" data-end="5709"&gt;The web interface is designed to complement physical controls rather than replace them. Physical buttons remain available for emergency silence when the megaphone begins blasting in the morning.&lt;/p&gt;
&lt;hr data-start="5711" data-end="5714" /&gt;
&lt;h2 data-start="5716" data-end="5749"&gt;Sequencing the Wake-Up Routine&lt;/h2&gt;
&lt;p data-start="5751" data-end="5811"&gt;The firmware reveals how the alarm sequence is orchestrated.&lt;/p&gt;
&lt;p data-start="5813" data-end="5858"&gt;Timing constants define the startup behavior:&lt;/p&gt;
&lt;div class="contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary"&gt;
&lt;div&gt;
&lt;div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&lt;code class="whitespace-pre! language-cpp"&gt;&lt;span&gt;&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; RECORD_DELAY 2000
&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; PLAY_DELAY 2000
&lt;span class="hljs-meta"&gt;#&lt;span class="hljs-keyword"&gt;define&lt;/span&gt;&lt;/span&gt; MOTOR_RUN_TIME 15000
&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-start="5951" data-end="6000"&gt;This suggests a carefully choreographed sequence:&lt;/p&gt;
&lt;ol data-start="6002" data-end="6186"&gt;
&lt;li data-start="6002" data-end="6052"&gt;
&lt;p data-start="6005" data-end="6052"&gt;Trigger megaphone playback via relay sequence&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="6053" data-end="6111"&gt;
&lt;p data-start="6056" data-end="6111"&gt;Run the stepper motor to animate the rocket mechanism&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="6112" data-end="6153"&gt;
&lt;p data-start="6115" data-end="6153"&gt;Maintain motion for a fixed duration&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="6154" data-end="6186"&gt;
&lt;p data-start="6157" data-end="6186"&gt;Allow manual stop if needed&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-start="6188" data-end="6296"&gt;The combination of mechanical motion and amplified audio turns the wake-up routine into a full launch event.&lt;/p&gt;
&lt;hr data-start="6298" data-end="6301" /&gt;
&lt;h2 data-start="6303" data-end="6336"&gt;Challenges and Lessons Learned&lt;/h2&gt;
&lt;p data-start="6338" data-end="6426"&gt;Several reflections from the transcript highlight the practical challenges of the build.&lt;/p&gt;
&lt;p data-start="6428" data-end="6465"&gt;Wiring complexity was a major hurdle:&lt;/p&gt;
&lt;blockquote data-start="6467" data-end="6578"&gt;
&lt;p data-start="6469" data-end="6578"&gt;&amp;ldquo;The wiring was definitely the most tedious part of the whole project.&amp;rdquo; &lt;span class="" data-state="closed"&gt;&lt;span class="relative inline-flex items-center"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="not-prose mt-0! mb-0! flex-auto truncate"&gt;audio&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="6580" data-end="6730"&gt;Another recurring theme is the balance between creativity and practicality. The project had to be loud and dramatic, but also reliable and repeatable.&lt;/p&gt;
&lt;p data-start="6732" data-end="6913"&gt;The choice to simulate button presses with relays is a strong example of this balance. It avoids reverse-engineering the megaphone&amp;rsquo;s circuitry while still achieving full automation.&lt;/p&gt;
&lt;hr data-start="6915" data-end="6918" /&gt;
&lt;h2 data-start="6920" data-end="6952"&gt;Future Improvements and Ideas&lt;/h2&gt;
&lt;p data-start="6954" data-end="7110"&gt;The transcript hints at potential future expansion of the project. Milos discusses refining the system and experimenting further with sounds and automation.&lt;/p&gt;
&lt;p data-start="7112" data-end="7121"&gt;He notes:&lt;/p&gt;
&lt;blockquote data-start="7123" data-end="7218"&gt;
&lt;p data-start="7125" data-end="7218"&gt;&amp;ldquo;There are definitely more things I want to add later.&amp;rdquo; &lt;span class="" data-state="closed"&gt;&lt;span class="relative inline-flex items-center"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="not-prose mt-0! mb-0! flex-auto truncate"&gt;audio&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="7220" data-end="7266"&gt;Possible areas for future development include:&lt;/p&gt;
&lt;ul data-start="7268" data-end="7432"&gt;
&lt;li data-start="7268" data-end="7316"&gt;
&lt;p data-start="7270" data-end="7316"&gt;Additional automation features in the web UI&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="7317" data-end="7351"&gt;
&lt;p data-start="7319" data-end="7351"&gt;More advanced motion sequences&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="7352" data-end="7381"&gt;
&lt;p data-start="7354" data-end="7381"&gt;Additional sound profiles&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="7382" data-end="7432"&gt;
&lt;p data-start="7384" data-end="7432"&gt;Further refinement of the enclosure and wiring&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start="7434" data-end="7546"&gt;The project already functions as a complete alarm clock, but its modular architecture leaves room for iteration.&lt;/p&gt;
&lt;hr data-start="7548" data-end="7551" /&gt;
&lt;h2 data-start="7553" data-end="7570"&gt;Final Thoughts&lt;/h2&gt;
&lt;p data-start="7572" data-end="7717"&gt;This build is a strong example of combining off-the-shelf hardware, custom firmware, and creative mechanical integration into a cohesive project.&lt;/p&gt;
&lt;p data-start="7719" data-end="7927"&gt;The alarm clock is not just loud; it is theatrical. The mechanical motion, the relay-controlled megaphone, and the web-configured automation all contribute to a wake-up experience that is difficult to ignore.&lt;/p&gt;
&lt;p data-start="7929" data-end="8001"&gt;For anyone attempting a similar build, the most important takeaways are:&lt;/p&gt;
&lt;ul data-start="8003" data-end="8197"&gt;
&lt;li data-start="8003" data-end="8047"&gt;
&lt;p data-start="8005" data-end="8047"&gt;Repurpose existing devices when possible&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="8048" data-end="8097"&gt;
&lt;p data-start="8050" data-end="8097"&gt;Prioritize reliability for daily-use projects&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="8098" data-end="8154"&gt;
&lt;p data-start="8100" data-end="8154"&gt;Preserve aesthetics while hiding engineering beneath&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="8155" data-end="8197"&gt;
&lt;p data-start="8157" data-end="8197"&gt;Use software to make hardware flexible&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start="8199" data-end="8338" data-is-last-node="" data-is-only-node=""&gt;In the end, the project delivers exactly what it set out to achieve: a LEGO rocket launch that starts the day whether you are ready or not.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item></channel></rss>