{"id":2746,"date":"2026-06-27T23:27:23","date_gmt":"2026-06-27T21:27:23","guid":{"rendered":"https:\/\/buznik.net\/j\/?p=2746"},"modified":"2026-06-27T23:27:23","modified_gmt":"2026-06-27T21:27:23","slug":"the-3-second-brick-and-how-an-ai-saved-my-evening","status":"publish","type":"post","link":"https:\/\/buznik.net\/j\/2746-the-3-second-brick-and-how-an-ai-saved-my-evening\/","title":{"rendered":"The 3-Second Brick (And How an AI Saved My Evening)"},"content":{"rendered":"\r\n<p class=\"wp-block-paragraph\" data-path-to-node=\"3\">During the development of my Sourdough sensor project, I managed to flash some bad firmware to my devboard.<\/p>\r\n<p data-path-to-node=\"4\">The code didn&#8217;t crash, but it went into a deep sleep after just three seconds. Because of that, the serial port wouldn&#8217;t stay active long enough for me to flash a newer firmware version.<\/p>\r\n<p data-path-to-node=\"5\">It wasn&#8217;t a fatal issue, but it was going to be a hassle to fix\u2014and not what I wanted to deal with during an evening hobby session. So, I just picked up another Wemos D1 mini I had lying around, flashed it, and moved on.<\/p>\r\n<p data-path-to-node=\"7\">Fast forward to today.<\/p>\r\n<p data-path-to-node=\"8\">I got back to the project because I needed a second devboard to test my home-brewed OTA system.<\/p>\r\n<p data-path-to-node=\"9\">I remembered the semi-bricked board and, without expecting much, asked an LLM to write a quick script to watch the specific <code data-path-to-node=\"9\" data-index-in-node=\"124\">\/dev\/...<\/code> port and attempt to flash a basic Arduino LED blink code the moment the board responded.<\/p>\r\n<p data-path-to-node=\"10\">It worked on the second attempt. I didn&#8217;t even have to adjust the prompting, check the firmware code, or look up flasher arguments.<\/p>\r\n<p data-path-to-node=\"11\">By the time I finished typing this post, it had also completed flashing the actual OTA firmware I wanted to test.<\/p>\r\n<p data-path-to-node=\"12\">What a time to live in\u2014both good and scary.<\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>During the development of my Sourdough sensor project, I managed to flash some bad firmware to my devboard. The code didn&#8217;t crash, but it went into a deep sleep after just three seconds. Because of that, the serial port wouldn&#8217;t stay active long enough for me to flash a newer firmware version. It wasn&#8217;t a [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[766],"tags":[797,811,809],"class_list":["post-2746","post","type-post","status-publish","format-standard","hentry","category-coding-en","tag-ai","tag-arduino","tag-iot"],"acf":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/buznik.net\/j\/wp-json\/wp\/v2\/posts\/2746","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buznik.net\/j\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buznik.net\/j\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buznik.net\/j\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/buznik.net\/j\/wp-json\/wp\/v2\/comments?post=2746"}],"version-history":[{"count":2,"href":"https:\/\/buznik.net\/j\/wp-json\/wp\/v2\/posts\/2746\/revisions"}],"predecessor-version":[{"id":2749,"href":"https:\/\/buznik.net\/j\/wp-json\/wp\/v2\/posts\/2746\/revisions\/2749"}],"wp:attachment":[{"href":"https:\/\/buznik.net\/j\/wp-json\/wp\/v2\/media?parent=2746"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buznik.net\/j\/wp-json\/wp\/v2\/categories?post=2746"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buznik.net\/j\/wp-json\/wp\/v2\/tags?post=2746"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}