Fs-iA6B GND connect to GND
Fs-iA6B VCC connect to 5V
Fs-iA6B RX connect to ESP32 GPIO12
Fs-iA6B TX connect to ESP32 GPIO 27
Fs-iA6B Channel 1 connect to Motor1 signal wire (the ground also connected to channel 1)
Fs-iA6B Channel 2 connect to Motor2 signal wire (the ground also connected to channel 2)
#include <HardwareSerial.h>
#include <IBusBM.h>
// Define the serial port for iBus communication
HardwareSerial iBusSerial(1);
IBusBM ibus;
void setup() {
// Start the serial communication for debugging
Serial.begin(115200);
// Configure the iBus serial port
iBusSerial.begin(115200, SERIAL_8N1, 12, -1); // RX: GPIO3, TX: GPIO1
// Configure the iBus serial port
iBusSerial.begin(115200, SERIAL_8N1, -1, 27); // RX: Not used, TX: GPIO27
// Initialize the iBus object
ibus.begin(iBusSerial);
}
void loop() {
// Read channel values from iBus receiver
int channel1 = ibus.readChannel(0);
int channel2 = ibus.readChannel(1);
int channel6 = ibus.readChannel(5); // Channel 6 as integer
// Convert Channel 6 to boolean value
bool isChannel6High = (channel6 > 1500);
// Print channel values to Serial Monitor
Serial.print("Channel 1: ");
Serial.print(channel1);
Serial.print(" | Channel 2: ");
Serial.print(channel2);
Serial.print(" | Channel 6 (bool): ");
Serial.println(isChannel6High);
delay(10);
}
It is only the coding for to get signal for each channel . The channel 6 I set as boolean because I want to make the motor move it's own (automatic) when it is high for channel 6 and when it is low the motor can be control using remote controller manually . I’m still a beginner level.
This are the value of signal when the motor are not moving.
This are the value of signal when the motor are moving.
#Note that the motor have its own build in esc so the signal wire of the motor is connected to iBus Fs-iA6B and the remote control for the motor that I'm using is FS-i6