In TinyGsmSMS.tpp, in sendSMS_UTF8_begin() both required commands exist
AT+CSCS="HEX"
AT+CSMP=17,167,0,8
but in sendSMSImpl() only one exists
AT+CSCS="GSM"
AT+CSMP=17,167,0,0 is missing.
That last number is the Data Coding Scheme (0=GSM, 8=UCS-2)
This means that after calling modem.sendSMS_UTF16() to send a UCS-2 SMS all calls to modem.sendSMS() (to send a GSM SMS) will FAIL when the message contains more than 70 chars. I suppose that due to the discrepancy between AT+CSCS="GSM" and AT+CSMP=17,167,0,8 (still active from previous UCS-2 message) multipart messaging for GSM is subsequently broken (but still works for UCS-2 as is to be expected).
Until fixed in the library, the workaround is to call modem.sendAT(GF("+CSMP=17,167,0,0")); in user code before calling modem.sendSMS();
This bug should affect various -if not all modules- although I’ve only tested in on SIM800L.
In
TinyGsmSMS.tpp,insendSMS_UTF8_begin()both required commands existAT+CSCS="HEX"AT+CSMP=17,167,0,8but in sendSMSImpl() only one exists
AT+CSCS="GSM"AT+CSMP=17,167,0,0is missing.That last number is the Data Coding Scheme (0=GSM, 8=UCS-2)
This means that after calling
modem.sendSMS_UTF16()to send a UCS-2 SMS all calls tomodem.sendSMS()(to send a GSM SMS) will FAIL when the message contains more than 70 chars. I suppose that due to the discrepancy betweenAT+CSCS="GSM"andAT+CSMP=17,167,0,8(still active from previous UCS-2 message) multipart messaging for GSM is subsequently broken (but still works for UCS-2 as is to be expected).Until fixed in the library, the workaround is to call
modem.sendAT(GF("+CSMP=17,167,0,0"));in user code before callingmodem.sendSMS();This bug should affect various -if not all modules- although I’ve only tested in on SIM800L.