AT1846S GPIO Guide for HamShield and HamShield Mini

The GPIO lines on the AT1846S are broken out on both HamShield and HamShield Mini. While optional, the GPIO lines can provide a powerful status indication, as well as providing additional digital outputs.

⚠️ All GPIO lines can be used EXCEPT GPIO4 and GPIO5. These control the internal RF switching circuitry and power amplifier. They are EXCLUSIVE to this use. Controlling the GPIOs or connecting anything to them can cause permanent damage to the device. ⚠️

All GPIO lines can be configured to have High-Z, Low, or High logic levels.

Special GPIO Functions

In addition to these standard signals, a special function for each GPIO can be configured:

GPIO

Special Function

Description

GPIO7

VOX

Voice Activated Transmit Indicator

GPIO6

SQ/CTCSS/CDCSS

TBD

GPIO5

TX On

Controls RF switch and PA, DO NOT USE

GPIO4

RX On

Controls RF switch and PA, DO NOT USE

GPIO3

SDO

TBD

GPIO2

INT

Interrupt line (see notes below)

GPIO1

Code In/Code Out

TBD

GPIO0

CSS/CSS_IN/CSS_OUT

TBD

Discussion of TBD Items

GPIO6: It has been advised that GPIO6 will go high if a valid CTCSS or CDCSS tone is detected, and if no tone is configured, will go high if the signal goes above the squelch level. This can be useful in detecting a valid signal for repeater operations, such as a COR (Carrier Operated Relay), to turn on the other transmitter.

GPIO3: It is believed this is for use of the alternate 3 wire serial interface mode.

GPIO1: It is believed that this is the programming interface for the internal FM modem (modulator/demodulator). Since the AT1846S is actually a software defined radio, other modems could possibly be loaded on. To this date, Auctus has not released any such additional modems nor wishes to disclose how this would be done or what DSP core is utilized.

GPIO0: It is believed that this is for externally generated and decoded CTCSS signals, but it is not entirely known yet how it works.

Interrupt Line Options

GPIO2 can serve as an output interrupt when a variety of conditions are met. These can be configured using the INT register, as shown below. While it has not been tested, it might be possible to enable multiple interrupt types, and read the type of the interrupt on the FLAG register.