LCD Smartie i2c Arduino nano

Hallo ich bin ein Neuling und Versuche ein LCD mit Smartie zu Steuern.
Ich habe auch fast alles geschafft.
Nur das Winamp spectrum analyser plugin zeigt nicht ganz was es soll.

Vielleicht könnte hier mal ein Profi einen Blick drauf werfen.

#include <Wire.h> // Comes with Arduino IDE
#include <LiquidCrystal_I2C.h> // von F Malpartida LiquidCrystal_V1.2.1.zip

LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address



void setup()   /*----( SETUP: RUNS ONCE )----*/
{
  Serial.begin(19200);  // Used to type in characters
  lcd.begin(16,2);   // initialize the lcd for 16 chars 2 lines
  lcd.backlight(); // backlight on
  
  lcd.setCursor(0,0); //Start at character 0 on line 0
  lcd.print("**** System ****");
  lcd.setCursor(0,1);
  lcd.print("**** Start  ****");
  delay(2000);
  lcd.clear();
}
  byte serial_getch(){
  
  int incoming;

  while(Serial.available()==0){} // read the incoming byte:
  incoming = Serial.read();

  return (byte) (incoming &0xff);
}

void loop()
{
  byte rxbyte;
  byte temp;
  byte col;
  byte row;
  uint8_t location;
  uint8_t charMap[7];
  
  
  rxbyte = serial_getch();
  
  if (rxbyte == 254) // Matrix Orbital uses 254 prefix for commands
  {
    switch (serial_getch())
    {
      case 66: //backlight on (at previously set brightness)
      lcd.backlight();     // Backlight on
      break;
      
      case 70: //backlight off
      lcd.noBacklight();     // Backlight off
      break;
      
      case 71:  //set cursor position
				col = (serial_getch() - 1);  //get column byte
                                row = (serial_getch());
                                
/*
        switch (serial_getch())  //get row byte
        {
          //line 1 is already set up
          case 2:
          temp += 0x40;
          break;
          case 3:
          temp += 0x14;
          break;
          case 4:
          temp += 0x54;
          break;
          default:
          break;
        }
*/
        lcd.setCursor(col,row-1);
        break;
        
        case 72:  //cursor home (reset display position)
        lcd.home (); // go to home position
        break;
        
        case 74:  //show underline cursor
        lcd.cursor(); // Turns the underline cursor on
        break;
        
        case 75:  //underline cursor off
        lcd.noCursor(); // Turns the underline cursor off
        break;
        
        case 76:  //move cursor left
        lcd.moveCursorLeft();
        break;
        
        case 77:  //move cursor right
        lcd.moveCursorRight();
        break;
        
        case 78:  //define custom char
        //location = 64+serial_getch()*8;
        location = serial_getch();
        for (temp = 0; temp < 8; temp++)
        {
          charMap[temp] = serial_getch(); //get each pattern byte
        }
        lcd.createChar(location, charMap);
        break;
        
        case 81: //auto scroll on
        lcd.autoscroll();
        break;
        
        case 82: //auto scroll off
        lcd.noAutoscroll();
        break;
        
        case 83:  //show blinking block cursor
        lcd.blink();
        break;
        
        case 84:  //block cursor off
        lcd.noBlink(); // Turns the underline cursor off
        break;
        
        case 86:  //GPO OFF
        //implement later
        break;
        case 87:  //GPO ON
        /*temp = serial_getch();
        if (temp == 1)
        {
          GPO1 = GPO_ON;
        }*/
        break;
        
        case 88:  //clear display, cursor home
        lcd.clear(); // clear display,
        break;
        
        case 152: //set and remember (doesn't save value, though)
        break;
        
        case 153: //set backlight brightness
        //not implemented
        break;
        
        //these commands ignored (no parameters)
        case 35: //read serial number
        case 36: //read version number
        case 55: //read module type
        case 59: //exit flow-control mode
        case 65: //auto transmit keypresses
        case 96: //auto-repeat mode off (keypad)
        case 67: //auto line-wrap on
        case 68: //auto line-wrap off
        case 104: //init horiz bar graph
        case 109: //init med size digits
        case 115: //init narrow vert bar graph
        case 118: //init wide vert bar graph
        break;
        default:
        //all other commands ignored and parameter byte discarded
        temp = serial_getch();  //dump the command code
        break;
      }
      return;
    }   //END OF COMMAND HANDLER
    
    //change accented char to plain, detect and change descenders
    //NB descenders only work on 5x10 displays. This lookup table works
    //  with my DEM-20845 (Display Elektronik GmbH) LCD using KS0066 chip.
    switch (rxbyte)
    {
    //chars that have direct equivalent in LCD charmap  
    /*     
            case 0x67: //g 
                rxbyte = 0xE7; 
                break; 
            case 0x6A: //j 
                rxbyte = 0xEA; 
                break; 
            case 0x70: //p 
                rxbyte = 0xF0; 
                break; 
            case 0x71: //q 
                rxbyte = 0xF1; 
                break; 
            case 0x79: //y 
                rxbyte = 0xF9; 
                break; 
     */
     case 0xE4: //ASCII "a" umlaut  
    rxbyte = 0xE1;  
    break;
    
    case 0xF1: //ASCII "n" tilde  
    rxbyte = 0xEE;  
    break;
    
    case 0xF6: //ASCII "o" umlaut  
    rxbyte = 0xEF;  
    break;
    
    case 0xFC: //ASCII "u" umlaut  
    rxbyte = 0xF5;  
    break;  
  
    //accented -> plain equivalent  
    //and misc symbol translation
    case 0xA3: //sterling (pounds)  
    rxbyte = 0xED;  
    break;
    
    case 0x00: //degrees symbol
    rxbyte = 0xDF; 
    break;
    
    case 0x01: // full Block 
    rxbyte = 0xFF;
    break;
    
    case 0xB5: //mykro  
    rxbyte = 0xE4;  
    break;
    
    case 0xC0: //"A" variants
    case 0xC1:
    case 0xC2:
    case 0xC3:
    case 0xC4:
    case 0xC5:  
    rxbyte = 0x41;  
    break;
    
    case 0xC8: //"E" variants
    case 0xC9:
    case 0xCA:
    case 0xCB:  
    rxbyte = 0x45;  
    break;
    
    case 0xCC: //"I" variants
    case 0xCD:
    case 0xCE:
    case 0xCF:  
    rxbyte = 0x49;  
    break;
    
    case 0xD1: //"N" tilde -> plain "N"  
    rxbyte = 0x43;  
    break;
    
    case 0xD2: //"O" variants
    case 0xD3:
    case 0xD4:
    case 0xD5:
    case 0xD6:
    case 0xD8:  
    rxbyte = 0x4F;  
    break;
    
    case 0xD9: //"U" variants
    case 0xDA:
    case 0xDB:
    case 0xDC:  
    rxbyte = 0x55;  
    break;
    
    case 0xDD: //"Y" acute -> "Y"  
    rxbyte = 0x59;  
    break;
    
    case 0xDF: // -- ß -- 
    rxbyte = 0xE2; 
    break;
    
    case 0xE0: //"a" variants except umlaut
    case 0xE1:
    case 0xE2:
    case 0xE3:
    case 0xE5:
    rxbyte = 0x61;  
    break;
    
    case 0xE7: //"c" cedilla -> "c"  
    rxbyte = 0x63;  
    break;
    
    case 0xE8: //"e" variants
    case 0xE9:
    case 0xEA:
    case 0xEB:  
    rxbyte = 0x65;  
    break;
    
    case 0xEC: //"i" variants
    case 0xED:
    case 0xEE:
    case 0xEF:  
    rxbyte = 0x69;  
    break;
    
    case 0xF2: //"o" variants except umlaut
    case 0xF3:
    case 0xF4:
    case 0xF5:
    case 0xF8:  
    rxbyte = 0x6F;  
    break;
    
    case 0xF7: //division symbol  
    rxbyte = 0xFD;  
    break;
    
    case 0xF9: //"u" variants except umlaut
    case 0xFA:
    case 0xFB:  
    rxbyte = 0x75;  
    break;
    default:  
    break;
    }
    lcd.print((char)rxbyte);  //otherwise a plain char so we print it to lcd
    return;
    }

Danke für die Hilfe.

Habe es geschafft.