<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>PlantLab.ai | Blog</title>
    <link>https://blog.plantlab.ai/</link>
    <description>AI based plant health diagnosis</description>
    <pubDate>Mon, 25 May 2026 14:54:15 +0000</pubDate>
    <image>
      <url>https://i.snap.as/7V8pjnV9.jpeg</url>
      <title>PlantLab.ai | Blog</title>
      <link>https://blog.plantlab.ai/</link>
    </image>
    <item>
      <title>Why a Plant Diagnosis Should Have History</title>
      <link>https://blog.plantlab.ai/plant-diagnosis-history?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[A row of green leaf markers along a thin timeline, with one larger and glowing brighter than the rest, suggesting a pattern recognized over time&#xA;&#xA;A single diagnosis tells you what&#39;s wrong now. A history of them tells you whether you&#39;re getting better.&#xA;&#xA;That&#39;s the gap PlantLab&#39;s new /history endpoint closes.&#xA;&#xA;!--more--&#xA;&#xA;When you call /diagnose with a photo, you get back a single answer about a single plant at a single moment. Useful, and also limited. You can&#39;t tell whether the answer you got today is consistent with the answer you got last week. You can&#39;t tell whether the intervention you ran four days ago made things better or worse. You can&#39;t see a pattern across photos because the API forgets each call the moment it returns.&#xA;&#xA;That&#39;s the gap /history closes.&#xA;&#xA;What changed&#xA;&#xA;Pro and Business accounts now have an opt-in setting that, when turned on, retains diagnosis history. The photo, the answer, the timestamp, the engine version, all queryable through a new /history endpoint. Pro keeps the last 90 days. Business keeps the last 365. Off means nothing is stored. The default is off.&#xA;&#xA;There&#39;s also a Home Assistant sensor exposed for the count if you want it on a dashboard. The endpoint supports cursor-based pagination, which matters more than it sounds once you&#39;ve been growing for a few months and your history grows past a screen.&#xA;&#xA;What you can do with it today&#xA;&#xA;Three things, on day one.&#xA;&#xA;You can see trajectory. Whether a plant is improving or sliding. The leaf that read nitrogen-deficient last Sunday: is it still showing the same signal this Sunday, or has it moved? A single diagnosis can&#39;t tell you.&#xA;&#xA;You can spot patterns across plants. If three different plants in the same tent keep coming back as overwatering, the watering schedule is the variable, not the plants. The room is the constant.&#xA;&#xA;You can audit the API itself. Whether the model is consistent shot-to-shot on the same plant under the same conditions. Two photos two minutes apart, same lighting, same angle, should produce broadly the same answer. /history makes that an inspectable claim instead of a vibe.&#xA;&#xA;What I want to build on top of it&#xA;&#xA;The endpoint is the substrate, not the analysis. The reason it has the shape it does, opt-in, retention-bounded, paginated, machine-readable, is that I want certain things to be possible later. None of them exist today. I&#39;m being deliberate about not promising them on a date.&#xA;&#xA;A simple &#34;this plant has been declining for X days&#34; flag, computed from the history rather than the latest photo alone.&#xA;&#xA;Intervention tagging. Mark a diagnosis with &#34;I tried foliar Cal-Mag&#34; and see whether the next photo improves. That requires a feedback loop the current API doesn&#39;t have. /history is one half of it.&#xA;&#xA;Anomaly detection that respects time. A plant that&#39;s been healthy for six weeks suddenly returning a confident pest signal is a different event from a plant that&#39;s been borderline for six weeks. Without history the API has no way to tell those two apart.&#xA;&#xA;All of those features need the data to exist in queryable form before they can be built. That&#39;s what /history is for.&#xA;&#xA;The privacy posture&#xA;&#xA;A stateless diagnosis API is genuinely stateless. You send a photo, you get an answer, the photo is gone. That posture is impossible the moment you start retaining anything, so the bar moves: if you&#39;re going to store, you store as little as possible, you make it opt-in, you delete on a known schedule, and you never share with a second party.&#xA;&#xA;That&#39;s what /history does. Off by default. The toggle is in your dashboard and on the API. Tier-bounded retention. Rolling deletion.&#xA;&#xA;It also slots into a wider set of changes this month that all point in the same direction. Analytics moved to Umami, EU-hosted, cookieless, no consent banner. The CDN moved to Bunny.net in Slovenia. The signup CAPTCHA moved to self-hosted Altcha. Each one of those moves cuts a third party out of the data path between you and PlantLab. Together they shrink the surface area of who sees what.&#xA;&#xA;The point of all of that is straightforward. Your grow data is yours. The job of an API like this isn&#39;t to accumulate it, it&#39;s to give you an answer and stay out of the way.&#xA;&#xA;How to use it&#xA;&#xA;If you&#39;re on Pro or Business, the toggle is in your dashboard under Account settings. The API exposes the same setting. Once it&#39;s on, /history returns your diagnoses in reverse chronological order, paginated, with the same field shape as /diagnose plus a timestamp and the engine version.&#xA;&#xA;Full docs at plantlab.ai/docs.&#xA;&#xA;If you build automations and you&#39;ve been waiting for a way to compare today&#39;s reading against last week&#39;s, this is the piece that was missing.&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://i.snap.as/iNLJmxby.png" alt="A row of green leaf markers along a thin timeline, with one larger and glowing brighter than the rest, suggesting a pattern recognized over time"/></p>

<p>A single diagnosis tells you what&#39;s wrong now. A history of them tells you whether you&#39;re getting better.</p>

<p>That&#39;s the gap PlantLab&#39;s new /history endpoint closes.</p>



<p>When you call /diagnose with a photo, you get back a single answer about a single plant at a single moment. Useful, and also limited. You can&#39;t tell whether the answer you got today is consistent with the answer you got last week. You can&#39;t tell whether the intervention you ran four days ago made things better or worse. You can&#39;t see a pattern across photos because the API forgets each call the moment it returns.</p>

<p>That&#39;s the gap /history closes.</p>

<h2 id="what-changed" id="what-changed">What changed</h2>

<p>Pro and Business accounts now have an opt-in setting that, when turned on, retains diagnosis history. The photo, the answer, the timestamp, the engine version, all queryable through a new /history endpoint. Pro keeps the last 90 days. Business keeps the last 365. Off means nothing is stored. The default is off.</p>

<p>There&#39;s also a Home Assistant sensor exposed for the count if you want it on a dashboard. The endpoint supports cursor-based pagination, which matters more than it sounds once you&#39;ve been growing for a few months and your history grows past a screen.</p>

<h2 id="what-you-can-do-with-it-today" id="what-you-can-do-with-it-today">What you can do with it today</h2>

<p>Three things, on day one.</p>

<p>You can see trajectory. Whether a plant is improving or sliding. The leaf that read nitrogen-deficient last Sunday: is it still showing the same signal this Sunday, or has it moved? A single diagnosis can&#39;t tell you.</p>

<p>You can spot patterns across plants. If three different plants in the same tent keep coming back as overwatering, the watering schedule is the variable, not the plants. The room is the constant.</p>

<p>You can audit the API itself. Whether the model is consistent shot-to-shot on the same plant under the same conditions. Two photos two minutes apart, same lighting, same angle, should produce broadly the same answer. /history makes that an inspectable claim instead of a vibe.</p>

<h2 id="what-i-want-to-build-on-top-of-it" id="what-i-want-to-build-on-top-of-it">What I want to build on top of it</h2>

<p>The endpoint is the substrate, not the analysis. The reason it has the shape it does, opt-in, retention-bounded, paginated, machine-readable, is that I want certain things to be possible later. None of them exist today. I&#39;m being deliberate about not promising them on a date.</p>

<p>A simple “this plant has been declining for X days” flag, computed from the history rather than the latest photo alone.</p>

<p>Intervention tagging. Mark a diagnosis with “I tried foliar Cal-Mag” and see whether the next photo improves. That requires a feedback loop the current API doesn&#39;t have. /history is one half of it.</p>

<p>Anomaly detection that respects time. A plant that&#39;s been healthy for six weeks suddenly returning a confident pest signal is a different event from a plant that&#39;s been borderline for six weeks. Without history the API has no way to tell those two apart.</p>

<p>All of those features need the data to exist in queryable form before they can be built. That&#39;s what /history is for.</p>

<h2 id="the-privacy-posture" id="the-privacy-posture">The privacy posture</h2>

<p>A stateless diagnosis API is genuinely stateless. You send a photo, you get an answer, the photo is gone. That posture is impossible the moment you start retaining anything, so the bar moves: if you&#39;re going to store, you store as little as possible, you make it opt-in, you delete on a known schedule, and you never share with a second party.</p>

<p>That&#39;s what /history does. Off by default. The toggle is in your dashboard and on the API. Tier-bounded retention. Rolling deletion.</p>

<p>It also slots into a wider set of changes this month that all point in the same direction. Analytics moved to Umami, EU-hosted, cookieless, no consent banner. The CDN moved to Bunny.net in Slovenia. The signup CAPTCHA moved to self-hosted Altcha. Each one of those moves cuts a third party out of the data path between you and PlantLab. Together they shrink the surface area of who sees what.</p>

<p>The point of all of that is straightforward. Your grow data is yours. The job of an API like this isn&#39;t to accumulate it, it&#39;s to give you an answer and stay out of the way.</p>

<h2 id="how-to-use-it" id="how-to-use-it">How to use it</h2>

<p>If you&#39;re on Pro or Business, the toggle is in your dashboard under Account settings. The API exposes the same setting. Once it&#39;s on, /history returns your diagnoses in reverse chronological order, paginated, with the same field shape as /diagnose plus a timestamp and the engine version.</p>

<p>Full docs at <a href="https://plantlab.ai/docs">plantlab.ai/docs</a>.</p>

<p>If you build automations and you&#39;ve been waiting for a way to compare today&#39;s reading against last week&#39;s, this is the piece that was missing.</p>
]]></content:encoded>
      <guid>https://blog.plantlab.ai/plant-diagnosis-history</guid>
      <pubDate>Sun, 10 May 2026 17:43:53 +0000</pubDate>
    </item>
    <item>
      <title>How PlantLab Knows When It Might Be Wrong: The reliability_score Field</title>
      <link>https://blog.plantlab.ai/how-plantlab-knows-when-it-might-be-wrong-reliability-score?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[The Short Version&#xA;&#xA;PlantLab&#39;s API now returns a reliabilityscore field on every diagnosis. A number from 0 to 1 telling you how likely the answer is to be correct on this specific image. It replaces the old diagnosticconfidence and safetyclassification fields, which were rule-based guesses that I never trusted. The new score is much better at flagging the diagnoses that turn out to be wrong - especially on the hard cases, which is where you actually need it. Schema bumped from 1.x to 2.0.0. If you&#39;re integrating with PlantLab today, the migration is a one-line change.&#xA;&#xA;!--more--&#xA;&#xA;---&#xA;&#xA;The problem with &#34;confidence&#34; fields&#xA;&#xA;Most diagnosis APIs return a confidence number along with each answer. PlantLab did too. For every condition the model spotted, the response included a confidence value between 0 and 1. On top of that, the response also carried two derived fields. diagnosticconfidence, a single overall trust number, and safetyclassification, a three-way bucket of high, moderate, low.&#xA;&#xA;Those derived fields were a heuristic. A small handful of rules that mostly looked at the top condition&#39;s confidence and rolled it up into a number. Heuristics work fine when the problem is simple. They fall apart when the failure modes are subtle.&#xA;&#xA;In real traffic, the cases that matter are the ambiguous ones - photos where the answer isn&#39;t obvious from the image alone, and a single rule isn&#39;t enough to capture how confident the diagnosis really is. That&#39;s the slice where a trust signal earns its keep, and the slice where a rule-based composite tends to break.&#xA;&#xA;A trust signal that works on the easy cases and stops working on the harder ones isn&#39;t really a trust signal. It&#39;s a confidence display.&#xA;&#xA;---&#xA;&#xA;What reliabilityscore does differently&#xA;&#xA;reliabilityscore is a single number from 0 to 1 that estimates how likely the top diagnosis is to be correct on this specific image. Higher is better. Below 0.3 is a clear &#34;double-check this one.&#34; Above 0.7 is &#34;the system is confident and the confidence holds up.&#34;&#xA;&#xA;It doesn&#39;t replace per-class confidence. Those still tell you how strongly the model picked each individual condition. What reliabilityscore adds is a separate answer to a different question - &#34;is the entire diagnosis trustworthy on this particular image, or is something off?&#34;&#xA;&#xA;The analogy I keep coming back to: a junior diagnostician who always gives an answer, and a supervisor who looks over their shoulder. The supervisor doesn&#39;t redo the diagnosis. They judge whether each one looks trustworthy. The old diagnosticconfidence was a checklist the junior filled in themselves. reliabilityscore is the supervisor.&#xA;&#xA;I held the new score to a higher bar than the old composite. On the ambiguous cases, it does a much better job of flagging the answers you should double-check before acting on them. On the easy cases, both fields agree - which is the only place they were ever going to agree, and not where the score earns its keep.&#xA;&#xA;---&#xA;&#xA;What changes in the response&#xA;&#xA;If you&#39;re integrating with PlantLab today, here&#39;s what your code currently sees:&#xA;&#xA;{&#xA;  &#34;requestid&#34;: &#34;550e8400-e29b-41d4-a716-446655440000&#34;,&#xA;  &#34;schemaversion&#34;: &#34;1.2.0&#34;,&#xA;  &#34;success&#34;: true,&#xA;  &#34;iscannabis&#34;: true,&#xA;  &#34;ishealthy&#34;: false,&#xA;  &#34;growthstage&#34;: &#34;flowering&#34;,&#xA;  &#34;conditions&#34;: [&#xA;    { &#34;classid&#34;: &#34;magnesiumdeficiency&#34;, &#34;confidence&#34;: 0.85 }&#xA;  ],&#xA;  &#34;diagnosticconfidence&#34;: 0.85,&#xA;  &#34;safetyclassification&#34;: &#34;highconfidence&#34;&#xA;}&#xA;&#xA;After the upgrade, that same image returns:&#xA;&#xA;{&#xA;  &#34;requestid&#34;: &#34;550e8400-e29b-41d4-a716-446655440000&#34;,&#xA;  &#34;schemaversion&#34;: &#34;2.0.0&#34;,&#xA;  &#34;success&#34;: true,&#xA;  &#34;iscannabis&#34;: true,&#xA;  &#34;ishealthy&#34;: false,&#xA;  &#34;growthstage&#34;: &#34;flowering&#34;,&#xA;  &#34;conditions&#34;: [&#xA;    { &#34;classid&#34;: &#34;magnesiumdeficiency&#34;, &#34;confidence&#34;: 0.85 }&#xA;  ],&#xA;  &#34;reliabilityscore&#34;: 0.91&#xA;}&#xA;&#xA;Two fields removed. One field added. The rest of the response is identical.&#xA;&#xA;reliabilityscore is omitted when the API doesn&#39;t return a condition diagnosis - for example, when the photo isn&#39;t of cannabis, or when the plant is healthy. In those cases, there&#39;s no diagnosis to score for reliability, so the field doesn&#39;t appear. Treat its absence as &#34;no score available&#34; rather than &#34;low score.&#34;&#xA;&#xA;---&#xA;&#xA;Migration&#xA;&#xA;The change you make depends on what you were doing with the old fields.&#xA;&#xA;If you were displaying diagnosticconfidence to a user, swap to reliabilityscore. The semantics are the same direction (higher is better, both 0-1), and the new value is more accurate.&#xA;&#xA;If you were branching on safetyclassification strings, pick thresholds on reliabilityscore instead. A reasonable starting point: above 0.7 is &#34;Confident,&#34; 0.3 to 0.7 is &#34;Uncertain,&#34; below 0.3 is &#34;Low confidence.&#34; Your application can use whatever cutpoints make sense - the score is a number, not a string, so you have full flexibility.&#xA;&#xA;If you were ignoring the old fields entirely, the upgrade is automatic. Remove your code that references diagnosticconfidence or safetyclassification (it&#39;ll get null going forward) and you&#39;re done.&#xA;&#xA;The Home Assistant integration shipped a new release the same day as the API change, so existing HA users get the new sensor automatically. If you&#39;re using a custom integration, update it before the next API deploy if you can - sensors that read the removed fields will return null until the integration is updated.&#xA;&#xA;---&#xA;&#xA;Why a breaking schema, not deprecation&#xA;&#xA;I considered keeping diagnosticconfidence and safetyclassification as deprecated fields, returning the old values alongside the new score for a release or two. It would have spared everyone a migration step.&#xA;&#xA;But it forces consumers to choose between two trust signals that can disagree. The old composite says &#34;low confidence&#34; on a photo where the new score says 0.95 - which do you trust? Worse, deprecated fields stick around for months, and integrators keep reading them instead of migrating. That&#39;s basically the entire failure mode of deprecation.&#xA;&#xA;Cleaner break, single migration, no ambiguity. Schema bumped to 2.0.0 to make it loud. If your integration was on schema 1.x, you&#39;ll start getting 2.0.0 responses the next time you call the API. Field changes are documented above.&#xA;&#xA;---&#xA;&#xA;What&#39;s next&#xA;&#xA;reliabilityscore ships as v1. The field semantics stay stable: a 0 to 1 trust score, present on diagnoses that returned a condition prediction. Future improvements land behind that contract. Same field, more accurate values, no code changes on your end.&#xA;&#xA;If you migrate now, you&#39;re done with the migration.&#xA;&#xA;---&#xA;&#xA;PlantLab is free to try at plantlab.ai. Three diagnoses a day, results in milliseconds. The full API documentation, including the OpenAPI spec, lives at plantlab.ai/docs.&#xA;&#xA;---&#xA;&#xA;FAQ&#xA;&#xA;Do I have to migrate immediately?&#xA;&#xA;You&#39;ll start receiving schema 2.0.0 responses the next time you call the API. If your code reads diagnosticconfidence or safetyclassification, those reads will return null. If your code branches on those fields, your branches will fall through to whatever default path you wrote. So the migration urgency depends on what your code does with null values - some integrations will degrade gracefully, others will break.&#xA;&#xA;Is reliabilityscore the same as confidence?&#xA;&#xA;No. confidence (still present in conditions[] and pests[]) is the model&#39;s per-class probability for one specific class - &#34;how confident am I that this leaf shows magnesium deficiency?&#34; reliabilityscore is a separate signal that estimates how likely the entire diagnosis is to be correct on this image. The two answer different questions, and you can use both.&#xA;&#xA;What does it mean when reliabilityscore is missing?&#xA;&#xA;The score is only computed when the API returns a condition diagnosis - that is, when the photo is cannabis and the plant is unhealthy. For non-cannabis photos or healthy plants, there&#39;s no condition prediction to score, so the field is omitted. Treat absence as &#34;no score available,&#34; not as a low score.&#xA;&#xA;How is this different from just thresholding on confidence?&#xA;&#xA;Per-class confidence values are the model&#39;s individual outputs. They tell you which classes were predicted strongly. They don&#39;t tell you whether the diagnosis as a whole holds up on a given image. reliabilityscore answers that broader question, which is usually the one you actually have.&#xA;&#xA;Can I see PlantLab&#39;s diagnosis history for my key?&#xA;&#xA;GET /usage returns daily and monthly counts. For per-request lookup, store request_id from each diagnose response - it&#39;s stable, returned in both the JSON body and the X-Request-ID header. Use it for support tickets and feedback submission.&#xA;&#xA;---&#xA;&#xA;Related reading:&#xA;The Work Nobody Sees: How I Ran 47 Experiments to Make PlantLab&#39;s AI Better - What goes into making the model more accurate, cycle by cycle&#xA;Yellow Leaves, Seven Suspects: How PlantLab Got Specific About Nutrient Deficiencies - The nutrient subclassifier that ships alongside this trust signal&#xA;How PlantLab&#39;s AI Diagnoses 31 Cannabis Plant Problems in 18 Milliseconds - The full pipeline&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<h2 id="the-short-version" id="the-short-version">The Short Version</h2>

<p>PlantLab&#39;s API now returns a <code>reliability_score</code> field on every diagnosis. A number from 0 to 1 telling you how likely the answer is to be correct on this specific image. It replaces the old <code>diagnostic_confidence</code> and <code>safety_classification</code> fields, which were rule-based guesses that I never trusted. The new score is much better at flagging the diagnoses that turn out to be wrong – especially on the hard cases, which is where you actually need it. Schema bumped from 1.x to 2.0.0. If you&#39;re integrating with PlantLab today, the migration is a one-line change.</p>



<hr/>

<h2 id="the-problem-with-confidence-fields" id="the-problem-with-confidence-fields">The problem with “confidence” fields</h2>

<p>Most diagnosis APIs return a confidence number along with each answer. PlantLab did too. For every condition the model spotted, the response included a <code>confidence</code> value between 0 and 1. On top of that, the response also carried two derived fields. <code>diagnostic_confidence</code>, a single overall trust number, and <code>safety_classification</code>, a three-way bucket of high, moderate, low.</p>

<p>Those derived fields were a heuristic. A small handful of rules that mostly looked at the top condition&#39;s confidence and rolled it up into a number. Heuristics work fine when the problem is simple. They fall apart when the failure modes are subtle.</p>

<p>In real traffic, the cases that matter are the ambiguous ones – photos where the answer isn&#39;t obvious from the image alone, and a single rule isn&#39;t enough to capture how confident the diagnosis really is. That&#39;s the slice where a trust signal earns its keep, and the slice where a rule-based composite tends to break.</p>

<p>A trust signal that works on the easy cases and stops working on the harder ones isn&#39;t really a trust signal. It&#39;s a confidence display.</p>

<hr/>

<h2 id="what-reliability-score-does-differently" id="what-reliability-score-does-differently">What reliability_score does differently</h2>

<p><code>reliability_score</code> is a single number from 0 to 1 that estimates how likely the top diagnosis is to be correct on this specific image. Higher is better. Below 0.3 is a clear “double-check this one.” Above 0.7 is “the system is confident and the confidence holds up.”</p>

<p>It doesn&#39;t replace per-class <code>confidence</code>. Those still tell you how strongly the model picked each individual condition. What <code>reliability_score</code> adds is a separate answer to a different question – “is the entire diagnosis trustworthy on this particular image, or is something off?”</p>

<p>The analogy I keep coming back to: a junior diagnostician who always gives an answer, and a supervisor who looks over their shoulder. The supervisor doesn&#39;t redo the diagnosis. They judge whether each one looks trustworthy. The old <code>diagnostic_confidence</code> was a checklist the junior filled in themselves. <code>reliability_score</code> is the supervisor.</p>

<p>I held the new score to a higher bar than the old composite. On the ambiguous cases, it does a much better job of flagging the answers you should double-check before acting on them. On the easy cases, both fields agree – which is the only place they were ever going to agree, and not where the score earns its keep.</p>

<hr/>

<h2 id="what-changes-in-the-response" id="what-changes-in-the-response">What changes in the response</h2>

<p>If you&#39;re integrating with PlantLab today, here&#39;s what your code currently sees:</p>

<pre><code class="language-json">{
  &#34;request_id&#34;: &#34;550e8400-e29b-41d4-a716-446655440000&#34;,
  &#34;schema_version&#34;: &#34;1.2.0&#34;,
  &#34;success&#34;: true,
  &#34;is_cannabis&#34;: true,
  &#34;is_healthy&#34;: false,
  &#34;growth_stage&#34;: &#34;flowering&#34;,
  &#34;conditions&#34;: [
    { &#34;class_id&#34;: &#34;magnesium_deficiency&#34;, &#34;confidence&#34;: 0.85 }
  ],
  &#34;diagnostic_confidence&#34;: 0.85,
  &#34;safety_classification&#34;: &#34;high_confidence&#34;
}
</code></pre>

<p>After the upgrade, that same image returns:</p>

<pre><code class="language-json">{
  &#34;request_id&#34;: &#34;550e8400-e29b-41d4-a716-446655440000&#34;,
  &#34;schema_version&#34;: &#34;2.0.0&#34;,
  &#34;success&#34;: true,
  &#34;is_cannabis&#34;: true,
  &#34;is_healthy&#34;: false,
  &#34;growth_stage&#34;: &#34;flowering&#34;,
  &#34;conditions&#34;: [
    { &#34;class_id&#34;: &#34;magnesium_deficiency&#34;, &#34;confidence&#34;: 0.85 }
  ],
  &#34;reliability_score&#34;: 0.91
}
</code></pre>

<p>Two fields removed. One field added. The rest of the response is identical.</p>

<p><code>reliability_score</code> is omitted when the API doesn&#39;t return a condition diagnosis – for example, when the photo isn&#39;t of cannabis, or when the plant is healthy. In those cases, there&#39;s no diagnosis to score for reliability, so the field doesn&#39;t appear. Treat its absence as “no score available” rather than “low score.”</p>

<hr/>

<h2 id="migration" id="migration">Migration</h2>

<p>The change you make depends on what you were doing with the old fields.</p>

<p>If you were displaying <code>diagnostic_confidence</code> to a user, swap to <code>reliability_score</code>. The semantics are the same direction (higher is better, both 0-1), and the new value is more accurate.</p>

<p>If you were branching on <code>safety_classification</code> strings, pick thresholds on <code>reliability_score</code> instead. A reasonable starting point: above 0.7 is “Confident,” 0.3 to 0.7 is “Uncertain,” below 0.3 is “Low confidence.” Your application can use whatever cutpoints make sense – the score is a number, not a string, so you have full flexibility.</p>

<p>If you were ignoring the old fields entirely, the upgrade is automatic. Remove your code that references <code>diagnostic_confidence</code> or <code>safety_classification</code> (it&#39;ll get null going forward) and you&#39;re done.</p>

<p>The Home Assistant integration shipped a new release the same day as the API change, so existing HA users get the new sensor automatically. If you&#39;re using a custom integration, update it before the next API deploy if you can – sensors that read the removed fields will return null until the integration is updated.</p>

<hr/>

<h2 id="why-a-breaking-schema-not-deprecation" id="why-a-breaking-schema-not-deprecation">Why a breaking schema, not deprecation</h2>

<p>I considered keeping <code>diagnostic_confidence</code> and <code>safety_classification</code> as deprecated fields, returning the old values alongside the new score for a release or two. It would have spared everyone a migration step.</p>

<p>But it forces consumers to choose between two trust signals that can disagree. The old composite says “low confidence” on a photo where the new score says 0.95 – which do you trust? Worse, deprecated fields stick around for months, and integrators keep reading them instead of migrating. That&#39;s basically the entire failure mode of deprecation.</p>

<p>Cleaner break, single migration, no ambiguity. Schema bumped to 2.0.0 to make it loud. If your integration was on schema 1.x, you&#39;ll start getting 2.0.0 responses the next time you call the API. Field changes are documented above.</p>

<hr/>

<h2 id="what-s-next" id="what-s-next">What&#39;s next</h2>

<p><code>reliability_score</code> ships as v1. The field semantics stay stable: a 0 to 1 trust score, present on diagnoses that returned a condition prediction. Future improvements land behind that contract. Same field, more accurate values, no code changes on your end.</p>

<p>If you migrate now, you&#39;re done with the migration.</p>

<hr/>

<p><em>PlantLab is free to try at <a href="https://plantlab.ai">plantlab.ai</a>. Three diagnoses a day, results in milliseconds. The full API documentation, including the OpenAPI spec, lives at <a href="https://plantlab.ai/docs">plantlab.ai/docs</a>.</em></p>

<hr/>

<h2 id="faq" id="faq">FAQ</h2>

<p><strong>Do I have to migrate immediately?</strong></p>

<p>You&#39;ll start receiving schema 2.0.0 responses the next time you call the API. If your code reads <code>diagnostic_confidence</code> or <code>safety_classification</code>, those reads will return null. If your code branches on those fields, your branches will fall through to whatever default path you wrote. So the migration urgency depends on what your code does with null values – some integrations will degrade gracefully, others will break.</p>

<p><strong>Is reliability_score the same as confidence?</strong></p>

<p>No. <code>confidence</code> (still present in <code>conditions[]</code> and <code>pests[]</code>) is the model&#39;s per-class probability for one specific class – “how confident am I that this leaf shows magnesium deficiency?” <code>reliability_score</code> is a separate signal that estimates how likely the entire diagnosis is to be correct on this image. The two answer different questions, and you can use both.</p>

<p><strong>What does it mean when reliability_score is missing?</strong></p>

<p>The score is only computed when the API returns a condition diagnosis – that is, when the photo is cannabis and the plant is unhealthy. For non-cannabis photos or healthy plants, there&#39;s no condition prediction to score, so the field is omitted. Treat absence as “no score available,” not as a low score.</p>

<p><strong>How is this different from just thresholding on <code>confidence</code>?</strong></p>

<p>Per-class <code>confidence</code> values are the model&#39;s individual outputs. They tell you which classes were predicted strongly. They don&#39;t tell you whether the diagnosis as a whole holds up on a given image. <code>reliability_score</code> answers that broader question, which is usually the one you actually have.</p>

<p><strong>Can I see PlantLab&#39;s diagnosis history for my key?</strong></p>

<p><code>GET /usage</code> returns daily and monthly counts. For per-request lookup, store <code>request_id</code> from each diagnose response – it&#39;s stable, returned in both the JSON body and the <code>X-Request-ID</code> header. Use it for support tickets and feedback submission.</p>

<hr/>

<p><em>Related reading:</em>
– <a href="https://blog.plantlab.ai/behind-the-model-continuous-improvement">The Work Nobody Sees: How I Ran 47 Experiments to Make PlantLab&#39;s AI Better</a> – What goes into making the model more accurate, cycle by cycle
– <a href="https://blog.plantlab.ai/yellow-leaves-seven-suspects-how-plantlab-got-specific-about-nutrient">Yellow Leaves, Seven Suspects: How PlantLab Got Specific About Nutrient Deficiencies</a> – The nutrient subclassifier that ships alongside this trust signal
– <a href="https://blog.plantlab.ai/how-plantlabs-ai-diagnoses-31-cannabis-plant-problems-in-18-milliseconds">How PlantLab&#39;s AI Diagnoses 31 Cannabis Plant Problems in 18 Milliseconds</a> – The full pipeline</p>
]]></content:encoded>
      <guid>https://blog.plantlab.ai/how-plantlab-knows-when-it-might-be-wrong-reliability-score</guid>
      <pubDate>Mon, 04 May 2026 16:14:08 +0000</pubDate>
    </item>
    <item>
      <title>How AI Diagnoses Cannabis Plant Diseases: PlantLab&#39;s 31-Condition Model</title>
      <link>https://blog.plantlab.ai/how-plantlabs-ai-diagnoses-31-cannabis-plant-problems-in-18-milliseconds?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[The short version&#xA;&#xA;Most plant diagnosis tools give you a paragraph to read. PlantLab gives your automation system something to act on.&#xA;&#xA;The model covers 31 cannabis conditions and pests at 99.1% balanced accuracy. Balanced means every class counts equally - a system that nails common deficiencies but misses rare pests does not score well. The output is structured JSON that Home Assistant, Node-RED, or a custom controller can read and act on without a person in the loop.&#xA;&#xA;!--more--&#xA;&#xA;Why generic AI fails&#xA;&#xA;The first time I tried AI for plant diagnosis, I uploaded a photo to ChatGPT. It told me I had a calcium deficiency. It was light burn. The two look nothing alike if you know what you are looking at, but ChatGPT was never trained specifically on plant images. It is a convincing generalist, and when it does not know, it guesses.&#xA;&#xA;That is what most &#34;AI plant diagnosis&#34; apps actually do. Wrap a general-purpose language model, send your photo with a prompt, return whatever comes back. The output is confident, plausible, and sometimes wrong, and a new grower has no easy way to tell which time is which. It is also something you can do yourself for free, which makes paying for the service hard to justify.&#xA;&#xA;The deeper problem is that even when these tools are right, they hand you prose. Useful for a person reading a screen. Useless for an automation system that needs to decide whether to adjust pH, run a fan, or send you an alert.&#xA;&#xA;---&#xA;&#xA;What PlantLab detects&#xA;&#xA;The model covers 31 cannabis conditions and pests across four families.&#xA;&#xA;Nutrient issues: nitrogen, phosphorus, potassium, calcium, magnesium, iron, boron, manganese, and zinc deficiencies, plus nitrogen toxicity.&#xA;&#xA;Diseases: powdery mildew, bud rot, root rot, pythium, rust fungi, septoria, and mosaic virus.&#xA;&#xA;Pests: spider mites, thrips, aphids, whiteflies, fungus gnats, caterpillars, leafhoppers, leaf miners, and mealybugs.&#xA;&#xA;Environmental: light burn, light deficiency, heat stress, overwatering, and underwatering.&#xA;&#xA;Every class scores above 95% detection accuracy, including the rarer ones.&#xA;&#xA;What you get back&#xA;&#xA;{&#xA;  &#34;requestid&#34;: &#34;550e8400-e29b-41d4-a716-446655440000&#34;,&#xA;  &#34;schemaversion&#34;: &#34;2.0.0&#34;,&#xA;  &#34;success&#34;: true,&#xA;  &#34;iscannabis&#34;: true,&#xA;  &#34;ishealthy&#34;: false,&#xA;  &#34;growthstage&#34;: &#34;flowering&#34;,&#xA;  &#34;conditions&#34;: [&#xA;    { &#34;classid&#34;: &#34;budrot&#34;, &#34;confidence&#34;: 0.92 }&#xA;  ],&#xA;  &#34;pests&#34;: [],&#xA;  &#34;reliabilityscore&#34;: 0.88&#xA;}&#xA;&#xA;Not a paragraph for a person to read and interpret. A machine-readable signal. Your controller sees 92% confidence on bud rot in a flowering plant and can ramp airflow, send an alert, or log the event - keeping you informed without forcing you to step in every time.&#xA;&#xA;reliabilityscore is a separate trust signal on top of per-class confidence. It estimates whether the entire diagnosis holds up on this specific image, which is most useful on the hard cases - mixed symptoms, lookalike conditions, edge-case growth stages. There is more on it in How PlantLab Knows When It Might Be Wrong.&#xA;&#xA;---&#xA;&#xA;What&#39;s new in this release&#xA;&#xA;The previous version of the model covered 24 conditions. This release brings it to 31. The additions came from what growers actually run into and ask about.&#xA;&#xA;Bud rot is one of the worst things that can happen during flowering. Dense colas plus humid air invite Botrytis, and by the time you can see it with the naked eye, it has often already spread.&#xA;&#xA;Heat stress causes leaf curling, foxtailing, and bleaching that new growers often confuse with nutrient issues. Splitting it into its own class prevents the misdiagnosis.&#xA;&#xA;Fungus gnats are usually the first pest a new indoor grower meets. Caterpillars, leafhoppers, and leaf miners are common outdoor threats. Mealybugs are less common but brutal once they take hold. All five now have dedicated detection.&#xA;&#xA;Boron, manganese, and zinc deficiencies fill out the micronutrient coverage. Less common than the macros, but harder to spot by eye because their symptoms overlap with other conditions.&#xA;&#xA;---&#xA;&#xA;A diagnosis that surprised me&#xA;&#xA;I sent a sample of recent images through the live service to spot-check it against my own intuition.&#xA;&#xA;One result stood out. The photo was a plant that looked underwatered - drooping, leaves curling, the classic signs. The model called it overwatered. I was ready to write that off as wrong, then I went back through earlier photos. The plant had been chronically overwatered for weeks. That ongoing stress had caused nutrient lockout, which then progressed into something that looked like underwatering. The model caught the underlying cause. Without that, I would have treated the symptom and made the problem worse.&#xA;&#xA;---&#xA;&#xA;What&#39;s next&#xA;&#xA;A few things in the queue.&#xA;&#xA;Multiple concurrent conditions in one image. Plants can have spider mites and a calcium deficiency at the same time. Today the API returns the primary diagnosis. Multi-label output is on the way.&#xA;&#xA;Step-by-step automation guides. Home Assistant, Node-RED, and others - walkthroughs for wiring PlantLab into the stack you already run.&#xA;&#xA;More real-world data. Photos from real tents, at real angles, in real lighting, sharpen the model on the conditions it actually sees - not just the clean reference shots.&#xA;&#xA;PlantLab is free to try at plantlab.ai. The API returns structured JSON for every diagnosis - plug it into your automation stack and let your grow room see for itself.&#xA;&#xA;---&#xA;&#xA;Related reading:&#xA;Why I Built PlantLab - The origin story&#xA;How PlantLab Knows When It Might Be Wrong - The reliabilityscore field and schema 2.0&#xA;Nitrogen Deficiency in Cannabis: A Visual Guide - Detailed guide for the most common deficiency&#xA;Yellow Leaves, Seven Suspects - Specific nutrient identification&#xA;API Documentation&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<h2 id="the-short-version" id="the-short-version">The short version</h2>

