Skip to the content
PCBKitNew board
2 layers50 × 50 mmSolar Tracker, the printed circuit board in 3D

An active solar tracking system designed to optimize photovoltaic energy collection by continuously aligning solar panels with the most intense light source.

Size
50 × 50 mm
Copper layers
2
Thickness
1.6 mm
Parts
17
Nets
30
Pads
76
Tracks, vias
0, 0
Routed
Not yet
KiCad
KiCad 10.0 (file 20260206)
Created
8 Jun 2026
Updated
15 Sep 2026

Overview

Solar Tracker is an open-source printed circuit board by mbendari7, from the mbendari7/Solar-Tracker-Project repository on GitHub. It is a 2-layer board of 50 × 50 mm with 17 parts on 30 nets.

It is built around the INA219AID. Its parts include 9 resistors and 7 connectors. It belongs with the power boards and the ESP32 and AVR (ATmega, ATtiny) boards of this library.

Main components

1

README

README.md

Solar Tracker Project

An active solar tracking system designed to optimize photovoltaic energy collection by continuously aligning solar panels with the most intense light source. This repository contains the complete project files, including custom PCB schematics, C++ firmware, and 3D-printable mechanical assemblies.

The system utilizes closed-loop control, reading environmental light gradients through an array of sensors and actuating motors to maintain optimal panel orientation.

Project Architecture

The project is divided into three main engineering domains: electrical hardware, mechanical design, and embedded firmware.

1. Hardware and Electronics

The circuit design and PCB layouts were developed using KiCad. The hardware system is responsible for signal acquisition and motor power distribution.

  • Microcontroller: Arduino-compatible MCU for processing ADC readings and generating PWM control signals.
  • Sensors: Light Dependent Resistors (LDRs) arranged in a directional array with voltage divider networks to measure horizontal and vertical light differentials.
  • Actuators: Servos (or stepper motors) to control the pan (azimuth) and tilt (elevation) axes.
  • Power Management: Isolated power routing to prevent motor current spikes from inducing noise or brownouts on the logic circuit.
  • Design Files: Schematics, PCB layouts, and Gerber files are located in the hardware/ directory.

2. Embedded Firmware

The control logic is written entirely in C++ and focuses on efficiency and preventing mechanical jitter.

  • Platform: C++ (compiled via Arduino IDE or PlatformIO).
  • Control Loop: The firmware continuously polls the analog pins connected to the LDRs, calculates the light differential across the axes, and updates motor positions accordingly.
  • Hysteresis Implementation: A software-defined deadband is included to filter out minor lighting fluctuations (like passing clouds or sensor noise). This prevents continuous, unnecessary motor twitching, which saves power and reduces mechanical wear.
  • Source Files: All code, including headers and main operational logic, can be found in the firmware/ directory.

3. Mechanical Design

The physical chassis is custom-designed for structural rigidity and minimal weight, ensuring the motors do not experience excessive torque loads.

  • Fabrication: Designed for Fused Deposition Modeling (FDM) 3D printing. PLA or PETG is recommended for durability.
  • Components: Includes the base mount, azimuth rotation brackets, elevation tilt brackets, and the solar panel mounting plate. A cross-shaped LDR shadow shield is also included to cast distinct shadows over the sensors when the panel is not perfectly aligned.
  • CAD Files: STL files and step files are provided in the cad/ directory.

Repository Structure

├── cad/ # 3D printable models (.STL files for chassis and mounts) ├── hardware/ # KiCad schematic files, PCB layouts, and gerbers ├── firmware/ # C++ source code for the microcontroller ├── docs/ # Wiring diagrams and supplemental documentation └── README.md # Project overview

Setup and Assembly

Mechanical Assembly

  1. Print all components located in the cad/ directory with a minimum of 20% infill for structural integrity.
  2. Assemble the base and mount the azimuth motor.
  3. Attach the elevation bracket and corresponding motor.
  4. Mount the LDR array and attach the cross-shield to ensure accurate differential shading.

