We have a problem with the ED133UT2 EPD display using the iMX7D.
1) Screen is connected to the iMX7D
2) From NXP we have received the file epdc_ED133UT2.fw which we uploaded to / lib / firmware / imx / epdc /
3) In the file mxc_epdc_v2_fb.c we have configured our screen
static struct fb_videomode config2_mode = {
.name="ED133UT2",
.refresh=75,
.xres=1600,
.yres=1200,
.pixclock=80000000,
.left_margin=20,
.right_margin=56,
.upper_margin=4,
.lower_margin=7,
.hsync_len=4,
.vsync_len=1,
.sync=0,
.vmode=FB_VMODE_NONINTERLACED,
.flag=0,
};
static struct imx_epdc_fb_mode panel_modes[] = {
{
&config2_mode, /* struct fb_videomode *mode */
4, /* vscan_holdoff */
10, /* sdoed_width */
20, /* sdoed_delay */
10, /* sdoez_width */
20, /* sdoez_delay */
796, /* GDCLK_HP */
481, /* GDSP_OFF */
0, /* GDOE_OFF */
39, /* gdclk_offs */
1, /* num_ce */
}
}
(These parameters we received from nxp)
4) Our framebuffer configuration now looks like this.
# fbset
mode "1600x1200-0"
# D: 0.013 MHz, H: 0.007 kHz, V: 0.006 Hz
geometry 1600 1200 1600 2560 16
timings 80000000 20 56 4 7 4 1
rgba 5/11,6/5,5/0,0/0
endmode
Unfortunately, we have "strange" lines on our screen.
What could cause this?
Hi,
I'm working on a i.MX7Dual SABRE board with X-IMXEBOOKDC4 daughter board, trying to get the 13.3" E-ink display working.
My display model is ES133UT2. I'm connecting the display on J2 header of the daughter board. I received the epdc_ES133UT2.fw from nxp, which I've placed in /lib/firmware/imx /epdc/.
My case:
static struct fb_videomode es133ut2mode = {
.name = "ES133UT2",
.refresh=75,
.xres=1600,
.yres=1200,
.pixclock=80000000,
.left_margin=20,
.right_margin=56,
.upper_margin=4,
.lower_margin=7,
.hsync_len=4,
.vsync_len=1,
.sync=0,
.vmode=FB_VMODE_NONINTERLACED,
.flag=0,
};
static struct imx_epdc_fb_mode panel_modes[] = {
{
&es133ut2mode, /* struct fb_videomode *mode */
4, /* vscan_holdoff */
10, /* sdoed_width */
20, /* sdoed_delay */
10, /* sdoez_width */
20, /* sdoez_delay */
796, /* GDCLK_HP */
481, /* GDSP_OFF */
0, /* GDOE_OFF */
39, /* gdclk_offs */
1, /* num_ce */
},
baudrate=115200
boot_fdt=try
bootcmd=mmc dev ${mmcdev};mmc dev ${mmcdev}; if mmc rescan; then if run loadbootscript; then run bootscript; else if run loadimage; then run mmcboot; else run netboot; fi; fi; else run netboot; fi
bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};
bootdelay=3
bootscript=echo Running bootscript from mmc ...; source
console=ttymxc0
ethact=FEC0
ethaddr=00:04:9f:04:e6:2a
ethprime=FEC
fdt_addr=0x83000000
fdt_file=imx7d-sdb-epdc.dtb
fdt_high=0xffffffff
image=zImage
initrd_addr=0x83800000
initrd_high=0xffffffff
ip_dyn=yes
loadaddr=0x80800000
loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
loadm4image=fatload mmc ${mmcdev}:${mmcpart} 0x7F8000 ${m4image}
m4boot=run loadm4image; bootaux 0x7F8000
m4image=m4_qspi.bin
mfgtool_args=setenv bootargs console=${console},${baudrate} rdinit=/linuxrc g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.file=/fat g_mass_storage.ro=1 g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber="" clk_ignore_unused
mmcargs=setenv bootargs console=${console},${baudrate} root=${mmcroot}
mmcautodetect=yes
mmcboot=echo Booting from mmc ...; run mmcargs; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootz ${loadaddr} - ${fdt_addr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;
mmcdev=0
mmcpart=1
mmcroot=/dev/mmcblk0p2 rootwait rw
netargs=setenv bootargs console=${console},${baudrate} root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
netboot=echo Booting from net ...; run netargs; if test ${ip_dyn} = yes; then setenv get_cmd dhcp; else setenv get_cmd tftp; fi; ${get_cmd} ${image}; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if ${get_cmd} ${fdt_addr} ${fdt_file}; then bootz ${loadaddr} - ${fdt_addr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;
script=boot.scr
Environment size: 2201/8188 bytes
root@imx7dsabresd:~# dmesg | grep epdc
imx_epdc_v2_fb 306f0000.epdc: Direct firmware load for imx/epdc/epdc_ES133UT2.fw failed with error -2
imx_epdc_v2_fb 306f0000.epdc: Falling back to user helper
root@imx7dsabresd:~# ls -l /dev/fb*
lrwxrwxrwx 1 root root 3 Jan 1 1970 /dev/fb -> fb0
crw-rw---- 1 root video 29, 0 Jan 1 1970 /dev/fb0
crw-rw---- 1 root video 29, 1 Jan 1 1970 /dev/fb1
mode "1600x1200-0"
# D: 0.012 MHz, H: 0.007 kHz, V: 0.006 Hz
geometry 1600 1200 1600 2560 16
timings 83333333 20 56 4 7 4 1
rgba 5/11,6/5,5/0,0/0
endmode
I found out about the changes I need to make from the threads
I.MX7Dual - EPDC ED133UT2 - display problem
i.MX7D - EPD ED133UT2 - Display problems
Still the 13.3" is displaying weird things.
Not even the boot splash is coming up.
I tried the epdc unit tests and my own tests with similar results.
I also tried running it on 6" configs and its respective waveform like roberto pozzi did, still no luck.
I'm not sure what's wrong here.
People having similar problems please help asap.
UPDATE:
After turning on the DEBUG flag in epdc driver, here is the full log.
root@imx7dsabresd:~# dmesg | grep epdc
Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk0p2 rootwait rw epdc video=mxcepdcfb:ES133UT2,bpp=16
imx_epdc_v2_fb 306f0000.epdc: resolution 1600x1200, bpp 16
imx_epdc_v2_fb 306f0000.epdc: memory to allocate: 8192000
imx_epdc_v2_fb 306f0000.epdc: allocated at ac100000:0xac100000
imx_epdc_v2_fb 306f0000.epdc: EPDC version = 30
imx_epdc_v2_fb 306f0000.epdc: allocated 2048000 bytes @ 0xA8600000
imx_epdc_v2_fb 306f0000.epdc: allocated 2048000 bytes @ 0xA8800000
imx_epdc_v2_fb 306f0000.epdc: mxc_epdc_fb_pan_display: var->yoffset 0, info->var.yoffset 0
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: Direct firmware load for imx/epdc/epdc_ES133UT2.fw failed with error -2
imx_epdc_v2_fb 306f0000.epdc: Falling back to user helper
imx_epdc_v2_fb 306f0000.epdc: mxc_epdc_fb_pan_display: var->yoffset 0, info->var.yoffset 0
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: mxc_epdc_fb_pan_display: var->yoffset 0, info->var.yoffset 0
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: Firmware Header:
imx_epdc_v2_fb 306f0000.epdc: wi0 0xf261fe83
imx_epdc_v2_fb 306f0000.epdc: wi1 0x00016c54
imx_epdc_v2_fb 306f0000.epdc: wi2 0x00001665
imx_epdc_v2_fb 306f0000.epdc: wi3 0x00420011
imx_epdc_v2_fb 306f0000.epdc: wi4 0x4f015923
imx_epdc_v2_fb 306f0000.epdc: wi5 0x00009600
imx_epdc_v2_fb 306f0000.epdc: wi6 0x0000004b
imx_epdc_v2_fb 306f0000.epdc: xwia:24 0x000040
imx_epdc_v2_fb 306f0000.epdc: cs1:8 0xbb
imx_epdc_v2_fb 306f0000.epdc: wmta:24 0x00005f
imx_epdc_v2_fb 306f0000.epdc: fvsn:8 0x01
imx_epdc_v2_fb 306f0000.epdc: luts:8 0x00
imx_epdc_v2_fb 306f0000.epdc: mc:8 0x05
imx_epdc_v2_fb 306f0000.epdc: trc:8 0x0d
imx_epdc_v2_fb 306f0000.epdc: reserved0_0 0x01
imx_epdc_v2_fb 306f0000.epdc: eb:8 0xff
imx_epdc_v2_fb 306f0000.epdc: sb:8 0xfc
imx_epdc_v2_fb 306f0000.epdc: reserved0_1 0x01
imx_epdc_v2_fb 306f0000.epdc: reserved0_2 0x00
imx_epdc_v2_fb 306f0000.epdc: reserved0_3 0x00
imx_epdc_v2_fb 306f0000.epdc: reserved0_4 0x00
imx_epdc_v2_fb 306f0000.epdc: reserved0_5 0x00
imx_epdc_v2_fb 306f0000.epdc: cs2:8 0x6f
imx_epdc_v2_fb 306f0000.epdc: trt entry #0 = 0x0
imx_epdc_v2_fb 306f0000.epdc: trt entry #1 = 0x3
imx_epdc_v2_fb 306f0000.epdc: trt entry #2 = 0x6
imx_epdc_v2_fb 306f0000.epdc: trt entry #3 = 0x9
imx_epdc_v2_fb 306f0000.epdc: trt entry #4 = 0xc
imx_epdc_v2_fb 306f0000.epdc: trt entry #5 = 0xf
imx_epdc_v2_fb 306f0000.epdc: trt entry #6 = 0x12
imx_epdc_v2_fb 306f0000.epdc: trt entry #7 = 0x15
imx_epdc_v2_fb 306f0000.epdc: trt entry #8 = 0x18
imx_epdc_v2_fb 306f0000.epdc: trt entry #9 = 0x1b
imx_epdc_v2_fb 306f0000.epdc: trt entry #10 = 0x1e
imx_epdc_v2_fb 306f0000.epdc: trt entry #11 = 0x21
imx_epdc_v2_fb 306f0000.epdc: trt entry #12 = 0x26
imx_epdc_v2_fb 306f0000.epdc: trt entry #13 = 0x2b
imx_epdc_v2_fb 306f0000.epdc: Using temperature index 6
imx_epdc_v2_fb 306f0000.epdc: Waveform file does not support advanced algorithms
imx_epdc_v2_fb 306f0000.epdc: Using temperature index 6
imx_epdc_v2_fb 306f0000.epdc: EPDC Powerup
imx_epdc_v2_fb 306f0000.epdc: epdc busfreq high request.
imx_epdc_v2_fb 306f0000.epdc: Mode0 update - Waiting for LUT to complete...
imx_epdc_v2_fb 306f0000.epdc: Cleared LUT complete for init update
imx_epdc_v2_fb 306f0000.epdc: Mode0 init complete
imx_epdc_v2_fb 306f0000.epdc: EPDC Powerdown
imx_epdc_v2_fb 306f0000.epdc: epdc busfreq high release.
imx_epdc_v2_fb 306f0000.epdc: Waiting for marker 305419896
imx_epdc_v2_fb 306f0000.epdc: Found a pending update!
imx_epdc_v2_fb 306f0000.epdc: Starting PxP legacy process.
imx_epdc_v2_fb 306f0000.epdc: EPDC Powerup
imx_epdc_v2_fb 306f0000.epdc: epdc busfreq high request.
imx_epdc_v2_fb 306f0000.epdc: TX completed
imx_epdc_v2_fb 306f0000.epdc: Starting PxP WFE_A process.
imx_epdc_v2_fb 306f0000.epdc: TX completed
imx_epdc_v2_fb 306f0000.epdc: hist_stat = 0x18, new waveform = 0x2
imx_epdc_v2_fb 306f0000.epdc:
imx_epdc_v2_fb 306f0000.epdc: EPDC interrupts fired = 0x0, LUTS1 fired = 0x2, LUTS2 fired = 0x0
imx_epdc_v2_fb 306f0000.epdc: LUT 1 completed
imx_epdc_v2_fb 306f0000.epdc: Signaling marker 305419896
imx_epdc_v2_fb 306f0000.epdc: EPDC Powerdown
imx_epdc_v2_fb 306f0000.epdc: mxc_epdc_fb_pan_display: var->yoffset 0, info->var.yoffset 0
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: mxc_epdc_fb_pan_display: var->yoffset 0, info->var.yoffset 0
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: mxc_epdc_fb_pan_display: var->yoffset 0, info->var.yoffset 0
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: epdc busfreq high release.
imx_epdc_v2_fb 306f0000.epdc: mxc_epdc_fb_pan_display: var->yoffset 0, info->var.yoffset 0
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: blank = 1
imx_epdc_v2_fb 306f0000.epdc: mxc_epdc_fb_pan_display: var->yoffset 0, info->var.yoffset 0
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: setcmap
imx_epdc_v2_fb 306f0000.epdc: blank = 0
Hello Karol.
Sorry for the delay in the answer only today I'm back from holidays.
here the answers:
1)ls -l /dev/fb*
lrwxrwxrwx 1 root root 3 Aug 2 02:08 /dev/fb -> fb0
crw-rw---- 1 root video 29, 0 Aug 2 02:08 /dev/fb0
crw-rw---- 1 root video 29, 1 Aug 2 02:08 /dev/fb1
2) fbset
mode "1600x1200-0"
# D: 0.012 MHz, H: 0.007 kHz, V: 0.006 Hz
geometry 1600 1200 1600 2560 16
timings 83333333 20 56 4 7 4 1
rgba 5/11,6/5,5/0,0/0
endmode
3) and 4)
static struct fb_videomode config2_mode = {
.name="ES133UT2",
.refresh=75,
.xres=1600,
.yres=1200,
.pixclock=80000000,
.left_margin=20,
.right_margin=56,
.upper_margin=4,
.lower_margin=7,
.hsync_len=4,
.vsync_len=1,
.sync=0,
.vmode=FB_VMODE_NONINTERLACED,
.flag=0,
};
static struct imx_epdc_fb_mode panel_modes[] = {
{
&config2_mode, /* struct fb_videomode *mode */
4, /* vscan_holdoff */
10, /* sdoed_width */
20, /* sdoed_delay */
10, /* sdoez_width */
20, /* sdoez_delay */
796, /* GDCLK_HP */
481, /* GDSP_OFF */
0, /* GDOE_OFF */
39, /* gdclk_offs */
1, /* num_ce */
},
{
&ed060xh2c1mode, /* struct fb_videomode *mode */
4, /* vscan_holdoff */
.....
5)dmesg | grep epdc
[ 0.000000] Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk0p2 rootwait rw epdc video=mxcepdcfb:ES133UT2,bpp=16
[ 1.330644] imx7d-pinctrl 30330000.iomuxc: could not request pin 128 (MX7D_PAD_SAI1_RX_DATA) from group epdc_elan_touch_grp on device 30330000.iomuxc
[ 3.303033] imx_epdc_v2_fb 306f0000.epdc: Direct firmware load for imx/epdc/epdc_ES133UT2.fw failed with error -2
[ 3.303040] imx_epdc_v2_fb 306f0000.epdc: Falling back to user helper
6)printenv
baudrate=115200
boot_fdt=try
bootcmd=mmc dev ${mmcdev};mmc dev ${mmcdev}; if mmc rescan; then if run loadbootscript; then run bootscript; else if run loadimage; then run mmcboot; else run netboot; fi; fi; else run netboot; fi
bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};
bootdelay=3
bootscript=echo Running bootscript from mmc ...; source
console=ttymxc0
dfu_alt_info=image raw 0 0x800000;u-boot raw 0 0x4000;bootimg part 0 1;rootfs part 0 2
ethact=FEC0
ethaddr=00:04:9f:04:ce:66
ethprime=FEC
fdt_addr=0x83000000
fdt_file=imx7d-sdb-epdc.dtb
fdt_high=0xffffffff
image=zImage
initrd_addr=0x83800000
initrd_high=0xffffffff
ip_dyn=yes
loadaddr=0x80800000
loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
loadm4image=fatload mmc ${mmcdev}:${mmcpart} 0x7F8000 ${m4image}
m4boot=run loadm4image; bootaux 0x7F8000
m4image=m4_qspi.bin
mfgtool_args=setenv bootargs console=${console},${baudrate} rdinit=/linuxrc g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber="" clk_ignore_unused
mmcargs=setenv bootargs console=${console},${baudrate} root=${mmcroot} epdc video=mxcepdcfb:ES133UT2,bpp=16
mmcautodetect=yes
mmcboot=echo Booting from mmc ...; run mmcargs; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootz ${loadaddr} - ${fdt_addr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;
mmcdev=0
mmcpart=1
mmcroot=/dev/mmcblk0p2 rootwait rw
netargs=setenv bootargs console=${console},${baudrate} root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
netboot=echo Booting from net ...; run netargs; if test ${ip_dyn} = yes; then setenv get_cmd dhcp; else setenv get_cmd tftp; fi; ${get_cmd} ${image}; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if ${get_cmd} ${fdt_addr} ${fdt_file}; then bootz ${loadaddr} - ${fdt_addr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;
panel=TFT43AB
script=boot.scr
Environment size: 2298/8188 bytes
Please note that I'm working with the eink panel ES133UT2 which is the same as the ED133UT2 (glass substrate instead of plastic) so I have changed the name of variables.
From NXP we have received the file 320_R118_AD5B01_ED133UT2C1_TC.fw which we uploaded to /lib/firmware/imx / epdc/
One question the exact size of my fw file is 1023734 bytes. Is the same as yours?
Thank for your help,
Best Regards,
Roberto Pozzi
Hello Roberto.
Me and Adam Kaliszewski (the creator of this thread) are working together on the same screen ED133UT2. We also had a difficult start to running this screen.
Can you paste in this thread what commands do you return:
1) ls -l /dev/fb*
2) fbset
3) cat /usr/src/kernel/drivers/video/fbdev/mxc/mxc_epdc_fb.c
4) cat /usr/src/kernel/drivers/video/fbdev/mxc/mxc_epdc_v2_fb.c
5) dmesg | grep epdc
And how can you. When booting the system enter the settings for uboot and paste here what returns the "printenv" command.
We will try to help you with Adam because we had similar problems at the beginning.
Hello,
I have exactly the same problem. Here is my eink display label
Regards,
Roberto Pozzi
Hello Roberto Pozzi,
Is your EPD also showing random lines on the image? Would you please share a screenshot? Which configuration are you using and, would you please provide the num_ce if you have it?
If possible, would you also please share the connections between the board and the EPD?
Sometimes a possible workaround is saving to the framebuffer twice, which somehow helps the strips disappear.
Regards,
Hello Adam Kaliszewski,
Would it be possible to verify the num_ce value on the panel specifications from EInk? The problem may reside on this parameter.
Regards,