Xiao Round Display has extra DIP switch

I am having problems getting the SD card on my Round Display to work. I am using it with the Xiao ESP32S3 Sense. I have cut the JP3 trace on the ESP32S3 Expansion (camera) board. I still get a Card not mounted message with the SD card inserted on the Round display board. I noticed that there is a 2 position DIP switch on this board that is not on the board in the documentation. The switch is labeled ON and KE. Both switches are in the down position. I can’t find this switch on the schematic. Can you provide me information as to how this should be set and also an updated schematic.

Hi there, The KE dip Switch, KE Button & GPIO


https://wiki.seeedstudio.com/seeedstudio_round_display_usage#ke-button–gpio

HTH
GL :slight_smile:
PJ

Hello, it needs to be explained that we have only added this switch to the new batch of screens in May to meet the needs of some users who have additional use of the GPIO pins, this switch is used to control the screen brightness and battery voltage measurement and is not related to the use of the SD card. As per your description, you have disconnected J3, I would also like to ask you again to confirm that three places are ready, otherwise the SD card is still not working properly:

  1. Is the SD card plugged into the Round Display for use?
  2. Has the SD card been formatted to FAT32 format?
  3. Has the screen been initialised in the program before initialising the SD card?

Camera Usage in Seeed Studio XIAO ESP32S3 Sense | Seeed Studio Wiki -cut-the-j3-pin-which-sd-card-slot-can-be-used

  1. The SD card is plugged in to the Round Display.

  2. The SD card is formatted FAT32.

  3. I am using the example round_display_take_picture.ino at this link: SeeedStudio-XIAO-ESP32S3-Sense-camera/round_display_take_picture at main · limengdu/SeeedStudio-XIAO-ESP32S3-Sense-camera · GitHub - the display is initialized before the SD card.
    // Display initialization
    tft.init();
    tft.setRotation(1);
    tft.fillScreen(TFT_WHITE);

    // Initialize SD card
    if(!SD.begin(D2)){
    Serial.println(“Card Mount Failed”);
    return;
    }

I checked with a DMM to verify that the J3 is disconnected, but I was surprised to find that the SD card still works if the ESP32S3 is not mounted on the Round Display. It fails if mounted on the Round Display (regardless of whether the SD card is plugged into the ESP32S3 or the Round Display.

When the SD card works on the ESP32S3 (without the Round Display) I am using the take_photos.ino program from that same github repo. I noticed that the SD card initializes with pin 21 instead of pin D2
// Initialize SD card
if(!SD.begin(21)){
Serial.println(“Card Mount Failed”);
return;
}

Should the example that I am using work? Why is the SD card pin different if I am using the ESP32S3 without the Round Display?

The Serial monitor output from the round_display_take_picture.ino program
ESP-ROM:esp32s3-20210327
Camera ready
Card Mount Failed

About your doubts, we have an explanation here
Pin Multiplexing with Seeed Studio XIAO ESP32S3 (Sense) | Seeed Studio Wiki

If it is as your description says, then there should be no problem using the SD card function on the Round Display. Do you have a multimeter or voltmeter? Is it possible to measure what the voltages of D2, D8 and D9 are after uploading the program?

With the program uploaded and run to the point that the SD card mount fails.

D2 3.3V
D8 1.0V
D9 3.3V

Sorry it’s not D8 but D10, can you use this code and measure the voltage again without the circular screen connected? So far it looks like the voltage data you gave is normal.

I measured the voltages again with the SD card plugged into the Round Display.
D2 3.3V
D8 0.4V
D10 3.3V

If I measure without the Round Display (no SD card)
D2 1.8V
D8 0.4V
D10 3.3V

If I plug the SD card into the camera board - the SD card fails to mount
D2 3.3V
D8 0.4V
D10 3.3V

As I mentioned before - take_photos.ino does work if the the Xiao is not plugged into the Round Display, but fails to mount the SD card if it is. round_display_take_picture.ino won’t work in either case.

Are you running these same programs? What versions of the libraries are you using?