Electronics Wiring

  1. Open the KiCad schematics in the hardware/ folder to review the pinout.
  2. Wire the LDR voltage dividers to the analog input pins of your MCU.
  3. Connect the motor control lines to the designated PWM output pins.
  4. Ensure the motors are powered by an adequate external power supply with a common ground shared with the MCU.

Firmware Flashing

  1. Open the firmware/ directory in your preferred IDE.
  2. Verify that the assigned pin definitions in the header files match your physical wiring.
  3. Adjust the threshold and delay variables if your specific ambient lighting environment requires more or less sensitivity.
  4. Compile and upload the code to the microcontroller.

Future Improvements

  • Implementation of real-time clock (RTC) modules for predictive solar tracking based on time of day and geographical coordinates.
  • Integration of current and voltage sensors to log actual power generation data.
  • Migrating from servo motors to precision stepper motors for larger panel handling.

License

This project is open-source. Feel free to fork the repository, submit pull requests, or adapt the designs for your own applications.

Parts

17
QtyValueFootprintReferences
410KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR5, R6, R7, R8
4R_PhotoOptoDevice:R_LDR_5.1x4.3mm_P3.4mm_VerticalR1, R2, R3, R4
1470Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR9
1Arduino_Nano_ESP32Module:Arduino_NanoA1
1DS1Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ1
1INA219Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ7
1M1Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ2
1M2Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ3
1MB102TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_HorizontalJ4
1Solar_PanelTerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_HorizontalJ5
1TFT_ST7735Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ6

Questions

How big is the Solar Tracker PCB?

It measures 50 × 50 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Solar Tracker use?

17 parts, built around the INA219AID. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Solar Tracker KiCad files?

From the mbendari7/Solar-Tracker-Project repository on GitHub, at the commit this page was made from: the board is Diagrams/Solar Tracker/Solar Tracker.kicad_pcb and its schematic Diagrams/Solar Tracker/Solar Tracker.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Solar Tracker design in my own project?

Its repository states no licence, so its author keeps all rights: ask mbendari7 before reusing the design.

Similar boards

  • 4 layers82.6 × 82.5 mmJumperless2, the printed circuit board in 3D

    Jumperless2

    Architeuthis-Flux/Jumperless

    A jumperless breadboard

    208 parts914
  • 4 layers82.6 × 82.6 mmJumperlessV5r8, the printed circuit board in 3D

    JumperlessV5r8

    Architeuthis-Flux/JumperlessV5

    The next generation jumperless breadboard

    650 parts332
  • 2 layers74.4 × 51.2 mmEsp32-wroom timer, the printed circuit board in 3D

    Esp32-wroom timer

    AlessandroAU/Chorus32-ESP32LapTimer

    This is an ESP32 port of the popular Chorus RF Laptimer

    66 parts102GPL-3.0
  • 2 layers169.3 × 128 mmPSU PCB, the printed circuit board in 3D

    PSU PCB

    ThomasVDD/SmartSupply

    SmartSupply is a digital battery powered lab powersupply. It is Arduino compatible and can be controlled via PC over USB.

    134 parts96
  • 4 layers100 × 54 mmKbox, the printed circuit board in 3D

    Kbox

    sarfata/kbox-hardware

    Open-source electronics for your boat

    139 parts19
  • 2 layers50 × 100 mmPSU PCB, the printed circuit board in 3D

    PSU PCB

    ThomasVDD/SmartSupplyMini

    118 parts16
  • 2 layers101.6 × 53.3 mmBatteryAnalyzer MkII, the printed circuit board in 3D

    BatteryAnalyzer MkII

    Moragor/BatteryAnalyzer_MkII

    Updated Version of the battery analyzer, now with constant current

    25 parts12MIT
  • 2 layers100 × 100 mmWLEDController, the printed circuit board in 3D

    WLEDController

    LostInCompilation/WLED-Controller-PCB

    WLED Controller Board with ESP32 - 4 Channels - Current and Power Monitoring - INMP441 Microphone

    69 parts8