<p>Most plant diagnosis tools give you a paragraph to read. PlantLab gives your automation system something to act on.</p>

<p>The model covers 31 cannabis conditions and pests at 99.1% balanced accuracy. Balanced means every class counts equally – a system that nails common deficiencies but misses rare pests does not score well. The output is structured JSON that Home Assistant, Node-RED, or a custom controller can read and act on without a person in the loop.</p>



<h2 id="why-generic-ai-fails" id="why-generic-ai-fails">Why generic AI fails</h2>

<p>The first time I tried AI for plant diagnosis, I uploaded a photo to ChatGPT. It told me I had a calcium deficiency. It was light burn. The two look nothing alike if you know what you are looking at, but ChatGPT was never trained specifically on plant images. It is a convincing generalist, and when it does not know, it guesses.</p>

<p>That is what most “AI plant diagnosis” apps actually do. Wrap a general-purpose language model, send your photo with a prompt, return whatever comes back. The output is confident, plausible, and sometimes wrong, and a new grower has no easy way to tell which time is which. It is also something you can do yourself for free, which makes paying for the service hard to justify.</p>

<p>The deeper problem is that even when these tools are right, they hand you prose. Useful for a person reading a screen. Useless for an automation system that needs to decide whether to adjust pH, run a fan, or send you an alert.</p>

<hr/>

<h2 id="what-plantlab-detects" id="what-plantlab-detects">What PlantLab detects</h2>

<p>The model covers 31 cannabis conditions and pests across four families.</p>

<p>Nutrient issues: nitrogen, phosphorus, potassium, calcium, magnesium, iron, boron, manganese, and zinc deficiencies, plus nitrogen toxicity.</p>

<p>Diseases: powdery mildew, bud rot, root rot, pythium, rust fungi, septoria, and mosaic virus.</p>

<p>Pests: spider mites, thrips, aphids, whiteflies, fungus gnats, caterpillars, leafhoppers, leaf miners, and mealybugs.</p>

<p>Environmental: light burn, light deficiency, heat stress, overwatering, and underwatering.</p>

<p>Every class scores above 95% detection accuracy, including the rarer ones.</p>

<h3 id="what-you-get-back" id="what-you-get-back">What you get back</h3>

<pre><code class="language-json">{
  &#34;request_id&#34;: &#34;550e8400-e29b-41d4-a716-446655440000&#34;,
  &#34;schema_version&#34;: &#34;2.0.0&#34;,
  &#34;success&#34;: true,
  &#34;is_cannabis&#34;: true,
  &#34;is_healthy&#34;: false,
  &#34;growth_stage&#34;: &#34;flowering&#34;,
  &#34;conditions&#34;: [
    { &#34;class_id&#34;: &#34;bud_rot&#34;, &#34;confidence&#34;: 0.92 }
  ],
  &#34;pests&#34;: [],
  &#34;reliability_score&#34;: 0.88
}
</code></pre>

<p>Not a paragraph for a person to read and interpret. A machine-readable signal. Your controller sees 92% confidence on bud rot in a flowering plant and can ramp airflow, send an alert, or log the event – keeping you informed without forcing you to step in every time.</p>

<p><code>reliability_score</code> is a separate trust signal on top of per-class <code>confidence</code>. It estimates whether the entire diagnosis holds up on this specific image, which is most useful on the hard cases – mixed symptoms, lookalike conditions, edge-case growth stages. There is more on it in <a href="https://blog.plantlab.ai/how-plantlab-knows-when-it-might-be-wrong-reliability-score">How PlantLab Knows When It Might Be Wrong</a>.</p>

<hr/>

<h2 id="what-s-new-in-this-release" id="what-s-new-in-this-release">What&#39;s new in this release</h2>

<p>The previous version of the model covered 24 conditions. This release brings it to 31. The additions came from what growers actually run into and ask about.</p>

<p>Bud rot is one of the worst things that can happen during flowering. Dense colas plus humid air invite Botrytis, and by the time you can see it with the naked eye, it has often already spread.</p>

<p>Heat stress causes leaf curling, foxtailing, and bleaching that new growers often confuse with nutrient issues. Splitting it into its own class prevents the misdiagnosis.</p>

<p>Fungus gnats are usually the first pest a new indoor grower meets. Caterpillars, leafhoppers, and leaf miners are common outdoor threats. Mealybugs are less common but brutal once they take hold. All five now have dedicated detection.</p>

<p>Boron, manganese, and zinc deficiencies fill out the micronutrient coverage. Less common than the macros, but harder to spot by eye because their symptoms overlap with other conditions.</p>

<hr/>

<h2 id="a-diagnosis-that-surprised-me" id="a-diagnosis-that-surprised-me">A diagnosis that surprised me</h2>

<p>I sent a sample of recent images through the live service to spot-check it against my own intuition.</p>

<p>One result stood out. The photo was a plant that looked underwatered – drooping, leaves curling, the classic signs. The model called it overwatered. I was ready to write that off as wrong, then I went back through earlier photos. The plant had been chronically overwatered for weeks. That ongoing stress had caused nutrient lockout, which then progressed into something that looked like underwatering. The model caught the underlying cause. Without that, I would have treated the symptom and made the problem worse.</p>

<hr/>

<h2 id="what-s-next" id="what-s-next">What&#39;s next</h2>

<p>A few things in the queue.</p>

<p>Multiple concurrent conditions in one image. Plants can have spider mites and a calcium deficiency at the same time. Today the API returns the primary diagnosis. Multi-label output is on the way.</p>

<p>Step-by-step automation guides. Home Assistant, Node-RED, and others – walkthroughs for wiring PlantLab into the stack you already run.</p>

<p>More real-world data. Photos from real tents, at real angles, in real lighting, sharpen the model on the conditions it actually sees – not just the clean reference shots.</p>

<p>PlantLab is free to try at <a href="https://plantlab.ai">plantlab.ai</a>. The API returns structured JSON for every diagnosis – plug it into your automation stack and let your grow room see for itself.</p>

<hr/>

<p><em>Related reading:</em>
– <a href="https://blog.plantlab.ai/why-i-built-plantlab">Why I Built PlantLab</a> – The origin story
– <a href="https://blog.plantlab.ai/how-plantlab-knows-when-it-might-be-wrong-reliability-score">How PlantLab Knows When It Might Be Wrong</a> – The reliability_score field and schema 2.0
– <a href="https://blog.plantlab.ai/nitrogen-deficiency-in-cannabis-a-visual-guide">Nitrogen Deficiency in Cannabis: A Visual Guide</a> – Detailed guide for the most common deficiency
– <a href="https://blog.plantlab.ai/yellow-leaves-seven-suspects-how-plantlab-got-specific-about-nutrient">Yellow Leaves, Seven Suspects</a> – Specific nutrient identification
– <a href="https://plantlab.ai/docs">API Documentation</a></p>
]]></content:encoded>
      <guid>https://blog.plantlab.ai/how-plantlabs-ai-diagnoses-31-cannabis-plant-problems-in-18-milliseconds</guid>
      <pubDate>Thu, 30 Apr 2026 14:11:16 +0000</pubDate>
    </item>
    <item>
      <title>Node-RED + PlantLab: Visual Automation for Your Grow</title>
      <link>https://blog.plantlab.ai/node-red-plantlab-automation?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[What You&#39;ll Build&#xA;&#xA;A Node-RED flow that captures a photo on a schedule, sends it to PlantLab for diagnosis, and takes action based on the result. Push notifications, dashboard updates, MQTT messages to your controller, log lines into InfluxDB, or whatever combination you want. No Python. No YAML. Nodes and wires.&#xA;&#xA;Setup runs about 25 minutes on a Node-RED instance that&#39;s already up. The cost is whatever camera you own plus PlantLab&#39;s free tier at 3 diagnoses a day. The output is a structured JSON result: 31 possible conditions, a growth stage, nutrient antagonism hypotheses, and confidence scores, all ready to feed into whatever comes next.&#xA;&#xA;!--more--&#xA;&#xA;Node-RED suits growers who already have their tent wired up with visual flows. If you&#39;ve got temp sensors piping into an InfluxDB dashboard, MQTT switches on a power strip, or a Telegram bot that announces fan speed changes, you already know the pattern. Plant health diagnosis is just another node in the chain.&#xA;&#xA;Coming from Home Assistant? There&#39;s a tutorial for that too. Node-RED gives you more granular flow control and broader protocol support. HA gives you a cleaner device-and-entity model. Both work. Pick whichever one matches the rest of your setup.&#xA;&#xA;---&#xA;&#xA;Prerequisites&#xA;&#xA;Before we start:&#xA;&#xA;Node-RED running (Docker, Pi, bare metal, or the Home Assistant add-on - any of them works)&#xA;A camera that can deliver a JPEG - IP camera with snapshot URL, Frigate, ESP32-CAM, Wyze with RTSP bridge, Reolink, anything that responds to an HTTP GET with a JPEG or that you can shell out to ffmpeg for&#xA;A PlantLab account - sign up free at plantlab.ai, copy your API key from the dashboard&#xA;Optional but recommended: node-red-dashboard for a visual panel, node-red-contrib-image-tools if you want to resize photos before sending, an MQTT broker if your grow controllers talk MQTT&#xA;&#xA;Camera tip: shoot the canopy from above or at a slight angle, with neutral light. Blurple grow lights throw the model off because everything comes out tinted purple. Either schedule the check during a lights-off window or use the camera&#39;s built-in flash. PlantLab wants to see actual leaf color, not a magenta smear.&#xA;&#xA;---&#xA;&#xA;Step 1: The Basic Flow&#xA;&#xA;Here&#39;s the smallest flow that actually does something useful. Four nodes. Inject on a schedule, pull an image from the camera, POST to PlantLab, debug-log the result.&#xA;&#xA;[inject: cron 08:00] -  [http request: GET camera.jpg] -  [http request: POST plantlab] -  [debug]&#xA;&#xA;Open Node-RED, drag these four nodes in, and wire them together.&#xA;&#xA;The inject node&#xA;&#xA;Repeat: at a specific time, 08:00:00&#xA;Payload: empty (we only need the trigger)&#xA;&#xA;The camera snapshot node (HTTP request)&#xA;&#xA;Method: GET&#xA;URL: your camera&#39;s snapshot endpoint, e.g. http://192.168.1.50/snapshot.jpg or your Frigate http://frigate:5000/api/growtent/latest.jpg&#xA;Return: a binary buffer&#xA;&#xA;If your camera needs auth, add a basic auth header. If it&#39;s RTSP-only, use an exec node running ffmpeg -i rtsp://... -frames:v 1 -f image2pipe - and pipe the stdout through.&#xA;&#xA;The PlantLab request node (HTTP request)&#xA;&#xA;Method: POST&#xA;URL: https://api.plantlab.ai/diagnose&#xA;Return: a parsed JSON object&#xA;Headers: set in the function node below (not in the HTTP request node&#39;s UI)&#xA;&#xA;Before this node, drop in a small function node to wrap the binary image as multipart form data and attach the API key header:&#xA;&#xA;const boundary = &#39;----NodeRedBoundary&#39; + Date.now();&#xA;const bodyStart = Buffer.from(&#xA;    --${boundary}\r\n +&#xA;    Content-Disposition: form-data; name=&#34;image&#34;; filename=&#34;plant.jpg&#34;\r\n +&#xA;    Content-Type: image/jpeg\r\n\r\n, &#39;utf8&#39;);&#xA;const bodyEnd = Buffer.from(\r\n--${boundary}--\r\n, &#39;utf8&#39;);&#xA;&#xA;msg.headers = {&#xA;    &#39;X-API-Key&#39;: &#39;YOURAPIKEY&#39;,&#xA;    &#39;Content-Type&#39;: multipart/form-data; boundary=${boundary}&#xA;};&#xA;msg.payload = Buffer.concat([bodyStart, msg.payload, bodyEnd]);&#xA;return msg;&#xA;&#xA;Put your API key in a Node-RED env variable or credentials node instead of hardcoding it. I wrote it inline for clarity.&#xA;&#xA;The debug node&#xA;&#xA;Hook this up to see the full response. You&#39;ll get something like this:&#xA;&#xA;{&#xA;  &#34;requestid&#34;: &#34;reqabc123&#34;,&#xA;  &#34;schemaversion&#34;: &#34;1.1.0&#34;,&#xA;  &#34;success&#34;: true,&#xA;  &#34;iscannabis&#34;: true,&#xA;  &#34;cannabisconfidence&#34;: 0.95,&#xA;  &#34;ishealthy&#34;: false,&#xA;  &#34;healthconfidence&#34;: 0.87,&#xA;  &#34;growthstage&#34;: &#34;flowering&#34;,&#xA;  &#34;growthstageconfidence&#34;: 0.9,&#xA;  &#34;conditions&#34;: [&#xA;    {&#xA;      &#34;classid&#34;: &#34;calciumdeficiency&#34;,&#xA;      &#34;displayname&#34;: &#34;Calcium Deficiency&#34;,&#xA;      &#34;confidence&#34;: 0.92&#xA;    }&#xA;  ],&#xA;  &#34;pests&#34;: [],&#xA;  &#34;muldershypotheses&#34;: [&#xA;    {&#xA;      &#34;excess&#34;: &#34;potassiumexcess&#34;,&#xA;      &#34;explains&#34;: [&#34;calciumdeficiency&#34;],&#xA;      &#34;evidence&#34;: 0.92,&#xA;      &#34;evidencecount&#34;: 1&#xA;    }&#xA;  ]&#xA;}&#xA;&#xA;The response can also include diagnosticconfidence, safetyclassification, uncertaintyfactors, environmentalpatterns, and progressionrisks. You can ignore the ones you do not need.&#xA;&#xA;One thing worth knowing: the response is trimmed by omission. On a clearly healthy plant, you will NOT see a conditions: [] array - the field is left out entirely. Same with pests and muldershypotheses. Always guard with payload.conditions &amp;&amp; payload.conditions.length before indexing.&#xA;&#xA;Deploy. Click the inject node&#39;s button once to run it manually. If the debug panel shows a response with success: true, the plumbing is done.&#xA;&#xA;---&#xA;&#xA;Step 2: Branch on the Result&#xA;&#xA;Now it gets interesting. You want different things to happen depending on what the diagnosis came back with. Drop in a switch node right after the PlantLab response, three outputs:&#xA;&#xA;Property: msg.payload.ishealthy&#xA;Output 1: equals false (problem detected)&#xA;Output 2: equals true (all good)&#xA;Output 3: otherwise (covers the case where the image is not cannabis - ishealthy is omitted)&#xA;&#xA;Always wire the third branch. If you accidentally point the camera at the lens cap, the wall, or your cat, the API returns iscannabis: false with ishealthy left undefined. A two-output switch drops those silently. The third output catches them so you can log or send a &#34;check your camera&#34; notification instead.&#xA;&#xA;Most of the work lives on the false branch.&#xA;&#xA;A second switch for confidence&#xA;&#xA;Inside the problem branch, add another switch:&#xA;&#xA;Property: msg.payload.conditions[0].confidence&#xA;Output 1:   = 0.75 (high confidence - alert)&#xA;Output 2: &lt; 0.75 (marginal - log only)&#xA;&#xA;Early-stage symptoms produce lower confidences. You don&#39;t want every 0.4 nitrogen-deficiency blip triggering a Telegram ping at 3 AM.&#xA;&#xA;---&#xA;&#xA;Step 3: Notifications&#xA;&#xA;Telegram&#xA;&#xA;If you have a Telegram bot set up, drop a telegram sender node on the high-confidence branch. Use a template node before it to format the message:&#xA;&#xA;[ALERT] Plant issue detected&#xA;&#xA;Condition: {{payload.conditions.0.classid}}&#xA;Confidence: {{payload.conditions.0.confidence}}&#xA;Growth stage: {{payload.growthstage}}&#xA;&#xA;Mulder&#39;s hypothesis: {{payload.muldershypotheses.0.excess}}&#xA;&#xA;Discord&#xA;&#xA;Swap the Telegram node for node-red-contrib-discord-advanced and point it at a webhook. Same template works.&#xA;&#xA;Home Assistant (via webhook)&#xA;&#xA;If you run both HA and Node-RED, Node-RED can fire an HA webhook that triggers a mobile notification with the snapshot attached:&#xA;&#xA;[http request POST: http://homeassistant:8123/api/webhook/plantlabalert]&#xA;&#xA;The webhook handler in HA does the actual notification. Useful if you already have notification channels, templates, and quiet hours configured over there.&#xA;&#xA;---&#xA;&#xA;Step 4: Close the Loop&#xA;&#xA;This is where Node-RED pays for itself over a static dashboard. You can fire automations directly from the diagnosis.&#xA;&#xA;Auto-dose Cal-Mag on calcium deficiency&#xA;&#xA;Add a switch on the condition class:&#xA;&#xA;Property: msg.payload.conditions[0].classid&#xA;Output 1: equals calciumdeficiency&#xA;&#xA;Then wire a change node to set the MQTT payload and publish to your dosing pump:&#xA;&#xA;[mqtt out]&#xA;  topic: grow/pumps/calmag/set&#xA;  payload: ON&#xA;&#xA;Then a delay node (5 seconds), then another MQTT message flipping it back OFF. Always notify yourself when a dosing automation fires. A false positive that dumps nutrients is a bad morning to wake up to.&#xA;&#xA;[set pump ON] -  [delay 5s] -  [set pump OFF] -  [notify]&#xA;&#xA;Ramp up fan speed on fungal detection&#xA;&#xA;If the diagnosis returns powderymildew or similar with high confidence, push the fan speed up and drop target humidity in your environmental controller. Same pattern - switch on classid, change node for the new setpoint, MQTT publish.&#xA;&#xA;Log everything to InfluxDB&#xA;&#xA;Regardless of what happened, log every diagnosis to a time-series database so you can build dashboards later. Drop an influxdb out node on the main line, before the switches. A function node preps the fields:&#xA;&#xA;msg.payload = [{&#xA;    ishealthy: msg.payload.ishealthy ? 1 : 0,&#xA;    healthconfidence: msg.payload.healthconfidence,&#xA;    topcondition: msg.payload.conditions[0]?.classid || &#39;none&#39;,&#xA;    topconfidence: msg.payload.conditions[0]?.confidence || 0,&#xA;    growthstage: msg.payload.growthstage&#xA;}];&#xA;return msg;&#xA;&#xA;Now you have a Grafana dashboard of plant health over time. Symptoms drift slowly over days. Watching a confidence line trending up on one specific condition is more useful than catching the single moment it crosses 0.75.&#xA;&#xA;---&#xA;&#xA;Step 5: Dashboard&#xA;&#xA;With node-red-dashboard installed, you get a web UI for free. A simple panel:&#xA;&#xA;uitemplate showing the latest snapshot&#xA;uitext nodes for condition, confidence, growth stage&#xA;uigauge for overall health confidence&#xA;A manual uibutton wired back to the inject node so you can trigger a check on demand&#xA;&#xA;Drop them all in a group called &#34;Plant Health&#34; and they render in a grid at /ui. Pretty enough for the tablet stuck to the kitchen wall.&#xA;&#xA;---&#xA;&#xA;Putting It Together&#xA;&#xA;Complete Node-RED flow: three triggers fan into GET camera, wrap multipart, POST plantlab, then ishealthy switch routes to confidence, healthy, and not-cannabis branches; confidence routes further into Telegram, HA webhook, classid switch for cal-mag pump and fan up, plus log-only&#xA;&#xA;The whole flow described in prose:&#xA;&#xA;Three triggers feed the same pipeline. Two scheduled injects (morning, evening) and one manual dashboard button. Each trigger pulls a camera snapshot, wraps it as multipart, POSTs to PlantLab, and parses the JSON response. From there the signal fans out. One branch writes every result to InfluxDB so you can graph drift over time. The other branch hits switch: ishealthy. The true side logs and stops. The false side continues into a confidence switch. Low-confidence detections only log. High-confidence detections fan out into Telegram, an HA webhook, and a switch: classid that routes specific conditions into downstream automations (cal-mag pump on calcium deficiency, fan bump on mildew, whatever you wire up).&#xA;&#xA;One diagnosis call in. One structured log entry. Two scheduled checks, one manual button. Zero or more notifications, zero or more automations fired. All from five node types: inject, http request, function, switch, change.&#xA;&#xA;---&#xA;&#xA;Troubleshooting&#xA;&#xA;| Problem | Likely cause | Fix |&#xA;|---------|-------------|-----|&#xA;| iscannabis: false | Camera angle, blurple lights, lens cap | Adjust position, use white light or flash |&#xA;| 401 Unauthorized | Missing or wrong API key | Check the X-API-Key header in the wrap-multipart function node |&#xA;| 503 Service Unavailable on upload | Image over 10 MB hits the upstream limit before reaching the API | Resize with node-red-contrib-image-tools before the POST. Target under 8 MB to be safe. |&#xA;| 429 Rate Limit | More than 3 requests/day or 90/month on free tier | Space out injects or upgrade to Pro (500/month) |&#xA;| Request hangs | Camera or API unreachable | Add a catch node on the flow; set HTTP request timeout to 15s |&#xA;| conditions field absent | Plant is healthy, or the image isn&#39;t cannabis, so no condition was detected | Expected. Guard with payload.conditions &amp;&amp; payload.conditions.length - the field is omitted entirely on healthy plants, not returned as an empty array. |&#xA;&#xA;Add a catch node wired to your alerting. When the flow itself breaks, you hear about it. Two weeks of silent green checkmarks on a flow that quietly stopped running is worse than a flow that never ran at all.&#xA;&#xA;---&#xA;&#xA;Why Node-RED Instead of Writing This in Python&#xA;&#xA;A few reasons.&#xA;&#xA;Protocols come free. MQTT, HTTP, WebSockets, Modbus, CoAP, serial, SNMP - all one node away. Your dosing pump speaks MQTT, your camera speaks RTSP, your logger speaks InfluxDB line protocol, alerts go to Telegram or Discord. Doing that same glue in Python means pulling in four libraries and maintaining them yourself.&#xA;&#xA;Visual flows match the mental model. &#34;When the camera sees X, send Y to the pump and notify me on Z&#34; is already a diagram in your head. Node-RED lets you lay it out on a canvas instead of translating between code and back.&#xA;&#xA;You can change a running flow. Deploy swaps it in place, no restart. Handy for grow-room automation where you tune thresholds based on what the plants actually end up doing, not what you assumed they would.&#xA;&#xA;If you prefer code, the same flow is about 40 lines of Python with requests, paho-mqtt, and a cron entry. Use whichever fits.&#xA;&#xA;---&#xA;&#xA;What the API Actually Gives You&#xA;&#xA;The response has every field you need for automation. The ones that matter most:&#xA;&#xA;| Field | Type | Notes |&#xA;|-------|------|-------|&#xA;| ishealthy | bool | The simplest switch |&#xA;| iscannabis | bool | Guard against pointing the camera at the wrong thing |&#xA;| conditions | array | Sorted by confidence, top result first |&#xA;| conditions[].classid | string | One of 31 possible values |&#xA;| conditions[].confidence | float | 0.0 to 1.0, maps empirically to real correctness |&#xA;| growthstage | string | seedling / vegetative / flowering |&#xA;| muldershypotheses | array | Nutrient antagonism explanations |&#xA;&#xA;muldershypotheses is the block most growers end up leaning on. If the diagnosis is calcium deficiency but the hypothesis says the real cause is potassium excess, adding more cal-mag makes things worse. That&#39;s the kind of tip that saves you a week of chasing the wrong fix. More on nutrient antagonism here.&#xA;&#xA;---&#xA;&#xA;FAQ&#xA;&#xA;Do I need a dedicated PlantLab Node-RED node?&#xA;&#xA;Not yet. The standard http request node handles it fine. A node-red-contrib-plantlab package is on the roadmap and will collapse the multipart wrapping into one node. Until then, the function snippet above does the job.&#xA;&#xA;How does this compare to the Home Assistant integration?&#xA;&#xA;HA gives you entities and a config flow. Node-RED gives you wires and broader protocol reach. If your setup is already Node-RED-centric, don&#39;t force HA into the middle just for this. If you have both, let Node-RED handle the flow logic and use HA webhooks for the notifications that already work well there.&#xA;&#xA;Rate limits?&#xA;&#xA;Free tier: 3 per day, 90 per month. Pro: 500 per month. A home grow with morning and evening checks fits the free tier with a spare daily slot. If you&#39;re monitoring multiple tents or running high-frequency checks during flower, Pro is probably what you want.&#xA;&#xA;Does 0.80 confidence really mean 80% certain?&#xA;&#xA;Close to it. Over our evaluation data, a score of 0.80 lines up empirically with about 80% correctness. Worth knowing when you set automation thresholds - a 0.60 threshold fires more often than a 0.80 one, at a predictable cost in false positives. More on how we diagnose here.&#xA;&#xA;Does it handle images from plant apps?&#xA;&#xA;The endpoint accepts any JPEG or PNG. Grow-log app, phone gallery, file drop on a NAS - same POST, same result.&#xA;&#xA;---&#xA;&#xA;PlantLab detects 31 cannabis conditions - nutrient deficiencies, pests, diseases, environmental stress - at 99%+ accuracy in 18ms. Structured JSON out, works with anything that speaks HTTP. Free tier at plantlab.ai. HA integration is open source at github.com/plantlab-ai/home-assistant-plantlab.&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<h2 id="what-you-ll-build" id="what-you-ll-build">What You&#39;ll Build</h2>

<p>A Node-RED flow that captures a photo on a schedule, sends it to PlantLab for diagnosis, and takes action based on the result. Push notifications, dashboard updates, MQTT messages to your controller, log lines into InfluxDB, or whatever combination you want. No Python. No YAML. Nodes and wires.</p>

<p>Setup runs about 25 minutes on a Node-RED instance that&#39;s already up. The cost is whatever camera you own plus PlantLab&#39;s free tier at 3 diagnoses a day. The output is a structured JSON result: 31 possible conditions, a growth stage, nutrient antagonism hypotheses, and confidence scores, all ready to feed into whatever comes next.</p>



<p>Node-RED suits growers who already have their tent wired up with visual flows. If you&#39;ve got temp sensors piping into an InfluxDB dashboard, MQTT switches on a power strip, or a Telegram bot that announces fan speed changes, you already know the pattern. Plant health diagnosis is just another node in the chain.</p>

<p>Coming from Home Assistant? <a href="/blog/home-assistant-plant-health-monitor">There&#39;s a tutorial for that too.</a> Node-RED gives you more granular flow control and broader protocol support. HA gives you a cleaner device-and-entity model. Both work. Pick whichever one matches the rest of your setup.</p>

<hr/>

<h2 id="prerequisites" id="prerequisites">Prerequisites</h2>

<p>Before we start:</p>
<ul><li><strong>Node-RED running</strong> (Docker, Pi, bare metal, or the Home Assistant add-on – any of them works)</li>
<li><strong>A camera that can deliver a JPEG</strong> – IP camera with snapshot URL, Frigate, ESP32-CAM, Wyze with RTSP bridge, Reolink, anything that responds to an HTTP GET with a JPEG or that you can shell out to <code>ffmpeg</code> for</li>
<li><strong>A PlantLab account</strong> – sign up free at <a href="https://plantlab.ai">plantlab.ai</a>, copy your API key from the dashboard</li>
<li><strong>Optional but recommended:</strong> <code>node-red-dashboard</code> for a visual panel, <code>node-red-contrib-image-tools</code> if you want to resize photos before sending, an MQTT broker if your grow controllers talk MQTT</li></ul>

<p>Camera tip: shoot the canopy from above or at a slight angle, with neutral light. Blurple grow lights throw the model off because everything comes out tinted purple. Either schedule the check during a lights-off window or use the camera&#39;s built-in flash. PlantLab wants to see actual leaf color, not a magenta smear.</p>

<hr/>

<h2 id="step-1-the-basic-flow" id="step-1-the-basic-flow">Step 1: The Basic Flow</h2>

<p>Here&#39;s the smallest flow that actually does something useful. Four nodes. Inject on a schedule, pull an image from the camera, POST to PlantLab, debug-log the result.</p>

<pre><code>[inject: cron 08:00] -&gt; [http request: GET camera.jpg] -&gt; [http request: POST plantlab] -&gt; [debug]
</code></pre>

<p>Open Node-RED, drag these four nodes in, and wire them together.</p>

<h3 id="the-inject-node" id="the-inject-node">The inject node</h3>
<ul><li><strong>Repeat:</strong> at a specific time, 08:00:00</li>
<li><strong>Payload:</strong> empty (we only need the trigger)</li></ul>

<h3 id="the-camera-snapshot-node-http-request" id="the-camera-snapshot-node-http-request">The camera snapshot node (HTTP request)</h3>
<ul><li><strong>Method:</strong> GET</li>
<li><strong>URL:</strong> your camera&#39;s snapshot endpoint, e.g. <code>http://192.168.1.50/snapshot.jpg</code> or your Frigate <code>http://frigate:5000/api/grow_tent/latest.jpg</code></li>
<li><strong>Return:</strong> a binary buffer</li></ul>

<p>If your camera needs auth, add a basic auth header. If it&#39;s RTSP-only, use an <code>exec</code> node running <code>ffmpeg -i rtsp://... -frames:v 1 -f image2pipe -</code> and pipe the stdout through.</p>

