Bluetooth PTT switch for ham radio transmitters like Baofeng UV-5R.
Board helps to control transmitter from PC.
Testing of UART interface showed unstable connection. During transmit via UART an usb-ttl chip periodically crashes and stops working. Cause is some radio strong interference on USB cable. So Bluetooth serial protocol stack (SSP) chosen instead.
Host -> (Bluetooth) -> Esp-32 Arduino -> Relay -> Transmitter PTT button
-
Hardware
- Host PC with Bluetooth (tested Ubuntu 20.04)
- Esp32 DevKit v1 (or similar esp32)
- Relay shield
- Baofeng UV-5R
- Find BT devices
hcitool scan
- Python
from hamptt import open_ptt
with open_ptt(bt_addr="A0:B1:C2:D3:E4:F5") as ptt:
ptt.begin()
# I.e. play message to transmitter or something else
ptt.end()
-
Host PC machine
-
Python 3.8
-
Bluetooth's libs (required for pybluez)
sudo apt-get install bluez libbluetooth-dev
-
Pip
python3 -m pip install "hamptt[bt]"
-
-
Esp32
-
Upload sketch to your esp-32 via PlatformIO
NOTE! Check your board config inplatformio.ini
(see: https://platformio.org/)pio run -t upload
-
Connect pins Esp-32 to relay
- VVC -> Relay +
- GND -> Relay -
- GPIO D25 -> Relay IN
-
Connect relay and audio, for Baofeng UV-5R it looks like:
NOTE: You can rebuild your hands-free cable or buy another one
-
-
Build and install
pip3 uninstall hamptt rm -rf dist && poetry build && pip3 install ./dist/*.whl
-
Publish
-
Prepare
poetry config repositories.testpypi https://test.pypi.org/legacy/ poetry config pypi-token.testpypi <TOKEN> poetry config repositories.pypi https://upload.pypi.org/legacy/ poetry config pypi-token.pypi <TOKEN>
-
Publish
poetry publish --build -r testpypi poetry publish --build -r pypi
-