My latest Faux Server....using a modified Kreigsman holiday light show....

(Michael Sime) #1

My latest Faux Server…using a modified Kreigsman holiday light show…

I’m still trying to attain the ‘perfect’ feel for activity lights in a server…suggestions and code snippets welcome and encouraged!


(Jon Burroughs) #2

What if you used the twinkle code in the opposite way. Instead of the twinkles turning on the lights, have them turn off the lights. It should leave more leds lit and a more realistic look? No?

(Marc Miller) #3

It’s a great project Michael. You definitely have some good activity going on there. It does look a bit too random to me though, and I agree with @Jon_Burroughs that there could be more of them on at a time.

I just had a look at some random youtube videos. Here’s the ones I just watched:

The sort of things I’m picking out from watching these include:
a) There are often synced groups of blinking pixels.
b) Pixels often blink multiple multiple times. Bursts of blinking.
c) There are some pixels that are continuously on or only blink off occasionally. These also are sometimes a different color then the rest of the pixels in the row (like a master indication light for a row).
d) The colors of the pixels are somewhat unified, especially for a given horizontal row or block area in a rack.
e) The color red doesn’t seem used much (but I totally understand about art direction and if they want red, then they get red).
f) Sometimes the pixels aren’t very bright. More on, but less bright. (I totally understand that sometimes stuff is amplified for TV and film, but toned down brightnesses would also allow for more pixels to be on and not be so distracting)
g) The pixels don’t ramp up/down really. The just turn on and off.

Here’s some thoughts about how you might go unifying things a bit. Considering the points above, make some rule sets you can apply to rows, blocks of pixels, or specific key pixels. A rule set might specify:

  1. A color (or a few specific color choices to pick from). Unify colors in rows or blocks.
  2. The brightness (It could also randomly add/subtract from the value just a tiny bit to slightly vary things.) Again unify brightness in rows or blocks.
  3. Percent of time a pixel or block of pixels is on. [See below for an example I use.]
  4. To randomly turn on one to several of a pixels neighbors.

I think if you apply a combination of rule sets (mix and match if you will) to different defined rows, blocks of pixels, and a few “master single end row pixels” you can still have some rather random stuff going on but hopefully it would have a unified look still.

