Bart
Bart

Reputation: 21

How to use SoftwareSerial with ESP8266

I'm trying to get an ESP8266 to work with Arduino by using PlatformIO. But, I get errors when importing SoftwareSerial.h

Tried: Arduino IDE, PlatformIO, Change baudrate, change port

How can I get SoftwareSerial to work with the ESP8266?

#include <SoftwareSerial.h>

SoftwareSerial BTserial(3, 1); // RX | TX

char Bluetooth_Name = ' ';

void setup() 
{
    // Arduino IDE serial monitor
    Serial.begin(9600);

    // HC-05 default serial speed for AT mode is 38400
    BTserial.begin(38400);  

    // Wait for hardware to initialize
    delay(1000);

    // Print debug string
}

void loop()
{

   // Keep reading from HC-05 and send to Arduino Serial Monitor
   if (BTserial.available())
   {
      reading = BTserial.read();
      Serial.println(reading);
   }

   // Keep reading from Arduino Serial Monitor and send to HC-05
   if (Serial.available())
   {
      reading = Serial.read();
      BTserial.write(reading);
   }
}

I want to use the SoftwareSerial without errors.


Error code:

Compiling .pio\build\huzzah\lib0be\EspSoftwareSerial_ID168\SoftwareSerial.cpp.o
In file included from C:\Users\Bart\.platformio\lib\EspSoftwareSerial_ID168\src/SoftwareSerial.h:27:0,
                 from C:\Users\Bart\.platformio\lib\EspSoftwareSerial_ID168\src\SoftwareSerial.cpp:23:
C:\Users\Bart\.platformio\lib\EspSoftwareSerial_ID168\src/circular_queue/circular_queue.h:144:10: error: expected ';' at end of member declaration
     bool IRAM_ATTR push(T&& val);
          ^

Upvotes: 2

Views: 30861

Answers (2)

Luca
Luca

Reputation: 89

Actually the standard software serial library didn't work for me with my NodeMCU v1.0... And in the rare cases when it worked, it was very limited. Maybe check out this library:

ESP 8266/32 Software Serial Library

Upvotes: 2

Michael Dreher
Michael Dreher

Reputation: 1399

in platformio.ini you can add the following line to choose a specific version which compiles with the latest released 8266 platform

lib_deps_external =
  plerup/espsoftwareserial#5.0.3 ; this version compiles with a standard 8266 platform

Using this way the code is directly fetched from github.

Upvotes: 0

Related Questions