EC380 Mini Project
EC380 Mini Project
Submitted By
Meer Ismail Ali
(21EC125)
Rishu Kumar
(211EC140)
Under the mentorship of
Dr. Prasantha Kumar
Mini Project report 2024
ABSTRACT
This project implements a data transmission system using Frequency Hopping
Spread Spectrum (FHSS) on the 433 MHz band. To achieve synchronization
between transmitter and receiver, a pilot signal is employed. The system utilizes a
slow hopping technique, where the carrier frequency periodically switches across
15 channels within the 433 MHz to 434.790 MHz ISM band. The channels are
spaced at 124.28 kHz intervals to minimize interference. This approach improves
data security and reduces the impact of narrowband noise sources compared to
fixed-frequency transmission.
Mini Project report 2024
Contents
1. Theory 5
2. Introduction 6
3. Motivation 8
4. Design 10
Code......................................................................................................... 11
Setup picture............................................................................................ 15
5. Result analysis 17
6. Major challenges 19
7. Benefits 21
8. Conclusion and future scope 22
Next Phase.................................................................................. 23
9. links 24
Theory
Traditional wireless communication systems typically operate on a fixed carrier frequency. This
approach offers simplicity but has limitations. Fixed-frequency transmissions are susceptible to
interference from other devices operating on the same frequency band. Additionally, they lack
inherent security as anyone with a compatible receiver can potentially intercept the data.
Benefits of FHSS:
FHSS offers a compelling solution to these challenges. In FHSS, the data is transmitted by rapidly
switching the carrier frequency across a pre-defined set of channels according to a
synchronized pattern known by both the transmitter and receiver. This approach offers several
advantages:
This project leverages the capabilities of the Arduino platform and the RFM69 module to create
a practical FHSS communication system. Here's a breakdown of the key aspects:
This project demonstrates a practical implementation of FHSS on Arduino with the RFM69
module. By utilizing pilot signals, slow hopping techniques, and strategic channel spacing, the
system offers a secure and robust data transmission solution compared to fixed-frequency
communication. This project can be a valuable foundation for further development and
exploration of FHSS applications in various fields.
Motivation
The motivation behind this project stems from the limitations of traditional fixed-frequency
wireless communication systems. These limitations include:
This project aims to address these limitations by implementing FHSS on Arduino with the
RFM69 module. FHSS offers several advantages that make it a compelling alternative:
Objectives
• Develop a secure and robust data transmission system: This project aims to create a
communication system that is resistant to interference and offers improved security
compared to traditional fixed-frequency methods.
• Utilize Arduino and RFM69 for Practical Implementation: The project leverages the
accessibility of Arduino and the capabilities of the RFM69 module to demonstrate a
practical and cost-effective solution for FHSS communication.
• Implement Pilot Signal Synchronization: The project incorporates a pilot signal to ensure
reliable synchronization between the transmitter and receiver, enabling them to
maintain a consistent hopping sequence.
• Explore Slow Hopping Technique: This project utilizes a slow hopping technique,
balancing the benefits of interference resistance with maintaining communication
efficiency.
• Demonstrate Effective Channel Spacing: The project defines a specific spacing between
channels within the hopping sequence to minimize interference while efficiently utilizing
the available bandwidth.
By achieving these objectives, this project aims to showcase a functional FHSS communication
system and serve as a valuable foundation for further exploration and development of secure
and robust wireless communication solutions.
Mini Project report 2024
Design
Mini Project report 2024
Mini Project report 2024
Code
Arduino connections:
RFM69HCW MOSI → Arduino MOSI (Pin 11)
Transmitter Arduino:
#include <SPI.h> // Include SPI library for communication with RFM69
#include <RF69.h> // Include RFM69 library
// Define settings for RFM69 module (replace with your specific settings)
#define NETWORK_ID 100 // Define a network ID for communication
#define FREQUENCY (RF69_MHZ * 433) // Set frequency within ISM band (replace with your
chosen frequency)
#define TX_PIN 8 // Define pin connected to RFM69 transmit
#define RST_PIN 9 // Define pin connected to RFM69 reset
void setup() {
Serial.begin(9600); // Initialize serial communication for debugging
void loop() {
// Create data packet (modify based on your data structure)
MyData dataToSend;
dataToSend.sensorValue = analogRead(A0); // Example: Read sensor value
radio.send(pilotSignal, sizeof(pilotSignal));
Serial.println("Pilot signal sent!");
// Transmit actual data packet (replace with your data sending function)
sendData(dataToSend);
Reciever Arduino:
#include <SPI.h> // Include SPI library for communication with RFM69
#include <RF69.h> // Include RFM69 library
// Define settings for RFM69 module (replace with your specific settings)
#define NETWORK_ID 100 // Define a network ID to match transmitter
#define FREQUENCY (RF69_MHZ * 433) // Set frequency within ISM band (replace with your
chosen frequency)
#define RX_PIN 10 // Define pin connected to RFM69 receive
#define RST_PIN 9 // Define pin connected to RFM69 reset
// Define pilot signal sequence (replace with your chosen pattern, must match transmitter)
const uint8_t pilotSignal[] = {0xAB, 0xCD, 0xEF};
void setup() {
Serial.begin(9600); // Initialize serial communication for debugging
void loop() {
// Continuously listen for incoming packets
if (radio.available()) {
// Check if received data size matches pilot signal size
if (radio.getSize() == sizeof(pilotSignal)) {
// Read received data
Mini Project report 2024
uint8_t receivedPilot[sizeof(pilotSignal)];
radio.receive(receivedPilot, sizeof(pilotSignal));
// Function to receive and process data packet (replace with specific implementation)
MyData receiveData() {
// Allocate buffer to store received data
byte dataBuffer[sizeof(MyData)];
radio.receive(dataBuffer, sizeof(dataBuffer));
return receivedData;
}
Setup picture
Mini Project report 2024
Result Analysis
Mini Project report 2024
This report analyzes the performance of a data transmission system implemented using
Frequency Hopping Spread Spectrum (FHSS) on the Arduino platform with the RFM69 module.
The system employed a pilot signal for synchronization, slow hopping across 15 channels within
the 433 MHz ISM band (spaced at 124.28 kHz intervals), and a hopping interval of 0.5 seconds.
Additional Observations:
• Environmental Impact: The tests were conducted in a controlled environment (specify
the environment). Further testing in different environments with obstacles or varying
distances would provide insights into the system's robustness to external factors.
• Data Rate and Modulation Scheme: The chosen data rate and modulation scheme
appeared to function well with the implemented FHSS system and hopping interval.
Mini Project report 2024
The initial attempt at synchronization between the transmitter and receiver involved using a
mechanical switch. This switch, connected to both Arduinos, aimed to establish synchronization
upon a physical press. However, this approach proved to be unsuccessful.
There were several potential reasons why the mechanical switch synchronization approach
didn't work as planned:
• Timing Sensitivity: A physical switch press might not be instantaneous, and slight
variations in the timing of the press on each Arduino could lead to synchronization errors.
• Debouncing Requirement: Mechanical switches can exhibit bouncing behavior, causing
multiple rapid on/off signals even with a single press. This could create confusion for the
Arduinos, hindering proper synchronization. In our case sometimes only one of our
Arduinos detected the signal
• Limited Reliability: Mechanical switches can wear out over time, potentially causing
erratic behavior and unreliable synchronization.
To address these challenges, the project shifted to using a pilot signal sequence for
synchronization. This approach offered several advantages:
• Digital Precision: A pilot signal consists of a defined digital sequence transmitted before
the actual data. This eliminates the timing inconsistencies and bouncing issues associated
with mechanical switches.
Mini Project report 2024
• Reliable Detection: The receiver is programmed to recognize the specific pilot signal
sequence. This ensures clear identification of the start of transmission and avoids
misinterpretations.
• Software Control: Integration of the pilot signal sequence within the Arduino code allows
for greater flexibility and control over the synchronization process.
Implementation Details:
• The transmitter initiates communication by sending the pre-defined pilot signal
sequence.
• The receiver continuously listens for the pilot signal.
• Upon successful detection of the pilot signal sequence, the receiver acknowledges
synchronization and prepares for receiving the actual data.
• Both devices then enter the FHSS hopping routine, ensuring they are on the same
channel for data exchange.
This approach proved to be a more reliable and robust method for synchronization compared
to the initial mechanical switch approach. It eliminated the concerns about timing sensitivity,
switch bouncing, and long-term reliability.
• Enhanced Security: Implementing FHSS with pilot signal synchronization creates a more
secure communication channel compared to traditional fixed-frequency methods. This is
beneficial for applications where data privacy is critical, such as:
o Industrial control systems
o Smart grid communication
o Secure data transmission for remote sensors
o Hobbyist projects involving sensitive data transfer
• Improved Interference Resistance: By constantly hopping across frequencies, FHSS
significantly reduces the impact of narrowband interference sources. This ensures
reliable communication in environments with potential signal disruptions, such as:
o Wireless sensor networks deployed in urban areas
o Remote data acquisition systems in industrial settings
o Short-range communication for robotics or automation applications
• Cost-Effective Implementation: Utilizing Arduino and the RFM69 module provides a
relatively inexpensive platform for developing and deploying FHSS communication
systems. This makes the technology more accessible for educational purposes, hobbyist
projects, and potentially low-budget industrial applications.
Conclusion
Mini Project report 2024
This project successfully demonstrated the implementation of a secure and robust data
transmission system using FHSS on Arduino with the RFM69 module. It achieved high data
transmission success rates, maintained data integrity, and operated with acceptable latency.
The project also highlighted the challenges faced with level shifter selection for voltage level
conversion and offered solutions for reliable communication.
This project serves as a valuable foundation for further exploration and development of secure
and reliable wireless communication solutions using FHSS technology.
Future Scope
This project opens doors for exciting advancements in the field of secure wireless
communication:
Next phase
Mini Project report 2024
The next phase would be to build on the existing setup and to include voice transmittion system
this could be done by implementing an SD card module and a code to manage to read the .mkv
file in the sd card .Then this is read by the arduino and the code converts the said data into
packets to send via the RFM69 module.
The reciver setup must include a speaker setup to enable the arduino to output the data as
sound or music.
Links
1. https://cdn-learn.adafruit.com/downloads/pdf/adafruit-rfm69hcw-and-rfm96-rfm95-rfm98-
lora-packet-padio-breakouts.pdf
2. wikipedia.com
3. https://learn.adafruit.com/adafruit-rfm69hcw-and-rfm96-rfm95-rfm98-lora-packet-padio-
breakouts/using-the-rfm69-radio
4. https://www.faranux.com/product/rfm69w-868mhz-20dbm-hoperf-wireless-transceiver-
mg19-rfm69w/