I bought a wireless router for my home network, but it was having issues where it would randomly no longer accept any connections. To solve this, I took random old computer parts from around my house and threw together a computer with 2 network cards, installed Debian, and set up iptables so that I would have my own homebrew router, leaving the wireless router to bridge the wired and wireless networks together only.

This solved the problem I was having, and the router worked fine for as long as I used it, but there was still one thing this homebrew router was lacking -- blinking lights.

At first, I wrote something in Perl, but after implementing it, I noticed my router's performance dropping significantly as traffic came through, and realized Perl wasn't a very good choice for something that ran on all network traffic coming through.

After rewriting it in C, I then added code to have it differentiate between different network protocols (TCP, UDP, and misc), and blink the 3 keyboard LEDs accordingly. I then relabeled the keyboard LEDs with a ballpoint pen for their new purpose, leaving me with a fully functional router!