<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xml" href="https://karmanyaah.malhotra.cc/feed.xslt.xml"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.3.3">Jekyll</generator><link href="https://karmanyaah.malhotra.cc/feed.xml" rel="self" type="application/atom+xml" /><link href="https://karmanyaah.malhotra.cc/" rel="alternate" type="text/html" /><updated>2024-11-12T00:42:06-06:00</updated><id>https://karmanyaah.malhotra.cc/feed.xml</id><title type="html">Karmanyaah Malhotra</title><subtitle>My personal website bc y not</subtitle><author><name>Karmanyaah Malhotra</name></author><entry><title type="html">Takeover Texas - A live exploration game</title><link href="https://karmanyaah.malhotra.cc/projects/2024/11/hacktx/" rel="alternate" type="text/html" title="Takeover Texas - A live exploration game" /><published>2024-11-07T12:00:00-06:00</published><updated>2024-11-07T14:47:08-06:00</updated><id>https://karmanyaah.malhotra.cc/projects/2024/11/hacktx</id><content type="html" xml:base="https://karmanyaah.malhotra.cc/projects/2024/11/hacktx/"><![CDATA[<p>In 24 hours, we made a game playable across the UT campus with live location tracking and a topographic map as a “situation room” display. <img src="/projects/2024/11/hacktx//1.webp" alt="" width="50%" /> <img src="/projects/2024/11/hacktx//2.webp" alt="" width="50%" /></p>

<p>Takeover Texas is a week-long game across the UT campus. Players are split into Red and Blue teams, with 5-10 players each. Players can claim buildings by spending time in them (with location tracking on their phone). The team with more total time in a building owns the building or landmark. The live board will display the areas and have an LED that indicates who owns each area.</p>

<p><strong>The <a href="https://devpost.com/software/takeover-texas">Devpost</a> has more info about this project!!</strong></p>

<p>This is a brief demo YouTube video, full video on how we made this coming soon:</p>

<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/6El1HGMpBWs" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>

<p>Thanks to HackTX for giving us this great opportunity! And thanks to my friends Sarthak Dayal, Hasif Shaikh, and Mahesh Bachu for making this great project work.</p>]]></content><author><name>Karmanyaah Malhotra</name></author><category term="projects" /><category term="hardware" /><category term="hackathon" /><category term="neopixels" /><category term="code" /><category term="game" /><summary type="html"><![CDATA[In 24 hours, we made a game playable across the UT campus with live location tracking and a topographic map as a “situation room” display.]]></summary></entry><entry><title type="html">THE BOX - Hackathon Time Capsule</title><link href="https://karmanyaah.malhotra.cc/projects/2024/11/thehackbox/" rel="alternate" type="text/html" title="THE BOX - Hackathon Time Capsule" /><published>2024-11-07T11:00:00-06:00</published><updated>2024-11-07T14:22:28-06:00</updated><id>https://karmanyaah.malhotra.cc/projects/2024/11/thehackbox</id><content type="html" xml:base="https://karmanyaah.malhotra.cc/projects/2024/11/thehackbox/"><![CDATA[<p>I made a hackathon time capsule that’s been going to hackathons accross the country for over a year sharing memories! <img src="/projects/2024/11/thehackbox//2.webp" alt="" width="75%" /></p>

<p><img src="3.webp" alt="" width="50%" />
<img src="1.jpg" alt="" width="50%" /></p>

<p>Latest October 2024 Update:</p>
<iframe width="315" height="560" src="https://www.youtube-nocookie.com/embed/D5yNb50BHUU" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>
<p>Video by <a href="https://sfernandez.dev/">Samuel Fernandez</a>. Thanks to Samuel for the idea of making this!</p>

<p>November 2023 Update:</p>
<iframe width="315" height="560" src="https://www.youtube-nocookie.com/embed/QYSNVbIiaXY" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>
<p>Video by <a href="https://aram.sh/">Aram</a></p>

<p>Thanks to <a href="https://sampoder.com/">Sam Poder</a> for the supporting the idea and taking it to the first few hackathons!</p>

