Difference between revisions of "EPM-880 Application Notes"

From ESS-WIKI
Jump to: navigation, search
Line 104: Line 104:
 
    1. [[Media:Windows10_EPD320.7z|Windows 10 EPD Application]]
 
    1. [[Media:Windows10_EPD320.7z|Windows 10 EPD Application]]
  
    2. [[Media:Ubuntu EPD320.tar|Ubuntu EPD Application]]
+
    2. [[Media:Ubuntu_EPD320.tar|Ubuntu EPD Application]]
  
 
==== Software prepare ====
 
==== Software prepare ====
Line 141: Line 141:
 
4. Installed OpenCV dependency package
 
4. Installed OpenCV dependency package
 
<pre>$ sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
 
<pre>$ sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
$ sudo apt-get install python3.5-dev python3-numpy libtbb2 libtbb-dev
+
$ sudo apt-get install python3.5 python3-numpy libtbb2 libtbb-dev
$ sudo apt-get install libjpeg-dev libpng-dev libtiff5-dev libjasper-dev libdc1394-22-dev libeigen3-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev sphinx-common libtbb-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libopenexr-dev libgstreamer-plugins-base1.0-dev libavutil-dev libavfilter-dev libavresample-dev
+
$ sudo apt-get install libjpeg-dev libpng-dev libtiff5-dev libdc1394-22-dev libeigen3-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev sphinx-common libtbb-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libopenexr-dev libgstreamer-plugins-base1.0-dev libavutil-dev libavfilter-dev libavresample-dev
 +
$ sudo apt-get install software-properties-common
 +
$ sudo apt-get install python-software-properties
 +
$ sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
 +
$ sudo apt update
 +
$ sudo apt install libjasper1 libjasper-dev libtiff-dev
 
</pre>
 
</pre>
  
Line 154: Line 159:
 
$ cd my_build_dir
 
$ cd my_build_dir
 
</pre>
 
</pre>
 
+
m
 
'''/opt/opencv''' is example path, user should depend on user's environment path.
 
'''/opt/opencv''' is example path, user should depend on user's environment path.
<pre>$ cmake -D BUILD_TIFF=ON -D WITH_CUDA=OFF -D ENABLE_AVX=OFF -D WITH_OPENGL=OFF -D WITH_OPENCL=OFF -D WITH_IPP=OFF -D WITH_TBB=ON -D BUILD_TBB=ON -D WITH_EIGEN=OFF -D WITH_V4L=OFF -D WITH_VTK=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/opt/opencv_contrib/modules /opt/opencv/
+
<pre>$ cmake -D BUILD_TIFF=ON -D WITH_CUDA=OFF -D ENABLE_AVX=OFF -D WITH_OPENGL=OFF -D WITH_OPENCL=OFF -D WITH_IPP=OFF -D WITH_TBB=OFF -D BUILD_TBB=ON -D WITH_EIGEN=OFF -D WITH_V4L=OFF -D WITH_VTK=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/opt/opencv_contrib/modules /opt/opencv/
 
</pre>
 
</pre>
 
<pre>$ make -j4
 
<pre>$ make -j4

Revision as of 09:43, 2 November 2020

EPD-320 Application guide

This application provide user a way that image full update and carousel mode for EPD-320 panel display. user configure xml file follow setting rule.

Components LIST

Item

 Description
1  32” EPAPER
2  EPD-320 PCBA
3  cable

RTENOTITLE

SYSTEM ARCHITECURE

system diagram

System support

We has been tested on host operating system as below

  1. ubuntu 18.04
  2. windows(windows 10)

Waveform mode

There are six Waveform mode for image update and short name as below table. The mode parameter will use in update command.

mode 0 mode 1 mode 2 mode 3 mode 4 mode 5
INIT DU GC16 GCC16 A2 GL16

INIT(Global update WF) :

Initialize is used to completely clear the display, if it's left in an unknown state (i.e. if the previous image has been lost by a re-boot)

DU(Local update WF) :

Direct update Non-flashing waveform that can be used to update. it can update any changed graytone pixel to black or white only.

GC16(Global update WF) :

Grayscale clear, 16 levels A "flashy" waveform used for 16 level grayscale images. All the pixels are updated or cleared

