DOMO-6000 Internet Bandwidth Metre
Introduction
Consumer internet in New Zealand is years behind Canada. Only this year did it become affordable to have high speed internet in our house, and still it's not what I'm used to. We pay $59.95 (when we signed up it was $69.95) per month for a 10 gigabyte limit. That's not very much when you're used to downloading as much as you like. Our flat shares the internet, and when we go over our 10 GB limit, the connection speed slows down to just a little faster than 56 Kbps. Yeah I know, it's totally lame. I blame Telecom, they're behind the times. Anyhow, we needed to know how much of the 10 GB we've used so we can shape our downloading habits. Telecom Xtra has a site where you can check your usage by logging in. But that's a pain to do all the time. We needed something that we could glance at. Enter the prototype DOMO-6000 Internet Bandwidth Metre. This pinnacle of technology consists of a Z4172 16x2 LCD module (HD44780 compatible) driven by our laptop-based router via the parallel port. UPDATE March 26, 2006: The DOMO-6000 was recently converted from being driven by the parallel port to being driven by a PIC 18F2455 over USB. This simplifies the connections needed because the USB port supplies both the data communication and power. Details are on the PIC USB LCD page.
The updated DOMO-6000 using the PIC 18F2455 over USB. That dangling circuit board is the low-voltage in-system parallel port programmer used to program the PIC 18F2455.
Behold the prototype DOMO-6000 in it's primitive form. The LCD is powered by the USB port and driven through the parallel port. This version wasn't so robust because the wires were all separate and were weakly soldered to the LCD board. The newer version of the DOMO-6000 Internet Bandwidth Metre addresses these issues and is described below.
Software
The software portion consists of three elements. At the retrieving side is wget, which logs in to the site and pipes the resulting HTML to standard out, where it is parsed by a Perl script that finds the megabytes used and the total megabytes available. The same Perl script prints out the text that shows up on the LCD. This Perl script can be downloaded as xtra.pl.
The third and most important software element is a small program named lcdprint that was written for another project (USB LCD) that allows text to be printed to the LCD. (Makefile and lcdprint.c)
These three elements are combined by xtra.sh which is run from the command line using watch such that it refreshes the LCD every minute:
watch -n 60 "sh xtra.sh" &
The above command is inserted into a script run at boot time.
Hardware
The hardware for the DOMO-6000 Internet Bandwidth Metre consists of the following items:- Z4172 16 characters x 2 lines dot matrix LCD module with LED array backlighting
- Disassembled walkman face plate used as an enclosure and stand
- Parallel printer cable
- USB cable and connector
- Some small wires
The Z4172 LCD was secured to the face plate using some small screws which came from the same walkman.
A makeshift base was constructed using a portion of the walkman. By taking advantage of the high temperature of the soldering iron, the face plate and base plate were melted together to form a unique bond.
The DOMO-6000 Internet Bandwidth Metre was designed to be easy to use, with minimal wires and cables. With this in mind, the choice was made to piggyback the power from the USB port through some unused wires in the printer cable. It can be seen that a small hole was drilled in the printer cable plug allowing the USB cable to be inserted and soldered to the wires.
Above is the final version of the DOMO-6000 Internet Bandwidth Metre deployed in a real-world situation. The contemporary silver finish on the walkman case gives a "new gadget" feel to it. Further futuristicness could be added by supplementing the device with superfluous blue blinking LEDs.
Written by Donn Morrison, November 20, 2005
post a comment (HTML stripped):
