0
\$\begingroup\$

I am currently working with SIMCom's SIM808 2G+GPS modem. In my setup, an MCU communicates with the modem over UART to save some data in the SIM808's filesystem. As the modem's built-in memory is < 100KB, I want to add an SD card to the filesystem and save data to it through AT commands passed between the MCU and SIM808.

The problem is, I am unable to access the SD card from the SIM808. According to SIMCom's docs (links below), the AT command AT+FSMEM should return the drive letters and free memory count of both the internal memory (C:) and the SD card. However, in my case it always returns only the "C:\" and its free memory count. I am aware that the SD card functionality has to be enabled in the modem, thought I don't seem to grasp the practical difference between AT+SDMODE=1 and AT+SD2PCM=0. The SDMODE command works fine on my setup, the parameter is saved and remains set after power cycling, but it still doesn't change anything in the filesystem. In contrast, the SD2PCM command is never read correctly by the modem and always gives a cheerful ERROR, no matter if I want to set the param or just read it. I don't know if both these commands have to work in order for the SD functionality to be enabled, as my sources give contradictory or incomplete information. All operations on the files stored in SIM808's internal memory work flawlessly. It might be relevant to mention that SIMCom lists both aforementioned commands as enabled only on certain devices, but then lists SIM808 explicitly for both of them.

My setup is a custom board so there is a risk of improper connections, but I followed the reference circuits in SIMCom's Hardware Design doc for this component and all other features work properly. An improvised setup made with modified off-the-shelf components (Arduino, Waveshare SIM808 Shield and a SD card breakout board) shows identical symptoms. My scope shows zero activity on any of the SD card's pins (obviously except powering the VCC up from VEXT when the modem wakes up), so this brings my attention to the modem's inner workings. I have tried the following firmware versions: 1418B03SIM808M32_BT_EAT, 1418B04SIM808M32, 1308B02SIM808M32.

I have followed the AT commands manual: http://simcom.ee/documents/SIM808/SIM800%20Series_AT%20Command%20Manual_V1.09.pdf An app note about the filesystem-related ATs: http://simcom.ee/documents/SIM800x/SIM800%20Series_FS_Application%20Note_V1.03.pdf

And the Hardware Design doc: https://cdn-shop.adafruit.com/datasheets/SIM808_Hardware+Design_V1.00.pdf

Also I have been getting firmware packages from this directory: http://simcom.ee/documents/?dir=SIM808

I also read up about a relevant Arduino library, whose authors sell a product with a working setup like this and also posted info on enabling the SD card: https://elementztechblog.wordpress.com/2016/12/20/interfacing-sd-card-with-e-tracker/

https://elementztechblog.wordpress.com/2016/07/30/interfacing-sd-card-with-sim800-gsm-modem/

I really hope I'm missing something obvious, but I've no idea how to proceed from here. It's even more puzzling to me as I've been working with these components for a while and even if serious problems arose, digging in the docs always brought solutions. If some essential info was left out, please point it out and I'll be happy to elaborate.

\$\endgroup\$
  • \$\begingroup\$ the app note mentions AT+FSDRIVE=1 ... read page 5 of the app note \$\endgroup\$ – jsotola Jan 20 '18 at 1:08
  • \$\begingroup\$ AT+FSDRIVE=2 gives "D:\" as expected, but it would do the same on a bare modem setup with no SD card attached. As explained on p.10, that command only allows you to read the drive letters. \$\endgroup\$ – Karzon Jan 20 '18 at 1:28
  • \$\begingroup\$ did you read page 5? .. it says As PCM interface and SD card interface is multiplexing function, shown as below table. At the first time to use SD card, customer must execute “AT+SD2PCM=0” and “AT&W”, then reboot the module by AT command or PWRKEY pin. \$\endgroup\$ – jsotola Jan 20 '18 at 4:59
  • \$\begingroup\$ I have - please refer to paragraph 2 of my question. SD2PCM is never interpreted correctly by the modem. \$\endgroup\$ – Karzon Jan 20 '18 at 11:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.