Illuminating Packets on an Ethernet Cable using LED Strip.
A packet is visualized by LED lights as it flows in the transmission direction.
ARP packets glow ORANGE and DHCP packets glow BLUE for example. 8 LED colors were assigned to each packet type.
Therefore, Illumi Packet makes the presence of packets familiar and helps to intuitively understand what kind of packets are generated while operating a computer.
Materials | Quantity | Remarks |
---|---|---|
LED strip (WS281B) | 1m | Recommended > Allowing Individual address, full color. 144LEDs/m |
Raspberry Pi | 1 | Operation confirmed > Raspberry Pi 2, 3, 4 |
Ethernet cable | 1m | |
Jumper wire male-female | 3 | |
Cable tie | 4 |
You need also Keyboard, Display, HDMI Cable, Routers etc.
- Connect an LED strip to the GPIO of a Raspberry Pi.
- Fix it to an Ethernet cable.
- Connect one end of the Ethernet cable with the Raspberry Pi and the other end with several wired network access points.
- Install golang
- Install libpcap
sudo apt-get install libpcap-dev
- Install SCons
sudo apt-get install scons
- Install rpi_ws281x
- Run
git clone https://github.com/souring001/illumi-packet.git
- Change the parameters in
illumi-packet.go
according to the number of LEDs as follows:
LEDs/m | count | speed | series |
---|---|---|---|
60 | 60 | 1 | 6 |
144 | 144 | 4 | 12 |
144 (0.5m) | 72 | 1 | 12 |
The program to be executed is described in go language. Install golang according to https://golang.org/doc/install#install. Execute it in the terminal as shown below, and confirm that the version is displayed at the end.
$ version=1.13.4
$ wget https://storage.googleapis.com/golang/go${version}.linux-armv6l.tar.gz
$ sudo tar -C /usr/local -xzf go${version}.linux-armv6l.tar.gz
$ echo "export PATH=\$PATH:/usr/local/go/bin" >> ~/.profile
$ . ~/.profile
$ go version
go version go1.13.4 linux/arm
An LED strip is controlled by a library called rpi_ws281x. Install rpi_ws281x according to https://github.com/jgarff/rpi_ws281x.
$ git clone https://github.com/jgarff/rpi_ws281x.git
$ cd rpi_ws281x
$ scons
$ sudo cp -ai ./ws2811.h ./rpihw.h ./pwm.h /usr/local/include/
$ sudo cp -ai ./libws2811.a /usr/local/lib/
$ go build illumi-packet.go
$ sudo ./illumi-packet
Press Ctr-C to quit.
Option | |
---|---|
-h | Help command |
-debug | Print packet details. (default: true ) |
-device [string] | Set network interface (default: eth0 ) |
-speed [int] | Set speed of flowing packet(default: 1 ) |
-narp | Disable visualizing ARP packets |
-ntcp | Disable visualizing TCP packets |
-nudp | Disable visualizing UDP packets |
-reset | Reset LEDs |
-ipaddr | Show IP address on LED |
Not showing TCP/UDP packets.
$ sudo ./illumi-packet -nudp -ntcp
Not showing packet details. (recommend on SSH)
$ sudo ./illumi-packet -debug=false
Visualize packets on Wi-Fi.
$ sudo ./illumi-packet -device wlan0
Show IP address on LED.
$ sudo ./illumi-packet -ipaddr
Turn off the LED lights.
$ sudo ./illumi-packet -reset
ILLUMI PACKET by Kohei Aso is licensed under a Creative Commons Attribution 4.0 International License.
- Free to modify and redistribute
- Displaying the credits is required
We may introduce your usage as an examples on our site.
Please contact us if you do not want to give credit.
Twitter: @souring001
ILLUMI PACKET
Copyright (c) 2019, Kohei Aso