
Problem Statement
Reasons for Solar Panel Damage
- Microscopic fractures, hot spots and cracks can appear on the surface of solar panel glass cells, and can grow in size over time. These cracks can reduce the effectiveness of solar cells. The lamination, panel frame and waterproofing of the solar system may remain in good condition despite the cracks, making it hard to identify the cause of the problem.
- Storm, hail, snow pressure, lightning and other weather conditions can cause extensive damage to solar modules. External damage may also occur due to fire, animal activity, broken tree branches, icy conditions and excessive heat or cold.
- The scratches from fallen debris can dramatically lower your panels’ energy output. Scratches can hinder sunlight from shining directly onto the cells, and that decreases the amount of solar energy each panel is able to absorb. That, in turn, can increase utility bills, which is one reason to install solar panels in the first place.
Challenges in Solar Panel Monitoring
- To monitor solar panel and look for damage, manual inspection needs to be done every month or few months.
- In larger areas, monitoring solar panels periodically needs more people, and the time between inspections might be reduced (more inspection needed).
- Manual inspection is more time consuming and less efficient.
Solution

Advantages over Manual Inspection
- It is efficient and less time consuming
- Hourly monitoring is possible using automated inspection
- This prototype, if combined with a drone or self driving robot, can inspect entire solar farms.
Hardware Required
- Arduino Portenta H7
- Portenta Vision Shield
- Solar panel
Architecture
For this prototype development, I have used a FOMO-based object detection model to detect the cracks in the solar panel. The below diagram explains the overview of the model development. The major steps that need to be followed for the model development are:- Data Acquisition
- Model Training
- Model Testing
- Deployment

Data Acquisition
For data acquisition, I have collected the real images of solar panels with cracks using the Arduino Portenta H7 and Vision Shield. To connect the Portenta for the first time, follow the below steps:- Download the zip file https://cdn.edgeimpulse.com/firmware/arduino-portenta-h7.zip
- Press the Reset button twice to put the device into “boot loader” mode
- Flash the downloaded firmware by opening the included script (
flash_windows.bat
,flash_mac.command
orflash_linux.sh
) - After flashing, press the Reset button once.
- Open a command prompt and run the command
edge-impulse-daemon





Create Impulse
In the Create Impulse section, I have selected Object detection and set a Pixel size of 96x96.

Model Training
In the Object detection section, I have selected the FOMO model — FOMO (Faster Objects, More Objects) MobileNetV2 0.35


Training Output


Model Testing
In Model testing, the model is able to identify cracks in solar panel images. In two of the testing data, it did miss identifying some cracks in the panels. This is normally due to lighting differences and camera angle, but it performs decently with 77.8% accuracy in Model testing.
Deployment
Go to the Deployment section and select Build firmware with Arduino Portenta H7 and download the firmware. Then press the Reset button twice to get into the boot loader mode again and open the downloaded script to flash it, similar to earlier.

.bat
file to flash it to the Portenta.

edge-impulse-run-impulse