A Solar-Native VFD for Remote Water Pumping

Why we set out to build a drive that understands “sunlight” ☀️

A lot of farms and remote sites have a simple need… to move water without stringing miles of wire or hauling fuel. Off-grid solar is perfect in theory, but most pumps want stable three-phase AC and most PV arrays deliver a wild, weather driven DC source. Early in EES’s history we took on a project to bridge that gap with a solar VFD built specifically for water pumping. The goal was a Variable Frequency Drive that could source straight from a PV array, find the available power in real time, and produce clean three-phase output to run standard submersible water pumps. No batteries, no grid, just panels to pump.

That design goal really shaped everything. Instead of designing a generic VFD and bolting on solar support, we optimized the entire stack for direct solar input. The system included maximum power point tracking, a control scheme that let the pump adapt to clouds and sun breaks, a small LCD with a few keys for field testing, and digital I/O so valves, float switches, or a higher-level controller could coordinate starts and stops.

What makes a solar VFD for water pumping different from a “normal” one 🔧

A traditional VFD assumes an line connected source with stable voltage. You pick a ramp, command a speed, and the DC bus barely flinches. A solar VFD is the opposite. The available power is highly dependent on the solar conditions and while the DC voltage may appear stable, it can drop rapidly if the load exceeds available power. That available power follows a parabolic curve during the day and can tease you at dawn by hitting open-circuit voltage while being unable to deliver even a few milliamps.

We designed an architecture that reflected that reality:

  • Direct PV input. No intermediate battery or rectified grid tie. The hardware included power stage conditioned array output, monitored bus voltage and current, and kept a tight loop between MPPT and motor control.

  • Real-time MPPT. The firmware algorithm looked for the operating point with the most watts and fed that power budget to the motor controller.

  • Power aware motor control. Instead of “hold speed at all costs,” the controller asked, “how much power do we have right now,” then set frequency and torque to match.

  • Field friendly interface. A small LCD and a few keys supported manual tests, parameter tweaks, and status without a laptop, with optional hooks for lightweight user interface such as telemetry or logs. 🧰

Two challenges impacted the design ⚙️

1) Rapid response when the sun blinks 🌤️

Even when it seems like a sunny day, the solar power available at the array can swing wildly. If a cloud passes between the sun and the array, the available power can drop more than 90% in a second. If the drive tries to hold motor torque constant, the PV voltage collapses, the bus brownouts, and the controller resets which is not good for the control or the motor. When the cloud moves and more power is available, there is no clear signal that indicated that. You only learn you asked for too much when the voltage folds.

To address this, we built in three layers of defense:

  1. Fast bus watchers. High rate sampling of bus voltage and PV current gave early warning. A small predictive model estimated how close we were to the knee of the IV curve. When the derivative of bus voltage with respect to current turned sharply negative, we rapidly backed off power before a collapse.

  2. Budget first control. The MPPT loop maintained a live power budget. The motor control loop consumed that budget by selecting a frequency and torque limit that stayed inside it. During a cloud pass, when the budget shrank, the torque was reduced, and the pump rode through without tripping.

  3. Graceful retreat and recovery. When a dip exceeded our prediction, the firmware executed a controlled power shed, dropping frequency and torque in tens of milliseconds. This let the PV voltage recover and, once stable, we could increase setpoints in small steps to avoid ringing.

2) First light startup without a battery 🌅

While operation during the day was a little tricky, initial power up at dawn was a trap. With no load, the PV array would climb toward open-circuit voltage. But with so little power available, even the smallest load, powering the board itself, would cause immediate voltage collapse. The result is a period of micro on and micro off cycles that can frustrate any controller that tries to boot fully and run self tests.

We treated sunrise like a staged handshake:

  • Brownout proof boot. The first stage of code came up with minimal current draw and latched only the essentials. Initialization was split into tiers, powering subsystems in order and checking the bus after each step.

  • Soft probing of the source. Before enabling the motor stage, very small, timed loads estimated short-term current capability. If the PV sagged too far, the controller backed off and tried again later.

  • Load qualification before spin. Only after the PV proved it could supply a steady threshold did we attempt a motor test. Early spins were short and low frequency; if the bus stayed healthy, we lengthened them and raised frequency.

  • Retry logic that conserves energy. During the pre power window we kept sleep intervals long enough to avoid death by reboot, but short enough that the pump would start as soon as the sun allowed. 🌄

How the pieces fit together in the field 🧪

When the sun is up, the drive sits at the PV’s maximum power point and converts that energy into three phase AC at a frequency the pump can use. As a cloud drifts by, the available budget shrinks and the drive reduces torque and frequency. Water flow might vary but rarely stops. As the cloud passes, the drive expands back toward the target operating point. This is what a solar VFD for water pumping must do: protect the source while keeping flow going.

At dawn, the controller had to manage much smaller available power budgets just to get itself going. The controller would come up in a minimal state, to keep the demands on the array as low as possible. Once it could power itself, it would move to short, low stress motor tests, then transitions into normal MPPT governed operation.

From a field tech’s view, the LCD shows bus voltage, PV power, output frequency, estimated flow, and small status codes showing the system operation. The keypad allows initial setup, manual control, operating parameter edits, and a handful of diagnostics. Digital inputs accept tank and float switches and digital outputs can control a valve or signal a supervisory controller when the pump is active. 🔌

What went wrong, what we learned, and what shipped 📦

Early builds chased MPPT too aggressively and didn’t respond fast enough to clouds, which translated into audible pump speed wobble and sometimes even system resets during fast cloud movement. We fixed that by giving the budget loop a short memory and biasing it to retreat much faster than it advanced. We also added more sunrise hysteresis to reduce power cycles and wear and tear on the system components.

Two lessons stuck:

  1. Treat power as a first class signal. In a solar fed system the power budget is not a consequence of control… it is the thing you control. Making sure the system could monitor and respond rapidly to changes in that budget kept it running smoothly, even during transients.

  2. Start small, then earn complexity. Sunrise exposed the problems with our initial monolithic boot sequences. Breaking initialization into energy aware tiers reduced the death spiral of reboot loops and made the system feel composed, even when the sun was not. ✅

By the end, we shipped a solar VFD for water pumping that could run standard three phase pumps directly from PV arrays, ride through fast transients, and start reliably at first light. It gave farmers and site operators a practical alternative to fuel or long power runs, and it did so with a simple interface they could trust. 🙌

If you have project with unusual challenges like this one, a quick way to start is an Engineering Reality Check—a free 1-hour consult to pressure-test scope and risk: Schedule the consult. We would love to hear about what you are building. 🤝

Share the Post:

Craig and his team have proved to be an exceptional resource for us. The ability to see the big picture and engage at a high level is highly valued. EES excels at modern microprocessor and wireless communication platforms and has provided valuable advice on best practices and security standards. EES’s ability to develop quickly and iterate has been crucial to our project’s success. 

HT Snowday | Head of R&D | midmark

Related Posts

Easy Reasons a Person Can Make Motor Speed Control Fail On a powered exercise platform, the user is not a […]

A few years ago, we started work on the firmware for a company that builds powered respiratory-protection gear. These are […]

The impact of AI tools and AI-generated code on software development cannot be overstated. Lately I’ve heard a lot of […]

Scroll to Top