GCC16( Global clear update WF) :

Grayscale Clear, 16 Levels A "more flashy" waveform used for 16 level grayscale images. All the pixels are updated or cleared.
This provides the best image appearance.

A2(Local update WF) :

animation, 2 Levels is a non-flashing waveform that can be used for fast updates and simple animation.
This wave form support black & white updates only.
image quality and ghosting is reduced in exchange for the response time.

GL16(Local update WF when white to white , Global update when 16 gray levels) :

The GL16 waveform is used to update anti-aliased text with reduced flash. GL16 should bed used only with Full Display Update..
The entire display except pixels staying in white will update as the new image is written. The GL16 waveform has 16 unique gray levels.

Push image application

Hardware prepare

1. Connected EPD FPC to mainboard

2. Connected micro USB cable to mainboard USB2(CN2) , usb port connect to computer usb port which installed windows or linux ubuntu

3. Connected 12V power cable to mainboard.

system diagram2

EPD Application

EPD application drive control board refresh image and it’s a simple sample code for demo how to display picture on EPD panel. It’s only support windows 10 and Ubuntu platform.

EPD Package Download

    1. Windows 10 EPD Application

    2. Ubuntu EPD Application

Software prepare

Before execute EPD application, it must install program driver in different OS system is different methods.

Windows

1. Download usb driver tool zadig usb tool ,user search zadig usb tool on google

2. Check EPD-320 control board has connected to host computer and execute zadig.exe . Execute zadig.exe and click Option->List All Devices on zadig usb too.It will scan how many devices in host computer

driver tool

3. Select ITE T-CON appeared in list and click Replace Driver button , waiting installation until success

driver install

4.Repeat step 3 replace others ITE T-CON driver.

Linux Ubuntu

It must install driver library otherwise user execute EPD application may lead to fail. all steps run the command line on Ubuntu as below.

1.Open command line in Ubuntu.

command line

2. Installed libusb 1.0.0

sudo apt-get install libusb-1.0-0-dev

3. Refresh system

$ sudo apt-get update
$ sudo apt-get upgrade

4. Installed OpenCV dependency package

$ sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
$ sudo apt-get install python3.5 python3-numpy libtbb2 libtbb-dev
$ sudo apt-get install libjpeg-dev libpng-dev libtiff5-dev libdc1394-22-dev libeigen3-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev sphinx-common libtbb-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libopenexr-dev libgstreamer-plugins-base1.0-dev libavutil-dev libavfilter-dev libavresample-dev
$ sudo apt-get install software-properties-common
$ sudo apt-get install python-software-properties
$ sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
$ sudo apt update
$ sudo apt install libjasper1 libjasper-dev libtiff-dev

5. Download OpenCV 2.4.13 source code from OpenCV official release.

6. Build OpenCV library. Untar source code and below example we assume file path /opt/opencv but it should depend on user's environment.

$ cd opencv
$ mkdir release
$ cd release
$ mkdir my_build_dir
$ cd my_build_dir

m /opt/opencv is example path, user should depend on user's environment path.

$ cmake -D BUILD_TIFF=ON -D WITH_CUDA=OFF -D ENABLE_AVX=OFF -D WITH_OPENGL=OFF -D WITH_OPENCL=OFF -D WITH_IPP=OFF -D WITH_TBB=OFF -D BUILD_TBB=ON -D WITH_EIGEN=OFF -D WITH_V4L=OFF -D WITH_VTK=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/opt/opencv_contrib/modules /opt/opencv/
$ make -j4
$ make install

Check OpenCV version

$ pkg-config --modversion opencv

Xml file Configure

The setting.xml include image and display attributes. EPD application program depend on setting.xml to find and refresh image. First should open setting.xml in page file and content is as below.

 <?xml version="1.0"?> 
 <epd_config>
   <epd name="EPD 31.2">
       <color>KW</color>	    
       <image_path>D:\application\photoImg\</image_path>
       <image_name>
         <full_update>
             <img>1.bmp</img>
         </full_update>
         <stop>stop</stop>
       </image_name>
       <slide_interval>0</slide_interval>
       <en_set_temperature>0</en_set_temperature> 
       <temperature>25</temperature>
       <waveform_mode>2</waveform_mode>
       <rotate>180</rotate>
 </epd>
 </epd_config>

