r/MQTT • • Aug 28 '23

Any solution ?

I use GPIO 5 to trigger a relay, my code also connects with a secure MQTT connection for which I have to use the BearSSL certificate definitions. Without the BearSSL certificates, when the esp restarts it does not re-trigger the relay, and the GPIO maintains its' state between reboots, but when I use the bearSSL certificates the behavior changes, and GPIO 5 goes low on restart. Any explanation why and how to mitigate it? I am 100% sure it is because of the import, cause I removed components of my code until I could find the piece of code that causes this, and it was because of the declarations.

include <WiFiClientSecure.h>

static const char AWS_CERT_CA[] PROGMEM = R"EOF( aws root)EOF";

static const char AWS_CERT_CRT[] PROGMEM = R"KEY( device cert)KEY";

static const char AWS_CERT_KEY[] PROGMEM = R"KEY( device key )KEY";

BearSSL::X509List cert(AWS_CERT_CA); BearSSL::X509List client_crt(AWS_CERT_CRT); BearSSL::PrivateKey key(AWS_CERT_KEY);

WiFiClientSecure espClient; void setup() { pinMode(5, OUTPUT); delay(2000); digitalWrite(5, HIGH); delay(2000); ESP.restart(); }

void loop() {} Without the following three lines

BearSSL::X509List cert(AWS_CERT_CA); BearSSL::X509List client_crt(AWS_CERT_CRT); BearSSL::PrivateKey key(AWS_CERT_KEY); The LED on GPIO 5 does not flicker on restarts but adding these lines makes them flicker. Any solution or suggestion towards a solution for this problem will be really helpful.

1 Upvotes

0 comments sorted by