ULtra Compact 1800W charger + Eltek programming

Batteries, Chargers, and Battery Management Systems.
dominik h   100 W

100 W
Posts: 193
Joined: Jul 24 2021 2:12am

Re: ULtra Compact 1800W charger + Eltek programming

Post by dominik h » Nov 29 2021 11:42am

Just done a few tests with FP2 Front End 3000W HE Version, testing was done with an electronic load and a 7S ,10S and 11S 70Ah Li-Ion battery
Voltage can be set from 43.6 to 57.5V
Under 12V the output turns off
Output current from 12-27V 31.5A
Between 27-36V did not test it.
Output from 36-39V, one minute 63A then it reduces to 31.5A
Output from 40-48V 63A
Above 48V limiting to 3000W

Current setting only works above 48V.
Below 48V current setting is completly ignored.

I think this has to do with the lead acid charging curve, implemented in the Eltek.
Does someone know how to set this as a cc/cv power supply.
Are the 2kW FP2 doing the same? I want to make a 230V single phase 3kW charger for 21S.

I have a Megmet 3kW rectifier which can be set via can , if it should behave as a charger or a cc/cv power supply.

Ecologicalleds   100 µW

100 µW
Posts: 8
Joined: Dec 02 2021 9:27am

Re: ULtra Compact 1800W charger + Eltek programming

Post by Ecologicalleds » Dec 02 2021 9:37am

Got some flatpack2 he front end 48v/3000w revision 2.3.
I contacted eltek and they gave me the I2C protocol for these.
The can bus does not seem to work as the other eltek supplys.
I started trying to write the I2C comms, still working on it.
Attached is the paper they gave me.
Attachments
I2C_Application_Guide - V2.6.pdf
Eltek/Valere i2c comms
(96.08 KiB) Downloaded 85 times

Ecologicalleds   100 µW

100 µW
Posts: 8
Joined: Dec 02 2021 9:27am

Re: ULtra Compact 1800W charger + Eltek programming

Post by Ecologicalleds » Dec 02 2021 12:03pm

Im able to read the serial number via i2c!
Now onto working on the settings.
Attachments
IMG20211202115808.jpg
I2c eltek Arduino
IMG20211202115808.jpg (5.22 MiB) Viewed 873 times

jjlynn27   1 µW

1 µW
Posts: 4
Joined: Dec 02 2021 5:18pm

Re: ULtra Compact 1800W charger + Eltek programming

Post by jjlynn27 » Dec 02 2021 5:35pm

That's awesome!
I bought few of the £15 ebay ones, and I'm desperate to get them down to 48V. I'm strugling to do it via CAN.

jjlynn27   1 µW

1 µW
Posts: 4
Joined: Dec 02 2021 5:18pm

Re: ULtra Compact 1800W charger + Eltek programming

Post by jjlynn27 » Dec 02 2021 5:55pm

stinkhorn wrote:
Sep 03 2021 10:58am
It's actually an easy one to interface without a PCB. Normal spade terminals are very secure on the AC in and DC out. Small jumper cables go to whatever Can Bus thingy you're using. There's a short pin that's got to be grounded too - just like a lot of server PSUs.

I don't have that PCB sitting on top when it's on 8)