<h3 id="the-plantlab-request-node-http-request" id="the-plantlab-request-node-http-request">The PlantLab request node (HTTP request)</h3>
<ul><li><strong>Method:</strong> POST</li>
<li><strong>URL:</strong> <code>https://api.plantlab.ai/diagnose</code></li>
<li><strong>Return:</strong> a parsed JSON object</li>
<li><strong>Headers:</strong> set in the <code>function</code> node below (not in the HTTP request node&#39;s UI)</li></ul>

<p>Before this node, drop in a small <code>function</code> node to wrap the binary image as multipart form data and attach the API key header:</p>

<pre><code class="language-javascript">const boundary = &#39;----NodeRedBoundary&#39; + Date.now();
const bodyStart = Buffer.from(
    `--${boundary}\r\n` +
    `Content-Disposition: form-data; name=&#34;image&#34;; filename=&#34;plant.jpg&#34;\r\n` +
    `Content-Type: image/jpeg\r\n\r\n`, &#39;utf8&#39;);
const bodyEnd = Buffer.from(`\r\n--${boundary}--\r\n`, &#39;utf8&#39;);

msg.headers = {
    &#39;X-API-Key&#39;: &#39;YOUR_API_KEY&#39;,
    &#39;Content-Type&#39;: `multipart/form-data; boundary=${boundary}`
};
msg.payload = Buffer.concat([bodyStart, msg.payload, bodyEnd]);
return msg;
</code></pre>

<p>Put your API key in a Node-RED <code>env</code> variable or credentials node instead of hardcoding it. I wrote it inline for clarity.</p>

<h3 id="the-debug-node" id="the-debug-node">The debug node</h3>

<p>Hook this up to see the full response. You&#39;ll get something like this:</p>

<pre><code class="language-json">{
  &#34;request_id&#34;: &#34;req_abc123&#34;,
  &#34;schema_version&#34;: &#34;1.1.0&#34;,
  &#34;success&#34;: true,
  &#34;is_cannabis&#34;: true,
  &#34;cannabis_confidence&#34;: 0.95,
  &#34;is_healthy&#34;: false,
  &#34;health_confidence&#34;: 0.87,
  &#34;growth_stage&#34;: &#34;flowering&#34;,
  &#34;growth_stage_confidence&#34;: 0.9,
  &#34;conditions&#34;: [
    {
      &#34;class_id&#34;: &#34;calcium_deficiency&#34;,
      &#34;display_name&#34;: &#34;Calcium Deficiency&#34;,
      &#34;confidence&#34;: 0.92
    }
  ],
  &#34;pests&#34;: [],
  &#34;mulders_hypotheses&#34;: [
    {
      &#34;excess&#34;: &#34;potassium_excess&#34;,
      &#34;explains&#34;: [&#34;calcium_deficiency&#34;],
      &#34;evidence&#34;: 0.92,
      &#34;evidence_count&#34;: 1
    }
  ]
}
</code></pre>

<p>The response can also include <code>diagnostic_confidence</code>, <code>safety_classification</code>, <code>uncertainty_factors</code>, <code>environmental_patterns</code>, and <code>progression_risks</code>. You can ignore the ones you do not need.</p>

<p>One thing worth knowing: the response is trimmed by omission. On a clearly healthy plant, you will NOT see a <code>conditions: []</code> array – the field is left out entirely. Same with <code>pests</code> and <code>mulders_hypotheses</code>. Always guard with <code>payload.conditions &amp;&amp; payload.conditions.length</code> before indexing.</p>

<p>Deploy. Click the inject node&#39;s button once to run it manually. If the debug panel shows a response with <code>success: true</code>, the plumbing is done.</p>

<hr/>

<h2 id="step-2-branch-on-the-result" id="step-2-branch-on-the-result">Step 2: Branch on the Result</h2>

<p>Now it gets interesting. You want different things to happen depending on what the diagnosis came back with. Drop in a <code>switch</code> node right after the PlantLab response, three outputs:</p>
<ul><li><strong>Property:</strong> <code>msg.payload.is_healthy</code></li>
<li><strong>Output 1:</strong> equals <code>false</code> (problem detected)</li>
<li><strong>Output 2:</strong> equals <code>true</code> (all good)</li>
<li><strong>Output 3:</strong> otherwise (covers the case where the image is not cannabis – <code>is_healthy</code> is omitted)</li></ul>

<p>Always wire the third branch. If you accidentally point the camera at the lens cap, the wall, or your cat, the API returns <code>is_cannabis: false</code> with <code>is_healthy</code> left undefined. A two-output switch drops those silently. The third output catches them so you can log or send a “check your camera” notification instead.</p>

<p>Most of the work lives on the <code>false</code> branch.</p>

<h3 id="a-second-switch-for-confidence" id="a-second-switch-for-confidence">A second switch for confidence</h3>

<p>Inside the problem branch, add another <code>switch</code>:</p>
<ul><li><strong>Property:</strong> <code>msg.payload.conditions[0].confidence</code></li>
<li><strong>Output 1:</strong> &gt;= 0.75 (high confidence – alert)</li>
<li><strong>Output 2:</strong> &lt; 0.75 (marginal – log only)</li></ul>

<p>Early-stage symptoms produce lower confidences. You don&#39;t want every 0.4 nitrogen-deficiency blip triggering a Telegram ping at 3 AM.</p>

<hr/>

<h2 id="step-3-notifications" id="step-3-notifications">Step 3: Notifications</h2>

<h3 id="telegram" id="telegram">Telegram</h3>

<p>If you have a Telegram bot set up, drop a <code>telegram sender</code> node on the high-confidence branch. Use a <code>template</code> node before it to format the message:</p>

<pre><code>[ALERT] Plant issue detected

Condition: {{payload.conditions.0.class_id}}
Confidence: {{payload.conditions.0.confidence}}
Growth stage: {{payload.growth_stage}}

Mulder&#39;s hypothesis: {{payload.mulders_hypotheses.0.excess}}
</code></pre>

<h3 id="discord" id="discord">Discord</h3>

<p>Swap the Telegram node for <code>node-red-contrib-discord-advanced</code> and point it at a webhook. Same template works.</p>

<h3 id="home-assistant-via-webhook" id="home-assistant-via-webhook">Home Assistant (via webhook)</h3>

<p>If you run both HA and Node-RED, Node-RED can fire an HA webhook that triggers a mobile notification with the snapshot attached:</p>

<pre><code>[http request POST: http://homeassistant:8123/api/webhook/plantlab_alert]
</code></pre>

<p>The webhook handler in HA does the actual notification. Useful if you already have notification channels, templates, and quiet hours configured over there.</p>

<hr/>

<h2 id="step-4-close-the-loop" id="step-4-close-the-loop">Step 4: Close the Loop</h2>

<p>This is where Node-RED pays for itself over a static dashboard. You can fire automations directly from the diagnosis.</p>

<h3 id="auto-dose-cal-mag-on-calcium-deficiency" id="auto-dose-cal-mag-on-calcium-deficiency">Auto-dose Cal-Mag on calcium deficiency</h3>

<p>Add a <code>switch</code> on the condition class:</p>
<ul><li><strong>Property:</strong> <code>msg.payload.conditions[0].class_id</code></li>
<li><strong>Output 1:</strong> equals <code>calcium_deficiency</code></li></ul>

<p>Then wire a <code>change</code> node to set the MQTT payload and publish to your dosing pump:</p>

<pre><code>[mqtt out]
  topic: grow/pumps/calmag/set
  payload: ON
</code></pre>

<p>Then a <code>delay</code> node (5 seconds), then another MQTT message flipping it back OFF. Always notify yourself when a dosing automation fires. A false positive that dumps nutrients is a bad morning to wake up to.</p>

<pre><code>[set pump ON] -&gt; [delay 5s] -&gt; [set pump OFF] -&gt; [notify]
</code></pre>

<h3 id="ramp-up-fan-speed-on-fungal-detection" id="ramp-up-fan-speed-on-fungal-detection">Ramp up fan speed on fungal detection</h3>

<p>If the diagnosis returns <code>powdery_mildew</code> or similar with high confidence, push the fan speed up and drop target humidity in your environmental controller. Same pattern – <code>switch</code> on class_id, <code>change</code> node for the new setpoint, MQTT publish.</p>

<h3 id="log-everything-to-influxdb" id="log-everything-to-influxdb">Log everything to InfluxDB</h3>

<p>Regardless of what happened, log every diagnosis to a time-series database so you can build dashboards later. Drop an <code>influxdb out</code> node on the main line, before the switches. A function node preps the fields:</p>

<pre><code class="language-javascript">msg.payload = [{
    is_healthy: msg.payload.is_healthy ? 1 : 0,
    health_confidence: msg.payload.health_confidence,
    top_condition: msg.payload.conditions[0]?.class_id || &#39;none&#39;,
    top_confidence: msg.payload.conditions[0]?.confidence || 0,
    growth_stage: msg.payload.growth_stage
}];
return msg;
</code></pre>

<p>Now you have a Grafana dashboard of plant health over time. Symptoms drift slowly over days. Watching a confidence line trending up on one specific condition is more useful than catching the single moment it crosses 0.75.</p>

<hr/>

<h2 id="step-5-dashboard" id="step-5-dashboard">Step 5: Dashboard</h2>

<p>With <code>node-red-dashboard</code> installed, you get a web UI for free. A simple panel:</p>
<ul><li><code>ui_template</code> showing the latest snapshot</li>
<li><code>ui_text</code> nodes for condition, confidence, growth stage</li>
<li><code>ui_gauge</code> for overall health confidence</li>
<li>A manual <code>ui_button</code> wired back to the inject node so you can trigger a check on demand</li></ul>

<p>Drop them all in a group called “Plant Health” and they render in a grid at <code>/ui</code>. Pretty enough for the tablet stuck to the kitchen wall.</p>

<hr/>

<h2 id="putting-it-together" id="putting-it-together">Putting It Together</h2>

<p><img src="https://i.snap.as/GQHqBdis.png" alt="Complete Node-RED flow: three triggers fan into GET camera, wrap multipart, POST plantlab, then is_healthy switch routes to confidence, healthy, and not-cannabis branches; confidence routes further into Telegram, HA webhook, class_id switch for cal-mag pump and fan up, plus log-only"/></p>

<p>The whole flow described in prose:</p>

<p>Three triggers feed the same pipeline. Two scheduled injects (morning, evening) and one manual dashboard button. Each trigger pulls a camera snapshot, wraps it as multipart, POSTs to PlantLab, and parses the JSON response. From there the signal fans out. One branch writes every result to InfluxDB so you can graph drift over time. The other branch hits <code>switch: is_healthy</code>. The <code>true</code> side logs and stops. The <code>false</code> side continues into a confidence switch. Low-confidence detections only log. High-confidence detections fan out into Telegram, an HA webhook, and a <code>switch: class_id</code> that routes specific conditions into downstream automations (cal-mag pump on calcium deficiency, fan bump on mildew, whatever you wire up).</p>

<p>One diagnosis call in. One structured log entry. Two scheduled checks, one manual button. Zero or more notifications, zero or more automations fired. All from five node types: <code>inject</code>, <code>http request</code>, <code>function</code>, <code>switch</code>, <code>change</code>.</p>

<hr/>

<h2 id="troubleshooting" id="troubleshooting">Troubleshooting</h2>

<table>
<thead>
<tr>
<th>Problem</th>
<th>Likely cause</th>
<th>Fix</th>
</tr>
</thead>

<tbody>
<tr>
<td><code>is_cannabis: false</code></td>
<td>Camera angle, blurple lights, lens cap</td>
<td>Adjust position, use white light or flash</td>
</tr>

<tr>
<td>401 Unauthorized</td>
<td>Missing or wrong API key</td>
<td>Check the <code>X-API-Key</code> header in the wrap-multipart function node</td>
</tr>

<tr>
<td>503 Service Unavailable on upload</td>
<td>Image over 10 MB hits the upstream limit before reaching the API</td>
<td>Resize with <code>node-red-contrib-image-tools</code> before the POST. Target under 8 MB to be safe.</td>
</tr>

<tr>
<td>429 Rate Limit</td>
<td>More than 3 requests/day or 90/month on free tier</td>
<td>Space out injects or upgrade to Pro (500/month)</td>
</tr>

<tr>
<td>Request hangs</td>
<td>Camera or API unreachable</td>
<td>Add a <code>catch</code> node on the flow; set HTTP request timeout to 15s</td>
</tr>

<tr>
<td><code>conditions</code> field absent</td>
<td>Plant is healthy, or the image isn&#39;t cannabis, so no condition was detected</td>
<td>Expected. Guard with <code>payload.conditions &amp;&amp; payload.conditions.length</code> – the field is omitted entirely on healthy plants, not returned as an empty array.</td>
</tr>
</tbody>
</table>

<p>Add a <code>catch</code> node wired to your alerting. When the flow itself breaks, you hear about it. Two weeks of silent green checkmarks on a flow that quietly stopped running is worse than a flow that never ran at all.</p>

<hr/>

<h2 id="why-node-red-instead-of-writing-this-in-python" id="why-node-red-instead-of-writing-this-in-python">Why Node-RED Instead of Writing This in Python</h2>

<p>A few reasons.</p>

<p><strong>Protocols come free.</strong> MQTT, HTTP, WebSockets, Modbus, CoAP, serial, SNMP – all one node away. Your dosing pump speaks MQTT, your camera speaks RTSP, your logger speaks InfluxDB line protocol, alerts go to Telegram or Discord. Doing that same glue in Python means pulling in four libraries and maintaining them yourself.</p>

<p><strong>Visual flows match the mental model.</strong> “When the camera sees X, send Y to the pump and notify me on Z” is already a diagram in your head. Node-RED lets you lay it out on a canvas instead of translating between code and back.</p>

<p><strong>You can change a running flow.</strong> Deploy swaps it in place, no restart. Handy for grow-room automation where you tune thresholds based on what the plants actually end up doing, not what you assumed they would.</p>

<p>If you prefer code, the same flow is about 40 lines of Python with <code>requests</code>, <code>paho-mqtt</code>, and a cron entry. Use whichever fits.</p>

<hr/>

<h2 id="what-the-api-actually-gives-you" id="what-the-api-actually-gives-you">What the API Actually Gives You</h2>

<p>The response has every field you need for automation. The ones that matter most:</p>

<table>
<thead>
<tr>
<th>Field</th>
<th>Type</th>
<th>Notes</th>
</tr>
</thead>

<tbody>
<tr>
<td><code>is_healthy</code></td>
<td>bool</td>
<td>The simplest switch</td>
</tr>

<tr>
<td><code>is_cannabis</code></td>
<td>bool</td>
<td>Guard against pointing the camera at the wrong thing</td>
</tr>

<tr>
<td><code>conditions</code></td>
<td>array</td>
<td>Sorted by confidence, top result first</td>
</tr>

<tr>
<td><code>conditions[].class_id</code></td>
<td>string</td>
<td>One of 31 possible values</td>
</tr>

<tr>
<td><code>conditions[].confidence</code></td>
<td>float</td>
<td>0.0 to 1.0, maps empirically to real correctness</td>
</tr>

<tr>
<td><code>growth_stage</code></td>
<td>string</td>
<td><code>seedling</code> / <code>vegetative</code> / <code>flowering</code></td>
</tr>

<tr>
<td><code>mulders_hypotheses</code></td>
<td>array</td>
<td>Nutrient antagonism explanations</td>
</tr>
</tbody>
</table>

<p><code>mulders_hypotheses</code> is the block most growers end up leaning on. If the diagnosis is calcium deficiency but the hypothesis says the real cause is potassium excess, adding more cal-mag makes things worse. That&#39;s the kind of tip that saves you a week of chasing the wrong fix. <a href="/blog/nutrient-antagonism-cannabis">More on nutrient antagonism here.</a></p>

<hr/>

<h2 id="faq" id="faq">FAQ</h2>

<p><strong>Do I need a dedicated PlantLab Node-RED node?</strong></p>

<p>Not yet. The standard <code>http request</code> node handles it fine. A <code>node-red-contrib-plantlab</code> package is on the roadmap and will collapse the multipart wrapping into one node. Until then, the function snippet above does the job.</p>

<p><strong>How does this compare to the Home Assistant integration?</strong></p>

<p>HA gives you entities and a config flow. Node-RED gives you wires and broader protocol reach. If your setup is already Node-RED-centric, don&#39;t force HA into the middle just for this. If you have both, let Node-RED handle the flow logic and use HA webhooks for the notifications that already work well there.</p>

<p><strong>Rate limits?</strong></p>

<p>Free tier: 3 per day, 90 per month. Pro: 500 per month. A home grow with morning and evening checks fits the free tier with a spare daily slot. If you&#39;re monitoring multiple tents or running high-frequency checks during flower, Pro is probably what you want.</p>

<p><strong>Does 0.80 confidence really mean 80% certain?</strong></p>

<p>Close to it. Over our evaluation data, a score of 0.80 lines up empirically with about 80% correctness. Worth knowing when you set automation thresholds – a 0.60 threshold fires more often than a 0.80 one, at a predictable cost in false positives. <a href="/blog/how-ai-diagnoses-cannabis">More on how we diagnose here.</a></p>

<p><strong>Does it handle images from plant apps?</strong></p>

<p>The endpoint accepts any JPEG or PNG. Grow-log app, phone gallery, file drop on a NAS – same POST, same result.</p>

<hr/>

<p><em>PlantLab detects 31 cannabis conditions – nutrient deficiencies, pests, diseases, environmental stress – at 99%+ accuracy in 18ms. Structured JSON out, works with anything that speaks HTTP. Free tier at <a href="https://plantlab.ai">plantlab.ai</a>. HA integration is open source at <a href="https://github.com/plantlab-ai/home-assistant-plantlab">github.com/plantlab-ai/home-assistant-plantlab</a>.</em></p>
]]></content:encoded>
      <guid>https://blog.plantlab.ai/node-red-plantlab-automation</guid>
      <pubDate>Fri, 24 Apr 2026 18:11:15 +0000</pubDate>
    </item>
    <item>
      <title>What&#39;s Wrong With My Cannabis Plant? A Visual Diagnosis Guide</title>
      <link>https://blog.plantlab.ai/whats-wrong-with-my-cannabis-plant?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Cannabis plant showing multiple deficiency symptoms - yellow bottom leaves, brown edges, and spotted new growth&#xA;&#xA;Start Here&#xA;&#xA;Something looks wrong. Maybe the bottom leaves are yellowing. Maybe the tips are curling. Maybe you walked into your tent and something just looked off in a way you can&#39;t articulate but your gut knows isn&#39;t right.&#xA;&#xA;So you did what every grower does: you took a photo, posted it online, and got twelve different answers. Someone said CalMag. Someone said flush. Someone said &#34;two more weeks.&#34; None of them agreed on what the actual problem is.&#xA;&#xA;This guide won&#39;t do that. It walks through a systematic process: look at where the damage is, what it looks like, and narrow it down to a specific cause. No guessing, no bro science, no &#34;could be anything, hard to tell from the photo.&#34;&#xA;&#xA;!--more--&#xA;&#xA;Step 1: Where Are the Symptoms?&#xA;&#xA;Look at where the damage is happening. Location tells you more than color does.&#xA;&#xA;| Symptom Location | Most Likely Causes |&#xA;|-----------------|-------------------|&#xA;| Bottom/older leaves first | Nitrogen deficiency, magnesium deficiency, potassium deficiency |&#xA;| Top/new growth first | Iron deficiency, calcium deficiency, light burn, heat stress |&#xA;| Entire plant | Overwatering, underwatering, pH lockout, root problems |&#xA;| Leaf surfaces (spots/patches) | Pests (spider mites, thrips), diseases (septoria, powdery mildew) |&#xA;| Buds/flowers | Bud rot, caterpillars, light burn |&#xA;| Stems/branches | Phosphorus deficiency, fusarium, root rot |&#xA;&#xA;Here&#39;s the rule that eliminates half the guesswork: mobile nutrients (nitrogen, magnesium, potassium, phosphorus) move from old leaves to new ones. When they run low, old growth sacrifices itself first. Immobile nutrients (iron, calcium) stay put - so deficiency shows up on new growth first.&#xA;&#xA;Bottom-up damage? Mobile nutrient problem. Top-down damage? Immobile nutrient or environmental. That single distinction saves you from chasing the wrong diagnosis for a week.&#xA;&#xA;Mobile vs immobile nutrient deficiency in cannabis - bottom-up yellowing versus top-down symptoms diagnostic comparison&#xA;&#xA;---&#xA;&#xA;Step 2: What Do the Leaves Look Like?&#xA;&#xA;Yellow Leaves&#xA;&#xA;Ah, yellow leaves. The &#34;check engine light&#34; of cannabis growing. Universally alarming, completely nonspecific. Seven different things cause yellowing, and the forum advice for all of them is &#34;probably CalMag.&#34; The pattern of yellowing is what actually matters.&#xA;&#xA;| Yellow Pattern | Condition | How to Tell |&#xA;|---------------|-----------|-------------|&#xA;| Uniform yellowing, bottom leaves, veins included | Nitrogen deficiency | The whole leaf goes pale - veins too. Oldest leaves die first while new growth stays green. The classic. |&#xA;| Yellow between veins, bottom leaves, veins stay green | Magnesium deficiency | The leaf looks striped - green veins on yellow background. Often appears mid-to-late flower. This is the one where CalMag actually might be the answer. |&#xA;| Yellow between veins, top/new leaves, veins stay green | Iron deficiency | Identical pattern to magnesium, but on new growth instead of old. Easy to confuse the two if you&#39;re not paying attention to which leaves are affected. |&#xA;| Yellow leaf edges progressing inward | Potassium deficiency | Starts as yellow margins, turns brown and crispy. Sometimes mistaken for nute burn but the pattern is too consistent and progressive. |&#xA;| Yellow spots with brown centers | Calcium deficiency | Irregular brown/bronze splotches on newer growth in veg, but can appear on lower fan leaves during flower. Leaves may also twist or distort. |&#xA;| Uniform pale yellow, all over | pH lockout | Every nutrient is present in the soil. The plant just can&#39;t access any of it because pH is off. Fix pH first, wait 5 days, then reassess. |&#xA;| Yellow and drooping | Overwatering | The leaves feel heavy and waterlogged, not crispy and dry. The soil is still wet. You watered it because you were worried about it and now it&#39;s worse. We&#39;ve all been there. |&#xA;&#xA;Bottom-up yellowing with veins turning yellow? That&#39;s nitrogen deficiency - the single most common issue for cannabis growers. See our complete nitrogen deficiency guide.&#xA;&#xA;Yellow leaves but genuinely can&#39;t tell which deficiency? You&#39;re not alone - even experienced growers get these confused. PlantLab&#39;s AI was specifically trained to distinguish between 7 nutrient deficiencies that look nearly identical to the human eye. It&#39;s more reliable than asking strangers on Reddit, and faster than waiting three days for the wrong treatment to not work.&#xA;&#xA;Brown Spots and Edges&#xA;&#xA;| Brown Pattern | Condition | How to Tell |&#xA;|--------------|-----------|-------------|&#xA;| Brown crispy edges, leaf margins | Potassium deficiency | Edges burn inward from the margins. Bottom leaves first. Often shows up in flower when K demand spikes. |&#xA;| Brown/bronze spots expanding over time | Calcium deficiency | Newer growth in veg, lower fan leaves in flower. Spots are irregular with browning edges, not perfectly round. |&#xA;| Brown spots with target-like pattern | Leaf septoria | Dark center ringed by lighter brown and a yellow halo - a bullseye pattern. Shape is roughly circular to irregular. Lower canopy in humid conditions. |&#xA;| Brown/gray mush inside buds | Bud rot (Botrytis) | The one that keeps growers up at night. Internal mold that starts inside your densest colas. By the time you see it on the outside, the inside is already gone. |&#xA;| Brown/rust colored bumps | Rust fungus | Raised bumps on leaf undersides, like tiny blisters. Often overlooked until it&#39;s widespread. |&#xA;&#xA;Curling Leaves&#xA;&#xA;| Curl Direction | Condition | How to Tell |&#xA;|---------------|-----------|-------------|&#xA;| Curling UP (taco-ing) | Heat stress, light stress | The plant is folding its leaves to reduce the surface area exposed to your too-close light. Top canopy affected most. |&#xA;| Curling DOWN (the claw) | Nitrogen toxicity | Dark green, glossy, tips hooking downward. The plant equivalent of drinking too much coffee. You overfed it. |&#xA;| Edges curling up | Potassium deficiency, heat | If the edges are also brown and crispy, it&#39;s K. If just curling, it&#39;s heat. |&#xA;| New growth twisted/distorted | Calcium deficiency | New leaves come in looking wrong - twisted, cupped, malformed. Not just curling, actually misshapen. |&#xA;&#xA;White or Discolored Patches&#xA;&#xA;| Appearance | Condition | How to Tell |&#xA;|-----------|-----------|-------------|&#xA;| White powdery coating | Powdery mildew | On fan leaves: wipes off with your finger, leaving clean green underneath. On sugar leaves near buds where trichomes are dense, the wipe test is unreliable - use a 10x loupe instead. PM looks flat and dusty; trichomes are three-dimensional with visible stalks and mushroom-shaped caps. |&#xA;&#xA;Powdery mildew on cannabis leaf - white fungal coating at early and advanced stages&#xA;| White webbing between leaves | Spider mites | Fine webs between branches. Flip a leaf over - if you see tiny moving dots, you have a serious problem. |&#xA;| Bleached/white tips | Light burn | Primarily on the top canopy, closest leaves to your light. Move the light up. |&#xA;| Purple/red stems and undersides | Phosphorus deficiency, cold, or genetics | Three common causes: (1) genetics - many strains naturally run purple stems, (2) cold temperatures below 60F/15C trigger anthocyanin production independently of nutrition, (3) actual P deficiency, which also causes dark leaves, slow growth, and stiff/brittle foliage. If purple stems are the only symptom, it&#39;s almost certainly not phosphorus. |&#xA;&#xA;---&#xA;&#xA;Step 3: Check for Pests&#xA;&#xA;Pests leave evidence. Nutrient deficiencies create patterns. Knowing the difference matters - treating the wrong cause wastes time and can make things worse.&#xA;&#xA;A jeweler&#39;s loupe is the single best diagnostic tool you can own. A 10x loupe ($8) catches most pests; a 60x pocket microscope ($15) is needed for broad mites and russet mites, which are invisible at lower magnification.&#xA;&#xA;| Pest | What You See | Where to Look |&#xA;|------|-------------|---------------|&#xA;| Spider mites | Fine webbing, tiny dots on leaves, stippling damage | Leaf undersides, near veins. By the time you see webs, the colony is already massive. Catch the stippling phase and you save the grow; wait for webs and you&#39;re already losing. |&#xA;&#xA;Spider mite damage on cannabis leaf - stippling dots and webbing between leaf fingers&#xA;| Thrips | Silver/bronze streaks, tiny elongated insects | Upper leaf surfaces, inside new growth. The streaks are where they&#39;ve been feeding. |&#xA;| Aphids | Clusters of small bugs, sticky residue (honeydew) | Stems, new growth tips. They reproduce fast - a few today, hundreds next week. |&#xA;| Broad mites / Russet mites | Twisted, distorted new growth; glossy or plastic-looking leaves; stunted tops | Invisible to the naked eye (need 60x+ magnification). Often misdiagnosed as heat stress, pH problems, or calcium deficiency. One of the most devastating cannabis pests because they&#39;re identified too late. |&#xA;| Fungus gnats | Small flies near soil surface | Topsoil, especially in chronically overwatered pots. Adults are harmless; larvae feed on root hairs and create entry points for pathogens like Fusarium and Pythium. Dangerous for seedlings, less so for established plants unless the infestation is heavy. |&#xA;| Whiteflies | Cloud of tiny white insects when plant is disturbed | Leaf undersides. Shake the plant gently - if a cloud of tiny white things takes off, you know. |&#xA;| Caterpillars | Frass on/near buds, unexplained cola browning, holes in leaves | Inside buds, under leaves, along stems. Outdoor grows especially. The real threat is budworms boring into dense colas - the frass they leave behind promotes bud rot, which is often worse than the direct feeding damage. |&#xA;&#xA;The key distinction: Pest damage is random and localized - wherever the pest fed. Nutrient deficiencies are systematic - they follow predictable patterns based on nutrient mobility. If the damage pattern doesn&#39;t make sense for any deficiency, get the loupe out.&#xA;&#xA;---&#xA;&#xA;Step 4: Rule Out the Usual Suspects First&#xA;&#xA;Before you diagnose a deficiency and start adjusting nutrients, check the three things that cause most of the problems most of the time. Boring advice, but it would prevent about 60% of the &#34;what&#39;s wrong with my plant&#34; posts on every growing forum.&#xA;&#xA;pH (The Actual Answer to Most Problems)&#xA;&#xA;Here&#39;s the uncomfortable truth: the majority of &#34;deficiency&#34; symptoms in cannabis are actually pH lockout. Every nutrient is sitting right there in the soil. The plant just can&#39;t absorb any of it because the pH is wrong.&#xA;&#xA;| Medium | Ideal pH Range |&#xA;|--------|---------------|&#xA;| Soil | 6.0 - 7.0 |&#xA;| Coco coir | 5.5 - 6.5 |&#xA;| Hydro/DWC | 5.5 - 6.0 |&#xA;&#xA;Check your pH before you diagnose anything. If it&#39;s off, fix it, wait 3-5 days, then see if the symptoms are still progressing. This is less exciting than diagnosing a rare micronutrient deficiency, but it&#39;s correct far more often. &#34;pH your water bro&#34; is the one piece of forum advice that&#39;s right almost every time.&#xA;&#xA;Watering (The Other Usual Suspect)&#xA;&#xA;| Symptom | Overwatering | Underwatering |&#xA;|---------|-------------|---------------|&#xA;| Leaves | Drooping, heavy, plump | Drooping, dry, thin |&#xA;| Soil | Wet, slow to dry | Dry, pulling from pot edges |&#xA;| Recovery time | Slow (2-3 days) | Fast (hours after watering) |&#xA;| Pot weight | Heavy | Light |&#xA;&#xA;The &#34;lift the pot&#34; test is free and takes one second. If the pot is heavy, stop watering. If it&#39;s light, water it. More sophisticated than most diagnostic protocols, honestly.&#xA;&#xA;Overwatered vs underwatered cannabis leaves - plump dark drooping versus thin papery wilting&#xA;&#xA;New growers overwater because they&#39;re paying too much attention. The plant doesn&#39;t need water every day. If the soil is still moist 2 inches down, walk away. Watering your plant because you&#39;re anxious about it is the gardening equivalent of refreshing your email.&#xA;&#xA;Light and Heat&#xA;&#xA;Light burn: Bleached/white leaf tips closest to light. Your light is too close. Move it up.&#xA;Heat stress: Leaves taco upward, fox-tailing in flower. If your hand is uncomfortable at canopy height for 30 seconds, the plant is uncomfortable all day.&#xA;Light deficiency: Stretching, thin stems, pale color. The plant is reaching for something that isn&#39;t there.&#xA;&#xA;---&#xA;&#xA;The Cannabis Deficiency Quick-Reference Chart&#xA;&#xA;For when you&#39;ve checked pH, watering, and environment and the problem is still getting worse:&#xA;&#xA;| Nutrient | Mobile? | Where It Shows | Primary Symptom | Secondary Symptom |&#xA;|----------|---------|---------------|-----------------|-------------------|&#xA;| Nitrogen (N) | Yes | Old/bottom | Uniform yellowing | Leaves cup upward, fall off |&#xA;| Phosphorus (P) | Yes | Old/bottom | Dark leaves, slow growth | Purple stems (also genetics/cold) |&#xA;| Potassium (K) | Yes | Old/bottom | Brown crispy edges | Yellow margins |&#xA;| Calcium (Ca) | No | New/top (veg), lower leaves (flower) | Brown/bronze spots | Distorted new growth |&#xA;| Magnesium (Mg) | Yes | Old/bottom | Interveinal yellowing | Green veins on yellow leaf |&#xA;| Iron (Fe) | No | New/top | Interveinal yellowing | Same as Mg but on new leaves |&#xA;| Nitrogen tox. | - | All | Dark green, &#34;the claw&#34; | Tips hook down, glossy |&#xA;&#xA;The mobile/immobile rule is worth memorizing. It&#39;s the difference between diagnosing in 10 seconds and spending a week on GrowWeedEasy trying to match photos.&#xA;&#xA;---&#xA;&#xA;When Eyeballing It Isn&#39;t Enough&#xA;&#xA;Visual diagnosis works when symptoms are textbook. In reality, symptoms are rarely textbook. They&#39;re a blurry phone photo of a leaf under a purple blurple light, and three different conditions look identical at that resolution.&#xA;&#xA;It breaks down especially when:&#xA;&#xA;Multiple problems overlap - spider mites AND potassium deficiency at the same time. Treat one, miss the other, wonder why the plant isn&#39;t recovering.&#xA;Early symptoms are subtle - the difference between &#34;early nitrogen deficiency&#34; and &#34;normal bottom leaf aging&#34; is obvious in a textbook photo and invisible in your tent at 6 AM.&#xA;Similar conditions need distinguishing - potassium vs magnesium deficiency requires comparing leaf position, vein color, edge pattern, and progression simultaneously. This is where &#34;add CalMag and see what happens&#34; comes from - it&#39;s not laziness, it&#39;s that telling the two apart with your eyes is genuinely hard.&#xA;&#xA;PlantLab&#39;s AI was trained specifically on these ambiguities. It analyzes 31 cannabis conditions and can distinguish between 7 nutrient deficiencies that experienced growers regularly confuse. Not because it&#39;s smarter than a grower with 20 years of experience - but because it&#39;s been trained on 200,000+ images and doesn&#39;t get fooled by blurple lighting. The model is also improved continuously from real grower photos, not trained once and left alone.&#xA;&#xA;Try it free at plantlab.ai - 3 diagnoses per day, no credit card.&#xA;&#xA;---&#xA;&#xA;FAQ&#xA;&#xA;What is the most common cannabis plant problem?&#xA;Nitrogen deficiency, by a wide margin. It&#39;s the most common real deficiency, and pH lockout causing symptoms that look like nitrogen deficiency is even more common. If you can only learn to identify one thing, learn what nitrogen deficiency looks like. Then learn to check your pH so you can rule out the fake version.&#xA;&#xA;Why are my weed plant&#39;s leaves turning yellow?&#xA;It depends. (Sorry. But it really does.) Start with where: bottom leaves = nitrogen, magnesium, or potassium. Top leaves = iron or calcium. Everywhere at once = pH lockout or root problems. The answer to &#34;why are my leaves yellow&#34; is always another question: &#34;which leaves, and what does the yellowing pattern look like?&#34; The table in Step 2 above will narrow it down.&#xA;&#xA;How do I tell if my cannabis plant is overwatered or underwatered?&#xA;Both cause drooping, which is unhelpful. The difference is in the leaves: overwatered leaves feel heavy, plump, and the soil is still wet. Underwatered leaves are papery thin and the plant perks up within hours of getting water. The pot-lift test works: heavy pot = too wet, light pot = too dry. Overwatering is far more common than underwatering, because new growers hover.&#xA;&#xA;Can a cannabis plant have multiple problems at once?&#xA;Frequently. Stressed plants attract pests, incorrect pH causes cascading lockouts across multiple nutrients, and a spider mite colony feasting on a plant that&#39;s already potassium-deficient produces a confusing mess of symptoms. Prioritize the most severe issue first. Fix that, stabilize, then address the next one. Trying to treat everything simultaneously usually means treating nothing effectively.&#xA;&#xA;Should I remove yellow or damaged leaves?&#xA;If a leaf is mostly brown and crispy, remove it - it&#39;s done photosynthesizing and it&#39;s just attracting pests. If it&#39;s partially yellow, leave it alone. It&#39;s still working. The plant will drop it when it&#39;s done with it. Never remove more than 20% of foliage at once, or you&#39;ll trade a nutrient deficiency for light stress from suddenly exposed lower growth.&#xA;&#xA;What does it mean when my marijuana plant leaves curl up?&#xA;Usually heat or light stress. The plant is doing what you&#39;d do if someone held a heat lamp over your head - curling up to reduce its exposure. Move the light higher, improve airflow, or reduce intensity. If the curling comes with brown crispy edges, that&#39;s potassium deficiency instead. If the leaves are dark green and curling down (the claw), that&#39;s nitrogen toxicity - you overfed it.&#xA;&#xA;How do I know if it&#39;s a nutrient deficiency or a pest problem?&#xA;Deficiencies are systematic: they affect leaves in predictable order (old-to-new or new-to-old), create consistent patterns (interveinal, marginal, uniform), and progress gradually. Pest damage is chaotic: random holes, stippling in patches, silvery streaks where something was feeding, and actual visible bugs if you flip leaves over and look. When in doubt, get a 10x loupe and inspect the undersides. If nothing is moving and nothing is webbed, it&#39;s probably not pests.&#xA;&#xA;---&#xA;&#xA;Detailed guides:&#xA;Nitrogen Deficiency: Complete Visual Guide&#xA;Calcium vs Magnesium Deficiency: A Visual Comparison&#xA;7 Nutrient Deficiencies: How PlantLab Tells Them Apart&#xA;Nutrient Antagonism: When Adding More Makes It Worse&#xA;Spider Mites: Early Detection Before the Damage&#xA;Powdery Mildew: Visual Detection and Prevention&#xA;Bud Rot and Root Rot: Detection Before It&#39;s Too Late&#xA;How AI Diagnoses 31 Cannabis Conditions in 18ms&#xA;The Work Nobody Sees: 47 Experiments to Make PlantLab Better&#xA;Why I Built PlantLab&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://i.snap.as/v1Cc5nIE.png" alt="Cannabis plant showing multiple deficiency symptoms - yellow bottom leaves, brown edges, and spotted new growth"/></p>

<h2 id="start-here" id="start-here">Start Here</h2>

<p>Something looks wrong. Maybe the bottom leaves are yellowing. Maybe the tips are curling. Maybe you walked into your tent and something just looked <em>off</em> in a way you can&#39;t articulate but your gut knows isn&#39;t right.</p>

<p>So you did what every grower does: you took a photo, posted it online, and got twelve different answers. Someone said CalMag. Someone said flush. Someone said “two more weeks.” None of them agreed on what the actual problem is.</p>

<p>This guide won&#39;t do that. It walks through a systematic process: look at where the damage is, what it looks like, and narrow it down to a specific cause. No guessing, no bro science, no “could be anything, hard to tell from the photo.”</p>