User usually set up image path with user’s environment in EPD package file and put image file into image path. All tag attributes in xml describe below.

<image path> : User must make sure image path exist in user’s operating system and file put into this path. If file is not in path , EPD application may lead to error occur.

<img> : Image name write between <img> </img>and image file should put in image path. It can be assigned more than one tag name between <full_update> and </full_update> . EPD application will display image in sequence. It's only support Bmp and jpg extension type.

<stop> Stop tag use to load image at once. Above mention stop tag in xml, application terminated after 1.bmp update done. In carousel mode stop tag must remove from xml.

<slide_interval>: Slide interval is delay time in second between every image display.

<set_temperature> 0 is disable and user should not change to other value.

<waveform_mode> Waveform mode usually choose mode 2 for image refresh. waveform explicit detail see Section 1.4 waveform mode

<rotate> The image will present different rotation on panel and only 4 of options to choose 0 、90、180、270 of angle.

Execution

User make sure image path exists in host system before execute or EPD application it may cause error occur.

1. Open command line

2. Current directory switch to EPD_4TCON

3. Execute command EPD_4TCON with parameter xml file name

Windows : "EPD_4Tcon.exe setting.xml"

Linux : $./EPD_4Tcon setting.xml

execute EPD4tcon

Quick start

Single mode and carousel mode example describe as below.

Following step to achieve different play mode.

Single mode

This example showing how to configure xml for image display once on linux ubuntu 18.04.

Step 1: Image path depends on user's defined. we assume path that is in /usr/local/photoImg in this example.

Step 2: we assume one picture that name is 1.bmp to display , we should put 1.bmp in image path and put img tag in xml.

 <?xml version="1.0"?>
 <epd_config>
   <epd name="EPD 31.2">
       <color>KW</color>	    
       <image_path>/usr/local/photoImg</image_path>
       <image_name>
         <full_update>
             <img>1.bmp</img>
         </full_update>
         <stop>stop</stop>
       </image_name>
       <slide_interval>0</slide_interval>
       <en_set_temperature>0</en_set_temperature> 
       <temperature>25</temperature>
       <waveform_mode>2</waveform_mode>
       <rotate>180</rotate>
 </epd>
 </epd_config>

Step 3: $./EPD_4Tcon setting.xml

This application will stop after updating content of 1.bmp

Carousel mode

Carousel mode is non-stop application except system signal , user could stop running procedure by SIGINT ,SIGKILL signal.

Below example is xml format in carousel mode that three images display in sequence every 10 seconds intervals .

Step 1: Image path depends on user's defined. we defined path that is in /usr/local/photoImg in this example.

Step 2: There are three images to display , we should put 1.bmp,2.bmp,3.bmp in image path and put img tag in xml.

Step 3: Removed tag of <stop>.

Step 4: We defined every 10 seconds to change image and writing 10 at tag of <slide_interval>

<?xml version="1.0"?>
 <epd_config>
   <epd name="EPD 31.2">
       <color>KW</color>	    
       <image_path>/usr/local/photoImg</image_path>
       <image_name>
         <full_update>
             <img>1.bmp</img>
             <img>2.bmp</img>
             <img>3.bmp</img>
         </full_update>
       </image_name>
       <slide_interval>10</slide_interval>
       <en_set_temperature>0</en_set_temperature> 
       <temperature>25</temperature>
       <waveform_mode>2</waveform_mode>
       <rotate>180</rotate>
 </epd>
 </epd_config>

In mode 0 ,it is used to completely clear the display when initial panel then using white image to display panel instead of mode 0. It prevents panel from damaging.

In mode 1 Du mode non-flashy waveform but it easily appear Ghosting on panel. it is suitable highlight text.

partial update

In mode 2it userd for 16 level grayscale images. When panel is wide temperature Range(-20 ~ 70 °C), it only support mode 0、1、2 not support mode 3、4、5

In mode 3 it's same with mode 2 but mode 3 has high quality image appearance.

In mode 4 it is used for fast switching or simple animation only the conversion between black and white, sacrificing the image quality and afterimage effect for fast response time.

mode 4 (A2)scenario

partial update

In mode 5 it's used for text turn to page when text is arranged on the same horizontal on next page .