Yes, sorry that wasn't useful.
I have a 64 x 16 x 2 colour LED grid from embedded adventures, but finding an old link here it seems like it is similar to others. The board is here LED Matrix Display - LDP-6416 where it also has the data sheet.
I originally tried to get this to work on a raspberry pi, but couldn't get anything out of it. With the arduino, I can get some results but not anything useful.
the 64 columns are address with a shift register, with active low red and green pins (on 9 & 10), and a shift (8) latching them in.
The 16 rows are directly addressed with a 4 bit address, and an active low address latch. Finally there is an active low enable pin, used to disable the display when latching the address (and to reduce the brightness / current used by the device - obviously a complete 128 row of leds takes a bit of current).
There seems to be some kind of logic on there to ensure you are driving the address properly, in that if you don't address 0 and 1, nothing works, but with a loop similar to:
int rows[] = {0,1, 3, 5, 6, 7, 8, 12, 14, 15};
int maxIndex = 10;
byte ADDR_LATCH_ON =
void loop()
{
for(int rowIndex = 0; rowIndex < maxIndex; rowIndex++)
{
digitalWrite(ENABLE, HIGH); // Disable enable pin (turn display off)
int row = rows[rowIndex];
for(int col = 0; y < 64; y++)
{
byte portb = B00000110; // Default to red and green off and clock low
if((row % 2) != 0)
{
portb &= B111111011;
}
if((row % 4) != 0)
{
portb &= B111111101;
}
PORTB = portb;
delayMicroseconds(10);
PORTB |= B00000001; // Shift clock HIGH
}
digitalWrite(LATCH, HIGH);
digitalWrite(5, row & 8 ? HIGH : LOW);
digitalWrite(4, row & 4 ? HIGH : LOW);
digitalWrite(3, row & 2 ? HIGH : LOW);
digitalWrite(2, row & 1 ? HIGH : LOW);
digitalWrite(LATCH, LOW);
digitalWrite(ENABLE, LOW); // enable display (turn display back on)
}
}
which in my book should give me nice rows of black orange red green. I did once get that with a different application but although it is clearly reading the latch information (ie, only the rows I specified light), I now am just getting all red.
I have checked wiring, and that the signals are appearing with a scope, but I really can't see what I am doing wrong on something that should be quite simple.
One thing I really can't seem to do is get any kind of x movement on the display.
Hopefully i have done something glaringly wrong that someone can point out to me! 