<h2 id="step-1-where-are-the-symptoms" id="step-1-where-are-the-symptoms">Step 1: Where Are the Symptoms?</h2>

<p>Look at <em>where</em> the damage is happening. Location tells you more than color does.</p>

<table>
<thead>
<tr>
<th>Symptom Location</th>
<th>Most Likely Causes</th>
</tr>
</thead>

<tbody>
<tr>
<td><strong>Bottom/older leaves first</strong></td>
<td>Nitrogen deficiency, magnesium deficiency, potassium deficiency</td>
</tr>

<tr>
<td><strong>Top/new growth first</strong></td>
<td>Iron deficiency, calcium deficiency, light burn, heat stress</td>
</tr>

<tr>
<td><strong>Entire plant</strong></td>
<td>Overwatering, underwatering, pH lockout, root problems</td>
</tr>

<tr>
<td><strong>Leaf surfaces (spots/patches)</strong></td>
<td>Pests (spider mites, thrips), diseases (septoria, powdery mildew)</td>
</tr>

<tr>
<td><strong>Buds/flowers</strong></td>
<td>Bud rot, caterpillars, light burn</td>
</tr>

<tr>
<td><strong>Stems/branches</strong></td>
<td>Phosphorus deficiency, fusarium, root rot</td>
</tr>
</tbody>
</table>

<p>Here&#39;s the rule that eliminates half the guesswork: <strong>mobile nutrients</strong> (nitrogen, magnesium, potassium, phosphorus) move from old leaves to new ones. When they run low, old growth sacrifices itself first. <strong>Immobile nutrients</strong> (iron, calcium) stay put – so deficiency shows up on new growth first.</p>

<p>Bottom-up damage? Mobile nutrient problem. Top-down damage? Immobile nutrient or environmental. That single distinction saves you from chasing the wrong diagnosis for a week.</p>

<p><img src="https://i.snap.as/nNfgv3QY.png" alt="Mobile vs immobile nutrient deficiency in cannabis - bottom-up yellowing versus top-down symptoms diagnostic comparison"/></p>

<hr/>

<h2 id="step-2-what-do-the-leaves-look-like" id="step-2-what-do-the-leaves-look-like">Step 2: What Do the Leaves Look Like?</h2>

<h3 id="yellow-leaves" id="yellow-leaves">Yellow Leaves</h3>

<p>Ah, yellow leaves. The “check engine light” of cannabis growing. Universally alarming, completely nonspecific. Seven different things cause yellowing, and the forum advice for all of them is “probably CalMag.” The <em>pattern</em> of yellowing is what actually matters.</p>

<table>
<thead>
<tr>
<th>Yellow Pattern</th>
<th>Condition</th>
<th>How to Tell</th>
</tr>
</thead>

<tbody>
<tr>
<td>Uniform yellowing, bottom leaves, veins included</td>
<td><a href="https://blog.plantlab.ai/nitrogen-deficiency-in-cannabis-a-visual-guide">Nitrogen deficiency</a></td>
<td>The whole leaf goes pale – veins too. Oldest leaves die first while new growth stays green. The classic.</td>
</tr>

<tr>
<td>Yellow between veins, bottom leaves, veins stay green</td>
<td><a href="https://blog.plantlab.ai/calcium-vs-magnesium-deficiency-cannabis">Magnesium deficiency</a></td>
<td>The leaf looks striped – green veins on yellow background. Often appears mid-to-late flower. This is the one where CalMag actually might be the answer.</td>
</tr>

<tr>
<td>Yellow between veins, top/new leaves, veins stay green</td>
<td>Iron deficiency</td>
<td>Identical pattern to magnesium, but on new growth instead of old. Easy to confuse the two if you&#39;re not paying attention to which leaves are affected.</td>
</tr>

<tr>
<td>Yellow leaf edges progressing inward</td>
<td>Potassium deficiency</td>
<td>Starts as yellow margins, turns brown and crispy. Sometimes mistaken for nute burn but the pattern is too consistent and progressive.</td>
</tr>

<tr>
<td>Yellow spots with brown centers</td>
<td><a href="https://blog.plantlab.ai/calcium-vs-magnesium-deficiency-cannabis">Calcium deficiency</a></td>
<td>Irregular brown/bronze splotches on newer growth in veg, but can appear on lower fan leaves during flower. Leaves may also twist or distort.</td>
</tr>

<tr>
<td>Uniform pale yellow, all over</td>
<td>pH lockout</td>
<td>Every nutrient is present in the soil. The plant just can&#39;t access any of it because pH is off. Fix pH first, wait 5 days, then reassess.</td>
</tr>

<tr>
<td>Yellow and drooping</td>
<td>Overwatering</td>
<td>The leaves feel heavy and waterlogged, not crispy and dry. The soil is still wet. You watered it because you were worried about it and now it&#39;s worse. We&#39;ve all been there.</td>
</tr>
</tbody>
</table>

<p><strong>Bottom-up yellowing with veins turning yellow?</strong> That&#39;s nitrogen deficiency – the single most common issue for cannabis growers. See our <a href="https://blog.plantlab.ai/nitrogen-deficiency-in-cannabis-a-visual-guide">complete nitrogen deficiency guide</a>.</p>

<p><strong>Yellow leaves but genuinely can&#39;t tell which deficiency?</strong> You&#39;re not alone – even experienced growers get these confused. PlantLab&#39;s AI was <a href="https://blog.plantlab.ai/yellow-leaves-seven-suspects-how-plantlab-got-specific-about-nutrient">specifically trained to distinguish between 7 nutrient deficiencies</a> that look nearly identical to the human eye. It&#39;s more reliable than asking strangers on Reddit, and faster than waiting three days for the wrong treatment to not work.</p>

<h3 id="brown-spots-and-edges" id="brown-spots-and-edges">Brown Spots and Edges</h3>

<table>
<thead>
<tr>
<th>Brown Pattern</th>
<th>Condition</th>
<th>How to Tell</th>
</tr>
</thead>

<tbody>
<tr>
<td>Brown crispy edges, leaf margins</td>
<td>Potassium deficiency</td>
<td>Edges burn inward from the margins. Bottom leaves first. Often shows up in flower when K demand spikes.</td>
</tr>

<tr>
<td>Brown/bronze spots expanding over time</td>
<td>Calcium deficiency</td>
<td>Newer growth in veg, lower fan leaves in flower. Spots are irregular with browning edges, not perfectly round.</td>
</tr>

<tr>
<td>Brown spots with target-like pattern</td>
<td>Leaf septoria</td>
<td>Dark center ringed by lighter brown and a yellow halo – a bullseye pattern. Shape is roughly circular to irregular. Lower canopy in humid conditions.</td>
</tr>

<tr>
<td>Brown/gray mush inside buds</td>
<td><a href="https://blog.plantlab.ai/bud-rot-root-rot-cannabis">Bud rot (Botrytis)</a></td>
<td>The one that keeps growers up at night. Internal mold that starts inside your densest colas. By the time you see it on the outside, the inside is already gone.</td>
</tr>

<tr>
<td>Brown/rust colored bumps</td>
<td>Rust fungus</td>
<td>Raised bumps on leaf undersides, like tiny blisters. Often overlooked until it&#39;s widespread.</td>
</tr>
</tbody>
</table>

<h3 id="curling-leaves" id="curling-leaves">Curling Leaves</h3>

<table>
<thead>
<tr>
<th>Curl Direction</th>
<th>Condition</th>
<th>How to Tell</th>
</tr>
</thead>

<tbody>
<tr>
<td>Curling UP (taco-ing)</td>
<td>Heat stress, light stress</td>
<td>The plant is folding its leaves to reduce the surface area exposed to your too-close light. Top canopy affected most.</td>
</tr>

<tr>
<td>Curling DOWN (the claw)</td>
<td>Nitrogen toxicity</td>
<td>Dark green, glossy, tips hooking downward. The plant equivalent of drinking too much coffee. You overfed it.</td>
</tr>

<tr>
<td>Edges curling up</td>
<td>Potassium deficiency, heat</td>
<td>If the edges are also brown and crispy, it&#39;s K. If just curling, it&#39;s heat.</td>
</tr>

<tr>
<td>New growth twisted/distorted</td>
<td>Calcium deficiency</td>
<td>New leaves come in looking wrong – twisted, cupped, malformed. Not just curling, actually misshapen.</td>
</tr>
</tbody>
</table>

<h3 id="white-or-discolored-patches" id="white-or-discolored-patches">White or Discolored Patches</h3>

<table>
<thead>
<tr>
<th>Appearance</th>
<th>Condition</th>
<th>How to Tell</th>
</tr>
</thead>

<tbody>
<tr>
<td>White powdery coating</td>
<td><a href="https://blog.plantlab.ai/powdery-mildew-cannabis">Powdery mildew</a></td>
<td>On fan leaves: wipes off with your finger, leaving clean green underneath. On sugar leaves near buds where trichomes are dense, the wipe test is unreliable – use a 10x loupe instead. PM looks flat and dusty; trichomes are three-dimensional with visible stalks and mushroom-shaped caps.</td>
</tr>
</tbody>
</table>

<p><img src="https://i.snap.as/x3IkmoUo.png" alt="Powdery mildew on cannabis leaf - white fungal coating at early and advanced stages"/>
| White webbing between leaves | Spider mites | Fine webs between branches. Flip a leaf over – if you see tiny moving dots, you have a serious problem. |
| Bleached/white tips | Light burn | Primarily on the top canopy, closest leaves to your light. Move the light up. |
| Purple/red stems and undersides | Phosphorus deficiency, cold, or genetics | Three common causes: (1) genetics – many strains naturally run purple stems, (2) cold temperatures below 60F/15C trigger anthocyanin production independently of nutrition, (3) actual P deficiency, which also causes dark leaves, slow growth, and stiff/brittle foliage. If purple stems are the only symptom, it&#39;s almost certainly not phosphorus. |</p>

<hr/>

<h2 id="step-3-check-for-pests" id="step-3-check-for-pests">Step 3: Check for Pests</h2>

<p>Pests leave evidence. Nutrient deficiencies create patterns. Knowing the difference matters – treating the wrong cause wastes time and can make things worse.</p>

<p>A jeweler&#39;s loupe is the single best diagnostic tool you can own. A 10x loupe ($8) catches most pests; a 60x pocket microscope ($15) is needed for broad mites and russet mites, which are invisible at lower magnification.</p>

<table>
<thead>
<tr>
<th>Pest</th>
<th>What You See</th>
<th>Where to Look</th>
</tr>
</thead>

<tbody>
<tr>
<td><strong><a href="https://blog.plantlab.ai/spider-mites-cannabis">Spider mites</a></strong></td>
<td>Fine webbing, tiny dots on leaves, stippling damage</td>
<td>Leaf undersides, near veins. By the time you see webs, the colony is already massive. Catch the stippling phase and you save the grow; wait for webs and you&#39;re already losing.</td>
</tr>
</tbody>
</table>

<p><img src="https://i.snap.as/jjXCHuT8.png" alt="Spider mite damage on cannabis leaf - stippling dots and webbing between leaf fingers"/>
| <strong>Thrips</strong> | Silver/bronze streaks, tiny elongated insects | Upper leaf surfaces, inside new growth. The streaks are where they&#39;ve been feeding. |
| <strong>Aphids</strong> | Clusters of small bugs, sticky residue (honeydew) | Stems, new growth tips. They reproduce fast – a few today, hundreds next week. |
| <strong>Broad mites / Russet mites</strong> | Twisted, distorted new growth; glossy or plastic-looking leaves; stunted tops | Invisible to the naked eye (need 60x+ magnification). Often misdiagnosed as heat stress, pH problems, or calcium deficiency. One of the most devastating cannabis pests because they&#39;re identified too late. |
| <strong>Fungus gnats</strong> | Small flies near soil surface | Topsoil, especially in chronically overwatered pots. Adults are harmless; larvae feed on root hairs and create entry points for pathogens like Fusarium and Pythium. Dangerous for seedlings, less so for established plants unless the infestation is heavy. |
| <strong>Whiteflies</strong> | Cloud of tiny white insects when plant is disturbed | Leaf undersides. Shake the plant gently – if a cloud of tiny white things takes off, you know. |
| <strong>Caterpillars</strong> | Frass on/near buds, unexplained cola browning, holes in leaves | Inside buds, under leaves, along stems. Outdoor grows especially. The real threat is budworms boring into dense colas – the frass they leave behind promotes bud rot, which is often worse than the direct feeding damage. |</p>

<p><strong>The key distinction:</strong> Pest damage is random and localized – wherever the pest fed. Nutrient deficiencies are systematic – they follow predictable patterns based on nutrient mobility. If the damage pattern doesn&#39;t make sense for any deficiency, get the loupe out.</p>

<hr/>

<h2 id="step-4-rule-out-the-usual-suspects-first" id="step-4-rule-out-the-usual-suspects-first">Step 4: Rule Out the Usual Suspects First</h2>

<p>Before you diagnose a deficiency and start adjusting nutrients, check the three things that cause most of the problems most of the time. Boring advice, but it would prevent about 60% of the “what&#39;s wrong with my plant” posts on every growing forum.</p>

<h3 id="ph-the-actual-answer-to-most-problems" id="ph-the-actual-answer-to-most-problems">pH (The Actual Answer to Most Problems)</h3>

<p>Here&#39;s the uncomfortable truth: the majority of “deficiency” symptoms in cannabis are actually pH lockout. Every nutrient is sitting right there in the soil. The plant just can&#39;t absorb any of it because the pH is wrong.</p>

<table>
<thead>
<tr>
<th>Medium</th>
<th>Ideal pH Range</th>
</tr>
</thead>

<tbody>
<tr>
<td>Soil</td>
<td>6.0 – 7.0</td>
</tr>

<tr>
<td>Coco coir</td>
<td>5.5 – 6.5</td>
</tr>

<tr>
<td>Hydro/DWC</td>
<td>5.5 – 6.0</td>
</tr>
</tbody>
</table>

<p><strong>Check your pH before you diagnose anything.</strong> If it&#39;s off, fix it, wait 3-5 days, then see if the symptoms are still progressing. This is less exciting than diagnosing a rare micronutrient deficiency, but it&#39;s correct far more often. “pH your water bro” is the one piece of forum advice that&#39;s right almost every time.</p>

<h3 id="watering-the-other-usual-suspect" id="watering-the-other-usual-suspect">Watering (The Other Usual Suspect)</h3>

<table>
<thead>
<tr>
<th>Symptom</th>
<th>Overwatering</th>
<th>Underwatering</th>
</tr>
</thead>

<tbody>
<tr>
<td>Leaves</td>
<td>Drooping, heavy, plump</td>
<td>Drooping, dry, thin</td>
</tr>

<tr>
<td>Soil</td>
<td>Wet, slow to dry</td>
<td>Dry, pulling from pot edges</td>
</tr>

<tr>
<td>Recovery time</td>
<td>Slow (2-3 days)</td>
<td>Fast (hours after watering)</td>
</tr>

<tr>
<td>Pot weight</td>
<td>Heavy</td>
<td>Light</td>
</tr>
</tbody>
</table>

<p>The “lift the pot” test is free and takes one second. If the pot is heavy, stop watering. If it&#39;s light, water it. More sophisticated than most diagnostic protocols, honestly.</p>

<p><img src="https://i.snap.as/H03mfor6.png" alt="Overwatered vs underwatered cannabis leaves - plump dark drooping versus thin papery wilting"/></p>

<p>New growers overwater because they&#39;re paying too much attention. The plant doesn&#39;t need water every day. If the soil is still moist 2 inches down, walk away. Watering your plant because you&#39;re anxious about it is the gardening equivalent of refreshing your email.</p>

<h3 id="light-and-heat" id="light-and-heat">Light and Heat</h3>
<ul><li><strong>Light burn</strong>: Bleached/white leaf tips closest to light. Your light is too close. Move it up.</li>
<li><strong>Heat stress</strong>: Leaves taco upward, fox-tailing in flower. If your hand is uncomfortable at canopy height for 30 seconds, the plant is uncomfortable all day.</li>
<li><strong>Light deficiency</strong>: Stretching, thin stems, pale color. The plant is reaching for something that isn&#39;t there.</li></ul>

<hr/>

<h2 id="the-cannabis-deficiency-quick-reference-chart" id="the-cannabis-deficiency-quick-reference-chart">The Cannabis Deficiency Quick-Reference Chart</h2>

<p>For when you&#39;ve checked pH, watering, and environment and the problem is still getting worse:</p>

<table>
<thead>
<tr>
<th>Nutrient</th>
<th>Mobile?</th>
<th>Where It Shows</th>
<th>Primary Symptom</th>
<th>Secondary Symptom</th>
</tr>
</thead>

<tbody>
<tr>
<td>Nitrogen (N)</td>
<td>Yes</td>
<td>Old/bottom</td>
<td>Uniform yellowing</td>
<td>Leaves cup upward, fall off</td>
</tr>

<tr>
<td>Phosphorus (P)</td>
<td>Yes</td>
<td>Old/bottom</td>
<td>Dark leaves, slow growth</td>
<td>Purple stems (also genetics/cold)</td>
</tr>

<tr>
<td>Potassium (K)</td>
<td>Yes</td>
<td>Old/bottom</td>
<td>Brown crispy edges</td>
<td>Yellow margins</td>
</tr>

<tr>
<td>Calcium (Ca)</td>
<td>No</td>
<td>New/top (veg), lower leaves (flower)</td>
<td>Brown/bronze spots</td>
<td>Distorted new growth</td>
</tr>

<tr>
<td>Magnesium (Mg)</td>
<td>Yes</td>
<td>Old/bottom</td>
<td>Interveinal yellowing</td>
<td>Green veins on yellow leaf</td>
</tr>

<tr>
<td>Iron (Fe)</td>
<td>No</td>
<td>New/top</td>
<td>Interveinal yellowing</td>
<td>Same as Mg but on new leaves</td>
</tr>

<tr>
<td>Nitrogen tox.</td>
<td>-</td>
<td>All</td>
<td>Dark green, “the claw”</td>
<td>Tips hook down, glossy</td>
</tr>
</tbody>
</table>

<p>The mobile/immobile rule is worth memorizing. It&#39;s the difference between diagnosing in 10 seconds and spending a week on GrowWeedEasy trying to match photos.</p>

<hr/>

<h2 id="when-eyeballing-it-isn-t-enough" id="when-eyeballing-it-isn-t-enough">When Eyeballing It Isn&#39;t Enough</h2>

<p>Visual diagnosis works when symptoms are textbook. In reality, symptoms are rarely textbook. They&#39;re a blurry phone photo of a leaf under a purple blurple light, and three different conditions look identical at that resolution.</p>

<p>It breaks down especially when:</p>
<ul><li><strong>Multiple problems overlap</strong> – spider mites AND potassium deficiency at the same time. Treat one, miss the other, wonder why the plant isn&#39;t recovering.</li>
<li><strong>Early symptoms are subtle</strong> – the difference between “early nitrogen deficiency” and “normal bottom leaf aging” is obvious in a textbook photo and invisible in your tent at 6 AM.</li>
<li><strong>Similar conditions need distinguishing</strong> – potassium vs magnesium deficiency requires comparing leaf position, vein color, edge pattern, and progression simultaneously. This is where “add CalMag and see what happens” comes from – it&#39;s not laziness, it&#39;s that telling the two apart with your eyes is genuinely hard.</li></ul>

<p>PlantLab&#39;s AI was trained specifically on these ambiguities. It <a href="https://blog.plantlab.ai/how-plantlabs-ai-diagnoses-31-cannabis-plant-problems-in-18-milliseconds">analyzes 31 cannabis conditions</a> and can <a href="https://blog.plantlab.ai/yellow-leaves-seven-suspects-how-plantlab-got-specific-about-nutrient">distinguish between 7 nutrient deficiencies</a> that experienced growers regularly confuse. Not because it&#39;s smarter than a grower with 20 years of experience – but because it&#39;s been trained on 200,000+ images and doesn&#39;t get fooled by blurple lighting. The model is also <a href="https://blog.plantlab.ai/behind-the-model-continuous-improvement">improved continuously from real grower photos</a>, not trained once and left alone.</p>

<p>Try it free at <a href="https://plantlab.ai">plantlab.ai</a> – 3 diagnoses per day, no credit card.</p>

<hr/>

<h2 id="faq" id="faq">FAQ</h2>

<p><strong>What is the most common cannabis plant problem?</strong>
Nitrogen deficiency, by a wide margin. It&#39;s the most common real deficiency, and pH lockout causing symptoms that look like nitrogen deficiency is even more common. If you can only learn to identify one thing, learn what nitrogen deficiency looks like. Then learn to check your pH so you can rule out the fake version.</p>

<p><strong>Why are my weed plant&#39;s leaves turning yellow?</strong>
It depends. (Sorry. But it really does.) Start with where: bottom leaves = nitrogen, magnesium, or potassium. Top leaves = iron or calcium. Everywhere at once = pH lockout or root problems. The answer to “why are my leaves yellow” is always another question: “which leaves, and what does the yellowing pattern look like?” The table in Step 2 above will narrow it down.</p>

<p><strong>How do I tell if my cannabis plant is overwatered or underwatered?</strong>
Both cause drooping, which is unhelpful. The difference is in the leaves: overwatered leaves feel heavy, plump, and the soil is still wet. Underwatered leaves are papery thin and the plant perks up within hours of getting water. The pot-lift test works: heavy pot = too wet, light pot = too dry. Overwatering is far more common than underwatering, because new growers hover.</p>

<p><strong>Can a cannabis plant have multiple problems at once?</strong>
Frequently. Stressed plants attract pests, incorrect pH causes cascading lockouts across multiple nutrients, and a spider mite colony feasting on a plant that&#39;s already potassium-deficient produces a confusing mess of symptoms. Prioritize the most severe issue first. Fix that, stabilize, then address the next one. Trying to treat everything simultaneously usually means treating nothing effectively.</p>

<p><strong>Should I remove yellow or damaged leaves?</strong>
If a leaf is mostly brown and crispy, remove it – it&#39;s done photosynthesizing and it&#39;s just attracting pests. If it&#39;s partially yellow, leave it alone. It&#39;s still working. The plant will drop it when it&#39;s done with it. Never remove more than 20% of foliage at once, or you&#39;ll trade a nutrient deficiency for light stress from suddenly exposed lower growth.</p>

<p><strong>What does it mean when my marijuana plant leaves curl up?</strong>
Usually heat or light stress. The plant is doing what you&#39;d do if someone held a heat lamp over your head – curling up to reduce its exposure. Move the light higher, improve airflow, or reduce intensity. If the curling comes with brown crispy edges, that&#39;s potassium deficiency instead. If the leaves are dark green and curling <em>down</em> (the claw), that&#39;s nitrogen toxicity – you overfed it.</p>

<p><strong>How do I know if it&#39;s a nutrient deficiency or a pest problem?</strong>
Deficiencies are systematic: they affect leaves in predictable order (old-to-new or new-to-old), create consistent patterns (interveinal, marginal, uniform), and progress gradually. Pest damage is chaotic: random holes, stippling in patches, silvery streaks where something was feeding, and actual visible bugs if you flip leaves over and look. When in doubt, get a 10x loupe and inspect the undersides. If nothing is moving and nothing is webbed, it&#39;s probably not pests.</p>

<hr/>

<p><em>Detailed guides:</em>
– <a href="https://blog.plantlab.ai/nitrogen-deficiency-in-cannabis-a-visual-guide">Nitrogen Deficiency: Complete Visual Guide</a>
– <a href="https://blog.plantlab.ai/calcium-vs-magnesium-deficiency-cannabis">Calcium vs Magnesium Deficiency: A Visual Comparison</a>
– <a href="https://blog.plantlab.ai/yellow-leaves-seven-suspects-how-plantlab-got-specific-about-nutrient">7 Nutrient Deficiencies: How PlantLab Tells Them Apart</a>
– <a href="https://blog.plantlab.ai/nutrient-antagonism-cannabis">Nutrient Antagonism: When Adding More Makes It Worse</a>
– <a href="https://blog.plantlab.ai/spider-mites-cannabis">Spider Mites: Early Detection Before the Damage</a>
– <a href="https://blog.plantlab.ai/powdery-mildew-cannabis">Powdery Mildew: Visual Detection and Prevention</a>
– <a href="https://blog.plantlab.ai/bud-rot-root-rot-cannabis">Bud Rot and Root Rot: Detection Before It&#39;s Too Late</a>
– <a href="https://blog.plantlab.ai/how-plantlabs-ai-diagnoses-31-cannabis-plant-problems-in-18-milliseconds">How AI Diagnoses 31 Cannabis Conditions in 18ms</a>
– <a href="https://blog.plantlab.ai/behind-the-model-continuous-improvement">The Work Nobody Sees: 47 Experiments to Make PlantLab Better</a>
– <a href="https://blog.plantlab.ai/why-i-built-plantlab">Why I Built PlantLab</a></p>
]]></content:encoded>
      <guid>https://blog.plantlab.ai/whats-wrong-with-my-cannabis-plant</guid>
      <pubDate>Thu, 23 Apr 2026 13:35:51 +0000</pubDate>
    </item>
    <item>
      <title>Spider Mites on Cannabis: Early Detection Before the Damage</title>
      <link>https://blog.plantlab.ai/spider-mites-cannabis?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Spider mites on cannabis - by the time you see webbing, you&#39;re already losing&#xA;&#xA;You adjusted your cal-mag for two weeks. The yellowing got worse. Then you saw the webbing.&#xA;&#xA;That&#39;s how most growers discover spider mites - not when the problem starts, but when it&#39;s already out of control. The early damage looks so much like a nutrient deficiency that your first instinct is to adjust the feed. Meanwhile, a single female mite is producing thousands of descendants in a month.&#xA;&#xA;!--more--&#xA;&#xA;Spider mites are the most destructive pest in indoor cannabis cultivation. Not because they&#39;re hard to kill - they aren&#39;t, when caught early - but because their early symptoms mimic nutrient problems so convincingly that growers lose their detection window treating the wrong thing entirely.&#xA;&#xA;This guide covers visual identification at every stage, how to tell mite damage from a deficiency, and what actually works for treatment.&#xA;&#xA;---&#xA;&#xA;Quick Identification&#xA;&#xA;Spider mites on cannabis produce tiny yellow or white speckles (stippling) on upper leaf surfaces where mites feed from below. Unlike nutrient deficiencies - which cause broad, uniform color changes across leaves - stippling appears as distinct pinprick dots scattered irregularly across the leaf. The damage is caused by Tetranychus urticae (two-spotted spider mite), an arachnid that punctures individual plant cells and drains their contents. By the time webbing is visible, the colony has been feeding for weeks.&#xA;&#xA;Quick checklist:&#xA;Tiny yellow/white pinprick dots on upper leaf surface&#xA;Dots are irregular and scattered, not following veins&#xA;Leaf undersides show tiny moving specks (mites are 0.3-0.5mm)&#xA;Fine webbing between leaf tips or at branch junctions (advanced)&#xA;Damage starts on lower/inner canopy where airflow is poorest&#xA;Leaves eventually bronze, curl, and drop&#xA;&#xA;---&#xA;&#xA;Why Spider Mites Are So Hard to Catch&#xA;&#xA;They look like a nutrient deficiency&#xA;&#xA;The single most common spider mite mistake has nothing to do with treatment. It happens at identification.&#xA;&#xA;Early stippling - those tiny yellow dots where mites have punctured cells - looks like the beginning of a calcium deficiency or light stress. The dots are small, scattered, and appear on older growth first. A grower sees yellowing dots on lower leaves and reaches for the cal-mag bottle. Two weeks of feed adjustments later, the dots have spread, the plant looks worse, and then the webbing appears.&#xA;&#xA;This is not a knowledge failure. It&#39;s a pattern recognition problem. The visual difference between early mite stippling and early nutrient deficiency is subtle enough that experienced growers miss it regularly.&#xA;&#xA;Spider mites vs nutrient deficiency comparison chart&#xA;&#xA;| Feature | Spider Mite Stippling | Calcium Deficiency | Magnesium Deficiency |&#xA;|---------|----------------------|-------------------|---------------------|&#xA;| Pattern | Irregular pinprick dots | Irregular brown spots | Interveinal yellowing |&#xA;| Distribution | Scattered randomly across leaf | Concentrated on newer growth | Starts on older leaves |&#xA;| Symmetry | Asymmetric, random | Roughly symmetric | Symmetric between veins |&#xA;| Leaf underside | Tiny mites or eggs visible | Clean | Clean |&#xA;| Texture | Leaf feels slightly rough/gritty | Spots may feel crispy | Leaf stays smooth |&#xA;| Progression | Dots multiply, never merge into bands | Spots expand and merge | Yellowing expands between veins |&#xA;| Touch test | Gritty feel from mite debris | Normal | Normal |&#xA;&#xA;The diagnostic key: flip the leaf over. Nutrient deficiencies don&#39;t leave anything on the underside. Spider mites leave everything there - adults, eggs, shed skins, webbing. A 10x loupe makes this definitive, but even a phone camera zoomed in on the leaf underside will show the difference.&#xA;&#xA;They breed fast enough to outrun your diagnosis&#xA;&#xA;Spider mites reproduce faster than almost any pest a cannabis grower will encounter.&#xA;&#xA;Generation time: 7 days at 30°C (86°F). Egg to egg-laying adult in one week.&#xA;Reproductive rate: A single female lays up to 100 eggs. Her daughters start laying within a week.&#xA;Population math: One mite becomes thousands in a month at optimal temperatures. Two months of unchecked growth reaches millions.&#xA;&#xA;This is exponential growth in the literal sense. The population you can&#39;t see on Monday is visible by Friday and webbing by the following Monday. The detection window - the gap between &#34;early enough to treat easily&#34; and &#34;too late for simple solutions&#34; - is approximately 5-7 days.&#xA;&#xA;Every day of misdiagnosis as a nutrient issue is a day lost in that window.&#xA;&#xA;---&#xA;&#xA;Visual Symptoms by Stage&#xA;&#xA;Spider mite infestation timeline - 4 stages from invisible to severe&#xA;&#xA;Days 1-7: Invisible Phase&#xA;&#xA;Mites have arrived but the colony is small. Fewer than 10 adults on the plant. No visible damage to the naked eye.&#xA;&#xA;What to look for: Nothing you can see without magnification. Preventive inspection with a 10x loupe on leaf undersides is the only detection method during this phase - or an AI that can catch the earliest stippling pattern in a leaf photo before your eye does.&#xA;&#xA;Days 7-14: Early Stippling&#xA;&#xA;What you see:&#xA;Scattered yellow-white dots on upper leaf surfaces&#xA;Dots are pinprick-sized, irregular spacing&#xA;Lower and inner canopy leaves affected first&#xA;Leaves may appear slightly dull or dusty&#xA;&#xA;This is the critical detection window. The damage is visible but the population is still manageable. Treat now and you win. Wait, and you&#39;re chasing exponential growth.&#xA;&#xA;What growers confuse it with: Calcium deficiency, magnesium deficiency, early light stress, pH fluctuation damage. The distinguishing test: check the leaf underside with a loupe or zoomed phone camera.&#xA;&#xA;Days 14-21: Moderate Infestation&#xA;&#xA;What you see:&#xA;Stippling thickens into visible patches of yellow/bronze discoloration&#xA;Fine webbing appears at leaf tips and where leaves meet stems&#xA;Leaf edges may curl upward&#xA;Multiple plants now show symptoms (airborne spread via &#34;ballooning&#34; on silk threads)&#xA;&#xA;Webbing marks the transition from &#34;problem&#34; to &#34;crisis.&#34; The silk isn&#39;t just housing - it protects colonies from predators and spray treatments. Once webs are established, contact sprays have to penetrate the silk to reach the mites.&#xA;&#xA;Days 21+: Severe Infestation&#xA;&#xA;What you see:&#xA;Dense webbing covering bud sites, connecting leaves&#xA;Leaves are bronzed, curled, and dropping&#xA;Mites visible as tiny moving dots on webbing&#xA;Plant growth has visibly slowed or stopped&#xA;Webbing on flowers makes bud unusable&#xA;&#xA;At this stage, the plant is losing more photosynthetic capacity than it can replace. During flower, this level of infestation is often a total crop loss for affected plants. The mites are feeding on sugar leaves and bract tissue, leaving webbing embedded in the flower structure. Even if you kill every mite, the webbing and fecal matter remain.&#xA;&#xA;---&#xA;&#xA;Where to Look: Detection Hotspots&#xA;&#xA;Spider mites prefer warm, dry, still air - the conditions that exist in the center and lower canopy of most indoor grows.&#xA;&#xA;Check first:&#xA;Undersides of lower and inner canopy leaves&#xA;Where two leaves overlap (creates still-air microclimate)&#xA;Near intake vents (common entry point)&#xA;Any plant closest to heat sources&#xA;&#xA;Check second:&#xA;Leaf undersides on middle canopy&#xA;Branch junctions where stems create sheltered pockets&#xA;Nearby houseplants, clones, or recently introduced plant material&#xA;&#xA;High-risk conditions:&#xA;Temperature above 27°C (80°F) and rising&#xA;Humidity below 40% RH&#xA;Stagnant air in lower canopy&#xA;New clones or plants introduced without quarantine&#xA;Adjacent rooms or gardens with ornamental plants&#xA;&#xA;One fact most growers don&#39;t realize: spider mites travel on clothing, pets, and skin. If you&#39;ve been in a garden with mites and walk into your grow room, you may be the vector. This is why quarantine protocols matter even for indoor-only grows.&#xA;&#xA;---&#xA;&#xA;They&#39;re arachnids, not insects&#xA;&#xA;This matters more than you&#39;d think. Spider mites aren&#39;t insects. They&#39;re arachnids - closer to ticks and spiders than to aphids or thrips. A lot of insecticides just don&#39;t work on them, and growers figure this out the expensive way: they buy whatever pest spray the grow shop recommends, apply it twice a week for a month, and the mites keep spreading.&#xA;&#xA;If a product label says &#34;insecticide&#34; but doesn&#39;t specifically list mites or arachnids, it probably won&#39;t work. You need a miticide (specifically targets mites) or a broad-spectrum acaricide (targets arachnids generally). Some biologicals and organic options work by physical mechanisms - suffocation, desiccation - that don&#39;t depend on the pest&#39;s taxonomy. These are often the safest first-line choice.&#xA;&#xA;---&#xA;&#xA;Treatment Strategies&#xA;&#xA;They evolve faster than you can spray&#xA;&#xA;Spider mites develop pesticide resistance at a rate that makes most agricultural pests look slow. With a 7-day generation cycle, resistance emerges in weeks, not seasons. Some strains of T. urticae are resistant to dozens of active ingredients simultaneously.&#xA;&#xA;Worse: some pesticides cause &#34;mite flaring&#34; - the surviving mites respond to the chemical stress by increasing their reproductive rate by up to 30%. The intuitive response of &#34;spray harder, spray more&#34; can accelerate the infestation rather than control it.&#xA;&#xA;Single-product treatment strategies fail. Always rotate between different modes of action.&#xA;&#xA;During Vegetative Growth&#xA;&#xA;Immediate response (first 48 hours):&#xA;Isolate affected plants if possible&#xA;Remove and dispose of heavily infested leaves (bag them, don&#39;t compost)&#xA;Spray leaf undersides thoroughly with a contact miticide or biological&#xA;&#xA;Biological controls:&#xA;Phytoseiulus persimilis - predatory mite that feeds exclusively on spider mites. Effective in vegetative growth and early flower. Needs humidity above 60% to thrive.&#xA;Neoseiulus californicus - predatory mite that tolerates lower humidity and also eats thrips. Better for dry grow rooms.&#xA;Amblyseius andersoni - generalist predatory mite, survives without prey by eating pollen. Good for preventive releases.&#xA;&#xA;Organic sprays (moderate infestations):&#xA;Neem oil (azadirachtin) - disrupts feeding and reproduction. Apply to leaf undersides only. Do not use in flower - affects taste and may not fully degrade.&#xA;Insecticidal soap (potassium salts of fatty acids) - kills on contact by desiccation. Must directly contact the mite. Repeat every 3-5 days for 3 applications to catch new hatchlings.&#xA;Spinosad - organic-approved, effective on thrips but weak against mites on its own. Can supplement a rotation but shouldn&#39;t be a primary miticide.&#xA;&#xA;Spray rotation protocol:&#xA;Week 1: Product A (e.g., insecticidal soap)&#xA;Week 2: Product B (e.g., neem oil)&#xA;Week 3: Product A again (or a different miticide)&#xA;Never use the same active ingredient twice in a row&#xA;&#xA;During flower&#xA;&#xA;This is where most growers panic, and for good reason. During flower, almost everything that kills mites also ruins buds.&#xA;&#xA;Safe in flower:&#xA;Predatory mites (biological control - no residue, no taste impact)&#xA;Water rinse with slightly elevated pressure (dislodges mites physically, must reach undersides)&#xA;Cold snap trick: drop temperature to 15°C (60°F) for 3 days if possible. Mite reproduction nearly stops below 18°C (65°F). This buys time for predatory mites to work.&#xA;&#xA;Avoid in flower:&#xA;Neem oil (taste contamination, doesn&#39;t fully degrade on flower tissue)&#xA;Pyrethrin sprays (residue on buds)&#xA;Sulfur (burns trichomes, affects terpenes)&#xA;Any systemic product (absorbed into plant tissue including flower)&#xA;&#xA;If webbing is on buds: The honest answer is that those buds are compromised. Webbing contains fecal matter and shed mite skins that don&#39;t wash off. You can salvage the plant by removing affected flowers and protecting remaining buds with predatory mites, but heavily webbed buds should be discarded.&#xA;&#xA;---&#xA;&#xA;Prevention&#xA;&#xA;A few euros spent preventing mites saves hundreds in lost crop. Prevention beats treatment every time, especially with a pest that breeds this fast.&#xA;&#xA;Environmental controls:&#xA;Keep humidity above 50% RH during veg (mites thrive in dry conditions)&#xA;Ensure airflow reaches the lower canopy (oscillating fans, open plant structure)&#xA;Run temperatures below 27°C (80°F) when possible&#xA;HEPA filter on intake if growing in an area with outdoor mite pressure&#xA;&#xA;Good habits:&#xA;Quarantine new plants for 7-14 days before introducing to your grow&#xA;Change clothes before entering grow room if you&#39;ve been in other gardens&#xA;Inspect leaf undersides weekly with a 10x loupe - make it routine, not reactive&#xA;Remove dead leaves and debris from the grow space (harboring sites)&#xA;Avoid overly dense canopy - defoliate lower growth that gets no light and creates still-air pockets&#xA;&#xA;Preemptive predators:&#xA;Release Amblyseius andersoni or N. californicus at transplant. These predatory mites establish a background population that intercepts spider mites before colonies form. Cost: roughly €20-30 per release for a small grow, every 4-6 weeks.&#xA;&#xA;---&#xA;&#xA;How AI detection changes the timeline&#xA;&#xA;The spider mite problem is a timing issue. The window between &#34;just arrived&#34; and &#34;exponential growth&#34; is about 5-7 days. Most growers catch mites after stippling is already obvious - right at the edge of that window, or past it.&#xA;&#xA;The main reason growers miss that window isn&#39;t inattention. Early stippling - those first scattered yellow dots where mites have punctured cells - looks almost identical to the start of a calcium or magnesium deficiency. Same distribution, same size, same location on older growth. A grower sees the dots, checks pH, adjusts the feed, and waits a week for results. By the time the nutrient hypothesis is ruled out and a loupe comes out, mites have had 7-10 days of uncontested growth. At one generation per week, that adds up.&#xA;&#xA;PlantLab&#39;s model covers 31 cannabis conditions including spider mite damage. It catches the stippling pattern at the 10-dot stage, from a routine photo. Not a replacement for the loupe - nothing is - but it flags the pattern before you&#39;ve mentally filed it as &#34;probably cal-mag&#34; and moved on.&#xA;&#xA;Catching mites at day 7 instead of day 14 is the difference between wiping down some leaves and losing a crop.&#xA;&#xA;Free at plantlab.ai - 3 checks a day.&#xA;&#xA;---&#xA;&#xA;FAQ&#xA;&#xA;How do I tell spider mite damage from a nutrient deficiency?&#xA;Flip the leaf. Spider mite damage shows as scattered pinprick dots on top with mites, eggs, or webbing underneath. Nutrient deficiencies cause broader color changes with clean leaf undersides. A 10x loupe on the underside is the definitive test.&#xA;&#xA;Can I see spider mites without a magnifying glass?&#xA;Adults are barely visible to the naked eye (0.3-0.5mm) as tiny moving specks on leaf undersides. Eggs and juveniles are too small to see without magnification. By the time mites are easily visible, the colony is large. Use a loupe or phone camera zoom for early detection.&#xA;&#xA;How fast do spider mites spread between plants?&#xA;In optimal conditions (above 27°C / 80°F, below 40% RH), mites can move from one plant to adjacent plants within 24-48 hours. They also &#34;balloon&#34; on silk threads carried by air currents, reaching plants across a room. A single infested plant can become a room-wide problem in 5-10 days.&#xA;&#xA;Will neem oil get rid of spider mites?&#xA;Neem works as part of a rotation, not as a standalone. It disrupts feeding and reproduction but doesn&#39;t kill on contact, and mites build resistance to it quickly. Rotate with insecticidal soap and other modes of action. And never use it during flower - it doesn&#39;t come off.&#xA;&#xA;What kills spider mites instantly?&#xA;Insecticidal soap and pyrethrin kill on contact, but only what they touch. You&#39;ll miss eggs. Plan for 3 rounds over 2 weeks to catch hatching cycles.&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://i.snap.as/ToRuIwhg.png" alt="Spider mites on cannabis - by the time you see webbing, you&#39;re already losing"/></p>