<iframe src="https://www.google.com/maps/d/u/0/embed?mid=1sZ_BKilBrsDjZcLmynMNmgG9vP4zDjg&amp;ehbc=2E312F&amp;noprof=1" width="640" height="480"></iframe>]]></content><author><name>Karmanyaah Malhotra</name></author><category term="projects" /><category term="hardware" /><category term="laser" /><category term="wood" /><category term="memories" /><category term="hackathon" /><category term="social" /><summary type="html"><![CDATA[I made a hackathon time capsule that’s been going to hackathons accross the country for over a year sharing memories!]]></summary></entry><entry><title type="html">VexU Over Under Competition</title><link href="https://karmanyaah.malhotra.cc/projects/2024/06/vexu/" rel="alternate" type="text/html" title="VexU Over Under Competition" /><published>2024-06-09T12:00:00-05:00</published><updated>2024-10-30T01:37:24-05:00</updated><id>https://karmanyaah.malhotra.cc/projects/2024/06/vexu</id><content type="html" xml:base="https://karmanyaah.malhotra.cc/projects/2024/06/vexu/"><![CDATA[<p>We won the Vex AI World Championship! <img src="/assets/images/projects/robotics-vexai-1.jpg" alt="" /></p>

<p><strong>More information about the robot is on this post I wrote on the <a href="https://ras.ece.utexas.edu/2024/09/05/Vexu.html">UT IEEE RAS blog</a>!</strong></p>

<p>As the go-to ops guy, I had a great time working with the team and learned a lot about motion planning, Inter Process Communication using Robot Operating System (ROS), setting up Linux and robot hardware like an Intel Realsense camera on an Nvidia Jetson Nano SBC.</p>

<p>In the future, I plan to learn more about the great stuff the rest of the team is doing in Computer Vision, LIDAR+Odometry sensor fusion for localization, decision making and better trajectory planning.</p>

<p>Here’s one of our great offensive matches:</p>

<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/lveCbHu9vZY?si=OfeYTlx7miu-uB0K" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>]]></content><author><name>Karmanyaah Malhotra</name></author><category term="projects" /><category term="hardware" /><category term="robotics" /><category term="vexu" /><category term="code" /><summary type="html"><![CDATA[We won the Vex AI World Championship!]]></summary></entry><entry><title type="html">Longhorn Trophy</title><link href="https://karmanyaah.malhotra.cc/projects/2024/04/trophy/" rel="alternate" type="text/html" title="Longhorn Trophy" /><published>2024-04-12T20:10:00-05:00</published><updated>2024-10-30T02:13:20-05:00</updated><id>https://karmanyaah.malhotra.cc/projects/2024/04/trophy</id><content type="html" xml:base="https://karmanyaah.malhotra.cc/projects/2024/04/trophy/"><![CDATA[<p>I CADed and soldered this 3D printed trophy with Neopixels in one day!
<img src="/big_files/2024-04-12/4.jpg" alt="" width="50%" /></p>

<p>UT ACM hosted a cool family feud style competition for UT CS students and professors, and I made this cool trophy between midnight and 7pm!</p>

<video width="50%" controls="" loop="" autoplay="" muted="">
    <source src="/big_files/2024-04-12/1.mp4" type="video/mp4" />
    Your browser does not support the video tag.
</video>
<p><img src="/big_files/2024-04-12/2.jpg" alt="" width="50%" /></p>

<p><br />
<br />
<br />
<br />
<br /></p>

<p>It was a fun event too:
<img src="/big_files/2024-04-12/3.jpg" alt="" width="50%" />
<img src="/big_files/2024-04-12/5.jpg" alt="" width="50%" /></p>]]></content><author><name>Karmanyaah Malhotra</name></author><category term="projects" /><category term="hardware" /><category term="3d printing" /><category term="art" /><summary type="html"><![CDATA[I CADed and soldered this 3D printed trophy with Neopixels in one day!]]></summary></entry><entry><title type="html">HackTX - Auto-aiming Turret</title><link href="https://karmanyaah.malhotra.cc/projects/2023/10/hacktx/" rel="alternate" type="text/html" title="HackTX - Auto-aiming Turret" /><published>2023-10-22T12:00:00-05:00</published><updated>2024-11-07T14:38:33-06:00</updated><id>https://karmanyaah.malhotra.cc/projects/2023/10/hacktx</id><content type="html" xml:base="https://karmanyaah.malhotra.cc/projects/2023/10/hacktx/"><![CDATA[<p>In 24 hours, we made a crazy auto-aiming turret that shoots Orbeez at A&amp;M students, and won HackTX 2023! <img src="/assets/images/projects/art-caamturret-1.jpg" alt="" /></p>

