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