Remote control¶
Remote control has two parts:
Transport - the connection used to reach the receiver.
Protocol - the set of commands or button events carried over that connection.
The receiver currently supports two transports: USB Serial and Bluetooth Low Energy. It also supports two protocols: the Ad hoc protocol and the Bluetooth HID protocol.
Transports¶
USB Serial¶
Enable Settings -> USB Port -> Ad hoc to use USB Serial with the ad hoc protocol.
Use PuTTY or Picocom to connect to the serial port. Alternatively, open the following web terminal in Google Chrome: https://www.serialterminal.com/. ESP32 documentation notes that the default serial settings are 115200 8N1, though 9600 8N1 may be a bit more reliable.
Bluetooth LE¶
Enable Settings -> Bluetooth to use Bluetooth LE in one of these modes:
Ad hoc - uses the same remote-control protocol as USB Serial, but over BLE.
HID - lets the receiver connect to supported Bluetooth remotes and keyboards.
Bluetooth support is experimental and may be unstable.
Local serial port over BLE¶
If you prefer using a normal local serial port, you can bridge the receiver’s BLE Ad hoc mode to one with the ble-serial utility.
First install uv https://docs.astral.sh/uv/getting-started/installation/
The following example commands are primarily for Linux and macOS:
Enable
Settings -> Bluetooth -> Ad hocon the receiver.Scan for the receiver over BLE:
uv tool run --from ble-serial ble-scan -s 6E400001-B5A3-F393-E0A9-E50E24DCCA9E
Example output:
Started general BLE scan
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX (rssi=-69): ATS-Mini
Finished general BLE scan
Start the bridge and replace the device id with the one from your scan result:
uv tool run --from ble-serial ble-serial -d XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
This creates a local serial port at /tmp/ttyBLE.
Open it with your terminal program:
picocom /tmp/ttyBLE -b115200
You can then use the same ad hoc commands documented below, but through the BLE-backed local serial port instead of USB serial.
On Windows this usually takes a few extra steps to expose the BLE link as a usable COM port. See the ble-serial project for platform-specific details.
Protocols¶
Ad hoc protocol¶
The ad hoc protocol is the main remote-control protocol. It can be used over:
USB Serial
Bluetooth LE in
Settings -> Bluetooth -> Ad hocmode
Commands¶
Button |
Function |
Comments |
|---|---|---|
R |
Rotate Encoder Up |
Tune the frequency up, scroll the menu, etc |
r |
Rotate Encoder Down |
Tune the frequency down, scroll the menu, etc |
e |
Encoder Click |
The e emulates a single click and can not be used for preferences reset or long press |
E |
Encoder Short Press |
The E emulates a short press (>0.5 sec) |
V |
Volume Up |
|
v |
Volume Down |
|
B |
Next Band |
|
b |
Previous Band |
|
M |
Next Mode |
Next modulation |
m |
Previous Mode |
Previous modulation |
S |
Next step |
|
s |
Previous step |
|
W |
Next Bandwidth |
|
w |
Previous Bandwidth |
|
A |
AGC/Att Up |
Automatic Gain Control or Attenuator up |
a |
AGC/Att Down |
Automatic Gain Control or Attenuator down |
L |
Backlight Up |
|
l |
Backlight Down |
|
I |
Calibration Up |
|
i |
Calibration Down |
|
O |
Sleep On |
|
o |
Sleep Off |
|
t |
Toggle Log |
Toggle the receiver monitor (log) on and off |
C |
Screenshot |
Capture a screenshot and print it as a BMP image in HEX format |
$ |
Show Memory Slots |
Show memory slots in a format suitable for restoring them after the reset |
# |
Set Memory Slot |
Example |
F |
Set Frequency |
Example |
T |
Theme Editor |
Toggle the theme editor on and off |
@ |
Get Theme |
Print the current color theme |
^ |
Set Theme |
Set the current color theme as a list of HEX numbers (effective until a power cycle) |
Hint
To edit/backup/restore the Memory slots, you can open this web based tool in Google Chrome.
Monitor output¶
The following comma separated information is sent out when the monitor (log) mode is enabled:
Position |
Parameter |
Function |
Comments |
|---|---|---|---|
1 |
APP_VERSION |
F/W version |
Example 201, F/W = v2.01 |
2 |
currentFrequency |
Frequency |
FM = 10 kHz, AM/SSB = 1 kHz |
3 |
currentBFO |
BFO |
SSB = Hz |
4 |
bandCal |
BFO |
SSB = Hz |
5 |
bandName |
Band |
See the bands table |
6 |
currentMode |
Mode |
FM/LSB/USB/AM |
7 |
currentStepIdx |
Step |
|
8 |
bandwidthIdx |
Bandwidth |
|
9 |
agcIdx |
AGC/Attn |
|
10 |
volume |
Volume |
0 to 63 (0 = Mute) |
11 |
remoteRssi |
RSSI |
0 to 127 dBuV |
12 |
remoteSnr |
SNR |
0 to 127 dB |
13 |
tuningCapacitor |
Antenna Capacitor |
0 - 6143 |
14 |
remoteVoltage |
ADC average value |
Voltage = Value x 1.702 / 1000 |
15 |
remoteSeqnum |
Sequence number |
0 to 255 repeating sequence |
In SSB mode, the “Display” frequency (Hz) = (currentFrequency x 1000) + currentBFO
Making screenshots¶
The screenshot function is intended for interface and theme designers, as well as for the documentation writers. It dumps the screen to the remote console as a BMP image in HEX format. To convert it to an image file, you need to convert the HEX string to binary format.
A quick one-liner for macOS and Linux over the USB Serial transport (change the /dev/cu.usbmodem14401 serial port name as needed):
echo -n C | socat stdio /dev/cu.usbmodem14401,echo=0,raw | xxd -r -p > /tmp/screenshot.bmp
Bluetooth HID protocol¶
The Bluetooth HID protocol is available only over Bluetooth LE in Settings -> Bluetooth -> HID mode.
In this mode the receiver looks for supported BLE HID devices and maps their key events to receiver actions. A list of supported devices is available in Accessories: Bluetooth LE input devices. At the moment, support is limited to the specific HID devices recognized by the firmware.
Key bindings¶
Bluetooth HID key event |
Receiver action |
Comments |
|---|---|---|
Volume Increment |
Rotate encoder up |
Same effect as turning the encoder clockwise |
Volume Decrement |
Rotate encoder down |
Same effect as turning the encoder counter-clockwise |
Next Track |
Press and rotate encoder up |
Uses the receiver’s press-and-rotate gesture |
Previous Track |
Press and rotate encoder down |
Uses the receiver’s press-and-rotate gesture |
Play/Pause single click |
Encoder click |
On double-click capable devices, this is emitted after a short timeout |
Play/Pause double click |
Encoder short press |
Only available on devices that support the double-click mapping |
The press-and-rotate mapping is useful for actions that already depend on that gesture, such as direct frequency input mode and fine tuning in Seek mode.
Community software¶
The following community projects may be useful if you want a richer remote-control interface:
ATS Mini Controller - a browser-based controller with on-screen controls, a terminal, screenshot capture, and memory-slot tools. Introduced in Issue #128.
ATS Mini Companion - an Android app for controlling the receiver over USB or Bluetooth LE. Introduced in Discussion #264.
Mini-Radio Control GUI - a Python desktop GUI for serial control with real-time status display and related tools. Introduced in Discussion #101.
Mini-Radio-Control - another community remote-control project hosted on GitHub. Introduced in Discussion #101.
ATS-MINI-Remote - a web-based remote control with a Flask backend and a responsive interface for controlling the receiver from devices on the local network. Introduced in Discussion #101.