GithubHelp home page GithubHelp logo

repeatercontroller's Introduction

Ham radio repeater controller
-----------------------------

This is an arduino sketch aiming at providing a flexible
repeater controller.

The code is provided under GNU GPL v3

Features:
- Fully non-blocking code
- Easy to modify PIN allocation
- Programmable delays
- Programmable morse messages
- Opening controllable by 1750, CTCSS, Carrier
- Programmable Beacon
- Too long PTT timer

Configurations:
- Pins (Pin Allocations)
- DELAYS
INACTIVE_CLOSE: delay from last PTT to repeater closing
RELEASE_BEEP: delay between PTT release and roger beep
BEEP_LENGTH: when single beep is used, length of the beep
PTT_ON_DELAY: Time between PTT on and morse
PTT_OFF_DELAY: Time between morse and PTT off
CARRIER_1750_DELAY: Required 1750/Carrier length before opening

BEACON_DELAY: time between two beacons when repeater is closed
TIMEOUT_DELAY: closes repeater if PTT is on for TIMEOUT_DELAY ms
MORSE_DOT: time of the morse dot in ms

USE_1750_OPEN: Open repeater when 1750 pin is asserted (1 for enabled)
USE_CTCSS_OPEN: Open repeater when CTCSS pin is asserted (1 for enabled)
USE_CARRIER_OPEN: Open repeater when Carrier pin is asserted (1 for enabled)

USE_CTCSS_BUSY: active when CTCSS pin is asserted (1 for enabled)
USE_CARRIER_BUSY: active when Carrier pin is asserted (1 for enabled)

ROGER_TONE: use one single tone beep (exclusive with ROGER_K)
ROGER_K: use morse K (exclusive with ROGER_TONE)

BEEP_FREQ: Roger beep frequency
MORSE_FREQ: Morse frequency

Avoid modifying the other defines unless you know what you are doing...

- Messages
openMsg: message when repeater is opened
closeMsg: message when the repeater is closing
kMsg: message for roger beep
beaconMsg: ID message when repeater is closed
timeoutMsg: message when PTT is held for too long

Code internals:
In the setup function, pins are configured in ioSetup function.
Serial is enabled for debug purposes. And Watchdog is enabled.

In the loop function, PTT is controlled, repeater is controlled
to be opened or closed. Morse is generated and beacon is controlled.

Watchdog is reset every loop iteration and timeout is 8 s.

Repeater can be in 3 states:
REPEATER_CLOSED: Repeater is IDLE, identifying itself every 
BEACON_DELAY. If the 1750, CTCSS or Carrier pin is enabled, State goes to 
REPEATER_OPEN.

REPEATER_OPEN: Detects Sql openings, Generates Roger beep
and timeout timer

REPEATER_MORSE: Currently sending morse, keeping PTT open before closing

repeatercontroller's People

Contributors

svancau avatar

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.