#include SoftwareSerial mySerial(10, 11); // RX, TX void setup() { // Open serial communications and wait for port to open: Serial.begin(9600); // Set the data rate for the SoftwareSerial port mySerial.begin(9600); } void loop() { // Check if the Serial Converter has sent any data if (mySerial.available()) { byte len = mySerial.read(); // Read the first byte - the length of the actual data char data[32]; // Buffer to hold received data for (int i = 0; i < len; i++) { while (!mySerial.available()); // Wait for the next data byte data[i] = mySerial.read(); } data[len] = '\0'; // Null terminate the string Serial.println("Received: " + String(data)); } // To send data String dataToSend = "Hello, world!"; byte len = dataToSend.length(); char sendBuffer[32]; sendBuffer[0] = len; // Set the length of the data in the first byte for (int i = 0; i < len; i++) { sendBuffer[i + 1] = dataToSend[i]; // Store the actual data starting from the second byte } mySerial.write(sendBuffer, len + 1); // Send the data, note the '+1' as we also need to send the length byte delay(1000); // Wait for a second before next loop iteration }