Using Vixen3, Arduino UNO, and 16x16 WS2812B LED Panel

HELP!!! I want to run a light show on a prebuilt matrix which is a WS2812B LED Panel. It is 16x16. It only has a single data in connection that I want to use to read from the Arduino to run the panel. I really need to know how to properly do the code to get the Arduino to read from vixen from a pin 8. Once I get the program to read, I should be able to figure out the rest of the code to do other functions I need to do. I know there are a couple of variations on youtube, but they are for big projects that require a relay which I do not need to use just one matrix. Any help would be greatly appreciated.

I have a class project due in a couple of weeks. I had the bright idea to use a 16x16 neopixel matrix to set music to lights. I need to know how to get vixen and the matrix to talk through the arduino. The matrix has a single data in input attatched to the back that will attach to the arduino into a pin that will be an output pin. Any help is appreciated.

I'd start by getting the display working. Check out the Adafruit site for help there. Do note that those displays draw a lot of current if you have a lot of pixels on. Far far more than the Arduino can supply so you will need a separate power supply.

I think I have bitten off more than I can chew. I am attempting to do a vixen sequence using a 16x16 dotstar rgb matrix. I have attatched an image of the matrix I am using. I have searched and searched and get find anything using this nor any code that points me in the right direction. How do I get the arduino to read this coming from vixen 3. Coding is a new concept to me. Please help. Project is due December 4th and I havent had any luck.

I've merged your cross posts @dad2dalton2008.

Cross posting is against the rules of the forum. The reason is that duplicate posts can waste the time of the people trying to help. Someone might spend 15 minutes writing a detailed answer on this thread, without knowing that someone else already did the same in the other thread.

Repeated cross posting will result in a suspension from the forum.

In the future, please take some time to pick the forum section that best suits the topic of your question and then only post once to that forum section. This is basic forum etiquette, as explained in the sticky "How to use this forum - please read." post you will find at the top of every forum section. It contains a lot of other useful information. Please read it.

Thanks in advance for your cooperation.

Basically as @wildill said, I would start with examples that come with the FastLED or Adafruit_Neopixel libraries.

I have no idea about vixen3, there might be a protocol published for communication. You will need to study that and implement the Arduino side.

Hi,
Ops image.

Have you written any code for any application before?
Have you tried the tutorial and examples from Adafruit?
If not why not. Start getting some code together to at least flash the LEDS.

WHAT IS VIXEN and how does it communicate?

Can you tell us your electronics, programming, arduino, hardware experience?

What course/qualification is this for?

Thanks.. Tom... :slight_smile:

I have written some code. Ill paste it below. My coding knowledge is very limited. I am having to complete this project for a basic coding class. The code worked as far as communicating to the pixel matrix. Only one Pixel would light up though. Vixen 3 is what most people use to do the big light shows you see on shows like the great christmas light fight and the other videos posted online of lights going with music. You have to make your own sequence to music in the software.

Code:

#define MAX_CHANNELS 8

int ch;
int state;
int chVal[MAX_CHANNELS] = {0};
int pins = {3, 4, 5, 6, 7, 8, 9, 10};

enum states
{
IDLE,
DELIM,
READ,
DISP
};

void setup()
{
for (ch=0; ch<MAX_CHANNELS; ch++)
{
pinMode(pins[ch], OUTPUT);
digitalWrite(pins[ch], LOW);
}

state = IDLE;
ch = 0;

Serial.begin(115200);
}

void loop()
{
if (Serial.available())
{
switch (state)
{
case IDLE:
ch = 0;
if (Serial.read() == ‘+’)
{
state = DELIM;
}
else
{
state = IDLE;
}
break;

case DELIM:
ch = 0;
if (Serial.read() == ‘>’)
{
state = READ;
}
else
{
state = IDLE;
}
break;

case READ:
chVal[ch++] = Serial.read();
if (ch >= MAX_CHANNELS)
{
ch = 0;
state = DISP;
}
break;

case DISP:
state = IDLE;
for (ch=0; ch<MAX_CHANNELS; ch++)
{
analogWrite(pins[ch], chVal[ch]); // Write current values to LED pins

/*
if (chVal[ch] > 0)
{
digitalWrite(pins[ch], HIGH);
}
else
{
digitalWrite(pins[ch], LOW);
}
*/
}
break;
}
}
}

WORKING_LEDSequenceVixen.ino (1.46 KB)