

ESLS
This was my academic project focused on creating a efficient LED based Street Lighting System which will avoid Power Wastage due to manual mismanagement.
- Size
- 90 × 64.5 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 11
- Nets
- 40
- Pads
- 68
- Tracks, vias
- 71, 0
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 15 Mar 2026
- Updated
- 23 Apr 2026
Overview
ESLS is an open-source printed circuit board by Rajcr2, from the Rajcr2/ESLS repository on GitHub, published under the MIT licence. It is a 2-layer board of 90 × 64.5 mm with 11 parts on 40 nets, routed with 71 tracks and 0 vias.
It is built around the BT136-600E, DS1307+ and MOC3021M. Its parts include 5 connectors, 2 resistors, 2 ICs and 1 transistor. It belongs with the AVR (ATmega, ATtiny) boards of this library.
Main components
3BT136-600E
TO-220-40℃~+125℃@(Tj) 1 TRIAC 1.5V 1.5W 1.7V 10mA 15mA 30A 4A 600V TO-220 Thyristors (SCR)/Modules ROHSJSMSEMIThyristors (SCR)/ModulesDS1307+
DIP-80℃~+70℃ 300nA 4.5V~5.5V Backup power management and battery charging、InsideSRAM/NVRAM、Programmable clock output External I2C DIP-8 Real Time Clocks ROHSMaxim Integrated (Analog Devices)Real Time ClocksMOC3021M
DIP-6-40℃~+85℃ 0.1mA 1 1.15V 100mA 330mW 4.17kV 400V 6 60mA No TRIAC DIP-6 Triac, SCR Output Optoisolators ROHSonsemiTriac, SCR Output Optoisolators
README
README.mdEfficient Street Lighting System
Introduction
This was my academic project focused on creating a efficient LED based Street Lighting System which will avoid Power Wastage due to manual mismanagement.
Motivation
I have observed many times that street lights were ON till 10 AM because operator forgot shut the main switch down and seen this very frequently & also lights were ON 1/2 hrs before SUNSET which leads to Power Wastage this is the Main reason or motivation behind this project.


