<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: 997 997</title>
    <description>The latest articles on DEV Community by 997 997 (@997_997_771630b632660f846).</description>
    <link>https://dev.to/997_997_771630b632660f846</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3992739%2F493eb9eb-6fff-440c-b785-d2deb0aa9956.gif</url>
      <title>DEV Community: 997 997</title>
      <link>https://dev.to/997_997_771630b632660f846</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/997_997_771630b632660f846"/>
    <language>en</language>
    <item>
      <title>Why your lithium forklift's fuel gauge lies in the middle of the shift</title>
      <dc:creator>997 997</dc:creator>
      <pubDate>Fri, 19 Jun 2026 14:41:41 +0000</pubDate>
      <link>https://dev.to/997_997_771630b632660f846/why-your-lithium-forklifts-fuel-gauge-lies-in-the-middle-of-the-shift-5e0</link>
      <guid>https://dev.to/997_997_771630b632660f846/why-your-lithium-forklifts-fuel-gauge-lies-in-the-middle-of-the-shift-5e0</guid>
      <description>&lt;p&gt;The habit every lead-acid driver picks up, glance at the resting voltage to judge how full the pack is, quietly stops working on lithium iron phosphate. It stops working across the broad middle of the range, right where a straight answer would help.&lt;br&gt;
An iron phosphate cell holds its voltage almost level for a long stretch of its discharge. From the high end down to nearly empty, the terminal voltage barely drifts, tracing a plateau rather than a slope. The energy is leaving the pack steadily, but the one number a simple gauge reads is sitting nearly still.&lt;br&gt;
A few hundredths of a volt can cover a wide band of remaining charge.&lt;br&gt;
Lead-acid behaves the opposite way, which is exactly why the voltage trick grew up around it in the first place. Its voltage falls in a fairly steady slope as it empties, so reading the terminal gives a rough but usable sense of fuel left.&lt;br&gt;
On lithium the same gauge tells a comforting lie, reading near full through the bulk of the shift and then dropping through the floor in the last stretch with little warning.&lt;br&gt;
Counting electrons instead of reading volts&lt;br&gt;
The honest way to track an iron phosphate pack is to count what goes in and what comes out, current multiplied by time, added up. Coulomb counting, in the jargon.&lt;br&gt;
The idea is clean and the practice drifts. A current sensor carries a small offset, charging never returns every last electron it took, and tiny errors each cycle accumulate into a gauge that slowly wanders away from the truth. Count long enough without a reference and your careful tally is off by more than the plateau ever hid.&lt;br&gt;
So counting alone is not enough. The tally needs something solid to check itself against, now and then, to stay honest.&lt;br&gt;
The fix in one breath&lt;br&gt;
Count the current, and recalibrate at the ends where voltage moves.&lt;br&gt;
Where the curve cooperates&lt;br&gt;
The plateau is flat in the middle but not at the edges. Near full and near empty the voltage finally bends sharply, and those bends are where the pack will tell you a real number.&lt;br&gt;
This is the quiet cleverness inside a good lithium management system, and it is why two packs with identical cells can give wildly different gauges. The controller counts coulombs through the flat middle, trusting the running tally because voltage there is useless, and then waits for the pack to reach one of the steep ends of the curve to reset that tally against a voltage it can read. Top the pack right off and the voltage climbs hard near the ceiling, giving a clean fix on full. Run it down toward empty and the voltage drops away just as hard, giving a fix on the bottom. Between those calibration points the system is dead-reckoning, like a ship tracking its position by speed and heading until it can sight a landmark. The better controllers go further, folding the current count and the voltage reading into a running estimate that also accounts for how the pack's apparent capacity shifts with temperature and age, often with a filter that weighs each clue by how trustworthy it is at that moment. A pack that never gets topped fully, that lives its life in the plateau on opportunity charges, gives the system fewer landmarks to sight, which is one reason a periodic full charge is good hygiene even when the duty cycle never seems to need it. The number on the display is not a measurement. It is an estimate the controller defends with arithmetic and the occasional glimpse of solid ground.&lt;br&gt;
Topping fully now and then is not about capacity. It hands the gauge a landmark to fix itself against.&lt;br&gt;
Two packs built on the same cells can read wildly differently because the cells were never the hard part of the job. The estimation is, and a sloppy estimator riding on excellent cells still hands a driver a gauge they quietly learn to stop trusting by mid-afternoon.&lt;br&gt;
Why this is a buying question&lt;br&gt;
A fleet runs on whether drivers believe the gauge. If the number sags to half and the truck keeps working fine, or reads comfortable and dies at the dock, people stop planning around it and start guessing, which wastes the run time the battery was supposed to give back.&lt;br&gt;
The cells are a commodity. The estimation logic that turns a flat curve into a number you can schedule a shift by is the engineering that separates packs, and it is where a serious builder like &lt;em&gt;&lt;a href="https://shinkoafrika.net/" rel="noopener noreferrer"&gt;Shinko Power&lt;/a&gt;&lt;/em&gt; earns the difference.&lt;/p&gt;

</description>
      <category>iot</category>
      <category>learning</category>
      <category>monitoring</category>
      <category>science</category>
    </item>
  </channel>
</rss>