<p>You adjusted your cal-mag for two weeks. The yellowing got worse. Then you saw the webbing.</p>

<p>That&#39;s how most growers discover spider mites – not when the problem starts, but when it&#39;s already out of control. The early damage looks so much like a nutrient deficiency that your first instinct is to adjust the feed. Meanwhile, a single female mite is producing thousands of descendants in a month.</p>



<p>Spider mites are the most destructive pest in indoor cannabis cultivation. Not because they&#39;re hard to kill – they aren&#39;t, when caught early – but because their early symptoms mimic nutrient problems so convincingly that growers lose their detection window treating the wrong thing entirely.</p>

<p>This guide covers visual identification at every stage, how to tell mite damage from a deficiency, and what actually works for treatment.</p>

<hr/>

<h2 id="quick-identification" id="quick-identification">Quick Identification</h2>

<p>Spider mites on cannabis produce tiny yellow or white speckles (stippling) on upper leaf surfaces where mites feed from below. Unlike nutrient deficiencies – which cause broad, uniform color changes across leaves – stippling appears as distinct pinprick dots scattered irregularly across the leaf. The damage is caused by <em>Tetranychus urticae</em> (two-spotted spider mite), an arachnid that punctures individual plant cells and drains their contents. By the time webbing is visible, the colony has been feeding for weeks.</p>

<p><strong>Quick checklist:</strong>
– Tiny yellow/white pinprick dots on upper leaf surface
– Dots are irregular and scattered, not following veins
– Leaf undersides show tiny moving specks (mites are 0.3-0.5mm)
– Fine webbing between leaf tips or at branch junctions (advanced)
– Damage starts on lower/inner canopy where airflow is poorest
– Leaves eventually bronze, curl, and drop</p>

<hr/>

<h2 id="why-spider-mites-are-so-hard-to-catch" id="why-spider-mites-are-so-hard-to-catch">Why Spider Mites Are So Hard to Catch</h2>

<h3 id="they-look-like-a-nutrient-deficiency" id="they-look-like-a-nutrient-deficiency">They look like a nutrient deficiency</h3>

<p>The single most common spider mite mistake has nothing to do with treatment. It happens at identification.</p>

<p>Early stippling – those tiny yellow dots where mites have punctured cells – looks like the beginning of a calcium deficiency or light stress. The dots are small, scattered, and appear on older growth first. A grower sees yellowing dots on lower leaves and reaches for the cal-mag bottle. Two weeks of feed adjustments later, the dots have spread, the plant looks worse, and then the webbing appears.</p>

<p>This is not a knowledge failure. It&#39;s a pattern recognition problem. The visual difference between early mite stippling and early nutrient deficiency is subtle enough that experienced growers miss it regularly.</p>

<p><img src="https://i.snap.as/pUOFI0Ky.png" alt="Spider mites vs nutrient deficiency comparison chart"/></p>

<table>
<thead>
<tr>
<th>Feature</th>
<th>Spider Mite Stippling</th>
<th>Calcium Deficiency</th>
<th>Magnesium Deficiency</th>
</tr>
</thead>

<tbody>
<tr>
<td>Pattern</td>
<td>Irregular pinprick dots</td>
<td>Irregular brown spots</td>
<td>Interveinal yellowing</td>
</tr>

<tr>
<td>Distribution</td>
<td>Scattered randomly across leaf</td>
<td>Concentrated on newer growth</td>
<td>Starts on older leaves</td>
</tr>

<tr>
<td>Symmetry</td>
<td>Asymmetric, random</td>
<td>Roughly symmetric</td>
<td>Symmetric between veins</td>
</tr>

<tr>
<td>Leaf underside</td>
<td>Tiny mites or eggs visible</td>
<td>Clean</td>
<td>Clean</td>
</tr>

<tr>
<td>Texture</td>
<td>Leaf feels slightly rough/gritty</td>
<td>Spots may feel crispy</td>
<td>Leaf stays smooth</td>
</tr>

<tr>
<td>Progression</td>
<td>Dots multiply, never merge into bands</td>
<td>Spots expand and merge</td>
<td>Yellowing expands between veins</td>
</tr>

<tr>
<td>Touch test</td>
<td>Gritty feel from mite debris</td>
<td>Normal</td>
<td>Normal</td>
</tr>
</tbody>
</table>

<p>The diagnostic key: <strong>flip the leaf over.</strong> Nutrient deficiencies don&#39;t leave anything on the underside. Spider mites leave everything there – adults, eggs, shed skins, webbing. A 10x loupe makes this definitive, but even a phone camera zoomed in on the leaf underside will show the difference.</p>

<h3 id="they-breed-fast-enough-to-outrun-your-diagnosis" id="they-breed-fast-enough-to-outrun-your-diagnosis">They breed fast enough to outrun your diagnosis</h3>

<p>Spider mites reproduce faster than almost any pest a cannabis grower will encounter.</p>
<ul><li><strong>Generation time:</strong> 7 days at 30°C (86°F). Egg to egg-laying adult in one week.</li>
<li><strong>Reproductive rate:</strong> A single female lays up to 100 eggs. Her daughters start laying within a week.</li>
<li><strong>Population math:</strong> One mite becomes thousands in a month at optimal temperatures. Two months of unchecked growth reaches millions.</li></ul>

<p>This is exponential growth in the literal sense. The population you can&#39;t see on Monday is visible by Friday and webbing by the following Monday. The detection window – the gap between “early enough to treat easily” and “too late for simple solutions” – is approximately 5-7 days.</p>

<p>Every day of misdiagnosis as a nutrient issue is a day lost in that window.</p>

<hr/>

<h2 id="visual-symptoms-by-stage" id="visual-symptoms-by-stage">Visual Symptoms by Stage</h2>

<p><img src="https://i.snap.as/fATTw5yv.png" alt="Spider mite infestation timeline - 4 stages from invisible to severe"/></p>

<h3 id="days-1-7-invisible-phase" id="days-1-7-invisible-phase">Days 1-7: Invisible Phase</h3>

<p>Mites have arrived but the colony is small. Fewer than 10 adults on the plant. No visible damage to the naked eye.</p>

<p><strong>What to look for:</strong> Nothing you can see without magnification. Preventive inspection with a 10x loupe on leaf undersides is the only detection method during this phase – or an AI that can catch the earliest stippling pattern in a leaf photo before your eye does.</p>

<h3 id="days-7-14-early-stippling" id="days-7-14-early-stippling">Days 7-14: Early Stippling</h3>

<p><strong>What you see:</strong>
– Scattered yellow-white dots on upper leaf surfaces
– Dots are pinprick-sized, irregular spacing
– Lower and inner canopy leaves affected first
– Leaves may appear slightly dull or dusty</p>

<p>This is the critical detection window. The damage is visible but the population is still manageable. Treat now and you win. Wait, and you&#39;re chasing exponential growth.</p>

<p><strong>What growers confuse it with:</strong> Calcium deficiency, magnesium deficiency, early light stress, pH fluctuation damage. The distinguishing test: check the leaf underside with a loupe or zoomed phone camera.</p>

<h3 id="days-14-21-moderate-infestation" id="days-14-21-moderate-infestation">Days 14-21: Moderate Infestation</h3>

<p><strong>What you see:</strong>
– Stippling thickens into visible patches of yellow/bronze discoloration
– Fine webbing appears at leaf tips and where leaves meet stems
– Leaf edges may curl upward
– Multiple plants now show symptoms (airborne spread via “ballooning” on silk threads)</p>

<p>Webbing marks the transition from “problem” to “crisis.” The silk isn&#39;t just housing – it protects colonies from predators and spray treatments. Once webs are established, contact sprays have to penetrate the silk to reach the mites.</p>

<h3 id="days-21-severe-infestation" id="days-21-severe-infestation">Days 21+: Severe Infestation</h3>

<p><strong>What you see:</strong>
– Dense webbing covering bud sites, connecting leaves
– Leaves are bronzed, curled, and dropping
– Mites visible as tiny moving dots on webbing
– Plant growth has visibly slowed or stopped
– Webbing on flowers makes bud unusable</p>

<p>At this stage, the plant is losing more photosynthetic capacity than it can replace. During flower, this level of infestation is often a total crop loss for affected plants. The mites are feeding on sugar leaves and bract tissue, leaving webbing embedded in the flower structure. Even if you kill every mite, the webbing and fecal matter remain.</p>

<hr/>

<h2 id="where-to-look-detection-hotspots" id="where-to-look-detection-hotspots">Where to Look: Detection Hotspots</h2>

<p>Spider mites prefer warm, dry, still air – the conditions that exist in the center and lower canopy of most indoor grows.</p>

<p><strong>Check first:</strong>
– Undersides of lower and inner canopy leaves
– Where two leaves overlap (creates still-air microclimate)
– Near intake vents (common entry point)
– Any plant closest to heat sources</p>

<p><strong>Check second:</strong>
– Leaf undersides on middle canopy
– Branch junctions where stems create sheltered pockets
– Nearby houseplants, clones, or recently introduced plant material</p>

<p><strong>High-risk conditions:</strong>
– Temperature above 27°C (80°F) and rising
– Humidity below 40% RH
– Stagnant air in lower canopy
– New clones or plants introduced without quarantine
– Adjacent rooms or gardens with ornamental plants</p>

<p>One fact most growers don&#39;t realize: spider mites travel on clothing, pets, and skin. If you&#39;ve been in a garden with mites and walk into your grow room, you may be the vector. This is why quarantine protocols matter even for indoor-only grows.</p>

<hr/>

<h2 id="they-re-arachnids-not-insects" id="they-re-arachnids-not-insects">They&#39;re arachnids, not insects</h2>

<p>This matters more than you&#39;d think. Spider mites aren&#39;t insects. They&#39;re arachnids – closer to ticks and spiders than to aphids or thrips. A lot of insecticides just don&#39;t work on them, and growers figure this out the expensive way: they buy whatever pest spray the grow shop recommends, apply it twice a week for a month, and the mites keep spreading.</p>

<p>If a product label says “insecticide” but doesn&#39;t specifically list mites or arachnids, it probably won&#39;t work. You need a miticide (specifically targets mites) or a broad-spectrum acaricide (targets arachnids generally). Some biologicals and organic options work by physical mechanisms – suffocation, desiccation – that don&#39;t depend on the pest&#39;s taxonomy. These are often the safest first-line choice.</p>

<hr/>

<h2 id="treatment-strategies" id="treatment-strategies">Treatment Strategies</h2>

<h3 id="they-evolve-faster-than-you-can-spray" id="they-evolve-faster-than-you-can-spray">They evolve faster than you can spray</h3>

<p>Spider mites develop pesticide resistance at a rate that makes most agricultural pests look slow. With a 7-day generation cycle, resistance emerges in weeks, not seasons. Some strains of <em>T. urticae</em> are resistant to dozens of active ingredients simultaneously.</p>

<p>Worse: some pesticides cause “mite flaring” – the surviving mites respond to the chemical stress by increasing their reproductive rate by up to 30%. The intuitive response of “spray harder, spray more” can accelerate the infestation rather than control it.</p>

<p>Single-product treatment strategies fail. Always rotate between different modes of action.</p>

<h3 id="during-vegetative-growth" id="during-vegetative-growth">During Vegetative Growth</h3>

<p><strong>Immediate response (first 48 hours):</strong>
1. Isolate affected plants if possible
2. Remove and dispose of heavily infested leaves (bag them, don&#39;t compost)
3. Spray leaf undersides thoroughly with a contact miticide or biological</p>

<p><strong>Biological controls:</strong>
– <em>Phytoseiulus persimilis</em> – predatory mite that feeds exclusively on spider mites. Effective in vegetative growth and early flower. Needs humidity above 60% to thrive.
– <em>Neoseiulus californicus</em> – predatory mite that tolerates lower humidity and also eats thrips. Better for dry grow rooms.
– <em>Amblyseius andersoni</em> – generalist predatory mite, survives without prey by eating pollen. Good for preventive releases.</p>

<p><strong>Organic sprays (moderate infestations):</strong>
– Neem oil (azadirachtin) – disrupts feeding and reproduction. Apply to leaf undersides only. Do not use in flower – affects taste and may not fully degrade.
– Insecticidal soap (potassium salts of fatty acids) – kills on contact by desiccation. Must directly contact the mite. Repeat every 3-5 days for 3 applications to catch new hatchlings.
– Spinosad – organic-approved, effective on thrips but weak against mites on its own. Can supplement a rotation but shouldn&#39;t be a primary miticide.</p>

<p><strong>Spray rotation protocol:</strong>
– Week 1: Product A (e.g., insecticidal soap)
– Week 2: Product B (e.g., neem oil)
– Week 3: Product A again (or a different miticide)
– Never use the same active ingredient twice in a row</p>

<h3 id="during-flower" id="during-flower">During flower</h3>

<p>This is where most growers panic, and for good reason. During flower, almost everything that kills mites also ruins buds.</p>

<p><strong>Safe in flower:</strong>
– Predatory mites (biological control – no residue, no taste impact)
– Water rinse with slightly elevated pressure (dislodges mites physically, must reach undersides)
– Cold snap trick: drop temperature to 15°C (60°F) for 3 days if possible. Mite reproduction nearly stops below 18°C (65°F). This buys time for predatory mites to work.</p>

<p><strong>Avoid in flower:</strong>
– Neem oil (taste contamination, doesn&#39;t fully degrade on flower tissue)
– Pyrethrin sprays (residue on buds)
– Sulfur (burns trichomes, affects terpenes)
– Any systemic product (absorbed into plant tissue including flower)</p>

<p><strong>If webbing is on buds:</strong> The honest answer is that those buds are compromised. Webbing contains fecal matter and shed mite skins that don&#39;t wash off. You can salvage the plant by removing affected flowers and protecting remaining buds with predatory mites, but heavily webbed buds should be discarded.</p>

<hr/>

<h2 id="prevention" id="prevention">Prevention</h2>

<p>A few euros spent preventing mites saves hundreds in lost crop. Prevention beats treatment every time, especially with a pest that breeds this fast.</p>

<p><strong>Environmental controls:</strong>
– Keep humidity above 50% RH during veg (mites thrive in dry conditions)
– Ensure airflow reaches the lower canopy (oscillating fans, open plant structure)
– Run temperatures below 27°C (80°F) when possible
– HEPA filter on intake if growing in an area with outdoor mite pressure</p>

<p><strong>Good habits:</strong>
– Quarantine new plants for 7-14 days before introducing to your grow
– Change clothes before entering grow room if you&#39;ve been in other gardens
– Inspect leaf undersides weekly with a 10x loupe – make it routine, not reactive
– Remove dead leaves and debris from the grow space (harboring sites)
– Avoid overly dense canopy – defoliate lower growth that gets no light and creates still-air pockets</p>

<p><strong>Preemptive predators:</strong>
– Release <em>Amblyseius andersoni</em> or <em>N. californicus</em> at transplant. These predatory mites establish a background population that intercepts spider mites before colonies form. Cost: roughly €20-30 per release for a small grow, every 4-6 weeks.</p>

<hr/>

<h2 id="how-ai-detection-changes-the-timeline" id="how-ai-detection-changes-the-timeline">How AI detection changes the timeline</h2>

<p>The spider mite problem is a timing issue. The window between “just arrived” and “exponential growth” is about 5-7 days. Most growers catch mites after stippling is already obvious – right at the edge of that window, or past it.</p>

<p>The main reason growers miss that window isn&#39;t inattention. Early stippling – those first scattered yellow dots where mites have punctured cells – looks almost identical to the start of a calcium or magnesium deficiency. Same distribution, same size, same location on older growth. A grower sees the dots, checks pH, adjusts the feed, and waits a week for results. By the time the nutrient hypothesis is ruled out and a loupe comes out, mites have had 7-10 days of uncontested growth. At one generation per week, that adds up.</p>

<p>PlantLab&#39;s model covers 31 cannabis conditions including spider mite damage. It catches the stippling pattern at the 10-dot stage, from a routine photo. Not a replacement for the loupe – nothing is – but it flags the pattern before you&#39;ve mentally filed it as “probably cal-mag” and moved on.</p>

<p>Catching mites at day 7 instead of day 14 is the difference between wiping down some leaves and losing a crop.</p>

<p>Free at <a href="https://plantlab.ai">plantlab.ai</a> – 3 checks a day.</p>

<hr/>

<h2 id="faq" id="faq">FAQ</h2>

<p><strong>How do I tell spider mite damage from a nutrient deficiency?</strong>
Flip the leaf. Spider mite damage shows as scattered pinprick dots on top with mites, eggs, or webbing underneath. Nutrient deficiencies cause broader color changes with clean leaf undersides. A 10x loupe on the underside is the definitive test.</p>

<p><strong>Can I see spider mites without a magnifying glass?</strong>
Adults are barely visible to the naked eye (0.3-0.5mm) as tiny moving specks on leaf undersides. Eggs and juveniles are too small to see without magnification. By the time mites are easily visible, the colony is large. Use a loupe or phone camera zoom for early detection.</p>

<p><strong>How fast do spider mites spread between plants?</strong>
In optimal conditions (above 27°C / 80°F, below 40% RH), mites can move from one plant to adjacent plants within 24-48 hours. They also “balloon” on silk threads carried by air currents, reaching plants across a room. A single infested plant can become a room-wide problem in 5-10 days.</p>

<p><strong>Will neem oil get rid of spider mites?</strong>
Neem works as part of a rotation, not as a standalone. It disrupts feeding and reproduction but doesn&#39;t kill on contact, and mites build resistance to it quickly. Rotate with insecticidal soap and other modes of action. And never use it during flower – it doesn&#39;t come off.</p>

<p><strong>What kills spider mites instantly?</strong>
Insecticidal soap and pyrethrin kill on contact, but only what they touch. You&#39;ll miss eggs. Plan for 3 rounds over 2 weeks to catch hatching cycles.</p>
]]></content:encoded>
      <guid>https://blog.plantlab.ai/spider-mites-cannabis</guid>
      <pubDate>Fri, 17 Apr 2026 11:42:00 +0000</pubDate>
    </item>
    <item>
      <title>Bud Rot and Root Rot in Cannabis: Detection Before It&#39;s Too Late</title>
      <link>https://blog.plantlab.ai/bud-rot-root-rot-cannabis?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Bud rot and root rot in cannabis - two diseases that spread faster than growers react&#xA;&#xA;You won&#39;t smell it at first. By the time you do - that damp, musty sweetness coming off a cola that looked fine yesterday - you&#39;ve already lost that bud and probably the ones touching it. You cut it open, and the inside is grey mush. A week from harvest.&#xA;&#xA;Bud rot. It colonizes from the inside out, hiding in the densest parts of your canopy where airflow is worst and humidity is highest. By the time the exterior shows damage, the interior has been decomposing for days.&#xA;&#xA;!--more--&#xA;&#xA;Root rot is the same story, underground. A plant that was drinking normally starts drooping despite a wet medium. You check the roots and they&#39;re brown, slimy, and smell like a swamp. The pathogen has been destroying the root system for a week before the canopy showed a single symptom.&#xA;&#xA;What they share: the window between &#34;detectable&#34; and &#34;devastating&#34; is days, not weeks. Nutrient deficiencies give you time. Pest infestations give you time. Rot doesn&#39;t. It doubles and doubles, and by the time most growers catch it, the only option left is damage control.&#xA;&#xA;---&#xA;&#xA;Quick Identification&#xA;&#xA;Bud rot is caused by Botrytis cinerea, a fungus that colonizes dense flower clusters from the inside out. The first thing you&#39;ll notice: a sugar leaf or two within a cola turning yellow or brown while everything around it stays healthy. That isolated patch of dead tissue - not matching any nutrient pattern - is your warning. Pull the bud apart and you&#39;ll find grey or brown tissue, soft and wet, with grey-white fuzz (mycelium) growing through it.&#xA;&#xA;Root rot comes from several pathogens - water molds like Pythium (especially common in hydro) and true fungi like Fusarium (which hits both soil and hydro). The first sign is a plant that droops for no obvious reason even though you just watered. Growth slows. Roots shift from white to tan or brown. By the time the roots are dark brown, slimy, and smell rotten, the plant may not recover.&#xA;&#xA;What separates rot from everything else: it&#39;s local. One cola dying while the rest of the plant looks fine. One section of roots going brown while others stay white. Nutrient deficiencies hit the whole plant uniformly. Rot has an epicenter.&#xA;&#xA;---&#xA;&#xA;Bud Rot: What to Look For&#xA;&#xA;The Inside-Out Problem&#xA;&#xA;Bud rot starts where you can&#39;t see it. Botrytis spores land on flower tissue, germinate in the humidity, and go straight for the densest part of the bud - the interior, where moisture sits longest. Outside? Green and healthy. Inside? Grey mush.&#xA;&#xA;Doesn&#39;t matter how many cycles you&#39;ve run. You can eyeball your canopy every day and miss it completely, because the infection is in the one place a surface inspection doesn&#39;t reach.&#xA;&#xA;Early Symptoms (Day 1-3)&#xA;&#xA;The first visible sign is almost always a single sugar leaf - or a small cluster of them - within a cola that yellows and wilts while the rest of the bud stays green. This is easy to dismiss as a light-deprived leaf dying naturally. It isn&#39;t.&#xA;&#xA;What to look for:&#xA;A single yellowing/browning leaf within an otherwise healthy cola&#xA;The leaf pulls out easily with a slight tug (the stem base is already rotting)&#xA;The area around the discolored leaf feels softer or more moist than adjacent tissue&#xA;A faint musty smell when you press your nose close to the bud&#xA;&#xA;Moderate Symptoms (Day 3-7)&#xA;&#xA;Brown or grey tissue visible when you gently spread the cola apart&#xA;Multiple leaves in the same bud turning yellow or brown&#xA;White or grey fuzzy mycelium visible inside the bud under magnification&#xA;The affected area feels distinctly wet or spongy&#xA;&#xA;Advanced Symptoms (Day 7+)&#xA;&#xA;Grey mold visible on the bud exterior&#xA;Bud tissue is soft, wet, and pulls apart easily&#xA;Dark brown or black discoloration spreading to adjacent colas&#xA;Spore dust (grey powder) released when the bud is disturbed&#xA;Unmistakable musty or ammonia smell&#xA;&#xA;At this point, that bud is gone. Everything you do now is about keeping it from spreading.&#xA;&#xA;Where Bud Rot Hits First&#xA;&#xA;Bud rot isn&#39;t random. It goes where the moisture is:&#xA;&#xA;Your main cola. Any thick, tightly-packed bud where moisture can&#39;t escape. Spots deep in the canopy where leaves overlap and trap humidity. Anywhere a fan leaf rests against a bud, creating a little moisture pocket. And anywhere the bud surface is already damaged - caterpillar bore holes, supercrop scars, anything that gave the fungus a way in.&#xA;&#xA;If you&#39;re only going to inspect one thing daily in late flower, make it the main cola and any bud that&#39;s touching a fan leaf. That&#39;s where bud rot lives.&#xA;&#xA;---&#xA;&#xA;Root Rot: What to Look For&#xA;&#xA;The Drooping Paradox&#xA;&#xA;Root rot looks like underwatering. Plant&#39;s drooping, so you water it. The drooping gets worse, so you water more. And now you&#39;re feeding the exact conditions that are killing the roots.&#xA;&#xA;The tell: is the medium already wet? Overwatering droop and root rot droop look identical from the canopy. The answer is always below the surface.&#xA;&#xA;Early Symptoms (Day 1-5)&#xA;&#xA;Drooping or wilting even though the medium is wet&#xA;Slowed growth rate compared to other plants in the same environment&#xA;Roots shifting from bright white to off-white or light tan&#xA;Slight sour or stale smell from the root zone (especially in hydro)&#xA;&#xA;Moderate Symptoms (Day 5-14)&#xA;&#xA;Roots turning brown and developing a slimy texture&#xA;Leaves yellowing from the bottom up (mimics nitrogen deficiency)&#xA;Plant drinking less water than expected for its size&#xA;Stems near the base feeling soft or mushy&#xA;Distinct foul odor from the root zone&#xA;&#xA;Advanced Symptoms (Day 14+)&#xA;&#xA;Dark brown, mushy root mass that falls apart when touched&#xA;Severe wilting that doesn&#39;t recover with watering&#xA;Lower leaves dropping rapidly&#xA;Base of stem may show brown discoloration&#xA;The entire root zone smells of decay&#xA;&#xA;Hydro vs Soil vs Coco&#xA;&#xA;Root rot behaves differently across growing media:&#xA;&#xA;| Factor | Hydroponic (DWC/NFT) | Coco Coir | Soil |&#xA;|--------|----------------------|-----------|------|&#xA;| Primary pathogen | Pythium (also Fusarium) | Pythium / Fusarium | Fusarium / Phytophthora |&#xA;| Speed of onset | Fast (2-5 days) | Moderate (5-10 days) | Slow (7-14 days) |&#xA;| First sign | Slimy roots, off smell | Drooping, slow drying | Persistent droop |&#xA;| Temperature trigger | Reservoir   22C / 72F | Overwatering + warm | Overwatering + poor drainage |&#xA;| Visibility | Easy (roots exposed) | Moderate (can pull back medium) | Hard (roots buried) |&#xA;&#xA;Hydroponic growers have one advantage here: you can actually see the roots. Check them daily. One brown root tip caught early is a ten-second trim. Caught late, it&#39;s a dead plant.&#xA;&#xA;---&#xA;&#xA;Why Speed Matters More Than Treatment&#xA;&#xA;Most treatment guides bury the uncomfortable truth: by the time you&#39;ve confirmed rot, your best options are already behind you. Both conditions double fast once established, and the pathogens produce spores (bud rot) or zoospores (root rot) that reinfect tissue you&#39;ve already treated.&#xA;&#xA;For bud rot:&#xA;Day 1-3: Remove affected cola plus 2-3cm of healthy tissue around it. Sterilize cutting tool between cuts. Drop humidity below 50%. Increase airflow. The remaining harvest is likely safe.&#xA;Day 4-7: You&#39;re removing multiple colas. Some adjacent buds may be internally compromised but not yet showing symptoms. Harvest early if possible.&#xA;Day 7+: Salvage what you can. Anything near the infected area should be assumed compromised.&#xA;&#xA;For root rot:&#xA;Early stage: Hydrogen peroxide root drench (3ml of 3% H2O2 per liter for mild cases, up to 5ml/L for aggressive treatment), drop reservoir temperature below 20C / 68F, increase dissolved oxygen. Beneficial microbes (Bacillus, Trichoderma) as a preventive - not a cure, but they compete with pathogens. Note: H2O2 kills beneficials too, so don&#39;t use both simultaneously.&#xA;Moderate stage: Root pruning (remove all brown tissue), full reservoir change, lower temperature, and hope the remaining root mass can support the plant.&#xA;Advanced: The plant is dying. What&#39;s left of the root system can&#39;t support it. Sometimes the honest move is to pull it and focus on the plants you can still save.&#xA;&#xA;Every day you don&#39;t catch it, your options get worse. Two days is the difference between losing one cola and losing a quarter of the canopy.&#xA;&#xA;---&#xA;&#xA;How to Distinguish Rot from Other Problems&#xA;&#xA;Early rot symptoms can look like nutrient deficiencies, overwatering, or heat stress. The giveaway is where the damage is concentrated.&#xA;&#xA;Rot vs other problems comparison chart&#xA;&#xA;| Symptom | Bud Rot | Root Rot | Nitrogen Deficiency | Overwatering |&#xA;|---------|---------|----------|----------------------|--------------|&#xA;| Affected area | Single cola or bud site | Whole plant from bottom up | Whole plant, lower leaves first | Whole plant |&#xA;| Symmetry | Asymmetric - one point of origin | May be symmetric | Symmetric | Symmetric |&#xA;| Progression | Spreads from one spot outward | Bottom-up canopy decline | Bottom-up, gradual | Uniform droop |&#xA;| Smell | Musty, damp | Sour, foul root zone | None | None |&#xA;| Physical touch test | Soft, wet bud interior | Brown, slimy roots | Leaves feel normal | Leaves feel heavy |&#xA;| Recovers with adjustment | No - removal is the only fix | Rarely once advanced | Yes, within days | Yes, within hours |&#xA;&#xA;If damage is spreading from one spot and doesn&#39;t respond to feed or environment changes - treat it as rot. Verify later. You don&#39;t have time to be wrong slowly.&#xA;&#xA;---&#xA;&#xA;Environmental Triggers&#xA;&#xA;Rot is an environmental disease. The pathogen is probably already in your grow room - Botrytis spores are everywhere. But it needs specific conditions to take hold.&#xA;&#xA;Bud Rot Triggers&#xA;Humidity above 60% during flower - this is the one that matters most&#xA;Poor airflow through the canopy, especially within dense colas&#xA;Temperature swings that cause condensation on flower tissue (lights-off drops are the usual culprit)&#xA;Dense genetics - strains bred for bag appeal often produce bud structures that trap moisture&#xA;Late flower, week 6-8, when buds are at their densest and you&#39;re tired of babysitting the dehumidifier&#xA;&#xA;Root Rot Triggers&#xA;Reservoir temperature above 22C / 72F in hydro - this is the big one&#xA;Overwatering in any medium, especially with poor drainage&#xA;Low dissolved oxygen in the root zone&#xA;Contaminated medium or tools (reusing coco without sterilizing, dirty res)&#xA;Dead organic matter sitting in the reservoir&#xA;&#xA;The 60/22 Rule&#xA;&#xA;Two numbers. That&#39;s all you need to remember: flower room humidity below 60%, reservoir temperature below 22C / 72F. Not arbitrary - those are the inflection points where Botrytis and Pythium growth rates drop off hard. Stay below them and you&#39;re making it difficult for the pathogen. Go above and you&#39;re rolling out a welcome mat.&#xA;&#xA;---&#xA;&#xA;Catching It Before You Can&#xA;&#xA;With rot, speed is the whole game. Early symptoms look like half a dozen other things, and most growers burn their response time treating the wrong problem.&#xA;&#xA;PlantLab&#39;s vision model detects both bud rot and root rot as distinct conditions. You get a specific diagnosis with a confidence score, not &#34;something might be wrong with your plant.&#34; The model was trained exclusively on cannabis images - over 2,000 verified bud rot samples alone - across every severity stage from the first discolored leaf to full colonization.&#xA;&#xA;If you&#39;re growing one plant, daily inspection is enough. But for a larger canopy - or if you&#39;re running cameras on a timer - a system that flags bud rot at 6 AM on a Tuesday before you walk into the room is worth having.&#xA;&#xA;Try it free at plantlab.ai.&#xA;&#xA;---&#xA;&#xA;FAQ&#xA;&#xA;How fast does bud rot spread?&#xA;&#xA;Fast. An entire cola can go from first visible symptom to grey mush in 48-72 hours under favorable conditions (humidity above 60%, poor airflow). During that window, spores are landing on neighboring buds and starting new infections that won&#39;t show for days. Inspect your densest colas daily in late flower. There&#39;s no substitute.&#xA;&#xA;Can you save a bud with rot?&#xA;&#xA;No. Once Botrytis is inside the flower structure, that bud is done. Cut the affected cola plus a margin of healthy tissue around it, sterilize your tool between cuts, and get humidity down. Everything after detection is about containment, not cure.&#xA;&#xA;Does hydrogen peroxide cure root rot?&#xA;&#xA;It kills Pythium on contact, but it also nukes every beneficial microbe in the root zone. Think of it as a reset button, not a treatment plan. Use it alongside temperature correction (below 22C / 72F) and better oxygenation. Once most of the roots are brown and slimy, H2O2 won&#39;t save the plant - there&#39;s not enough healthy root mass left to recover from.&#xA;&#xA;Why does my plant droop even though the soil is wet?&#xA;&#xA;Rotting roots can&#39;t absorb water even when they&#39;re sitting in it. The plant wilts, you water more, the root zone stays waterlogged, and the pathogen thrives. If a plant droops and the medium is already wet, stop watering and check the roots.&#xA;&#xA;Can bud rot spread to other plants?&#xA;&#xA;Absolutely. Botrytis cinerea produces airborne spores, and disturbing an infected bud - touching it, cutting it, even a fan blowing across it - sends them into the air. They land on neighboring plants and start the cycle over. When you remove infected colas, work carefully and bag the tissue immediately. Some growers hit neighboring plants with a preventive fungicide application after removal, which isn&#39;t a bad idea.&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://i.snap.as/GJEwQiWh.png" alt="Bud rot and root rot in cannabis - two diseases that spread faster than growers react"/></p>

