<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Eyobel</title>
    <description>The latest articles on DEV Community by Eyobel (@eyobel_z).</description>
    <link>https://dev.to/eyobel_z</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3963367%2F072eb98f-e93b-46b2-af82-f95dcb4c6024.jpg</url>
      <title>DEV Community: Eyobel</title>
      <link>https://dev.to/eyobel_z</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/eyobel_z"/>
    <language>en</language>
    <item>
      <title>MangoGuard — Edge AI That Detects Mango Diseases in the Field</title>
      <dc:creator>Eyobel</dc:creator>
      <pubDate>Wed, 03 Jun 2026 03:53:06 +0000</pubDate>
      <link>https://dev.to/eyobel_z/mangoguard-edge-ai-that-detects-mango-diseases-in-the-field-h93</link>
      <guid>https://dev.to/eyobel_z/mangoguard-edge-ai-that-detects-mango-diseases-in-the-field-h93</guid>
      <description>&lt;p&gt;&lt;em&gt;Submission for the GitHub Finish-Up-A-Thon Challenge&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Mango farming is a lifeline for millions of smallholder farmers in Ethiopia.&lt;br&gt;
A single fungal outbreak can silently destroy 20–30% of a harvest before a&lt;br&gt;
farmer even recognises it. Existing solutions require a lab, a specialist,&lt;br&gt;
or reliable internet. None of those exist where the problem is worst.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MangoGuard runs AI directly on a microcontroller smaller than a credit card&lt;br&gt;
— no cloud, no Wi-Fi, no lab.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb3ukl4brvdujxnzqn6kn.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb3ukl4brvdujxnzqn6kn.jpg" alt=" " width="800" height="1312"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An &lt;strong&gt;Arduino Nano 33 BLE Sense&lt;/strong&gt; runs a quantized MobileNetV1 model that&lt;br&gt;
classifies mango leaf disease in under 2 seconds at 86.45% accuracy on real&lt;br&gt;
Ethiopian farm data. The Nano also reads live temperature and humidity via a&lt;br&gt;
DHT22 sensor and sends everything — disease result, temp, and humidity — to a&lt;br&gt;
&lt;strong&gt;Raspberry Pi 4 gateway&lt;/strong&gt;, which evaluates environmental disease risk against&lt;br&gt;
agronomic thresholds, runs a 24-hour AI forecast model, and &lt;strong&gt;generates&lt;br&gt;
plain-language recommendations&lt;/strong&gt; pushed directly to farmers based on current&lt;br&gt;
conditions.&lt;/p&gt;

&lt;p&gt;Everything streams to a React dashboard in real time via WebSocket.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmighcljghu9cedk37elo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmighcljghu9cedk37elo.png" alt=" " width="800" height="697"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffts5jm74nem6verb4ay6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffts5jm74nem6verb4ay6.png" alt=" " width="436" height="412"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5g5rpmsj6z4pf6f102ol.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5g5rpmsj6z4pf6f102ol.png" alt=" " width="800" height="312"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From the dashboard you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Monitor live environmental readings and disease risk&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Run a cloud scan from your phone&lt;/strong&gt; — upload any leaf photo for instant
AI classification, no hardware required&lt;/li&gt;
&lt;li&gt;View a 5-day disease risk forecast calendar&lt;/li&gt;
&lt;li&gt;Browse your full scan history in the logs section&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The dashboard is fully bilingual — &lt;strong&gt;English and Amharic (አማርኛ)&lt;/strong&gt; — because&lt;br&gt;
agronomists advising Ethiopian farmers shouldn't have to work in a language&lt;br&gt;
that isn't theirs.&lt;/p&gt;

&lt;p&gt;Under the hood, every scan is saved to a PostgreSQL database. The &lt;strong&gt;admin&lt;br&gt;
dashboard&lt;/strong&gt; exposes this data as a labeled dataset that can be used to&lt;br&gt;
retrain and improve the model over time as more field data comes in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🌐 Live Demo:&lt;/strong&gt; &lt;a href="https://mango-guard.vercel.app/" rel="noopener noreferrer"&gt;https://mango-guard.vercel.app/&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;📂 GitHub:&lt;/strong&gt; &lt;a href="https://github.com/SCIFI-Shinobi/Intelligent-Mango-Health-Monitoring" rel="noopener noreferrer"&gt;https://github.com/SCIFI-Shinobi/Intelligent-Mango-Health-Monitoring&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Comeback Story
&lt;/h2&gt;

&lt;p&gt;The hackathon prototype worked — but only on my machine, with undocumented&lt;br&gt;
secrets, and no way for anyone else to run it. Here's what I shipped to fix that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rewrote the README from scratch — setup guide, env variable reference,
troubleshooting for the 7 most common failures&lt;/li&gt;
&lt;li&gt;Added &lt;code&gt;ARCHITECTURE.md&lt;/code&gt;, &lt;code&gt;DEPLOYMENT.md&lt;/code&gt;, and &lt;code&gt;CONTRIBUTING.md&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Fixed &lt;code&gt;.gitignore&lt;/code&gt; which was blocking &lt;code&gt;.env.example&lt;/code&gt; files from being committed&lt;/li&gt;
&lt;li&gt;Documented all 10 required environment variables (previously scattered in source code)&lt;/li&gt;
&lt;li&gt;Added GPL-3.0 LICENSE — the repo had no legal clarity before&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fixed a real production bug&lt;/strong&gt; — I had set scan intervals to 20 seconds
and forecast to trigger after 3 readings for demo convenience. The forecast
model was actually trained on a 24-reading window (one per hour). In the
field it was producing numbers that looked valid but weren't. Fixed:
&lt;code&gt;scanIntervalMs = 3600000UL&lt;/code&gt;, forecast threshold ≥ 24.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A stranger can now fork, configure, and deploy this in under 20 minutes.&lt;/p&gt;




&lt;h2&gt;
  
  
  Copilot Experience
&lt;/h2&gt;

&lt;p&gt;Copilot saved the most time on the backend — &lt;code&gt;main.py&lt;/code&gt; grew past 3,000 lines&lt;br&gt;
and it was excellent at continuing repetitive patterns: email templates,&lt;br&gt;
database migration helpers, route structure. Once I wrote the first, it nailed&lt;br&gt;
the second.&lt;/p&gt;

&lt;p&gt;During the polish phase, asking Copilot to review the README flagged that I&lt;br&gt;
had no troubleshooting section and no env variable docs — exactly what a&lt;br&gt;
first-time contributor needs. It also helped clean up firmware comments after&lt;br&gt;
I fixed the production bug.&lt;/p&gt;

&lt;p&gt;It spotted multiple ESLint warnings, duplicate translation keys, and unused imports/variables that were silently compiling locally but completely blocking production builds on Vercel CI.&lt;/p&gt;

&lt;p&gt;The honest limitation: it continues patterns well but won't proactively tell&lt;br&gt;
you what's missing. You have to ask the right question first.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built to bridge the gap between AI and smallholder agriculture in Ethiopia. 🌱&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>arduino</category>
      <category>tinyml</category>
    </item>
  </channel>
</rss>