<p>We called our project the C-AAM (Counter A&amp;M) turret, which was a 2-axis AI-powered Orbeez gun that used voice recognition through Ham radio to target A&amp;M colors with OpenCV and shoot it with Orbeez.</p>

<p>The <a href="https://devpost.com/software/c-aam-turret">Devpost</a> and YouTube video have more info about our design process:</p>

<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/O36_HwhB4es?si=0HqZPOnsUu7zuHfG" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>

<p>Thanks to HackTX for giving us this great opportunity! And thanks to my friends Colby McLane, Sarthak Dayal, and Reed Graff for making this great project work.</p>]]></content><author><name>Karmanyaah Malhotra</name></author><category term="projects" /><category term="hardware" /><category term="robotics" /><category term="hackathon" /><category term="code" /><category term="weapons" /><summary type="html"><![CDATA[In 24 hours, we made a crazy auto-aiming turret that shoots Orbeez at A&amp;M students, and won HackTX 2023!]]></summary></entry><entry><title type="html">Hot Dog: The Toy Guitar Flamethrower</title><link href="https://karmanyaah.malhotra.cc/projects/2023/09/hotdog/" rel="alternate" type="text/html" title="Hot Dog: The Toy Guitar Flamethrower" /><published>2023-09-15T02:25:00-05:00</published><updated>2024-02-28T18:45:16-06:00</updated><id>https://karmanyaah.malhotra.cc/projects/2023/09/hotdog</id><content type="html" xml:base="https://karmanyaah.malhotra.cc/projects/2023/09/hotdog/"><![CDATA[<p>Meet Hot Dog, the programmable flamethrower we stuck inside a toy guitar in 42 (very stressful) hours. <img src="/assets/images/projects/art-hotdog-1.jpg" alt="" /></p>

<p>Demo &amp; Explanation Video:</p>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/oOEWn-E6v-w?si=atSr0GdM37vLgOdN" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen=""></iframe>

<p><a href="/big_files/2023-09-15/"><strong>More pictures and videos</strong></a></p>

<p>Full edited video coming soon™</p>

<p>Hack Club’s summer hackathon in VT saw people from all over the world work together towards the theme: to “make others laugh”. I’m pretty sure Hot Dog was a successful part of that.</p>

<p>This picture is of the circuit I put together and programmed, which combines everyone’s work on the spray mechanism, taser, guitar button reading, and battery (explained further in the video).</p>

<p><img src="/big_files/2023-09-15/circuit.png" alt="" /></p>

<p>Here’s the <a href="https://github.com/karmanyaahm/outernet_hot_dog/">source code on GitHub</a>, although beware, it’s hackathon quality code.</p>

<h2 id="notes">Notes</h2>
<p>Made by (L to R): yours truly (Karmanyaah Malhotra), Diego Abadie, (the amazing PM) Kevin Yang, Tinu Vanapamula, and Roshan Karim</p>

<p><img src="/big_files/2023-09-15/99team.jpg" alt="" /></p>

<p>I feel insanely lucky to have been part of a team where we achieved this crazy feat in such a short period of time, and none of this would’ve been possible without every single person’s contributions and everyone who organized Outernet! (Including the people that brought the tasers. Taser games are incredibly cool too!)</p>]]></content><author><name>Karmanyaah Malhotra</name></author><category term="projects" /><category term="hardware" /><category term="arduino" /><category term="electronics" /><category term="fire" /><category term="hackathon" /><category term="entertainment" /><summary type="html"><![CDATA[Meet Hot Dog, the programmable flamethrower we stuck inside a toy guitar in 42 (very stressful) hours.]]></summary></entry><entry><title type="html">Project SparkleTilt: My Longhorn LED Level PCB</title><link href="https://karmanyaah.malhotra.cc/projects/2023/09/sparkletilt/" rel="alternate" type="text/html" title="Project SparkleTilt: My Longhorn LED Level PCB" /><published>2023-09-15T00:25:00-05:00</published><updated>2023-09-15T05:57:53-05:00</updated><id>https://karmanyaah.malhotra.cc/projects/2023/09/sparkletilt</id><content type="html" xml:base="https://karmanyaah.malhotra.cc/projects/2023/09/sparkletilt/"><![CDATA[<p>I made a Longhorn shaped level with Addressable RGB LEDs (Neopixels) and it’s also an Arduino!!!!
<img src="/projects/2023/09/sparkletilt//1.webp" alt="" /></p>

