[HN Gopher] Das Blinkenlights
       ___________________________________________________________________
        
       Das Blinkenlights
        
       Got a boring server rack? Got a retro-computer project? Need some
       bling??  If you have a little electronics skill then you may want
       to make a few of these babies to let your server rack party like a
       1970's mainframe.  Just a fun little project done over a couple of
       days at XMAS, and probably best not to install in the corporate
       server room!
        
       Author : boznz
       Score  : 127 points
       Date   : 2025-01-12 09:39 UTC (3 days ago)
        
 (HTM) web link (rodyne.com)
 (TXT) w3m dump (rodyne.com)
        
       | gnabgib wrote:
       | This doesn't look like a valid Show HN. It is an interesting blog
       | post (without the _Show HN_ prefix), though!
       | 
       | > Show HN is for something you've made that other people can play
       | with. HN users can try it out, give you feedback, and ask
       | questions in the thread.
       | 
       | > Off topic: blog posts
       | 
       | https://news.ycombinator.com/showhn.html
        
         | thekevan wrote:
         | Oh wow, I never read that and thought Show HN was simply, "Look
         | at this cool thing I did."
        
           | dang wrote:
           | It basically is! but the rules provide a few guardrails.
        
         | stephen_g wrote:
         | I disagree, on the very same page it says:
         | 
         | > On topic: things people can run on their computers or hold in
         | their hands. For hardware, you can post a video or detailed
         | article. For books, a sample chapter is ok.
         | 
         | While it's posted on a blog, I would say it meets the criteria
         | for having the video and write-up showing off the cool thing
         | that has been built.
         | 
         | I think what that page is saying about blog posts is that you
         | shouldn't post a Show HN as a 'look at this blog post I made
         | about [some random topic]', as in when it's the blog post
         | itself that you're showing off. It's not saying you can't post
         | any blog post as a Show HN.
        
         | dang wrote:
         | As stephen_g pointed out, it's ok by the hardware exemption in
         | https://news.ycombinator.com/showhn.html.
         | 
         | But I like the title Das Blinkenlights so have changed it
         | anyway. @boznz: I hope that's ok!
         | 
         | (The post is currently at #3 on the frontpage so there's not
         | much need for it to be high on /show in any case.)
        
           | boznz wrote:
           | All good with me. Just assumed others might want to build
           | one. Lots of empty rack space out there that might not mind
           | shedding a few extra watts for some color. Also its nice to
           | get noticed every now and then even if it is for the crappy
           | stuff :-)
        
       | Animats wrote:
       | > Now you need to remember this is not a metal panel it is a
       | 1.6mm thick fibre-glass one, it does the job, but it wont take
       | much abuse like a metal one will and flexes a little when
       | handling it.
       | 
       | That's when you design in a PC board stiffener. These are just
       | pieces of metal, U-channel, L-channel, or solid bar, to add some
       | structural strength. Cheap and easy, but rarely seen in hobbyist
       | work. Any board with buttons or knobs or connectors unsupported
       | for more than a few inches should have some stiffening. You have
       | to allow space for stiffening bars when designing the board, and
       | you need to place screw holes.
        
       | thekevan wrote:
       | I can't wait until gaming builds start adopting this trend. I
       | want to see a high end gaming rig but it looks like a server from
       | a 1990s sci-fi movie.
        
       | zaxomi wrote:
       | I'm planning to do something similar, but using addressable RGB
       | LEDs (like WS2811, also known as neopixel).
       | 
       | They are simple to work with. Each LED has 4 connections: GND,
       | +5V, DATA IN and DATA OUT. Each LED grabs the first 24 bits of
       | the data stream (8 bits for Red, Green and Blue) and sends the
       | rest on DATA OUT for the next LED.
        
       | mulmen wrote:
       | Very cool. This scratches several itches. What data is this
       | displaying? Are you tailing syslog and writing it to a serial
       | output? Do you have some status monitor that assigns meaning to
       | the lights?
        
         | boznz wrote:
         | Nothing exciting if you look at the code near the end.
         | 
         | for(i=0;i<8;i++) LEDRegister[i]=LEDRegister[i]+TMR0+addr;
         | 
         | Note this is also technically a bug, the for(i=0;i<8;i++) loop
         | executes so fast that TMR0 (an independent PIC timer that
         | increments every 740uS) is usually the same value added to each
         | LEDregister. I actually added +i to the end of this line in my
         | version, but I'm guessing someone making this will tweak the
         | code to do whatever they want or store some patterns as consts.
         | The code really is quite crappy now that I look at it sober,
         | the watchdog timer is turned off and should be on, there is no
         | checksum on the serial data, procedures called from interrupts,
         | defines with double-slash comments, all stand out like a sore
         | thumb. Lucky it just blinks lights and doesn't run a dialysis
         | machine!
        
       | keyle wrote:
       | I would feel so productive! Well done.
        
       | croes wrote:
       | Nitpicking
       | 
       | Blinkenlights isn't a german word it's pseudo german for
       | Blinklicht originating from
       | 
       | https://en.wikipedia.org/wiki/Blinkenlights#:~:text=on%20the...
       | 
       | But the Chaos Computer Club built light installations called
       | 
       | https://en.wikipedia.org/wiki/Project_Blinkenlights
        
         | Over2Chars wrote:
         | @croes I was thinking the same thing (knowing no german, but
         | having a hunch).
         | 
         | And the CCC project was a whole building.
         | 
         | For his example, I was expecting a whole cage with some tricked
         | out lights, maybe some smoke effects (I can see new colo signs
         | being updated "no cardboard,no smoke machines allowed"), a sub-
         | woofer playing some chiptunes, etc.
        
         | not2b wrote:
         | I saw a version of that sign a very long time ago in a
         | government lab at my high school summer intern job, attached to
         | a PDP-11 that came with blinkenlights.
        
           | gonzo wrote:
           | First time I saw it was 1981 on the front of a DEC-10
        
             | boznz wrote:
             | PDP-10 Was awesome. There is a nice version of the console
             | you can buy here =>
             | https://hackaday.io/project/170111-pidp-10
        
         | emmelaich wrote:
         | obvious? that's the fun of it.
        
           | unkeen wrote:
           | The linked article begins with "[Blinkenlights] Probably the
           | only German word I know"
        
             | Sharlin wrote:
             | Ironically the author likely knows some actual German words
             | like Schadenfreude and Kindergarten.
        
               | teddyh wrote:
               | The list is quite long: <https://en.wikipedia.org/w/index
               | .php?title=List_of_German_ex...>
        
         | danielbln wrote:
         | I would also use "die" instead of "das* for Blinkslights, since
         | it's plural.
        
         | jansan wrote:
         | I wrote "I love you" on the CCC Blinkenlights in Berlin to my
         | then girlfriend, who has been my wife now for 20 years. The
         | most romantic thing I ever did :)
        
           | boznz wrote:
           | In 1985 I made a similar panel which had 16 lights and
           | mechanical switches and installed it in a rack in an
           | operations center in GCHQ just to make it a bit more
           | colorful. One day I came back from leave and the boss was
           | really mad at me as they had been showing around some VIP,
           | who stopped at the panel and asked the area director what it
           | did. As all the technicians had been evacuated for the tour,
           | nobody had a clue.
        
         | fuzztester wrote:
         | >The Jargon File also mentions that German hackers had in turn
         | developed their own versions of the blinkenlights poster, in
         | broken English:[1]                   ATTENTION         This
         | room is fullfilled mit special electronische equippment.
         | Fingergrabbing and pressing the cnoeppkes from the computers is
         | allowed for die experts only!         So all the "lefthanders"
         | stay away and do not disturben the brainstorming von here
         | working intelligencies.         Otherwise you will be out
         | thrown and kicked anderswhere!         Also: please keep still
         | and only watchen astaunished the blinkenlights.
        
           | wizzwizz4 wrote:
           | I have never been able to track down what "cnoeppkes" is
           | supposed to mean.
        
             | kemitchell wrote:
             | Knopki (k-nope-key) is Russian for "buttons". Maybe
             | related.
        
             | wongarsu wrote:
             | My guess is "Knopfchen" (German for "little button"). The
             | "chen" suffix is difficult to pronounce for English
             | speakers, so it's replaced by the word "keys" (as in the
             | buttons of a keyboard)
        
               | master-lincoln wrote:
               | > The "chen" suffix is difficult to pronounce for English
               | speakers, so it's replaced by the word "keys" (as in the
               | buttons of a keyboard)
               | 
               | Not quite. The -ke ending here is just another regional
               | variant of the diminutive. The s at the end is a
               | colloquial plural form.
               | 
               | So the transformation from German to this weird german-
               | english would be:
               | 
               | Knopfe - Knopfchen - Knoppkes - Cnoeppkes
        
               | sandbach wrote:
               | Another detail you didn't mention: _knopp_ or _knoppe_ is
               | a Low German (northern German) variant of Standard German
               | _Knopf_. That 's where the _pf_ -- _pp_ alternation
               | arises.
        
             | bananasbandanas wrote:
             | Definitely means buttons. Source: am German
        
               | fuzztester wrote:
               | Although it is not needed, the first line of this article
               | confirms that meaning:
               | 
               | https://en.m.wikipedia.org/wiki/Jim_Knopf
               | 
               | And the article is interesting anyway.
        
             | enasterosophes wrote:
             | Knob?
             | https://www.etymonline.com/word/knob#etymonline_v_1916
        
           | graemep wrote:
           | That is funny (I do not know German but it still made me
           | laugh) for exactly the same reason as the Blinkelights
           | version - the similarities between German and English that
           | make so many works almost recognisable.
        
         | distantsounds wrote:
         | welcome to hackernews, where every article posted has something
         | made up about it and the points don't matter
        
         | i5heu wrote:
         | Also Kindergarten is German :)
        
       | Over2Chars wrote:
       | Like they used to say in Art school during critiques "go big! I'd
       | like to see what this looks like _bigger_ "
        
       | benbristow wrote:
       | Hearing 'blinkenlights' reminds me of the still very much up
       | 'towel.blinkenlights.nl' telnet server which plays an ASCII art
       | rendition of Star Wars if you dial into it.
       | 
       | There's a joke if you have IPV6 connectivity where if you use
       | IPV4 it says it has full colour support but if you do... well, it
       | doesn't!
        
         | Insanity wrote:
         | Came to post the same..!
         | 
         | Someone wrote about it on Medium: https://medium.com/nerd-for-
         | tech/telnetting-watching-star-wa...
         | 
         | Nice bit of nostalgia for me.
        
       | edoceo wrote:
       | Anyone using todbot blink(1)? Also a fun USB RGB.
       | 
       | https://blink1.thingm.com/
        
       | yjftsjthsd-h wrote:
       | > Working C Code below for those in the know.
       | 
       | It would be nice to explicitly attach a (FOSS) license to this.
       | (Apologizes if there is one and I just missed it)
        
         | boznz wrote:
         | Boz here, I just assumed a design so obvious would not need
         | one, my bad, anyway it is totally public domain so knock
         | yourself out.
        
       | bqmjjx0kac wrote:
       | Not to be confused with the Justine Tunney's debugger named
       | Blinkenlights: https://justine.lol/blinkenlights/
        
         | hinkley wrote:
         | NICHT FUR DER GEFINGERPOKEN UND MITTENGRABEN
        
         | robertlagrant wrote:
         | Yes - I was coming here for that.
        
       | 46Bit wrote:
       | The effect is really cool. I like the idea of visualizing data
       | flowing through work systems like this. I think I'll go for
       | 3D-printed or laser-cut panels instead though - would work out
       | cheaper. Thanks :)
        
       | bmoe wrote:
       | This looks very much like a Connection Machine. A red LED would
       | light up when its corresponding processor was active.
        
         | teddyh wrote:
         | No, IIRC, on a Connection Machine, a light _blinks_ when the
         | corresponding CPU is active. A LED which is on _or off_ means
         | the CPU is idle.
         | 
         | I am personally quite convinced that they chose to do it this
         | way because the way you describe it - the obvious way - did not
         | look cool enough.
        
         | k2enemy wrote:
         | The connection machine had several modes for the front lights.
         | The one most familiar is "random and pleasing" and the code can
         | be found here: https://trmm.net/CM-2/
         | 
         | Reference: https://thedailywtf.com/articles/Thinking-
         | Machines#comment-1...
        
       | aryehof wrote:
       | Many, many years ago, I saw a copy of Das Blinkenlights delivered
       | on a sheet of paper with the documentation of a brand new S/32
       | IBM system. Certainly a highlight of my IT career!
        
       | bitwize wrote:
       | Actual German would be something like "die Blinkenlichten".
       | "Blinkenlichten" was the form used in the original faux-German
       | sign from which "blinkenlights" is said to derive.
       | "Blinkenlights" _is_ used in a faux- _English_ sign that hung in
       | some German computer installations:  "Please keep still and only
       | watchen astaunished the blinkenlights."
       | 
       | See: https://en.m.wikipedia.org/wiki/Blinkenlights
       | http://www.catb.org/~esr/jargon/html/B/blinkenlights.html
        
         | bipson wrote:
         | Die Blinklichter, if anything.
        
       | LysPJ wrote:
       | This story reminded me of the "BeBox" [0] PowerPC computer from
       | the 1990's, which had Blinkenlights on its front bezel.
       | 
       | (It ran the very cool "BeOS" operating system[1], which was
       | eventually ported to Mac, then x86.)
       | 
       | [0] https://en.wikipedia.org/wiki/BeBox
       | 
       | [1] https://en.wikipedia.org/wiki/BeOS
        
         | lproven wrote:
         | And a FOSS re-implementation of which is still alive and in
         | active development. The project recently released beta 5 --
         | it's very nearly ready for version 1.0 and now runs GNOME
         | Epiphany, Firefox, LibreOffice and more.
         | 
         | https://www.theregister.com/2025/01/09/testing_haiku_beta_5/
        
         | deltarholamda wrote:
         | That you felt the need to explain these makes me feel really,
         | really old. (And you did need to explain it; it's practically
         | Elder Lore at this point.)
         | 
         | It's like explaining to young people that we used to have to
         | pay per message for SMS, or that only one person could be on
         | the Internet at a time at your house.
         | 
         | Now if you'll excuse me, I see some suspicious looking clouds I
         | need to go yell at.
        
         | endemic wrote:
         | The BeBox is my holy grail of retrocomputing! Had to settle for
         | a partition on my x86 machine. Loved BeOS back in the day.
        
       | dvh wrote:
       | I like the KISS implementation of the ascii2dec function ;)
        
         | boznz wrote:
         | The retro 1970's coding was thrown in for authenticity.
        
       | unwind wrote:
       | I liked how this project used "reverse mount LEDs" [1] which are
       | perhaps not known to everyone.
       | 
       | It means that instead of being mounted to a PCB and having the
       | light shine "up" from the board, it instead shines _down_ between
       | the solder points, and you arrange for the PCB to have a hole
       | there. It means all the components are on one side, but the light
       | is emitted on the back which can be clean and /or have cool
       | silkscreens etc. Nice!
       | 
       | [1]:
       | http://www.kingbrightusa.com/category.asp?catalog_name=LED&c...
        
         | mewse-hn wrote:
         | Mechanical keyboards have moved this direction (lighting on the
         | back of the pcb, through a hole) so that the LEDs don't
         | physically interfere with the hot-swappable key switches.
        
       | jsvaughan wrote:
       | You could perhaps make it play a subtle background sound like the
       | noise WOPR makes https://www.youtube.com/watch?v=t4vWTzs_bp4
        
       | NKosmatos wrote:
       | I read this phrase: "I had almost 200 really crappy PIC16F1782
       | chips" and remembered my university days when we were programming
       | the PIC16C84 and thought that this was a very good chip (at the
       | time) :-)
        
       | zokier wrote:
       | > Yes, I remembered now, I had almost 200 really crappy
       | PIC16F1782 chips, left over from an update for one of my clients
       | 
       | > First problem there are not enough GPIO pins on the 28-pin PIC
       | to drive 128 LED's, plus an address line, plus a serial receive
       | pin, minimum GPIO's for that is 24 (16x8 LED scan
       | matrix)+4(address)+1(RXD) = 29. A simple solution is to add two
       | 74HC595 shift registers to increase the outputs by 16 at the
       | expense of 4 pins to control them.
       | 
       | Wouldn't the simple solution be just to split the matrix in half
       | and throw second PIC in there? Or just make 1U panels instad of
       | 2U?
       | 
       | Also the PIC is rated to sink/source 25 mA so you could have
       | skipped the led driver transistors, making the boards even
       | simpler.
        
         | zokier wrote:
         | Another note for simplification, you could use the builtin i2c
         | peripheral and give each octet of leds its own address. You got
         | 64 octets in total, which conveniently fits into 7 bit i2c
         | address space. That should make the communication trivial to
         | handle.
         | 
         | Also RPI has builtin i2c, so you don't need usb adapter for it.
        
       | f1shy wrote:
       | >> unsigned char ascii2dec( unsigned char data) // expecting a
       | hexedecimal num 0..F anything else returns 0       {
       | if(data=='0') return 0;       if(data=='1') return 1;
       | if(data=='2') return 2;       if(data=='3') return 3;
       | if(data=='4') return 4;       if(data=='5') return 5;
       | if(data=='6') return 6;       if(data=='7') return 7;
       | if(data=='8') return 8;       if(data=='9') return 9;
       | if(data=='A') return 10;       if(data=='B') return 11;
       | if(data=='C') return 12;       if(data=='D') return 13;
       | if(data=='E') return 14;       if(data=='F') return 15;
       | if(data=='a') return 10;       if(data=='b') return 11;
       | if(data=='c') return 12;       if(data=='d') return 13;
       | if(data=='e') return 14;       if(data=='f') return 15;
       | return 0; // default/error
       | 
       | }
       | 
       | I could probably think about a little bit shorter function for
       | that ;)
        
         | rad_gruchalski wrote:
         | Also the default case returns 0, same as data=='0'. Good luck
         | figuring out if there was an error.
        
         | boznz wrote:
         | Boz here and guilty on all charges. There are plenty of errors
         | if you look hard when sober. There's professional grade coding,
         | then there is coding for hobby projects which blink LED's, when
         | you're drinking beers and listening to rock music in a big shed
         | with a mate.
         | 
         | On another note, somebody asked me to make 30 panels using an
         | RP2040 which I will put up on my site when ready, price will
         | actually be less due to qty. as a side note he did want me to
         | use the RP2350 but nobody has any in stock yet.
        
       | halyconWays wrote:
       | I'd love to see a design that uses a dirt-cheap uC, because the
       | PIC16F1782 chips he had laying around are $2.50 each on Mouser!
       | 
       | Edit: Tried to buy these (either PCBs, the BOM, or ideally fully
       | assembled boards) and holy shit I've never seen a worse website
       | than oshwlab/easyeda. So far: clicked 'purchase parts,' had to
       | sign up, captcha was at max strength and had to agonizingly
       | select slowly fading in cards over four times; clicked to send
       | code; code took a while to get here and captcha expired; entered
       | code but it had ambiguous "i" vs. "l" vs. "1" and I entered the
       | wrong one; repeat captcha, this time only two pages of slowly
       | fading cards; click to send code again; enter code; captcha
       | expired; enter captcha again, enter code again; told I already
       | have an account (I do??); go to forgot password; solve another
       | long captcha; click to send code; captcha expired; enter code and
       | captcha; password reset; get taken to generic landing page; go
       | back to main site and click 'purchase parts' again; says I'm not
       | logged in. log in again; taken to generic landing page; go back
       | to main site and click 'purchase parts'; page loads...takes me to
       | "lcsc" and tells me to make an account. JFC.
        
       ___________________________________________________________________
       (page generated 2025-01-15 23:02 UTC)