ILI9341 not working

User avatar
loboris
Posts: 497
Joined: Wed Dec 21, 2016 7:40 pm

Re: ILI9341 not working

Postby loboris » Wed Nov 22, 2017 7:39 pm

@Zwegogo

I have changed the conflicting enum names.
Please try again, it should now work.

Zwegogo
Posts: 7
Joined: Wed Oct 25, 2017 2:51 pm

Re: ILI9341 not working

Postby Zwegogo » Thu Nov 23, 2017 3:37 pm

@loboris

Hi,

Thank you for your quick reply and action! Really great. I have implemented your changes, but i get some new errors. See below.
Hopefully it will help to solve the issue. Thanks!

Regards,

Stefan

CC build/main/main.o
In file included from C:/msys32/home/stefan/esp/esp-idf/components/driver/include/driver/sdspi_host.h:22:0,
from C:/msys32/home/stefan/esp/esp-idf/components/fatfs/src/esp_vfs_fat.h:21,
from C:/msys32/home/stefan/esp/sns_proto/main/sd_card.h:15,
from C:/msys32/home/stefan/esp/sns_proto/main/main.c:36:
C:/msys32/home/stefan/esp/esp-idf/components/driver/include/driver/spi_master.h:33:0: warning: "SPI_DEVICE_BIT_LSBFIRST" redefined
#define SPI_DEVICE_BIT_LSBFIRST (SPI_DEVICE_TXBIT_LSBFIRST|SPI_DEVICE_RXBIT_LSBFIRST); ///< Transmit and receive LSB first
^
In file included from C:/msys32/home/stefan/esp/sns_proto/components/tft/tftspi.h:11:0,
from C:/msys32/home/stefan/esp/sns_proto/main/images_1.h:25,
from C:/msys32/home/stefan/esp/sns_proto/main/main.c:35:
C:/msys32/home/stefan/esp/sns_proto/components/spidriver/spi_master_lobo.h:67:0: note: this is the location of the previous definition
#define SPI_DEVICE_BIT_LSBFIRST (SPI_TXBIT_LSBFIRST|SPI_RXBIT_LSBFIRST); ///< Transmit and receive LSB first
^
In file included from C:/msys32/home/stefan/esp/esp-idf/components/driver/include/driver/sdspi_host.h:22:0,
from C:/msys32/home/stefan/esp/esp-idf/components/fatfs/src/esp_vfs_fat.h:21,
from C:/msys32/home/stefan/esp/sns_proto/main/sd_card.h:15,
from C:/msys32/home/stefan/esp/sns_proto/main/main.c:36:
C:/msys32/home/stefan/esp/esp-idf/components/driver/include/driver/spi_master.h:41:15: error: conflicting types for 'transaction_cb_t'
typedef void(*transaction_cb_t)(spi_transaction_t *trans);
^
In file included from C:/msys32/home/stefan/esp/sns_proto/components/tft/tftspi.h:11:0,
from C:/msys32/home/stefan/esp/sns_proto/main/images_1.h:25,
from C:/msys32/home/stefan/esp/sns_proto/main/main.c:35:
C:/msys32/home/stefan/esp/sns_proto/components/spidriver/spi_master_lobo.h:76:15: note: previous declaration of 'transaction_cb_t' was here
typedef void(*transaction_cb_t)(spi_lobo_transaction_t *trans);
^
In file included from C:/msys32/home/stefan/esp/esp-idf/components/driver/include/driver/sdspi_host.h:22:0,
from C:/msys32/home/stefan/esp/esp-idf/components/fatfs/src/esp_vfs_fat.h:21,
from C:/msys32/home/stefan/esp/sns_proto/main/sd_card.h:15,
from C:/msys32/home/stefan/esp/sns_proto/main/main.c:36:
C:/msys32/home/stefan/esp/esp-idf/components/driver/include/driver/spi_master.h:65:0: warning: "SPI_TRANS_MODE_DIOQIO_ADDR" redefined
#define SPI_TRANS_MODE_DIOQIO_ADDR (1<<4) ///< Also transmit address in mode selected by SPI_MODE_DIO/SPI_MODE_QIO
^
In file included from C:/msys32/home/stefan/esp/sns_proto/components/tft/tftspi.h:11:0,
from C:/msys32/home/stefan/esp/sns_proto/main/images_1.h:25,
from C:/msys32/home/stefan/esp/sns_proto/main/main.c:35:
C:/msys32/home/stefan/esp/sns_proto/components/spidriver/spi_master_lobo.h:101:0: note: this is the location of the previous definition
#define SPI_TRANS_MODE_DIOQIO_ADDR (1<<2) ///< Also transmit address in mode selected by SPI_MODE_DIO/SPI_MODE_QIO
^
In file included from C:/msys32/home/stefan/esp/esp-idf/components/driver/include/driver/sdspi_host.h:22:0,
from C:/msys32/home/stefan/esp/esp-idf/components/fatfs/src/esp_vfs_fat.h:21,
from C:/msys32/home/stefan/esp/sns_proto/main/sd_card.h:15,
from C:/msys32/home/stefan/esp/sns_proto/main/main.c:36:
C:/msys32/home/stefan/esp/esp-idf/components/driver/include/driver/spi_master.h:66:0: warning: "SPI_TRANS_USE_RXDATA" redefined
#define SPI_TRANS_USE_RXDATA (1<<2) ///< Receive into rx_data member of spi_transaction_t instead into memory at rx_buffer.
^
In file included from C:/msys32/home/stefan/esp/sns_proto/components/tft/tftspi.h:11:0,
from C:/msys32/home/stefan/esp/sns_proto/main/images_1.h:25,
from C:/msys32/home/stefan/esp/sns_proto/main/main.c:35:
C:/msys32/home/stefan/esp/sns_proto/components/spidriver/spi_master_lobo.h:102:0: note: this is the location of the previous definition
#define SPI_TRANS_USE_RXDATA (1<<3) ///< Receive into rx_data member of spi_lobo_transaction_t instead into memory at rx_buffer.
^
In file included from C:/msys32/home/stefan/esp/esp-idf/components/driver/include/driver/sdspi_host.h:22:0,
from C:/msys32/home/stefan/esp/esp-idf/components/fatfs/src/esp_vfs_fat.h:21,
from C:/msys32/home/stefan/esp/sns_proto/main/sd_card.h:15,
from C:/msys32/home/stefan/esp/sns_proto/main/main.c:36:
C:/msys32/home/stefan/esp/esp-idf/components/driver/include/driver/spi_master.h:67:0: warning: "SPI_TRANS_USE_TXDATA" redefined
#define SPI_TRANS_USE_TXDATA (1<<3) ///< Transmit tx_data member of spi_transaction_t instead of data at tx_buffer. Do not set tx_buffer when using this.
^
In file included from C:/msys32/home/stefan/esp/sns_proto/components/tft/tftspi.h:11:0,
from C:/msys32/home/stefan/esp/sns_proto/main/images_1.h:25,
from C:/msys32/home/stefan/esp/sns_proto/main/main.c:35:
C:/msys32/home/stefan/esp/sns_proto/components/spidriver/spi_master_lobo.h:103:0: note: this is the location of the previous definition
#define SPI_TRANS_USE_TXDATA (1<<4) ///< Transmit tx_data member of spi_lobo_transaction_t instead of data at tx_buffer. Do not set tx_buffer when using this.
^
In file included from C:/msys32/home/stefan/esp/esp-idf/components/bt/bluedroid/include/bt_target.h:1829:0,
from C:/msys32/home/stefan/esp/esp-idf/components/bt/bluedroid/bta/include/bta_api.h:28,
from C:/msys32/home/stefan/esp/sns_proto/main/main.c:26:
C:/msys32/home/stefan/esp/esp-idf/components/bt/bluedroid/include/bt_trace.h:28:14: error: expected identifier or '(' before string constant
#define TAG "BT"
^
C:/msys32/home/stefan/esp/sns_proto/main/sd_card.h:20:20: note: in expansion of macro 'TAG'
static const char *TAG = "example";
^
C:/msys32/home/stefan/esp/sns_proto/main/main.c: In function 'app_main':
C:/msys32/home/stefan/esp/sns_proto/main/main.c:177:35: error: 'card' undeclared (first use in this function)
sdmmc_card_print_info(stdout, card);
^
C:/msys32/home/stefan/esp/sns_proto/main/main.c:177:35: note: each undeclared identifier is reported only once for each function it appears in
C:/msys32/home/stefan/esp/sns_proto/main/main.c:153:38: warning: unused variable 'mount_config' [-Wunused-variable]
esp_vfs_fat_sdmmc_mount_config_t mount_config = {
^
C:/msys32/home/stefan/esp/sns_proto/main/main.c:141:25: warning: variable 'slot_config' set but not used [-Wunused-but-set-variable]
sdspi_slot_config_t slot_config = SDSPI_SLOT_CONFIG_DEFAULT();
^
C:/msys32/home/stefan/esp/sns_proto/main/main.c:139:18: warning: unused variable 'host' [-Wunused-variable]
sdmmc_host_t host = SDSPI_HOST_DEFAULT();
^
make[1]: *** [/home/stefan/esp/esp-idf/make/component_wrapper.mk:243: main.o] Error 1
make: *** [C:/msys32/home/stefan/esp/esp-idf/make/project.mk:434: component-main-build] Error 2

Zwegogo
Posts: 7
Joined: Wed Oct 25, 2017 2:51 pm

Re: ILI9341 not working

Postby Zwegogo » Mon Nov 27, 2017 10:55 am

@loboris

Hi loboris,

To be sure I tested again by combining the original SD-card example with your newest tft demo. I get the errors below. It shows that there are still conflicts betwee spi_master and spi_master_lobo. Hopes this helps to resolve the issue.

Regards,

Stefan

$ make all
CC build/main/tft_demo.o
In file included from C:/msys32/home/stefan/esp/esp-idf/components/driver/include/driver/sdspi_host.h:22:0,
from C:/msys32/home/stefan/esp/esp-idf/components/fatfs/src/esp_vfs_fat.h:21,
from C:/msys32/home/stefan/esp/tft_new/main/sd_card_example_main.h:15,
from C:/msys32/home/stefan/esp/tft_new/main/tft_demo.c:25:
C:/msys32/home/stefan/esp/esp-idf/components/driver/include/driver/spi_master.h:33:0: warning: "SPI_DEVICE_BIT_LSBFIRST" redefined
#define SPI_DEVICE_BIT_LSBFIRST (SPI_DEVICE_TXBIT_LSBFIRST|SPI_DEVICE_RXBIT_LSBFIRST); ///< Transmit and receive LSB first
^
In file included from C:/msys32/home/stefan/esp/tft_new/components/tft/tftspi.h:11:0,
from C:/msys32/home/stefan/esp/tft_new/main/tft_demo.c:22:
C:/msys32/home/stefan/esp/tft_new/components/spidriver/spi_master_lobo.h:67:0: note: this is the location of the previous definition
#define SPI_DEVICE_BIT_LSBFIRST (SPI_TXBIT_LSBFIRST|SPI_RXBIT_LSBFIRST); ///< Transmit and receive LSB first
^
In file included from C:/msys32/home/stefan/esp/esp-idf/components/driver/include/driver/sdspi_host.h:22:0,
from C:/msys32/home/stefan/esp/esp-idf/components/fatfs/src/esp_vfs_fat.h:21,
from C:/msys32/home/stefan/esp/tft_new/main/sd_card_example_main.h:15,
from C:/msys32/home/stefan/esp/tft_new/main/tft_demo.c:25:
C:/msys32/home/stefan/esp/esp-idf/components/driver/include/driver/spi_master.h:65:0: warning: "SPI_TRANS_MODE_DIOQIO_ADDR" redefined
#define SPI_TRANS_MODE_DIOQIO_ADDR (1<<4) ///< Also transmit address in mode selected by SPI_MODE_DIO/SPI_MODE_QIO
^
In file included from C:/msys32/home/stefan/esp/tft_new/components/tft/tftspi.h:11:0,
from C:/msys32/home/stefan/esp/tft_new/main/tft_demo.c:22:
C:/msys32/home/stefan/esp/tft_new/components/spidriver/spi_master_lobo.h:101:0: note: this is the location of the previous definition
#define SPI_TRANS_MODE_DIOQIO_ADDR (1<<2) ///< Also transmit address in mode selected by SPI_MODE_DIO/SPI_MODE_QIO
^
In file included from C:/msys32/home/stefan/esp/esp-idf/components/driver/include/driver/sdspi_host.h:22:0,
from C:/msys32/home/stefan/esp/esp-idf/components/fatfs/src/esp_vfs_fat.h:21,
from C:/msys32/home/stefan/esp/tft_new/main/sd_card_example_main.h:15,
from C:/msys32/home/stefan/esp/tft_new/main/tft_demo.c:25:
C:/msys32/home/stefan/esp/esp-idf/components/driver/include/driver/spi_master.h:66:0: warning: "SPI_TRANS_USE_RXDATA" redefined
#define SPI_TRANS_USE_RXDATA (1<<2) ///< Receive into rx_data member of spi_transaction_t instead into memory at rx_buffer.
^
In file included from C:/msys32/home/stefan/esp/tft_new/components/tft/tftspi.h:11:0,
from C:/msys32/home/stefan/esp/tft_new/main/tft_demo.c:22:
C:/msys32/home/stefan/esp/tft_new/components/spidriver/spi_master_lobo.h:102:0: note: this is the location of the previous definition
#define SPI_TRANS_USE_RXDATA (1<<3) ///< Receive into rx_data member of spi_lobo_transaction_t instead into memory at rx_buffer.
^
In file included from C:/msys32/home/stefan/esp/esp-idf/components/driver/include/driver/sdspi_host.h:22:0,
from C:/msys32/home/stefan/esp/esp-idf/components/fatfs/src/esp_vfs_fat.h:21,
from C:/msys32/home/stefan/esp/tft_new/main/sd_card_example_main.h:15,
from C:/msys32/home/stefan/esp/tft_new/main/tft_demo.c:25:
C:/msys32/home/stefan/esp/esp-idf/components/driver/include/driver/spi_master.h:67:0: warning: "SPI_TRANS_USE_TXDATA" redefined
#define SPI_TRANS_USE_TXDATA (1<<3) ///< Transmit tx_data member of spi_transaction_t instead of data at tx_buffer. Do not set tx_buffer when using this.
^
In file included from C:/msys32/home/stefan/esp/tft_new/components/tft/tftspi.h:11:0,
from C:/msys32/home/stefan/esp/tft_new/main/tft_demo.c:22:
C:/msys32/home/stefan/esp/tft_new/components/spidriver/spi_master_lobo.h:103:0: note: this is the location of the previous definition
#define SPI_TRANS_USE_TXDATA (1<<4) ///< Transmit tx_data member of spi_lobo_transaction_t instead of data at tx_buffer. Do not set tx_buffer when using this.
^
In file included from C:/msys32/home/stefan/esp/esp-idf/components/driver/include/driver/sdspi_host.h:22:0,
from C:/msys32/home/stefan/esp/esp-idf/components/fatfs/src/esp_vfs_fat.h:21,
from C:/msys32/home/stefan/esp/tft_new/main/sd_card_example_main.h:15,
from C:/msys32/home/stefan/esp/tft_new/main/tft_demo.c:25:
C:/msys32/home/stefan/esp/esp-idf/components/driver/include/driver/spi_master.h:41:15: error: conflicting types for 'transaction_cb_t'
typedef void(*transaction_cb_t)(spi_transaction_t *trans);
^
In file included from C:/msys32/home/stefan/esp/tft_new/components/tft/tftspi.h:11:0,
from C:/msys32/home/stefan/esp/tft_new/main/tft_demo.c:22:
C:/msys32/home/stefan/esp/tft_new/components/spidriver/spi_master_lobo.h:76:15: note: previous declaration of 'transaction_cb_t' was here
typedef void(*transaction_cb_t)(spi_lobo_transaction_t *trans);
^
make[1]: *** [/home/stefan/esp/esp-idf/make/component_wrapper.mk:243: tft_demo.o] Error 1
make: *** [C:/msys32/home/stefan/esp/esp-idf/make/project.mk:434: component-main-build] Error 2

User avatar
loboris
Posts: 497
Joined: Wed Dec 21, 2016 7:40 pm

Re: ILI9341 not working

Postby loboris » Mon Nov 27, 2017 4:56 pm

@Zwegogo

I have now changed all conflicting names, and using SD Card in spi mode now works with TFT library.

Example is added to tft_demo.c, to run with SD Card test uncomment the code block from line 1116 to 1239 and line 1245.

Here is the example log:

Code: Select all

I (383) cpu_start: Pro cpu start user code
I (177) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.

=======================================================
===== Test using SD Card in SPI mode              =====
===== SD Card uses the same gpio's as TFT display =====
=======================================================

I (217) SDCard test: Initializing SD card
I (221) SDCard test: Using SPI peripheral
I (227) gpio: GPIO[14]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 
Name: SL08G
Type: SDHC/SDXC
Speed: default speed
Size: 7580MB
CSD: ver=1, sector_size=512, capacity=15523840 read_bl_len=9
SCR: sd_spec=2, bus_width=5
I (317) SDCard test: Opening file
I (336) SDCard test: File written
I (346) SDCard test: Renaming file
I (352) SDCard test: Reading file
I (354) SDCard test: Read from file: 'Hello SL08G!'
I (355) SDCard test: Card unmounted
===== SD Card test end ================================


==============================
TFT display DEMO, LoBo 11/2017
==============================
Pins used: miso=19, mosi=18, sck=5, cs=15
 Touch CS: 32
==============================

SPI: display device added to spi bus (1)
SPI: attached display device, speed=8000000
SPI: bus uses native pins: false
SPI: touch screen device added to spi bus (1)
SPI: attached TS device, speed=1000000
SPI: display init...
OK
STMPE touch initialized, ver: 0811 - 03
SPI: Max rd speed = 1000000
SPI: Changed speed to 26666666

---------------------
Graphics demo started
---------------------
I (1985) [TFT Demo]: Time is not set yet. Connecting to WiFi and getting time over NTP.
I (1997) wifi: wifi firmware version: 708a055
I (1997) wifi: config NVS flash: enabled
I (1997) wifi: config nano formating: disabled
I (1998) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE
I (2007) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE
I (2028) wifi: Init dynamic tx buffer num: 32
I (2029) wifi: Init data frame dynamic rx buffer num: 32
I (2029) wifi: Init management frame dynamic rx buffer num: 32
I (2033) wifi: wifi driver task: 3ffc5558, prio:23, stack:4096
I (2038) wifi: Init static rx buffer num: 10
I (2042) wifi: Init dynamic rx buffer num: 32
I (2046) wifi: wifi power manager task: 0x3ffca198 prio: 21 stack: 2560
I (2053) [TFT Demo]: Setting WiFi configuration SSID LoBoInternet...
I (2086) phy: phy_version: 366.0, ba9923d, Oct 31 2017, 18:06:17, 0, 0
I (2087) wifi: mode : sta (30:ae:a4:0c:f3:ac)
I (2208) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
I (2866) wifi: state: init -> auth (b0)
I (2869) wifi: state: auth -> assoc (0)
I (2876) wifi: state: assoc -> run (10)
I (2908) wifi: connected with LoBoInternet, channel 1
I (4996) event: sta ip: 192.168.0.19, mask: 255.255.255.0, gw: 192.168.0.1
I (4997) [TFT Demo]: Initializing SNTP
I (5501) [TFT Demo]: System time is set.
I (5501) wifi: state: run -> init (0)
I (5502) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
I (5513) wifi: flush txq
I (5513) wifi: stop sw txq
I (5513) wifi: lmac stop hw txq
E (5513) wifi: esp_wifi_connect 836 wifi not start


I (7611) [SPIFFS]: Registering SPIFFS file system
I (7611) [SPIFFS]: Mounting SPIFFS files system
I (7611) [SPIFFS]: Start address: 0x280000; Size 1024 KB
I (7617) [SPIFFS]:   Work buffer: 2048 B
I (7621) [SPIFFS]:    FDS buffer: 384 B
I (7626) [SPIFFS]:    Cache size: 2048 B
I (7668) [SPIFFS]: Mounted

==========================================
Display: ILI9341: PORTRAIT 240,320 Color

Zwegogo
Posts: 7
Joined: Wed Oct 25, 2017 2:51 pm

Re: ILI9341 not working

Postby Zwegogo » Tue Nov 28, 2017 11:18 am

@loboris

Hi Loboris,

Thanks for adding the SD card example to the tft example! I have tried and the tft.example works.
When i try to load one of the test images from the sd card i get the following errors.

Display: ILI9341: PORTRAIT 240,320 Color

E (8361) sdspi_host: data CRC failed, got=0xa17f expected=0xffff
I (8361) sdspi_host: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
E (8364) sdspi_host: sdspi_host_start_command: cmd=17 error=0x109
E (8370) sdmmc_cmd: sdmmc_read_sectors_dma: sdmmc_send_cmd returned 0x109
E (8378) diskio_sdmmc: sdmmc_read_blocks failed (265)
E (8950) sdspi_host: data CRC failed, got=0xa17f expected=0xffff
I (8950) sdspi_host: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
E (8953) sdspi_host: sdspi_host_start_command: cmd=17 error=0x109
E (8959) sdmmc_cmd: sdmmc_read_sectors_dma: sdmmc_send_cmd returned 0x109
E (8967) diskio_sdmmc: sdmmc_read_blocks failed (265)


The SD_card test is succesful and the SD_card is succesfully mounted. Were you able to load the test images from your SD card in your setup?

Regards,

Stefan

User avatar
loboris
Posts: 497
Joined: Wed Dec 21, 2016 7:40 pm

Re: ILI9341 not working

Postby loboris » Fri Dec 01, 2017 11:06 am

@Zwegogo
It looks like SD card in SPI mode and spi_master (on which this library is based) cannot work at the same time.
I'll try to find the solution, for now I've opened the issue at esp-idf GitHub.

Zwegogo
Posts: 7
Joined: Wed Oct 25, 2017 2:51 pm

Re: ILI9341 not working

Postby Zwegogo » Fri Dec 01, 2017 12:07 pm

@loboris

Hi, good that you ran into the same problem/errors, that gives a focus to find a solution. What would be your time estimate to solving this puzzle?

Regards,

Stefan

Who is online

Users browsing this forum: No registered users and 1 guest