views:

447

answers:

13

I am developing a net-managed device with the .NET Micro Framework. Since the idea is to have a bunch of devices in an office, sometimes it is necessary for the user to know the IP address of a specific device.

So I've been trying to come with ideas on how to indicate the IP address the user. The only user interface is 4 LED lights that I can blink on and off at varying speeds.

So far, the best idea I could come up with is this: seeing how the IP address has 4 parts and I have 4 LEDs, it would make sense that each LED be responsible for a single IP address part. So for address like 192.168.0.34, I'd have LED1 blink once, then pause, then blink 9 times, pause, then blink 2 times. The action would then shift to the LED2, which would blink out 168 in a similar manner and so on. Number 0 would be indicated by blinking really fast for half a second.

Any other ideas?

+1  A: 

Depending on how geeky your users are, you could also use:

  • Morse code
  • Display IP as a sequence of digits in binary
  • ...
0xA3
+5  A: 

You might also consider binary, displaying a single digit at a time. But this would require the user to know (or take a crash course on) binary.

9: 1 0 0 1
8: 1 0 0 0
7: 0 1 1 1
6: 0 1 1 0
5: 0 1 0 1
4: 0 1 0 0
3: 0 0 1 1
2: 0 0 1 0
1: 0 0 0 1
0: 0 0 0 0

To indicate the decimal point, you could show 1 1 1 1. It would be ideal if you had a button or some form of user interaction so that you could iterate through the digits.

JYelton
Your users would have to master translating it on the fly - might I suggest an exercise? http://xkcd.com/74/
IniTech
ppft. Little endian.
Will
+4  A: 

I'd do the reverse. From a control station, I would bring up a list of all IPs used by my devices. I'd then select one to start blinking in a pattern that would be easy to recognize (like 1 2 3 4 over and over) until shut off. That way I could ask everybody who's LEDs are blinking like that and know what device owned that IP.

I'd then write the IP on the bottom of the device in magic marker. There's an amazing amount of bandwidth in a sharpie.

