

The HappyModel ES900RX is a lightweight and compact 2.4GHz receiver designed for remote control applications. It is particularly well-suited for drones, RC vehicles, and other hobbyist projects requiring reliable signal reception and low latency. This receiver is part of the ExpressLRS ecosystem, which is known for its high-performance, open-source radio control systems. The ES900RX offers excellent range, fast response times, and a user-friendly setup process, making it a popular choice among enthusiasts.








The HappyModel ES900RX is designed to deliver high performance in a compact form factor. Below are its key technical details:
| Parameter | Specification |
|---|---|
| Operating Frequency | 2.4GHz |
| Protocol | ExpressLRS (Open Source) |
| Input Voltage Range | 5V (via UART connection) |
| Antenna Connector | IPEX (U.FL) |
| Dimensions | 10mm x 10mm x 3mm |
| Weight | 0.6g |
| Latency | As low as 4ms |
| Range | Up to 15km (depending on conditions) |
| Firmware Compatibility | ExpressLRS Configurator |
The ES900RX features a simple pinout for easy integration into your projects. Below is the pin configuration:
| Pin Name | Description |
|---|---|
| GND | Ground connection |
| 5V | Power input (5V) |
| TX | UART Transmit (connect to RX on flight controller) |
| RX | UART Receive (connect to TX on flight controller) |
5V pin to a 5V power source and the GND pin to ground.TX pin of the ES900RX to the RX pin of your flight controller or microcontroller, and the RX pin of the ES900RX to the TX pin of your flight controller or microcontroller.While the ES900RX is typically used with flight controllers, it can also be connected to an Arduino UNO for testing or custom applications. Below is an example of how to read data from the receiver:
// Example code to read data from the ES900RX using Arduino UNO
// Connect ES900RX TX to Arduino RX (Pin 0) and ES900RX RX to Arduino TX (Pin 1)
#include <SoftwareSerial.h>
// Define RX and TX pins for SoftwareSerial
SoftwareSerial mySerial(10, 11); // RX, TX
void setup() {
Serial.begin(9600); // Start the hardware serial for debugging
mySerial.begin(115200); // Start the software serial for ES900RX communication
Serial.println("ES900RX Receiver Test");
}
void loop() {
// Check if data is available from the receiver
if (mySerial.available()) {
String receivedData = mySerial.readString(); // Read the incoming data
Serial.print("Received: ");
Serial.println(receivedData); // Print the received data to the Serial Monitor
}
}
10 and 11 in SoftwareSerial with the pins you are using for RX and TX on the Arduino UNO.115200 in this example) matches the configuration of the ES900RX.Receiver Not Binding to Transmitter
No Signal or Poor Range
Receiver Not Responding
Q: Can the ES900RX be used with any transmitter?
A: The ES900RX is compatible with transmitters running ExpressLRS firmware. Ensure both the receiver and transmitter are on compatible firmware versions.
Q: What is the maximum range of the ES900RX?
A: The range can reach up to 15km under ideal conditions, but actual range depends on factors such as antenna placement, interference, and environmental conditions.
Q: How do I update the firmware on the ES900RX?
A: Use the ExpressLRS Configurator software to flash the latest firmware. Follow the instructions provided in the ExpressLRS documentation.
Q: Can I use the ES900RX with a 3.3V power source?
A: No, the ES900RX requires a 5V power source for proper operation.
By following this documentation, you can effectively integrate the HappyModel ES900RX into your projects and troubleshoot common issues.