// Run something only a certain percentage of the time…
uint8_t p = random(100);
if (p < 30) { // number is percentage of 100
[…do stuff here… This example will run about 30% of the time]

(Stuart Taylor) #4

I guess I echo @marmil ​ sentiment with regard to the art direction, that said, it looks very fake.

All of our servers look more mundane, and the LEDs mean something so there is a cadence:

Power led, green or blue, always lit, static.
Disk access led, usually green, randomly lit, comes in bursts, lasting random durations, getting brighter for massive file transfers.
Network, green with an orange static one right next to it, randomly lit, but, lit in sync with all the other network LEDs in the rack. This is usually broadcast data (ARP request).
Finally each rack has a network switch. High density of LEDs in one unit, all synced to network LEDs.

The green LEDs are that yellowy green, not a pure rgb green.

I’ve never seen pink, purple and only apart from, F5 load balancer which has a big lit logo and barracudas, which are quite rare today.

So that’s quite a boring palette.

I could shoot some video with a walk through if you like.

Also. Small to medium sized enterprises tend to have messy cabinets. Only the higher end corporate and large enterprises have enough cash to have enough people to be able to care about astetics of their racks.

So in a messy cabinet, you will find 19" servers, then somewhere in there will be a small unit (music on hold, or ADSL modem) just sat on top of something else. In a messy cabinet any color patch cable goes. In a neat cabinet the cable color means something. I.e red for PCI compliant, blue for telephony etc etc

(Mark Kriegsman) #5

Looks cool!
I wonder if any sort of clustering would look good: i.e. Make it more likely to blink a new light if its neighbor is already lit.

Another idea: have certain lights be much more likely to blink than others.

I can think of a couple of ways one might implement these, but at this point just brainstorming.

Do you have a vision or sense of what would make the look more ‘right’ for this application?

(Michael Sime) #6

thanks for the input, and yes, you guys are right, it needs some help to be more realistic…my problem is trying to come up with a SIMPLE way of grouping the animation according to how the pixels were placed…as it stands now, depending on the component I added pixels to, there’s groupings of 6/5/4 to 2 pixels, daisy chained (it can go top to bottom of bottom to top, I wired it for interchangeability)

this is where I hit my programming brick wall…

for this instance, i’d need some code that says “pixels 1-4- play routine x”, “pixels 5-6 do Y” & etc

AND then I’d need a routine that says "within grouping, px1 is solid green (with maybe an occasional twinkle ), px 2-3 more random green/orange twinkle etc, etc…

…and BAM, face meet wall

I would THINK that coding this would be easier than writing code that makes a video wall, but hey, like I said, I’m clueless here…and thanks for your help

(Mark Kriegsman) #7

If you want groups of, say, 6 pixels, then you can do this:

int positionWithinGroup = pixelNumber % 6;

Then positionWithinGroup is 0,1,2,3,4, or 5. You could have the color-choosing and pixel-choosing routines use this info to prefer certain pixels or colors. E.g., if positionWithinGroup == 0, then always use green.

(Michael Sime) #8

ok, and now I have no idea what to do with that…:wink: the use of brackets and whatnot always seems to screw me up…hell, I tried changing the color on the holiday lights and somehow screwed up the works, just by changing w,w,w,w, to r,r,r,r…who knew?

(Michael Sime) #9

This is me bumping this (can you bump threads in Google groups?)

I wound up designing a 2x Teensy system that allows control over different patterns & speeds & even sections (using a modified octo)…of course I had to work with a local maker to do the nitty gritty programming…

but of course I now have one of my regular clients that wants 10 MORE of these ‘servers’ built by (of course) this TUESDAY 12/15/15! and there’s no way I’ll get my boards from the board maker people in time…so I’m back to one long thread of pixels strung thru 10 or so blades in a rack…

I’m playing around with christmas lights again, but it’s still random-random…I’m hip to your suggestions, but have no time to tinker and learn the code…I dunno if this is kosher here, but I’l gladly pay someone to come up with some groovy server code for me to try out! HELP!

(Marc Miller) #10

The only people that will see your “bump” here are the people that have commented on this thread, so in this case only 4 other people and anyone that is looking through old posts. Better to make a new post to get it in front the whole group again if you want more exposure.

That’s cool you made a new version that a client loved and wants more of!

(Stuart Taylor) #11

Lol @Michael_Sime ​ i couldn’t remember who it was who was doing this, but i have made a video of real servers as promised.

You’ll notice that theres some big blobs of light, and they are all LCD displays. The majority of leds are green. Let me know if you want some more close ups etc.

(Marc Miller) #12

Oops, video is currently private @Stuart_Taylor ​​

(Michael Sime) #13

@Stuart_Taylor - I’ve got plenty of examples of the real thing…my problem is coming up with a sketch that will do that!..

(Michael Sime) #14

Hey +Mark Kriegsman - I’ve been playing again, and have a nice pattern, but would love to try most pixels always on, with the occasional flicker off…but because I’m a moron, I don;t see where in your sketch to do such a thing…

(Mark Kriegsman) #15

Uh. Would require a rework. Which I have going on. But only in my head.

Maybe turn the fade out speed way down, AND also have it NOT wait until the pixel is totally black before restarting it getting brighter?

Code changes needed, not mere params this time.

(Stuart Taylor) #16

Whoops, thanks @marmil ​ for pointing that out, fixed.

(Michael Sime) #17

Hey @Mark_Kriegsman Tried turning down the fade out speed, and that seems to help a bit…BUT now how do I say “don’t go full black before brightening”?