LEDboard

I recently got my hands on around 5 or 6 LEDboards with 448 LEDS on them (each). Together they made an moving screen.

As far as I can see now, there are always 4 LED's connected together, so infact 112 LED-blocks.

is it possible to use an Arduino to control these? The old controller seems to be broken.

The boards are powered by 12V and have a few (7) BDX34C's on it, a mc74hc08an, 2 * 74hc164n, a 74hc373AP, 5* uln2803a, a L7805CV, a few resistors and som capacitors.

If someone outthere can help me to get this working; I would highly appriciate it.

Sounds like its using a scanning system. Rows and columns. I dont know allot but these guys might. They have a system I stumbled across on youtube looks simliar to yours.

Led Sign - http://www.youtube.com/watch?v=nILHGU1qJzY

I don't think it's similar. Mine are just one color LED's and quite old (1996)

I managed to address each individual ledblock (destroyed a few :frowning: ) Iwill post some pictures (or movie) after a clean up the code a bit.

Finally I have it all (???) figured out.

here is the code (it’s my first Arduino project, so I’m sure there’s room for improvement):

#include <WString.h>
#include <Flash.h>
#include <LedBoard.h>

#define REFRESH  10
#define ROWS     7
#define COLUMNS  16



int updatespeed = 100;
void initialize(void);
void activaterow(int, int);

int ledRows[] =  {2,3,4,5,6,7,8}; 
int clockPin = 13;
int clearPin = 11;
int dataPin = 12;

unsigned long timer;
unsigned long timer2=0;
unsigned long timer3=0;
unsigned long timer4=0;

int changed;
int processed[ROWS];
boolean rowdata[ROWS][COLUMNS];


int g;
int h;

int maxLength = 32;
String boodschap = String(maxLength);
String actie = String(1);
//------------------------------------------------------------------------------------------------------------------------