<p>This video demos all the features of this board:</p>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/px2V8bZMeLI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen=""></iframe>

<p><img src="./2.webp" alt="" /></p>

<p><img src="https://cloud-596d7k8lu-hack-club-bot.vercel.app/8longhorn_leds.svg" alt="" />
<img src="https://cloud-596d7k8lu-hack-club-bot.vercel.app/5longhorn_leds-DEVICES_PAGE.svg" alt="" />
<img src="https://cloud-596d7k8lu-hack-club-bot.vercel.app/4longhorn_leds-DEVICES_PAGE-LED-stick0.svg" alt="" /></p>

<p>A lot of my reasoning and instructions for making this board can be found on this (very very preproduction) workshop I’m writing on how to make this board: <a href="https://workshops.hackclub.com/external-preview/karmanyaahm/onboard/pcb_level_4/">https://workshops.hackclub.com/external-preview/karmanyaahm/onboard/pcb_level_4/</a></p>

<p>TODO: add more info from video in text form, post schematics and source code on GitHub??</p>

<h2 id="notes">Notes</h2>

<p>None of this would’ve been possible without the following individuals and groups. Huge thanks to:</p>
<ul>
  <li>TODO: Code on GitHub, link to libraries</li>
  <li>Hugo Hu for his Corgi Arduino design</li>
  <li>Hack Club for inspiring and funding this</li>
  <li>Kognise for the cool header photo editing</li>
</ul>]]></content><author><name>Karmanyaah Malhotra</name></author><category term="projects" /><category term="hardware" /><category term="arduino" /><category term="pcb" /><summary type="html"><![CDATA[I made a Longhorn shaped level with Addressable RGB LEDs (Neopixels) and it’s also an Arduino!!!!]]></summary></entry><entry><title type="html">AirGapped TOTP</title><link href="https://karmanyaah.malhotra.cc/projects/2023/08/totpv2/" rel="alternate" type="text/html" title="AirGapped TOTP" /><published>2023-08-11T04:25:00-05:00</published><updated>2023-09-15T05:57:53-05:00</updated><id>https://karmanyaah.malhotra.cc/projects/2023/08/totpv2</id><content type="html" xml:base="https://karmanyaah.malhotra.cc/projects/2023/08/totpv2/"><![CDATA[<p>Isn’t keeping your 2FA codes connected to the internet kinda insecure? In today’s episode of lets overcomplicate established procedures for marginal security improvements, I made an e-ink based, battery operated TOTP device. It’s a dedicated device to do TOTP, so instead of having to store them on your phone (where they can be remotely attacked), you store them in your bag (where they can be stolen 😄). However, since OTPs are the “something you have”, that’s alright, because random theives won’t have your passwords.
<img src="/projects/2023/08/totpv2//1.webp" alt="" /></p>

<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/7Y9NhbLoITg" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen=""></iframe>
<p><sub>Is the video title catchy enough?</sub></p>

<p>It uses Pimoroni’s Badger2040 board, which is an awesome PCB that integrates an E-ink display and RP2040 microcontroller.</p>

<p><img src="./2.webp" alt="" /></p>

<p>On the back, there’s a DS3231 with wires soldered to it, going to the JST-SH for I2C and a JST-PH going to the raw battery. The RP2040 gives power to the interface part of the RTC through the I2C wires. And I designed a case to protect the wiring.</p>

<p><img src="./3.webp" alt="" /></p>

<p>More pictures, 3D files, and <a href="https://github.com/karmanyaahm/totp_device_v2">code on GitHub</a>.</p>

<p>The UX code is in the second half of <code class="language-plaintext highlighter-rouge">totp/__init__.py</code>. If you connect to the Badger using <code class="language-plaintext highlighter-rouge">rshell</code> or <code class="language-plaintext highlighter-rouge">thonny</code>, you can run <code class="language-plaintext highlighter-rouge">set_time.py</code> to save your computer’s time to the RTC. The <code class="language-plaintext highlighter-rouge">otp.json</code> file allows you to input your codes.</p>

