🚨 IMPORTANT: Please read the [Notes & Warnings] section carefully before proceeding with this project. It contains crucial safety information about battery configuration, charging, and sensor placement.
🖥️ Core Components | |
---|---|
🧠 Microcontroller | Xiao ESP32 C3 (Compatible with most ESP32 boards) |
📺 Display | 3.52" BiColor E-paper (360x240) |
🔋 Power Source | LiFePO4 6000mAh 3.2V |
⚡ Power Specifications | |
---|---|
Operating Voltage | ~3.2V |
Sleep Duration | 60 seconds |
Battery Thresholds |
📈 High: 3.4V 📉 Low: 2.9V |
🔌 Communication | |
---|---|
I2C Speed | 400kHz (Fast Mode) |
NTP Server | asia.pool.ntp.org |
Time Offset | 19800 (India, UTC+5:30) |
⚡️ Power Efficient |
🌙 Night Mode |
🔄 Auto Update |
📊 Battery Monitor |
60s Deep Sleep | Light Sensor Based | Daily NTP Sync | Voltage Tracking |
graph TD
A[Wake Up] --> B{Check Light}
B -->|Dark| C[Sleep Mode]
B -->|Light| D[Update Display]
D --> E{Battery OK?}
E -->|Yes| F[Update Time]
F --> G[Update Display]
G --> H[Deep Sleep]
Prerequisites
Required Libraries:
- Check header section inside .ino file
- OEM Display Libraries (Included)
Installation Steps
- Clone repository
- Configure WiFi:
const char *ssid = "Your_SSID";
const char *password = "Your_PASSWORD";
- Update pins in
src/epdif.h
- Upload code
📊 Battery Life Analysis - Test #1 (With ESP32 C3) | |||
---|---|---|---|
Start Date | End Date | Runtime | Status |
June 6, 2024 | November 1, 2024 | 4 months 27 days | ✅ Completed |
Performance Metrics 🔋 Initial Voltage: 3.6V 📉 Final Voltage: ~2.84V 🌡️ Temperature Range: 17-38°C |
📊 Battery Life Analysis - Test #2 | |||
---|---|---|---|
Start Date | End Date | Runtime | Status |
November 1, 2024 | Coming Soon | In Progress | ⏳ Running |
Performance Metrics 🔋 Initial Voltage: 3.6V 📉 Final Voltage: TBD 🌡️ Temperature Range: Monitoring... |
📊 Battery Life Analysis - Test #1 (With ESP32 C6) | |||
---|---|---|---|
Start Date | End Date | Runtime | Status |
Coming Soon | Coming Soon | Coming Soon | Coming Soon |
Performance Metrics 🔋 Initial Voltage: 3.6V 📉 Final Voltage: TBD 🌡️ Temperature Range: Coming Soon |
Build Requirements
- 💻 Arduino IDE 2.3.x or newer (tested)
- 📦 ESP32 Board Support Package
- 🔧 USB-C cable for programming
- 📚 Required libraries (see Prerequisites)
Debug Tips
- 🔍 Serial Monitor: 115200 baud
- 📊 Test points available for voltage monitoring (just lift the cover)
- 📡 WiFi6 2.4GHz
- 🕒 NTP synchronization
- 🔄 Daily updates
- 💤 Auto sleep when inactive
- 📈 ADC Resolution: 12-bit
- ⚡ I2C Speed: 400kHz
- 🔌 Power Modes:
- 🟢 Active
- 💤 Deep Sleep
Most DS3231 modules are sold with CR2032 or similar cells which are not rechargeable. If you are using a non-rechargeable cell then **REMOVE** either the resistor or the diode marked in the above image.
There are some misinformation over internet regarding the charging mode of TP5000. If you are going to use LiFePO4 cell with TP5000 then **DO NOT** short the above marked area with caption F.
- ⚡ Current Draw: This project's extremely low current consumption (well below rated cell capacity) makes the cell configuration safer
- 🛡️ Protection: Always use proper BMS protection for your cells
- 📝 BMS Setup: Due to limited 1S LiFePO4 BMS availability:
- Using 4.2V BMS for 2.5V cutoff protection (Low Discharge Cutoff)
- TP5000 connected directly to the cell for proper 3.6V charging
- This is a temporary solution until better 1S LFP BMS options become available
- ⚡ USB Connection Warning: Disconnect battery when connecting USB to ESP32C3
- XIAO modules are designed for LiPo/Li-ion batteries (4.2V charging)
- Not compatible with LFP battery charging (3.6V required)
- Dedicated USB-C module recommended
- Connect USB-C module output to TP5000 input
- Detailed schematics will be provided later
- Simple setup despite complex explanation
- ✅ Operating Range:
- All components work perfectly with LFP's lower voltage
- Tested operational down to 2.8V
- No impact on battery life or performance
- LFP cells maintain stable 3.2V for extended periods
- 6+ months of testing
- Components designed for wide voltage range operation
- 💨 Ventilation Requirements:
- Proper air vents are crucial
- Ensures accurate sensor readings
- Prevents heat buildup
⚠️ Please consider these points carefully before replicating this setup. Battery safety is crucial!
GNU General Public License v3.0
This project is licensed under the GNU GPL v3.0 - see below for details:
- ✅ Commercial use
- ✅ Modification
- ✅ Distribution
- ✅ Patent use
- ✅ Private use
⚠️ Liability⚠️ Warranty- ℹ️ License and copyright notice required
- ℹ️ State changes
- ℹ️ Disclose source
- ℹ️ Same license
We welcome contributions! Here's how you can help:
- 🔍 Fork the repository
- 🌿 Create your feature branch (
git checkout -b feature/AmazingFeature
) - 💾 Commit your changes (
git commit -m 'Add some AmazingFeature'
) - 🚀 Push to the branch (
git push origin feature/AmazingFeature
) - 📝 Open a Pull Request
- ✅ Clear description of changes
- ✅ Test your changes thoroughly
- ✅ Update documentation if needed
- ✅ Follow existing code style
- ✅ Add comments where necessary
Made with ❤️ and ♻️ materials by 🌍 Earth-conscious developers