void setup()   {             

  // initialize the digital pin as an output:
  for (int i= 0; i < ROWS; i++)
  {
    pinMode(ledRows[i], OUTPUT);
    digitalWrite(ledRows[i], LOW);
    processed[i] = 0;
  }  
  pinMode(clockPin, OUTPUT);
  pinMode(clearPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
  randomSeed(analogRead(3));


  Serial.begin(115200);
  Serial.print("String Library version: ");
  Serial.println(boodschap.version());  

  initialize();
}

//------------------------------------------------------------------------------------------------------------------------

void loop()
{
  timer = micros();
  if ((timer - timer2)  > REFRESH)
  {
      timer2 = timer;
      changed++;
      if (changed == ROWS)
        changed = 0;
      processed[changed] = 1;
  }

  timer3 = millis();
  if ((timer3 - timer4) > updatespeed)
  {
    draw_board();
    timer4 = timer3;
  }

  for (int k=0; k < ROWS; k++)
  {
      if (processed[k] == 1)// && switcher ==1)
      {
        processed[k] == 0;
        activaterow(k);               
      }
  }
}

//------------------------------------------------------------------------------------------------------------------------

void activaterow(int rownumber)
{
  for (int i=0; i < ROWS; i++)
    digitalWrite(ledRows[i], LOW);  
  digitalWrite(clearPin , LOW);  

  digitalWrite(clearPin , HIGH);
  for (int j=COLUMNS - 1; j > -1; --j)
  {
    digitalWrite(clockPin, LOW);
    if (rowdata[rownumber][j] == 1 )
      digitalWrite(dataPin, HIGH);
    else
      digitalWrite(dataPin, LOW);      
    digitalWrite(clockPin, HIGH);
  }
  digitalWrite(ledRows[rownumber], HIGH);
}

//------------------------------------------------------------------------------------------------------------------------

void initialize()
{
    
  for (int i = 0; i < ROWS; i++)
    for (int j = 0; j < COLUMNS; j++)
    {
      rowdata[i][j] = 0;
    }

  while(Serial.available() <= 0) ;
  while (Serial.available() > 0) {
    // read the incoming data as a char:
    char inChar = Serial.read();
    // if you're not at the end of the string, append
    // the incoming character:
    if (actie.length() < 1) {
        actie.append(inChar);
        Serial.println(actie);
    } 
  }

  while(Serial.available() <= 0) ;
  while (Serial.available() > 0) {
    // read the incoming data as a char:
    char inChar = Serial.read();
    // if you're not at the end of the string, append
    // the incoming character:
    if (boodschap.length() < maxLength) {
        boodschap.append(inChar);
        Serial.println(boodschap);
    } 
  }
  while (boodschap.length() < COLUMNS / 8)
  {
    boodschap.append(' ');
  }
}

//------------------------------------------------------------------------------------------------------------------------

void draw_board()
{
  switch (actie.charAt(0))
  {
    case 'u' :
      scroll_up();
      break;
    case 'd' :
      scroll_down();
      break;
    case 'r' :
      scroll_right();
      break;
    case 'l' :
      scroll_left();
      break;
  }
}

//------------------------------------------------------------------------------------------------------------------------
// ScrollFunctions
//------------------------------------------------------------------------------------------------------------------------

void scroll_down()
{
  static int row = 0;
  
  for (int i = ROWS -1; i > 0; i--)
  {
    for (int column = 0; column < COLUMNS-1; column++)
    {
       rowdata[i][column] = rowdata[i-1][column];
    }
  }
  
  if (row < ROWS)
  {
    for (int column = 0; column < COLUMNS-1; column = column + 8)
    {
      for (int x = 0; x < 8; x++)
      {
       rowdata[0][column+x] = bitRead(font_8_7[boodschap.charAt(column/8)-32][(ROWS-1) - row], 7-x);
      }
    }
  }
  else
  {
    for (int column = 0; column < COLUMNS-1; column++)
    {
      rowdata[0][column] = 0;
    }    
  }
  
  row++;
  if (row > ROWS + 7) row = 0;
}

//------------------------------------------------------------------------------------------------------------------------

void scroll_up()
{
  static int row = ROWS + 7;
  
  for (int i = 0; i < ROWS-1; i++)
  {
    for (int column = 0; column < COLUMNS-1; column++)
    {
       rowdata[i][column] = rowdata[i+1][column];
    }
  }
  
  if (row < ROWS)
  {
    for (int column = 0; column < COLUMNS-1; column = column + 8)
    {
      for (int x = 0; x < 8; x++)
      {
       rowdata[ROWS-1][column+x] = bitRead(font_8_7[boodschap.charAt(column/8)-32][(ROWS-1) - row], 7-x);
      }
    }
  }
  else
  {
    for (int column = 0; column < COLUMNS-1; column++)
    {
      rowdata[ROWS-1][column] = 0;
    }    
  }
  
  row--;
  if (row < 0) row = ROWS + 7;
}

//------------------------------------------------------------------------------------------------------------------------

void scroll_left()
{
  static int x = 0;
  static int y = 0;
  
  for (int row = 0; row < ROWS; row++)
  {
    for (int column = 0; column < COLUMNS-1; column++)
    {
      rowdata[row][column] = rowdata[row][column+1];
    }
    rowdata[row][COLUMNS-1] = bitRead(font_8_7[boodschap.charAt(y)-32][row],7-x);
  }
  x++;
  if (x == 8) 
  {  
    x = 0;
    y++;
  }
  if (y == boodschap.length()) y=0;
}

//------------------------------------------------------------------------------------------------------------------------

void scroll_right()
{
  static int x = 0;
  static int y = -1;

  if (y == -1) y = boodschap.length()-1;  
  for (int row = 0; row < ROWS; row++)
  {
    for (int column = COLUMNS-2; column >= 0; column--)
    {
      rowdata[row][column+1] = rowdata[row][column];
    }
    rowdata[row][0] = bitRead(font_8_7[boodschap.charAt(y)-32][row], x);    
  }
  x++;
  if (x == 8) 
  {  
    x = 0;
    y--;
  }
}

//------------------------------------------------------------------------------------------------------------------------

And this is the font_8_7 I created :

#include <WProgram.h>
#include <avr/pgmspace.h>

FLASH_TABLE(unsigned char, font_8_7, 7,
{
// spatie
      B00000000,
      B00000000,
      B00000000,
      B00000000,
      B00000000,
      B00000000,
      B00000000,
},
{
// !
      B00010000,
      B00010000,
      B00010000,
      B00010000,
      B00010000,
      B00000000,
      B00010000,
},
{
// "
      B00101000,
      B00101000,
      B00101000,
      B00000000,
      B00000000,
      B00000000,
      B00000000,
},
{
// #
      B00101000,
      B00101000,
      B11111110,
      B00101000,
      B11111110,
      B00101000,
      B00101000,
},
{
// $
      B00010000,
      B01111110,
      B10010000,
      B01111100,
      B00010010,
      B11111100,
      B00010000,
},
{
// %
      B01000010,
      B10100100,
      B01001000,
      B00010000,
      B00100100,
      B01001010,
      B10000100,
},
{
// &
      B01111000,
      B10000100,
      B10000100,
      B01010000,
      B10011100,
      B10001000,
      B01110110,
},
{
// '
      B00100000,
      B00100000,
      B00000000,
      B00000000,
      B00000000,
      B00000000,
      B00000000,
},
{
// (
      B00010000,
      B00100000,
      B01000000,
      B01000000,
      B01000000,
      B00100000,
      B00010000,
},
{      
// )
      B00010000,
      B00001000,
      B00000100,
      B00000100,
      B00000100,
      B00001000,
      B00010000,
},
{
// *
      B00000000,
      B01010100,
      B00111000,
      B01101100,
      B00111000,
      B01010100,
      B00000000,
},
{
// +
      B00000000,
      B00010000,
      B00010000,
      B01111100,
      B00010000,
      B00010000,
      B00000000,

},
{
// ,
      B00000000,
      B00000000,
      B00000000,
      B00000000,
      B00000000,
      B00010000,
      B00100000,
},
{
// -
      B00000000,
      B00000000,
      B00000000,
      B01111100,
      B00000000,
      B00000000,
      B00000000,
},
{
// .
      B00000000,
      B00000000,
      B00000000,
      B00000000,
      B00000000,
      B00000000,
      B00010000,
},
{
// /
      B00000010,
      B00000100,
      B00001000,
      B00010000,
      B00100000,
      B01000000,
      B10000000,
},
{      
// 0
      B01111100,
      B10000110,
      B10001010,
      B10010010,
      B10100010,
      B11000010,
      B01111100,
},
{
// 1
      B00110000,
      B00010000,
      B00010000,
      B00010000,
      B00010000,
      B00010000,
      B01111100,
},
{
// 2
      B01111100,
      B10000010,
      B10001100,
      B00010000,
      B00100000,
      B01000000,
      B11111110,
},
{
// 3
      B01111100,
      B10000010,
      B00000010,
      B00111100,
      B00000010,
      B10000010,
      B01111100,
},
{
// 4
      B00001100,
      B00010100,
      B00100100,
      B01000100,
      B11111110,
      B00000100,
      B00000100,
},
{
// 5
      B11111110,
      B10000000,
      B10000000,
      B11111100,
      B00000010,
      B10000010,
      B01111100,
},
{
// 6
      B01111100,
      B10000010,
      B10000000,
      B11111100,
      B10000010,
      B10000010,
      B01111100,

},
{
// 7
      B11111110,
      B10000100,
      B00001000,
      B00010000,
      B00100000,
      B01000000,
      B10000000,
},
{
// 8
      B01111100,
      B10000010,
      B10000010,
      B01111100,
      B10000010,
      B10000010,
      B01111100,
},
{
// 9
      B01111100,
      B10000010,
      B10000010,
      B01111110,
      B00000010,
      B00000010,
      B01111100,
},
{
// :
      B00000000,
      B00000000,
      B00000000,
      B00010000,
      B00000000,
      B00000000,
      B00010000,
},
{
// ,
      B00000000,
      B00000000,
      B00000000,
      B00010000,
      B00000000,
      B00010000,
      B00100000,
},
{      
// <
      B00001000,
      B00010000,
      B00100000,
      B01000000,
      B00100000,
      B00010000,
      B00001000,
},
{
// =
      B00000000,
      B00000000,
      B01111100,
      B00000000,
      B01111100,
      B00000000,
      B00000000,
},
{
// >
      B00100000,
      B00010000,
      B00001000,
      B00000100,
      B00001000,
      B00010000,
      B00100000,
},
{
// ?
      B01111100,
      B10000010,
      B00000100,
      B00001000,
      B00010000,
      B00000000,
      B00010000,
},
{
// @
      B01111000,
      B10001010,
      B10011010,
      B10101010,
      B10010010,
      B10000010,
      B01111100,
},
{
// A
      B01111100,
      B10000010,
      B10000010,
      B11111110,
      B10000010,
      B10000010,
      B10000010,
},
{
// B      
      B11111100,
      B10000010,
      B10000010,
      B11111110,
      B10000010,
      B10000010,
      B11111100,
},
{
// C
      B01111100,
      B10000010,
      B10000000,
      B10000000,
      B10000000,
      B10000010,
      B01111100,
},
{
// D
      B11111100,
      B10000010,
      B10000010,
      B10000010,
      B10000010,
      B10000010,
      B11111100,
},
{
// E
      B11111110,
      B10000010,
      B10000000,
      B11111100,
      B10000000,
      B10000010,
      B11111110,
},
{
// F
      B11111110,
      B10000010,
      B10000000,
      B11111100,
      B10000000,
      B10000000,
      B10000000,
},
{
// G
      B01111100,
      B10000010,
      B10000000,
      B10001110,
      B10000010,
      B10000010,
      B01111100,
},
{
// H
      B10000010,
      B10000010,
      B10000010,
      B11111110,
      B10000010,
      B10000010,
      B10000010,
},
{
// I
      B00111000,
      B00010000,
      B00010000,
      B00010000,
      B00010000,
      B00010000,
      B00111000,
},
{
// J
      B00000010,
      B00000010,
      B00000010,
      B00000010,
      B10000010,
      B10000010,
      B01111100,
},
{
// K
      B10000010,
      B10000100,
      B10001000,
      B11110000,
      B10001000,
      B10000100,
      B10000010,
},
{
// L
      B11100000,
      B01000000,
      B01000000,
      B01000000,
      B01000000,
      B01000000,
      B11111110,
},
{
// M
      B10000010,
      B11000110,
      B10101010,
      B10010010,
      B10000010,
      B10000010,
      B10000010,
},
{
// N
      B10000010,
      B11000010,
      B10100010,
      B10010010,
      B10001010,
      B10000110,
      B10000010,
},
{
// O
      B01111100,
      B10000010,
      B10000010,
      B10000010,
      B10000010,
      B10000010,
      B01111100,
},
{
// P
      B11111100,
      B01000010,
      B01000010,
      B01111100,
      B01000000,
      B01000000,
      B11100000,
},
{
// Q
      B01111100,
      B10000010,
      B10000010,
      B10000010,
      B10010010,
      B01111100,
      B00000100,
},
{
// R
      B11111100,
      B01000010,
      B01000010,
      B01111100,
      B01001000,
      B01000100,
      B11100010,
},
{
// S
      B01111100,
      B10000010,
      B10000000,
      B01111100,
      B00000010,
      B10000010,
      B01111100,
},
{
// T
      B11111110,
      B10010010,
      B00010000,
      B00010000,
      B00010000,
      B00010000,
      B00111000,
},
{
// U
      B10000010,
      B10000010,
      B10000010,
      B10000010,
      B10000010,
      B10000010,
      B01111100,
},
{
// V
      B10000010,
      B10000010,
      B10000010,
      B10000010,
      B01000100,
      B00101000,
      B00010000,
},
{
// W
      B10000010,
      B10000010,
      B10000010,
      B10000010,
      B10000010,
      B01010100,
      B00101000,
},
{
// X
      B10000010,
      B01000100,
      B00101000,
      B00010000,
      B00101000,
      B01000100,
      B10000010,
},      
{
// Y
      B10000010,
      B10000010,
      B01000100,
      B00101000,
      B00010000,
      B00010000,
      B00010000,
},
{
// Z
      B11111110,
      B10000100,
      B00001000,
      B00110000,
      B01000000,
      B10000010,
      B11111110,
},
{
// [
      B11100000,
      B10000000,
      B10000000,
      B10000000,
      B10000000,
      B10000000,
      B11100000,
},
{
/* \  */ 
      B10000000,
      B01000000,
      B00100000,
      B00010000,
      B00001000,
      B00000100,
      B00000010,
},
{
// ]
      B00001110,
      B00000010,
      B00000010,
      B00000010,
      B00000010,
      B00000010,
      B00001110,
},
{
// ^
      B00010000,
      B00101000,
      B01000100,
      B00000000,
      B00000000,
      B00000000,
      B00000000,
},
{
// _
      B00000000,
      B00000000,
      B00000000,
      B00000000,
      B00000000,
      B00000000,
      B11111110,
},
{
// `
      B00100000,
      B00010000,
      B00001000,
      B00000000,
      B00000000,
      B00000000,
      B00000000,
},
{
// a
      B00000000,
      B00000000,
      B01110100,
      B10001100,
      B10000100,
      B10001100,
      B01110110,
},
{
// b
      B11000000,
      B01000000,
      B01011100,
      B01100010,
      B01000010,
      B01100010,
      B11011100,
},
{
// c
      B00000000,
      B00000000,
      B01111100,
      B10000000,
      B10000000,
      B10000000,
      B01111100,
},
{
// d
      B00000110,
      B00000100,
      B01110100,
      B10001100,
      B10000100,
      B10001100,
      B01110110,
},
{
// e
      B00000000,
      B00000000,
      B01111100,
      B10000010,
      B11111110,
      B10000000,
      B01111100,
},
{
// f
      B00111100,
      B01000010,
      B01000000,
      B01111000,
      B01000000,
      B01000000,
      B11100000,
},
{
// g
      B00000000,
      B01111010,
      B10000110,
      B10000010,
      B01111110,
      B00000010,
      B01111100,
},
{
// h
      B11100000,
      B01000000,
      B01011100,
      B01100010,
      B01000010,
      B01000010,
      B11100010,
},
{
// i
      B00000000,
      B00010000,
      B00000000,
      B00111000,
      B00010000,
      B00010000,
      B00111000,
},
{
// j
      B00000000,
      B00000100,
      B00000000,
      B00001110,
      B00000100,
      B10000100,
      B01111000,
},
{
// k
      B11100100,
      B01001000,
      B01010000,
      B01100000,
      B01010000,
      B01001000,
      B11100100,
},
{
// l
      B00110000,
      B00010000,
      B00010000,
      B00010000,
      B00010000,
      B00010000,
      B00111000,
},
{
// m
      B00000000,
      B00000000,
      B10101000,
      B01010100,
      B01010100,
      B01010100,
      B11010110,
},
{
// n
       B00000000,
      B00000000,
      B11011000,
      B01100100,
      B01000100,
      B01000100,
      B11100110,
},
{
// o
      B00000000,
      B00000000,
      B01111000,
      B10000100,
      B10000100,
      B10000100,
      B01111000,
},
{
// p
      B11011000,
      B01100100,
      B01000100,
      B01000100,
      B01111000,
      B01000000,
      B11100000,
},
{
// q
      B01101100,
      B10011000,
      B10001000,
      B10001000,
      B01111000,
      B00001000,
      B00011100,
},
{
// r
      B00000000,
      B00000000,      
      B11011000,
      B01100100,
      B01000000,
      B01000000,
      B11100000,
},
{
// s
      B00000000,
      B00000000,      
      B01111000,
      B10000000,
      B01111000,
      B00000100,
      B11111000,
},
{
// t
      B00000000,
      B11000000,
      B01000000,
      B11110000,
      B01000000,
      B01000100,
      B00111000,
},
{
// u
      B00000000,
      B00000000,      
      B10000100,
      B10000100,
      B10000100,
      B10001100,
      B01110110,
},
{
// v
      B00000000,
      B00000000,
      B01000100,
      B01000100,
      B01000100,
      B00101000,
      B00010000,
},
{
// w
      B00000000,
      B00000000,      
      B10000010,
      B10000010,
      B10010010,
      B10111010,
      B01010100,
},
{
// x
      B00000000,
      B00000000,      
      B01000100,
      B00101000,
      B00010000,
      B00101000,
      B01000100,
},
{
// y
      B00000000,
      B00000000,      
      B10000110,
      B10000100,
      B01111100,
      B00000100,
      B01111000,
},
{
// z
      B00000000,
      B00000000,      
      B01111100,
      B00000100,
      B00011000,
      B00100000,
      B01111100,
},
{
// {
      B00110000,
      B01000000,
      B01000000,
      B10000000,
      B01000000,
      B01000000,
      B00110000,
},
{
// |
      B00010000,
      B00010000,
      B00010000,
      B00010000,
      B00010000,
      B00010000,
      B00010000,
},
{
// }
      B00011000,
      B00000100,
      B00000100,
      B00000010,
      B00000100,
      B00000100,
      B00011000,
},
{
// "
      B00001010,
      B00010100,
      B00000000,
      B00000000,
      B00000000,
      B00000000,
      B00000000,
}
);

Hmmm, I'm almost wondering if you could use some sort of driver chip from Maxim.

If you used a driver chip for controlling 8x8 LED matrices, addressing individual LEDs, rows, or columns might be a little easier. Maxim sells chips like that and you could daisy chain a couple of these to control a board. I'm actually working on something like this using MAX6960 (sadly they're going out of production so I need to find something different :( ).

Well, I have these LEDboards, only the controllerboard is not working. So I just wanted to connect an Arduino to the same connector as the previous controller, without any additonal hardware. And guess what ? I succeded ;) I can easily chain the boards together without changing anything (but one parameter) on the Arduino.

