Hamptt
Bluetooth PTT board for Baofeng UV-5R
Install / Use
/learn @mrkeuz/HampttREADME
Ham PTT
Bluetooth PTT switch for ham radio transmitters like Baofeng UV-5R.
Board helps to control transmitter from PC.
Motivation
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.
Schematic
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
Examples
- 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()
Install
-
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
-
Development
-
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
-
Related Skills
node-connect
349.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.5kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
