kamilsss655 / ESPRI

ESPRI (ESP Radio Interface) project providing extended functionalities to ham radios
Apache License 2.0
132 stars 6 forks source link
c electronics embedded esp32 ham-radio

ESPRI

ESPRI (ESP Radio Interface) project providing extended functionalities to ham radios.

V1 board connected to UV-K5 radio:

espri

V2.2 board:

V2.2 (back with uSD card inserted):

High level diagram:

high-level-diagram-4

The main goal of this project is to extend functionalities of ham radios with addition of a small PCB board that contains ESP32 microcontroller.

As such following features would be enabled:

The physicial inteface layer between the ESPRI and the host radio will be through the Kenwood connector.

Table of Contents

Web panel

Here is a screenshot of a web control panel being served from the ESP:

espri-new-ui

settings-general

Morse code beacon config:

morse

Notifications (real-time communication via Websocket):

notifications

System info:

system_info

ESP Log:

I (8732) WEB/API/EVENT_HANDLER: Event id:3 received
I (8732) WEB/API/EVENT_HANDLER: Sent: SMS: API event: 3 received.

Hardware

ESP32 board

ESP32 Lolin Lite (recommended, confirmed to work, lipo charger built-in):

esp32-lolin-lite

ESPRI hat

In order to interface radios through Kenwood connector following analog components have to be added to the ESP board:

schematic

Reference https://github.com/ludwich66/Quansheng_UV-K5_Wiki/wiki/Programming-Cable for Kenwood pinout.

Custom PCB:

V1.0:

V2.2:

This firmware uses:

Getting started

[!TIP] You can flash this firmware with esptool.py or with ESP-Launchpad (using web browser)

To flash with esptool.py:

esptool.py write_flash 0x0 espri.bin

Once flashed:

Manual

Please take a look at the Wiki section for instructions, tips and more.

Development

With Visual Studio Code and ESP-IDF extension (recommended)

This method will install ESP-IDF toolchain locally with the help of the ESP-IDF Visual Studio Code extension.

PROS:

CONS:

STEPS:

  1. Install Visual Studio Code.
  2. Install ESP-IDF Visual Studio extension.
  3. Perform EXPRESS configuration and select correct ESP-IDF version

With Docker

This method will perform build within the Docker container.

PROS:

CONS:

STEPS:

  1. Download ESP-IDF library:

    git clone --recursive https://github.com/espressif/esp-idf.git
  2. Remove examples folder:

    rm -rf esp-idf/examples
  3. Remove .git folder:

    rm -rf esp-idf/.git
  4. Update VS Code include PATH (file c_cpp_properties.json):

 "includePath": [
                "${workspaceFolder}/**",
                "${workspaceFolder}/esp-idf/components/**"
            ],
  1. Install esptool:

    pip3 install --user esptool
  2. Build:

    make docker
  3. Flash:

    make flash

How to contribute

Thank you for your interest in contributing to this project! Here are some of the many ways in which you can help:

References

License

Copyright 2024 kamilsss655 https://github.com/kamilsss655

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.