PTTTimer

From NebarnixWiki
Revision as of 09:26, 24 August 2021 by NebarnixWikiSysop (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Problem Statement

I have an IC-27A that I use to check into a local ham radio repeater net, and more recently, I became a net control for the net. When talking on FM through a repeater, it is common for the repeaters to have a timeout to prevent a user's butt-dial stuck PTT from taking an entire possible multi-state repeater system down. In this case, it will lock out that single repeater with a message about "repeater timeout, release PTT".

Talking on a radio for more than 3 minutes will cause the repeater to lock you out, which you won't realize because you will be happily gabbing away. In order to prevent such an embarrassment, new radios have transmit alarms and timers to keep you from transmitting for more than a few minutes. But what to do with an old radio that doesn't have this feature?

I want to design a small system that will go between the microphone and the radio that will intercept the PTT signal in order to give a visual count-down timer as well as an audible alarm.

Design

I decided to add a piezo buzzer to the system as opposed to injecting an audio signal into the microphone. This prevents others from experiencing the alarm and alerts even if the volume is turned down (accidental PTT). This also simplifies the design as no interface with the shielded mic audio signal is needed.

I chose an Arduino Nano and a small OLED display. I used a ribbon cable to route all of the signals, which fits neatly under the Nano between the pin headers. I did end up running the mic audio in a shielded wire, as the introduced noise was to great, something that is not unexpected.

OLED Display RFI

Something I was not expecting was that the OLED display itself generates a rather significant amount of VHF interference, enough to unsquelch the radio and ride over and received OR transmitted audio. No decoupling, inductive or capacitive seemed to help. Gradually I came to the realization that this was likely due to the 8V charge pump inside the OLED display which allows it to run on 3.3V and 5V yet still achieve full brightness. Using some software I2C commands, it was possible to disable the charge pump and use an external 8V pin. A jumper was installed to provide 5V to the pin, which does result in a slightly dimmer display, yet one that is completely readable even in full sun. Success!

Timers

I implemented two timers with three display modes. After PTT is pressed, a countdown timer begins at 3 minutes. This timer is reset any time the PTT button is pressed. During the last 5 seconds, an alarm sounds to warn the user they need to unkey quickly. When the PTT is not pressed, the timer counts up to 15 minutes to indicate how much time has passed BETWEEN transmissions, very useful for net control duties!

A second count-down timer is also started from 10 minutes at a PTT press, but it does NOT reset until it clears. The purpose of this second timer, which displays under the PTT timer is to keep track of FCC ID requirements that one must identify ones FCC callsign every 10 minutes. At the expiration of 10 minutes a small 'chirp' is sounded that is easy to hear but not intrusive as an audible reminder for the station to ID. This has proved extremely useful during net control as one quickly loses track of the time.

Code

See PTTTimer on Github

Results

This has been a LIFE SAVER and removes a huge anxiety about timing out the repeater. I would pathologically break my signal every 20 seconds because I have a habit of being long winded and completely losing track of time. Now I can safely talk without the stress of being the jerk who locks out the repeater!!