Roger Beep

Adding a beep to your microphone audio to signify end of transmission.

Design Intent

I have a soft voice, and tend to undermodulate when I am transmitting. This is especially problematic when using Single Sideband on a noisy High Frequency path. So I have borrowed this idea from a commercial HF radio company (which borrowed it from NASA): send a short tone or beep at the end of your transmission to signifiy to the other party that you have finished talking.

There are many roger beep circuits available on the net which I could have copied, but where's the fun in that? Also, I wanted the following features:

  • A really clean tone, not a harsh square-wave.
  • A really small circuit, to fit into most small hand microphones.
  • A simple way of disabling the beep if required.
  • A low noise circuit - no oscillators unnecesarily disrupting reception .
So out came the ATTINY-85. A truly remarkable 8 bit microcontroller in a SOIC8 chip.

Hardware Design

Did i mention I wanted a low parts count? The TINY-85 does pretty much all of the work here. All inputs are interrupt driven, and the output is a PWM signal based on a sine-wave look-up table. Agressive use of power-down modes keeps things quiet during receive too.

Roger Beep schematic.

Front of microphone

The front showing a beep enable pushbutton and status LED.

Inside the microphone

It really does fit!.

The PCB wiring

Wiring is a bit messy, but it all works really well.

Software Design

This would have to be one of the simplest (and most fun) projects I've ever worked on. The ATTINY-85 is a joy to use, and packed full of features. It's often overlooked as a "serious microcontroller" due to its low pin count, but I found it ideal for this project, for the following reasons:
  • Pin-Change interrupts.
  • 2 Timers.
  • Built-in clock.
  • PLL multiplier.
  • some EEPROM for NV parameter storage.
  • Deep Sleep modes.
The code uses sine look-up table to drive a Pulse Width Modulator to generate a reasonably pure sinewave output. Only minimal filtering is then required to give that nice clean tone.
The sinewave lookup table is simplicity itself:

//	Sinewave Lookup Table
//	y = 91*(0.5+0.5*cos(2*pi*n/N)
//	N = 32, n:{0..31}
//  Forced into FLASH space to conserve RAM

prog_uchar sinetable[] PROGMEM = {0,2,8,18,31,46,65,84,104,125,144,163,

All that is required of the micro is to wake up on a Push To Talk (PTT) switch interrupt and hold down the PTT line to the radio. Once the microphone PTT switch is released, generate the beep, release radio PTT and go back to sleep.

A simple and fun project for a rainy day

And here's what it sounds like:


Moon Tracker ver 3
22/03/19 A new version.
144MHz EME Array
20/02/19 Resurrect the old 144MHz high gain antenna array.
06/11/17 Make allowances for the Thunderbolt date rollover issue.
1296MHz Activities
26/06/16 Antenna Improvements.
Moon Tracker ver 2
23/06/16 A new version.
1296MHz Activities
29/09/15 Build a small dish.
26/07/15 Low-noise Preamplifier Design.
1296MHz Activities
19/04/15 Power Amplifier Design.
1296MHz Activities
13/01/15 Design and build a tower for 3m parabolic dish.
30/09/14 LCD monitor for my Thunderbolt GPSDO.
02/08/14 A home-made Noise Figure Meter.
Moon Tracker Update
09/04/14 New rotator and better position feedback sensors added.
1296MHz Antenna
09/02/14 Begin construction of a 1296MHz feed horn for the 3m dish.
1296MHz Activities
28/01/14 After success at 144MHz, operation at 1296MHz is planned.
Moon Tracker Update
11/09/13 Added a Background Sky Temperature calculation into the Moon Tracker.
Moon Tracker Update
28/08/13 Just Added some software limits to rotation of motors.
Roger Beep installed
09/08/13 Added a Roger Beep to my radio.
Andy's Website
06/05/13 Start build of website.


Andy, VK3ANX
Yarra Valley, Australia