GPS Frequency Reference - Remotely Controled GPS Module via RS-232
Modules NEO by U-blox are very popular GNSS receivers in these days. I have bought NEO-7M GPS/GLONASS module. A synchronized time signal can be also found on the board and you can control the frequency as well as the duty-cycle via a serial port (3.3V logic). The output signal can be used e.g. for disciplined oscillators. All important information about this module is in its datasheet. A disadvantage is that the datasheet is very complex.
I have written a piece of software in Python with WX graphical interface for my experiments. This software can also run on Raspberry Pi and it allows to control the output frequency and the duty-cycle in locked and unlocked mode via RS-232. If I want to use a different device e.g. a microcontroller I can just use the code generated by the application (the last text box in the form) for RS-232 request so the application is still useful.
I have also placed the module into a small plastic box as you can see in the following images.
1. GNSS module with an antenna, mechanical construction
GNSS Module U-blox NEO-7M
DC input, RS-232, LED indicating the output frequency and BNC connector - the output signal
2. RS-232 communication test, measurement
Controlling the module with my application and Raspberry Pi.
The output frequency (Yellow) is changing from 1Hz to 10Hz after my request (Purple)
Purple - RS-232 (TX) - Request sent via the new application
Blue - RS-232 (RX) shows the received NMEA messages
3. Results - output signal measurement
For presenting the measured data I use my software connected to an oscilloscope via LXI bus which I have already presented here.
The time pulse signal is connected to a resistor and a LED diode on the board. I removed both the LED diode and the resistor, so the BNC connector was connected directly to the output. The following figures present the measured time pulse signal:
a) Output frequency: 10 kHz
b) Output frequency: 100 kHz
c) Output frequency: 1 MHz
Rigol Oscilloscope Remote Control with LXI Bus
I have written a piece of code in Python for my oscilloscope Rigol DS1054Z. It allows me to read measured data in time domain, save them or convert them to frequency domain. For the communication with the oscilloscope I use LXI (LAN eXtensions for Instrumentation) bus which uses Ethernet interface and therefore the communication with the device is very comfortable. I see the main advantage of this software mainly in saving my measured data as it is far more user-friendly in comparison with USB memory stick. Secondly, in my opinion, it is easier to read FFT data in my application than on the oscilloscope. I have used multi-threading so the application is fully responsive even though the application read and present the data continuously, the graphs are automatically centered based on the received data and of course, the axis labels change automatically as well. I hope I will have time to add more functions in the future. Take a look at the following pictures.
Screenshot 1: Settings - IP configuration
Screenshot 2: Main Frame, Time Domain
Screenshot 3: Main Frame, Time Domain
Screenshot 4: Main Frame, Frequency Domain
Exported Data: Time Domain
Exported Data: Frequency Domain
Homemade Low-Pass Filter
I made this filter for one of my friend. Unfortunately, we were below time pressure so I couldn't tune the S11 parameters properly. On the other hand, the cutoff frequency was correct and I am very happy that it worked well for his application. Take a look at the following images.
If you design a similar filter, make sure that the legs of the capacitors are as short as possible. It will help you to get better performance.
Smith Chart - Examples
1) Normalized impedance, short circuit
2) Normalized impedance, open circuit
3) Zin = ?, Z_l = (200+j100) Ω , Z_0 = 50 Ω, l = 2m, λ_tl = 10 m
If you like Smith chart with both impedance and admittance coordinates, you will find this chart from microwaves101.com useful. (external link)