New plugin: Digital Rain (The Matrix falling code effect)

(Bart Nagel) #1

Plugin name: Kaleidoscope-LEDEffect-DigitalRain
Author: Bart Nagel
Source URL:


An LED effect similar to the “digital rain” seen in the “Matrix” films with green lights flowing downwards on the keyboard.

Video of the plugin in action

Someone had to do it… May as well be me.


(Gergely Nagy) #2

Awesome! Looks even better in real life than on the (already great) gif! This will have a nice place on my keyboard, thank you!


(Daniel Shields) #3

Excellent, really nice effect.


(ArleyM) #4

So good! I can remember when all of this kind of stuff was new and weird, so I thought I’d share an installation tip for people with less experience. On my Mac in the terminal application I could get this code by running:

cd ~/Documents/Arduino/libraries && git clone

Then adding the code from the link’s readme, then uploading. Fun!

Thanks for this effect, I love it.


(JP) #5

Thanks Bart, there is no spoon.


(JP) #6

I don’t know how to have arduino do a get from Git, so I just did it manually.

install instructions for windows 10:

  1. download the
  2. unzip it it to Arduino libraries: C:\Users\YourUserName\Documents\Arduino\libraries (for default arduino install, if you installed in some other location, this path may be different)
  3. remove the -master, it should read; Kaleidoscope-LEDEffect-DigitalRain
  4. add include statement to your config
  5. add the use statement to your config
  6. save/verify/upload to M01

hope this helps.

1 Like

(Jennifer Leigh) #7

It helps me! I have been wanting to get a page written up about adding plugins and LED effects. Will this work on Windows 7/8 as well as 10?

1 Like

(JP) #8

Not sure. I’m guessing it’ll be very similar. I would imagine if we (jesse and algernon) added digital rain effect to kaleidoscope proper that I wouldn’t have needed to pull it down and define it locally, but being its a fork/branch off tremby (Bart) it didn’t/wouldn’t get picked up. Someone more versed in version control systems can provide a better explanation.


(Jennifer Leigh) #9

I have a decent theoretical understanding of version control systems from my day job, but have never before needed a practical understanding. Still very much a git newb myself, but I’ve been working with teams managing branches and merges and such for many years.

My intent for a write-up is to document the process of installing non-core functionality into someone’s personal config. There are going to be more and more folks writing non-core plugins and effects, and it’s on my documentation task list to write up a guide for adding them to the Arduino IDE installation. Hopefully in a way that will persist through a library update. I expect Jesse will push a new version in the not terribly distant future, and there will certainly be updates in the future as the software is refined, so we need a process that will survive those events.


(JP) #10

Same here, I understand what version control is suppose to do and the theory behind it but I don’t use it at all. We manage config files at work and that’s all I touch. I don’t do pulls, branching, merging, or any of that, the build guys maintain and do all that. So I kinda fumbled my way through installing Bart’s digital rain effect.

1 Like

(Jesse) #11

The only different thing about the earlier windows revs, with regard to Kaleidoscope and the Model 01 is serial port driver silliness :slight_smile:

1 Like

(Craig Disselkoen) #12

In addition to the excellent instructions by @fishheadsoup above, I also have step-by-step installation instructions for MacrosOnTheFly in its README, and those should apply in general to all 3rd-party plugins. Obviously the modifications to your .ino would be different per plugin, but that’s the case for all plugins (third-party or not). The key difference between adding a 3rd-party plugin to your sketch and adding a core plugin to your sketch is just a couple steps, and those are (hopefully) covered in my README.

I also welcome suggestions to make my instructions even more clear, of course :slight_smile:


(Bart Nagel) #13

You did it exactly right if you’re not using git, to my knowledge, so good job!

1 Like

(Bart Nagel) #14

I’ve managed to procrastinate from work even more, and made some updates. The effect is now configurable to some degree, as of v0.1.0.


(JP) #15

Awesome stuff. Any chance of letting us change the color? Blasphemy, I know… But thank you Bart.

edit: spelling error


(Bart Nagel) #16

Glad you like it!

Yeah, that’s on my to do list. Changing it to the other primaries would be pretty trivial, while choosing another base colour would be a little more tricky…


(Adam Spiers) #17

Cool, thanks! I had to do a search to find this repository though - worth hyperlinking so that others don’t have to:

In fact, wouldn’t it be worth extracting this info into a new wiki page so that it can be pointed to from any third party plugin and co-maintained by the whole community?


(Adam Spiers) #18

I’ve just submitted this as Hope that helps!


(Eddie Jinks) #19

Cool effect. I use this pretty much as my primary. One thing I noticed is that the class is actually called LEDDigitalRainEffect not LEDDigitalRain as is indicated in some of the documentation. I was playing around with some of the public variables and found that little error.

Thanks for putting this together. Very neat.


(matt) #20

Hey, nice plugin. I commented on IRC about using ROWS and COLS instead of hard coding. I tested it today on our new Raise PCBs

Thanks for contributing!

1 Like