To complement the work on the GS450h inverter, here is the control method for the 30kW Buck/Boost converter.
I control this converter using a bare Arduino Nano mounted to the inverter control PCB.
The following pins need to be connected (for the attached sketch)
- +5v
- GND
- HV Voltage Read (A0)
- LV Voltage Read (A1)
- PWM High (D6)
- PWM Low (D5)
Here's how I mounted my Nano:
Here's where to get the 5V from. I found it hard to solder onto the SMD pads, I scuffed the coating from this PCB trace and use that as a pad:
Here's where to find the HV reading. You can solder onto the pad for the 50-way connector, or strip and splice into the wire harness:
Here's where to find everything else You can solder onto the pad for the 16-way connector, or strip and splice into the wire harness. The GND I referenced is just a convenient place to get GND for the Nano, you can ignore this and get GND from anywhere else of your choice:
I de-pinned the PWM high and PWM low wires. I hear it works if you leave them fitted to the connector. Not tested.
I added CAN to my controller. I just used an eBay MCP2515 board. You can ignore this, it's up to you. If you don't want to use CAN, just delete all the relevant parts from the code.
To enable the converter, you need to do the following:
- Remove R648.
- Replace D14 with a 0R link (I used an 0805 0R resistor, you can use a piece of wire, blob of solder, etc).
I do not know the function of this PCB modification. Thanks to Damien for the advice here. No idea what I did wit this modification, but it works.
I have not tested if the inverter still works after doing this modification.
The code is attached. It adjusts the voltage to your desired setpoint, and outputs diag data over serial and CAN.
I have left out the "decide what mode to use" function, you can finish that yourself using your own method.
This converter can easily produce dangerous voltages from seemingly harmless low voltage supplies. I've tested this at 180v from a 12v PSU. For that reason, I've left the code non-functioning (it will work fine but not enable Buck or Boost mode unless edited).
I added a few lines to keep the voltage within a max/min that you specify, but this in untested.
There is also a spreadsheet, which converts between the readings and actual voltages. I don't intend to do the conversion within the programming, because I do not know if my divisor and offset values are correct. Better to base it on the raw readings. I'll say again: The conversions in the spreadsheet may be incorrect. Test and verify with a multimeter before use.
Use at your own risk, you're responsible for your safety and your property. If there's a fault or mistake with the details in this thread, or my programming, and you destroy your converter or any attached hardware, injure yourself or someone else through bad electrical safety practices, etc, then you're on your own.