The featured image of this post is by rawpixel.com – de.freepik.com
SoftwareSerial class has the
available() method, which returns the number of characters that have been already received but not yet read. This is very similar to what the standard
Serial.available() method offers. There is an interesting difference, though. A call to
SoftwareSerial.available() is significantly slower than a call to
Serial.available(). We will look for the deeper reason of this strange behavior and I will show you three ways how to fix it.
EDIT: The problem will vanish with Arduino version 1.8.17