Author Topic: Using old grid tie inverters to charge batteries  (Read 9670 times)

0 Members and 1 Guest are viewing this topic.

Offline oztules

  • Moderator
  • Hero Member
  • *****
  • Posts: 1177
  • Karma: +105/-8
  • Village idiot
Using old grid tie inverters to charge batteries
« on: July 16, 2017, 08:08:47 am »
There is a million different ways to get the power from the panels into the batteries.
As a normal rule for me, I use 60cell panels that output 8-9 amps@ 30v or so... directly onto the batteries via pwm regulator of about 100-120 amps@60v.

This works fine, and we don't loose a lot through voltage mismatching, as there in in fact almost no mismatch at the top of the charge cycle, and usually not more than 10v differential to use for any mppt that can be wangled into there even when the charge cycle is low... not a lot to work with compared to the 72 cell panels... where there is up to 30% to be claimed back ( seems optimistic , but plenty of claims out there).

The other problem, is that all the mppt types are both expensive, and very limited.. you can spend 4 to 5 hundred dollars for a lousy 60 amps..... and the voltage clearance is puny to say the least.. rarely more than 100-150v to work with.

By the time you buy a few of these, you would have been miles in front, just buying more s/hand 300 watt panels for the same money....eg a thousand bucks gets you 2kw extra solar to work with... much better than you likely to ever get out of the mppt... on the mainland ( not this island)... probably twice that.

But there is a better way, and thats using the grid tie inverters that seem to be proliferating on the net s/hand. These have serious voltage o/head in the 400v range as a lower range, and many kilowatts for very little money... and they are true mppt... yes you get your cake... and get to chew on some of it as well.

