Chip McClelland
Published © GPL3+

Solar Power Module V2

Single board to control solar charge and battery monitoring for your outdoor projects. Your project will see a perpetually charged battery.

AdvancedFull instructions provided3 hours7,255
Solar Power Module V2

Things used in this project

Hardware components

Custom fabricated PCB
OSH Park Custom fabricated PCB
×1
Microchip MCP73871
×1
Maxim Integrated MAX17043 - LiPo Fuel Gauge
×1
Texas Instruments TPS63020
×1
4700uF Electrolytic Capacitor
×1
Seeed Studio 3W Solar Panel
×1
10k Thermistor 0805
×1
Mini-USB Socket
×1
2.05mm Barrell Connector
×1
JST Connect
×1
Schottky Diode 1A
×1
2.2uH Inductor - 3.5A - 29.9mOhm
×1
22uF 16V 0805 Capacitor
×1
Various 0805 Caps, Resistors, LEDs - See Schematic
×1
SparkFun 2000mAH LiPo Battery
×1

Story

Read more

Schematics

EAGLE Schmatics and Board Layout

System Schematics

Board Layout

Board layout image

MAX74043 DataSheet

Datasheet for Fuel Gauge

Microchip MCP73871

Datasheet for Charge Controller

TPS63020 Power Supply Data Sheet

Datasheet

Link to EAGLE Files on Github

These files were made using EAGLE version 8

Code

LiPo Fuel Guage Example Code

C/C++
in Arduino to poll the Maxim LiPo Fuel guage and get the state of charge
#include "MAX17043.h"
#include "Wire.h"

MAX17043 batteryMonitor;

void setup() {
  
  Wire.begin(); 
  Serial.begin(9600);
  Serial.println("MAX17043 Example: reading voltage and SoC");
  Serial.println();
  
  batteryMonitor.reset();
  batteryMonitor.quickStart();
  delay(1000);
  
  float cellVoltage = batteryMonitor.getVCell();
  Serial.print("Voltage:\t\t");
  Serial.print(cellVoltage, 4);
  Serial.println("V");

  float stateOfCharge = batteryMonitor.getSoC();
  Serial.print("State of charge:\t");
  Serial.print(stateOfCharge);
  Serial.println("%");
}

void loop() {    
}

Credits

Chip McClelland

Chip McClelland

6 projects • 138 followers
I build connected sensors.

Comments