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!


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 PinArduino Pin
2. VCC5V
3. TXDPin D6
4. RXDPin D5
5. SignalGroundGND
6. AXTDUnconnected
7. BTXDUnconnected
9. RESETUnconnected

Pinouts for Serial Transmitter


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!");


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!