Skip to content

adamivie/nrf24-arduino-projects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NRF24L01 Arduino Communication Projects

Arduino License NRF24L01

A collection of Arduino projects for NRF24L01 wireless communication modules, featuring range testing, wireless chat, and diagnostic tools.

🌟 Features

  • πŸ“‘ Wireless Chat System - Real-time bidirectional text communication
  • πŸ“Š Range Testing - Professional packet loss analysis with LED indicators
  • πŸ”§ Diagnostic Tools - Hardware testing and troubleshooting utilities
  • πŸ“± User-Friendly - Clean Serial Monitor interface with visual feedback
  • 🎯 Reliable - Tested pin configurations and error handling

πŸ“ Project Structure

nrf24-arduino-projects/
β”œβ”€β”€ nrf24_chat_terminal_a/          # Wireless chat - Terminal A
β”œβ”€β”€ nrf24_chat_terminal_b/          # Wireless chat - Terminal B
β”œβ”€β”€ nrf24_range_transmitter/        # Range test transmitter
β”œβ”€β”€ nrf24_range_receiver/           # Range test receiver
β”œβ”€β”€ nrf24_diagnostic/               # Hardware diagnostic tool
β”œβ”€β”€ scripts/
β”‚   β”œβ”€β”€ install_dependencies.ps1    # PowerShell installer
β”‚   β”œβ”€β”€ install_dependencies.sh     # Linux/macOS installer
β”‚   └── install_dependencies.bat    # Windows batch installer
β”œβ”€β”€ docs/
β”‚   β”œβ”€β”€ WIRING.md                  # Detailed wiring guide
β”‚   β”œβ”€β”€ TROUBLESHOOTING.md         # Common issues and solutions
β”‚   └── API.md                     # Code documentation
β”œβ”€β”€ examples/                       # Additional example code
β”œβ”€β”€ LICENSE                        # MIT License
└── README.md                      # This file

πŸš€ Quick Start

Prerequisites

  • 2x Arduino Uno (or compatible)
  • 2x NRF24L01 wireless modules
  • Jumper wires
  • Arduino IDE
  • RF24 library by TMRh20

Installation

  1. Clone the repository:

    git clone https://github.com/adamivie/nrf24-arduino-projects.git
    cd nrf24-arduino-projects
  2. Install dependencies:

    Windows (PowerShell):

    .\scripts\install_dependencies.ps1

    Linux/macOS:

    ./scripts/install_dependencies.sh
  3. Wire your NRF24L01 modules (see Wiring Guide)

πŸ”Œ Basic Wiring

NRF24L01 Pin Arduino Uno Pin Description
VCC 3.3V Power (3.3V only!)
GND GND Ground
CE 7 Chip Enable
CSN 8 SPI Chip Select
SCK 13 SPI Clock
MOSI 11 SPI Data Out
MISO 12 SPI Data In

⚠️ Important: NRF24L01 requires 3.3V power, NOT 5V!

πŸ’¬ Wireless Chat Application

The wireless chat system allows real-time text communication between two Arduino boards through their Serial Monitors.

Setup

  1. Upload nrf24_chat_terminal_a.ino to first Arduino
  2. Upload nrf24_chat_terminal_b.ino to second Arduino
  3. Open Serial Monitor for both (9600 baud)
  4. Set line ending to "Newline" or "Both NL & CR"

Usage

NRF24L01 Wireless Chat - Terminal A
====================================
Type your message and press Enter to send
Messages from Terminal B will appear below
------------------------------------

Terminal A> Hello from Arduino A! [SENT]
Terminal B> Hi there! This is Arduino B.
Terminal A> The wireless chat works great! [SENT]
Terminal B> I agree! Crystal clear communication.
Terminal A> 

Features

  • βœ… Bidirectional communication
  • βœ… Real-time message display
  • βœ… Visual feedback (SENT/FAILED status)
  • βœ… Character echo as you type
  • βœ… Clean interface with proper formatting

πŸ“Š Range Testing System

Professional range testing with packet statistics and LED status indicators.

Features

  • Continuous packet transmission with counters
  • Real-time packet loss calculation
  • Signal strength estimation
  • LED status indicators for transmission/reception
  • Detailed statistics output

Usage

  1. Upload transmitter code to first Arduino
  2. Upload receiver code to second Arduino
  3. Start close together to verify communication
  4. Gradually increase distance while monitoring packet loss
  5. Record maximum reliable range

πŸ”§ Diagnostic Tools

Hardware testing utilities to troubleshoot NRF24L01 connection issues.

NRF24L01 Diagnostic

Comprehensive hardware test that checks:

  • SPI communication
  • Register read/write operations
  • Multiple pin configurations
  • Power supply verification

Basic Connection Tester

Low-level SPI testing without RF24 library dependencies.

πŸ› οΈ Troubleshooting

Common Issues

Problem Solution
"Radio initialization failed" Check wiring, verify 3.3V power
No communication Try different CSN pin (7 instead of 8)
Intermittent connection Add 10Β΅F capacitor between VCC/GND
Range too short Check antenna orientation, reduce interference

See TROUBLESHOOTING.md for detailed solutions.

πŸ“š Documentation

🀝 Contributing

Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • TMRh20 for the excellent RF24 library
  • Arduino community for inspiration and support
  • NRF24L01 datasheet authors for technical specifications

πŸ“ž Support

🌟 Star History

If you find this project helpful, please consider giving it a star! ⭐


Made with ❀️ for the Arduino community

About

simple nrf24l01 messager

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors