Electronic – Arduino serial communication hacking

arduinohackingserial

I recently bought a Chines massaging chair hoping i can intercept the serial communication between its wired remote and the chair itself, I've cut the wire and connect the Rxd and Txd of the chair to my arduino pin 3 and 4 and ofcourse the ground pin, i used a software-serial code as below but couldn't quit get any readable value. at some point even when the chair is not connected the program shows some value 255, 128, 128…on the serial monitor, could this be a baud rate issue? when i plug the remote all its pads light up at first and only a few with the power button led continuously blinking in about a second, but when i give 5V power to the remote all the pad light light up and freeze so by this i know that the chair sends some signal through its Rxd for the remote (same thing happen when i connect all wires except the Rxd of the remote, which is the Txd of the chair. am I doing something silly here or totally wrong ? am new to this SO Please help.

The wired remote has four lines connected to the board with markings Vcc, Gnd, Txd amd Rxd which clearly shows the communication to be some sort of serial protocol

Code used.

#include <SoftwareSerial.h>
#define rxPin 3
#define txPin 4
SoftwareSerial softSerial =  SoftwareSerial(rxPin, txPin);
void setup()  {

 pinMode(rxPin, INPUT);
 pinMode(txPin, OUTPUT);
 softSerial.begin(9600);
 Serial.begin(9600);
}
void loop() {

 int data = softSerial.read();
 Serial.println(data);

 delay (1000);

Best Answer

You are going about this the wrong way. It is doubtful that you can even be sure of the serial interface connection and protocol used. Making a total blind guess is almost pointless.

The way to do this the proper way is to leave things connected the normal way and then investigate what is going on. Using an oscilloscope you can determine essential information as follows:

  1. Voltage levels used for signalling.
  2. Timing of pulses even to the extent of determining baud rate.
  3. Understanding the signalling to see if it is actually async serial of some other serial protocol.
  4. Determine if the signalling is normal polarity or inverted.
  5. Observe when signalling happens such as all the time, periodically or just under command.
  6. Figure out signal direction on various wires.

Only after you have collected such information would it be reasonable to connect to your MCU.