Arduino - ESP32 - SD Card - Flipper Zero: voltage issue - Page 1
Forum section: electronics / beginners

author: Bicurico
author_rank: Super Contributor
timestamp: February 05, 2024, 02:31:57 pm
content: Hello,I have a Flipper Zero and a Multiboard by DrB0rk. This board combines an ESP32, a NRF24 and a SD card reader.The card reader is connected to the ESP32 by the usual pins. The board is powered by the Flipper's 3.3V pin.Everything works, except that the Marauder firmware won't recognize the SD card, when the Multiboard is connected to the Flipper.However, if I connect the Multiboard to a USB-RS232 interface (3.3V) and open a serial monitor (SmarTTY), the SD card is recognized and works.After some research back and forth, I found that the problem is most likely to be due to the fact that the Flipper is actually providing 3.25V, while the USB RS232 interface provides 3.42V. This means that using the Flipper, the SD card receives less than 3.3V and 99% of the SD cards won't work.Now my question: how could I fix this? There is a 5V pin on the Flipper. Could I cut the 3.3V pin and solder a wire from the 5V, passing to a 5V to 3.3V converter? What IC would you recommend?Sum-up: how to convert 5V into 3.3V in the least intrusive way (to not botch up the board)? Any inconvenience in doing this?

author: Peabody
author_rank: Super Contributor
timestamp: February 05, 2024, 03:45:53 pm
content: I don't know about the Flipper, etc., but I would be very surprised if an SD card did not work at 3.25V. The range I see quoted is 2.7 - 3.6V.

author: Bicurico
author_rank: Super Contributor
timestamp: February 05, 2024, 04:46:56 pm
content: I thought so, too.But how would you explain this:I have a simple PL2303 USB-RS232 interface. I connect 4 pins: 3.3V, GND, TX and RX to the "Multiboard", which is acting as a standard ESP32 SOLO with a SD reader soldered to it (using CS, CLK, MISO, MOSI, 3v3 and GND). I open a terminal program (SmarTTY) and I can see the ESP32 boot to Marauder and the SD is recognized, as well as the files it is looking for.Now I take the exact same "Multiboard", connect it manually using the same wires I used on the test before and connect them to 3.3V, GND, TX and RX of the Flipper (it offers a series of pins, including these). On the Flipper, I activate an app, that just forwards the TX/RX communication to the same terminal program (SmarTTY). Now the ESP32 boots just like before, but it fails to mount the SD.Everything is the same, the Flipper is just powering up the ESP32 and provinding a RS232 to USB interface functionality, which works, since I can see the whole CLI messages of the Marauder software running on the ESP32.The only difference is that the PL2303 offers 3.4V, while the Flipper offers 3.2V. I cannot find any other difference.

author: Bicurico
author_rank: Super Contributor
timestamp: February 05, 2024, 04:54:54 pm
content: The last post here is an interesting read:https://github.com/espressif/arduino-esp32/issues/7707

author: Peabody
author_rank: Super Contributor
timestamp: February 05, 2024, 05:18:43 pm
content: I don't have any experience with your hardware or software, but from your description it sounds like what's different is the Flipper and the app running on the Flipper, neither of which is present in the case that works. but I guess you will have to arrange for the full 3.3V and see if that makes any difference. Are you getting any sagging on the card's power pin when the card is actually supposed to be doing something, such as during initialization?Another possibility would be to insert a schottky diode into the card's power line in the original case to produce a voltage drop, and see if that makes it stop working. If it still works at 3V or less, then low voltage isn't the cause of the problem - provided it isn't sagging more during activity.Edit: One other thing to check is to make sure the card has enough time to boot properly before you begin trying to initialize it. Some cards can take up to 100ms.