WROVER Dev Kit 4.1 LCD and SD Not Working
WROVER Dev Kit 4.1 LCD and SD Not Working
I am trying to get the WROVER Dev Kit LCD and SD to work together. I removed R167, and I can now show results in the LCD even if an SD Card is inserted; however, when I try to initialize the SD card it fails to mount (see error below). If I initialize ONLY the SD, then the SD works fine. Is there any way to use the SD Card and LCD?
I basically the LCD code on github (https://github.com/espressif/WROVER_KIT_LCD), and I added SPI and SD initialization after.
Error
19:49:03.595 -> [W][sd_diskio.cpp:471] ff_sd_initialize(): GO_IDLE_STATE failed
19:49:03.595 -> [E][sd_diskio.cpp:739] sdcard_mount(): f_mount failed 0x(3)
Code
// init code for LCD
SPI.begin(14, 2, 15, 13);
if (!SD.begin(13)) {
ESP_LOGE(LOG_TAG, "<< Failed. LocalStorage is not available.");
}
I basically the LCD code on github (https://github.com/espressif/WROVER_KIT_LCD), and I added SPI and SD initialization after.
Error
19:49:03.595 -> [W][sd_diskio.cpp:471] ff_sd_initialize(): GO_IDLE_STATE failed
19:49:03.595 -> [E][sd_diskio.cpp:739] sdcard_mount(): f_mount failed 0x(3)
Code
// init code for LCD
SPI.begin(14, 2, 15, 13);
if (!SD.begin(13)) {
ESP_LOGE(LOG_TAG, "<< Failed. LocalStorage is not available.");
}
Re: WROVER Dev Kit 4.1 LCD and SD Not Working
I have been trying for weeks to get just the SD card to work on my V4.1 DEV KIT. I haven't removed the resistor that prevents the LCD from working with the SD card inserted. I Don't care about that right now. I just want the SD card to work. The presence of the SD card seems to be detected because I get a different error when the card is missing.
I am trying to run the use the SDcardtest example and am using the Arduino IDE with the board selected as "ESP WROVER Module".
Here are my test results:
ets Jun 8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x1e (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1100
load:0x40078000,len:10088
load:0x40080400,len:6380
entry 0x400806a4
[D][esp32-hal-psram.c:47] psramInit(): PSRAM enabled
[SDcardTestMMC.ino:59] setup(): Initializing SD card
[SDcardTestMMC.ino:61] setup(): Using SDMMC peripheral
Results with card NOT inserted:
E (1442) sdmmc_common: sdmmc_init_ocr: send_op_cond (1) returned 0x107
[E][SDcardTestMMC.ino:105] setup():
Failed to initialize the card (ESP_ERR_TIMEOUT).
Make sure SD card lines have pull-up resistors in place.
Results with card inserted:
E (1570) sdmmc_sd: sdmmc_init_sd_scr: send_scr (1) returned 0x109
[E][SDcardTestMMC.ino:105] setup():
Failed to initialize the card (ESP_ERR_INVALID_CRC).
Make sure SD card lines have pull-up resistors in place.
This is very frustrating..
I am trying to run the use the SDcardtest example and am using the Arduino IDE with the board selected as "ESP WROVER Module".
Here are my test results:
ets Jun 8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x1e (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1100
load:0x40078000,len:10088
load:0x40080400,len:6380
entry 0x400806a4
[D][esp32-hal-psram.c:47] psramInit(): PSRAM enabled
[SDcardTestMMC.ino:59] setup(): Initializing SD card
[SDcardTestMMC.ino:61] setup(): Using SDMMC peripheral
Results with card NOT inserted:
E (1442) sdmmc_common: sdmmc_init_ocr: send_op_cond (1) returned 0x107
[E][SDcardTestMMC.ino:105] setup():
Failed to initialize the card (ESP_ERR_TIMEOUT).
Make sure SD card lines have pull-up resistors in place.
Results with card inserted:
E (1570) sdmmc_sd: sdmmc_init_sd_scr: send_scr (1) returned 0x109
[E][SDcardTestMMC.ino:105] setup():
Failed to initialize the card (ESP_ERR_INVALID_CRC).
Make sure SD card lines have pull-up resistors in place.
This is very frustrating..
- Segmentation Fault
- Posts: 22
- Joined: Sat Apr 04, 2020 1:49 am
Re: WROVER Dev Kit 4.1 LCD and SD Not Working
czuvich wrote: ↑Thu Jan 17, 2019 1:59 amI am trying to get the WROVER Dev Kit LCD and SD to work together. I removed R167, and I can now show results in the LCD even if an SD Card is inserted; however, when I try to initialize the SD card it fails to mount (see error below). If I initialize ONLY the SD, then the SD works fine. Is there any way to use the SD Card and LCD?
I basically the LCD code on github (https://github.com/espressif/WROVER_KIT_LCD), and I added SPI and SD initialization after.
Error
19:49:03.595 -> [W][sd_diskio.cpp:471] ff_sd_initialize(): GO_IDLE_STATE failed
19:49:03.595 -> [E][sd_diskio.cpp:739] sdcard_mount(): f_mount failed 0x(3)
Code
// init code for LCD
SPI.begin(14, 2, 15, 13);
if (!SD.begin(13)) {
ESP_LOGE(LOG_TAG, "<< Failed. LocalStorage is not available.");
}
I have the same problem. Did you find a solution for it?
Where did u see thatR167 should be removed?
- ESP_Roland
- Posts: 265
- Joined: Tue Oct 09, 2018 10:28 am
Re: WROVER Dev Kit 4.1 LCD and SD Not Working
I have the same board but I cannot reproduce the issue. Can you please try the following example if it is not the "SDcardtest" example you are mentioning?
https://github.com/espressif/esp-idf/tr ... ge/sd_card
What IDF version are you using?
https://github.com/espressif/esp-idf/tr ... ge/sd_card
What IDF version are you using?
- Segmentation Fault
- Posts: 22
- Joined: Sat Apr 04, 2020 1:49 am
Re: WROVER Dev Kit 4.1 LCD and SD Not Working
I am using Arduino IDE.
I could make a sample, would that be of help?
I could make a sample, would that be of help?
- ESP_Roland
- Posts: 265
- Joined: Tue Oct 09, 2018 10:28 am
Re: WROVER Dev Kit 4.1 LCD and SD Not Working
Thanks Segmentation Fault. Yes, any code could help reproduce the issue.
But firstly, if you just could try the given example with pure IDF then we could eliminate the possibility that the board with SD is not working and have the Arduino people look at it.
But firstly, if you just could try the given example with pure IDF then we could eliminate the possibility that the board with SD is not working and have the Arduino people look at it.
- Segmentation Fault
- Posts: 22
- Joined: Sat Apr 04, 2020 1:49 am
Re: WROVER Dev Kit 4.1 LCD and SD Not Working
IDE: Arduino IDE 1.8.12
Hardware: ESP Wrover Kit v4.1.
Code: Developed from pieces from my main application for exhibition of the issue I am facing.
This code has been tested and confirms the issue on my board:
The SD card works fine with this code, the LCD outputs white color.
To make the LCD work must a) remove lines 59-109 along with b) removing the SD card.
Unfortunately, I am not that experienced with esp-idf yet, but I will try the "sd_card" example and give you an update on that as well
Hardware: ESP Wrover Kit v4.1.
Code: Developed from pieces from my main application for exhibition of the issue I am facing.
This code has been tested and confirms the issue on my board:
Code: Select all
#include <esp_task_wdt.h>
#include <WiFiClient.h>
#include <WiFi.h>
#include <esp_wifi.h>
#include <ESP32Ping.h>
#include <HTTPClient.h>
#include <WebServer.h>
#include <ESPmDNS.h>
#define FS_NO_GLOBALS
#include <SdFat.h>
#include <sdios.h>
#include <WROVER_KIT_LCD.h>
#include <FreeStack.h>
#include <SPI.h>
#include <SD.h>
int SERIAL_BAUD_RATE = 1500000;
#define SD_CS 13
#define RGB_LED_RED 0
#define RGB_LED_GREEN 2
#define RGB_LED_BLUE 4
#define USE_SDIO 0
#if USE_SDIO
// Use faster SdioCardEX
SdFatSdioEX sd;
#else // USE_SDIO
SdFat sd;
#endif // USE_SDIO
// global for card size
uint32_t cardSize;
// global for card erase size
uint32_t eraseSize;
// store error strings in flash
#define sdErrorMsg(msg) sd.errorPrint(F(msg));
TaskHandle_t Task1;
SemaphoreHandle_t baton;
WROVER_KIT_LCD tft; //object responsible for display control
void setup()
{
// SET LEDs
pinMode(RGB_LED_BLUE, OUTPUT);
digitalWrite(RGB_LED_BLUE, LOW);
pinMode(RGB_LED_RED, OUTPUT);
digitalWrite(RGB_LED_RED, LOW);
// SET Serial
Serial.begin(SERIAL_BAUD_RATE);
// Set SD
SPI.begin(14, 2, 15, SD_CS); // The bultin SD card SPI for WROVER
// Initialize SD
Serial.print("Initializing the SD card... ");
if (SD.begin(SD_CS))
{
Serial.println("OK!");
// check for index.htm file
Serial.print("Checking for index.htm... ");
if (SD.exists("/index.htm"))
{
Serial.println("OK!");
}
else
{
Serial.println("Failed!");
}
}
else
{
Serial.println("Failed!");
}
// CHeck sd fat
Serial.println("Initialising sd FAT:");
uint32_t t = millis();
#if USE_SDIO
if (!sd.cardBegin(SD_CS, SD_SCK_MHZ(10)))
{
Serial.print("cardBegin failed in #if USE_SDIO");
sdErrorMsg("\ncardBegin failed");
}
#else // USE_SDIO
if (!sd.cardBegin(SD_CS, SD_SCK_MHZ(10)))
{
Serial.print("cardBegin failed in #else (of #if USE_SDIO)");
sdErrorMsg("cardBegin failed");
}
else
{
if (!sd.fsBegin())
{
sdErrorMsg("\nFile System initialization failed.\n");
}
}
#endif // USE_SDIO
t = millis() - t;
Serial.print("init time: ");
Serial.print(t); Serial.println("ms");
// Set LCD
tft.begin();
tft.setRotation(1); // rotate to landscape
// Write on LCD
tft.fillScreen(WROVER_BLACK); // paints the entire canvas
tft.setCursor(0, 0); // position the cursor at the origin
tft.setTextColor(WROVER_WHITE);
tft.setTextSize(1); // font size - 1
tft.println("Chip: ESP32");
tft.println("Board: ESP-WROVER-KIT V4.1");
uint64_t chipid = ESP.getEfuseMac();
tft.printf("Chip ID = %04X", (uint16_t)(chipid>>32));//print High 2 bytes
tft.printf("%08X",(uint32_t)chipid);//print Low 4bytes.
tft.println();
tft.print("Chip Size: "); tft.println(ESP.getFlashChipSize());
tft.print("Chip Speed: "); tft.println(ESP.getFlashChipSpeed());
tft.print("Chip Mode: "); tft.println(ESP.getFlashChipMode());
tft.print("Running setup and loop on core: "); tft.println(xPortGetCoreID());
// Core 0
baton = xSemaphoreCreateMutex();
xTaskCreatePinnedToCore( _blink, "Task1", 10000, NULL, 0, &Task1, 0);
}
void loop ()
{
}
int ledState = HIGH;
unsigned long previousMillis = 0;
const unsigned long interval_HIGH = 200;
const unsigned long interval_LOW = 1000;
byte ON = HIGH;
byte OFF = LOW;
bool blink_bool = true;
void _blink(void * parameter)
{
Serial.println("Disabling watchdog on core: 0");
disableCore0WDT();
Serial.println("Starting loop on core: 0");
while(true)
{
if (xSemaphoreTake( baton, portMAX_DELAY ) == pdTRUE)
{
// get blink_bool somehow
xSemaphoreGive( baton );
}
if (blink_bool)
{
unsigned long currentMillis = millis();
if ((ledState == ON) && (currentMillis - previousMillis >= interval_HIGH))
{
ledState = OFF;
digitalWrite(RGB_LED_BLUE, ledState);
previousMillis = millis();
}
else if ((ledState == OFF) && (currentMillis - previousMillis >= interval_LOW))
{
ledState = ON;
digitalWrite(RGB_LED_BLUE, ledState);
previousMillis = millis();
}
}
}
}
To make the LCD work must a) remove lines 59-109 along with b) removing the SD card.
Unfortunately, I am not that experienced with esp-idf yet, but I will try the "sd_card" example and give you an update on that as well
- ESP_Roland
- Posts: 265
- Joined: Tue Oct 09, 2018 10:28 am
Re: WROVER Dev Kit 4.1 LCD and SD Not Working
Thanks Segmentation Fault.
In the meantime, I moved the topic to the Arduino sub-forum because I think this will be an Arduino issue.
In the meantime, I moved the topic to the Arduino sub-forum because I think this will be an Arduino issue.
Re: WROVER Dev Kit 4.1 LCD and SD Not Working
Hello ESP_Roland,
I read your topic concerning the SD and display issue on a Wrover board.
I also have this kind of problems using a ESP-wroom-32 board from doit dev.kit v1.
Same conditions arduino ide when testing the SD apart its ok. testing the TFT apart also ok.
Using both in one script display will stay blank and the SD gives no responce.
See my topic from Search
Advanced search
1 post • Page 1 of 1
ilioss
Posts: 12
Joined: Tue Sep 05, 2017 3:43 pm
Contact: Contact ilioss
1.8TFT SPI 128x160 module SD-card and Display will not work together
Postby ilioss » Sun Apr 19, 2020 11:08 am
Will you be please so kind to send the arduino forum link?
Many thanks in advance.
Regards,
ilioSS
I read your topic concerning the SD and display issue on a Wrover board.
I also have this kind of problems using a ESP-wroom-32 board from doit dev.kit v1.
Same conditions arduino ide when testing the SD apart its ok. testing the TFT apart also ok.
Using both in one script display will stay blank and the SD gives no responce.
See my topic from Search
Advanced search
1 post • Page 1 of 1
ilioss
Posts: 12
Joined: Tue Sep 05, 2017 3:43 pm
Contact: Contact ilioss
1.8TFT SPI 128x160 module SD-card and Display will not work together
Postby ilioss » Sun Apr 19, 2020 11:08 am
Will you be please so kind to send the arduino forum link?
Many thanks in advance.
Regards,
ilioSS
- Segmentation Fault
- Posts: 22
- Joined: Sat Apr 04, 2020 1:49 am
Re: WROVER Dev Kit 4.1 LCD and SD Not Working
Everything fine with the sd example
Is someone looking into this?
Code: Select all
ets Jun 8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x1e (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:6860
load:0x40078000,len:14076
ho 0 tail 12 room 4
load:0x40080400,len:4304
entry 0x400806e8
I (71) boot: Chip Revision: 1
I (72) boot_comm: chip revision: 1, min. bootloader chip revision: 0
I (41) boot: ESP-IDF v4.0-dirty 2nd stage bootloader
I (41) boot: compile time 00:21:57
I (41) boot: Enabling RNG early entropy source...
I (46) boot: SPI Speed : 40MHz
I (50) boot: SPI Mode : DIO
I (54) boot: SPI Flash Size : 2MB
I (58) boot: Partition Table:
I (62) boot: ## Label Usage Type ST Offset Length
I (69) boot: 0 nvs WiFi data 01 02 00009000 00006000
I (77) boot: 1 phy_init RF data 01 01 0000f000 00001000
I (84) boot: 2 factory factory app 00 00 00010000 00100000
I (92) boot: End of partition table
I (96) boot_comm: chip revision: 1, min. application chip revision: 0
I (103) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x09404 ( 37892) map
I (126) esp_image: segment 1: paddr=0x0001942c vaddr=0x3ffb0000 size=0x02114 ( 8468) load
I (129) esp_image: segment 2: paddr=0x0001b548 vaddr=0x40080000 size=0x00400 ( 1024) load
I (133) esp_image: segment 3: paddr=0x0001b950 vaddr=0x40080400 size=0x046c0 ( 18112) load
I (149) esp_image: segment 4: paddr=0x00020018 vaddr=0x400d0018 size=0x1c58c (116108) map
I (192) esp_image: segment 5: paddr=0x0003c5ac vaddr=0x40084ac0 size=0x05be4 ( 23524) load
I (209) boot: Loaded app from partition at offset 0x10000
I (209) boot: Disabling RNG early entropy source...
I (209) cpu_start: Pro cpu up.
I (213) cpu_start: Application information:
I (218) cpu_start: Project name: sd_card
I (222) cpu_start: App version: 1
I (227) cpu_start: Compile time: Apr 26 2020 00:21:32
I (233) cpu_start: ELF file SHA256: 528eb3aafec05ca9...
I (239) cpu_start: ESP-IDF: v4.0-dirty
I (244) cpu_start: Starting app cpu, entry point is 0x40081038
I (0) cpu_start: App cpu up.
I (255) heap_init: Initializing. RAM available for dynamic allocation:
I (262) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (268) heap_init: At 3FFB3210 len 0002CDF0 (179 KiB): DRAM
I (274) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (280) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (287) heap_init: At 4008A6A4 len 0001595C (86 KiB): IRAM
I (293) cpu_start: Pro cpu start user code
I (311) spi_flash: detected chip: generic
I (311) spi_flash: flash io: dio
W (312) spi_flash: Detected size(4096k) larger than the size in the binary image header(2048k). Using the size in the binary image header.
I (322) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (333) example: Initializing SD card
I (333) example: Using SDMMC peripheral
I (343) gpio: GPIO[13]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
Name: SC16G
Type: SDHC/SDXC
Speed: 20 MHz
Size: 15193MB
I (413) example: Opening file
I (423) example: File written
I (423) example: Renaming file
I (423) example: Reading file
I (423) example: Read from file: 'Hello SC16G!'
I (423) example: Card unmounted
Is someone looking into this?
Who is online
Users browsing this forum: No registered users and 56 guests