Table of contents Preparing the 64 LED RGB matrix Data lines Power supply Controlling the 64 LED RGB matrix What microcontroller should I use ? Connecting a panel to an Arduino™ Uno Adafruit™ neopixel library Adafruit™ neomatrix library Mounting the 64 LED RGB matrix Mounting holes 3D print mounting brackets LED’s get started!
LED. That is how the display data propagates through a panel, from one led to the next. In the VM207, the LEDs are connected in rows and each row has a returning line so the beginning of the next row can be connected to the end of the previous row.
Page 4
You can see that the panel is not going to work right away because the first row just ends and isn’t connected to anything. The display data would just stop at the end of the first row of LEDs and not continue through the panel.
The drawing below shows how you can tile two (or more) panel(s) next to each other by connecting the solder pads at the sides with some bare wire. You can see that a row now exists out of 16 LEDs instead of 8. fig.
Power supply Powering the VM207 is a bit simpler. There are 3 contacts labeled DV+, LV+ and GND, they respectively stand for Data Voltage +, LED Voltage +, and Ground. The WS2812 LEDs that are mounted on the panels are the 6 pin variant and these have separate pins for the 5 V for the LED die and the 5 V for the IC die inside the package.
Page 7
When you have more panels you will need to place them in parallel. When you are having a lot of panels, make sure you are using wires of the correct gauge or use multiple wires from the supply to the panels! fig.
Follow the drawing below to connect a panel to an Arduino Uno. At the moment we use pin 6 as the data output but this can be changed in the code later. Supply the Arduino with power as well as the VM207 and connect the grounds together.
Adafruit neopixel library First we will explain the ADAFRUIT NEOPIXEL library. This library written by Adafruit can control a whole bunch of WS2812 LEDs seperatly. So this isn’t exactly useful when you want to draw text or shapes on your panel but it is when you want to control each LED separately and do your own thing with it.
Page 10
Next we see this line: Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); This line gives a name to our bunch of LEDs, here this is “pixels”. You could easily change this to “panel” or something else but you would have to change all the occurrences of “pixels” in the rest of the program. Then we tell the program how “pixels”...
Page 11
Next, we have the main loop function: void loop() { // For a set of NeoPixels the first NeoPixel is 0, second is 1, all the way up to the count of pix- els minus one. for(int i=0;i<NUMPIXELS;i++){ // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255 pixels.setPixelColor(i, pixels.Color(0,150,0));...
Page 12
pixels.show(); // This sends the updated pixel color to the hardware. delay(delayval); // Delay for a period of time (in milliseconds). for(int i=0;i<NUMPIXELS;i++){ pixels.setPixelColor(i, pixels.Color(0,0,0)); // No color (dark). pixels.show(); //Updating the panel to show nothing. This code will erase all values after the initial for-loop using a second for-loop. Also, we have changed the colour to fully saturated blue.
Page 13
// On a Trinket or Gemma we suggest changing this to 1 #define PIN // How many NeoPixels are attached to the Arduino? #define NUMPIXELS // When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send sig- nals.
Adafruit neomatrix library If you want to display text or draw shapes on your panel(s) you can use the ADAFRUIT NEOMATRIX library. To make this library work you actually also need to use the ADAFRUIT GFX libraries. This one takes care of the shapes, letters and colours while the neomatrix takes care of sending all that data to the panels.
Page 15
NEO_GRB + NEO_KHZ800); If you ever build a bigger display out of VM207 panels you just need to think of it as one big panel and adjust the parameters accordingly. The following code in the program is just an array with 3 colours so we can cycle through some colours...
Page 16
const uint16_t colors[] = { matrix.Color(255, 0, 0), matrix.Color(0, 255, 0), matrix.Color(0, 0, 255) }; In the setup function there are a few things we must take care of, but the most important part is the matrix. begin(); function as this will initialise the panel. All the code that follows takes care of the animating text that will be displayed on the panel.
Mounting the 64 LED RGB matrix Mounting holes The panels have mounting holes in a pattern that tiles when you use multiple panels. These holes are 2 mm in diameter so use a small M2 screw to mount the panels. They are spaced 72 mm apart and staggered. See the drawing below: USER MANUAL K8403...
3D print mounting brackets You can download the following mounting brackets if you have a 3D printer: vm207-tile_mount.stl Several mounts connect together with M3 x 10 bolts. USER MANUAL K8403...
Page 20
Requires 6 x VM207 panels. Pay extra attention to how the panels need to be connected to each other! USER MANUAL K8403...
Need help?
Do you have a question about the VM207 and is the answer not in the manual?
Questions and answers