I have fiddled with this over the years, but have not gotten too serious with it, as controlling it when the batteries no longer need 5-6kw going into them becomes problematic. I tried simple solutions.... like..... let the powerjack boards let the AC voltage rise until the voltage [protection kicks in on the GTI, and shuts it down for 3 mins then has another go etc.... bang bang controller.

Another effort was a simple voltage switch that interrupts the AC going to the grid tie, and let the anti islanding shut it down... this works ok too, but never felt quite right.... it was bang bang again.

So for reasons I don't quite understand, I decided to see how hot a decent fet would get if it modulated the power from the panels into the cap bank in the inverter.

I found some fets in an old SMA, they were 600v 20 amps .35rdson 300w dissipation..... I wonder.

So using one of my normal pwm boards, I interfaced the totem pole output to the mosfet, attached to the  huge heat sink of the inverter..... and quietly stood back to pick up the pieces. A quick back of the envelope said I^2R would be only about  8 watts losses..... but that would be before switching losses ... what would it really be.

It looked like this inside, with the fet attached to the back wall. It has protection zener, source gate resistor and gate resistor on there as well. We can also see where I chopped the neg input lead and sent it to the fet and then back to the board input terminal... so pulse the fet... modulate the voltage in the caps.. fool the mppt.. all looks good
7133-0

The whole set up using the old board and it driving that fet looks like this

7131-1

It took a bit of fiddling with board values to get all the competing hysteresis bits playing nicely... but eventually it worked very nicely.... and no heat problems up to at least 1300watts ( no more sun than that, and only one bank of panels, as this is a 1.5k inverter )

So this tells me that three fets will handle the 5kw inverter without stress... maybe 22w at worst.... now I was interested.

The little board has voltage regulation, totem pole output with beefy transistors... in fact everything needed to drive a nano ..... hmmm...

So grabbed the cutting pliers, and stripped anything not directly involved with voltage divider, power regulation, or output and indicator stuff. not much stuff was left and it looked like this before I destroyed it......

7135-2

After removing all the bits... it looked like this. We can see the nano attached to it as well

7137-3

Here is the pcb of the half naked board, reflecting the changes from the original

7139-4

I am the worlds worst arduino coder... and like my circuitry, there is no planning or flow charts or anything. Like the pcb's I do... I start at the start and end up with something else entirely different to what I expected before I started....
So I don't pretend to be a programmer, but here what seems to work.



int ledPin = 9;               // fet gate connected to this pine via totem or similar driver digital pin 9

int analogPin = 3;                    // divided voltage from battery or transformer if thats your go

int val = 0;                                  // value of voltage query

int pulseVal = 0;                       // initilise the pulse width to zero of 255.... won't help really as the thing will run for three minutes before kick off
int floaTime=0;                         // initialise the time to zero for the absorb
int floatVolts = 972;                  // compared to the figure of the bulk and absorb...
int bulkCharge = 1000;           // figured that ( 1000 ) would do as the set point for absorb voltage... gives the best definition I think
int absorbCharge = 1000;      // voltage equivalent for the absorb voltage.... same as bulk.... funny about that.
int startAllOverAgain = 820;  // prpobably in the 49v range
long timedOut = 50;                // time delay and step rate will change this... 50 is for 30 second absorb test only.... must change this
int increment = 10;                  // size of each change in pwm
int weAreHereNow=0;           // tells us where we are in the cycle 0=bulk, 1= absorb 2=float

void setup()                              //  this is where the story starts...
{
  pinMode(ledPin, OUTPUT);       // sets the pin 9 as an output for the fet drive
 
  Serial.begin(9600);
}
void loop()                      // and this is where the story really starts
 {
  Serial.print("pulseVal =  " );                       
  Serial.print(pulseVal);             // tells us the  output pulse size... 255 max
  Serial.print("read value =  ");   //show and tell time   
  Serial.print(val);                         // tells us what it sees as the input value. measure the battery voltage and set for your circumstance
  Serial.print("time value =  ");   
  Serial.print(floaTime);              //    tells us ho many time cycles have passed     once weAreHereNow has incremented to 1 
  Serial.print("weAreHereNow  =" );
  Serial.println (weAreHereNow);    // tells us where we are now in the 3 stage cycle
  delay(100);                   // use this to speed things up and down.... responsible for the timing number calculation
                                         // use the timedOut definition to set the number we count to for the 2 hours...

  val = analogRead(analogPin);      // read the input pin

    if (val< bulkCharge)
    {
    pulseVal=pulseVal + increment;  // was not up to bulkCharge, then increase pulse width incrementally
    }

  if (val>=bulkCharge)              // now bulkCharge is attained stage 1 finished...so we  change the weAreHereNow to 1 as a flag
  {                   
      weAreHereNow=1;                         
  }

  if (val>bulkCharge)
  {
    pulseVal=pulseVal-increment;   //We have over shot, so need to increment backwards to get back in the game... looks good on the scope
  }
 
   if ( pulseVal>=255)
    {
      pulseVal=255;               // trying to catch o/flow sins before they happen
    }
     if ( pulseVal<=0)
    {
      pulseVal=0;
    }
   
    analogWrite (ledPin,pulseVal);   // write to the fet

   if (weAreHereNow==1)              //if weAreHereNow is one , then count each cycle from now on until it no longer equals 1
  {
    floaTime=floaTime+1;              // incrementing the timer stuff
    bulkCharge=absorbCharge;   // making sure we stay in the stage... and don;t wander off..... yeah it can happen
  }
 
  if (floaTime>=timedOut)              // once we reach timedOut, we have finished our absorb sequence, change status flag weAreHereNow, and change the voltage now to float value
  {
    weAreHereNow=2;
    bulkCharge = floatVolts;          // change our battery reference voltage to the new float of 56 or 57 or whatever you choose
 }
 
 if (val<startAllOverAgain)          // panic routine when voltage drops back to 48 volts or so.... we go back to restart because we couldn't hold float
 {
 weAreHereNow=0;                    // The night time comes, and it will rest o/night... well thats the plan anyway.
 bulkCharge=absorbCharge;
 floaTime=0;
 }
}
//thats all folks

This makes the grid tie into a three stage battery charger. It will drive the batteries up to 59v, and when it gets there it will hold at 59v ( if the sun lets it) for the next 2 hours for me, then drop back to maintaining 56v for the rest of the day... or whatever we set it for.

This particular code needs the timing bought out to 2hrs by changing the timedOut in the initialising part. It incorporates a serial monitor so you can see what it sees and then use those voltage set points for your own circumstances.
The delay in there, can be changed. It will dictate the length of each calculation cycle, which also increments the pulse value, and increments the timer that will start when weAreHereNow=1. So by choosing how reactive you want it to be, will dictate how many cycles will pass before your 2 hours are up. eg if delay is set to 1000 ( 1 second), then 7000s cycles would get near to the 2 hours or however long you wanted. I made the int a long, so you should be able to get very large numbers indeed if you wish.

So it allows the use of otherwise useless GTI's to be front line chargers.


................oztules


Flinders Island...... Australia

Offline frackers

  • Full Member
  • ***
  • Posts: 239
  • Karma: +9/-0
  • If it moves - computerise it!
Re: Using old grid tie inverters to charge batteries
« Reply #1 on: July 16, 2017, 10:12:10 pm »
So its simulating a cloud going in front of the panels!! but still using AC coupling with a GTI onto an LF inverter like the PJ

Remind us of what a 'normal pwm board' is ?
Robin Down Under (or are you Up Over!)

Offline oztules

  • Moderator
  • Hero Member
  • *****
  • Posts: 1177
  • Karma: +105/-8
  • Village idiot
Re: Using old grid tie inverters to charge batteries
« Reply #2 on: July 17, 2017, 05:25:50 am »
Good thing it's my thread I'm messing up here.....

Yes Frackers, thats about it.... we are simply pulling a blanket in front of the panels when it's time, and while we are at it, we are doing the three stage charging thing... so a blanket with variable holes in it.

I had visions of breaking into the inverters mppt , and trying to confuse it... but I got confused instead... this was way easier.

It really does make a huge difference to the day to day operations of a normal house, as a 5kw grid tie can handle all the house loads, and leave the home inverter to run the place at night. Some of the boys in Qld want this sort of thing, as they have plenty of sun, and run the big air conditioners all day every day, and this releases the home inverter, and uses what are  dime a dozen GTI inverters to do all the heavy lifting. and they are more efficient than any other way of doing it... ie straight into the load, rather than into the batts then into the inverter.... and the mppt works much better than the 150v and under units that cost a small fortune..... these inverters are up to 95% efficient.

It has not attracted any interest, which is odd really as it changes everything once you get your head around it .. oh well......looks like it is only me who thinks it was a good idea.

As usual I ponderd it for years, but never thought it would be so simple.... again.



Ok this is the last iteration of the program.

I felt today it was very nice, but it drove me mad not knowing what stage it was in while I was messing about with it. I had the absorb very short, so things happened quickly... but it also confused me at the same time taking measurements and generally getting tangled up.

So this one tidies up a few things regarding that... it should be the last ( programs and pcb's are never really finished ), but this has enough legs to get the job done satisfactorily.


Program to interface to the GTI control board.
This will give a three stage charging regime, with attention lights for cycle position.... I saw no need for LCD support, as gauges will already be installed on the device I suspect... the GTI certainly will.



int ledPin = 9; // fet gate connected to this pine via totem or similar driver digital pin 9
int stage1pin =4; // led for stage 1 bulk
int stage2pin =5; // led for stage 2 absorb
int stage3pin =6; // led for stage 3 float
int analogPin = 3; // divided voltage from battery or transformer if thats your go

int val = 0; // value of voltage query

int pulseVal = 0; // initilise the pulse width to zero of 255.... won't help really as the thing will run for three minutes before kick off
long floaTime=0; // initialise the time to zero for the absorb
int floatVolts = 969; // compared to the figure of the bulk and absorb...
int bulkCharge = 1000; // figured that  1000  would do as the set point for absorb voltage out of 1023.. so we are using all the range
int absorbCharge = 1000; // voltage equivalent for the absorb voltage.... same as bulk.... funny about that.
int startAllOverAgain = 820; // probably in the 49v range
long timedOut = 1500; // time delay and step rate will change this...
int increment = 10;
int weAreHereNow=0;

void setup() // this is where the story starts...

{
pinMode(ledPin, OUTPUT); // sets the pin 9 as an output for the fet drive
pinMode(stage1pin, OUTPUT); // sets digital pin 4 for stage 1 bulk
pinMode(stage2pin, OUTPUT); // sets digital pin 5 for stage 2 absorb
pinMode(stage3pin, OUTPUT); // sets digital pin 6 for stage 3 float
Serial.begin(9600);
}

void loop() // and this is where the story really starts
{

Serial.print("pulseVal = " ); // use the serial monitor for
Serial.print(pulseVal);
Serial.print("read value = "); //show and tell time
Serial.print(val);
Serial.print("time value = "); // handy to set your set points
Serial.print(floaTime);
Serial.print("weAreHereNow =" ); // they will be different to mine I expect
Serial.println (weAreHereNow);

delay(10); // use this to speed things up and down.... responsible for the timing number calculation

//====================this section just for song and dance and twinkly lights

if (weAreHereNow==0)
{
digitalWrite (stage1pin,1); //digital pin 4 will light up for the bulk charge bit
}
else
{
digitalWrite (stage1pin,0);
}

if (weAreHereNow==1) // this lights up digital pin 5 to signal stage 2 the absorb cycle
{
digitalWrite (stage2pin,1); // this is all to light up leds to see where we are in the cycle
}
else
{
digitalWrite (stage2pin,0);
}


if (weAreHereNow==2)
{
digitalWrite (stage3pin,1); //this lights up stage 3.. the float cycle
}
else
{
digitalWrite (stage3pin,0); // remember if we drop below about 48v it will reset everything, the leds will show this as stage 1 again.
}
//=========== enough with the visual nonsense..... on with the show ==========

val = analogRead(analogPin); // read the input pin analog3

if (val< bulkCharge)
{
pulseVal=pulseVal + increment; // increase pulse width incrementally
}

if (val>=bulkCharge && weAreHereNow==0) // have we finished bulk yes no?
{
weAreHereNow=1; // if we have increment flag
}

if (val>bulkCharge)
{
pulseVal=pulseVal-increment;
}

if ( pulseVal>=255)
{
pulseVal=255;
}
if ( pulseVal<=0)
{
pulseVal=0;
}

analogWrite (ledPin,pulseVal);

if (weAreHereNow==1) //if weAreHereNow is one , then count each cycle from now on until it no longer equals 1
{
floaTime=floaTime+1;
bulkCharge=absorbCharge;
}

if (floaTime>=timedOut) // once we reach timedOut, we have finished our absorb sequence, change status flag weAreHereNow to 2, and change the voltage now to float value
{
weAreHereNow=2;
bulkCharge = floatVolts;
}

if (val<startAllOverAgain) // panic routine when voltage drops back to 48 volts or so.
{
weAreHereNow=0;
bulkCharge=absorbCharge;
floaTime=0;
}
}
//thats all folks

EDIT int floaTime needs to change to long floaTime or you cant use m,ore than 32000 in the counts

Note remember it uses analog pin 3 for reading.... some fool I know hooked up to digital 3 and wondered why it didn't respond to voltage change.
Flinders Island...... Australia

Offline Pete

  • Sr. Member
  • ****
  • Posts: 385
  • Karma: +19/-1
  • Mount Barrow Tasmania
Re: Using old grid tie inverters to charge batteries
« Reply #3 on: July 17, 2017, 04:48:52 pm »
Hi Oz, well I have to admit that having a small solar system I have not come up against the high current problem you have to deal with. I only have around 30 amps at 12 volts to control. I have seen the high prices of MPPT controllers and steered clear of them though.
I am guessing that you are using the Grid Tie inverters to feed power to the PowerJack ( using it as the charger) or directly into the house when required.
Is that what you are doing?
As I really only dabble in repairing things that used to work, I don't have the info in my brain to design or change things much. Just Oh it used to work, so It should again.
Cheers
Pete

Offline oztules

  • Moderator
  • Hero Member
  • *****
  • Posts: 1177
  • Karma: +105/-8
  • Village idiot
Re: Using old grid tie inverters to charge batteries
« Reply #4 on: July 17, 2017, 04:59:09 pm »
Yes Pete,

The GTI runs the house and charges the battery if the sun is out, and the house is using less than what it produces.... when the battery approaches full we can now throttle it back.

As we had full control and a micro involved, I figured we may as well do the three stage charging as well if light permitted.
Using the 8010 homebrew as the inverter, but a PJ would work just as well.

I think I make my own problems just so I can try to solve them.

....oztules
Flinders Island...... Australia

Offline oztules

  • Moderator
  • Hero Member
  • *****
  • Posts: 1177
  • Karma: +105/-8
  • Village idiot
Re: Using old grid tie inverters to charge batteries
« Reply #5 on: July 21, 2017, 06:37:05 pm »
Well it has finally become a full digital arrangement. The LCD readout does volts, and what part of the charge cycle we are in... ie bulk, absorb or float. It also outputs the current number of mins that we have been in that cycle.
It also has three status lights do do the same thing without the mins of course, but it will signal from a distance the stage we are in... had the spare pins to play with didn't  I...

Here is a pic of the new board.... getting some made in China... 5 dollars for 10 boards  I cant do it for any where near that ( pcbway.com) a on special deal apparently...much dearer to buy more than 10.

7149-0

and here is the program for the nano micro.


// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins


LiquidCrystal lcd(12, 11, 10, 9, 8, 7); //10-7 data.12,11 control

long fullTime=0;
long bulkTime=0;
int ledPin = 6; // fet gate connected to this pine via totem
int stage1pin =2;
int stage2pin =3; //three pins for stage leds
int stage3pin =4;
int analogPin = 3; // divided voltage from battery or transformer
int val = 0; // value of voltage query
int count=0;
int pulseVal = 0; // initilise the pulse width to zero of 255.... won't help really as the thing will run for three minutes before kick off
long floaTime=0; // initialise the time to zero for the absorb
int floatVolts = 969; // compared to the figure of the bulk and absorb...
int bulkCharge = 1000; // figured that half way ( 1000 ) would do as the set point for absorb voltage
int absorbCharge =1000; // voltage equivelent for the absorb voltage.... same as bulk.... funny about that.
int startAllOverAgain = 862; // probably in the 49v range
long timedOut = 107000; // time delay and step rate will change this...107000=2hrs
int increment = 10;
int weAreHereNow=0;

void setup() // this is where the story starts...
{

pinMode(ledPin, OUTPUT); // sets the pin 6 as an output for the fet drive
pinMode(stage1pin, OUTPUT); //sets pin as output for the stage leds
pinMode(stage2pin, OUTPUT);
pinMode(stage3pin, OUTPUT);
Serial.begin(9600); // for the detective work
}

void loop() // and this is where the story really starts

{
Serial.print("pulseVal =" );
Serial.print(pulseVal);
Serial.print(" read value ="); //show and tell time
Serial.print(val);
Serial.print(" time value =");
Serial.print(floaTime);
Serial.print(" weAreHereNow =" );
Serial.println (weAreHereNow);
delay(10); // use this to speed things up and down.... responsible for the timing number calculation
//===========show the current volts with slow up routine called count.==========

if (count==5)
{
if (weAreHereNow==0)
{
lcd.setCursor(0,1);
lcd.print("BulkChg");
lcd.setCursor (8,1);
lcd.print(bulkTime/860); // makes it about a minute update at 860.. ish
lcd.print(" min");
}

if (weAreHereNow==1)
{
lcd.setCursor(0,1);
lcd.print("Absorb ");
lcd.setCursor (8,1);
lcd.print(floaTime/860); // makes it about a minute update at 860.. ish
lcd.print(" min ");
}

if (weAreHereNow==2)
{
lcd.setCursor(0,1);
lcd.print("Float ");
lcd.setCursor (8,1);
lcd.print(fullTime/860); // makes it about a minute update at 860.. ish
lcd.print(" min ");
}

lcd.setCursor(0, 0);
lcd.print("Volts = "); // print the volts out
lcd.setCursor (8,0); // the if count is to slow the screen update to the value of if count=x
lcd.print (val/16.94);
count=0;
}

count=(count+1); // increment the counter for printing to stop wobble

//====================this section just for song and dance and twinkly lights

if (weAreHereNow==0)
{
digitalWrite (stage1pin,1); //digital pin will light up for the bulk charge bit
}
else
{
digitalWrite (stage1pin,0);
}

if (weAreHereNow==1) // this lights up digital to signal stage 2 the absorb cycle
{
digitalWrite (stage2pin,1); // this is all to light up leds to see where we are in the cycle
}
else
{
digitalWrite (stage2pin,0);
}


if (weAreHereNow==2)
{
digitalWrite (stage3pin,1); //this lights up stage 3.. the float cycle
}
else
{
digitalWrite (stage3pin,0); // remember if we drop below about 50v it will reset everything, the leds will show this too.
}

val = analogRead(analogPin); // read the input pin

if (val< bulkCharge)
{
pulseVal=pulseVal + increment; // was not up to bulkCharge, then increase pulse width incrementally
}

if (val>=bulkCharge && weAreHereNow==0) // now bulkCharge is here, change the weAreHereNow to 1 as a flag
{
weAreHereNow=1;
}

if (val>bulkCharge)
{
pulseVal=pulseVal-increment;
}

if ( pulseVal>=255)
{
pulseVal=255;
}
if ( pulseVal<=0)
{
pulseVal=0;
}

analogWrite (ledPin,pulseVal);
if (weAreHereNow==0) //if weAreHereNow is one , then count each cycle from now on until it no longer equals 1
{
bulkTime=bulkTime+1;

}
if (weAreHereNow==1) //if weAreHereNow is one , then count each cycle from now on until it no longer equals 1
{
floaTime=floaTime+1;
bulkCharge=absorbCharge;
}

if (weAreHereNow==2) //if weAreHereNow is two , then count each cycle from now on
{
fullTime=fullTime+1;
bulkCharge=absorbCharge;
}

if (floaTime>=timedOut) // once we reach timedOut, we have finished our absorb sequence, change status flag weAreHereNow to 2, and change the voltage now to float value
{
weAreHereNow=2;
bulkCharge = floatVolts;
}

if (val<startAllOverAgain) // panic routine when voltage drops back to 48 volts or so.
{
weAreHereNow=0;
bulkCharge=absorbCharge;
floaTime=0;
}
}
//that all folks

Flinders Island...... Australia

Offline oztules

  • Moderator
  • Hero Member
  • *****
  • Posts: 1177
  • Karma: +105/-8
  • Village idiot
Re: Using old grid tie inverters to charge batteries
« Reply #6 on: July 21, 2017, 07:34:33 pm »
And a pic of it in operation this morning..... it got up to 59v before the hot water came on, and the sun faded a bit... so back at 54v, but the things seems to both work, and monitor the times and stages.

7151-0

forgot to calibrate it... so .2v discrepancy.... later...

.......oztules
Flinders Island...... Australia

Offline frackers

  • Full Member
  • ***
  • Posts: 239
  • Karma: +9/-0
  • If it moves - computerise it!
Re: Using old grid tie inverters to charge batteries
« Reply #7 on: July 22, 2017, 04:47:40 am »
So using one of my normal pwm boards, I interfaced the totem pole output to the mosfet, attached to the  huge heat sink of the inverter..... and quietly stood back to pick up the pieces. A quick back of the envelope said I^2R would be only about  8 watts losses..... but that would be before switching losses ... what would it really be.
................oztules

Still no idea what a "normal PWM board" is...
Robin Down Under (or are you Up Over!)

Offline oztules

  • Moderator
  • Hero Member
  • *****
  • Posts: 1177
  • Karma: +105/-8
  • Village idiot
Re: Using old grid tie inverters to charge batteries
« Reply #8 on: July 22, 2017, 06:52:50 am »

Sorry Frackers

Thats the analog version of it... the normal use for that blue circuit board. It is a 4 comparator, and does the same thing, but no where near as interesting, as it does not do the three stage bit..... which is not a real problem, but nicer.
. Used with 60 cell panels, works very effectively for well over the hundred amp range when mixed with 8 hy4008 fets.

Here is the normal pwm board that is in a few of my creations

7153-0

.......oztules
Flinders Island...... Australia

Offline lighthunter

  • Sr. Member
  • ****
  • Posts: 323
  • Karma: +13/-0
Re: Using old grid tie inverters to charge batteries
« Reply #9 on: July 23, 2017, 10:50:56 am »
Very good work Oztules! Your work is outstanding. I dont know how you do it. I'm fairly good at repairing things that someone else has built but getting a fet to switch at khz and up speeds without heat to destruction is a tremendous accomplishment in my world.

Another point of value is your  programming style,  ive heard many complaints of aurduino programs because most folks dont explain what each line of code does.

I totally agree with your observations of 60cell and mppt. I have a 10 panel array made of severly compromised quality (eva bubbles etc) they are thr 40v type so 2 in series, i tried a cheaper mppt unit for $100 ipanda or similar. Darn thing works real well, cant complain, thougb the settings are difficult to maneuver but in full sun i measure more amp flow to batteries by direct connecting array to battery and loosing the 20v. I may try a pitch at a buck converter myself when the sweetcorn is put up, I dont see how i could do any worse than that efficiency wise. I wonder how many mppt believers actually run the numbers to see if their mppt is gaining them the power they say?  Of the GTI units ive checked they seem to be much better or perfect in that regard.

Thank you for your time & trouble to help us out!
Health Warning: May contain traces of nut!
LH

Offline oztules

  • Moderator
  • Hero Member
  • *****
  • Posts: 1177
  • Karma: +105/-8
  • Village idiot
Re: Using old grid tie inverters to charge batteries
« Reply #10 on: July 23, 2017, 04:48:31 pm »
Found bugs in program, fixed same, and will upload after a full days running.

Thanks for the kind words

.........oztules
Flinders Island...... Australia

Offline DJ

  • Full Member
  • ***
  • Posts: 82
  • Karma: +5/-1
Re: Using old grid tie inverters to charge batteries
« Reply #11 on: July 24, 2017, 02:14:47 am »

Another point of value is your  programming style,  ive heard many complaints of aurduino programs because most folks don't explain what each line of code does.

My problem as a beginner is that people pretty much refuse to provide schematics saying one needs to learn how to figure it out. I don't know how they learnt but If I can't figure out the component and circuits, I can't do ship so I'm not going to learn a thing.
The things I have built with the schematic and Code I HAVE learnt from because I can see how they work and can therefore modify and play with and learn a lot from that.  Pretty much the few things I have built and am using are my own modifications so it's not like I'm just following the numbers and remaining totally clueless. 

I have asked many times in different places but still no one has been kind enough to tell me How ( IF) I can work out the components and wiring just from the code. I have read loads of Code for things I want to build and I'm not smart enough to work it out regardless if anyone else is or not.

There is a LOT of things I'd like to build and do but I am finding the learning curve very steep. Might be OK if you are an electronics boffin but for just a hacker with a bit of electrics knowledge, seems like bit of a closed shop.

Offline oztules

  • Moderator
  • Hero Member
  • *****
  • Posts: 1177
  • Karma: +105/-8
  • Village idiot
Re: Using old grid tie inverters to charge batteries
« Reply #12 on: July 24, 2017, 06:28:25 am »
Sorry DJ...

 but I don't have schematics..... I see it in my head, and just draw the board in protel for windows. I don't burn up lots of  time with circuits, ( not that I can read anyway, as I scribble rather than draw if I do any part of the circuit on paper.)

They are obviously wonderful things, and I appreciate other people doing circuits... but I just don't do them on these simple projects, and not even on serious projects  ( years ago).
If I had them, you would be welcome to them.

You are very welcome to reverse engineer them, and publish them for others if you so desire, but I just don't do them I'm afraid...

It does cause me great angst... as all the newer PCB programs are rubbish if you want to free hand like I do, they require a circuit to profile the actual parts... and try as I might, I just give up as it is too hard for me to do schematics in them... the programs are written by aliens.

 Protel I know backwards (PFW.exe), and allows freehand board design... very quick to get your thoughts on a board, but the newer protel is both stupid expensive, and impossible to use as easily as the old junk I like.

So I do projects for me, and share them with others that may want to copy or improve. The board pattern is the best way to get into it quickly, and get the results I get.

On another forum, another chap did do the reverse engineering, of the egs002 and 8010 projects.....and proceeded to make a beautiful inverter board system... which blew up every time when he loaded it up, and cost him many fets, big IGBT blocks and egs002 boards... so layout is important sometimes too in certain projects.. probably better to copy what works until your familiar with it.

So the board pattern is much more important than the circuit..... reverse engineer it if it helps you to understand it though.

He still has not got it going..... last seen going off on a tangent worrying about the series inductor, and blaming that for the failures..... I have found the coil to be insignificant  to that problem.... at high power, the layout counts.

The last program I think that needs to be done is  now finished.
Will do another day with it to get comfortable it is bullet proof.

It averages out the readings to stop spurious pin voltages. I did not do the array system of round robbin averaging...too advanced for me, so I did a simple version that probably works as fast cycle time wise. It averages 5 readings before committing to the read value.... real programmers are advised not to look.

If there is anything you wish to know about this or other projects I have done... ask.



......oztules
Flinders Island...... Australia

Offline welshman

  • Full Member
  • ***
  • Posts: 136
  • Karma: +6/-1
Re: Using old grid tie inverters to charge batteries
« Reply #13 on: July 24, 2017, 05:54:45 pm »
very interesting info. nice controller, some thought must have went into that.

Offline frackers

  • Full Member
  • ***
  • Posts: 239
  • Karma: +9/-0
  • If it moves - computerise it!
Re: Using old grid tie inverters to charge batteries
« Reply #14 on: July 24, 2017, 06:34:19 pm »
OK - a few questions sans schematic.

What is pins 34, 35, 36?
Pins 189, 190, 191 is labelled 5k - if its a pot, which is the wiper?
From Battery to pin 50 of the tip35 is what?
from Pin 50 to 51 is what?
What type of opto (pinouts?)
The opto output goes to the source and drain of the series FET(s), where does the forward bias for the FET(s) come from?

I fully understand the 'straight to PCB' idea - my weather station update http://www.anotherpower.com/board/index.php/topic,1268.msg13750/topicseen.html does exactly that and worked well until I decided to change the DHT22 for a BME280 sensor where I couldn't remember what was connected to what!! I eventually traced it out and modified the PCB but I'm going to have to actually draw a schematic just to help my ailing brain cells if I decide on another change.

I've even started to learn kicad ;) (too many restrictions with the free version of Eagle)



Robin Down Under (or are you Up Over!)