

The CH9121 is a compact and versatile Ethernet module designed to enable devices to connect to a network via Ethernet. It supports TCP/IP protocols, making it an ideal choice for applications requiring reliable wired communication. The module is widely used in IoT devices, industrial automation, embedded systems, and other applications where stable and secure Ethernet connectivity is essential. Its small form factor and ease of integration make it a popular choice for developers and engineers.








| Parameter | Value |
|---|---|
| Supply Voltage | 3.3V |
| Operating Current | ~120mA |
| Communication Protocols | TCP, UDP |
| Baud Rate (UART) | Configurable (default: 9600 bps) |
| Ethernet Speed | 10/100 Mbps |
| Operating Temperature | -40°C to +85°C |
| Dimensions | 28mm x 20mm |
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | VCC | Power supply input (3.3V) |
| 2 | GND | Ground |
| 3 | TXD | UART Transmit Data |
| 4 | RXD | UART Receive Data |
| 5 | RST | Reset pin (active low) |
| 6 | CFG | Configuration mode selection (connect to GND for configuration mode) |
| 7 | ETH_TX+ | Ethernet transmit positive |
| 8 | ETH_TX- | Ethernet transmit negative |
| 9 | ETH_RX+ | Ethernet receive positive |
| 10 | ETH_RX- | Ethernet receive negative |
Below is an example of how to use the CH9121 with an Arduino UNO to send data over Ethernet.
#include <SoftwareSerial.h>
// Define RX and TX pins for SoftwareSerial
SoftwareSerial CH9121(2, 3); // RX = Pin 2, TX = Pin 3
void setup() {
Serial.begin(9600); // Initialize Serial Monitor
CH9121.begin(9600); // Initialize CH9121 UART communication
// Send a test message to the CH9121
Serial.println("Initializing CH9121...");
CH9121.println("Hello, Ethernet!");
}
void loop() {
// Check if data is available from CH9121
if (CH9121.available()) {
String data = CH9121.readString(); // Read data from CH9121
Serial.print("Received from CH9121: ");
Serial.println(data); // Print received data to Serial Monitor
}
// Check if data is available from Serial Monitor
if (Serial.available()) {
String data = Serial.readString(); // Read data from Serial Monitor
CH9121.println(data); // Send data to CH9121
}
}
CFG pin to configure the module before running the code.No Ethernet Connectivity
UART Communication Issues
Module Not Responding
RST pin to ensure the module is not held in reset state.Data Loss or Corruption
Q: Can the CH9121 be used with a 5V microcontroller?
A: Yes, but you must use a level shifter or voltage divider to safely interface the 3.3V UART pins with the 5V logic levels.
Q: How do I configure the CH9121?
A: Pull the CFG pin low and use a serial terminal to configure parameters such as IP address, baud rate, and communication mode.
Q: What is the default baud rate of the CH9121?
A: The default baud rate is 9600 bps.
Q: Can the CH9121 work with both TCP and UDP protocols?
A: Yes, the CH9121 supports both TCP and UDP communication protocols.