Thank you! :)

You're welcome....

Do you wanna share where exactly I helped you out ?

From what I read on the forum, I was under the impression that, when I only used RX and TX for a serial connection an autoreset would not occur when I connect. So I wrote some additional code for my LEDBoard which accepts command over a serial wireless connection (using APC220 Wireless Communication Module for Arduino). Everything seems to be working, except it still autoresets when I open the serialmonitor tool. I must admid, I still have the USB attached but only for power. I switch comport in the IDE before I open the serial monitor (Arduino uses COM5, wireless module uses COM2)

Also, I’m unable to use putty or Hyperterm to communicate with the arduino, even after reading all the posts (maybe not all) about DTR etc…

Any help would be great.

Below is most of the code I use to communicate with the Arduino, besides the Serial.begin(9600) in setup().
The first ‘for’ and activaterow(0) are there to turn all LEDs on the board off.
digitalWrite(clockpin, LOW), turns off the led on PIN13 from the arduino, so we have an indication that we’re in programmingmode.

void programmode()
{
  String SerialInput = String(MAXLENGTH + 10);
  
  for (int i = 0; i < COLUMNS; i++)
    rowdata[0][i] = 0;
    
  activaterow(0);
  
  SerialInput = "";
  if (Serial.available() != 0)
  {
    while (Serial.available() > 0)
    {
        SerialInput.append(char(Serial.read()));
    }
    if (SerialInput.equals("START"))
    {
      digitalWrite(clockPin, LOW);
      SerialInput = "";
      Serial.println("Deactivating LEDBoard");
      Serial.println("Entering ProgramMode");
      Serial.println("Please enter your commands :");      
      do
      {
          while (Serial.available() != 0)
          {
            while (Serial.available() > 0)
            {
                SerialInput.append(char(Serial.read()));
            }
            delay(15);

          }
          if (SerialInput.equals("") == false && SerialInput.equals("STOP") == false)
          {
            if (SerialInput.equals("SHOW") == true)
            {
              Serial.println("Your current configuration is : ");
              for (int h = 0; h < MAXCOMMAND; h++)
              {
                Serial.print(h);
                Serial.print(",");
                Serial.print(Commando[h].looper);
                Serial.print(",");
                Serial.print(Commando[h].directions);
                Serial.print(",");
                Serial.println(Commando[h].boodschap);
              }
              Serial.println("Please enter your commands :");  
            }
            else if (SerialInput.equals("CLEAR") == true)
            {
              for (int h = 0; h < MAXCOMMAND; h++)
              {
                Commando[h].looper = -1;
                Commando[h].directions = ' ';
                Commando[h].boodschap= "";
              }
              Serial.println("OK");
            }
            else  if (SerialInput.equals("DEFAULT") == true)
            {
              initialize();
              Serial.println("OK");
            }
            else if (SerialInput.equals("HELP") == true)
            {
              Serial.println("The following commands are available :");
              Serial.println("  HELP     : shows this info");
              Serial.println("  DEFAULT  : loads the default demo");
              Serial.println("  CLEAR    : clears the boardsmemory");
              Serial.println("  SHOW     : shows the current settings");
              Serial.println("");
              Serial.println("  pos,loop,act,text");
              Serial.println("      adds a config to the boards memory");
              Serial.println("");              
              Serial.print("  pos  : position 0..");
              Serial.println(MAXCOMMAND-1);
              Serial.println("  loop : do this loop times");
              Serial.println("  act  : l(eft), r(ight), u(p), d(own), c(lear), f(ull)");
              Serial.println("         e(ndless) -> this starts it all over again");
              Serial.println("  text : the text to show");
              Serial.println("");
              Serial.println("Please enter your commands :");  
            }
            else
            {
              if (parseCommand(SerialInput))
              {
                Serial.println("OK");
              }
              else
              {
                Serial.println("Sorry, I don't understand what you mean"); 
              }
            }
            SerialInput = "";
          }
      } while (SerialInput.equals("STOP") == false);
      Serial.println("Leaving ProgramMode");
      Serial.println("Reactivating LEDBoard");
    }
  }
}

Solved the serial "putty or Hyperterm" thing.

Now just find a solution for the autoreset... I think I'm gonna try to use the EEPROM to store the settings, so a reset won't be that bad.