Giter Site home page Giter Site logo

peterbmarks / arduino_si5351_vfo_controller_keyer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from prt459/arduino_si5351_vfo_controller_keyer

0.0 1.0 0.0 135 KB

A controller for a multi-band homebrew SSB/CW transceiver, targeting Arduino Nano and si5351 PLL.

Home Page: https://vk3hn.wordpress.com/

License: GNU General Public License v3.0

C++ 97.34% C 2.66%

arduino_si5351_vfo_controller_keyer's Introduction

vk3hn_VFO_controller

A PLL VFO/controller for a multi-band SSB/CW transceiver, targeting Arduino Nano and si5351. The script is SP_VFO_Controller.ino. An initialiser script must be executed once to initialise EEPROM.

This script has been used for a number of homebrew transceiver, receiver and transmitter projects at VH3HN, each using the Arduino Nano/si5351 combination. All these projects share this common script. By using a common script, a bug fixed or parameter changed is done once, in one place only, and gets deployed the next time a particuar transceiver's Arduino is flashed.

'SP_' stands for Summit Prowler. Summit Prowlers are scratch-built QRP tranceivers I have been building for SOTA activations since 2017. The fourth, fifth and sixth rigs in this series are all multiband SSB/CW single conversion (high-side VFO) superhets. SP_VFO_Controller.ino is the VFO/controller script for all of these rigs, and other projects as well.

Code blocks and unique code paths are selected for each project using the C preprocessor directives (#define's). At the top of the script, each project is given a #define'd label, which is used to control other label and variable declarations, code paths and optional code blocks. Only one project label should be #define'd at any time, all others should be commented.

For discussion of this project and some information to help you decide if this is the script for you, see this repository's Wiki in this repository.

Please feel free to raise an issue, defect or feature request on Github. Please let me know if you use this code, with or without change.

-- Paul Taylor, VK3HN. 25 July 2019. -- updated 13/11/2019.

Feature summary:

  • Uses si5351 clock 0 for VFO
  • optionally uses si5351 clock 2 for the BFO; high-side IF is parameterised;
  • automatically selects USB or LSB BFO based on current receiver frequency
  • supports any number of VFOs (defaults to 10)
  • extensive (and hopefully descriptive) use of #DEFINEs at the top of the file for parameter setting
  • assumes an HD7044 style 16*2 LCD, also 20x4, 8x2; also supports OLED (128x64)
  • writes VFO, selected VFO, and other current parameters to EEPROM for power-on restoration
  • includes s-meter code
  • includes code to use I2C to a PCF8574 for band switching (separate control of band pass and low pass) filters
  • includes interrupt damping (to slow down fast optical encoders)
  • PTT line sensing, receiver muting and T/R relay driver, with T/R sequencing
  • includes code for the ND6T power/SWR monitoring and metering
  • memory CW keyer, optional adjustable speed, semi-break-in, any number of (hard coded) pre-canned CW messages
  • generates CW carrier via si5351 CLK#1, with 700Hz CW offset above or below receiver frequency, depending on the band
  • generates 700Hz CW sidetone on a digital output, easily filtered for injection into the receiver's audio stage
  • includes a Tune function (behind a front panel long-push push button) that drops a continuous carrier on the current frequency (no offset) for a parameterised 3 seconds, for testing, tune-up etc.

Notes:

Libraries: The script uses commonly available libraries; here are the ones I used. Substitutes should work, but code changes may be necessary:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.