Building a bandwidth meter

Here’s an analog bandwidth meter made to look like an old pressure gauge. It’s actually new, but the paper showing the graduated scale was stained in a bath of black tea, then dried in an oven to give it an aged appearance. We think it’s quite effective.

The dial itself is a volt meter driven by an Arduino in much the same way as the multimeter clock. Bandwidth data is pulled from a Linux router, filtered down to the target data using ‘grep’, and sent over the serial connection by a Perl script. Since the meter itself is just waiting for serial data, alterations to the router’s scripting make it easy to represent a count of unread emails, tweets, or whatever data your code can scrape.

[Thanks Ben]

15 thoughts on “Building a bandwidth meter

  1. Why not just send a constant serial data stream to a buffer, filter, and op-amp?
    Sending a stream of 0×00 will have a higher RMS voltage than 0xFF.
    seems much simpler.

  2. @ladz: idk, that sounds like a bit of a hack-solution ;)

    sending data over serial to arduino can also mean sending data via usb, so there’s not necessarily a serial port involved here.

    i checked the writeup, just to be safe: “output to the serial port emulated by the FTDI chip on the Arduino”

  3. It should be even better if the device was connected directly to ethernet cable (ethernet can pass through it) between router and modem… well we need to find a way how to simply determine bandwith from ethernet cable… i guess there’s at least way to count packets per second or some similar – almost analog solution.

  4. Looks like a current-limiting resistor is needed between the Arduino PWM pin and the transistor. Perhaps everything getting hot is part of the steampunk effect!

  5. Nice work with the meter , but adding the diode across the coil ,and driving it with IRL series MOSFET should work better.

    @Harvie . There is a way , at least with every good router or switch – the SNMP protocol . I made such device to work with my Cisco 2610 a year ago using a Wiznet chip and an AVR microcontroller .

  6. Can anyone provide a solution for this where instead of an analog meter, it’s connected to a digital number display (like an alarm clock display) that will show you bandwidth use across any spectrum?

  7. Hi everybody,

    Is it possible to give more details on how bandwith value are recovered from the PC ?
    It’s wrote that datas are pulled from a linux router ?
    Is it possible to get the same function from a basic provider XDSL modem ? Or in this case the solution is it to use software programmes ?
    In a windows how can I get the real time bandwith usage ?
    Many thanks for some links…

  8. And then you get a feeling that someone is downloading just at the moments you’re not looking :)
    I will try to compile istatd for my linksys router. Now if only I could subtract the bandwidths… would be nice to know what my dad and brother are using. I already can see which sites they visit :)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s