How to tell an IP address with 4 LEDs?
Asked Answered
U

15

14

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?

Underarm answered 6/8, 2010 at 15:59 Comment(9)
Well, if you only have one LED in use at a time, you might as well only have a single LED. If you want to make use of all of them, you could do something with binary (e.g. get the 32-bit binary representation of the address and split it into 8 blocks of 4 bits which are then displayed one-by-one using all 4 LEDs - off for 0, on for 1). If readability is an issue, it gets a bit trickier...Tire
Is there a mechanism for the user to trigger this? You wouldn't want them blinking continuously. What's the device - would there be no other benefit of adding a small, cheap LCD display?Anion
@Tire I can blink all LEDs in any way, shape or fashion, together or separately. @Rup, yes there is a mechanism. The reason there isn't an LCD is because it would add very little value but add a significant amount of cost.Underarm
Is the whole IP address unknown to the user? Ie. is the "192.168.0" part, as an example, unknown? Wouldn't the user know which range the address would be in?Dincolo
@AngryHacker, have you never heard of BIOS Error Beep codes... if a user can't get 2 to 3 beeps right how do you expect them to get 4 to 12 flashes right? pchell.com/hardware/beepcodes.shtmlClintclintock
There are at least 50 different types of japanese watches that use LEDs to tell time. I'd recommend looking at how some of them have implemented their system to understand your own. Although two more LEDs and you could make every combination of 0-9 with basic multiplaction.Humid
One assumption I think many people have made in answering this question, is that any person who might know what an IP address is what address the device is set to would probably not have a difficult time with various display implementations (such as binary). I admit being curious what these devices are and the "why" behind this question!Pandiculation
@Pandiculation Unfortunately I can't talk about the specifics. But the devices are network-centric and managed via a web-based interface. Each device has a miniature web-server built into it, so to manage it the user needs to know the IP address to hit.Underarm
@Underarm Wouldn't it be possible to have a centralized server/router/device keep track of the associations between the IP of these devices and the IP of the user's machine? That way users can easily find the device associated to them (or anyone else, really)Ransell
R
18

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.

Ransell answered 6/8, 2010 at 16:10 Comment(7)
2 should be 10 rather than 11 (my 4 was wrong initially, too!)Pandiculation
My users are unlikely to understand binary. While really cool and clever, I seriously doubt that my users would grok it, even with training.Underarm
@Underarm 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...Ransell
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...Pandiculation
Finger Binary. Wait, that sounded dirty.Yearling
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.Dinse
@Will, I'm sure someone wrote that article just to be able to show a photograph of 128 finger binary on wikipedia.Bomarc
Y
7

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.

Yearling answered 6/8, 2010 at 16:9 Comment(2)
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.Pandiculation
@jYelton you can always use a [broadcast packet](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....Yearling
D
6

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
(source: embedds.com)

Drucie answered 9/8, 2010 at 21:34 Comment(1)
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.Krauss
P
5

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.

Pandiculation answered 6/8, 2010 at 16:8 Comment(1)
Your users would have to master translating it on the fly - might I suggest an exercise? xkcd.com/74Erin
B
3

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).

Blackthorn answered 6/8, 2010 at 17:21 Comment(0)
K
3

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?

Krauss answered 7/8, 2010 at 4:19 Comment(0)
C
2

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.

Clintclintock answered 6/8, 2010 at 17:37 Comment(4)
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.Clintclintock
Also, allelectronics.com (a surplus electronics parts company in California) often has inexpensive LCD's like this one: 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.Pandiculation
Using the Embedded Master chip from GHI Electronics. ghielectronics.com/product/108Underarm
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.Underarm
W
2

Could do it the way that the pulse dialing worked in the phone system. Basically one blink is zero, and it counts up from there.

1 = **          (2 blinks)
9 = **********  (10 blinks)
2 = ***         (3 blinks)
Long Blink
1 = **          (2 blinks)
6 = *******     (7 blinks)
8 = *********   (9 blinks)
Long Blink
0 = *           (1 blink)
0 = *           (1 blink)
1 = **          (2 blinks)
Long Blink
2 = ***         (3 blinks)
4 = *****       (5 blinks)
1 = **          (2 blinks)
Walkthrough answered 17/8, 2022 at 6:38 Comment(0)
B
1

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

  • Morse code
  • Display IP as a sequence of digits in binary
  • ...
Bayern answered 6/8, 2010 at 16:8 Comment(0)
P
1

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.

Pesek answered 6/8, 2010 at 20:21 Comment(0)
I
1

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.

Isocline answered 7/8, 2010 at 2:23 Comment(0)
O
1

What about Broadcasting UDP packets and using a winforms app to listen for those packets. If you have multiple of these devices, the following might work.

  1. Open Windows Client that is listening on the correct port.
  2. Reset device or push a button on it to activate the UDP Broadcast.
  3. Maybe combine the LED's flashing actively on that unit for 1 minute.
  4. The Windows Client would then receive the IP Address and any other status information.

There may be an option here to set a unique ID (1-16 binary) in the device that is displayed on the device and broadcast with the IP Information. (??DIP Switches??) This gets away from having users interpreting binary flashing of the LED's.

So device 1010 shows it's LED's and the output in the Windows App shows On, Off, On, Off = 192.168.0.150

If you got fancy with this using Images of an LED On and Off would be even better.

I'm in a similar situation and haven't tested these theories yet.

Older answered 24/3, 2011 at 23:34 Comment(1)
I have since tried this technique on a Netduino. I thought both protocols (TCP/UDP) could be active on different ports at the same time, but couldn't make it work in the couple of hours I spent on the problem. So it is at least tricky to do this. If you are only trying to avoid the addition of a display that is rarely needed and are not otherwise using the Network connection this technique could still be really useful.Older
C
0

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.

Contribute answered 6/8, 2010 at 17:54 Comment(0)
S
0

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.

Singleminded answered 7/8, 2010 at 4:35 Comment(0)
S
0

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).

Schatz answered 7/8, 2010 at 4:49 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.