Introduction: WiFi HDD LED (Updated 2021)

This is a tiny and cool WiFi LED indicator for your HDD (or your SSD). You can create this indicator and place it on your desk or your nearby bookshelf.

The hardware is based on an inexpensive ESP8266 based module. Even the tiny ESP-01 can be used for this application. On the software side the “Activity Indicator” utility is needed. This utility is open source and you can download it for free from sourceforge servers.

Step 1: How It Works

Activity Indicator is able to detect what happens to your HDD or SDD and act as a virtual LED for HDD activity. In the latest release, one additional function was added, which can help to create a physical indicator, to display the HDD activity in a similar manner with physical LED indicator on computer tower.

The program sends UDP packets to local network on each HDD activity in order to indicate the activity on a dedicated hardware which will be discussed here.

Step 2: Build the Hardware

Here is what you will need

For the hardware:

1 ESP8266 module (ESP-01 on this example)


1 LD1117-3.3 or similar

1 Power supply adapter

1 Mini case to put everything inside

For programming:

A USB to Serial adapter

Step 3: Connections

Hardware connections are "dead simple". So creating a deadbug circuit is a good choice!

The provided image indicates the 6 connections should make and get the device working. You can literally solder components together without cables except the power in lines making a very tiny circuit which can be placed inside a very small case.

Step 4: Choice 1: Flashing & Programming (Lua)


The ESP8266 module should be flashed with NodeMCU firmware. The seven pre-selected basic modules are enough (file, GPIO, net, node, timer, UART, WiFi).

Flashing the firmware to the module is not difficult. I recommend you to use the NodeMCU pyflasher. This tool will simplify the process. ESP-01, should be put in flash mode before, this can be done by shorting Pin3 (GPIO2) with the ground during power up. If you need more info on flashing visit this link.


Once the flashing is done the three lua files should be uploaded to the ESP8266 module.

Lua files to program your module can be found on github:

You should customize the WiFi settings on init.lua (by changing the line: wifi.sta.autoconnect(1) station_cfg={} station_cfg.ssid="YourSSID" station_cfg.pwd="YourPASS" and then upload the three files to your module.

Uploading the lua files can be done by using the attached "Selene beta" program or any other uploader program you like. (refer to

Step 5: Choice 2: Programming (Arduino)

Using arduino IDE is quite popular nowadays so I wont write a guide for this.
Just head to github and download the source code .

What you ineed is the "Wifi_HDD_LED_Arduino.ino" file located into "Arduino" folder.

Open it with Arduino GUI and edit the lines 7,8 with your WiFi credentials and 9 (if you are using a different GPIO).


  1. Arduino is using a different GPIO mapping than the most ESP8266 are labeled. You can refer to find the correct GPIO number.
  2. To support esp8266 programming on arduino IDE you need to have the appropriate board library installed. To add this library do the following:

  • Start Arduino and open the Preferences window.
  • Enter into the File>Preferences>Additional Boards Manager URLs field of the Arduino IDE.
  • Open Boards Manager from Tools > Board menu and install esp8266 platform (and don't forget to select your ESP8266 board from Tools > Board menu after installation).

Save your sketch and upload it to the hardware.

Step 6: Software Setup

Activity Indicator can be downloaded from its project page on Sourceforge Just extract the downloaded contents and run the executable.

Under "More" find the checkbox "Interact with WiFi HDD LED" and enable it. Then click on the hyperlink "WiFi HDD LED Options" (confirm any firewall prompt). A window called "WiFi HDD LED Options" will appear.

Now power on your WiFi LED and let it connect to your WiFi. When the device starting the LED will be steady ON until a connection to pre-defined WiFi LED is made. Once connected to the WiFi the LED turns OFF. At this stage the device will broadcast every 2 seconds a presence signal recognizable by Activity Indicator.

When a presence signal is detected the "Bind" button will be enabled, click on it and the "Target IP" filed will be filled with the detected IP. Default target port is 8266 and LED address is 4 these values are suitable for the provided lua files and shouldn't be changed unless changed made on lua files.

After a successful "Bind" you can use the "Test" button to send a signal to the WiFi LED.

Once binding and testing is complete, click OK and let the Activity Indicator do its "magic".

Step 7: Final Words

This Instructable is referring to a "lite" edition of WiFi HDD LED with just one LED. The code provided on github can be altered to support up to 6 LEDs or even more. Using a Wemos D1 mini module you can create a device which can indicate activity from multiple computers at the same time. You can also use tricolor LEDs to indicate different activities with different colors.

If you are on lua choice, then the "espresso.lua" file is an additional file which can help for maintenance and future changes to the code over WiFi. It enables the device to communicate and programmed via ESPresso a handy tool by ŁUKASZ CIELECKI.