We Built Solar DC With Grid Connectivity in 2009.
Now the World Calls It “Hybrid Inverter Technology.”
The firmware is still here. The circuit still works. But the 77 technology patents that protected this innovation? Lost in India’s IBC process. Here’s the full story — the technology, the circuit, the code, and the patents the world is now building on.
In 2009, inside an R&D lab at Su-Kam Power Systems in Gurgaon, I conceived and my engineering team built firmware for a product called the SolarPack DC 120. The microcontroller was a Texas Instruments MSP430G2761 — a 16-bit MCU running at 16 MHz with kilobytes of flash. The code implemented multi-stage MPPT charging, battery protection, grid-connectivity logic, and bidirectional power management. No cloud. No AI. Just tight embedded C, interrupt-driven ADC sampling, and a clear conviction: solar DC and grid AC must coexist on a shared DC bus with seamless, intelligent switching.
Seventeen years later, companies like Tesla, Enphase, Growatt, and APsystems sell “hybrid inverters” and “solar-integrated Online UPS systems” built on the exact same architecture. The industry calls it innovation. I call it validation — and a painful reminder of what was lost.
77 Technology Patents — All Lost in IBC
Su-Kam Power Systems held the distinction of filing the largest number of patents in India’s power backup industry — averaging two patents per month at our peak. We filed 77 technology patents covering solar hybrid UPS architecture, MPPT algorithms, bidirectional inverter topologies, battery management systems, temperature-compensated charging, and DC-bus power management — the very technologies the world now ships as “hybrid inverters.”
In 2018, following personal legal disputes that removed me from operational control, banks filed insolvency proceedings under India’s Insolvency and Bankruptcy Code (IBC). The company I built over 20 years — from a garage in 1998 to 90 countries and 200+ products — was dragged through NCLT proceedings. Over Rs 45 crore was spent just running the company through the resolution process. When it was finally sold during the COVID pandemic, Su-Kam fetched only Rs 49.50 crore — of which banks recovered a mere Rs 8 crore.
All 77 patents went with it. The intellectual property behind India’s solar hybrid revolution — technology I conceived and my engineers coded into MSP430 firmware — was sold for a fraction of its true value. The IBC process, designed to preserve going-concern value, instead destroyed it.
Today, every hybrid inverter company in the world builds on the same architectural principles those patents protected. The technology lives on. The patents don’t.
View Su-Kam Patents on Google Patents → Su-Kam IBC Case on IBC Laws →The Circuit: DC-Direct Architecture
The fundamental idea was deceptively simple: treat the DC bus as the center of the power universe. Solar panels feed DC through an MPPT controller. The grid feeds AC through a rectifier as backup only. A LiFePO4 battery bank sits on the bus as both load and source. And the output — 48V, 12V, 5V, 3.3V via DC-DC converters — draws from this unified bus with zero AC conversion loss.
DC-Direct Architecture — Eliminating 21% power loss by keeping the entire path in DC. No SMPS, no AC conversion losses. Solar → MPPT → LiFePO4 → DC Bus → DC Loads.
This is the double-conversion Online UPS topology with solar as the primary input. AC comes in as backup, gets rectified to DC. Solar DC feeds through MPPT. Both merge on the DC bus. The battery sits bidirectionally on the bus. The output draws from this unified rail.
The Firmware: What the Code Actually Did
I still have the compiled binary — SolarPack_Su-kam_DC_120_1.out, an ELF file targeting the MSP430G2761. The debug symbols tell the complete story. Here are the subsystems, exactly as they appear in the symbol table:
Hardware Initialization — 7 Functions from Cold Boot
DCO_clock() // DCOCTL ← CALDCO_16MHZ, BCSCTL1 ← CALBC1_16MHZ gpio_init() // P1-P4 DIR/OUT/SEL: MOSFET gates, relays, LEDs, DIP switches adc_init() // ADC10CTL0/1, ADC10AE0: 7-channel mux, Vref, sample-hold pwm_init() // TACTL, TACCTL1, TACCR0, TACCR1: carrier freq + duty cycle timer_init() // TBCTL, TBCCTL0/1, TBCCR0: periodic control loop ISR UART_A0_init() // UCA0CTL1, BR0, BR1, MCTL: serial telemetry short_circuit_init() // Hardware comparator fast-trip protection
Perturb & Observe MPPT — Running on 16-bit MCU
// Variables extracted from the symbol table: pv_power = pv_volt_avg * pv_cur_avg // instantaneous power pv_power_prev // previous sample diff_power3 = pv_power - pv_power_prev // delta-P diff_voltage = pv_volt_avg - pv_volt_avg_prev // delta-V // P&O decision: if (diff_power3 > 0 && diff_voltage > 0) decrease duty if (diff_power3 > 0 && diff_voltage < 0) increase duty if (diff_power3 < 0 && diff_voltage > 0) increase duty if (diff_power3 < 0 && diff_voltage < 0) decrease duty // Output: TACCR1 = duty // Timer A CCR1 drives the MOSFET gate
Dynamic Voltage Adjustment via Ambient Temperature
tempLookUp[] // NTC to temperature table in .data section convertTemperature() // ADC count to degrees bulk_volt_acc_to_amb_temp() // adjusts bulk/absorption/float setpoints // Compensated setpoints: bulk_voltage // bulk charge target (temp-adjusted) batt_absorp_volt // absorption voltage (temp-adjusted) batt_absorp_volt3 // secondary absorption threshold
Bulk → Absorption → Float → Equalization
batt_absorp_method() // CC to CV transition batt_float_method() // Reduces to float voltage equalisation_method() // Periodic overcharge for cell balancing battery_selection() // P4IN DIP switch: 12V/24V battery config // Protection thresholds: batt_v_max_limit batt_v_min_limit batt_low_v batt_high_v batt_float_v_ref batt_v_mppt_rec
Overload, Short Circuit, Battery Protection
overload_chk_method() // over_load_v_avg vs threshold battery_low_cond_met() // 6-stage low battery (batt_low_ct1-6) batt_low_high_cut_reco_met() // cut & reconnect with debounce sc_ol_retrail_met() // auto-retry after SC/OL fault // LED indication state machines: pro_ind_sc_on_off_t pro_ind_ol_on_off_t pro_ind_ht_on_off_t pro_ind_bl_on_off_t pro_ind_bh_on_off_t
7 ADC Sensing Channels
The MSP430’s single 10-bit ADC was multiplexed across seven analog inputs, each sampled and averaged over multiple interrupt cycles:
7 ADC channels multiplexed through the MSP430’s single ADC — all sensing from the 2009 firmware
Source File Map — From the ELF Debug Symbols
| Source File | Key Functions | Responsibility |
|---|---|---|
main2761.c | Timer_B0/B1, MPPT, volt_calc, cur_calcu, charging_method, indications, sc_ol_retrail | Core control loop, MPPT, power calculations, UART ISRs |
init2761.c | DCO_clock, gpio_init, adc_init, pwm_init, timer_init, UART_A0_init, short_circuit_init | All hardware initialization + ADC sensing routines |
a_hs2761.c | bulk_volt_acc_to_amb_temp, hs/amb_temp_sense, convertTemperature | Temperature compensation, bulk voltage adjustment |
abs2761.c | batt_absorp_method | Absorption stage charging (CC to CV) |
b_f2761.c | batt_float_method | Float stage with equalization timer |
bat_lh2761.c | battery_selection, overload_chk, batt_low_high_cut_reco_met | Battery config, voltage protection, overload detection |
equa2761.c | equalisation_method | Periodic equalization for lead-acid cell balancing |
How the World Caught Up: 2009 to 2026
Same Topology, Different Marketing Budgets
| Parameter | SolarPack DC 120 (2009) | Modern Hybrid Inverter (2026) |
|---|---|---|
| Core topology | DC bus + MPPT + rectifier + inverter | DC bus + MPPT + rectifier + inverter |
| MCU | MSP430G2761 @ 16 MHz, 16-bit | ARM Cortex-M7 @ 400+ MHz, 32-bit |
| MPPT algorithm | Perturb & Observe | P&O / Incremental Conductance / AI |
| Switching devices | Si MOSFETs, 50-100 kHz | SiC/GaN, 200+ kHz |
| Efficiency | ~90-92% | 97.6%+ |
| Battery chemistry | Lead-acid (4-stage) | LiFePO4 / NMC (CC-CV) |
| Temp compensation | NTC + lookup table | NTC/digital + firmware |
| Transfer time | ~10-20ms (relay) | <4ms (static switch) |
| Communication | UART to display | Wi-Fi/4G + cloud + VPP |
| Solar panel cost | $3-4/watt | <$0.20/watt |
| Patents protecting it | 77 — all lost in IBC | Thousands across Tesla, Enphase, etc. |
A solar hybrid inverter is: PV → MPPT → DC Bus → Battery ↔ DC Bus → Inverter → AC, with optional AC → Rectifier → DC Bus.
The only difference is which input has priority. The power stage, battery management, protection, and transfer-time requirements are identical. What I built in 2009 was an Online UPS with solar as the primary input. The industry just didn’t have a name for it yet.
Rebuilding: Su-vastika and 25+ New Patents
After losing Su-Kam and all 77 patents, my wife Khushboo Sachdev started Su-vastika under my guidance. We’re building the next generation — lithium battery banks, solar hybrid PCUs, Online UPS systems, Energy Storage (BESS), and the DC-Direct architecture shown above — eliminating the 21% power loss that AC conversion creates.
Su-vastika has already filed 40+ technology patents and received 16 grants from the Indian Patent Office. The innovation didn’t stop. The founder didn’t stop. We started again from zero.
View Su-vastika Patents → Solar Hybrid Inverter Patent →The Lesson
When I built the SolarPack DC 120 at Su-Kam in 2009, I wasn’t trying to create a product category. I was solving a practical problem: India had unreliable grid power, abundant sunlight, and millions of people using diesel generators and basic inverters. Combining solar DC with grid connectivity in a single intelligent controller was the obvious engineering answer.
The fact that the global energy industry arrived at the same architecture 15+ years later — through Tesla’s billions, Enphase’s IPO, and a decade of venture-funded cleantech — tells you something about the nature of good engineering. The right topology doesn’t need a marketing budget. It just needs time for the market to catch up.
The 77 patents are gone. India’s IBC process saw to that. But the firmware is still here — SolarPack_Su-kam_DC_120_1.out, with my team’s function names in the debug symbols. And every hybrid inverter shipping today owes a quiet debt to the engineers who wrote batt_absorp_method and power_calc_method2 on a 16-bit microcontroller in a Gurgaon office in 2009.
“I didn’t set out to build a company. I set out to solve a problem — and the company became the answer.” — Kunwer Sachdev
Build ahead. The world follows.