Difference between revisions of "VFO-002"

From Land Boards Wiki
Jump to navigation Jump to search
Line 97: Line 97:
 
** Rx (may not need to use separate output)
 
** Rx (may not need to use separate output)
 
** BFO - could be adjusted
 
** BFO - could be adjusted
 +
 +
== Enclosure ==
 +
 +
[[File:Box-profile-697px.jpg]]
  
 
== Libraries/Example Code ==
 
== Libraries/Example Code ==
 +
 
* [https://github.com/land-boards/lb-Arduino-Code/tree/master/STM32/VFO_Si5351 Land Boards Application]
 
* [https://github.com/land-boards/lb-Arduino-Code/tree/master/STM32/VFO_Si5351 Land Boards Application]
 
* [https://github.com/pu2clr/VFO_BFO_OLED_ARDUINO VFO and BFO with Si5351A, OLED and Arduino]
 
* [https://github.com/pu2clr/VFO_BFO_OLED_ARDUINO VFO and BFO with Si5351A, OLED and Arduino]

Revision as of 12:38, 17 October 2020

This is a work in process

VFO-002-652px.png

Features

  • Fits within standard extruded enclosure
  • Controls Tx/Rx/BFO frequencies with rotary encoder
    • 100 Hz, 1 KHz, 10 KHz, 100 KHz, 1 MHz, 10 MHz steps
  • DD1306 OLED Display
    • I2C Interface
    • "Curved" display
  • Uses RIT control on HW-9
    • +/- 1 KHz RIT
  • Blue Pill Microprocessor
    • Arduino compatible
    • 3.3V
  • Si5351 Oscillator
    • I2C Interface
    • 3 Outputs
    • 25/27 MHz crystal

Schematic

VFO-001-SCHEMATIC.PNG

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

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

Si5351 Frequency Generator

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

Enclosure

Box-profile-697px.jpg

Libraries/Example Code

Videos