Problems with Demmel iLCD

Goodafternoon,

We are having trouble sending commands to the Demmel iLCD screen 7" 800*480. When we send commands through the COM port of the PC, the screen responded to our commands. When we send the same commands with the Arduino(we use the Arduino Mega) it doesn't respond.

We have seen with a logic analyzer that the Arduino's serial pulse is different then the COM port serial pulse.

Maybe we have used wrong commands in the Arduino code or maybe its a hardware problem.

Things we used: Serial Port monitor (Eltima software) to send our commands from the COM port. settings: 1 start bit 1 stop bit and 8 databits.

We tried different ways of sending the commands with the Arduino, we've send the commands in HEX, decimal, ASCII and Binary, but none of the commands looked like the pulse of the COM port.

This is an example of the code we've used. The commando we used is: AA 47 00 01 this puts a picture on the screen.

void setup() {
  Serial.begin(9600);
}
  
void loop() {
  
  Serial.print(0xAA, HEX);
  Serial.print(0x47, HEX);
  Serial.print(0x00, HEX);
  Serial.print(0x01, HEX);
  delay(2000);
}

Then we got this on the output of the Arduino

When we sended the same command directly with the COM port of the pc we got this picture.

Is it possible to get the same pulse with the Arduino? And is it possible to set 1 start 1 stop and 8 databits with the Arduino?

Kind regards,

Kiptandoori

...or maybe its a hardware problem.

The 'serial' output of the Arduino is at TTL levels. You will have to convert these to RS-232 levels to make the signals compatible with the output from your PC.

Don

Well we found a solution, and its not a hardware problem.

With the new newsoftserial 11 beta library from arduinia.org we have solved the problem with the arduino mega.

We’ve found that the screen responded to extended ASCII commands.

Here’s the code that fixed the problem:

#include <SoftwareSerial.h>
#include <icrmacros.h>

SoftwareSerial mySerial(24, 22, true);

void setup(){
mySerial.begin(9600);

}


void loop(){ 
 
mySerial.print(170, BYTE);
mySerial.print(71, BYTE);
mySerial.print(00, BYTE);
mySerial.print(01, BYTE);

delay(2000);
  
}