Hello folks,
I am trying to sniff a serial communication between a PC and a solar inverter. They communicate via HC-12 433MHz modules, one attached to a laptop serial port and the other embedded into inverter. Both are configured at 9600,n,8,1 and it works fine using Termite to send and receive telegrams on the laptop.
To sniff the link I attached an Arduino Uno to a second laptop but had not been able to receive telegrams from neither of the other two nodes. I spent many weeks browsing forums looking for a clue but it seems serial communication is not a hot theme anymore.
I had traced the problem to the link between the sniffer's HC-12 and Arduino Uno by using a signal analyzer, which was able to capture flawlessly the PC inquiry to inverter.
The answer is missing because the inverter is farther away to be within reach of sniffer's shorter antenna.
Follows a scheme of the sniffer, it is extremely simple

Actually RXD is tied to pin2 and TXD to pin3. The scheme was a guide.
I'd like to include its code too and found no way to do it in a proper way, but since it is also very simple I decided to copy/paste it here, sorry about that:
#include <SoftwareSerial.h>
SoftwareSerial HC12(2,3); // RX pino 2 , TX pino 3
String inputString = ""; // a String to hold incoming data
bool stringComplete = false; // whether the string is complete
void setup() {
// initialize serial:
Serial.begin(9600);
// reserve 200 bytes for the inputString:
inputString.reserve(200);
HC12.begin(9600); // Porta Serial do HC12
}
void loop() {
if (HC12.available()) {
// get the new byte:
char inChar = (char)HC12.read();
// add it to the inputString:
inputString += inChar;
// if the incoming character is a newline, set a flag so the main loop can
// do something about it:
if (inChar == '\n') {
stringComplete = true;
}
}
// print the string when a newline arrives:
if (stringComplete) {
Serial.println(inputString);
// clear the string:
inputString = "";
stringComplete = false;
}
}
Those who can decode bytes just by their pattern will find the last byte in the logic analyzer picture is 0x64 instead of \n but even adding the expected terminator it made no difference. Here follows a picture of the actual sniffer and yes, that is an XP laptop to host the sniffer.
The newer one is were I run Termite to talk to the inverter. I would be very grateful for any help you can give. Thanks in advance and take care.