Range Test (Open Field, 0 dBm, default antenna):
Throughput: At 9600 baud, effective data rate ~900 bytes/sec after overhead. Not suitable for streaming, but adequate for sensor readings or short commands.
Power consumption: 23 mA average during continuous transmission.
The JDY-40 is a low-cost, ultra-low power wireless serial pass-through module based on the CC2541 chip. It is often preferred over the older HC-05/HC-06 Bluetooth modules because it supports both Bluetooth 4.0 (BLE) and standard serial transparency, and it requires no complex AT command pairing process for basic data transmission.
To get the "best" results, this report recommends using the module in Transparent Transmission Mode (Pass-through) with Hardware Serial where possible.
is a 2.4GHz wireless serial port transceiver module that offers an affordable alternative to the NRF24L01 for long-range (up to 120 meters) transparent data transmission MSS Eletrônica
. It is highly valued for its simplicity, as it uses a standard UART interface that can be controlled with basic serial commands on an Arduino MSS Eletrônica 1. Hardware Setup & Pinout operates on iFuture Technology . Connecting it to a 5V source may damage the module : 2.2V to 3.6V MSS Eletrônica : System ground. : Connect to the Arduino's RX/TX pins (cross-connected) iFuture Technology
to enter AT command mode for configuration; leave floating or pull for transparent communication Robokits India : Chip Select. Pull to wake the module; pull for low-power sleep mode Robokits India 2. Best Configuration: AT Commands
Before transmitting data, you must configure both modules to the same parameters using AT commands. Standard communication defaults to a 9600 baud rate Longan Labs Parameters Set/Query Baud Rate 1:1200, 4:9600 (default), 7:115200 Robokits India Set Wireless ID 0000–FFFF (must match on both units) Robokits India Set Device ID 0000–FFFF (unique identifier) Robokits India Set RF Channel 001–128 (default: 001) Robokits India Set Transmit Power 0: -25dBm to 9: +12dBm Robokits India Set Operating Mode A0: Transparent Transmission (default) Robokits India 3. "Best" Arduino Example: Transparent Transmission This example uses SoftwareSerial
to avoid interfering with the Arduino's hardware serial (USB) port. It allows you to send data from one Serial Monitor to another wirelessly Longan Labs
(Serial.available()) jdy40.write(Serial.read()); Use code with caution. Copied to clipboard 4. Advanced Networking: Multi-Node Broadcast
For more complex projects, you can implement a hub-and-spoke network where one central node communicates with multiple remote nodes (e.g., "uno" and "nano") Broadcast Logic
: Since the JDY-40 natively broadcasts to all nodes on the same frequency and RFID, use JSON formatting to include a "destination" field in your messages Selective Response
: Program each remote node to ignore any message where the "destination" does not match its own hardcoded ID for connecting the Arduino Nano
Video #257: Serial Wireless Comms for Arduino (et al) - GitHub
module Serial Wireless transceiver info. PLEASE NOTE: this module is 3v3 limited - don't apply 5v.
For an Arduino project using the JDY-40 wireless module, the most useful advanced feature is implementing a Multi-Node Hub-and-Spoke Network using unique device identifiers.
While the JDY-40 natively broadcasts messages to all modules on the same frequency, you can create a more sophisticated system where a central hub communicates with specific remote nodes by including a "destination" field in your data packets. Key Feature: Targeted Device Addressing
This feature allows you to build complex systems like a multi-room sensor network where only the intended node responds to a query. Range Test (Open Field, 0 dBm, default antenna):
Logic: Assign each node a unique ID (e.g., "Sensor1", "Sensor2").
Packet Structure: Use a simple JSON or string format like "to": "Sensor1", "cmd": "readTemp".
Filtering: Program your Arduino nodes to ignore any message that does not match their specific ID. Hardware Setup:
VCC: 2.2V – 3.6V (Use a 3.3V supply; do not use 5V directly). CS Pin: Pull to GND to keep the module awake.
SET Pin: Pull HIGH for normal data transmission (Transparent mode) or LOW for configuration via AT commands. Example Implementation Scenarios
Remote Relay Controller: Send a specific ID code to toggle a relay in a different room (up to 120 meters away in open areas).
Battery-Efficient Sensors: Use the CS pin to wake the module only when it needs to transmit data, reducing power consumption to as low as 25 microamps during sleep.
One-to-Many Control: Use one master controller (like an Arduino with a joystick) to send different commands to multiple "follower" robots simultaneously. Common Configuration Commands
You can configure these features using AT commands when the SET pin is grounded: AT+BAUD: Change serial speed (Default is 9600). Throughput: At 9600 baud, effective data rate ~900
AT+RFID: Set a common "Wireless ID" for your specific network to avoid interference from other JDY-40 users. AT+DVID: Assign a unique "Device ID" to individual modules. AT+POWE: Adjust transmit power (0–9) to save battery. Configuration with AT command - Arduino Forum
The JDY-40 is a compact 2.4 GHz wireless transceiver module that acts as a low-cost alternative to the nRF24L01 or HC-12 modules. It excels at "transparent transmission," essentially acting as a wireless bridge for serial data between two Arduinos with almost no complex coding required. Key Specifications Operating Frequency: 2.4 GHz (2400-2483.5 MHz).
Transmission Distance: Up to 120–160 meters in open sight.
Power Supply: 2.2V to 3.6V (strictly 3.3V logic; 5V will damage it).
Modes: Transparent Serial, IO Control, and Remote Triggering. Default Baud Rate: 9600 bps. Wiring Guide
Because the JDY-40 is a 3.3V logic device, you must use a level shifter or a simple voltage divider when connecting it to a 5V Arduino (like the Uno). JDY-40 Pin Arduino Pin (5V Uno) VCC DO NOT connect to 5V. GND Common ground. RXD 7 (SoftSerial TX) Use voltage divider for safety. TXD 6 (SoftSerial RX) Direct connection is fine. SET GND / 3.3V GND for AT mode; 3.3V/Floating for Transmit mode. CS Ground this to "Wake" the module. Arduino Example Code (Transmitter & Receiver)
This example uses SoftwareSerial so you can keep your hardware Serial port free for the Serial Monitor. The same code can be uploaded to both the transmitter and receiver Arduinos to create a bi-directional "Wireless Serial Monitor".
#include Use code with caution. Essential AT Commands Configuration with AT command - Arduino Forum
The JDY-40 operates on 3.3V logic. While the VCC can handle up to 3.6V (or sometimes 5V depending on the specific board revision), the data pins (RX/TX) are strictly 3.3V.
Best Practice Wiring Configuration:
| JDY-40 Pin | Arduino Uno Pin | Notes | | :--- | :--- | :--- | | VCC | 3.3V | Do not connect to 5V unless board has a regulator. | | GND | GND | Common ground is required. | | TX | Digital Pin 2 | (Uses SoftwareSerial) | | RX | Digital Pin 3 | (Use 1K-2K Resistor Divider for safety) | | EN | 3.3V | Must be HIGH for the module to run. |