<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Sajeevan Veeriah - Journal</title>
    <link>https://sv.sajeevanveeriah.workers.dev/blog/</link>
    <atom:link href="https://sv.sajeevanveeriah.workers.dev/blog/feed.xml" rel="self" type="application/rss+xml" />
    <description>Practical writing on robotics, embedded systems, AI and software.</description>
    <language>en-AU</language>
    <lastBuildDate>Wed, 23 Sep 2026 00:00:00 GMT</lastBuildDate>
    <item>
      <title>Test the robot when the data stops</title>
      <link>https://sv.sajeevanveeriah.workers.dev/blog/test-a-robot-when-the-data-stops/</link>
      <guid isPermaLink="true">https://sv.sajeevanveeriah.workers.dev/blog/test-a-robot-when-the-data-stops/</guid>
      <pubDate>Wed, 23 Sep 2026 00:00:00 GMT</pubDate>
      <description>A practical ROS 2 fault-injection plan for stale observations, delayed commands and controlled recovery, with an illustrative stopping-distance calculation.</description>
    </item>
    <item>
      <title>Inside the Gendio control board: power, protocols and radar positioning</title>
      <link>https://sv.sajeevanveeriah.workers.dev/blog/gendio-control-board-and-radar-positioning/</link>
      <guid isPermaLink="true">https://sv.sajeevanveeriah.workers.dev/blog/gendio-control-board-and-radar-positioning/</guid>
      <pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate>
      <description>A detailed design study of the ESP32-S3 controller, its power and protocol boundaries, and a radar-based positioning extension that preserves the existing PCB.</description>
    </item>
    <item>
      <title>Designing a waterless solar-panel cleaning robot</title>
      <link>https://sv.sajeevanveeriah.workers.dev/blog/solar-panel-cleaning-robot-design-study/</link>
      <guid isPermaLink="true">https://sv.sajeevanveeriah.workers.dev/blog/solar-panel-cleaning-robot-design-study/</guid>
      <pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate>
      <description>CAD, traction and energy calculations, conservative coverage planning and an experimental roadmap for a modular dry-cleaning crawler.</description>
    </item>
    <item>
      <title>Building a ROS 2 navigation stack I could investigate</title>
      <link>https://sv.sajeevanveeriah.workers.dev/blog/ros2-navigation-rover-case-study/</link>
      <guid isPermaLink="true">https://sv.sajeevanveeriah.workers.dev/blog/ros2-navigation-rover-case-study/</guid>
      <pubDate>Fri, 18 Sep 2026 00:00:00 GMT</pubDate>
      <description>How I organised sensing, estimation, planning and control for a differential-drive rover, and what simulation could establish.</description>
    </item>
    <item>
      <title>From movement to measurement: my ESP32 honours capstone</title>
      <link>https://sv.sajeevanveeriah.workers.dev/blog/esp32-movement-assessment-case-study/</link>
      <guid isPermaLink="true">https://sv.sajeevanveeriah.workers.dev/blog/esp32-movement-assessment-case-study/</guid>
      <pubDate>Fri, 18 Sep 2026 00:00:00 GMT</pubDate>
      <description>Integrating Hall-effect sensing, embedded acquisition, Bluetooth and MATLAB into a movement-assessment prototype.</description>
    </item>
    <item>
      <title>Making catalogue repricing reviewable at SWL</title>
      <link>https://sv.sajeevanveeriah.workers.dev/blog/swl-pricing-inventory-case-study/</link>
      <guid isPermaLink="true">https://sv.sajeevanveeriah.workers.dev/blog/swl-pricing-inventory-case-study/</guid>
      <pubDate>Fri, 18 Sep 2026 00:00:00 GMT</pubDate>
      <description>A local-first pricing workflow with deterministic matching, exact money handling and an operator-reviewed ServiceM8 export.</description>
    </item>
    <item>
      <title>Designing the Gendio controller around explicit states</title>
      <link>https://sv.sajeevanveeriah.workers.dev/blog/gendio-display-controller-case-study/</link>
      <guid isPermaLink="true">https://sv.sajeevanveeriah.workers.dev/blog/gendio-display-controller-case-study/</guid>
      <pubDate>Fri, 18 Sep 2026 00:00:00 GMT</pubDate>
      <description>An ESP32-S3 display-controller design connecting serial parsing, guarded display output, a four-layer PCB and browser configuration.</description>
    </item>
    <item>
      <title>The second life of a product</title>
      <link>https://sv.sajeevanveeriah.workers.dev/blog/the-second-life-of-a-product/</link>
      <guid isPermaLink="true">https://sv.sajeevanveeriah.workers.dev/blog/the-second-life-of-a-product/</guid>
      <pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate>
      <description>What a product reveals about its design when someone needs to open it, find a part and put it back into service.</description>
    </item>
    <item>
      <title>In praise of the volume knob</title>
      <link>https://sv.sajeevanveeriah.workers.dev/blog/in-praise-of-the-volume-knob/</link>
      <guid isPermaLink="true">https://sv.sajeevanveeriah.workers.dev/blog/in-praise-of-the-volume-knob/</guid>
      <pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate>
      <description>A small control raises a larger design question: how much attention should an everyday adjustment demand?</description>
    </item>
    <item>
      <title>A smooth sensor trace can hide real motion</title>
      <link>https://sv.sajeevanveeriah.workers.dev/blog/sampling-can-hide-real-motion/</link>
      <guid isPermaLink="true">https://sv.sajeevanveeriah.workers.dev/blog/sampling-can-hide-real-motion/</guid>
      <pubDate>Wed, 16 Sep 2026 00:00:00 GMT</pubDate>
      <description>How an 80 Hz signal becomes indistinguishable from 20 Hz when sampled at 100 samples per second, and what to check before trusting a trend.</description>
    </item>
    <item>
      <title>99% accuracy can still miss every defect</title>
      <link>https://sv.sajeevanveeriah.workers.dev/blog/inspection-accuracy-and-missed-defects/</link>
      <guid isPermaLink="true">https://sv.sajeevanveeriah.workers.dev/blog/inspection-accuracy-and-missed-defects/</guid>
      <pubDate>Wed, 16 Sep 2026 00:00:00 GMT</pubDate>
      <description>A worked inspection example showing why defect recall, false rejects and review workload belong beside the headline accuracy score.</description>
    </item>
    <item>
      <title>The experience trap: when hiring protects the past</title>
      <link>https://sv.sajeevanveeriah.workers.dev/blog/the-experience-trap/</link>
      <guid isPermaLink="true">https://sv.sajeevanveeriah.workers.dev/blog/the-experience-trap/</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate>
      <description>Years in a role can tell us something. They cannot tell us everything. A case for assessing capability, supporting graduates and rewarding people who keep learning.</description>
    </item>
    <item>
      <title>Before training the model, do the camera maths</title>
      <link>https://sv.sajeevanveeriah.workers.dev/blog/machine-vision-starts-with-the-image/</link>
      <guid isPermaLink="true">https://sv.sajeevanveeriah.workers.dev/blog/machine-vision-starts-with-the-image/</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate>
      <description>A worked example of field of view, exposure and motion blur, and how to tell whether an inspection image contains enough evidence.</description>
    </item>
    <item>
      <title>The hidden cost of keeping every machine busy</title>
      <link>https://sv.sajeevanveeriah.workers.dev/blog/automation-queues-and-flow-time/</link>
      <guid isPermaLink="true">https://sv.sajeevanveeriah.workers.dev/blog/automation-queues-and-flow-time/</guid>
      <pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate>
      <description>What Little's Law and a simple queue model reveal about work in progress, waiting time and where automation can actually help.</description>
    </item>
    <item>
      <title>A connected sensor can still be giving you old data</title>
      <link>https://sv.sajeevanveeriah.workers.dev/blog/mqtt-connected-does-not-mean-current/</link>
      <guid isPermaLink="true">https://sv.sajeevanveeriah.workers.dev/blog/mqtt-connected-does-not-mean-current/</guid>
      <pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate>
      <description>Separating connection health, measurement age and validity in an MQTT dashboard, with a practical stale-data test.</description>
    </item>
    <item>
      <title>A ROS 2 topic can exist and still deliver nothing</title>
      <link>https://sv.sajeevanveeriah.workers.dev/blog/ros2-topic-visible-but-no-messages/</link>
      <guid isPermaLink="true">https://sv.sajeevanveeriah.workers.dev/blog/ros2-topic-visible-but-no-messages/</guid>
      <pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate>
      <description>A focused way to diagnose ROS 2 QoS mismatches, separate discovery from delivery, and test the actual subscriber.</description>
    </item>
    <item>
      <title>Before tuning a robot, check what it thinks is moving</title>
      <link>https://sv.sajeevanveeriah.workers.dev/blog/robot-localisation-before-controller-tuning/</link>
      <guid isPermaLink="true">https://sv.sajeevanveeriah.workers.dev/blog/robot-localisation-before-controller-tuning/</guid>
      <pubDate>Fri, 11 Sep 2026 00:00:00 GMT</pubDate>
      <description>A practical way to separate coordinate-frame, timing and localisation faults before changing a navigation controller.</description>
    </item>
    <item>
      <title>A noisy sensor needs a decision rule</title>
      <link>https://sv.sajeevanveeriah.workers.dev/blog/noisy-sensors-hysteresis-and-debounce/</link>
      <guid isPermaLink="true">https://sv.sajeevanveeriah.workers.dev/blog/noisy-sensors-hysteresis-and-debounce/</guid>
      <pubDate>Fri, 11 Sep 2026 00:00:00 GMT</pubDate>
      <description>How hysteresis, debounce and explicit states turn a fluctuating measurement into a useful event without hiding the timing cost.</description>
    </item>
    <item>
      <title>Local AI: the model is one part of the system</title>
      <link>https://sv.sajeevanveeriah.workers.dev/blog/local-ai-beyond-the-model/</link>
      <guid isPermaLink="true">https://sv.sajeevanveeriah.workers.dev/blog/local-ai-beyond-the-model/</guid>
      <pubDate>Fri, 11 Sep 2026 00:00:00 GMT</pubDate>
      <description>A practical design for checking retrieval, source quality and permission boundaries in an assistant that runs on your own hardware.</description>
    </item>
    <item>
      <title>The hard part of a CSV import is deciding what may change</title>
      <link>https://sv.sajeevanveeriah.workers.dev/blog/csv-imports-that-deserve-trust/</link>
      <guid isPermaLink="true">https://sv.sajeevanveeriah.workers.dev/blog/csv-imports-that-deserve-trust/</guid>
      <pubDate>Fri, 11 Sep 2026 00:00:00 GMT</pubDate>
      <description>Preserving identifiers, resolving ambiguity and making an import reviewable before it changes an operational system.</description>
    </item>
    <item>
      <title>A local app needs a way back</title>
      <link>https://sv.sajeevanveeriah.workers.dev/blog/local-first-apps-need-a-restore-path/</link>
      <guid isPermaLink="true">https://sv.sajeevanveeriah.workers.dev/blog/local-first-apps-need-a-restore-path/</guid>
      <pubDate>Fri, 11 Sep 2026 00:00:00 GMT</pubDate>
      <description>Why offline use, saved data, export and recovery need separate acceptance tests in a small personal or business app.</description>
    </item>
    <item>
      <title>When an automation times out, did the action happen?</title>
      <link>https://sv.sajeevanveeriah.workers.dev/blog/automation-retries-without-duplicate-actions/</link>
      <guid isPermaLink="true">https://sv.sajeevanveeriah.workers.dev/blog/automation-retries-without-duplicate-actions/</guid>
      <pubDate>Fri, 11 Sep 2026 00:00:00 GMT</pubDate>
      <description>Designing retries, operation records and human review for the uncertain gap between sending a request and seeing its result.</description>
    </item>
    <item>
      <title>AI without the jargon: a practical starting point</title>
      <link>https://sv.sajeevanveeriah.workers.dev/blog/ai-without-the-jargon/</link>
      <guid isPermaLink="true">https://sv.sajeevanveeriah.workers.dev/blog/ai-without-the-jargon/</guid>
      <pubDate>Thu, 10 Sep 2026 00:00:00 GMT</pubDate>
      <description>A plain-English guide to trying AI, protecting your information and checking the answers.</description>
    </item>
  </channel>
</rss>
