The inspiration for this project came from seeing how much modern devices depend on electricity. Many people lose access to charging when they are outdoors, traveling, or in emergency situations. We wanted to build a portable power source that can work on its own and use solar energy to charge small electronics. Our goal was to design a system that is compact, efficient, and easy to use. The system shows real-time information such as battery level, charging status, and device power usage.
Power - The system gathers energy from a 5V solar panel, which is protected by a resettable fuse and a Schottky diode to prevent backflow. The BQ24075 charger IC manages power flow, safely charging a 3.7V Li‑Po battery while simultaneously powering the system when sunlight is available. Additional components like the AP7333 LDO and TPS61023 boost converter regulate the voltages needed for different parts of the circuit, ensuring that the ESP32 receives a stable 3.3V and that USB devices can receive a boosted 5V output for charging.
Actuation - The system gathers energy from a 5V solar panel, which is protected by a resettable fuse and a Schottky diode to prevent backflow. The BQ24075 charger IC manages power flow, safely charging a 3.7V Li‑Po battery while simultaneously powering the system when sunlight is available. Additional components like the AP7333 LDO and TPS61023 boost converter regulate the voltages needed for different parts of the circuit, ensuring that the ESP32 receives a stable 3.3V and that USB devices can receive a boosted 5V output for charging.
Computation - The ESP32‑S3 serves as the computational brain of the device. It continuously measures battery voltage, monitors solar input, detects whether a device is plugged in and drawing current, and evaluates overall system status. Using this data, it communicates real‑time information to users via a 0.96-inch OLED display. The microcontroller also manages logic such as disabling charging when the battery is full or interpreting 5V voltage sag as a sign that an external device is charging.
Code - The ESP32‑S3 serves as the computational brain of the device. It continuously measures battery voltage, monitors solar input, detects whether a device is plugged in and drawing current, and evaluates overall system status. Using this data, it communicates real‑time information to users via a 0.96-inch OLED display. The microcontroller also manages logic such as disabling charging when the battery is full or interpreting 5V voltage sag as a sign that an external device is charging.
The Solar Charging Station uses solar energy and smart power control to act as a portable charger. A 5-volt solar panel generates clean power. This power first passes through a fuse and a Schottky diode to protect the system.
The BQ24075 charger IC safely charges a 3.7-volt Li-Po battery. It can power the system and charge the battery at the same time. A thermistor monitors the battery temperature to keep it within safe limits.
The power is then regulated for different uses. A 3.3-volt LDO powers the ESP32-S3 microcontroller. A TPS61023 boost converter creates a steady 5-volt output for charging devices like phones. The ESP32 tracks battery level, solar input, and the 5-volt load to detect when a device is charging. All this information is shown on a 0.96-inch OLED screen for the user.
Core Electronic
ESP32‑S3‑WROOM‑1 Module Main
BQ24075 Battery Charger IC 1‑cell Li‑ion
TPS61023 Boost Converter (5V Output)
AP7333‑3.3 LDO Regulator Provides stable
Power Components
3.7V 2500mAh Li‑Po Battery
Adafruit 5V 1.2W Solar Panel
Resettable PTC Fuse (0ZRR0135FF1A)
Schottky Diode (SS14)
Inductor 1µH for boost converter
Connectors
USB‑C Power‑Only Receptacle (x2)
JST‑PH 2‑pin Battery Connector
Display
0.96" OLED (SSD1306, I²C)
Passive Components
Capacitors: 10µF, 4.7µF, 1µF, 0.1µF (various ceramic types)
Resistors: Feedback resistors (1.1MΩ, 150kΩ) Divider resistors (100kΩ, 220kΩ, 56kΩ)
Purpose
Handles solar-powered Li-Po battery charging and protection.
Purpose:
Provides computation, control, and user feedback for the solar charging Station.
Purpose:
Steps battery voltage (~3.7 V) down to 3.3 V for powering the ESP32 and other logic.
Purpose:
Steps the battery voltage (~3.7 V) up to 5 V to power the USB-C output port and allow charging of external devices.
The PCB layout organizes the solar charging system into clean
functional zones to ensure safe power flow and reliable performance.
At the top‑left, the solar input enters through a fuse and Schottky
diode, routing protected power into the board. The center‑left region
holds the BQ24075 charger IC, battery connector, and thermistor,
all placed close together with short, wide traces to reduce noise
and voltage drop.
The ESP32‑S3 module sits in the center with a radio keep‑out
zone beneath it, keeping digital routing clean and preserving wireless
performance. On the bottom‑right, the TPS61023 boost converter, i
nductor, diode, and capacitors form the 5V power stage, arranged
tightly to minimize switching noise. The USB‑C output connector sits
on the right edge for easy access, fed directly by thick 5V traces. The
OLED display and I²C lines are placed away from high‑current switching components to maintain signal integrity. A ground-filled bottom layer ties the whole board together, reducing noise and improving efficiency.
After we finished soldering all the parts, we were excited to try our PCB. But because the USB‑C port didn’t work the way we designed it, we couldn’t upload any code to the ESP32‑S3. Since this was our first time making a PCB, it makes sense that not everything worked perfectly. Even though the board didn’t fully function, building it taught us a lot about designing circuits, making layouts, and solving real hardware problems.
Understanding how the BQ24075 charger IC handled solar input, battery charging, and power‑path control took time.
Designing correct resistor dividers for battery sensing and 5V detection required calculation and verification. Integrating multiple regulators (LDO + boost converter) introduced complexity in ensuring stable voltage rails.
Ensuring the ESP32‑S3 pins were correctly mapped to all required signals (ADC, I²C, enable pins, etc.) caused several revisions.
Routing high‑current paths for the charger and boost converter without noise issues or voltage drop.
Maintaining a clean RF keep‑out zone under the ESP32 antenna while still fitting the entire design on the board.
Positioning the boost converter components tightly to reduce switching noise, while keeping digital traces isolated.
Managing ground planes and vias to avoid interference between analog measurements and switching converters.
Soldering the BQ24075 (QFN) and TPS61023 (tiny SOT package) was difficult because the pads were extremely small.
The ESP32‑S3 module required careful placement to avoid solder bridges, especially on the underside pads. Making sure every connection, especially the USB‑C pins and test points, was fully soldered with no hidden cold joints was challenging.
Some boards became unresponsive due to small soldering mistakes like shorts, incomplete joints, or lifted pads, which took time to diagnose.
In the future, this project can be improved by using a more efficient solar panel to increase charging speed and overall energy output. A larger battery or support for multiple batteries could extend usage time, especially in emergencies. Adding USB-C with fast-charging support would make the system more compatible with modern devices. The design could also be made more weather-resistant for reliable outdoor use. Wireless charging and a more advanced display or mobile app could improve user experience. Finally, optimizing power management and adding data logging would help reduce energy loss and track system performance over time.
In conclusion, our solar charging station shows how renewable energy, smart power control, and embedded computing can work together in a practical way. By combining a solar panel, a Li-Po battery, a charger IC, voltage regulators, and an ESP32 microcontroller, we created a portable system that delivers reliable 5V power. The system also monitors battery health, solar input, and device charging status in real time. This project highlights how careful circuit design and programming can turn simple components into a useful, self-sustaining solution that supports clean energy and everyday use.