RS485: Full duplex?

Your code is a mess.

In the second code you have:

#include <RS485_non_blocking.h>
#include <RS485_protocol.h>

Why do you do that ?
You can see that you are including two header files that contain functions with the same name, so you can not be sure which function actually gets called. Read and understand the thread from Nick Gammon.

Like I mentioned before and what Pylon is saying, use the hardware serial port to do this.
If you absolutely need more than a single serial port, then get yourself a board with more hardware serial ports, like 1284 or 2560 controllers.

I suspect the project is getting on your nerves because you have not allowed the time to patiently sit down to read and learn and then design the code you need.

As Pylon says, you also have two instances of SoftwareSerial in your second code.

Your descriptions are not clear either, as you write:

But, arduino1 does not receive anything. It waits for 10 seconds before declaring a timeout.

while you also write:

Arduino1 receives speeddata successfully over softwareserial and sends request to arduino2.


Paul - VK7KPA