Will
I like this idea, but sometimes scanning the network for IPs is problematic (Do the devices respond to ping? Are they DHCP and subject to change?). Also, I wouldn't write the IP on the device as it may be DHCP, or the company network topology may change at any time.
JYelton
@jYelton you can always use a [broadcast packet](http://en.wikipedia.org/wiki/Broadcasting_(computing) to let the devices know you're looking for them. But then, one of my first networked applications used broadcast packets to notify installations and that got abused horribly....
Will
+14  A: 

Use all 4 displays at once for each number, showing it in binary. Blink all 4 really fast for a 0, light all 4 longer to denote a point.

[ ] [ ] [ ] [x] # 1
[x] [ ] [ ] [x] # 9
[ ] [ ] [x] [ ] # 2
[x] [x] [x] [x] # . (long)
[ ] [ ] [ ] [x] # 1
[ ] [x] [x] [ ] # 6
[x] [ ] [ ] [ ] # 8
[x] [x] [x] [x] # . (long)
[x] [x] [x] [x] # 0 (short)

Alternatively you can use an un-used number (ie: 10) to denote 0

[ ] [ ] [ ] [x] # 1
[x] [ ] [ ] [x] # 9
[ ] [ ] [x] [ ] # 2
[x] [x] [x] [x] # . 
[ ] [ ] [ ] [x] # 1
[ ] [x] [x] [ ] # 6
[x] [ ] [ ] [ ] # 8
[x] [x] [x] [x] # . 
[x] [ ] [x] [ ] # 0 

Having a lookup table ready by the device should be enough for those who don't know binary.

NullUserException
Darn they beat me to it. Too much time on formatting.
NullUserException
2 should be `10` rather than `11` (my 4 was wrong initially, too!)
JYelton
@JYelton good catch
NullUserException
My users are unlikely to understand binary. While really cool and clever, I seriously doubt that my users would grok it, even with training.
AngryHacker
@AngryHacker that can be mitigated by having a cheat sheet next to the device. And it's really not that hard to learn. One week did it for me...
NullUserException
How often would someone need to go through this process to figure out the IP? If it's fairly often, learning will go quicker. On the other hand, if it's so frequent, perhaps there is a larger issue...
JYelton
[Finger Binary](http://en.wikipedia.org/wiki/Finger_binary). Wait, that sounded dirty.
Will
I think with an attached cheat sheet (you don't even need to say it is binary) even the most simple user should be able to figure it out.
Scott Chamberlain
@Will, I'm sure someone wrote that article just to be able to show a photograph of 128 finger binary on wikipedia.
ninjalj
+3  A: 

You could translate the number to HEX and print off the hex representation in binary.

F: 1 1 1 1
E: 1 1 1 0
D: 1 1 0 1 
C: 1 1 0 0
B: 1 0 1 1
A: 1 0 1 0
9: 1 0 0 1 
8: 1 0 0 0 
7: 0 1 1 1 
6: 0 1 1 0 
5: 0 1 0 1 
4: 0 1 0 0 
3: 0 0 1 1 
2: 0 0 1 0 
1: 0 0 0 1 
0: 0 0 0 0 

192.168.0.34 becomes C0.A8.00.22. Very similar to the solution put forth by @JYelton, just taken a step further to reduce the amount of work an individual needs to do to read the message out of the LEDs. Still require a bit of translation though because you have to go from hex to decimal again (standard calculator is an easy/handy tool).

Joel Etherton
+2  A: 

Why don't you get an external LCD screen... no teaching users binary and you can display loads more information. If you provide me with which micro framework device you are using I may be able to provide more detailed help.

Matthew Whited
A two line LCD screen will cost between 10 and 15 US... And that will save much pain and effort related to teaching users to understand binary/hex.
Matthew Whited
Also, allelectronics.com (a surplus electronics parts company in California) often has inexpensive LCD's like this one: http://www.allelectronics.com/make-a-store/item/LCD-111/24-X-1-LCD//1.html It's a 24x1 for less than $2 and includes driver. 24 characters is enough to display an IP address (255.255.255.255) handily.
JYelton
@Matthew Whited. Using the Embedded Master chip from GHI Electronics. http://www.ghielectronics.com/product/108
AngryHacker
I can't justify adding $10-20 to the product cost for what is essentially troubleshooting. Besides the hardware design is already in and there is no place for all this extra circuitry. But gives me ideas for other products, so thanks for this link.
AngryHacker
A: 

Well, does the IP address need to be interpreted by a machine or by a human? Because your suggestion is using decimal digits, which is wonderful for humans but very complicated for computers to understand.

IP addresses are actually just a 32-bit binary number. The IP 192.168.0.34 is seen by the router (and broadcasted across the internet) as 11000000 10101000 00000000 00100010

If you're having a computer or other hardware device interpret the IP address, I suggest just using binary. You could have one light which displays the next digit, and another which toggles a "ready" light to indicate that the digit is in fact the next one and not a repetition of the previous one. This would only require 2 LEDs, and you would essentially display the aforementioned address like so:

on on, on off, off on, off off, off on, off off, off on, off off, on on, off off, on on, off off, on on, off off, off on, off off, etc.

Make sure the second bit has toggled before reading the first bit, otherwise you could read the same number twice.

If you want to display it using four LEDs for human interpretation then having the LEDs blinks according to digit might be difficult since humans have trouble counting 4 numbers simultaneously. It may be easier if you just went through all the digits 1, 9, 2, 1, 6, 8, 0, 0, 0, 0, 3, 4 (3 digits per number) and displayed these in binary using all four LEDs.

off off off on, on off off on, off off on off, etc.

With a pause in between each one.

Steven Barnett
+1  A: 

if it's DHCP, and they can access a list of the devices ip addresses on a computer next to the devices' MAC addresses, you could write the MAC address on each device and then they'd be able to tell which device had which IP.

If you think MAC addresses would be too un user friendly then you could have a table of the MAC addresses with a short description or the name of the devices.

Even more, you could write a program that got the list of ip addresses next to MAC addresses and matched it up with the table of device names next to MAC addresses.

Jonathan
+1  A: 

If you replace one of the leds with an IR led, you can write an app for a cell phone IR sensor that decodes and displays the binary pattern for the IP address.

JackN
+3  A: 

I'm thinking outside the box.. but one of the biggest complaints I see here is the translation. What about an app that takes a video (recording or prerecorded) and does the interpretation? This reminds me of iphone apps that can read upc codes.

Alternatively, but along the same thought, what about a parallel port or usb?

itchi
A: 

Adding an LCD display would work really well, but would add a lot to the cost. However, what about using 8 LEDs instead of 4? If you purchase the 8 LEDs in the form of a 7-segment LED display with decimal point, it might not cost much more than 4 discrete LEDs, but it would let you display the decimal digits of the IP address sequentially. No complicated translation scheme for the users to master.

Stephen C. Steel
A: 

It depends on your environment, but I'd not display an entire IP address, just the component that is relevant, and map that itself to a single 4-bit number. This assumes you only need to uniquely identify < 2^4 entities. If you need more, then just use more LEDs (if possible).

In this way, you'd only need to indicate a local mapping, which could then be used to look the actual IP address up via a local internal website. You can use the typical binary strategy that's been described in this thread already to have the LEDs flash out a 4bit number, and it should be pretty easy to train people on (which appropriate labeling on the device).

Noon Silk
+3  A: 

Provide a well-mounted cord for the user to swing the device around in the air like a lasso

Then flash the LEDs like a propeller clock

alt text

Joe Koberg
+1 very cool, except in the image you have 7LEDs
Kugel
You'll just have to write the digits vertically....
Joe Koberg
I was actually thinking something along these lines as well. And numbers are doable with 4 leds. However, I think you'd need some sort of accelerometer to detect the motion.
itchi