<p><img src="./4.webp" alt="" /></p>

<p>So why did this simple take me 2 years and 11 months to finish? Well, the lack of access to a 3D printer and letting perfect be the enemy of progress. While the badger is an inconvenient form factor for this task - something keychain sized would be better - I have been using it since I printed the case at school in April and it was easy to build and works just fine. I spent a whole bunch of time on <a href="https://www.youtube.com/watch?v=-DAnVcRW7Qk">this v1</a>, but just gave up for all of 2021 because it was too much of a pain to build.</p>

<p>But, this project is still not finished. To achieve my ideal form factor, I’m planning on building v3 with a <a href="https://hackaday.io/project/184703-gamelight-a-keychain-size-game-console-with-a-led">Game&amp;Light wrist watch</a> inspired custom PCB. More to come soon<sup>TM</sup>.</p>

<h2 id="acknowledgements">Acknowledgements</h2>

<p>At its core this project just ties a other people’s serious code together. Huge thanks to:</p>
<ul>
  <li>Pimoroni for the Badger2040, BadgerOS, and associated e-ink libraries.</li>
  <li><a href="https://github.com/eddmann/pico-2fa-totp">Edd Mann’s Pico 2FA TOTP</a> library for doing all the actual TOTP computations in MicroPython in <code class="language-plaintext highlighter-rouge">./totp/</code>.</li>
  <li><a href="https://github.com/peterhinch/micropython-samples/blob/master/DS3231/ds3231_port.py">Peter Hinch’s DS3231 Driver</a> in <code class="language-plaintext highlighter-rouge">./rtc.py</code>.</li>
  <li>My 3D Printed case was inspired by <a href="https://www.thingiverse.com/thing:5997974">https://www.thingiverse.com/thing:5997974</a> and <a href="https://www.thingiverse.com/thing:5271558">https://www.thingiverse.com/thing:5271558</a> and used <a href="https://grabcad.com/library/hw-84-ds3231-real-time-clock-1">this DS3231 model</a> for sizing.</li>
</ul>]]></content><author><name>Karmanyaah Malhotra</name></author><category term="projects" /><category term="hardware" /><category term="python" /><category term="security" /><summary type="html"><![CDATA[Isn’t keeping your 2FA codes connected to the internet kinda insecure? In today’s episode of lets overcomplicate established procedures for marginal security improvements, I made an e-ink based, battery operated TOTP device. It’s a dedicated device to do TOTP, so instead of having to store them on your phone (where they can be remotely attacked), you store them in your bag (where they can be stolen 😄). However, since OTPs are the “something you have”, that’s alright, because random theives won’t have your passwords.]]></summary></entry><entry><title type="html">Making an Addressable LED Ampli-Tie*</title><link href="https://karmanyaah.malhotra.cc/projects/2023/04/amplitie/" rel="alternate" type="text/html" title="Making an Addressable LED Ampli-Tie*" /><published>2023-04-29T20:00:00-05:00</published><updated>2023-07-17T10:39:38-05:00</updated><id>https://karmanyaah.malhotra.cc/projects/2023/04/amplitie</id><content type="html" xml:base="https://karmanyaah.malhotra.cc/projects/2023/04/amplitie/"><![CDATA[<p>The microphone part doesn’t fully work yet, but here’s my Flora NeoPixel Tie.</p>

<h3 id="idea">Idea</h3>

<p>I had several Flora NeoPixels and conductive thread lying around since a previous project, so on Feb 19, I decided to make an Ampli-Tie for Prom (March 25), which meant that unlike most, this project had a hard deadline <sub><a href="https://hackclub.slack.com/archives/CNMU9L92Q/p1676982774895349?thread_ts=1676956733.424689&amp;cid=CNMU9L92Q">HC</a></sub>.</p>

