Close

Handling the SD card and fonts

A project log for Music32-V2 - Portable music player

Recreating the ipod with Bluetooth and an SD card slot, without losing the headphone jack

nicNic 10/14/2023 at 06:274 Comments

Firstly, I've been trying out new fonts in order to support new characters and languages. Here is an example of a google font that supports Japanese characters. 

Since the fonts are much too big to reasonably store on the flash they must be stored on the SD card. The flash still carries a basic antialiased latin alphabet font which is used if the font file cannot be found on the SD card or there is no SD card present.  Also, now if there is no SD card present on boot the homescreen will display a "No SD card" message momentarily every time you enter the homescreen.

Ive also been experimenting with wireless file transfer with the excellent code from 
G6EJD (https://github.com/G6EJD/ESP32-ESP8266-File-Download-Upload-Delete-Stream-and-Directory/tree/master). My test reveals that this system can transfer files at a speed of about 0.5 megabits per second. This is a very low speed for file transfers especially when you get into bigger music files. This system as it is would take an hour to send across 60 4 minute long compressed music files. I think i'm starting push the speeds of 1-bit SPI mode. An obvious solution to this is to go into 4-bit mode but I am not really comfortable on the software side. Even if I was im starting to dislike the wireless approach, having an sd card reader built into the board costs about a dollar in parts and means I can sidestep all wireless and 4-bit business. Simple usb mass storage drag and drop is really what I want, so I might as well built what I actually want instead of trying to make the cleanest most perfect solution. Also the wireless transfer is pretty inconvenient even if it was was faster and it only works when you have access to wifi.

That makes the plan for the V3 as follows:

-Add SD card reader chip with USB switch to switch between programming and SD card

-When using card reader set the SPI pins as high impedance on ESP32

-No wireless file transfer

Id love to hear some opinions 

Discussions

GD wrote 10/16/2023 at 12:28 point

Hello. Do you really need additional chip for card reader?

ESP32S3 allows you to be as mass storage (afaik) - https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-reference/peripherals/usb_device.html

  Are you sure? yes | no

Nic wrote 10/18/2023 at 04:43 point

Yes, as I will be switching to the mainline of ESP32 chips which do not support internal usb. I also haven't been able to get the usb mass storage working with an SD card on the S3 anyway.

  Are you sure? yes | no

GD wrote 10/18/2023 at 10:24 point

I see.  Have you thought about SOC such as ESP32-A1S? ESP32-A1S is a Wi-Fi+BT module with integrated ES8388 codec chip.

  Are you sure? yes | no

Nic wrote 10/19/2023 at 01:31 point

Not available on lcsc unfortunately and seems to be discontinued. If I chose to replace the ES8327 with the ES8388 I would need to handle the microphones since it only takes line input. If the module was available id probably run the costs of each option. Thanks for the sugestion

  Are you sure? yes | no