.
Stinkhorn,
I seem to have the same interface board as you do and the same FE rectifier. Would you mind sharing the whole connections (if it's not too much to ask picture of wires on PSU, Can-IF and arduino, also code and which library you were usiing?

That would be very much appreciated.
Thanks JJL

Ecologicalleds   100 µW

100 µW
Posts: 8
Joined: Dec 02 2021 9:27am

Re: ULtra Compact 1800W charger + Eltek programming

Post by Ecologicalleds » Dec 02 2021 10:39pm

Ok a little progress on i2c.😁
Default voltage and amps are settable, I set and tried 48v and 52.4v, 10-60a.😁
Over voltage prolly can be done too.
Looks like a high voltage shutdown restart is settable.
Can be done via a global i2c calls(all receive same message at once).Going to connect all 3 for a power bank and see how it works.

Reading psu is done by addressed calls.
Working on temperature values.
Attachments
IMG20211202222659.jpg
Eltek 48v/3000w
IMG20211202222659.jpg (4.23 MiB) Viewed 855 times
IMG20211202222711.jpg
Setting default volts and amps
IMG20211202222711.jpg (3.57 MiB) Viewed 855 times

Ecologicalleds   100 µW

100 µW
Posts: 8
Joined: Dec 02 2021 9:27am

Re: ULtra Compact 1800W charger + Eltek programming

Post by Ecologicalleds » Dec 03 2021 12:36am

All three accept global calls on the I2C bus!
Attachments
IMG20211203000354.jpg
I2c response
IMG20211203000354.jpg (7.99 MiB) Viewed 851 times
IMG20211203000445.jpg
I2c to mega2560
IMG20211203000445.jpg (3.96 MiB) Viewed 851 times

jjlynn27   1 µW

1 µW
Posts: 4
Joined: Dec 02 2021 5:18pm

Re: ULtra Compact 1800W charger + Eltek programming

Post by jjlynn27 » Dec 03 2021 4:04am

Ecologicalleds wrote:
Dec 02 2021 10:39pm
Ok a little progress on i2c.😁
Default voltage and amps are settable, I set and tried 48v and 52.4v, 10-60a.😁
Over voltage prolly can be done too.
Looks like a high voltage shutdown restart is settable.
Can be done via a global i2c calls(all receive same message at once).Going to connect all 3 for a power bank and see how it works.

Reading psu is done by addressed calls.
Working on temperature values.
That's awesome, are you connecting -v out to the short pin? Would you mind sharing the code to set single supply to 48v?
Regards JJL

Ecologicalleds   100 µW

100 µW
Posts: 8
Joined: Dec 02 2021 9:27am

Re: ULtra Compact 1800W charger + Eltek programming

Post by Ecologicalleds » Dec 04 2021 10:10pm

jjlynn27, I'm controlling the short pin for my application, but for this sketch, yes connect short pin to d/c v out gnd to enable the psu.

coolice, does your board have all i2c pins broken out SDA, SCL, and I2C GND? I may want a few of those if they are I2C usable.

This sketch will set default voltage, max amp out, and high voltage shutdown.
Should work for most eltek psu's that have i2c.
If the psu is not in the list and works, please let me know so can be added to the sketch psu list.
Instructions in sketch.

Code: Select all

/* 
Kevin Orourke 12/2021
Copyright (c) 2021 Ecological Leds LLC.  All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

- Redistributions of source code must retain the above copyright notice,
  this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimer in the documentation
  and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.


This should work on several different eltek psu uints that have i2c,
this is an old protocol from valere. (eltek bought out valere)

HOW TO:
  Not always needed, but connect 5v from psu 5v+ pin to arduino 5v+ pin
  Connect psu dc out gnd to arduino gnd and psu short pin
  Psu sda and scl pins to arduino i2c pins
  Psu i2c ground pin to arduino gnd pin, I needed to do this on mine

  Comment out what you do not need to set
  
Note: this is a global command sent to all psu's on the i2c bus

Please, if this works on an eltek psu not listed, please add below to the list
with your name or calltag. Thank you 

This works on:
 ** flatpak2 eltek 48v/3000w HE front end model 480875, 43.5-56vdc 10-60amp -Kevin Orourke
 
 
 */
 
#include <Wire.h>

uint16_t voltage = 4800;                // default voltage output in centivolts, i.e. 48.00v == 4800
// uint16_t amp = 6000;                    // default amps max output in centivolts
// uint16_t vsd = 5200;                    // default max voltage shutdown in centivolts

void setup() {
  Wire.begin();
  Wire.setClock(20000);
  
  Serial.begin(115200);
  
  Serial.println("Waiting 15 seconds for PSU");

  delay(15000);
  
  scan_i2c ();                          // check for power supplies on the i2c bus
  
  delayMicroseconds(10000);
  
  commandPsu(0x00, 0x02, 0x72, voltage);// i2c command for setting voltage
  // commandPsu(0x00, 0x02, 0x74, amp);    // i2c command for setting max amps
  // commandPsu(0x00, 0x02, 0x76, vsd);    // i2c command for setting max voltage shutdown
  
  Serial.println("done");
  Serial.println("better way: disconnect short pin for 2 seconds then reconnect");
  Serial.println("other way: unplug power supply and wait 30 seconds");
}

void scan_i2c () {
  byte error, address;
  int nDevices = 0;

  Serial.println("Scanning for power supplies");

  for (address = 1; address < 127; address++ ) {
    Wire.beginTransmission(address);
    error = Wire.endTransmission();
    if (error == 0) {
      Serial.print("Power supply found at address 0x");
      if (address < 16){
        Serial.print("0");
      }
      Serial.println(address, HEX);
      nDevices++;
    }
    if (error == 4) {
      Serial.print("Power supply error at address 0x");
      if (address < 16){
        Serial.print("0");
      }
      Serial.println(address, HEX);      
    }
  }
  
  if (nDevices == 0) {
    Serial.println("No power supplies found");
    Serial.println("Hualting, fix i2c problem");
    while(1);
  } else {
    Serial.println("Setting default voltage");
  }
}

uint8_t crc82(uint8_t *p, uint8_t len) {
  byte chk = 0;
  for ( int i = 0; i < len; i++) {
    chk += p[i];
  };
  chk = 256 - chk;
  return chk;
}

void commandPsu(uint8_t addr, uint8_t p, uint8_t o, uint16_t value) {
  uint8_t h = value >> 8;
  uint8_t l = value & 0xFF;
  uint8_t data[] = {addr, p, o, h, l};
  uint8_t crc = crc82(data, sizeof(data));
  Wire.beginTransmission(addr);
  Wire.write(p);
  Wire.write(o);
  Wire.write(l);
  Wire.write(h);
  Wire.write(crc);
  Wire.endTransmission();
  delayMicroseconds(10000);
}

void loop() {
}

dominik h   100 W

100 W
Posts: 193
Joined: Jul 24 2021 2:12am

Re: ULtra Compact 1800W charger + Eltek programming

Post by dominik h » Dec 05 2021 2:00am

Have you tried the CC mode at 44V or something below 47V with the 3000W rectifier?
Mine do CC only at 48V and above

Ecologicalleds   100 µW

100 µW
Posts: 8
Joined: Dec 02 2021 9:27am

Re: ULtra Compact 1800W charger + Eltek programming

Post by Ecologicalleds » Dec 05 2021 9:37am

Dominik h, no I have not tried cc mode below 48v. I need voltage control at 52.4v.

My application for these psu's is 52.4v, 52.8vsd, 150a for the trio.

I wrote the default voltage setting code after jjlynn27 asked if I would share it.

I have a feeling the i2c will work on several different eltek psu's. Would like to make a library for these, have a starting point, but I would need some help.
Attachments
IMG20211204191935.jpg
Nodemcu wifi nrf24 LCD power bank control
IMG20211204191935.jpg (5.24 MiB) Viewed 786 times

dominik h   100 W

100 W
Posts: 193
Joined: Jul 24 2021 2:12am

Re: ULtra Compact 1800W charger + Eltek programming

Post by dominik h » Dec 05 2021 10:27am

150A is serious power

I wanted to built a 21S charger with 120A out of 6 Elteks on 3 phase 16A , and I want to build a second charger that runs from the German standard wall socket. Which is 230V 3600W.
Just ordered two eltek 2000W HE, I wil soon see how they react when voltage is around 35-43V for each supply. With these I need no CC function. They can run full power.
The Zivan 3kw charger I use at the moment, draws up to 19A, due to bad efficiency and a bad power factor correction and the Zivan NG7 is not much better but it stays under 16A on 3 Phase.

Ecologicalleds   100 µW

100 µW
Posts: 8
Joined: Dec 02 2021 9:27am

Re: ULtra Compact 1800W charger + Eltek programming

Post by Ecologicalleds » Dec 05 2021 10:44am

Lol, yes I need some power to run all my gecooled LED rails for growing, each one requires up to 20a @ 52.4v.

That's a heck of a charger compared to my drones 6s charger!

I only have 240v a/c 2 phase available from mains. Each unit will pull upto 15a @ 240a/c, or 19a at 120a/c.

The old sever supplies I use now have horrible efficiency, like 84%, and are at end of service hrs. The newer eltek is supposed to be above 96%.

I think I can only go down 43v on theses units, upto 57.6v in parallel output. Have not done anything in series output.

jjlynn27   1 µW

1 µW
Posts: 4
Joined: Dec 02 2021 5:18pm

Re: ULtra Compact 1800W charger + Eltek programming

Post by jjlynn27 » Dec 05 2021 3:14pm

I think I've messed up cabling so will try again when my son goes to sleep.
This is the unit that I have (x3). I'm only trying to 'code' one at the time as I'll only use one at the time.
psu_label.jpg
psu_label.jpg (534.27 KiB) Viewed 764 times
back_connector.jpg
back_connector.jpg (1.87 MiB) Viewed 764 times
front.jpg
front.jpg (1.61 MiB) Viewed 764 times
Basically, it says done but stays at original 52.15V.

I think i've messed up something with ground and/or +5 coming from PSU.

Regards, JJL

Ecologicalleds   100 µW

100 µW
Posts: 8
Joined: Dec 02 2021 9:27am

Re: ULtra Compact 1800W charger + Eltek programming

Post by Ecologicalleds » Dec 09 2021 4:38pm

Some parts drawn up and printed for a double supply LED system. Should have most of it assembled tonight. When I swap out the current supply, unsure...

Most of the I2C communication are done for now.

This will be the master control for upto 8 nrf24 LED rails @ full power(15a 52.2v each). 240*320 LCD, esp8266, nrf24l01+, home assistant.
Attachments
IMG20211208164055.jpg
IMG20211208164055.jpg (3.5 MiB) Viewed 705 times
IMG20211209162144.jpg
IMG20211209162144.jpg (3.92 MiB) Viewed 705 times

Scirturbo   1 µW

1 µW
Posts: 1
Joined: Dec 16 2021 6:53am

Re: ULtra Compact 1800W charger + Eltek programming

Post by Scirturbo » Dec 16 2021 11:13am

Hi,

I’m asking this for my brother. He asked me to change the default voltage of a Front End model.
I used your code but it will not hold the value. Changed the offset from 0x72 to 0x0C and the output voltage changed. So the code is working but not the offset 0x72h. Could you verify this?

dominik h   100 W

100 W
Posts: 193
Joined: Jul 24 2021 2:12am

Re: ULtra Compact 1800W charger + Eltek programming

Post by dominik h » Dec 22 2021 2:06pm

Just measured the 2000W HE with an electronic load.
Under 39V it shuts off.
Output current up to 42A.
Current limit works only above 48V
Voltage Setting 43,5-57V.
Very low noise level at idle but with more load the fan ramps up very fast.

klaus79856   1 mW

1 mW
Posts: 19
Joined: Sep 28 2019 2:48pm

Re: ULtra Compact 1800W charger + Eltek programming

Post by klaus79856 » Dec 23 2021 3:12pm

Do the Flatpack 2 PCBs also fit the Eltek Flatpack S 48V 1800 Watt ?

In case someone is interested in, a Flatpack S 48V 1800 Watt is now 490 Euro incl. 19% VAT + shipping from Germany.

Asked an eBay seller, he says no.
But I also found it should fit but + and - are reversed.

dominik h   100 W

100 W
Posts: 193
Joined: Jul 24 2021 2:12am

Re: ULtra Compact 1800W charger + Eltek programming

Post by dominik h » Dec 30 2021 2:25pm

Can the maximun current be saved in the Eltek 48V 2000W HE Model. I have the Rev 4 Version.

ylaw888   1 µW

1 µW
Posts: 1
Joined: Jan 11 2022 4:04pm

Re: ULtra Compact 1800W charger

Post by ylaw888 » Jan 11 2022 4:31pm

remmie1972 wrote:
Oct 26 2015 3:51pm
CONFIRMED.

This also works on a Flatpack S rectifier.
Default voltage set to 57.6 Volt (highest it is capable of) and it does go into constant current mode. Tested this with 4 pcs 12V 12Ah leadgell batteries in series.

Great work Planetaire !!
By the way you can also use header 05 00 9C 00 data length 5 : 29 15 00 LL HH with LL the low Byte of the voltage setting and HH for the High byte of the voltage setting (which is in centivolts)
This way it sends out a broadcast and you don't need the ID number of the charger.

Didn't tested if it would work without logging in. Probably not though. Nope doesn't work. You have to log in first, which makes sense.

So for 57.6 Volts use header 05 01 9C 00, data length 5 and data bytes 29 15 00 80 16 (1680 HEX = 5760 => 57.6 Volts) be sure to use Extended CAN-BUS mode (29 bits identifier), 125 kbps busspeed and all bytes in HEX format (should be obvious from the 9C and the 2B anyway :D ).

Here's the arduino code i used :

EDIT : THERE WAS A SCREWUP ON MY PART IN THE CODE, I used the wrong message which was previously given. The code is correct now.

Code: Select all

#include <mcp_can.h>
#include <mcp_can_dfs.h>
#include <SPI.h>

const int SPI_CS_PIN = 10;                                                          // Set CS pin to pin 10 (could be 9 for other CANshields)
MCP_CAN CAN(SPI_CS_PIN);                                                            // Set CS pin for CANBUS shield

void setup()                                                                        // Initialisation routine
{

START_INIT:

    if(CAN_OK == CAN.begin(CAN_125KBPS))                                            // init can bus : baudrate = 125k !!
    {
    }
    else
    {
    delay(100);
    goto START_INIT;
    }
    unsigned char login[8] = {0x14, 0x14, 0x71, 0x11, 0x08, 0x20, 0x00, 0x00};     //this is the serial number of the unit + 2 added bytes of 00 each, sernr on the unit reads 141471110820)
    CAN.sendMsgBuf(0x05004804, 1, 8, login);                                       //send message to log in and assign ID=1 (last 04 means ID=1, for ID=2 use 05004808 ) 

    unsigned char setdefaultvolt[5] = {0x29, 0x15, 0x00, 0x80, 0x16};              //this is the command for setting the default output voltage (Last two bytes, LSB first). 16 80 is the maximum voltage of 57.6 V
    CAN.sendMsgBuf(0x05019C00, 1, 5, setdefaultvolt);                              //send message to set ouput voltage to all chargers connected to the CAN-bus
}

void loop()                                                                        // main program (LOOP)
{                                                                                  // nothing to do :)
}

/*********************************************************************************************************
  END FILE
  Voltage settings 
  80 16 => 1680 HEX = 57,60 Volt (= highest possible voltage
  E6 14 => 14E6 HEX = 53,50 Volt (= factory set voltage)
  FE 10 => 10FE HEX = 43,50 Volt (= lowest possible voltage)
*********************************************************************************************************/
Hi remmie1972,
Thank you for the hard work you put into this project. I only discovered the project two weeks ago. Practically all the codes posted here didn't complie by my Arduino IDE. I suspect it all come down to different libraries you are using. I am a programing novice. Although I managed to get the Flatpack2 HE programmed with some alteration to the code, when it come to more complicated codes such as the one with LCD display, there are many lines failed to compile. It is possible to tell me which MCP_CAN library you used? I tried the Seeed_Arduino_CAN master, Coryjfowler, and the one that came with IDE. None of them were fully compatible. Thanks.

dominik h   100 W

100 W
Posts: 193
Joined: Jul 24 2021 2:12am

Re: ULtra Compact 1800W charger + Eltek programming

Post by dominik h » Jan 22 2022 1:51am

Does anyone know where is plus and minus on the Flatpack S DCDC 380/54 750W for the input voltage?

Just checked it myself, after reading that it is reverse polarity safe.
It runs with plus at pin 7 and minus at pin 6 , also in the other way, plus to pin 6 and minus to pin 7.

dominik h   100 W

100 W
Posts: 193
Joined: Jul 24 2021 2:12am

Re: ULtra Compact 1800W charger + Eltek programming

Post by dominik h » Jan 25 2022 6:15am

Flatpack S DCDC 380/54 750W working from above 35V, under 35V it shuts off.
Output current up to 15,7A.
Output power up to 850W but gets fast reduced to around 750W as labeled.
Output programmable from 43,5-57,5V as the other elteks. Rev 1.2 The voltage can be safed.
Last edited by dominik h on Mar 24 2022 5:11pm, edited 1 time in total.

leon   1 µW

1 µW
Posts: 1
Joined: Feb 21 2022 3:43pm

Re: ULtra Compact 1800W charger + Eltek programming

Post by leon » Feb 21 2022 4:05pm

Hi Everyone

I've been using 2 Flatpack2 HEs 48V/2000W in series as a fastcharger for my Zero SR. I can currently charge up my motorcycle to only 65% due to the factory voltage settings :lowbatt: . I have absolutely no knowledge in this topic and have built my charger from this thread solely. So yeah sorry for the dumb questions. Regarding the Voltage Change:
Sending the two lines of code that remmie figured out to the Flatpacks by Can will permanently change the voltage? So why are you guys using the arduinos to repeatedly send the code?
I do have access to an Ixxat Can to USB dongle (but noone to help me with it). Is there a way to communicate to the Flatpacks from my Computer using the Dongle? I'm learning java and Python in Uni but don't know what program/ interface/ terminal to use for this kinda stuff.
Thanks a lot guys
Cheers

dominik h   100 W

100 W
Posts: 193
Joined: Jul 24 2021 2:12am

Re: ULtra Compact 1800W charger + Eltek programming

Post by dominik h » Mar 24 2022 5:10pm

Eltek Flatpack2 HE Rev 6.0 is working from 35V and above.
Charging my 21S Li-NMC battery.
First test with two Elteks in series
Screenshot_20220314-150328.jpg
Screenshot_20220314-150328.jpg (402.69 KiB) Viewed 115 times
And my setup for 10kW charging power
20220322_172339.jpg
20220322_172339.jpg (2.6 MiB) Viewed 115 times

Post Reply