<p>You won&#39;t smell it at first. By the time you do – that damp, musty sweetness coming off a cola that looked fine yesterday – you&#39;ve already lost that bud and probably the ones touching it. You cut it open, and the inside is grey mush. A week from harvest.</p>

<p>Bud rot. It colonizes from the inside out, hiding in the densest parts of your canopy where airflow is worst and humidity is highest. By the time the exterior shows damage, the interior has been decomposing for days.</p>



<p>Root rot is the same story, underground. A plant that was drinking normally starts drooping despite a wet medium. You check the roots and they&#39;re brown, slimy, and smell like a swamp. The pathogen has been destroying the root system for a week before the canopy showed a single symptom.</p>

<p>What they share: the window between “detectable” and “devastating” is days, not weeks. Nutrient deficiencies give you time. Pest infestations give you time. Rot doesn&#39;t. It doubles and doubles, and by the time most growers catch it, the only option left is damage control.</p>

<hr/>

<h2 id="quick-identification" id="quick-identification">Quick Identification</h2>

<p><strong>Bud rot</strong> is caused by <em>Botrytis cinerea</em>, a fungus that colonizes dense flower clusters from the inside out. The first thing you&#39;ll notice: a sugar leaf or two within a cola turning yellow or brown while everything around it stays healthy. That isolated patch of dead tissue – not matching any nutrient pattern – is your warning. Pull the bud apart and you&#39;ll find grey or brown tissue, soft and wet, with grey-white fuzz (mycelium) growing through it.</p>

<p><strong>Root rot</strong> comes from several pathogens – water molds like <em>Pythium</em> (especially common in hydro) and true fungi like <em>Fusarium</em> (which hits both soil and hydro). The first sign is a plant that droops for no obvious reason even though you just watered. Growth slows. Roots shift from white to tan or brown. By the time the roots are dark brown, slimy, and smell rotten, the plant may not recover.</p>

<p>What separates rot from everything else: it&#39;s local. One cola dying while the rest of the plant looks fine. One section of roots going brown while others stay white. Nutrient deficiencies hit the whole plant uniformly. Rot has an epicenter.</p>

<hr/>

<h2 id="bud-rot-what-to-look-for" id="bud-rot-what-to-look-for">Bud Rot: What to Look For</h2>

<h3 id="the-inside-out-problem" id="the-inside-out-problem">The Inside-Out Problem</h3>

<p>Bud rot starts where you can&#39;t see it. <em>Botrytis</em> spores land on flower tissue, germinate in the humidity, and go straight for the densest part of the bud – the interior, where moisture sits longest. Outside? Green and healthy. Inside? Grey mush.</p>

<p>Doesn&#39;t matter how many cycles you&#39;ve run. You can eyeball your canopy every day and miss it completely, because the infection is in the one place a surface inspection doesn&#39;t reach.</p>

<h3 id="early-symptoms-day-1-3" id="early-symptoms-day-1-3">Early Symptoms (Day 1-3)</h3>

<p>The first visible sign is almost always a single sugar leaf – or a small cluster of them – within a cola that yellows and wilts while the rest of the bud stays green. This is easy to dismiss as a light-deprived leaf dying naturally. It isn&#39;t.</p>

<p>What to look for:
– A single yellowing/browning leaf within an otherwise healthy cola
– The leaf pulls out easily with a slight tug (the stem base is already rotting)
– The area around the discolored leaf feels softer or more moist than adjacent tissue
– A faint musty smell when you press your nose close to the bud</p>

<h3 id="moderate-symptoms-day-3-7" id="moderate-symptoms-day-3-7">Moderate Symptoms (Day 3-7)</h3>
<ul><li>Brown or grey tissue visible when you gently spread the cola apart</li>
<li>Multiple leaves in the same bud turning yellow or brown</li>
<li>White or grey fuzzy mycelium visible inside the bud under magnification</li>
<li>The affected area feels distinctly wet or spongy</li></ul>

<h3 id="advanced-symptoms-day-7" id="advanced-symptoms-day-7">Advanced Symptoms (Day 7+)</h3>
<ul><li>Grey mold visible on the bud exterior</li>
<li>Bud tissue is soft, wet, and pulls apart easily</li>
<li>Dark brown or black discoloration spreading to adjacent colas</li>
<li>Spore dust (grey powder) released when the bud is disturbed</li>
<li>Unmistakable musty or ammonia smell</li></ul>

<p>At this point, that bud is gone. Everything you do now is about keeping it from spreading.</p>

<h3 id="where-bud-rot-hits-first" id="where-bud-rot-hits-first">Where Bud Rot Hits First</h3>

<p>Bud rot isn&#39;t random. It goes where the moisture is:</p>

<p>Your main cola. Any thick, tightly-packed bud where moisture can&#39;t escape. Spots deep in the canopy where leaves overlap and trap humidity. Anywhere a fan leaf rests against a bud, creating a little moisture pocket. And anywhere the bud surface is already damaged – caterpillar bore holes, supercrop scars, anything that gave the fungus a way in.</p>

<p>If you&#39;re only going to inspect one thing daily in late flower, make it the main cola and any bud that&#39;s touching a fan leaf. That&#39;s where bud rot lives.</p>

<hr/>

<h2 id="root-rot-what-to-look-for" id="root-rot-what-to-look-for">Root Rot: What to Look For</h2>

<h3 id="the-drooping-paradox" id="the-drooping-paradox">The Drooping Paradox</h3>

<p>Root rot looks like underwatering. Plant&#39;s drooping, so you water it. The drooping gets worse, so you water more. And now you&#39;re feeding the exact conditions that are killing the roots.</p>

<p>The tell: is the medium already wet? Overwatering droop and root rot droop look identical from the canopy. The answer is always below the surface.</p>

<h3 id="early-symptoms-day-1-5" id="early-symptoms-day-1-5">Early Symptoms (Day 1-5)</h3>
<ul><li>Drooping or wilting even though the medium is wet</li>
<li>Slowed growth rate compared to other plants in the same environment</li>
<li>Roots shifting from bright white to off-white or light tan</li>
<li>Slight sour or stale smell from the root zone (especially in hydro)</li></ul>

<h3 id="moderate-symptoms-day-5-14" id="moderate-symptoms-day-5-14">Moderate Symptoms (Day 5-14)</h3>
<ul><li>Roots turning brown and developing a slimy texture</li>
<li>Leaves yellowing from the bottom up (mimics nitrogen deficiency)</li>
<li>Plant drinking less water than expected for its size</li>
<li>Stems near the base feeling soft or mushy</li>
<li>Distinct foul odor from the root zone</li></ul>

<h3 id="advanced-symptoms-day-14" id="advanced-symptoms-day-14">Advanced Symptoms (Day 14+)</h3>
<ul><li>Dark brown, mushy root mass that falls apart when touched</li>
<li>Severe wilting that doesn&#39;t recover with watering</li>
<li>Lower leaves dropping rapidly</li>
<li>Base of stem may show brown discoloration</li>
<li>The entire root zone smells of decay</li></ul>

<h3 id="hydro-vs-soil-vs-coco" id="hydro-vs-soil-vs-coco">Hydro vs Soil vs Coco</h3>

<p>Root rot behaves differently across growing media:</p>

<table>
<thead>
<tr>
<th>Factor</th>
<th>Hydroponic (DWC/NFT)</th>
<th>Coco Coir</th>
<th>Soil</th>
</tr>
</thead>

<tbody>
<tr>
<td>Primary pathogen</td>
<td><em>Pythium</em> (also <em>Fusarium</em>)</td>
<td><em>Pythium</em> / <em>Fusarium</em></td>
<td><em>Fusarium</em> / <em>Phytophthora</em></td>
</tr>

<tr>
<td>Speed of onset</td>
<td>Fast (2-5 days)</td>
<td>Moderate (5-10 days)</td>
<td>Slow (7-14 days)</td>
</tr>

<tr>
<td>First sign</td>
<td>Slimy roots, off smell</td>
<td>Drooping, slow drying</td>
<td>Persistent droop</td>
</tr>

<tr>
<td>Temperature trigger</td>
<td>Reservoir &gt; 22C / 72F</td>
<td>Overwatering + warm</td>
<td>Overwatering + poor drainage</td>
</tr>

<tr>
<td>Visibility</td>
<td>Easy (roots exposed)</td>
<td>Moderate (can pull back medium)</td>
<td>Hard (roots buried)</td>
</tr>
</tbody>
</table>

<p>Hydroponic growers have one advantage here: you can actually see the roots. Check them daily. One brown root tip caught early is a ten-second trim. Caught late, it&#39;s a dead plant.</p>

<hr/>

<h2 id="why-speed-matters-more-than-treatment" id="why-speed-matters-more-than-treatment">Why Speed Matters More Than Treatment</h2>

<p>Most treatment guides bury the uncomfortable truth: by the time you&#39;ve confirmed rot, your best options are already behind you. Both conditions double fast once established, and the pathogens produce spores (bud rot) or zoospores (root rot) that reinfect tissue you&#39;ve already treated.</p>

<p>For bud rot:
– <strong>Day 1-3:</strong> Remove affected cola plus 2-3cm of healthy tissue around it. Sterilize cutting tool between cuts. Drop humidity below 50%. Increase airflow. The remaining harvest is likely safe.
– <strong>Day 4-7:</strong> You&#39;re removing multiple colas. Some adjacent buds may be internally compromised but not yet showing symptoms. Harvest early if possible.
– <strong>Day 7+:</strong> Salvage what you can. Anything near the infected area should be assumed compromised.</p>

<p>For root rot:
– <strong>Early stage:</strong> Hydrogen peroxide root drench (3ml of 3% H2O2 per liter for mild cases, up to 5ml/L for aggressive treatment), drop reservoir temperature below 20C / 68F, increase dissolved oxygen. Beneficial microbes (<em>Bacillus</em>, <em>Trichoderma</em>) as a preventive – not a cure, but they compete with pathogens. Note: H2O2 kills beneficials too, so don&#39;t use both simultaneously.
– <strong>Moderate stage:</strong> Root pruning (remove all brown tissue), full reservoir change, lower temperature, and hope the remaining root mass can support the plant.
– <strong>Advanced:</strong> The plant is dying. What&#39;s left of the root system can&#39;t support it. Sometimes the honest move is to pull it and focus on the plants you can still save.</p>

<p>Every day you don&#39;t catch it, your options get worse. Two days is the difference between losing one cola and losing a quarter of the canopy.</p>

<hr/>

<h2 id="how-to-distinguish-rot-from-other-problems" id="how-to-distinguish-rot-from-other-problems">How to Distinguish Rot from Other Problems</h2>

<p>Early rot symptoms can look like nutrient deficiencies, overwatering, or heat stress. The giveaway is <strong>where</strong> the damage is concentrated.</p>

<p><img src="https://i.snap.as/tXyz87Ow.png" alt="Rot vs other problems comparison chart"/></p>

<table>
<thead>
<tr>
<th>Symptom</th>
<th>Bud Rot</th>
<th>Root Rot</th>
<th><a href="https://blog.plantlab.ai/nitrogen-deficiency-in-cannabis-a-visual-guide">Nitrogen Deficiency</a></th>
<th>Overwatering</th>
</tr>
</thead>

<tbody>
<tr>
<td>Affected area</td>
<td>Single cola or bud site</td>
<td>Whole plant from bottom up</td>
<td>Whole plant, lower leaves first</td>
<td>Whole plant</td>
</tr>

<tr>
<td>Symmetry</td>
<td>Asymmetric – one point of origin</td>
<td>May be symmetric</td>
<td>Symmetric</td>
<td>Symmetric</td>
</tr>

<tr>
<td>Progression</td>
<td>Spreads from one spot outward</td>
<td>Bottom-up canopy decline</td>
<td>Bottom-up, gradual</td>
<td>Uniform droop</td>
</tr>

<tr>
<td>Smell</td>
<td>Musty, damp</td>
<td>Sour, foul root zone</td>
<td>None</td>
<td>None</td>
</tr>

<tr>
<td>Physical touch test</td>
<td>Soft, wet bud interior</td>
<td>Brown, slimy roots</td>
<td>Leaves feel normal</td>
<td>Leaves feel heavy</td>
</tr>

<tr>
<td>Recovers with adjustment</td>
<td>No – removal is the only fix</td>
<td>Rarely once advanced</td>
<td>Yes, within days</td>
<td>Yes, within hours</td>
</tr>
</tbody>
</table>

<p>If damage is spreading from one spot and doesn&#39;t respond to feed or environment changes – treat it as rot. Verify later. You don&#39;t have time to be wrong slowly.</p>

<hr/>

<h2 id="environmental-triggers" id="environmental-triggers">Environmental Triggers</h2>

<p>Rot is an environmental disease. The pathogen is probably already in your grow room – <em>Botrytis</em> spores are everywhere. But it needs specific conditions to take hold.</p>

<h3 id="bud-rot-triggers" id="bud-rot-triggers">Bud Rot Triggers</h3>
<ul><li>Humidity above <strong>60%</strong> during flower – this is the one that matters most</li>
<li>Poor airflow through the canopy, especially within dense colas</li>
<li>Temperature swings that cause condensation on flower tissue (lights-off drops are the usual culprit)</li>
<li>Dense genetics – strains bred for bag appeal often produce bud structures that trap moisture</li>
<li>Late flower, week 6-8, when buds are at their densest and you&#39;re tired of babysitting the dehumidifier</li></ul>

<h3 id="root-rot-triggers" id="root-rot-triggers">Root Rot Triggers</h3>
<ul><li>Reservoir temperature above <strong>22C / 72F</strong> in hydro – this is the big one</li>
<li>Overwatering in any medium, especially with poor drainage</li>
<li>Low dissolved oxygen in the root zone</li>
<li>Contaminated medium or tools (reusing coco without sterilizing, dirty res)</li>
<li>Dead organic matter sitting in the reservoir</li></ul>

<h3 id="the-60-22-rule" id="the-60-22-rule">The 60/22 Rule</h3>

<p>Two numbers. That&#39;s all you need to remember: flower room humidity below <strong>60%</strong>, reservoir temperature below <strong>22C / 72F</strong>. Not arbitrary – those are the inflection points where <em>Botrytis</em> and <em>Pythium</em> growth rates drop off hard. Stay below them and you&#39;re making it difficult for the pathogen. Go above and you&#39;re rolling out a welcome mat.</p>

<hr/>

<h2 id="catching-it-before-you-can" id="catching-it-before-you-can">Catching It Before You Can</h2>

<p>With rot, speed is the whole game. Early symptoms look like <a href="https://blog.plantlab.ai/whats-wrong-with-my-cannabis-plant">half a dozen other things</a>, and most growers burn their response time treating the wrong problem.</p>

<p>PlantLab&#39;s vision model detects both bud rot and root rot as distinct conditions. You get a specific diagnosis with a confidence score, not “something might be wrong with your plant.” The model was trained exclusively on cannabis images – over 2,000 verified bud rot samples alone – across every severity stage from the first discolored leaf to full colonization.</p>

<p>If you&#39;re growing one plant, daily inspection is enough. But for a larger canopy – or if you&#39;re running cameras on a timer – a system that flags bud rot at 6 AM on a Tuesday before you walk into the room is worth having.</p>

<p>Try it free at <a href="https://plantlab.ai">plantlab.ai</a>.</p>

<hr/>

<h2 id="faq" id="faq">FAQ</h2>

<h3 id="how-fast-does-bud-rot-spread" id="how-fast-does-bud-rot-spread">How fast does bud rot spread?</h3>

<p>Fast. An entire cola can go from first visible symptom to grey mush in 48-72 hours under favorable conditions (humidity above 60%, poor airflow). During that window, spores are landing on neighboring buds and starting new infections that won&#39;t show for days. Inspect your densest colas daily in late flower. There&#39;s no substitute.</p>

<h3 id="can-you-save-a-bud-with-rot" id="can-you-save-a-bud-with-rot">Can you save a bud with rot?</h3>

<p>No. Once <em>Botrytis</em> is inside the flower structure, that bud is done. Cut the affected cola plus a margin of healthy tissue around it, sterilize your tool between cuts, and get humidity down. Everything after detection is about containment, not cure.</p>

<h3 id="does-hydrogen-peroxide-cure-root-rot" id="does-hydrogen-peroxide-cure-root-rot">Does hydrogen peroxide cure root rot?</h3>

<p>It kills <em>Pythium</em> on contact, but it also nukes every beneficial microbe in the root zone. Think of it as a reset button, not a treatment plan. Use it alongside temperature correction (below 22C / 72F) and better oxygenation. Once most of the roots are brown and slimy, H2O2 won&#39;t save the plant – there&#39;s not enough healthy root mass left to recover from.</p>

<h3 id="why-does-my-plant-droop-even-though-the-soil-is-wet" id="why-does-my-plant-droop-even-though-the-soil-is-wet">Why does my plant droop even though the soil is wet?</h3>

<p>Rotting roots can&#39;t absorb water even when they&#39;re sitting in it. The plant wilts, you water more, the root zone stays waterlogged, and the pathogen thrives. If a plant droops and the medium is already wet, stop watering and check the roots.</p>

<h3 id="can-bud-rot-spread-to-other-plants" id="can-bud-rot-spread-to-other-plants">Can bud rot spread to other plants?</h3>

<p>Absolutely. <em>Botrytis cinerea</em> produces airborne spores, and disturbing an infected bud – touching it, cutting it, even a fan blowing across it – sends them into the air. They land on neighboring plants and start the cycle over. When you remove infected colas, work carefully and bag the tissue immediately. Some growers hit neighboring plants with a preventive fungicide application after removal, which isn&#39;t a bad idea.</p>
]]></content:encoded>
      <guid>https://blog.plantlab.ai/bud-rot-root-rot-cannabis</guid>
      <pubDate>Sun, 12 Apr 2026 13:23:20 +0000</pubDate>
    </item>
    <item>
      <title>Calcium vs Magnesium Deficiency in Cannabis: A Visual Comparison</title>
      <link>https://blog.plantlab.ai/calcium-vs-magnesium-deficiency-cannabis?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Calcium vs magnesium deficiency in cannabis - two leaves showing distinct symptom patterns&#xA;&#xA;Something&#39;s wrong with your plant. The leaves look off. You post a photo to a growing forum and within minutes, three people reply: &#34;CalMag.&#34;&#xA;&#xA;You could have posted a picture of your dog and someone would have said CalMag.&#xA;&#xA;It&#39;s the universal answer to every cannabis problem, the &#34;have you tried turning it off and on again&#34; of indoor growing. Yellowing? CalMag. Spots? CalMag. Weird leaf curl? Believe it or not, CalMag. And hey - sometimes it works. But when it doesn&#39;t, most growers just add more CalMag, which can make things actively worse.&#xA;&#xA;!--more--&#xA;&#xA;Here&#39;s the thing nobody on the forums tells you: calcium and magnesium are two different nutrients that cause two different problems in two different places on the plant. Dumping a combined supplement at every symptom is like taking both Advil and Tylenol every time anything hurts - sometimes you need one, sometimes the other, and sometimes the extra dose of the wrong one creates a new problem.&#xA;&#xA;This guide breaks down what calcium deficiency actually looks like versus magnesium deficiency, where to find each one on your plant, and how to stop guessing.&#xA;&#xA;---&#xA;&#xA;Quick Identification&#xA;&#xA;Calcium deficiency produces irregular brown spots and necrotic patches on newer, upper growth. Magnesium deficiency produces interveinal yellowing - green veins with yellow tissue between them - on older, lower leaves.&#xA;&#xA;The single most useful diagnostic: location on the plant. Calcium can&#39;t move once the plant deposits it in cell walls, so when supply runs short, it&#39;s the newest growth that suffers first. Magnesium is mobile - the plant pulls it from old leaves to feed new ones, so the oldest leaves show damage first.&#xA;&#xA;Lower leaves yellowing between the veins? Magnesium. Upper leaves developing brown dead spots? Calcium. Or Calcium = High, Magnesium = Low, if you want it super simple.&#xA;&#xA;---&#xA;&#xA;Why They Get Confused&#xA;&#xA;Blame the Bottle&#xA;&#xA;The supplement industry packages calcium and magnesium together because both are secondary macronutrients that RO and filtered water strips out. As a preventive baseline, that&#39;s fine. As a diagnostic tool, it&#39;s useless.&#xA;&#xA;When a grower sees something wrong and reaches for the CalMag, one of three things happens:&#xA;&#xA;The plant needed magnesium. The CalMag contains magnesium, so it helps. The grower walks away thinking &#34;CalMag works&#34; without learning anything.&#xA;The plant needed calcium. Same thing.&#xA;The plant needed one but not the other. This is where it gets ugly. Calcium and magnesium are both cations that compete for the same uptake sites on roots. Adding an excess of the one your plant didn&#39;t need starts blocking the one it did.&#xA;&#xA;That third scenario is why &#34;I added CalMag and it got worse&#34; is a meme for a reason. It&#39;s not that CalMag is bad - it&#39;s that using it as a diagnostic shortcut can create the exact antagonistic lockout you were trying to fix.&#xA;&#xA;The Photo Problem&#xA;&#xA;Both deficiencies can produce yellowing. Both can cause spots. A photo of a calcium-deficient upper leaf and a magnesium-deficient lower leaf can look surprisingly similar without context. And context - which part of the plant, which leaves, what pattern - is exactly what gets lost in a blurry photo posted at odd hours.&#xA;&#xA;---&#xA;&#xA;Visual Symptoms: Side by Side&#xA;&#xA;Calcium Deficiency&#xA;&#xA;Shows up on new growth at the top of the plant - upper leaves, growing tips, youngest tissue.&#xA;&#xA;What you&#39;ll see:&#xA;Irregular brown or tan spots that seem to appear overnight&#xA;The spots feel crispy and dead, not soft or yellow&#xA;New leaves coming in distorted, curled, or crinkled&#xA;Growing tips stunting or dying back&#xA;Stems developing weak, hollow sections in bad cases&#xA;Spots that don&#39;t follow any vein pattern - they just show up randomly&#xA;&#xA;How it progresses:&#xA;Small brown spots appear on young leaves&#xA;Spots expand and merge into larger dead patches&#xA;Leaf edges curl inward and brown&#xA;Growing tips stunt or die&#xA;Stems weaken - the plant gets structurally fragile&#xA;&#xA;Calcium deficiency - brown necrotic spots on upper cannabis leaves, botanical illustration&#xA;&#xA;The quick test: If you can crumble the affected tissue between your fingers, and the damage is on the top of the plant, calcium deficiency is your most likely suspect.&#xA;&#xA;Magnesium Deficiency&#xA;&#xA;Shows up on older growth at the bottom of the plant - lower leaves, middle canopy, the oldest tissue first.&#xA;&#xA;What you&#39;ll see:&#xA;Yellowing between leaf veins while the veins themselves stay green (interveinal chlorosis)&#xA;Starts at the leaf edges and creeps inward toward the midrib&#xA;The classic &#34;tiger stripe&#34; pattern on fan leaves&#xA;Older leaves eventually going fully yellow, then brown, then dropping off&#xA;Veins staying distinctly green throughout - this is what separates it from nitrogen deficiency&#xA;&#xA;How it progresses:&#xA;Lower leaf margins start yellowing&#xA;Yellowing spreads between veins, creating that green-vein / yellow-tissue contrast&#xA;Edges go brown and necrotic&#xA;Leaves curl upward slightly&#xA;Worst-hit leaves drop&#xA;&#xA;Magnesium deficiency - interveinal yellowing on lower cannabis leaves, botanical illustration&#xA;&#xA;The quick test: Green veins with yellow tissue between them, starting from the bottom of the plant. If the veins are yellowing too, that&#39;s nitrogen, not magnesium.&#xA;&#xA;---&#xA;&#xA;The Comparison Table&#xA;&#xA;| Feature | Calcium Deficiency | Magnesium Deficiency |&#xA;|---------|-------------------|---------------------|&#xA;| Affected leaves | New growth (top) | Old growth (bottom) |&#xA;| Mobility | Immobile - stays where deposited | Mobile - plant moves it to new growth |&#xA;| Primary symptom | Brown necrotic spots | Interveinal yellowing |&#xA;| Vein color | Veins unaffected | Veins stay green while tissue yellows |&#xA;| Spot texture | Crispy, dry, crumbles | Soft yellowing, papery when advanced |&#xA;| Pattern | Random irregular spots | Symmetric between veins |&#xA;| Edge symptoms | Curling, browning of new leaf edges | Browning of old leaf edges (late stage) |&#xA;| Progression direction | Top down | Bottom up |&#xA;| Stem effects | Weak, hollow stems possible | None |&#xA;| Speed of onset | Fast (days) | Gradual (1-2 weeks) |&#xA;&#xA;---&#xA;&#xA;What Else It Could Be&#xA;&#xA;Calcium and magnesium each have their own lookalikes. Getting these wrong sends you down the wrong treatment path.&#xA;&#xA;Calcium vs Potassium&#xA;&#xA;Both produce brown, crispy leaf edges. Calcium does it on new growth with irregularly placed spots. Potassium does it on older leaves with a defined burned-edge pattern that starts at tips and margins and works inward. If the crispy edges are at the bottom of the plant, think potassium before calcium.&#xA;&#xA;Magnesium vs Nitrogen&#xA;&#xA;Both cause yellowing on older leaves. The tell is the veins. Magnesium keeps the veins green - the yellowing is only between them. Nitrogen yellows the entire leaf uniformly, veins and all. No interveinal pattern means nitrogen, not magnesium.&#xA;&#xA;Magnesium vs Iron&#xA;&#xA;Both cause interveinal chlorosis. Same pattern, opposite location. Magnesium hits old leaves at the bottom (mobile nutrient moving to new growth). Iron hits new leaves at the top (immobile nutrient that can&#39;t be redistributed). If the interveinal yellowing is at the top of the plant, it&#39;s iron. Bottom, magnesium. This one is actually definitive.&#xA;&#xA;---&#xA;&#xA;Common Causes&#xA;&#xA;Why Calcium Runs Low&#xA;&#xA;Reverse osmosis or filtered water. Tap water naturally contains calcium. RO strips it. If you switched to RO without adding calcium back, this is probably your answer.&#xA;&#xA;Low pH. Below pH 6.0 in soil, calcium is still physically present but chemically locked out. You can add all the calcium you want - the plant can&#39;t access it.&#xA;&#xA;Excessive potassium or ammonium. Both compete with calcium for root uptake. Those high-K bloom feeds? They can induce calcium deficiency even when there&#39;s plenty of calcium in the medium.&#xA;&#xA;High humidity. Calcium moves through the plant via transpiration. In very humid environments, transpiration slows, and calcium stops reaching the growing tips. This is the one that catches experienced growers off guard - everything else looks perfect but the new growth keeps getting spots.&#xA;&#xA;Why Magnesium Runs Low&#xA;&#xA;Coco coir. The single most common cause in modern indoor growing. Coco has a natural affinity for calcium and magnesium cations - it holds onto them rather than releasing them to roots. If you grow in coco and don&#39;t buffer for this, magnesium deficiency is basically guaranteed.&#xA;&#xA;Too much calcium supplementation. Ironic, right? Excess calcium blocks magnesium at root exchange sites. The fix for one deficiency can cause the other. This antagonistic relationship is why &#34;just add CalMag&#34; is sometimes exactly the wrong move.&#xA;&#xA;Low pH. Same as calcium - availability drops below pH 6.0.&#xA;&#xA;Intense LED lighting. LEDs drive more photosynthesis per watt than HPS, and magnesium is the central atom in every chlorophyll molecule. More light means more chlorophyll demand means more magnesium consumption. Growers who switch from HPS to LED at the same feed rate often see magnesium deficiency appear within two to three weeks. It&#39;s not the lights causing the problem - they&#39;re just exposing a margin that was previously fine.&#xA;&#xA;---&#xA;&#xA;Treatment&#xA;&#xA;Fixing Calcium Deficiency&#xA;&#xA;Check pH first. If your root zone is below 6.0, no amount of calcium will help - it&#39;s locked out. Correct to 6.0-6.5 (soil) or 5.8-6.0 (hydro/coco) before you add anything.&#xA;&#xA;Use a calcium-specific supplement. Calcium nitrate provides calcium without adding magnesium. This matters when your magnesium levels are fine and you don&#39;t want to throw off the ratio.&#xA;&#xA;Dolomite lime for soil. Slow-release calcium and magnesium. Better as a preventive amendment mixed in at planting than as a mid-grow rescue.&#xA;&#xA;Look at competing cations. Running a heavy bloom feed with high potassium? The K might be the reason calcium can&#39;t get through. Temporarily dial it back.&#xA;&#xA;New growth should improve within 5-7 days. The damaged leaves won&#39;t recover - don&#39;t wait for them to. Watch the new growth above the damage zone instead.&#xA;&#xA;Fixing Magnesium Deficiency&#xA;&#xA;Check pH first. Same story - lockout before deficiency.&#xA;&#xA;Epsom salt. 1-2 teaspoons per gallon of water. Magnesium sulfate is the fastest targeted fix and it&#39;s cheap. Your plant doesn&#39;t care that it came from a $3 bag at the pharmacy.&#xA;&#xA;Foliar spray for speed. 1 teaspoon Epsom salt per litre of water, sprayed directly on affected leaves. Foliar absorption bypasses whatever root problem is blocking uptake. Useful as a quick fix while you sort out the root zone.&#xA;&#xA;Reduce calcium if you over-supplemented. If you&#39;ve been heavy on CalMag or calcium nitrate, the excess calcium may be the reason magnesium can&#39;t get through. Sometimes the treatment is subtraction, not addition.&#xA;&#xA;Foliar spray shows results in 3-5 days. Root-zone correction takes 7-10 days. Same as calcium - old leaves won&#39;t recover, but the damage should stop spreading and new growth should come in clean.&#xA;&#xA;---&#xA;&#xA;Prevention&#xA;&#xA;Test your water. Know your baseline calcium and magnesium before adding anything. Tap water in many regions provides enough of both. If you&#39;re on tap water and getting deficiency symptoms, the problem is almost certainly pH or antagonism, not supply.&#xA;&#xA;Manage your pH. Root zone between 6.0-6.5 (soil) or 5.8-6.0 (hydro/coco). This single practice prevents more deficiencies than every supplement combined.&#xA;&#xA;Match your medium. Coco growers need more CalMag than soil growers. LED growers need more magnesium than HPS growers. Generic feeding charts are written for average conditions - adjust for your actual setup.&#xA;&#xA;Watch the ratio. Optimal Ca:Mg is 3:1 to 5:1. When this drifts - usually from over-supplementing one side - the other becomes deficient through antagonism, not absence. You can cause a deficiency by adding too much of the other nutrient. That&#39;s the cruel joke of cation chemistry.&#xA;&#xA;---&#xA;&#xA;How AI Detection Works&#xA;&#xA;This confusion between calcium and magnesium is a pattern recognition problem at its core. The symptoms are visually distinct - brown spots versus interveinal yellowing, top versus bottom - but at 2 AM, staring at a phone photo of a leaf under a blurple light, those distinctions get fuzzy. The human answer to &#34;CalMag or not?&#34; has always been &#34;post a photo and hope someone experienced is online.&#34;&#xA;&#xA;PlantLab&#39;s nutrient subclassifier was trained on exactly this confusion pair. When the primary model flags a nutrient issue, a specialist second-pass model distinguishes between seven specific deficiencies - including calcium and magnesium individually. That two-stage approach resolves 93% of the nutrient misclassifications a single model would make.&#xA;&#xA;The subclassifier tested at 99.5% accuracy on 15,000+ held-out images. That number matters most on the hard cases: telling calcium from magnesium when the symptoms overlap and the photo quality isn&#39;t great.&#xA;&#xA;One photo. A specific answer. Not &#34;CalMag deficiency&#34; - calcium or magnesium, with a confidence score attached.&#xA;&#xA;Try it free at plantlab.ai - three diagnoses per day, no credit card.&#xA;&#xA;---&#xA;&#xA;FAQ&#xA;&#xA;Can a plant have both calcium and magnesium deficiency at the same time?&#xA;&#xA;Yes, and it&#39;s common with RO water or unbuffered coco. You&#39;ll see interveinal yellowing on lower leaves (magnesium) and brown spots on upper leaves (calcium) at the same time. This is the one scenario where reaching for the CalMag bottle is genuinely the right call. Confirm with pH testing first - if pH is the root cause, a single correction may fix both.&#xA;&#xA;Is CalMag ever the right answer?&#xA;&#xA;For prevention, absolutely. As a baseline addition to RO water or coco grows, CalMag works well. The problem is using it as a diagnostic reflex - adding it before you&#39;ve figured out which nutrient is actually short. If only one is deficient, a targeted supplement avoids throwing off the ratio of the one that was fine.&#xA;&#xA;Why do LED growers see more magnesium issues?&#xA;&#xA;Magnesium is the central atom in chlorophyll. LEDs drive more photosynthesis per watt than HPS, which means more chlorophyll turnover, which means higher magnesium demand. Growers who switch to LEDs at the same feed rate they used under HPS often see magnesium deficiency show up within weeks. The plant was fine before because it wasn&#39;t photosynthesizing as hard.&#xA;&#xA;How long before I see improvement after treatment?&#xA;&#xA;Foliar magnesium spray: 3-5 days. Root-zone magnesium correction: 7-10 days. Calcium (new growth): 5-7 days. In every case, the old damaged leaves are done - they won&#39;t green back up. Watch the new growth above the damage.&#xA;&#xA;Can pH lockout cause both deficiencies at once?&#xA;&#xA;Yes. Both calcium and magnesium availability drops sharply below pH 6.0. A single pH correction can resolve what looks like a dual deficiency without adding any supplements at all. This is why &#34;check pH first&#34; appears in every treatment section above. It&#39;s boring advice, but it&#39;s boring because it works.&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://i.snap.as/At9bqkNM.png" alt="Calcium vs magnesium deficiency in cannabis - two leaves showing distinct symptom patterns"/></p>

