Caller I'd issues

I have been having issues with caller id.

The phone does not display the phone number of the caller.

It just displays AT modem commands.

Is the Cell module configuration wrong?

How can I fix this?

In debug mode the the phone module seems to be functioning fine and I recieve the following output on the terminal:

ringing
23
SD inserted:1
Ringtone exists: /Ringtones/Funky & fresh.wav1
call id: 1
PLAYED
Interrupt: 1
ENDED
Direction of call: 0


+CLCC: 1,1,6,0,0,"12345678912",129,""

The Phone number is returned by the module. (I replaced my phone number with 12345678912)

So the problem seems to be the phone isn’t parsing it correctly.

I sent the ATI command to get the modules information for your reference.

ATI
SIM800 R14.18

I did notice quite a few errors returned too though:

--------------
ME ERROR: operation not allowed
AT+CSPN?
-----------------------------------
.
.
.

ME ERROR: operation not allowed
AT+CSQN?
--------------
ME ERROR: operation not allowed
AT+CCQN?
--------------
ME ERROR: operation not allowed
AT+CCAN?
--------------
ME ERROR: operation not allowed
AT+CCAL?
--------------
ME ERROR: operation not allowed
AT+CCALR
--------------
ME ERROR: operation not allowed
AT+CCALR?
--------------
ME ERROR: operation not allowed
AT+CCALR?

I will look over the source to see if I can see anything too.

I don’t know if this will help but here is the module configuration settings:

AT&V
DEFAULT PROFILE
S0: 0
S3: 13
S4: 10
S5: 8
S6: 2
S7: 60
S8: 2
S10: 15
+CRLP: 61,61,48,6
V: 1
E: 1
Q: 0
X: 4
&C: 1
&D: 1
+CLTS: 0
+CREG: 0
+CGREG: 0
+CMEE: 0
+CIURC: 1
+CFGRI: 2
+CMTE: 0
+CANT: 0,0,10
+STKPCIS: 0
+CMGF: 0
+CNMI: 2,1,0,0,0
+CSCS: "IRA"
+VTD: 1
+CALS: 1
+CHF: 0
+CAAS: 1
+CBUZZERRING: 0
+DDET: 0
+MORING: 0
+SVR: 16
+CCPD: 1
+CSNS: 0
+CSGS: 1
+CNETLIGHT: 1
+SLEDS: 64,64,64,800,3000,300
+CSDT: 0
+CSMINS: 0
+EXUNSOL: 0
+FSHEX: 0
+FSEXT: 0
+CCTURI: 0
+IPR: 0
+IFC: 0,0
+CSCLK: 0

USER PROFILE
S0: 0
S3: 13
S4: 10
S5: 8
S6: 2
S7: 60
S8: 2
S10: 15
+CRLP: 61,61,48,6
V: 1
E: 1
Q: 0
X: 4
&C: 1
&D: 1
+CLTS: 1
+CREG: 0
+CGREG: 0
+CMEE: 2
+CIURC: 1
+CFGRI: 2
+CMTE: 0
+CANT: 0,0,10
+STKPCIS: 0
+CMGF: 0
+CNMI: 1,2,0,0,0
+CSCS: "IRA"
+VTD: 1
+CALS: 1
+CHF: 0
+CAAS: 1
+CBUZZERRING: 0
+DDET: 0
+MORING: 0
+SVR: 16
+CCPD: 1
+CSNS: 0
+CSGS: 1
+CNETLIGHT: 1
+SLEDS: 64,64,64,800,3000,300
+CSDT: 0
+CSMINS: 0
+EXUNSOL: 0
+FSHEX: 0
+FSEXT: 0
+CCTURI: 0
+IPR: 9600
+IFC: 0,0
+CSCLK: 1

ACTIVE PROFILE
S0: 0
S3: 13
S4: 10
S5: 8
S6: 2
S7: 60
S8: 2
S10: 15
+CRLP: 61,61,48,6
V: 1
E: 1
Q: 0
X: 4
&C: 1
&D: 1
+CLTS: 1
+CREG: 0
+CGREG: 0
+CMEE: 2
+CIURC: 1
+CFGRI: 2
+CMTE: 0
+CANT: 0,0,10
+STKPCIS: 0
+CMGF: 0
+CNMI: 1,2,0,0,0
+CSCS: "IRA"
+VTD: 1
+CALS: 1
+CHF: 0
+CAAS: 1
+CBUZZERRING: 0
+DDET: 0
+MORING: 0
+SVR: 16
+CCPD: 1
+CSNS: 0
+CSGS: 1
+CNETLIGHT: 1
+SLEDS: 64,64,64,800,3000,300
+CSDT: 0
+CSMINS: 0
+EXUNSOL: 0
+FSHEX: 0
+FSEXT: 0
+CCTURI: 0
+IPR: 9600
+IFC: 0,0
+CSCLK: 1

OK

Another item I forgot to mention is that the time between when the phone starts signaling there is a call to the time the terminal displays the caller ID : +CCLCC: 1,1,6,0,0,"<Number here>",129,"" is 8 seconds.

So I wonder if the module is not responding in time for the phone to parse the number.

It looks like there is a issue with the way you are parsing the phone number from the CLCC AT message. Around line 1975 in the file MAKERphone.cpp

uint16_t helper = _serialData.indexOf("+CLCC: ") + 7;
	if(helper > 6)
		callIdNumber = _serialData.substring(helper, helper + 1).toInt();
	else
	{
		helper = _serialData.indexOf(",1,4,0,0");
		callIdNumber = _serialData.substring(helper - 1, helper).toInt();
	}

Greetings,

Thanks for all the info you supplied in the thread.

Firstly, could you confirm that you have the latest firmware installed?
If you were tinkering with the software, I would recommend reflashing the original firmware following this guide.

Then, could you send us the output in the serial monitor when the phone boots up?
This would help a lot to determine the issue since we couldn’t replicate the error.

This should be the latest firmware, since I have re-flashed it multiple times using the arduino IDE as suggested by your Engineers. Although here is the terminal out from boot.

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:928
ho 0 tail 12 room 4
load:0x40078000,len:8424
ho 0 tail 12 room 4
load:0x40080400,len:5868
entry 0x4008069c
Calibrated!
offset: 1838
[E][esp32-hal-i2c.c:1426] i2cCheckLineState(): Bus Invalid State, TwoWire() Can't init sda=0, scl=0
SD interrupt error: 0
Read sim value: 1
A
-------------
AT
-------------
AT

-------------
AT


-------------
AT


-------------
AT

O
-------------
AT

OK
-------------
ATI

SIM800 R14.18

OK
checking sim

AT+CPIN?

+CPIN: READY

OK
SD inserted

airplane_mode: 0
brightness: 5
sleep_time: 0
background_color: 0
notification: 3
ringtone: /Ringtones/Funky & fresh.wav
CFUN checking
AT+CFUN?

+CFUN: 1

OK
next alarm: 99
module inserted
SIM INSERTED
Serial1 up and running...
Setup: 0
--------------

Any ideas on this yet?

Well, yes and no.

We think that it’s a combination of software and hardware issues. Since it worked correctly at the beginning, it could be that the SIM module got messed up or you somehow messed with brain board’s memory with the bootloading and things.

Please send it back to us and we will repair it for you for free, since we can’t do it over the internet.
I will send you the details in DM.

This thread Strange notification on home screen
Looks very similar to my callerid issue here. I am pretty sure it is related to the parsing of the strings sent from the sim module.

So what did you do to did you fix it?