System Schematic Overview
- For a recent overview see: Other Uses for Solar Activity
- Talk I gave at local Amateur Radio Society meeting on building an off-grid electrical system
Note shown in the above schematic are the inline ANL type fuses at each battery, at the Inverter/Charger, and at the MPPT solar input and DC output. The 0-1-2-3-A switch is located in the engine well near the battery storage. The switch is always set to provide starter power from the start battery, but allows for an emergency operation to use the house battery for starting. A 0-1 switch controls the power to the starter and is located by the companionway for easy access from the cockpit or cabin interior.
System Batteries
- House Battery
- LiFePO4 560AH Capacity Prismatic Cells [See info LiFePO4 Battery description and build]
- BMS shutdown protection settings
- Cell Voltage: Over 3.65V, Under 2.80V
- Battery Voltage: Over 14.6V, Under 11.2V
- Battery Current Charge/Discharge: Over 130A for 10s
- Cell Temperature Charge/Discharge: Over 55 degrees C
- Cell Temp. Charge: Under 1 degree C
- Cell Temp. Discharge: Under -10 degrees C
- Start Battery
- EverStart Lead Acid Marine Starting Battery
- Group Size 24MS (12 Volt/625 MCA)
- Used for engine staring and for safe Alternator charging with LiFePO4 battery combination
Solar Charging
The solar charging system is configured with a MPPT charge controller which can provide a maximum of 40A of battery charging current with a maximum solar input voltage of 100V. For a 12V battery system, the 40A max current limits the solar power input to approximately 550W. Connecting multiple solar panels in series up to the maximum 100V, allows for the maximum power point performance efficiency, lower resistive power lower losses in the solar panel connector wires, and an easier and lower cost installation. This 40A MPPT is ideal for operating with 3 solar panels of 175W connected in series. The current solar panel setup allows for a total of 3 flexible solar panels mounted on the Bimini top canvas, but currently only two 175W flexible solar panels are utilized. The two panels are connected in series providing 350W maximum power with 48V into the MPPT charge controller.
Since it is easy to mount and remove the flexible panels on the Bimini top, while on shore power the panels are removed and safely store below the v-berth cushions.
The charge controller is configurable using the device's LCD panel menu or via a Bluetooth interface module using the manufacture's smart phone app. The current solar charging configuration is for the LiFePO4 house battery using the following setting:
- Boost: 14.45V
- Boost Return: 13.30V
- Over V warning: 16V
- Under V warning: 12V
- Under V recover: 12.2V
- Low V disconnect 11.0V
- Low V reconnect 12.6V
For solar charging, the Boost Voltage is set to 14.45V with the Boost Return Voltage is set to 13.30V. This is to maximize solar charging during daylight hours keeping the battery capacity between 96% and 80%.
Components
- Solar Charge Controller
- Renogy Rover Li 40 MPPT with Bluetooth BT-1
- 100V Vmax solar input
- 40A DC output
- 550W Maximum Power for 12V battery system
- Solar Panels
- Renogy 175W Flexible Monocrystalline Solar Panel
- 175W, VOC 23.9V,
- 3 Panels in Series
- Total VOC of 71.7V (less than MPPT Vmax as required)
- Total Pmax of 525W (less than MPPT Pmax as required)
Shore Power Charging and AC Power Inverter
With the added battery capacity of the LiFePO4 house bank, a 2000W inverter charger was installed. All AC outlets, but two, are powered through the inverter. These outlets include the microwave, but not the separate GFCI outlets for the water heater nor the GFCI outlet tied into the A/C and heater unit. The model installed is a Renogy PCL1-20111S 2000 Watt 12V DC to 120V AC Pure Sine Wave Inverter Charger. This inverter charger is equipped with a 30A transfer relay switch that automatically switches between Inverter and Standby mode depending on availability of AC shore power. If shore power is present, the transfer relay bypasses up to 30A of the incoming AC power through the inverter to power the AC loads on the inverter’s output. When the shore power is disconnected, the inverter powers the loads through the battery bank. The automatic power transfer occurs without any power interruption.
This inverter charger is fully configurable and can provide a charging current settable from 5-65A. This unit has been configured using the custom setting (menu P-05 set to "b-0") for a Lithium battery type configuration (menu P-94 set to "ALb") with the following charging parameters: Charging Current (P-11) of 45A, Boost Charge Voltage (P-26) of 13.4V (90% capacity), and a Charge Return Voltage (P-27) of 13.10V (60% capacity).
There is some discussion regarding the use of a float voltage stage for LiFePO4 batteries. For most solar operations, a float voltage is not needed. Most all of the LiFePO4 battery manufacturer's preconfigured and recommended charging settings do not utilize a float operation. But for a mobile operations, one may want the battery to be in a high state of charge, ready for full and immediate operation, and therefore using a float voltage like 13.4V (3.35V per cell) would keep the battery at approximately 90% capacity. While some may question the value of operating with a float voltage stage, well reputable LiFePO4 battery manufactures, like Battle Born, note that it is fine to float their batteries at voltages up to 13.6V. At present, the inverter charger is set not to float charge.
Renogy Inverter/Charger Menu Settings for Custom LiFePO4 charging
- Set to Battery Type to Custom Type /User Mode [Set P-05 to b-0]
- Choose Li battery type [Set P-94 to ALb]
- Set Max Charge Voltage [Set P-26 to 13.40V]
- Set Charge Return Voltage [Set P-27 to 13.10V]
Components
- Inverter/Charger
- Renogy PCL1-20111S 2000 Watt 12V DC to 120V AC Pure Sine Wave Inverter Charger
- Automatic Transfer Switch between AC Shore Power and AC Inverter Power
- Charging Current range 5-65A
- Configurable Charging Profiles
Alternator Charging
The current engine alternator is an AMPTECH S120Si which is internally regulated and rated at 120A output. Because the BMS can abruptly disconnect the battery during charging, an alternator should not be directly connected to a BMS controlled battery without additional protections. There are many solutions to protect the alternator. A safe, simple, and affordable solution is to use a tradition battery (FLA or AGM) for a START battery with the alternator connected directly to the START battery for charging. A battery combiner, such as an automatic charging relay (ACR) or DC to DC charger, can then safely combine the START and HOUSE banks for alternator charging. If during charging, the BMS disconnects the HOUSE bank, the alternator which is always connected directly to the START battery, is protected from the sudden disconnect of the HOUSE battery.
A DC to DC charger was considered, but this option would either limit the alternator charging current to 60A or less, or require multiple DC to DC chargers operating in Parallel. It was realized that an existing Blue Sea SI-ACR, which was utilized for previous combining FLA batteries, could easily be modified for safely combining the lead acid START battery with the LiFePO4 HOUSE battery. An issue with the stock Blue Sea SI-ACR is that the default sense voltage for combining batteries is below normal LiFePO4 operating voltage. Resulting in the stock ACR always combining the batteries even without any charging voltage. The solution is to control the ACR's ground connection with a remote switch. This was confirmed by contacting Blue Sea support, who noted that the ACR's relay is spring loaded such that with the ground disconnected, the relay would automatically disconnect the combined battery.
First, a simple manual push/pull switch was installed to control the ACR ground. Pull the switch out, and the ACR combines the batteries after a built-in ACR delay of 60s. Push the switch back in, and the ACR disconnects the batteries. While a simple switch works, it requires manual control. To automate the switching, a smart switching device was made using an Arduino to senses the ignition power to control a relay which connects/disconnects the ACR to ground. This Smart Switch operates with a configurable time delay to allow for additional delay beyond the ACR default. In addition, 2 temperature probes were added to the Smart Switch. One probe monitors the HOUSE battery temperature and if this temperature drops below 32 degrees F (freezing) then the ACR is disabled. The second temperature probe is for monitoring the alternator temperature and if this temperature goes above 200 degrees F, the ACR is disabled. In both cases, the ACR can automatically resume operation when the temperatures return to within the specified ranges. A mini USB port allows for connecting a computer to change any of program parameters such as delay time or temperature limits. An LCD display on the Smart Switch indicates the operating status and displays the alternator and LiFePO4 battery temperatures.
Images for the Arduino Smart Switch: The first photo show the Smart Switch operating under normal conditions. This photo also shows a connection to a computer by the Arduino's mini USB port. The USB connection allows for changing the Smart Switch parameters such as the delay time or min/max operating temperatures. Under normal operations, the Smart Switch does not require a USB connection.
Arduino Smart Switch with control relay ON Arduino Smart Switch with control relay OFF
ARDUINO CODE
/* * Smart SI-ACR controller * * This code follows the Makerguide.com example for the DS18B20 1-Wire digital temperature sensor * with 16x2 I2C LCD and Arduino example code. More info: https://www.makerguides.com/ds18b20-arduino-tutorial/ * */ // Include the required Arduino libraries #include <onewire.h> #include <dallastemperature.h> #include <liquidcrystal_i2c.h> // Define input/output pins #define ONE_WIRE_BUS 2 // readout pin for temp probes #define RELAY 7 // output pin for the relay control // Create a new instance of the oneWire class to communicate with any OneWire device: OneWire oneWire(ONE_WIRE_BUS); // Pass the oneWire reference to DallasTemperature library: DallasTemperature sensors(&oneWire); LiquidCrystal_I2C lcd(0x27, 16, 2); // Degree symbol: byte Degree[] = { B00111, B00101, B00111, B00000, B00000, B00000, B00000, B00000 }; bool isOn = true; void setup() { // Start up the library: sensors.begin(); // Start the LCD and turn on the backlight: lcd.init(); lcd.backlight(); // Create a custom character: lcd.createChar(0, Degree); digitalWrite(RELAY, LOW); pinMode(RELAY, OUTPUT); lcd.setCursor(0,0); lcd.print("ALT BAT CHARGING"); lcd.setCursor(3,1); lcd.print("Delay Start"); delay(30000); // initial delay of 30 seconds } void loop() { // Send the command for all devices on the bus to perform a temperature conversion: sensors.requestTemperatures(); // Fetch the temperature in degrees Fahrenheit for two devices int i = 0; float AlternatorTemp = sensors.getTempFByIndex(i++); // the index 0 refers to the first device float BatteryTemp = sensors.getTempFByIndex(i++); // Print the temperature on the LCD; lcd.setCursor(0,0); lcd.print("ALT LiFe CHG:"); lcd.setCursor(13,0); if(isOn) lcd.print(" ON"); else lcd.print("OFF"); lcd.setCursor(0,1); lcd.print(" "); // clear the line lcd.setCursor(0,1); lcd.print("A:"); lcd.print((int) AlternatorTemp); lcd.write(0); // print the custom character lcd.print("F "); lcd.setCursor(8,1); lcd.print(" "); lcd.setCursor(8,1); lcd.print("B:"); lcd.print((int)BatteryTemp); lcd.write(0); lcd.print("F"); if(BatteryTemp < 32 || AlternatorTemp > 200 ) { isOn=false; digitalWrite(RELAY,LOW); } else { isOn = true; digitalWrite(RELAY,HIGH); } // Wait 1 second between updates delay(1000); }