<p>Something&#39;s wrong with your plant. The leaves look off. You post a photo to a growing forum and within minutes, three people reply: “CalMag.”</p>

<p>You could have posted a picture of your dog and someone would have said CalMag.</p>

<p>It&#39;s the universal answer to every cannabis problem, the “have you tried turning it off and on again” of indoor growing. Yellowing? CalMag. Spots? CalMag. Weird leaf curl? Believe it or not, CalMag. And hey – sometimes it works. But when it doesn&#39;t, most growers just add more CalMag, which can make things actively worse.</p>



<p>Here&#39;s the thing nobody on the forums tells you: calcium and magnesium are two different nutrients that cause two different problems in two different places on the plant. Dumping a combined supplement at every symptom is like taking both Advil and Tylenol every time anything hurts – sometimes you need one, sometimes the other, and sometimes the extra dose of the wrong one creates a new problem.</p>

<p>This guide breaks down what calcium deficiency actually looks like versus magnesium deficiency, where to find each one on your plant, and how to stop guessing.</p>

<hr/>

<h2 id="quick-identification" id="quick-identification">Quick Identification</h2>

<p>Calcium deficiency produces irregular brown spots and necrotic patches on newer, upper growth. Magnesium deficiency produces interveinal yellowing – green veins with yellow tissue between them – on older, lower leaves.</p>

<p>The single most useful diagnostic: <strong>location on the plant.</strong> Calcium can&#39;t move once the plant deposits it in cell walls, so when supply runs short, it&#39;s the newest growth that suffers first. Magnesium is mobile – the plant pulls it from old leaves to feed new ones, so the oldest leaves show damage first.</p>

<p>Lower leaves yellowing between the veins? Magnesium. Upper leaves developing brown dead spots? Calcium. Or Calcium = High, Magnesium = Low, if you want it super simple.</p>

<hr/>

<h2 id="why-they-get-confused" id="why-they-get-confused">Why They Get Confused</h2>

<h3 id="blame-the-bottle" id="blame-the-bottle">Blame the Bottle</h3>

<p>The supplement industry packages calcium and magnesium together because both are secondary macronutrients that RO and filtered water strips out. As a preventive baseline, that&#39;s fine. As a diagnostic tool, it&#39;s useless.</p>

<p>When a grower sees something wrong and reaches for the CalMag, one of three things happens:</p>
<ol><li>The plant needed magnesium. The CalMag contains magnesium, so it helps. The grower walks away thinking “CalMag works” without learning anything.</li>
<li>The plant needed calcium. Same thing.</li>
<li>The plant needed one but not the other. This is where it gets ugly. Calcium and magnesium are both cations that compete for the same uptake sites on roots. Adding an excess of the one your plant didn&#39;t need starts blocking the one it did.</li></ol>

<p>That third scenario is why “I added CalMag and it got worse” is a meme for a reason. It&#39;s not that CalMag is bad – it&#39;s that using it as a diagnostic shortcut can create the exact antagonistic lockout you were trying to fix.</p>

<h3 id="the-photo-problem" id="the-photo-problem">The Photo Problem</h3>

<p>Both deficiencies can produce yellowing. Both can cause spots. A photo of a calcium-deficient upper leaf and a magnesium-deficient lower leaf can look surprisingly similar without context. And context – which part of the plant, which leaves, what pattern – is exactly what gets lost in a blurry photo posted at odd hours.</p>

<hr/>

<h2 id="visual-symptoms-side-by-side" id="visual-symptoms-side-by-side">Visual Symptoms: Side by Side</h2>

<h3 id="calcium-deficiency" id="calcium-deficiency">Calcium Deficiency</h3>

<p>Shows up on <strong>new growth at the top of the plant</strong> – upper leaves, growing tips, youngest tissue.</p>

<p>What you&#39;ll see:
– Irregular brown or tan spots that seem to appear overnight
– The spots feel crispy and dead, not soft or yellow
– New leaves coming in distorted, curled, or crinkled
– Growing tips stunting or dying back
– Stems developing weak, hollow sections in bad cases
– Spots that don&#39;t follow any vein pattern – they just show up randomly</p>

<p>How it progresses:
1. Small brown spots appear on young leaves
2. Spots expand and merge into larger dead patches
3. Leaf edges curl inward and brown
4. Growing tips stunt or die
5. Stems weaken – the plant gets structurally fragile</p>

<p><img src="https://i.snap.as/rZaCvdf8.png" alt="Calcium deficiency - brown necrotic spots on upper cannabis leaves, botanical illustration"/></p>

<p><strong>The quick test:</strong> If you can crumble the affected tissue between your fingers, and the damage is on the top of the plant, calcium deficiency is your most likely suspect.</p>

<h3 id="magnesium-deficiency" id="magnesium-deficiency">Magnesium Deficiency</h3>

<p>Shows up on <strong>older growth at the bottom of the plant</strong> – lower leaves, middle canopy, the oldest tissue first.</p>

<p>What you&#39;ll see:
– Yellowing between leaf veins while the veins themselves stay green (interveinal chlorosis)
– Starts at the leaf edges and creeps inward toward the midrib
– The classic “tiger stripe” pattern on fan leaves
– Older leaves eventually going fully yellow, then brown, then dropping off
– Veins staying distinctly green throughout – this is what separates it from nitrogen deficiency</p>

<p>How it progresses:
1. Lower leaf margins start yellowing
2. Yellowing spreads between veins, creating that green-vein / yellow-tissue contrast
3. Edges go brown and necrotic
4. Leaves curl upward slightly
5. Worst-hit leaves drop</p>

<p><img src="https://i.snap.as/7BHwHAC0.png" alt="Magnesium deficiency - interveinal yellowing on lower cannabis leaves, botanical illustration"/></p>

<p><strong>The quick test:</strong> Green veins with yellow tissue between them, starting from the bottom of the plant. If the veins are yellowing too, that&#39;s nitrogen, not magnesium.</p>

<hr/>

<h2 id="the-comparison-table" id="the-comparison-table">The Comparison Table</h2>

<table>
<thead>
<tr>
<th>Feature</th>
<th>Calcium Deficiency</th>
<th>Magnesium Deficiency</th>
</tr>
</thead>

<tbody>
<tr>
<td>Affected leaves</td>
<td>New growth (top)</td>
<td>Old growth (bottom)</td>
</tr>

<tr>
<td>Mobility</td>
<td>Immobile – stays where deposited</td>
<td>Mobile – plant moves it to new growth</td>
</tr>

<tr>
<td>Primary symptom</td>
<td>Brown necrotic spots</td>
<td>Interveinal yellowing</td>
</tr>

<tr>
<td>Vein color</td>
<td>Veins unaffected</td>
<td>Veins stay green while tissue yellows</td>
</tr>

<tr>
<td>Spot texture</td>
<td>Crispy, dry, crumbles</td>
<td>Soft yellowing, papery when advanced</td>
</tr>

<tr>
<td>Pattern</td>
<td>Random irregular spots</td>
<td>Symmetric between veins</td>
</tr>

<tr>
<td>Edge symptoms</td>
<td>Curling, browning of new leaf edges</td>
<td>Browning of old leaf edges (late stage)</td>
</tr>

<tr>
<td>Progression direction</td>
<td>Top down</td>
<td>Bottom up</td>
</tr>

<tr>
<td>Stem effects</td>
<td>Weak, hollow stems possible</td>
<td>None</td>
</tr>

<tr>
<td>Speed of onset</td>
<td>Fast (days)</td>
<td>Gradual (1-2 weeks)</td>
</tr>
</tbody>
</table>

<hr/>

<h2 id="what-else-it-could-be" id="what-else-it-could-be">What Else It Could Be</h2>

<p>Calcium and magnesium each have their own lookalikes. Getting these wrong sends you down the wrong treatment path.</p>

<h3 id="calcium-vs-potassium" id="calcium-vs-potassium">Calcium vs Potassium</h3>

<p>Both produce brown, crispy leaf edges. Calcium does it on new growth with irregularly placed spots. Potassium does it on older leaves with a defined burned-edge pattern that starts at tips and margins and works inward. If the crispy edges are at the bottom of the plant, think potassium before calcium.</p>

<h3 id="magnesium-vs-nitrogen" id="magnesium-vs-nitrogen">Magnesium vs Nitrogen</h3>

<p>Both cause yellowing on older leaves. The tell is the veins. Magnesium keeps the veins green – the yellowing is only between them. Nitrogen yellows the entire leaf uniformly, veins and all. No interveinal pattern means nitrogen, not magnesium.</p>

<h3 id="magnesium-vs-iron" id="magnesium-vs-iron">Magnesium vs Iron</h3>

<p>Both cause interveinal chlorosis. Same pattern, opposite location. Magnesium hits old leaves at the bottom (mobile nutrient moving to new growth). Iron hits new leaves at the top (immobile nutrient that can&#39;t be redistributed). If the interveinal yellowing is at the top of the plant, it&#39;s iron. Bottom, magnesium. This one is actually definitive.</p>

<hr/>

<h2 id="common-causes" id="common-causes">Common Causes</h2>

<h3 id="why-calcium-runs-low" id="why-calcium-runs-low">Why Calcium Runs Low</h3>

<p><strong>Reverse osmosis or filtered water.</strong> Tap water naturally contains calcium. RO strips it. If you switched to RO without adding calcium back, this is probably your answer.</p>

<p><strong>Low pH.</strong> Below pH 6.0 in soil, calcium is still physically present but chemically locked out. You can add all the calcium you want – the plant can&#39;t access it.</p>

<p><strong>Excessive potassium or ammonium.</strong> Both compete with calcium for root uptake. Those high-K bloom feeds? They can induce calcium deficiency even when there&#39;s plenty of calcium in the medium.</p>

<p><strong>High humidity.</strong> Calcium moves through the plant via transpiration. In very humid environments, transpiration slows, and calcium stops reaching the growing tips. This is the one that catches experienced growers off guard – everything else looks perfect but the new growth keeps getting spots.</p>

<h3 id="why-magnesium-runs-low" id="why-magnesium-runs-low">Why Magnesium Runs Low</h3>

<p><strong>Coco coir.</strong> The single most common cause in modern indoor growing. Coco has a natural affinity for calcium and magnesium cations – it holds onto them rather than releasing them to roots. If you grow in coco and don&#39;t buffer for this, magnesium deficiency is basically guaranteed.</p>

<p><strong>Too much calcium supplementation.</strong> Ironic, right? Excess calcium blocks magnesium at root exchange sites. The fix for one deficiency can cause the other. This antagonistic relationship is why “just add CalMag” is sometimes exactly the wrong move.</p>

<p><strong>Low pH.</strong> Same as calcium – availability drops below pH 6.0.</p>

<p><strong>Intense LED lighting.</strong> LEDs drive more photosynthesis per watt than HPS, and magnesium is the central atom in every chlorophyll molecule. More light means more chlorophyll demand means more magnesium consumption. Growers who switch from HPS to LED at the same feed rate often see magnesium deficiency appear within two to three weeks. It&#39;s not the lights causing the problem – they&#39;re just exposing a margin that was previously fine.</p>

<hr/>

<h2 id="treatment" id="treatment">Treatment</h2>

<h3 id="fixing-calcium-deficiency" id="fixing-calcium-deficiency">Fixing Calcium Deficiency</h3>

<p><strong>Check pH first.</strong> If your root zone is below 6.0, no amount of calcium will help – it&#39;s locked out. Correct to 6.0-6.5 (soil) or 5.8-6.0 (hydro/coco) before you add anything.</p>

<p><strong>Use a calcium-specific supplement.</strong> Calcium nitrate provides calcium without adding magnesium. This matters when your magnesium levels are fine and you don&#39;t want to throw off the ratio.</p>

<p><strong>Dolomite lime for soil.</strong> Slow-release calcium and magnesium. Better as a preventive amendment mixed in at planting than as a mid-grow rescue.</p>

<p><strong>Look at competing cations.</strong> Running a heavy bloom feed with high potassium? The K might be the reason calcium can&#39;t get through. Temporarily dial it back.</p>

<p>New growth should improve within 5-7 days. The damaged leaves won&#39;t recover – don&#39;t wait for them to. Watch the new growth above the damage zone instead.</p>

<h3 id="fixing-magnesium-deficiency" id="fixing-magnesium-deficiency">Fixing Magnesium Deficiency</h3>

<p><strong>Check pH first.</strong> Same story – lockout before deficiency.</p>

<p><strong>Epsom salt.</strong> 1-2 teaspoons per gallon of water. Magnesium sulfate is the fastest targeted fix and it&#39;s cheap. Your plant doesn&#39;t care that it came from a $3 bag at the pharmacy.</p>

<p><strong>Foliar spray for speed.</strong> 1 teaspoon Epsom salt per litre of water, sprayed directly on affected leaves. Foliar absorption bypasses whatever root problem is blocking uptake. Useful as a quick fix while you sort out the root zone.</p>

<p><strong>Reduce calcium if you over-supplemented.</strong> If you&#39;ve been heavy on CalMag or calcium nitrate, the excess calcium may be the reason magnesium can&#39;t get through. Sometimes the treatment is subtraction, not addition.</p>

<p>Foliar spray shows results in 3-5 days. Root-zone correction takes 7-10 days. Same as calcium – old leaves won&#39;t recover, but the damage should stop spreading and new growth should come in clean.</p>

<hr/>

<h2 id="prevention" id="prevention">Prevention</h2>

<p><strong>Test your water.</strong> Know your baseline calcium and magnesium before adding anything. Tap water in many regions provides enough of both. If you&#39;re on tap water and getting deficiency symptoms, the problem is almost certainly pH or antagonism, not supply.</p>

<p><strong>Manage your pH.</strong> Root zone between 6.0-6.5 (soil) or 5.8-6.0 (hydro/coco). This single practice prevents more deficiencies than every supplement combined.</p>

<p><strong>Match your medium.</strong> Coco growers need more CalMag than soil growers. LED growers need more magnesium than HPS growers. Generic feeding charts are written for average conditions – adjust for your actual setup.</p>

<p><strong>Watch the ratio.</strong> Optimal Ca:Mg is 3:1 to 5:1. When this drifts – usually from over-supplementing one side – the other becomes deficient through antagonism, not absence. You can cause a deficiency by adding too much of the other nutrient. That&#39;s the cruel joke of cation chemistry.</p>

<hr/>

<h2 id="how-ai-detection-works" id="how-ai-detection-works">How AI Detection Works</h2>

<p>This confusion between calcium and magnesium is a pattern recognition problem at its core. The symptoms are visually distinct – brown spots versus interveinal yellowing, top versus bottom – but at 2 AM, staring at a phone photo of a leaf under a blurple light, those distinctions get fuzzy. The human answer to “CalMag or not?” has always been “post a photo and hope someone experienced is online.”</p>

<p>PlantLab&#39;s nutrient subclassifier was trained on exactly this confusion pair. When the primary model flags a nutrient issue, a specialist second-pass model distinguishes between seven specific deficiencies – including calcium and magnesium individually. That two-stage approach resolves 93% of the nutrient misclassifications a single model would make.</p>

<p>The subclassifier tested at 99.5% accuracy on 15,000+ held-out images. That number matters most on the hard cases: telling calcium from magnesium when the symptoms overlap and the photo quality isn&#39;t great.</p>

<p>One photo. A specific answer. Not “CalMag deficiency” – calcium <em>or</em> magnesium, with a confidence score attached.</p>

<p>Try it free at <a href="https://plantlab.ai">plantlab.ai</a> – three diagnoses per day, no credit card.</p>

<hr/>

<h2 id="faq" id="faq">FAQ</h2>

<h3 id="can-a-plant-have-both-calcium-and-magnesium-deficiency-at-the-same-time" id="can-a-plant-have-both-calcium-and-magnesium-deficiency-at-the-same-time">Can a plant have both calcium and magnesium deficiency at the same time?</h3>

<p>Yes, and it&#39;s common with RO water or unbuffered coco. You&#39;ll see interveinal yellowing on lower leaves (magnesium) and brown spots on upper leaves (calcium) at the same time. This is the one scenario where reaching for the CalMag bottle is genuinely the right call. Confirm with pH testing first – if pH is the root cause, a single correction may fix both.</p>

<h3 id="is-calmag-ever-the-right-answer" id="is-calmag-ever-the-right-answer">Is CalMag ever the right answer?</h3>

<p>For prevention, absolutely. As a baseline addition to RO water or coco grows, CalMag works well. The problem is using it as a diagnostic reflex – adding it before you&#39;ve figured out which nutrient is actually short. If only one is deficient, a targeted supplement avoids throwing off the ratio of the one that was fine.</p>

<h3 id="why-do-led-growers-see-more-magnesium-issues" id="why-do-led-growers-see-more-magnesium-issues">Why do LED growers see more magnesium issues?</h3>

<p>Magnesium is the central atom in chlorophyll. LEDs drive more photosynthesis per watt than HPS, which means more chlorophyll turnover, which means higher magnesium demand. Growers who switch to LEDs at the same feed rate they used under HPS often see magnesium deficiency show up within weeks. The plant was fine before because it wasn&#39;t photosynthesizing as hard.</p>

<h3 id="how-long-before-i-see-improvement-after-treatment" id="how-long-before-i-see-improvement-after-treatment">How long before I see improvement after treatment?</h3>

<p>Foliar magnesium spray: 3-5 days. Root-zone magnesium correction: 7-10 days. Calcium (new growth): 5-7 days. In every case, the old damaged leaves are done – they won&#39;t green back up. Watch the new growth above the damage.</p>

<h3 id="can-ph-lockout-cause-both-deficiencies-at-once" id="can-ph-lockout-cause-both-deficiencies-at-once">Can pH lockout cause both deficiencies at once?</h3>

<p>Yes. Both calcium and magnesium availability drops sharply below pH 6.0. A single pH correction can resolve what looks like a dual deficiency without adding any supplements at all. This is why “check pH first” appears in every treatment section above. It&#39;s boring advice, but it&#39;s boring because it works.</p>
]]></content:encoded>
      <guid>https://blog.plantlab.ai/calcium-vs-magnesium-deficiency-cannabis</guid>
      <pubDate>Tue, 07 Apr 2026 19:09:23 +0000</pubDate>
    </item>
    <item>
      <title>Powdery Mildew on Cannabis: Visual Detection and Prevention</title>
      <link>https://blog.plantlab.ai/powdery-mildew-cannabis?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Powdery mildew on cannabis leaf - white powdery patches spreading across upper leaf surface&#xA;&#xA;It looks like your plant is getting frosty. White powder spreading across the leaves, that pale shimmer catching the grow light. Then you touch it, and your finger comes away white.&#xA;&#xA;That&#39;s not trichome development. That&#39;s powdery mildew - and if you&#39;re seeing it now, the infection has been active inside your plant for up to two weeks already.&#xA;&#xA;!--more--&#xA;&#xA;Powdery mildew is one of the most misidentified conditions in cannabis cultivation - not because the advanced stage is hard to recognize, but because early-stage colonies genuinely look like trichome buildup to the untrained eye. Growers see white on their leaves and feel reassured rather than alarmed. By the time the mistake is obvious, the fungus has spread.&#xA;&#xA;This guide covers visual identification at every stage, how to distinguish PM from trichomes and other lookalikes, and what to do when you find it.&#xA;&#xA;---&#xA;&#xA;Quick Identification&#xA;&#xA;Powdery mildew on cannabis appears as white, flour-like patches on leaf surfaces that transfer to your finger when touched. Unlike trichomes - which are crystalline, sticky, and firmly attached - powdery mildew is fuzzy, powdery, and wipes off. It typically starts on older, lower leaves and can spread from a single infected plant to your entire grow within 5-10 days under favorable conditions.&#xA;&#xA;Quick checklist:&#xA;White powdery patches on leaf surfaces (usually upper side)&#xA;Fuzzy texture, not crystalline or glittery&#xA;Transfers to your finger when touched&#xA;Wipes off with cloth (trichomes stay attached)&#xA;Started on older, lower leaves&#xA;Circular colony patterns, expanding outward&#xA;&#xA;---&#xA;&#xA;Why Powdery Mildew Is So Destructive&#xA;&#xA;The Timing Problem&#xA;&#xA;Powdery mildew is caused by obligate biotrophic fungi - primarily Golovinomyces species (formerly classified as Erysiphe) - that require a living plant host to survive. As an obligate biotroph, the fungus spends its first 7-10 days growing inside plant tissue, establishing a mycelial network before producing the visible white sporulation on the surface.&#xA;&#xA;The practical implication: by the time you see powdery mildew, you&#39;re already two weeks behind.&#xA;&#xA;This timing overlaps with the worst possible moment in the grow cycle. PM typically produces visible symptoms approximately two weeks into flowering - when plants are at their most developed and most valuable. A disease that becomes visible at week two of a nine-week flower has seven weeks to damage a mature crop.&#xA;&#xA;The Spread Problem&#xA;&#xA;Once sporulating, powdery mildew spreads through airborne spores called conidia. Unlike many fungal diseases that require water droplets to spread, PM spores travel through air and remain viable in typical grow room conditions. A single infected plant can contaminate an entire facility within 5-10 days.&#xA;&#xA;This is not a slow disease. It spends two weeks being invisible, then spreads rapidly.&#xA;&#xA;---&#xA;&#xA;Visual Symptoms by Stage&#xA;&#xA;Days 1-7: No Visible Symptoms&#xA;&#xA;The fungal network is developing inside plant tissue. Nothing is visible externally. The only detection method during this phase is molecular PCR testing - available commercially but not practical for most growers as a daily routine.&#xA;&#xA;What to do: Prevention only. No reactive treatment exists for pre-symptomatic infection.&#xA;&#xA;Days 7-14: Early Visible Stage&#xA;&#xA;Early powdery mildew on cannabis - small white chalk-dust spots on older leaf&#xA;&#xA;What you see:&#xA;Fine white coating on upper leaf surface, often concentrated near veins&#xA;Circular &#34;chalk-dust rings&#34; as colonies grow radially from infection points&#xA;Small, discrete white spots (1-5mm diameter) resembling flour or powdered sugar&#xA;Patches separated by healthy-looking green tissue initially&#xA;&#xA;This is when intervention is most effective. Catching PM at this stage - and responding within 48 hours - gives you the best chance of containing the infection before airborne spread reaches other plants.&#xA;&#xA;Days 14+: Advanced Stage&#xA;&#xA;Advanced powdery mildew - merged colonies covering cannabis leaf with yellowing&#xA;&#xA;What you see:&#xA;Spots grow larger and merge into confluent white coverage&#xA;Thick, prominent coating across entire leaf surfaces&#xA;Fuzzy, hair-like texture that can resemble spider webs or white cotton candy in severe cases&#xA;Affected leaves turn yellow (chlorosis) as photosynthetic capacity is reduced&#xA;Leaf death and necrosis in severely affected tissue&#xA;Contamination of flower bracts and bud sites&#xA;&#xA;At this stage, individual plant treatment may still limit damage, but facility-wide spread is likely already underway.&#xA;&#xA;---&#xA;&#xA;Where to Look: Detection Hotspots&#xA;&#xA;Not all areas are equally at risk. Focus visual inspections here:&#xA;&#xA;Check first:&#xA;Upper surfaces of older, lower leaves&#xA;Corners with poor airflow&#xA;Areas where leaves touch each other&#xA;Near the base of the plant&#xA;&#xA;Check second:&#xA;Lower leaf surfaces&#xA;Leaf petioles and stems&#xA;Flower bracts and bud sites&#xA;Plants adjacent to any previously infected individual&#xA;&#xA;High-risk conditions:&#xA;Humidity above 60% (optimal for PM at 95%+)&#xA;Temperature 68-86°F (20-30°C)&#xA;Poor air circulation or stagnant air pockets&#xA;Overcrowded plants with leaf-on-leaf contact&#xA;Recently introduced plant material (a common entry point)&#xA;&#xA;One counterintuitive note: many growers assume low humidity prevents powdery mildew. It slows initial infection, but once PM is established, the fungus can continue growing even below 50% relative humidity. Humidity reduction is a preventive tool, not a cure.&#xA;&#xA;---&#xA;&#xA;Powdery Mildew vs. Trichomes: The Critical Distinction&#xA;&#xA;This comparison matters because the error goes in both directions - growers see PM and think &#34;good frost,&#34; and they sometimes see heavy trichome coverage and worry it&#39;s disease.&#xA;&#xA;| Feature | Powdery Mildew | Trichomes |&#xA;|---------|----------------|-----------|&#xA;| Texture | Fuzzy, powdery, matte | Crystalline, glittery |&#xA;| Color | White to gray (can look dirty) | Translucent to milky white |&#xA;| Touch test | Transfers to finger, feels dusty | Sticky, doesn&#39;t transfer |&#xA;| Wipe test | Wipes off as powder | Firmly attached |&#xA;| Shape | Irregular patches with fuzzy edges | Distinct mushroom stalks (under magnification) |&#xA;| Location | Any leaf surface, starts on older lower leaves | Concentrated on flowers and sugar leaves |&#xA;| Distribution | Random colonies expanding outward | Uniform coating across surface |&#xA;| Smell | Musty in advanced infection | Resinous, aromatic |&#xA;&#xA;Side by side comparison: powdery mildew vs. trichomes on cannabis&#xA;&#xA;Three Tests to Confirm&#xA;&#xA;Touch test. Lightly rub the white area with your finger. PM transfers as a dusty powder. Trichomes are sticky and stay on the plant.&#xA;&#xA;Wipe test. Try to wipe the coating with a cloth. PM wipes off cleanly. Trichomes remain attached.&#xA;&#xA;Magnification (10x loupe). Under magnification, trichomes show distinct mushroom-shaped heads on uniform stalks. PM looks like fuzzy, irregular filaments with no consistent structure.&#xA;&#xA;If you&#39;re unsure after all three tests, assume it&#39;s PM and treat accordingly. The cost of a false positive - treating a healthy plant - is much lower than the cost of a false negative.&#xA;&#xA;---&#xA;&#xA;Distinguishing From Other Conditions&#xA;&#xA;Powdery Mildew vs. Bud Rot (Botrytis)&#xA;&#xA;Both can appear during flowering, but they start in different places and look different up close.&#xA;&#xA;PM: Starts on leaf surfaces as white powder, spreads outward&#xA;Bud rot: Starts inside dense bud tissue as gray-brown mold, spreads inward&#xA;PM: Dry, wipes off as powder&#xA;Bud rot: Slimy, penetrates tissue, leaves mushy gray-brown areas when probed&#xA;&#xA;Powdery Mildew vs. Spider Mite Webbing&#xA;&#xA;Heavy spider mite webbing can be confused with PM in advanced stages.&#xA;&#xA;PM: Powdery coating directly on leaf surfaces, no web structure&#xA;Webbing: Actual filamentous strands connecting leaves and stems, visible as a network with tiny mites present&#xA;PM: Surface phenomenon on the leaf&#xA;Webbing: Spans between plant structures&#xA;&#xA;Powdery Mildew vs. Fertilizer Residue&#xA;&#xA;Spray residue and fertilizer salt deposits are a common false positive.&#xA;&#xA;PM: Fuzzy texture, grows and expands over days&#xA;Residue: Crystalline, stays fixed, doesn&#39;t spread&#xA;PM: Circular colonies from infection points&#xA;Residue: Irregular splatter pattern matching where spray landed&#xA;&#xA;---&#xA;&#xA;Treatment and Prevention&#xA;&#xA;If You&#39;ve Found It: Immediate Steps&#xA;&#xA;Isolate the infected plant. Remove it from the grow space carefully - don&#39;t shake the leaves, which disperses spores.&#xA;Remove heavily infected leaves. Seal them in a bag before removal. Dispose of, don&#39;t compost.&#xA;Increase airflow immediately. Run oscillating fans, check that exhaust is adequate.&#xA;Apply treatment to the infected plant and all immediate neighbors:&#xA;   Potassium bicarbonate spray (effective at any stage, flower-safe)&#xA;   Copper-based fungicides (veg stage only)&#xA;   Neem oil (veg stage only - off-gasses problematically in flower)&#xA;   Commercial PM treatments labeled as flower-safe for late-stage infections&#xA;&#xA;Inspect every other plant in the grow. Assume airborne spread has already occurred. Look for early colonies on older lower leaves of adjacent plants.&#xA;&#xA;Prevention&#xA;&#xA;Environmental control (most effective):&#xA;Maintain humidity below 60%, below 45% in late flower&#xA;Install oscillating fans for continuous air movement&#xA;Prevent leaf-on-leaf contact through spacing and selective defoliation&#xA;Maintain stable temperature - fluctuations create favorable infection windows&#xA;Consider HEPA filtration between grow cycles to reduce ambient spore load&#xA;&#xA;Cultural practices:&#xA;Inspect plants daily, particularly lower leaves and poor-airflow corners&#xA;Quarantine any new plant material for at least two weeks before introducing to your grow&#xA;Sterilize tools between plants&#xA;Remove dead leaves promptly - they create moisture pockets&#xA;&#xA;Preventive treatments (before symptoms appear):&#xA;UV-C light treatment between grow cycles kills residual spores&#xA;Preventive potassium bicarbonate or copper sprays provide significantly better protection than reactive treatment after symptoms appear&#xA;IPM programs that address PM as a standing preventive protocol, not a reactive one&#xA;&#xA;---&#xA;&#xA;How AI Detection Works&#xA;&#xA;Powdery mildew is fundamentally a texture classification problem - distinguishing the powdery, irregular surface of PM colonies from the crystalline structure of trichomes and the smooth surface of healthy leaf tissue.&#xA;&#xA;PlantLab&#39;s model analyzes:&#xA;&#xA;Color contrast: White patches against green leaf tissue create a high-contrast signal the model identifies reliably&#xA;Texture signature: PM colonies have a granular, matte surface texture measurably distinct from trichomes (crystalline) and healthy leaf (smooth with natural sheen)&#xA;Colony geometry: PM grows in circular patterns from infection points with fuzzy, irregular edges - different from the uniform distribution of trichome coverage&#xA;Location context: Where on the plant the pattern appears matters; PM preferentially affects older, lower leaves in early infection&#xA;&#xA;Early-stage detection - colonies as small as 5mm - catches infection when treatment options are broadest. Automated daily scanning catches what manual inspection misses when you&#39;re managing more than a few plants.&#xA;&#xA;Try it free at plantlab.ai - 3 diagnoses per day, no credit card required.&#xA;&#xA;---&#xA;&#xA;FAQ&#xA;&#xA;Can I smoke buds with powdery mildew?&#xA;No. PM spores and fungal material can cause respiratory issues, particularly for anyone with lung conditions or compromised immunity. Infected flower should be disposed of, not consumed.&#xA;&#xA;Does powdery mildew spread to other plants?&#xA;Yes, rapidly. Airborne spores can reach every plant in a contained grow space within 5-10 days under favorable conditions. Isolate infected plants immediately and inspect everything nearby.&#xA;&#xA;Can plants recover from powdery mildew?&#xA;Mildly infected plants can survive and produce with aggressive treatment, but affected tissue doesn&#39;t recover. The goal is to stop the spread. Heavily infected plants in late flowering are usually a loss.&#xA;&#xA;Does lowering humidity kill powdery mildew?&#xA;It inhibits new infection but doesn&#39;t eliminate established colonies. PM can remain active even below 50% relative humidity once established. Humidity reduction is a prevention tool, not a cure for active infection.&#xA;&#xA;When is powdery mildew most likely to appear?&#xA;Typically around two weeks into flowering, when dense bud sites create microclimates with trapped humidity and reduced airflow. It can appear at any life stage given favorable conditions, but flowering onset is the highest-risk window.&#xA;&#xA;---&#xA;&#xA;PlantLab&#39;s AI detects 31 cannabis conditions - including powdery mildew, bud rot, and 7 specific nutrient deficiencies. Start diagnosing free at plantlab.ai.&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="../img/powdery-mildew-header.png" alt="Powdery mildew on cannabis leaf - white powdery patches spreading across upper leaf surface"/></p>

