If I uncomment one more of the virtualWrite lines below, my board will crash when I try to access the asynchronous webserver.
// Publish data to Cayenne
Cayenne.virtualWrite(0, uptime_char);
Cayenne.fahrenheitWrite(t1, tempF[temp1]);
Cayenne.fahrenheitWrite(t2, tempF[temp2]);
Cayenne.fahrenheitWrite(t3, tempF[temp3]);
Cayenne.fahrenheitWrite(t4, tempF[temp4]);
Cayenne.fahrenheitWrite(t5, tempF[temp5]);
Cayenne.virtualWrite(RELAYPIN1, newDigIO[iPump], "digital_actuator", "d");
Cayenne.virtualWrite(RELAYPIN2, newDigIO[iThermEm], "digital_actuator", "d");
Cayenne.virtualWrite(RELAYPIN3, newDigIO[iBoiler], "digital_actuator", "d");
// Cayenne.virtualWrite(RELAYPIN4, newDigIO[iAlarmOut], "digital_actuator", "d");
// Cayenne.virtualWrite(SwitchPin, statAlarm);
Typical crash dump:
Exception 9: LoadStoreAlignmentCause: Load or store to an unaligned address PC: 0x40105340 EXCVADDR: 0x00000003 Decoding stack results 0x4020f740: __delay(unsigned long) at /Users/iskoch01/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.1/cores/esp8266/ core_esp8266_wiring.cpp line 49 0x402076fb: ClientContext::_write_from_source(DataSource)* at /Users/iskoch01/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.1/libraries/ESP8266WiFi/src/include/ ClientContext.h line 465 0x40207789: WiFiClient::write(unsigned char const, unsigned int)* at /Users/iskoch01/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.1/libraries/ESP8266WiFi/src/include/ ClientContext.h line 364 0x4020cb9c: arduino_write(Network, unsigned char, int, int)** at /Users/iskoch01/Documents/Arduino/libraries/CayenneMQTT/src/Platform/Arduino/ MQTTArduino.cpp line 95 0x40201423: sendPacket at /Users/iskoch01/Documents/Arduino/libraries/CayenneMQTT/src/CayenneMQTTClient/ MQTTClient.c line 38 0x4020cb58: arduino_write(Network, unsigned char, int, int)** at /Users/iskoch01/Documents/Arduino/libraries/CayenneMQTT/src/Platform/Arduino/ MQTTArduino.cpp line 84 0x40201a98: MQTTPublish at /Users/iskoch01/Documents/Arduino/libraries/CayenneMQTT/src/CayenneMQTTClient/ MQTTClient.c line 618 0x40201254: CayenneMQTTPublishDataArray at /Users/iskoch01/Documents/Arduino/libraries/CayenneMQTT/src/CayenneMQTTClient/ CayenneMQTTClient.c line 288 0x402030a8: CayenneArduinoMQTTClient::publishData(CayenneTopic, unsigned int, CayenneValuePair const, unsigned int, char const)** at /Users/iskoch01/Documents/Arduino/libraries/CayenneMQTT/src/ CayenneArduinoMQTTClient.h line 367 0x40204408: CayenneArduinoMQTTClient::virtualWrite(unsigned int, bool const&, char const, char const)** at /Users/iskoch01/Documents/Arduino/libraries/CayenneMQTT/src/ CayenneArduinoMQTTClient.h line 152 0x4020c764: PubSubClient::publish(char const, unsigned char const, unsigned int, bool)** at /Users/iskoch01/Documents/Arduino/libraries/pubsubclient/src/ PubSubClient.cpp line 397 0x402030a8: CayenneArduinoMQTTClient::publishData(CayenneTopic, unsigned int, CayenneValuePair const, unsigned int, char const)** at /Users/iskoch01/Documents/Arduino/libraries/CayenneMQTT/src/ CayenneArduinoMQTTClient.h line 367 0x402052c6: pub() at /Users/iskoch01/Documents/Arduino/boiler/ boiler.ino line 763 0x401002de: millis() at /Users/iskoch01/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.1/cores/esp8266/ core_esp8266_wiring.cpp line 188 0x40210e75: uart_write(uart_t, char const, size_t)** at /Users/iskoch01/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.1/cores/esp8266/ uart.cpp line 509 0x40210e75: uart_write(uart_t, char const, size_t)** at /Users/iskoch01/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.1/cores/esp8266/ uart.cpp line 509 0x4020d308: HardwareSerial::write(unsigned char const, unsigned int)* at /Users/iskoch01/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.1/cores/esp8266/ HardwareSerial.h line 159 0x4020d314: HardwareSerial::write(unsigned char const, unsigned int)* at /Users/iskoch01/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.1/cores/esp8266/ HardwareSerial.h line 160 0x4020d308: HardwareSerial::write(unsigned char const, unsigned int)* at /Users/iskoch01/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.1/cores/esp8266/ HardwareSerial.h line 159 0x4020d6b4: Print::println() at /Users/iskoch01/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.1/cores/esp8266/ Print.cpp line 178 0x402054fb: relayCtl(int, bool) at /Users/iskoch01/Documents/Arduino/boiler/ boiler.ino line 818 0x4020d63d: Print::write(char const)* at /Users/iskoch01/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.1/cores/esp8266/ Print.h line 60 0x4020d6b4: Print::println() at /Users/iskoch01/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.1/cores/esp8266/ Print.cpp line 178 0x4020597d: gettemperature() at /Users/iskoch01/Documents/Arduino/boiler/ boiler.ino line 966 0x4020de40: String::~String() at /Users/iskoch01/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.1/cores/esp8266/ WString.cpp line 125 0x4020de21: String::invalidate() at /Users/iskoch01/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.1/cores/esp8266/ WString.cpp line 140 0x402059e7: std::_Function_handler::_M_invoke(const std::_Any_data &, AsyncWebServerRequest ) at /Users/iskoch01/Documents/Arduino/boiler/ boiler.ino line 1162 0x4020abac: AsyncWebServerRequest::_removeNotInterestingHeaders() at /Users/iskoch01/Documents/Arduino/libraries/ESPAsyncWebServer/src/ WebRequest.cpp line 182 0x40202e50: std::_Function_base::_Base_manager::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation) at /Users/iskoch01/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/xtensa-lx106-elf/include/c++/4.8.2/ functional line 1931 0x4020bb45: AsyncCallbackWebHandler::handleRequest(AsyncWebServerRequest) at /Users/iskoch01/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/xtensa-lx106-elf/include/c++/4.8.2/ functional line 2464 0x4020bf84: AsyncWebServer::_attachHandler(AsyncWebServerRequest)* at /Users/iskoch01/Documents/Arduino/libraries/ESPAsyncWebServer/src/ WebServer.cpp line 116 0x4020acd1: AsyncWebServerRequest::_parseLine() at /Users/iskoch01/Documents/Arduino/libraries/ESPAsyncWebServer/src/ WebRequest.cpp line 581 0x40222cb2: tcp_input at core/ tcp_in.c line 942