Project in progress
External Roger Beep for Icom Transceivers

External Roger Beep for Icom Transceivers

This project adds a "roger beep" function to any Icom amateur radio transceiver equipped with a 13-pin accessory port.

  • 7 views
  • 0 comments
  • 0 respects

Components and supplies

About this project

This project adds a "roger beep" function to any Icom amateur radio transceiver equipped with a 13-pin accessory connector.

It uses signals on the accessory port to read PTT (push-to-talk) status from the operator, and sends 2 beeps on the air while holding PTT at the end of transmissions.

It can be turned on or off with the "tuner" button on the transceiver. When the "tuner" button is pressed, the roger beep function turns on. Pressing on "tuner" button again turns it off.

If the Icom has a different accessory connector, this project could be adapted as long as the connector provides these signals: PTT, TX audio (mic), +12V DC, Ground. "Tuner" signal is optional.

It has been developed on an Arduino Nano for minimum space, but could be easily adapted to Arduino Uno or any other entry-level Arduino microcontroller.

Code

Arduino Roger Beep for Icom IC-7000C/C++
/*
This program enables a "roger beep" function on an Arduino for hook-up on an Icom amateur radio transceiver.
PPT out: digital pin 7, out; activates PTT (Push-To-Talk) on the transceiver.
PTT in: analog pin A3, in; Reads PTT status from operator (TX=121; TX-PTT=166; RX=1023).
Audio out: digital pin 8, out; roger beep audio to microphone (TX audio) input.
Tune read: digital pin 9, in; roger beep on-off activated by "tune" signal.

C - do  - 261.63 Hz
D - re  - 293.66 Hz
E - mi  - 329.63 Hz
F - fa  - 349.23 Hz
G - so  - 392.00 Hz
A - la  - 440.00 Hz
B - te  - 493.88 Hz
C - do  - 523.25 Hz
*/

int pttRead = 1023; // Reads PTT status from operator (initialize to RX).
int tuneRead = 0; // Reads "tune" signal pulse (initialize to OFF).
int tuneReadPrevious = 0; // Memorize "tune" signal previous level (initilize to OFF).
int tuneCounter = 1; // Counting the number or times "tune" command has been used.

//--------------------------------------------------------------------------

void setup() {  // Initializations. Executed one time only at startup (after reboot).
   pinMode(7, OUTPUT);  // Initialize digital pin 7 (PTT control) as an output.
   digitalWrite(7, LOW);  // Initialize PTT at OFF (pin 7).
   pinMode(8, OUTPUT);  // Initialize digital pin 8 (TX Audio, Roger Beep) as an output.
   pinMode(9, INPUT);  // Initialize digital pin 9 (tune read) as an input.
}

//--------------------------------------------------------------------------

void loop() { // Main function, generates roger beep (executed endlessly).

  pttRead = analogRead(3); // Read PTT input from operator on analog pin 3.

  if (tuneDetect() ==1) { // Call tuneDetect function.  If returned value = 1, generate Roger Beep.  Else, don't generate it.
    
    if (pttRead < 140) {  // If operator presses on PTT (beginning of a transmission).
      digitalWrite(7, HIGH);   // Activate and hold PTT (activate Q1 transistor).
    }

    if ((pttRead > 140) && (pttRead < 400)) {  // If operator releases PTT (end of transmission), while PTT is maintained by transistor.
      tone(8, 523, 200); delay(200); // Play note "DO" during 200 ms.
      tone(8, 392, 200); delay(200); // Play note "SO" during 200 ms.
      digitalWrite(7, LOW);    // Release PTT (de-activate transistor).
    }
  }
}
//--------------------------------------------------------------------------

int tuneDetect() { // Fonction that detects "tune" pulse from transceiver.

  tuneRead = digitalRead(9); // Read logic level on "tuner" signal.

  if (tuneRead > tuneReadPrevious) { // If Tune logic level = 1 and was at 0 previously (has gone from 0 to 1).
    if (tuneCounter==0) {tuneCounter = 1;} // change (flip) counter level, turn on roger beep function.
    else if (tuneCounter==1) {tuneCounter = 0;} // change (flip) counter level, turn off roger beep function.
    }

  tuneReadPrevious = tuneRead; // Memorize previous tuneRead status, for next use.

  return(tuneCounter); // Return to main function ("void loop").
}
//--------------------------------------------------------------------------

Custom parts and enclosures

arduino_roger_beep_-_icom_ic-7000_-_montage_(1)_ESag6wzRaC.jpg
Arduino roger beep   icom ic 7000   montage (1) esag6wzrac
arduino_roger_beep_-_icom_ic-7000_-_montage_(2)_aPHDjGGt3j.jpg
Arduino roger beep   icom ic 7000   montage (2) aphdjggt3j
arduino_roger_beep_-_icom_ic-7000_-_montage_(3)_WknIYOcZbx.jpg
Arduino roger beep   icom ic 7000   montage (3) wkniyoczbx
arduino_roger_beep_-_icom_ic-7000_-_montage_(4)_JxMioLVPaU.jpg
Arduino roger beep   icom ic 7000   montage (4) jxmiolvpau
arduino_roger_beep_-_icom_ic-7000_-_montage_(5)_8NUnQRSZTy.jpg
Arduino roger beep   icom ic 7000   montage (5) 8nunqrszty
arduino_roger_beep_-_icom_ic-7000_-_montage_(6)_CDO6tFPV0q.jpg
Arduino roger beep   icom ic 7000   montage (6) cdo6tfpv0q
arduino_roger_beep_-_icom_ic-7000_-_montage_(7)_hGzd2kYfR9.jpg
Arduino roger beep   icom ic 7000   montage (7) hgzd2kyfr9
arduino_roger_beep_-_icom_ic-7000_-_montage_(8)_BKzAAxwxlc.jpg
Arduino roger beep   icom ic 7000   montage (8) bkzaaxwxlc
arduino_roger_beep_-_icom_ic-7000_-_montage_(9)_tjuMsTn5QE.jpg
Arduino roger beep   icom ic 7000   montage (9) tjumstn5qe
arduino_roger_beep_-_icom_ic-7000_-_montage_(10)_YL8LkQUBSp.jpg
Arduino roger beep   icom ic 7000   montage (10) yl8lkqubsp
arduino_roger_beep_-_icom_ic-7000_-_montage_(11)_fy8Gceg9WQ.jpg
Arduino roger beep   icom ic 7000   montage (11) fy8gceg9wq

Schematics

Roger Beep for Icom radios - Schematic diagram
Arduino roger beep   icom ic 7000   schematic gjv0iz0zrx

Comments

Similar projects you might like

Soldering Iron Controller for Hakko 907 v.2

Project tutorial by Alexander

  • 26,431 views
  • 175 comments
  • 65 respects

Home Plant Watering System

Project tutorial by Alexander

  • 19,087 views
  • 2 comments
  • 51 respects

Soldering Iron Controller for Hakko 907

Project tutorial by Alexander

  • 33,619 views
  • 22 comments
  • 71 respects

Arduino Project: Burglar Zone Input Tester

Project tutorial by Cezarjar

  • 1,736 views
  • 2 comments
  • 9 respects

Arduino External Mouse Buttons

by fmattiussi

  • 710 views
  • 4 comments
  • 3 respects

32-Band Audio Spectrum Visualizer Analyzer

Project showcase by Shajeeb

  • 20,888 views
  • 59 comments
  • 140 respects
Add projectSign up / Login