Moving text on NXN lcd just required you to be very genious in programming and espacially dealing with arrays.Arrays of all data types.This project consists of only just few lines with a single character array(To be moved on screen) for,while loops if condition and a single goto statement.You can also improve this code if you are interested in it.In hardware i used a 16x2 lcd in 4-bit mode and a Ardunio board.You can adjust it according to your design or just copy past it in the easy way. The first line of the lcd displays Moving Text!!! and on the second line you can see the moving string.The string originates from left and terminates on right and after termination it again comes out from left.The same string that you see in shopping malls and on huge buildings digital advertisements and every day you it on news channels like CNN and SKY NEWS and AL-JAZIRA.Their are two logics in the code that needs to be under stand first the character is dislpayed on left and then it moves a head to right and in each step every charater moves a head right.Like my first character is 'U' it first displayed on lcds second line matrix no 14 and then it moves a head to right to matrix 13 and on 14 second character originates then they both are moved at 12 ('U') and 11 (second)matrix and the matrix 14 is occupied by the 3rd Alphabet. The whole cycle completes like this and the string moves(Actually their is no movement but you programed it to do so). Second Logic is how the characters are moved out from the last adress from right.The last adress to right is 1(start of the second line of lcd). Actually you drop the elements of the string one by one and it seems to be that the string is going out. CODE #include LiquidCrystal lcd(13,12,11,10,9,8); //INITIALIZING LCD IN $_BIT MODE char c[15]={"USMAN ALI BUTT"}; String s; void setup() { lcd.begin(16 , 2); lcd.clear(); } void loop() { int i,j,k=0,l=0; lcd.clear(); lcd.setCursor(0,0); lcd.print("Moving Text!!!"); delay(1000); for(i=14;i>=0;i--) { k=0; for(j=i;j<=13;j++) { lcd.setCursor(j,1); lcd.print(c[k]); delay(90); k++; if(i==0 && j==13) goto xyz; //IF string reaches the first matrix drop each character one by one //so it feels that the string is terminating } } xyz: if(i==0 && j==13) { while(k!=0) { lcd.setCursor(0,1); for(i=k;i>=2;i--) { l=15-i; lcd.print(c[l]); delay(90); } lcd.setCursor(0,0); lcd.clear(); lcd.print("Moving Text!!!"); k--; } } } Download the project .ino file from here IF you have any problem just leave a comment below.