LED Matrix web controller

Arduino, Raspberry Pi, BL-M12A881UR-11, MAX7219CNG, Node.js, Tutorial

This project consists of a web controlled 8x8 LED matrix, allowing multiple users to interact between them. On a first run kept it running for 24h, i really enjoyed watching the users interacting with it, lot's of people drawing all kind of stuff from pixel art to animated snake games, to users playing rounds of Tic Tac Toe between them.

I made the project one week before i knew about this awesome guys livebots.cc and since then it has been its home along with it's web controled robot friends.

On the technical side of things i have a node.js instance running on my Raspberry pi ( Arch Linux distro ), that communicates with the arduino by serial port, here comes a more detailed tutorial about the project if you wan't to run your own instance

Components
30~ Kohm resistor
A bunch of prototyping wires
8x8 Led Matrix BL-M12A881UR-11
Digit Display Driver MAX7219CNG
Arduino
Raspberry Pi ( or other computer capable of running a node.js server )

Software
node.js
arduino ide
and here is the source code https://github.com/7Ds7/ledmatrix-webcontroller

Wiring
The tricky part was to figure out which pins were the cathodes and anodes from the Led Matrix, once i figured that out having the datasheet and this tutorial as reference it's pretty straight forward, the cathodes connect to the DIG (rows) pins and the anodes to the SEG (columns) pins.

Led Matrix arduino and MAX7219CNG schematic

Once you confirm you have control over the matrix ( ahahah how does that sound? ) start setting up your machine, first install node.js and test it. Then get the source code from github, navigate to app folder and install the package dependencies using npm.

user@localhost:~/ledmatrix-webcontroller/app/$ npm install

It will download the packages serial-port, socket.io and forever, the last one is quite optional but i recommend to use it if you want to keep the node.js instance running even if it unexpectedly quits, in fact it does that for any kind of script you want to run.

Do not forget to forward your router ip port ( default: 8124 ) if you wan't the instance to be available outside your network. When ready upload sketch to arduino found in the arduino folder and connect it to your computer running node. And start the node server as usual:

user@localhost:~/ledmatrix-webcontroller/app/$ node server.js

For users to be able to see the LED matrix in realtime you need a regular webcam to stream it, i used the service http://bambuser.com/ using a very low resolution in order to have the less lag possible ( lag will always happen ), i managed to get the best results using Flash Media Live Encoder.

Hope you enjoy, happy drawings :)