<p>Parts:</p>
<ol>
  <li>Flora NeoPixels (13)</li>
  <li>Adafruit Conductive Thread (2-ply, ymmv)</li>
  <li>Microcontroller - I used a Seeed Xiao nRF52840 because of integrated BLE</li>
  <li>A microphone (I used a generic MAX4466-based mic, wouldn’t recommend)</li>
  <li>This really nice silicone stranded <a href="https://www.amazon.com/dp/B099W8HH6J">ribbon cable from Amazon</a></li>
  <li>Black Paint/Paint Pen</li>
  <li>General soldering supplies (Tweezers, Helping Hands, Solder, Iron)</li>
  <li>General sewing supplies (Black string, Fray Check/Super Glue, Needles)</li>
  <li>And a tie, of course</li>
</ol>

<h3 id="preparation">Preparation</h3>

<p>Fast forward a month to March 18.</p>

<p>I started my personal engineering notebook (thanks VRC). Of all my attempts at formalizing project documentation, I have a good feeling about this one. What’s better than a simple paper notebook and pencil?</p>

<p>As I had previously discovered, Flora NeoPixels are crazy bright. When you run them at 100% brightness they are impossible to stare at. This is great because running them at 10% brightness is more than enough for a dark hall, and instead of 60mA per pixel, you now use less than 6mA per pixel (assuming all three colors are on at once).</p>

<p>My goal was to stay under 100mA so I could reasonably power it through whatever internal processing happened going from <code class="language-plaintext highlighter-rouge">USB +5V -&gt; VCC pin</code> on the microcontroller board.</p>

<p><img src="1.webp" alt="" width="50%" />
After a bit of testing, 16 NeoPixels + the microcontroller only used 62mA at 10% duty cycle with all RGB LEDs on.</p>

<p><img src="2.webp" alt="" width="50%" />
Some placement tests showed me that 13 pixels over 39cm should be perfect. Minimizing pixels minimizes build time and power consumption.</p>

<p><img src="3.webp" alt="" width="50%" />
Then, I harvested the pixels from a nonfunctional project and scraped off as much superglue as I could.</p>

<h3 id="sewing">Sewing</h3>

<p><img src="4.webp" alt="" width="50%" />
After tearing open the tie, it was just hours and hours of sewing for three days straight. Terminating stitches is the hardest part, and you need to do that between every single LED,</p>

<p><img src="5.webp" alt="" width="50%" />
So there was sewing</p>

<p><img src="6.webp" alt="" />
and testing</p>

<p><img src="7.webp" alt="" width="50%" />
and sewing</p>

<p><img src="8.webp" alt="" /></p>

<p>and more time spent sewing and testing the connections than the entire ideation, prototype, and wearing process (if this were YouTube this would be the build montage). Check out <a href="https://learn.adafruit.com/conductive-thread/overview">Adafruit’s guide</a> on sewing with Flora for more details.</p>

<p><img src="9.webp" alt="" width="50%" /></p>

<p>Because I didn’t want to rip apart the tie, I encountered a big obstacle, the name tag. Here was where the silicone wire shined. Connecting ~ LED 3 to ~LED 10 created a “highway” of current, not only bypassing a nearly impossible stitch but also reducing total resistance by letting current bypass huge chunks of the high-resistance conductive thread.</p>

<p><img src="10.webp" alt="" width="50%" /></p>

<p>Finally, after soldering on the microcontroller, I had the hardware done! But did it work?</p>

<h3 id="code">Code</h3>

<p>I pulled together some code from the various Adafruit tutorials, reusing the same core as their Ampli-Tie. That handled all the Bluetooth communications and core effects. The <code class="language-plaintext highlighter-rouge">audiobusio</code> mechanisms from the original Adafruit code weren’t working with the nRF52840 board, so I hacked together a simple ADC-based Mic Reader in under hours. After starting this up, I realized that the mic was only outputting 3.6V all the time, being the last day, I just cut off the painted mic and replaced it with an unpainted one that I could hide under the collar. Still, when at T-2 hours the audio graph didn’t work, I decided to move on with just static colors and patterns.</p>

<p><strong>The final code can be found at <a href="https://github.com/karmanyaahm/neopixels/blob/main/amplitie/code.py">github.com/karmanyaahm/neopixels</a>.</strong></p>

<p><img src="11.webp" alt="" width="45%" /> <img src="11.5.webp" alt="" width="40%" /></p>