Objectives
- To make sure that all street lights will remain ON only during DARK (Cloudy Condition)/NIGHT hours & will remain off completely during DAY HOURS (from Sunrise to Sunset).
- In case, If Power remains ON during Day-Time due to operators negligence LED lights will still remain OFF contributing to Energy saving.
- To Improve life of street light lamps.
- To Achieve Maximum Energy Efficiency.
System Design
Components
| Component | Purpose |
|---|---|
| Arduino Nano | Microcontroller control unit |
| DS1307 - RTC Module | Time scheduling |
| MOC3021 | Opto-isolated TRIAC driver |
| BT136 - TRIAC | AC load switching |
| LDR Module | Detects ambient light intensity (luminance) |
| 470Ω Resistor | Limits current into optocoupler LED |
Schematic Design
The schematic is designed in KiCad. Schematic consists Arduino Nano (Control Unit), DS1307 RTC Module, optocoupler driver (MOC3021), BT136 TRIAC (switching circuit) for AC load along with Resistors.
PCB Layout
The PCB layout separates the low-voltage control circuitry from the AC power section to maintain electrical isolation. Routing was optimized to keep the power path short and reduce noise coupling.
3D View
Design considerations
- Isolation between low-voltage control circuit and AC mains section.
- Clear routing of power paths for the TRIAC switching stage.
- Through-hole components used for easier prototyping and soldering.
Circuit Simulation
ngspice Simulation
Transient analysis was performed using ngspice integrated in KiCad to validate the Arduino driver stage.
Limitation
Since microcontrollers cannot be simulated directly in SPICE, the Arduino PWM output was emulated using a pulse voltage source.
-
Simulated Circuit
-
PWM Signal Emulation
All required Arduino PWM signals were emulated using the SPICE source :
Example : PULSE(0 5 0 1u 1u 1m 2m)
| Parameter | Value |
|---|---|
| Low Voltage | 0 V |
| High Voltage | 5 V |
| Rise Time | 1 µs |
| Fall Time | 1 µs |
| ON Time | 1 ms |
| Period | 2 ms |
This results in a 50% duty cycle PWM signal, which corresponds to the Arduino command:
analogWrite(pin,128)
-
Transient Analysis Results
The transient simulation produced the following waveform.
Observations from the simulation :
- The voltage waveform alternates between 0 V and 5 V, representing the PWM output.
- The current through the resistor and LED appears as periodic pulses synchronized with the PWM signal.
Calculation :
I = (Vcc − Vf) / R
Vcc = 5 V, Vf ≈ 1.2 V (LED forward voltage), R = 470 Ω
I ≈ (5 − 1.2) / 470
I ≈ 8 mA
- The simulated current (~9.1 mA) aligns with this calculation and confirms that the Arduino output pin can safely drive the optocoupler input stage.
Proteus Simulation
To verify the embedded firmware behavior, the system was simulated in Proteus.
Unlike SPICE tools, Proteus allows simulation of Arduino code execution along with peripheral modules such as the RTC.
Simulation demonstrates and displays output Oscilloscope how the Arduino program changes the output signal according to the RTC time conditions.
Simulation Outputs
-
At Mid-Day Time :
As per our goal light must remain off during Day Time and thats we have achieved. It will only "Turn ON" if LDR triggers due to cloudy condition.
-
At Evening Time :
As during sunset time, we need light but, not fully in regular seasons so, 50% light is enough and that we got it. For special case, during cloudy conditions if it senses Darkness around will trigger LDR. so, Both scenarios are covered.
-
At Night :
Light is fully ON.
-
At Early Morning :
-
At Morning
These results confirm that the firmware correctly generates the expected control signal based on RTC timing conditions. Using the same logic then implemented and validated on the physical hardware prototype.
Hardware Implementation
The circuit is implemented on a custom PCB designed in KiCad. The circuit board includes the Arduino Nano module, RTC module, LDR sensor module, MOC3021 optocoupler, 470Ω resistor, connectors, and a BT136 TRIAC.
The Arduino Nano is mounted on the PCB and programmed to execute the control logic based on RTC timing conditions. After assembling the PCB, the logic was tested on a working prototype to validate the system behaviour of the control stage.
PCB
Prototype
Results
The hardware prototype was tested at different time conditions defined in the firmware. The observed outputs confirm that the system correctly generates the control signal and operates as intended.
-
1. During Day Time
Mechanism is developed in way that during hours from 8 AM to 6 PM Light will remain OFF. In case, operator forgot to switch off main switch still lights will be OFF.
-
2. At Evening
In the evening, during the time of Sunset there is enough light present so, we don't need street lights with Full intensity, so we have make sure that lights will be ON with bit less intensity like at 6-7 PM = 40% & 7-8 PM = 50%. Same logic is used during Sunrise time as well.
-
3. At Peak Night Hours
Only During complete DARK hours mainly from 8 PM to 5 AM Lights will be ON with Full intensity.
-
4. During Cloudy Conditions
This is a special case designed for Rainy Season, where if clouds appear in Day hours incase if LDR senses surrounding is DARK it will Turn ON lights Automatically without any need Manual workers risking their life in Rainy times.
Conclusion
Developed a system that will use RTC (Real Time Clock) and surrounding ambience with LDR Sensor intelligently and will make sure Light will be ON only during DARK Hours in case of DAY Hours it will be ON but, with less intensity. Which will,
- Improve life of Street Lights.
- Contribute to lot of Energy Savings.
Parts
11| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | 470 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R1, R2 |
| 2 | Conn_01x05_Socket | Connector_PinSocket_2.54mm:PinSocket_1x05_P2.54mm_Vertical | J2, J3 |
| 2 | Screw_Terminal_01x02 | SnapEDA:TE_282837-2 | J1, J5 |
| 1 | Arduino_Nano_v3.x | Module:Arduino_Nano | A1 |
| 1 | BT136-600 | Package_TO_SOT_THT:TO-220-3_Vertical | Q1 |
| 1 | Conn_01x03_Socket | Connector_PinSocket_2.54mm:PinSocket_1x03_P2.54mm_Vertical | J4 |
| 1 | DS1307+ | Package_DIP:DIP-8_W7.62mm | U1 |
| 1 | MOC3021M | SnapEDA:DIP762W45P254L889H508Q6_MOC3021 | U2 |
Questions
How big is the ESLS PCB?
It measures 90 × 64.5 mm and has 2 copper layers, 1.6 mm thick.
What parts does the ESLS use?
11 parts, built around the BT136-600E, DS1307+ and MOC3021M. 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 ESLS KiCad files?
From the Rajcr2/ESLS repository on GitHub, at the commit this page was made from: the board is ESLS.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the ESLS design in my own project?
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
Similar boards
- 2 layers78.7 × 58.4 mm

- 2 layers

- 2 layers85 × 106.5 mm

230V controller
kkorzen/Mains-Voltage-Device-Controller
This project was under development during the first semester of Master's Studies at Warsaw University of Technology (Poland) as a final project for Industrial Communication Protocols.
38 partsMIT - 2 layers260 × 140 mm

SmartEnergyMag System
MunyratanakBrorn/Smart-Electrical-Energy-Management-System
Bachelor of Technology Thesis Project 2024.
403 parts - 2 layers100 × 100 mm

Aaram
xicor22/Aaram
PCB design for retro fitting old switch boards with new tech to control it remotely.
77 partsGPL-3.0 - 2 layers100 × 120.5 mm

- 2 layers122.6 × 80.6 mm

- 2 layers41 × 38 mm