<p>It looks like your plant is getting frosty. White powder spreading across the leaves, that pale shimmer catching the grow light. Then you touch it, and your finger comes away white.</p>

<p>That&#39;s not trichome development. That&#39;s powdery mildew – and if you&#39;re seeing it now, the infection has been active inside your plant for up to two weeks already.</p>



<p>Powdery mildew is one of the most misidentified conditions in cannabis cultivation – not because the advanced stage is hard to recognize, but because early-stage colonies genuinely look like trichome buildup to the untrained eye. Growers see white on their leaves and feel reassured rather than alarmed. By the time the mistake is obvious, the fungus has spread.</p>

<p>This guide covers visual identification at every stage, how to distinguish PM from trichomes and other lookalikes, and what to do when you find it.</p>

<hr/>

<h2 id="quick-identification" id="quick-identification">Quick Identification</h2>

<p>Powdery mildew on cannabis appears as white, flour-like patches on leaf surfaces that transfer to your finger when touched. Unlike trichomes – which are crystalline, sticky, and firmly attached – powdery mildew is fuzzy, powdery, and wipes off. It typically starts on older, lower leaves and can spread from a single infected plant to your entire grow within 5-10 days under favorable conditions.</p>

<p><strong>Quick checklist:</strong>
– White powdery patches on leaf surfaces (usually upper side)
– Fuzzy texture, not crystalline or glittery
– Transfers to your finger when touched
– Wipes off with cloth (trichomes stay attached)
– Started on older, lower leaves
– Circular colony patterns, expanding outward</p>

<hr/>

<h2 id="why-powdery-mildew-is-so-destructive" id="why-powdery-mildew-is-so-destructive">Why Powdery Mildew Is So Destructive</h2>

<h3 id="the-timing-problem" id="the-timing-problem">The Timing Problem</h3>

<p>Powdery mildew is caused by obligate biotrophic fungi – primarily <em>Golovinomyces</em> species (formerly classified as <em>Erysiphe</em>) – that require a living plant host to survive. As an obligate biotroph, the fungus spends its first 7-10 days growing inside plant tissue, establishing a mycelial network before producing the visible white sporulation on the surface.</p>

<p>The practical implication: <strong>by the time you see powdery mildew, you&#39;re already two weeks behind.</strong></p>

<p>This timing overlaps with the worst possible moment in the grow cycle. PM typically produces visible symptoms approximately two weeks into flowering – when plants are at their most developed and most valuable. A disease that becomes visible at week two of a nine-week flower has seven weeks to damage a mature crop.</p>

<h3 id="the-spread-problem" id="the-spread-problem">The Spread Problem</h3>

<p>Once sporulating, powdery mildew spreads through airborne spores called conidia. Unlike many fungal diseases that require water droplets to spread, PM spores travel through air and remain viable in typical grow room conditions. A single infected plant can contaminate an entire facility within 5-10 days.</p>

<p>This is not a slow disease. It spends two weeks being invisible, then spreads rapidly.</p>

<hr/>

<h2 id="visual-symptoms-by-stage" id="visual-symptoms-by-stage">Visual Symptoms by Stage</h2>

<h3 id="days-1-7-no-visible-symptoms" id="days-1-7-no-visible-symptoms">Days 1-7: No Visible Symptoms</h3>

<p>The fungal network is developing inside plant tissue. Nothing is visible externally. The only detection method during this phase is molecular PCR testing – available commercially but not practical for most growers as a daily routine.</p>

<p><strong>What to do:</strong> Prevention only. No reactive treatment exists for pre-symptomatic infection.</p>

<h3 id="days-7-14-early-visible-stage" id="days-7-14-early-visible-stage">Days 7-14: Early Visible Stage</h3>

<p><img src="../img/powdery-mildew-early.png" alt="Early powdery mildew on cannabis - small white chalk-dust spots on older leaf"/></p>

<p><strong>What you see:</strong>
– Fine white coating on upper leaf surface, often concentrated near veins
– Circular “chalk-dust rings” as colonies grow radially from infection points
– Small, discrete white spots (1-5mm diameter) resembling flour or powdered sugar
– Patches separated by healthy-looking green tissue initially</p>

<p>This is when intervention is most effective. Catching PM at this stage – and responding within 48 hours – gives you the best chance of containing the infection before airborne spread reaches other plants.</p>

<h3 id="days-14-advanced-stage" id="days-14-advanced-stage">Days 14+: Advanced Stage</h3>

<p><img src="../img/powdery-mildew-advanced.png" alt="Advanced powdery mildew - merged colonies covering cannabis leaf with yellowing"/></p>

<p><strong>What you see:</strong>
– Spots grow larger and merge into confluent white coverage
– Thick, prominent coating across entire leaf surfaces
– Fuzzy, hair-like texture that can resemble spider webs or white cotton candy in severe cases
– Affected leaves turn yellow (chlorosis) as photosynthetic capacity is reduced
– Leaf death and necrosis in severely affected tissue
– Contamination of flower bracts and bud sites</p>

<p>At this stage, individual plant treatment may still limit damage, but facility-wide spread is likely already underway.</p>

<hr/>

<h2 id="where-to-look-detection-hotspots" id="where-to-look-detection-hotspots">Where to Look: Detection Hotspots</h2>

<p>Not all areas are equally at risk. Focus visual inspections here:</p>

<p><strong>Check first:</strong>
– Upper surfaces of older, lower leaves
– Corners with poor airflow
– Areas where leaves touch each other
– Near the base of the plant</p>

<p><strong>Check second:</strong>
– Lower leaf surfaces
– Leaf petioles and stems
– Flower bracts and bud sites
– Plants adjacent to any previously infected individual</p>

<p><strong>High-risk conditions:</strong>
– Humidity above 60% (optimal for PM at 95%+)
– Temperature 68-86°F (20-30°C)
– Poor air circulation or stagnant air pockets
– Overcrowded plants with leaf-on-leaf contact
– Recently introduced plant material (a common entry point)</p>

<p>One counterintuitive note: many growers assume low humidity prevents powdery mildew. It slows initial infection, but once PM is established, the fungus can continue growing even below 50% relative humidity. Humidity reduction is a preventive tool, not a cure.</p>

<hr/>

<h2 id="powdery-mildew-vs-trichomes-the-critical-distinction" id="powdery-mildew-vs-trichomes-the-critical-distinction">Powdery Mildew vs. Trichomes: The Critical Distinction</h2>

<p>This comparison matters because the error goes in both directions – growers see PM and think “good frost,” and they sometimes see heavy trichome coverage and worry it&#39;s disease.</p>

<table>
<thead>
<tr>
<th>Feature</th>
<th>Powdery Mildew</th>
<th>Trichomes</th>
</tr>
</thead>

<tbody>
<tr>
<td>Texture</td>
<td>Fuzzy, powdery, matte</td>
<td>Crystalline, glittery</td>
</tr>

<tr>
<td>Color</td>
<td>White to gray (can look dirty)</td>
<td>Translucent to milky white</td>
</tr>

<tr>
<td>Touch test</td>
<td>Transfers to finger, feels dusty</td>
<td>Sticky, doesn&#39;t transfer</td>
</tr>

<tr>
<td>Wipe test</td>
<td>Wipes off as powder</td>
<td>Firmly attached</td>
</tr>

<tr>
<td>Shape</td>
<td>Irregular patches with fuzzy edges</td>
<td>Distinct mushroom stalks (under magnification)</td>
</tr>

<tr>
<td>Location</td>
<td>Any leaf surface, starts on older lower leaves</td>
<td>Concentrated on flowers and sugar leaves</td>
</tr>

<tr>
<td>Distribution</td>
<td>Random colonies expanding outward</td>
<td>Uniform coating across surface</td>
</tr>

<tr>
<td>Smell</td>
<td>Musty in advanced infection</td>
<td>Resinous, aromatic</td>
</tr>
</tbody>
</table>

<p><img src="../img/pm-vs-trichomes-comparison.png" alt="Side by side comparison: powdery mildew vs. trichomes on cannabis"/></p>

<h3 id="three-tests-to-confirm" id="three-tests-to-confirm">Three Tests to Confirm</h3>

<p><strong>Touch test.</strong> Lightly rub the white area with your finger. PM transfers as a dusty powder. Trichomes are sticky and stay on the plant.</p>

<p><strong>Wipe test.</strong> Try to wipe the coating with a cloth. PM wipes off cleanly. Trichomes remain attached.</p>

<p><strong>Magnification (10x loupe).</strong> Under magnification, trichomes show distinct mushroom-shaped heads on uniform stalks. PM looks like fuzzy, irregular filaments with no consistent structure.</p>

<p>If you&#39;re unsure after all three tests, assume it&#39;s PM and treat accordingly. The cost of a false positive – treating a healthy plant – is much lower than the cost of a false negative.</p>

<hr/>

<h2 id="distinguishing-from-other-conditions" id="distinguishing-from-other-conditions">Distinguishing From Other Conditions</h2>

<h3 id="powdery-mildew-vs-bud-rot-botrytis" id="powdery-mildew-vs-bud-rot-botrytis">Powdery Mildew vs. Bud Rot (Botrytis)</h3>

<p>Both can appear during flowering, but they start in different places and look different up close.</p>
<ul><li><strong>PM:</strong> Starts on leaf surfaces as white powder, spreads outward</li>
<li><strong>Bud rot:</strong> Starts inside dense bud tissue as gray-brown mold, spreads inward</li>
<li><strong>PM:</strong> Dry, wipes off as powder</li>
<li><strong>Bud rot:</strong> Slimy, penetrates tissue, leaves mushy gray-brown areas when probed</li></ul>

<h3 id="powdery-mildew-vs-spider-mite-webbing" id="powdery-mildew-vs-spider-mite-webbing">Powdery Mildew vs. Spider Mite Webbing</h3>

<p>Heavy spider mite webbing can be confused with PM in advanced stages.</p>
<ul><li><strong>PM:</strong> Powdery coating directly on leaf surfaces, no web structure</li>
<li><strong>Webbing:</strong> Actual filamentous strands connecting leaves and stems, visible as a network with tiny mites present</li>
<li><strong>PM:</strong> Surface phenomenon on the leaf</li>
<li><strong>Webbing:</strong> Spans between plant structures</li></ul>

<h3 id="powdery-mildew-vs-fertilizer-residue" id="powdery-mildew-vs-fertilizer-residue">Powdery Mildew vs. Fertilizer Residue</h3>

<p>Spray residue and fertilizer salt deposits are a common false positive.</p>
<ul><li><strong>PM:</strong> Fuzzy texture, grows and expands over days</li>
<li><strong>Residue:</strong> Crystalline, stays fixed, doesn&#39;t spread</li>
<li><strong>PM:</strong> Circular colonies from infection points</li>
<li><strong>Residue:</strong> Irregular splatter pattern matching where spray landed</li></ul>

<hr/>

<h2 id="treatment-and-prevention" id="treatment-and-prevention">Treatment and Prevention</h2>

<h3 id="if-you-ve-found-it-immediate-steps" id="if-you-ve-found-it-immediate-steps">If You&#39;ve Found It: Immediate Steps</h3>
<ol><li><strong>Isolate the infected plant.</strong> Remove it from the grow space carefully – don&#39;t shake the leaves, which disperses spores.</li>
<li><strong>Remove heavily infected leaves.</strong> Seal them in a bag before removal. Dispose of, don&#39;t compost.</li>
<li><strong>Increase airflow immediately.</strong> Run oscillating fans, check that exhaust is adequate.</li>

<li><p><strong>Apply treatment to the infected plant and all immediate neighbors:</strong></p>
<ul><li>Potassium bicarbonate spray (effective at any stage, flower-safe)</li>
<li>Copper-based fungicides (veg stage only)</li>
<li>Neem oil (veg stage only – off-gasses problematically in flower)</li>
<li>Commercial PM treatments labeled as flower-safe for late-stage infections</li></ul></li>

<li><p><strong>Inspect every other plant in the grow.</strong> Assume airborne spread has already occurred. Look for early colonies on older lower leaves of adjacent plants.</p></li></ol>

<h3 id="prevention" id="prevention">Prevention</h3>

<p><strong>Environmental control (most effective):</strong>
– Maintain humidity below 60%, below 45% in late flower
– Install oscillating fans for continuous air movement
– Prevent leaf-on-leaf contact through spacing and selective defoliation
– Maintain stable temperature – fluctuations create favorable infection windows
– Consider HEPA filtration between grow cycles to reduce ambient spore load</p>

<p><strong>Cultural practices:</strong>
– Inspect plants daily, particularly lower leaves and poor-airflow corners
– Quarantine any new plant material for at least two weeks before introducing to your grow
– Sterilize tools between plants
– Remove dead leaves promptly – they create moisture pockets</p>

<p><strong>Preventive treatments (before symptoms appear):</strong>
– UV-C light treatment between grow cycles kills residual spores
– Preventive potassium bicarbonate or copper sprays provide significantly better protection than reactive treatment after symptoms appear
– IPM programs that address PM as a standing preventive protocol, not a reactive one</p>

<hr/>

<h2 id="how-ai-detection-works" id="how-ai-detection-works">How AI Detection Works</h2>

<p>Powdery mildew is fundamentally a texture classification problem – distinguishing the powdery, irregular surface of PM colonies from the crystalline structure of trichomes and the smooth surface of healthy leaf tissue.</p>

<p>PlantLab&#39;s model analyzes:</p>
<ul><li><strong>Color contrast:</strong> White patches against green leaf tissue create a high-contrast signal the model identifies reliably</li>
<li><strong>Texture signature:</strong> PM colonies have a granular, matte surface texture measurably distinct from trichomes (crystalline) and healthy leaf (smooth with natural sheen)</li>
<li><strong>Colony geometry:</strong> PM grows in circular patterns from infection points with fuzzy, irregular edges – different from the uniform distribution of trichome coverage</li>
<li><strong>Location context:</strong> Where on the plant the pattern appears matters; PM preferentially affects older, lower leaves in early infection</li></ul>

<p>Early-stage detection – colonies as small as 5mm – catches infection when treatment options are broadest. Automated daily scanning catches what manual inspection misses when you&#39;re managing more than a few plants.</p>

<p>Try it free at <a href="https://plantlab.ai">plantlab.ai</a> – 3 diagnoses per day, no credit card required.</p>

<hr/>

<h2 id="faq" id="faq">FAQ</h2>

<p><strong>Can I smoke buds with powdery mildew?</strong>
No. PM spores and fungal material can cause respiratory issues, particularly for anyone with lung conditions or compromised immunity. Infected flower should be disposed of, not consumed.</p>

<p><strong>Does powdery mildew spread to other plants?</strong>
Yes, rapidly. Airborne spores can reach every plant in a contained grow space within 5-10 days under favorable conditions. Isolate infected plants immediately and inspect everything nearby.</p>

<p><strong>Can plants recover from powdery mildew?</strong>
Mildly infected plants can survive and produce with aggressive treatment, but affected tissue doesn&#39;t recover. The goal is to stop the spread. Heavily infected plants in late flowering are usually a loss.</p>

<p><strong>Does lowering humidity kill powdery mildew?</strong>
It inhibits new infection but doesn&#39;t eliminate established colonies. PM can remain active even below 50% relative humidity once established. Humidity reduction is a prevention tool, not a cure for active infection.</p>

<p><strong>When is powdery mildew most likely to appear?</strong>
Typically around two weeks into flowering, when dense bud sites create microclimates with trapped humidity and reduced airflow. It can appear at any life stage given favorable conditions, but flowering onset is the highest-risk window.</p>

<hr/>

<p><em>PlantLab&#39;s AI detects 31 cannabis conditions – including powdery mildew, bud rot, and 7 specific nutrient deficiencies. <a href="https://plantlab.ai">Start diagnosing free at plantlab.ai</a>.</em></p>
]]></content:encoded>
      <guid>https://blog.plantlab.ai/powdery-mildew-cannabis</guid>
      <pubDate>Fri, 27 Mar 2026 12:23:58 +0000</pubDate>
    </item>
    <item>
      <title>Yellow Leaves, Seven Suspects: How PlantLab Got Specific About Nutrient Deficiencies</title>
      <link>https://blog.plantlab.ai/yellow-leaves-seven-suspects-how-plantlab-got-specific-about-nutrient?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[The Short Version&#xA;&#xA;PlantLab now runs a specialist model after detecting any nutrient issue. Instead of &#34;nutrient deficiency,&#34; the API returns &#34;potassium deficiency&#34; or &#34;magnesium deficiency&#34; or whichever of the seven it actually is. Tested and validated at 99.5% accuracy on 14,182 real-world images it has not seen before. Same API, same JSON shape - no changes required on your end.&#xA;&#xA;!--more--&#xA;&#xA;---&#xA;&#xA;The Problem With &#34;Nutrient Deficiency&#34;&#xA;&#xA;Ask any experienced grower what&#39;s wrong with a yellow cannabis leaf and you&#39;ll get a look that says: it depends.&#xA;&#xA;Yellow leaf edges? Could be potassium deficiency. Or magnesium deficiency. Or potassium deficiency causing secondary magnesium lockout. Or nitrogen toxicity making an unexpected debut as interveinal chlorosis. Or pH off by half a point, causing any of the above at once.&#xA;&#xA;The standard advice at this point is: &#34;Add CalMag and see what happens.&#34; Sometimes that&#39;s right. Sometimes it makes things worse. Sometimes it&#39;s right for the wrong reasons.&#xA;&#xA;PlantLab&#39;s Stage 2 model was already good at detecting that a nutrient problem was present - 99%+ accuracy across all 31 conditions. But &#34;nutrient deficiency&#34; as a diagnosis is only half the answer. Potassium deficiency and magnesium deficiency are treated differently. Nitrogen deficiency and nitrogen toxicity are treated opposite to each other. The generic classification was accurate. It just wasn&#39;t useful enough.&#xA;&#xA;---&#xA;&#xA;What the Subclassifier Does&#xA;&#xA;The new nutrient subclassifier is a second-pass specialist that runs only when Stage 2 detects a nutrient condition. Its job is narrow: take the image that triggered a nutrient flag and determine which specific nutrient is responsible.&#xA;&#xA;It was trained on 200,000 images, selected specifically to represent the hard cases - the pairs of conditions that look the most alike under the camera. Not a bigger version of Stage 2. A focused model with a focused problem.&#xA;&#xA;---&#xA;&#xA;The Seven Classes&#xA;&#xA;The subclassifier currently handles:&#xA;&#xA;| | |&#xA;|:---:|:---:|&#xA;| Calcium Deficiency | Iron Deficiency |&#xA;| Calcium deficiency — upper leaf distortion, brown spots with yellow halos, new growth first | Iron deficiency — interveinal chlorosis on young leaves; veins stay green while tissue yellows |&#xA;| Magnesium Deficiency | Nitrogen Deficiency |&#xA;| Magnesium deficiency — interveinal chlorosis on older leaves; mobile nutrient, progresses bottom-up | Nitrogen deficiency — uniform pale yellowing from lower leaves upward; oldest growth first |&#xA;| Nitrogen Toxicity | Phosphorus Deficiency |&#xA;| Nitrogen toxicity — dark blue-green, claw-shaped tips curling down; not a deficiency, the opposite | Phosphorus deficiency — purple-red discoloration on undersides and stems, common in cold or early veg |&#xA;| Potassium Deficiency | |&#xA;| Potassium deficiency — brown, crispy scorched edges at leaf margins; progresses inward | |&#xA;&#xA;These are the seven classes that generated the most diagnostic confusion in Stage 2. They share enough visual features that a generalist model regularly gets them wrong - not randomly, but in consistent patterns.&#xA;&#xA;---&#xA;&#xA;The Confusion Pairs&#xA;&#xA;The specific pairs that Stage 2 was systematically mixing up:&#xA;&#xA;K ↔ Mg - Both show yellowing that progresses from lower leaves, affecting older growth. Leaf margins vs. interveinal chlorosis is the tell, but early presentations overlap.&#xA;&#xA;K ↔ N - Potassium deficiency causing tip burn and nitrogen deficiency causing general yellowing both start at the bottom of the plant.&#xA;&#xA;Mg ↔ N - Both are mobile nutrients that deplete oldest tissue first. The yellowing progression is similar; the pattern of which tissue goes first is what separates them.&#xA;&#xA;Mg ↔ Fe - Interveinal chlorosis is the signature symptom of both. The difference is which leaves are affected (new growth for iron, old growth for magnesium), but this requires accurate growth stage context.&#xA;&#xA;N deficiency ↔ N toxicity - One is too little, one is too much. The visual signatures are distinct to an experienced grower but genuinely confusing for a model trained to see both ends of the spectrum.&#xA;&#xA;These aren&#39;t edge cases. They&#39;re the day-to-day diagnostic mistakes that cause growers to add CalMag to a potassium deficiency, or flush a nitrogen toxicity that needed nothing but time.&#xA;&#xA;---&#xA;&#xA;Validation&#xA;&#xA;The model was validated on 14,182 real-world nutrient images - photos from actual grows, not controlled test conditions. And these are new-to-the-model photos - it has not seen them before.&#xA;&#xA;Balanced accuracy: 99.5%&#xA;Per-class F1: All seven classes above 99.8%&#xA;Cross-nutrient confusions: Reduced to 0.058%&#xA;&#xA;For comparison, Stage 2 alone on those same 14,182 images had a 93% higher cross-nutrient error rate. The subclassifier resolves 93% of Stage 2&#39;s nutrient misclassifications.&#xA;&#xA;---&#xA;&#xA;What Changes in the API&#xA;&#xA;Nothing in the request or response shape changes. Stage 2 already returns specific nutrient names -- potassiumdeficiency, magnesiumdeficiency, and so on. What changes is how often those names are correct.&#xA;&#xA;The subclassifier runs as a second pass after Stage 2 flags a nutrient condition. If it disagrees with Stage 2&#39;s classification, it overrides it. Same field, more accurate value.&#xA;&#xA;To make this concrete: a plant with potassium deficiency might have previously come back as:&#xA;&#xA;{&#xA;  &#34;conditions&#34;: [&#xA;    {&#xA;      &#34;condition&#34;: &#34;magnesiumdeficiency&#34;,&#xA;      &#34;confidence&#34;: 0.78,&#xA;      &#34;severity&#34;: &#34;moderate&#34;&#xA;    }&#xA;  ]&#xA;}&#xA;&#xA;With the subclassifier in the pipeline, that same image now returns:&#xA;&#xA;{&#xA;  &#34;conditions&#34;: [&#xA;    {&#xA;      &#34;condition&#34;: &#34;potassiumdeficiency&#34;,&#xA;      &#34;confidence&#34;: 0.97,&#xA;      &#34;severity&#34;: &#34;moderate&#34;&#xA;    }&#xA;  ]&#xA;}&#xA;&#xA;No schema changes required. If your automation is already acting on nutrient condition names, it will automatically benefit from the correction.&#xA;&#xA;---&#xA;&#xA;What&#39;s Not in It Yet&#xA;&#xA;Three nutrient conditions remain handled by Stage 2 only: zinc deficiency, manganese deficiency, and boron deficiency. The reason is simple - not enough quality training data to build a reliable specialist for these yet. Including them with insufficient data would reduce the accuracy of the classes that are in the model.&#xA;&#xA;These will be added when the training data exists to support them.&#xA;&#xA;---&#xA;&#xA;What&#39;s Next&#xA;&#xA;The nutrient subclassifier is the first piece of the reasoning layer - a set of specialist models that run after Stage 2 to provide higher-resolution diagnoses on the conditions that benefit most from it.&#xA;&#xA;The broader vision: a pipeline that doesn&#39;t just tell you what&#39;s wrong, but narrows it down to the point where the corrective action is unambiguous. Potassium deficiency doesn&#39;t leave you wondering whether to add CalMag or check your VPD. It tells you what to add and how much - if the context supports it.&#xA;&#xA;More on that as it ships.&#xA;&#xA;---&#xA;&#xA;PlantLab is free to try at plantlab.ai. API documentation is available for growers building automation.&#xA;&#xA;---&#xA;&#xA;Related reading:&#xA;Nitrogen Deficiency in Cannabis: A Visual Guide - Detailed identification and treatment for the most common nutrient deficiency&#xA;How PlantLab&#39;s AI Diagnoses 31 Cannabis Plant Problems in 18 Milliseconds - The full 4-stage pipeline&#xA;Why I Built PlantLab - The origin story&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<h2 id="the-short-version" id="the-short-version">The Short Version</h2>

<p>PlantLab now runs a specialist model after detecting any nutrient issue. Instead of “nutrient deficiency,” the API returns “potassium deficiency” or “magnesium deficiency” or whichever of the seven it actually is. Tested and validated at 99.5% accuracy on 14,182 real-world images it has not seen before. Same API, same JSON shape – no changes required on your end.</p>



<hr/>

<h2 id="the-problem-with-nutrient-deficiency" id="the-problem-with-nutrient-deficiency">The Problem With “Nutrient Deficiency”</h2>

<p>Ask any experienced grower what&#39;s wrong with a yellow cannabis leaf and you&#39;ll get a look that says: <em>it depends</em>.</p>

<p>Yellow leaf edges? Could be potassium deficiency. Or magnesium deficiency. Or potassium deficiency causing secondary magnesium lockout. Or nitrogen toxicity making an unexpected debut as interveinal chlorosis. Or pH off by half a point, causing any of the above at once.</p>

<p>The standard advice at this point is: “Add CalMag and see what happens.” Sometimes that&#39;s right. Sometimes it makes things worse. Sometimes it&#39;s right for the wrong reasons.</p>

<p>PlantLab&#39;s Stage 2 model was already good at detecting that a nutrient problem was present – 99%+ accuracy across all 31 conditions. But “nutrient deficiency” as a diagnosis is only half the answer. Potassium deficiency and magnesium deficiency are treated differently. Nitrogen deficiency and nitrogen toxicity are treated opposite to each other. The generic classification was accurate. It just wasn&#39;t useful enough.</p>

<hr/>

<h2 id="what-the-subclassifier-does" id="what-the-subclassifier-does">What the Subclassifier Does</h2>

<p>The new nutrient subclassifier is a second-pass specialist that runs only when Stage 2 detects a nutrient condition. Its job is narrow: take the image that triggered a nutrient flag and determine which specific nutrient is responsible.</p>

<p>It was trained on 200,000 images, selected specifically to represent the hard cases – the pairs of conditions that look the most alike under the camera. Not a bigger version of Stage 2. A focused model with a focused problem.</p>

<hr/>

<h2 id="the-seven-classes" id="the-seven-classes">The Seven Classes</h2>

<p>The subclassifier currently handles:</p>

<table>
<thead>
<tr>
<th align="center"></th>
<th align="center"></th>
</tr>
</thead>

<tbody>
<tr>
<td align="center"><img src="img/calcium-deficiency.png" alt="Calcium Deficiency"/></td>
<td align="center"><img src="img/iron-deficiency.png" alt="Iron Deficiency"/></td>
</tr>

<tr>
<td align="center"><strong>Calcium deficiency</strong> — upper leaf distortion, brown spots with yellow halos, new growth first</td>
<td align="center"><strong>Iron deficiency</strong> — interveinal chlorosis on young leaves; veins stay green while tissue yellows</td>
</tr>

<tr>
<td align="center"><img src="img/magnesium-deficiency.png" alt="Magnesium Deficiency"/></td>
<td align="center"><img src="img/nitrogen-deficiency.png" alt="Nitrogen Deficiency"/></td>
</tr>

<tr>
<td align="center"><strong>Magnesium deficiency</strong> — interveinal chlorosis on older leaves; mobile nutrient, progresses bottom-up</td>
<td align="center"><strong>Nitrogen deficiency</strong> — uniform pale yellowing from lower leaves upward; oldest growth first</td>
</tr>

<tr>
<td align="center"><img src="img/nitrogen-toxicity.png" alt="Nitrogen Toxicity"/></td>
<td align="center"><img src="img/phosphorus-deficiency.png" alt="Phosphorus Deficiency"/></td>
</tr>

<tr>
<td align="center"><strong>Nitrogen toxicity</strong> — dark blue-green, claw-shaped tips curling down; not a deficiency, the opposite</td>
<td align="center"><strong>Phosphorus deficiency</strong> — purple-red discoloration on undersides and stems, common in cold or early veg</td>
</tr>

<tr>
<td align="center"><img src="img/potassium-deficiency.png" alt="Potassium Deficiency"/></td>
<td align="center"></td>
</tr>

<tr>
<td align="center"><strong>Potassium deficiency</strong> — brown, crispy scorched edges at leaf margins; progresses inward</td>
<td align="center"></td>
</tr>
</tbody>
</table>

<p>These are the seven classes that generated the most diagnostic confusion in Stage 2. They share enough visual features that a generalist model regularly gets them wrong – not randomly, but in consistent patterns.</p>

<hr/>

<h2 id="the-confusion-pairs" id="the-confusion-pairs">The Confusion Pairs</h2>

<p>The specific pairs that Stage 2 was systematically mixing up:</p>

<p><strong>K ↔ Mg</strong> – Both show yellowing that progresses from lower leaves, affecting older growth. Leaf margins vs. interveinal chlorosis is the tell, but early presentations overlap.</p>

<p><strong>K ↔ N</strong> – Potassium deficiency causing tip burn and nitrogen deficiency causing general yellowing both start at the bottom of the plant.</p>

<p><strong>Mg ↔ N</strong> – Both are mobile nutrients that deplete oldest tissue first. The yellowing progression is similar; the pattern of which tissue goes first is what separates them.</p>

<p><strong>Mg ↔ Fe</strong> – Interveinal chlorosis is the signature symptom of both. The difference is which leaves are affected (new growth for iron, old growth for magnesium), but this requires accurate growth stage context.</p>

<p><strong>N deficiency ↔ N toxicity</strong> – One is too little, one is too much. The visual signatures are distinct to an experienced grower but genuinely confusing for a model trained to see both ends of the spectrum.</p>

<p>These aren&#39;t edge cases. They&#39;re the day-to-day diagnostic mistakes that cause growers to add CalMag to a potassium deficiency, or flush a nitrogen toxicity that needed nothing but time.</p>

<hr/>

<h2 id="validation" id="validation">Validation</h2>

<p>The model was validated on 14,182 real-world nutrient images – photos from actual grows, not controlled test conditions. And these are new-to-the-model photos – it has not seen them before.</p>
<ul><li><strong>Balanced accuracy:</strong> 99.5%</li>
<li><strong>Per-class F1:</strong> All seven classes above 99.8%</li>
<li><strong>Cross-nutrient confusions:</strong> Reduced to 0.058%</li></ul>

<p>For comparison, Stage 2 alone on those same 14,182 images had a 93% higher cross-nutrient error rate. The subclassifier resolves 93% of Stage 2&#39;s nutrient misclassifications.</p>

<hr/>

<h2 id="what-changes-in-the-api" id="what-changes-in-the-api">What Changes in the API</h2>

<p>Nothing in the request or response shape changes. Stage 2 already returns specific nutrient names — <code>potassium_deficiency</code>, <code>magnesium_deficiency</code>, and so on. What changes is how often those names are correct.</p>

<p>The subclassifier runs as a second pass after Stage 2 flags a nutrient condition. If it disagrees with Stage 2&#39;s classification, it overrides it. Same field, more accurate value.</p>

<p>To make this concrete: a plant with potassium deficiency might have previously come back as:</p>

<pre><code class="language-json">{
  &#34;conditions&#34;: [
    {
      &#34;condition&#34;: &#34;magnesium_deficiency&#34;,
      &#34;confidence&#34;: 0.78,
      &#34;severity&#34;: &#34;moderate&#34;
    }
  ]
}
</code></pre>

<p>With the subclassifier in the pipeline, that same image now returns:</p>

<pre><code class="language-json">{
  &#34;conditions&#34;: [
    {
      &#34;condition&#34;: &#34;potassium_deficiency&#34;,
      &#34;confidence&#34;: 0.97,
      &#34;severity&#34;: &#34;moderate&#34;
    }
  ]
}
</code></pre>

<p>No schema changes required. If your automation is already acting on nutrient condition names, it will automatically benefit from the correction.</p>

<hr/>

<h2 id="what-s-not-in-it-yet" id="what-s-not-in-it-yet">What&#39;s Not in It Yet</h2>

<p>Three nutrient conditions remain handled by Stage 2 only: zinc deficiency, manganese deficiency, and boron deficiency. The reason is simple – not enough quality training data to build a reliable specialist for these yet. Including them with insufficient data would reduce the accuracy of the classes that are in the model.</p>

<p>These will be added when the training data exists to support them.</p>

<hr/>

<h2 id="what-s-next" id="what-s-next">What&#39;s Next</h2>

<p>The nutrient subclassifier is the first piece of the reasoning layer – a set of specialist models that run after Stage 2 to provide higher-resolution diagnoses on the conditions that benefit most from it.</p>

<p>The broader vision: a pipeline that doesn&#39;t just tell you what&#39;s wrong, but narrows it down to the point where the corrective action is unambiguous. Potassium deficiency doesn&#39;t leave you wondering whether to add CalMag or check your VPD. It tells you what to add and how much – if the context supports it.</p>

<p>More on that as it ships.</p>

<hr/>

<p><em>PlantLab is free to try at <a href="https://plantlab.ai">plantlab.ai</a>. API documentation is available for growers building automation.</em></p>

<hr/>

<p><em>Related reading:</em>
– <a href="https://blog.plantlab.ai/nitrogen-deficiency-in-cannabis-a-visual-guide">Nitrogen Deficiency in Cannabis: A Visual Guide</a> – Detailed identification and treatment for the most common nutrient deficiency
– <a href="https://blog.plantlab.ai/how-plantlabs-ai-diagnoses-31-cannabis-plant-problems-in-18-milliseconds">How PlantLab&#39;s AI Diagnoses 31 Cannabis Plant Problems in 18 Milliseconds</a> – The full 4-stage pipeline
– <a href="https://blog.plantlab.ai/why-i-built-plantlab">Why I Built PlantLab</a> – The origin story</p>
]]></content:encoded>
      <guid>https://blog.plantlab.ai/yellow-leaves-seven-suspects-how-plantlab-got-specific-about-nutrient</guid>
      <pubDate>Fri, 27 Mar 2026 12:23:49 +0000</pubDate>
    </item>
  </channel>
</rss>