Raspberry Pi - Make LEDs blink on harddisk activity
Go to file
manuelkamp c34800ce14
Update ssdled.c
multiuse für heartbeat etc
2021-12-21 22:59:40 +01:00
initscripts add new init scripts for multiactledPi 2021-03-09 00:26:53 -05:00
LICENSE.md Add license text 2015-03-17 09:03:38 +01:00
Makefile add new init scripts for multiactledPi 2021-03-09 00:26:53 -05:00
README.md Update README.md 2021-12-19 17:06:45 +01:00
actledPi.c Fixed indentation that triggered gcc warnings. 2017-12-04 21:22:50 +01:00
multiactledPi.c fix activity definition overlap 2021-03-09 09:53:49 -05:00
netledPi.c add return for pgpio fail in net 2021-03-09 08:59:14 -05:00
ssdled.c Update ssdled.c 2021-12-21 22:59:40 +01:00

README.md

PiLEDlights

For the Raspberry Pi - Make LEDs blink on network and/or SD card/USB storage activity.

Modified to use the piGPIO library

I've modified these sources to use the piGPIO library instead of the unsupported wiringPi library.

The original README text is here for reference, but the actual parameters and values are now different (netleds, for example now has a distinct tx and rx LED)

Build

gcc -Wall -03 -o ssdled ssdled.c -lpipgio -lrt -pthread

Original README

hddledPi blinks a LED connected to a GPIO pin on any mass storage access. Not only on SD card access, but also on USB thumbdrive and hard drive activity.
netledPi blinks a LED connected to a GPIO pin when there is activity on any network interface. Not only the built-in ethernet interface, but also on any other USB ethernet or WiFi interface.
actledPi blinks the Pi's ACT led on all mass storage I/O, i.e. not only the SD card.

netledPi and hddledPi make use of Gordon Henderson's wiringPi library - wiringpi.com - so you have to have that installed in order to build the programs. Current versions of Raspbian come with wiringPi already installed.
EDIT 2020-05-19: It seems like the Pi 4B needs WiringPi 2.52. At the time of writing this, Raspbian comes with 2.50, i.e. you'll have to update WiringPi if you are on a Pi 4B. http://wiringpi.com/wiringpi-updated-to-2-52-for-the-raspberry-pi-4b/

Building the programs is easy:
gcc -Wall -O3 -o netledPi netledPi.c -lwiringPi
gcc -Wall -O3 -o hddledPi hddledPi.c -lwiringPi
gcc -Wall -O3 -o actledPi actledPi.c

I recommend that you copy the binaries to the /usr/local/bin directory, because the init scripts provided all assume that they reside there.

hddledPi uses wiringPi pin 10 by default. It is BCM_GPIO 8, physical pin 24 on the Pi's P1 header.
netledPi uses wiringPi pin 11 by default. It is BCM_GPIO 7, physical pin 25 on the Pi's P1 header.
Note: These pins are also used for the SPI interface. If you have SPI add-ons connected, you'll have to use the -p option to change to another, unused pin.

Options for netledPi and hddledPi:
-d, --detach Detach from terminal (become a daemon),
-p, --pin=VALUE GPIO pin (using wiringPi numbering scheme) where LED is connected
-r, --refresh=VALUE Refresh interval (default: 20 ms)

Options for actledPi:
-d, --detach Detach from terminal (become a daemon)
-r, --refresh=VALUE Refresh interval (default: 20 ms)

netledPi and hddledPi need super-user privileges, so you have to start them with "sudo", e.g.
sudo netledPi -d -p 29

I have only tested the programs on Raspbian.