Difference between revisions of "VFO-001"

From Land Boards Wiki
Jump to navigation Jump to search
Line 15: Line 15:
 
** 3 Outputs
 
** 3 Outputs
 
** 27 MHz crystal
 
** 27 MHz crystal
 +
* 3.3V operation works without level shifters for I2C
 +
** OLED runs from 3.3V
 +
** Si5351 can only run from 3.3V
 +
* Used right angle headers and Dupont cables for low profile
 +
* Replaced BOOT 0,1 jumpers
 +
** Wire jumper on BOOT1
 +
** Switch on BOOT0 - easier to download code
 +
* Download via serial
 +
* Programmed via Arduino IDE
 +
 
* [https://www.adafruit.com/product/2230 Extruded Aluminum Enclosure Box - 94mm x 83mm x 30mm]
 
* [https://www.adafruit.com/product/2230 Extruded Aluminum Enclosure Box - 94mm x 83mm x 30mm]
  

Revision as of 12:47, 30 October 2020

VFO-001 P132-720px.jpg

Features

  • DD1306 OLED Display
    • I2C Interface
  • Rotary Encoder Break Out Board
  • STM32 (Blue Pill Board) Microprocessor
    • Arduino compatible
    • 3.3V
  • Si5351 Oscillator Breakout Board
  • 10 KHz - 40 MHz tuning range
    • 100Hz/1KHz/10KHz/100KHz/1MHz/10MHz steps
    • I2C Interface
    • 3 Outputs
    • 27 MHz crystal
  • 3.3V operation works without level shifters for I2C
    • OLED runs from 3.3V
    • Si5351 can only run from 3.3V
  • Used right angle headers and Dupont cables for low profile
  • Replaced BOOT 0,1 jumpers
    • Wire jumper on BOOT1
    • Switch on BOOT0 - easier to download code
  • Download via serial
  • Programmed via Arduino IDE

Schematic

VFO-001-SCHEMATIC.PNG

Parts

Blue Pill Card

STM32F103C8T6-Blue-Pill-Pin-Layout.gif

128x32 OLED

Si5351 003 720px.jpg

OLED128x32.PNG

Libraries/Example Code

Land Boards Code

Libraries used in this app

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);  
}

Others

Videos