Thank you ZinggJM for your answer.
You're right there was no much details in my previous post. It was rather indication:)
The only progress i made so far after playing with various libraries was when i modified Waveshare 'string' example found here:
in arduino/string/ folder.
The following files are in this folder:
Display_Lib.h
EPD_drive.cpp
EPD_drive.h
EPD_drive_gpio.cpp
EPD_drive_gpio.h
string.ino
As you said: Nano doesn't have enough RAM for these files so i included
#include <avr/pgmspace.h>
in two files:
Display_Lib.h
EPD_drive.h
and then i changed big data tables like:
const unsigned char waveshare[4736] = {........ton of data....};
to
const unsigned char waveshare[4736] PROGMEM = {........ton of data....};
Now compilation is errorless.
Loaded things up to Nano and my progress is e-paper screen was cleared (waveshare logo that was on screen when i bought it disappeared).
No test text string was displayed.
On serial monitor i can see this:
------------Clear full screen-----------------
full init
*set register Start
send data :
send data :
send data :
send data :
send data :
send data :
send data :
send data :
send data :
send data :
*set register end
send data :
Busy is Low
full clear
send data :
send data :
------start send display data!!---------<<<<<<<
Busy is Low
send data1
Busy is Low
full over
*set register Start
send data :
send data :
send data :
send data :
send data :
send data :
send data :
send data :
send data :
send data :
*set register end
send data :
Busy is Low
po operacji clear full
--------------Clear part screen------------
*set register Start
send data :
send data :
send data :
send data :
send data :
send data :
send data :
send data :
send data :
send data :
*set register end
send data :
Busy is Low
------start send display data!!---------<<<<<<<
send data :
send data :
send data :
send data :
Busy is Low
Busy is Low
send data :
send data :
send data :
send data :
Busy is Low
po czyszczeniu czesciowym ekranu
h
FFFFFFD5 FFFFFFD5 FFFFFFD5 FFFF
and so on. I seems Nano resets itself.
I wonder why BUSY line on display module is low?
The code part that checks this looks like this:
/*******************************************************************************
function:
read busy
*******************************************************************************/
unsigned char WaveShare_EPD::ReadBusy(void)
{
unsigned long i=0;
for(i=0;i<400;i++){
// println("isEPD_BUSY = %d\r\n",isEPD_CS);
if(isEPD_BUSY==EPD_BUSY_LEVEL) {
Serial.println("Busy is Low \r\n");
return 1;
}
driver_delay_xms(10);
}
return 0;
}
In for loop that you can see that during first loop execution BUSY line is compared with EPD_BUSY_LEVEL, if its true "Busy is Low" is printed and the whole ReadBusy procedure is terminated with " return 1; ".
Why this procedure returns 0 or 1 if it is not checked anywhere in the code whether 0 or 1 is returned?
Then i modified main program loop to check BUSY line status: it is LOW all the time. Maybe there is sth wrong with my module?
I checked BUSY line with multimeter and in fact it is 0 V almost all the time:/