Phase Synchronization for Ettus X310”
I just got a hold of some surplus parts in our robotics lab, so I made one into a quick FSK serial transmitter out of the LM96 /XM modem for 915 MHz. Take a look!
Setup
I used an Arduino Uno microcontroller with the following code. I had the device in TTL Serial mode (no extra jumpers or configuration necessary and had the following pinout. I had to be more than forceful with some of the wires because they came stranded.
Radio Pin | Arduino Pin |
1. GND | GND |
2. VCC | 5V |
3. TXD | Pin D6 |
4. RXD | Pin D5 |
5. SignalGround | GND |
6. AXTD | Unconnected |
7. BTXD | Unconnected |
8. SLEEP | GND |
9. RESET | Unconnected |
Pinouts for Serial Transmitter
Code
The code uses a Software Serial example modified to transmit continuously. First, you have to modify the TX and RX fields accordingly. The TX of the radio is the RX of the arduino, and vice versa.
SoftwareSerial mySerial(6, 5); // RX, TX
Next, you can change the loop() script to continuously transmit without a serial input message:
void loop() { // run over and over
Serial.write("This is a test!");
mySerial.write("This is a test!");
Reception
This module transmits clearly when received by a nearby RTL-SDR:
Spectrum of Module
The signal clearly has a frequency shift of about 800 kHz, which is not unnoticeable.
I created a flowgraph to analyze and decode the information, but both packet modulation and demodulation will need some work in that regard. Here is a quick flowgraph and visual display:
Flowgraph with simple FFT and GFSK demod
Spectrum on HackRF and Time Sink
More work has to be done on the FSK decoding, which will be its own entire blog post. Thanks for stopping by!