- A peer-to-peer wireless communication system using Arduino Uno,
- This project demonstrates encoding text into Morse code,
- Transmitting it wirelessly, and decoding it back into human-readable form.
- NRF24L01 transceiver modules to transmit and receive Morse code messages.
- It uses 2.4GHz global open ISM band, license-free in India.
- Range upto 1500 meters in line of sight with SMA Antenna.
- Display messages on a 16×2 LCD screen
- Option to build circuit with or without I2C module
Morse code is a communication method that uses short and long signals
- Different combination and sequence of dots
·and dashes–to encode text in morse code.
(space too for switching between words.) - This project implements a wireless Morse code communication system using NRF24L01 modules for transmission and reception, and a 16×2 LCD to display messages.
| Component | Description |
|---|---|
| Arduino Uno (ATmega328P) | Microcontroller board |
| NRF24L01 2.4 GHz Transceiver Modules (x2) | Wireless radio communication modules |
| 16×2 LCD Display (HD44780) | Character LCD display |
| I2C Serial Interface Adapter Module (PCF8574) | Enables I2C communication with LCD |
| Push Buttons | User input controls |
| Miscellaneous Components | Resistors, breadboard, jumper wires, etc. |
| Library | Purpose |
|---|---|
#include <LiquidCrystal.h> |
For LCD display |
#include <SPI.h> |
For SPI communication |
#include <avr/wdt.h> |
Watchdog Timer library |
#include <RF24.h> |
For NRF24L01 wireless communication |
#include <nRF24L01.h> |
For NRF24L01 wireless communication |
| Option | Description |
|---|---|
| With I2C Module | - Simplifies the circuit design - More beginner-friendly - Frees up I/O ports for other uses |
| Without I2C Module | - Adds complexity to the circuit - Consumes additional I/O pins - Attempt with prior experience. |
- Make a 3D printed portable version with rechargable Li-Polymer battery
- Add buzzer/vibration feedback for Morse input
- Add support for mesh (multi-node) communication (multiple devices)
- Implement error-checking for more reliable transmission
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow Arduino coding best practices
- Keep circuit diagrams clear and well-documented
- Use meaningful and descriptive commit messages
This project is licensed under the MIT License - see the LICENSE file for details.
- Arduino community for open-source hardware & libraries
- nRF24L01 & rf24 for the NRF24L01 library support
- HD44780 & PCF8574 documentation for LCD interfacing
- Open-source contributors for inspiration and resources
- Electronics hobbyist forums for troubleshooting help
- GitHub: @HimanshuChauragade
- LinkedIn: Himanshu Chauragade
- Email: [email protected]
⭐ Star this repository if you found it helpful!