<p>Turns out, with a pretty Cyan running at 6% brightness (more than enough for an accessory in the center of one’s field of view), the whole thing consumed under 25mA at 5V (125mW). That is enough to last 60 hours using my 5000mAh power bank (assuming 3V from the battery and 50% efficiency) - I could easily downsize my power bank … or … ADD MORE LIGHTS! (Soon<sup>TM</sup>)</p>

<p><img src="12.webp" alt="" />
Overall, the Bluefruit app’s default cyan serendipitously complimented the rest of my Navy Blue outfit, and the tie was a great party trick - literally.</p>

<p>Here’s a video of me controlling it:</p>
<iframe width="100%" height="720" src="https://www.youtube-nocookie.com/embed/9Y6ZV2y4E2Y" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen=""></iframe>]]></content><author><name>Karmanyaah Malhotra</name></author><category term="projects" /><category term="hardware" /><category term="wearables" /><category term="sewing" /><summary type="html"><![CDATA[The microphone part doesn’t fully work yet, but here’s my Flora NeoPixel Tie.]]></summary></entry><entry><title type="html">Project Oreo: Cheap USB Rubber Ducky [Part 1]</title><link href="https://karmanyaah.malhotra.cc/tech/2022/12/rubber-ducky1/" rel="alternate" type="text/html" title="Project Oreo: Cheap USB Rubber Ducky [Part 1]" /><published>2022-12-27T01:30:00-06:00</published><updated>2023-07-17T10:39:38-05:00</updated><id>https://karmanyaah.malhotra.cc/tech/2022/12/rubber-ducky1</id><content type="html" xml:base="https://karmanyaah.malhotra.cc/tech/2022/12/rubber-ducky1/"><![CDATA[<p>OK what’s a cooler way to prank people than to change their desktop background into an absurd image? It’s even cooler if this process involves unusual tech.</p>

<p><a href="https://hackaday.com/tag/rubber-ducky/">Rubber Duckies are cool</a></p>

<p>Demo:</p>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/FbiJCnHBr70" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>

<p>Find my code <a href="https://github.com/karmanyaahm/rubber_ducky/tree/v1/v2win">on GitHub</a> (v1 is code as of writing this blog post).</p>

<p>This is a quick summary of my process, I’ll update this post w/ more details later.</p>

<p>Take a ~$2 microcontroller in a USB form factor, the Digispark, program it with a virtual (bit-bang) USB stack to emulate a Keyboard (<a href="https://github.com/digistump/DigisparkArduinoIntegration/blob/master/libraries/DigisparkUSB/DigiUSB.cpp">already done by them</a>). Add a proper USB jack and a 3d printed case (thanks to my friend Jaxzog for doing the 3d work!). And you get a very adept and flexible but cheap prank device.</p>

<p><img src="ducky.webp" alt="An image of the device described above" /></p>

<p>It is also educational, demonstrating the hazards of leaving computers unattended and unlocked. This just changes your desktop background, but it is easy to imagine something that steals private data.</p>

<p>I have been working on Project Oreo since the start of the 2022-23 school year. There is still a lot more to be done to optimize this.</p>
<ul>
  <li>OS Detection (fingerprint the order of USB packets to detect which OS is connected, currently, one device only does one OS)</li>
  <li>A funnier image</li>
  <li>Faster, more efficient keystroke sequences</li>
</ul>

<p>Thanks to Jaxzog for the case design and help with creating keystroke sequences.</p>
<h2 id="cool-tech">Cool Tech</h2>
<h4 id="polyglots">Polyglots</h4>

<p>For the Windows version, I use file format polyglots to hide my powershell script payload. A polyglot is one file that is two different things at once depending on the point of view. My background image contains the background changing script in a header comment, so when read by powershell, it is a script, but when read by a PNG image parser, it is an image.</p>
<h4 id="ipfs">IPFS</h4>

<p>The image is hosted on the content-addressed IPFS, so the Windows script can loop through multiple servers in case one is blocked, and will end up getting the same image.</p>]]></content><author><name>Karmanyaah Malhotra</name></author><category term="tech" /><category term="code" /><category term="hacking" /><summary type="html"><![CDATA[OK what’s a cooler way to prank people than to change their desktop background into an absurd image? It’s even cooler if this process involves unusual tech.]]></summary></entry></feed>