2

I have a micro turbojet engine (JetCat P100-RX) which is operated through an Electronic Control Unit (ECU).

The ECU has a lot of information about the engine. I want to access that information and also send commands to the ECU to control the engine.

The ECU connects to a Mini I/O device. This connection is shown in the following image:

enter image description here

The details of both the ECU serial connection and the Mini I/O Board are given in this manual page 4. (What I understand here is that the data stream from the Mini Board follows a RS232 protocol.) It looks as shown:

enter image description here

I would like to collect the information from the Tx, Rx and GND pins using the Arduino Uno. How can I do this? The Arduino is connected to my PC through the USB port.

EDIT1: What I tried doing:

I connected the Tx, Rx and GND of the Mini Board to pins 10 and 11 of the Arduino and configured 10 and 11 as serial pins and GND to Arduino GND (Rx anf Tx respectively) using SerialSoftware as follows:

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

void setup() { // Open serial communications and wait for port to open: Serial.begin(57600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only }

// set the data rate for the SoftwareSerial port mySerial.begin(9600); // Set to 9600 as the manual says (link above) }

void loop() { if (mySerial.available()) { Serial.write(mySerial.read()); } }

My circuit diagram:

enter image description here

But I don't get any output on the Serial Monitor.

While reading online I found out that I need some converter. Following these posts, I have bought a MAX3232. Do I need to use that? How do I use that and what changes do I make in my code?

ocrdu
  • 1,795
  • 3
  • 12
  • 24
Atharva
  • 53
  • 8

1 Answers1

-1

That is relatively easy to do. If you have a Mega or another Arduino that has more than one serial port, great. If not, then softwareserial is what you need. For this to work all grounds must be connected.

Softwareserial can only receive on one channel at a time. On the hardware level you should use a high-impedance receiver to monitor both the RX and TX signals. I use a 74HC14 (74C914 is rated at +- 25 V on its input) or similar device. Place a 50 kΩ resistor from the RX to an input on the IC, do the same with the TX to another input on the IC. The input protection diodes of the 74HC will limit the current, at 50 kΩ 50 V gives 1 mA.

Connect the outputs of the IC to inputs of the Arduino. Each input needs to be configured to receive ASYNC input at the correct baud and other parameters. I have done this many times and it works great. I always did it with UARTs, not software. Note the 74HC device inverts the signal as is normal with RS232. There are various modules available for the Arduino that have a USART, UART or similar serial device on them.

ocrdu
  • 1,795
  • 3
  • 12
  • 24
Gil
  • 1,863
  • 9
  • 17