Skip to content

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Sun Chaser ☀️

An ultra-low-power, portable single-axis active solar tracking platform engineered to maximize photovoltaic energy capture in mobile and off-grid deployments.

Platform Language Power Control


Overview

Static solar panels suffer significant cosine losses as the sun's angle of incidence shifts throughout the day. Sun Chaser addresses this by continuously aligning the photovoltaic surface normal to peak solar irradiance using real-time optical feedback.

Engineered for field portability and high net energy return, the entire active tracking and control system consumes an average of only 0.4W during standard operation, ensuring parasitic power draw remains negligible compared to generated output.


Demonstration & Hardware Design

Active Tracking Test Run

https://github.com/user-attachments/assets/figures/SunChaserTestRun.mov

Mechanical Form Factor

Deployed State (Operational)

Full aperture deployment with active single-axis rotational tracking.

Sun Chaser Operational View

Collapsed State (Transport Mode)

Folds flat for compact storage and portable field deployment.

Sun Chaser Collapsed View


Technical Specifications

Parameter Specification Details / Notes
Average Power Consumption ~0.4 W Optimized duty cycling & low-quiescent motor control
Tracking Axis Single-axis azimuth Continuous $10^\circ$ to $170^\circ$ sweep envelope
Control Architecture Closed-loop Proportional ($K_p = 0.1$) Dynamic step calculation with unit-step minimum guarantee
Deadband Threshold $8%$ of ambient intensity Adaptive tolerance prevents hunting and mechanical jitter
Sensor Interface Differential LDR array ADC inputs with 4-sample recursive moving average filter
Loop Frequency 20 Hz (50 ms interval) Non-blocking millis() state machine
State Persistence On-chip EEPROM 5-second delayed write caching to prevent EEPROM wear
Mechanical Design Folding linkage chassis High strength-to-weight ratio, collapses flat for portability

Engineering Highlights

1. Adaptive Closed-Loop Tracking & Noise Rejection

  • Recursive IIR Low-Pass Filter: Mitigates high-frequency noise and environmental flicker by weighting previous ADC states
  • Ambient-Proportional Deadband: Rather than using a static threshold, the deadband scales dynamically with ambient lighting conditions: $$\text{Tolerance} = \text{Average Intensity} \times 0.08$$ This prevents unnecessary hunting under overcast conditions while maintaining tight alignment accuracy in direct sunlight.

2. Energy Efficiency & Power Budgeting

  • Consumes $\approx 0.4\text{ W}$ on average, minimizing parasitic losses to maximize net energy yield.
  • Non-blocking loop scheduling prevents CPU spinning, leaving headroom for low-power sleep modes.
  • Actuation is strictly event-driven: the servo remains stationary when within the dynamic deadband, eliminating continuous motor current draw.

3. Non-Volatile Memory Wear-Leveling

  • Restores the last known solar vector upon reboot to minimize initial re-calibration time.
  • Uses a 5-second debounce settling timer before committing angle updates to EEPROM, protecting flash cells from premature write-cycle exhaustion during continuous tracking.

Hardware Architecture & Pinout

           +---------------------+
           |   Microcontroller   |
           |     (ATmega328P)    |
           +----------+----------+
                      |
        +-------------+-------------+
        |             |             |
     [ A0 ]        [ A2 ]        [ D9 ]
        |             |             |
   +----+----+   +----+----+   +----+----+
   |  LDR 1  |   |  LDR 2  |   | Azimuth |
   |  (Left) |   | (Right) |   |  Servo  |
   +---------+   +---------+   +---------+
Pin Function Description
A0 Analog Input Left CdS Photoresistor voltage divider
A2 Analog Input Right CdS Photoresistor voltage divider
D9 PWM Output Actuator signal (horizontal position servo)

Repository Structure

sun-chaser/
├── main/
│   └── main.ino              # Production tracking firmware & EEPROM logic
├── calibration/
│   ├── LDRTest/              # Optical sensor differential calibration utility
│   └── ServoTest/            # Actuator sweep & sweep range verification
├── figures/
│   ├── SunChaserMainView.jpg # Deployed system hardware image
│   ├── SunChaserCollapsedView.png # Collapsed system hardware image
│   └── SunChaserTestRun.mov  # Video demonstration of live tracking
└── README.md

Getting Started

Prerequisites

Flashing Firmware

  1. Clone the repository:
    git clone https://github.com/tabyrocket/sun-chaser.git
    cd sun-chaser
  2. Open main/main.ino in the Arduino IDE.
  3. Select your board and port, then click Upload.
  4. Monitor serial diagnostics at 9600 baud for real-time differential telemetry.

About

A portable, sun-tracking, solar panel rotator

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages