<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Vivaan Shah — Blog</title>
    <link>https://vivaanshah.tech/blog</link>
    <atom:link href="https://vivaanshah.tech/rss.xml" rel="self" type="application/rss+xml"/>
    <description>The personal technology brand of Vivaan Shah — software, electronics, embedded systems, robotics and AI. Explore projects, products and engineering logs.</description>
    <language>en</language>
    <item>
      <title>Engineering This Website</title>
      <link>https://vivaanshah.tech/blog/building-vivaanshah-tech</link>
      <guid isPermaLink="true">https://vivaanshah.tech/blog/building-vivaanshah-tech</guid>
      <description>How vivaanshah.tech is built: Astro 5 static output on Cloudflare Pages, a dependency-free motion engine, seeded generative circuit art, and a CSP with no unsafe-inline.</description>
      <category>Devlog</category>
      <pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Taming Stepper Motor Resonance with TMC2209s</title>
      <link>https://vivaanshah.tech/blog/taming-stepper-resonance</link>
      <guid isPermaLink="true">https://vivaanshah.tech/blog/taming-stepper-resonance</guid>
      <description>Why my robotic arm sang like a violin at 400 mm/min, and how StealthChop, microstepping and a firmware notch filter fixed it.</description>
      <category>Engineering</category>
      <pubDate>Sat, 14 Mar 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Serving a Realtime Web UI from an ESP32</title>
      <link>https://vivaanshah.tech/blog/esp32-realtime-web-ui</link>
      <guid isPermaLink="true">https://vivaanshah.tech/blog/esp32-realtime-web-ui</guid>
      <description>WebSockets over LittleFS with gzip-baked assets: how Helios pushes LED state to four browsers at once with ~11 ms median latency on a $4 microcontroller.</description>
      <category>Tutorial</category>
      <pubDate>Mon, 09 Feb 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Atlas Devlog 01 — The Cycloidal Redesign</title>
      <link>https://vivaanshah.tech/blog/atlas-devlog-cycloidal</link>
      <guid isPermaLink="true">https://vivaanshah.tech/blog/atlas-devlog-cycloidal</guid>
      <description>Replacing the shoulder joint's printed spur gearbox with a printed cycloidal drive: eccentric bearing, BB-loaded race, torque tests, and a 10x backlash improvement measured with a dial indicator.</description>
      <category>Devlog</category>
      <pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Five UI Patterns for 128x64 OLEDs</title>
      <link>https://vivaanshah.tech/blog/oled-ui-patterns</link>
      <guid isPermaLink="true">https://vivaanshah.tech/blog/oled-ui-patterns</guid>
      <description>The five interface patterns I keep reusing on SSD1306 displays: status bars, rotary menus with inertia, toasts, sparklines, and transitions — all inside 8KB of flash.</description>
      <category>Tutorial</category>
      <pubDate>Tue, 09 Dec 2025 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Ten Lessons from My First Custom PCB</title>
      <link>https://vivaanshah.tech/blog/first-pcb-lessons</link>
      <guid isPermaLink="true">https://vivaanshah.tech/blog/first-pcb-lessons</guid>
      <description>What two respins of my macropad board taught me about footprints, decoupling, USB routing, and why 0402 passives were a mistake I made on purpose and regretted.</description>
      <category>Engineering</category>
      <pubDate>Tue, 18 Nov 2025 00:00:00 GMT</pubDate>
    </item>
  </channel>
</rss>