Atlas Scientific OEM pH Sensor - IRAM Error

Hello,

Project - Read Atlas Scientific OEM Dev board OEM pH sensor
Arduino - NodeMCU ESP-12E
Board Manager Version - ESP8266 ver 2.6.0 (I tried 2.5 through 2.7.4)

GPIO Configuration:
Dev Board ----- > ESP-12E
VCC — > VN
INT ----> D5 (GPIO14)
GND ----> GND
SDA ----> D2 (GPIO4 / SDA)
SCL ----> D1 (GPIO5 / SCL)

I attached the sample code for referance.

When I check the Serial Monitor I find this message:

>>>stack>>>

ctx: cont
sp: 3ffffef0 end: 3fffffc0 offset: 0000
3ffffef0:  feefeffe feefeffe feefeffe feefeffe  
3fffff00:  000000fe 00000000 00000000 00000000  
3fffff10:  00000000 00000000 00000000 00ff0000  
3fffff20:  5ffffe00 5ffffe00 00000020 00000000  
3fffff30:  00000003 00000002 3ffee910 40202f12  
3fffff40:  4010067e 00000001 3ffef92c 40202f28  
3fffff50:  00002580 0000001c 3ffee910 40203a95  
3fffff60:  00000000 00000000 3ffee7b4 40203501  
3fffff70:  3fffdad0 00000001 3ffee8e8 3ffee950  
3fffff80:  3fffdad0 00000000 3ffee910 40203b44  
3fffff90:  feefeffe 00000000 3ffee910 40201071  
3fffffa0:  feefeffe feefeffe feefeffe 40202b64  
3fffffb0:  feefeffe feefeffe 3ffe84e0 40100f89  
<<<stack<<<
J⸮P⸮⸮⸮⸮ISR not in IRAM!

User exception (panic/abort/assert)
Abort called

>>>stack>>>

I tried to decode it using the ESP exception decoder but failed every attempt.

Does anyone have any suggestions here? I’m new to Arduino but familar with other platforms. I do realize that the OEM board is meant for devs. I’m just hopeful to get this code to run. I have an Arduino Uno ordered as well to try but Atlas did say it should work just fine on this board.

Thanks!

Joe

OEM_pH_Sample_code.zip (5.29 KB)

Read the first topic telling "How to use this Forum".
Post a real wiring diagram.
Post the code according to #7 in the topic above.

All ISRs must have the ICACHE_RAM_ATTR keyword in their declaration, or indeed you will get crashes (I thought the latest core would throw a complier error if you don't). Thsi forces the function to be placed in IRAM.

Like this:

void ICACHE_RAM_ATTR yourISR() {
}

Also, put the IRAM function before setup or the compiler thingy will not properly do the do.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.