Difference between revisions of "HW-9 VFO"

From Land Boards Wiki
Jump to navigation Jump to search
Line 65: Line 65:
  
 
=== 128x32 OLED ===
 
=== 128x32 OLED ===
 +
 +
[[File:Si5351_003_720px.jpg]]
  
 
* [https://www.ebay.com/itm/2pcs-0-91-128x32-IIC-I2C-White-OLED-LCD-Display-DIY-Module-For-Arduino/293688288048?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649 Ebay]
 
* [https://www.ebay.com/itm/2pcs-0-91-128x32-IIC-I2C-White-OLED-LCD-Display-DIY-Module-For-Arduino/293688288048?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649 Ebay]

Revision as of 19:24, 9 October 2020

This is a work in process - Gathering pieces.

HW-9.PNG

Features

Replace HW-9 internal VFO with a digital VFO

  • HW-9 VFO has legendary issues
    • Mechanical issues with vernier
    • Drift due to thermal
    • Lack of resolution
    • Backwards dial
  • Fits within HW-9 VFO Box
  • Controls Tx/Rx/BFO frequencies with rotary encoder
    • 10 Hz steps
  • DD1306 OLED Display
    • I2C Interface
    • "Curved" display
  • Uses RIT control on HW-9
    • +/- 1 KHz RIT
  • Blue Pill Microprocessor
    • Arduino compatible
    • 3.3V
  • Understands band switch for MHz displayed
  • Si5351 Oscillator
    • I2C Interface
    • 3 Outputs
      • Transmit frequency
      • Receiver frequency include offset plus RIT
      • BFO frequency
    • Low pass filters to turn square waves to sine waves
    • 27 MHz crystal

Schematic

VFO-001-SCHEMATIC.PNG

Connections to Radio

  • RIT pot
    • Connects to Analog input
      • Polled occasionally while in receive
  • Band switch
    • SW1 9V
  • T/R - transmit/receive

Parts

Blue Pill Card

STM32F103C8T6-Blue-Pill-Pin-Layout.gif

  • 3.3V operation work without level shifters for I2C
    • OLED can run from 3.3V
    • Si5351 can only run from 3.3V
  • Used right angle headers and Dupont cables
  • Replaced BOOT 0,1 jumpers
    • Jumper on BOOT1
    • Switch on BOOT0 - easier to download code
  • Download via serial
  • Arduino IDE

128x32 OLED

Si5351 003 720px.jpg

OLED128x32.PNG

Arduino Library for OLED

U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);   // STM32, Ebay OLED
  u8g2.setFont(u8g2_font_ncenB14_tr);
Hello World Code
U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);   // STM32, Ebay OLED

void setup(void) {
  u8g2.begin();
}

void loop(void) {
  u8g2.clearBuffer();			// clear the internal memory
  u8g2.setFont(u8g2_font_ncenB08_tr);	// choose a suitable font
  u8g2.drawStr(0,10,"Hello World!");	// write something to the internal memory
  u8g2.sendBuffer();			// transfer internal memory to the display
  delay(1000);  
}

Rotary Encoder/Breakout Board

RotaryEncoderCAD.PNG


Si5351 004 720px.jpg

Si5351 Frequency Generator

Si5351 001 720px.jpg

VFO3.PNG

Si5351 002 720px.jpg

  • I2C Daisy-chain connector
  • 3 outputs
    • Tx
    • Rx (may not need to use separate output)
    • BFO - could be adjusted

VFO TX

  • 250 KHz range
    • From 5.9993-5.7493 MHz

VFO RX

  • RIT knob is taken in through an A/D and adjusts the receive frequency plus/minus 1 KHz

BFO

  • 8.8314 MHz in receive
  • 8.8307 MHz in transmit
  • 700 Hz difference but could be adjusted

Low Pass Filters

LPF.1.5.sch.png

LPF.1.5.pcb.png


LCFilterValues.PNG

  • VFO and BFO frequencies are outside the bands (deliberately to void collisions)

BFO Filter

  • 8.8314 MHz in receive
  • 8.8307 MHz in transmit

BFO Filter.PNG

BFO Filter IL.PNG

Libraries/Example Code

Videos