Ultimate Solar Powered WiFi Night Light Kit (BC24 and ESP32)



Ultimate Solar Powered WiFi Night Light Kit (BC24 and ESP32)  - No Soldering

Here is your chance to build a solar powered  WiFi remote control ESP32 based nightlight for use outdoors.   This kit comes with mounting pylons and a water proof enclosure.

This is a great beginners Kit!

This is an easy to build kit with no soldering required.   

The Kit contains the powerful ESP32 dual core processor mounted on the BC24 24 RGBW Programmable LED board with Grove Connectors!   No Soldering!

A full step-by-step Instruction Manual is supplied.


    • Solar Powered
    • ESP32 based
    • WiFi Connected
    • Monitors and reports:   Solar Panel Voltage and Current / Battery Voltage and Current / System Voltage and Current
    • Full featured REST interface - Do All sorts of things!
    • Can read Solar Data from the device
    • Has three modes of display.  Rainbow, Clock and Fire
    • Can be turned on during the daylight

Here is the block diagram:


Check out the video below:

 (coming soon)

Included Parts List:

      • BC24 (0600-BIGCIRCLE32-DSBT)
      • SunAIrPlus (0040-SAP-DSBT)
      • Solar Panel - 330mA / 6V (0111-SC330-DSBT)
      • Multi Solar Panel Connector Board (0230-MSPCB-DSBT)
      • USB A to Micro Cable (0121-USBAM-DSBT)
      • 1 Grove Female Headers to Grove Connector Cable (0074-GRVCABFEM-DSBT)
      • Box of M3 120 PC Spacers (0670-M3NYLON-DSBT)
      • UV 172mm Waterproof Enclosure (0674-BOX172-DSBT)


NOTE:  A LiPo battery is NOT included due to shipping restrictions.  We suggest a 6600mAh battery with a JST2 connector such as:


Smaller batteries will work too.

2000mAh - https://www.adafruit.com/product/2011

2200mAh - https://www.adafruit.com/product/1781

4400mAh - https://www.adafruit.com/product/354

NOTE:  The 3D Solar Panel Stand is not included in the kit.  However, you can download the 3D Print files from the SwitchDoc Labs Solar Panel Night Light Kit product page to print your own.

We also sell a 3D Print of the Solar Panel holders for those without a 3D Printer.



The software monitors the solar voltage and turns the display off when the solar panels hit 2.0V.  Saves a bunch of power.


How To Compile Source Code

See Assembly Operations Manual above.

Example REST JSON Output

Open a browser (Safari or Chrome has been tested) and type:

you will get (assuming you have the right IP Address)

{"variables": {"solarVoltage": 1.52, "batteryVoltage": 4.14, "solarCurrent": 0.00, "batteryCurrent": 2.40, "loadCurrent": 1.20, "loadVoltage": 4.97, "currentLEDMode": 0, "darkLight": 0, "Version": "005"}, "id": "", "name": "SDL_ESP32_BC24_SOLARNL", "hardware": "esp32", "connected": true}

All of the BC24 Solar Power Night Light commends return fully formatted JSON data which makes it easy to parse and get the values you want.


Data! Data! Data! More Cowbell!

SunAirPlus includes an I2C INA3221 3 Channel Current / Voltage Monitor and a I2C 4 channel 12 bit Analog to Digital Converter (ADS1015). The INA3221 allows you to monitor all of the major currents and voltages in the system (Battery / Solar Panels / Load - Computer ). You can tell what your solar power project is doing in real time. Here are some results from the SunAirPlus board using the onboard INA3221. You can see that the battery is almost fully charged and the solar cell voltage (actually a variable power supply on the test bench) is 5.19V and it is supplying 735mA. The Output voltage is 4.88V because we are fiddling with the board. The Library works like a champ.

Test SDL_Pi_INA3221 Version 1.0 - SwitchDoc Labs

Sample uses 0x40 and SunAirPlus board INA3221
Will work with the INA3221 SwitchDoc Labs Breakout Board

LIPO_Battery Bus Voltage: 4.15 V 
LIPO_Battery Shunt Voltage: -9.12 mV 
LIPO_Battery Load Voltage:  4.14 V
LIPO_Battery Current 1:  91.20 mA

Solar Cell Bus Voltage 2:  5.19 V 
Solar Cell Shunt Voltage 2: -73.52 mV 
Solar Cell Load Voltage 2:  5.12 V
Solar Cell Current 2:  735.20 mA

Output Bus Voltage 3:  4.88 V 
Output Shunt Voltage 3: 48.68 mV 
Output Load Voltage 3:  4.93 V
Output Current 3:  486.80 mA

REST Variables

BC24 Solar Powered Night Light REST Variables


Solar Panel Voltage in Volts


Battery Voltage in Volts


Solar Panel Current in mA


Battery Current in mA


Load (BC24) Current in mA


Load (BC24) Voltage in mA


Numeric Value of current LED Mode for the BC24 (see below)


State of the darkLight Variable - 0 for dark, 1 for light.  Only affects Clock  brightness in V004


Returns the version of the software, formatted as “VXXX” (V004 for example)


REST Commands (use across WiFi with Browser)

REST Commands










reset Administration Password,newpassword


Parameters are old and new password, separated by a “,”

return_value will be 1 if the command succeeded and 0 if it did not (such as invalid password)






Sets the mode for the BC24 Clock Display.

return_value is 1 if it succeeds or 0 if the password fails.


Sets the mode for the BC24 Rainbow Display.

return_value is 1 if it succeeds or 0 if the password fails.


Sets the mode for the BC24 Fire Display.

return_value is 1 if it succeeds or 0 if the password fails.


Sets the BC24 LEDs Darker (0) or Brighter (1), mode


First Parameter is administration password.   Second parameter is “0” or “1”  As of V005, only affects Clock Brightness

return_value is 1 if it succeeds or 0 if the password fails.


Sets Time Offset to seconds from UTC.  For example, Pacific Standard Time is -25200, offset


Parameter is administration password

return_value is 1 if it succeeds or 0 if the password fails.


Overrides the check for Solar Panel Voltage < 2.0V, mode


Parameter is administration password


return_value is 1 if it succeeds or 0 if the password fails.


Sets the LED Connected  on the BC24 to On (“0”) or Off (“1”) Note - V005 will also blink this LED when the ESP32 is running

Return value is 1.  Values other than 0 and 1 have no effect.