Skip to content

Latest commit

 

History

History
76 lines (51 loc) · 4.14 KB

README.md

File metadata and controls

76 lines (51 loc) · 4.14 KB

RF Signal Generator (YSG)

A signal generator that integrates with the YView network although it will run autonomously.

Features

  • Provides a signal from 137.5 MHz to 4400 MHz with an accuracy of +/- 0.5 ppm.
  • Powered from a micro USB connector.
  • Connects to a WiFi network.
  • Control via a web interface.
  • The YSG command line tool allows remote control of the device to enable it's use in an automated test environment.

Web Interface

The web interface can be accessed using a web browser over the WiFi interface.

RF outputs Tab

This tab allows the user to set

  • Set the output frequency
  • Set the output level
  • Turn the output on and off

webtab1

Configuration Tab

This tab allows the user to set

  • The device name (this appears at the top of the web page).
  • The group name. This is a YView network function (see YView GUI) for more details. If the device is not in a YView network then this option can be left blank.
  • Enable syslog. Syslog output is sent to the ICONS GW server (See https://github.com/pjaos/yview/tree/master/icons_gw) for more details. If the device is not in a YView network then this option can be left unselected.

webtab2

Hardware

A nodeMCU ESP 32 board is the CPU platform and provides WiFi connectivity.

NodeMCU ESP32 Board

An ADF4350 development board was connected to the above board via an SPI bus. The following is a picture of the board as supplied.

ADF4350 Development Board

I modified this board as follows in order to increase the accuracy and stability of the clocking on the device. This also allows the ESP32 platform to calibrate the clock.

  • Replaced the 10 MHZ OSC with an IQD CFTP-126 TCXO (RS part number 148-5365).
  • Connect the control voltage pin of this TCXO to Pin 3 (next to VCC pin) on the interface connector.

The following are picture of the board after modification. ADF4350 Development Board ADF4350 Development Board

The schematic folder contains the Kicad schematic of the connections between the above modules. Click here for a PDF of the schematic.

Once the electronics and software was complete I designed and 3D printed an ABS case as shown in the following pictures of the finished product.

The 3D printed case includes light pipes to bring out the LED's. The Red LED indicates power to the device. The Blue LED indicates the WiFi is connected. The hole nearest the LED's can be used to reset the device. The hole furthest from the LED's can be used to setup the WiFi on the device if held down for 5 seconds.

Software

The device software is written in C (the source is available here). As part of this project I wrote the ADF4350 device driver from scratch. The software makes extensive use of Mongoose OS. Mongoose OS was chosen because as it provides many features (libraries including configuratin management, RPC etc) on top of the FreeRTOS SDK from Esspessif which allows faster product development.

Calibration

These are the steps required to calibrate the output frequency of the YSG device.

  • Power up the YSG device.
  • Use the ysg.py tool to set the RF output frequency (--freq argument) to 2500 MHz.
  • Power up a spectrum analyser capable of measuring a 2.5 GHz signal.
  • Wait 30 minutes.
  • Connect the spectrum analyser to the RF output and set it to a centre frequency of 2500 MHz with a span of 1 MHz.
  • Use the ysg.py tool (--cal argument) to adjust the output frequency calibration value. Start with the calibration value around 140 and adjust up/down until the closest value to 2500 MHz is found. You will need to progressively reduce the spectrum analyser span while doing this.

The calibration value is automatically stored persistently in the YSG device. The accuracy of the calibration will depend upon the calibration accuracy of the spectrum analyser used.