GithubHelp home page GithubHelp logo

tarxvftech / zum_ambeserver Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 47 KB

An open firmware for the ZUM Radio AMBEServer board, with an ESP32, ethernet, and a DVSI AMBE3000 vocoder chip.

License: GNU General Public License v2.0

Dockerfile 1.35% C++ 86.61% Makefile 0.42% Python 9.36% C 2.26%

zum_ambeserver's Introduction

ZUM Radio AMBE Server board open firmware

What

This is a fully-open firmware for the ZUM Radio AMBE Server board, which provides an ESP32 (with USB serial, Ethernet, WiFi, and Bluetooth connectivity) access to an AMBE3000 voice codec chip from DVSI.

The point of this hardware and software is to make the various AMBE voice codecs accessible to various programs that might need them, such as cross-mode software (e.g. to bridge DMR and D-STAR to each other or other modes), soft network clients for these modes, and that sort of thing.

AMBE itself is proprietary, patent-encumbered, and all kinds of other things. It's also legacy, and there are now fully-open alternatives. Alas, AMBE is built into several protocols in wide use, hence the need for this hardware and software.

Who

Expected audience is mostly amateur radio operators with some developer experience. Releases and firmware upgrade information for non-developers available TODO: HERE. For non-developer support, please see the ZUM Radio support options.

Why

The original firmware was not made open source. This firmware, instead, focuses on being open, and maybe trying to do some new things.

Open is strictly better as it allows for fewer bugs, more features, more innovation, and ultimately prevents hardware from becoming useless through the simple passage of time (or people).

How

Compile this firmware from Linux

python -m venv env
source env/bin/activate
pip install -U platformio
pio upgrade
pio run

PlatformIO's pio run should auto-install the required dependencies and build an image.

Flash the board over USB serial with pio run -t upload (no button presses needed or anything) and watch the serial output with pio device monitor.

Manual flashing: TODO (notes below from what PIO does, but not yet recommended):

esptool.py --chip esp32 --port "/dev/ttyUSB0" --baud 460800 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size 4MB 
0x1000 /root/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/bin/bootloader_dio_40m.bin  \
0x8000 /app/.pio/build/lolin32/partitions.bin  \
0xe000 /root/.platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin  \
0x10000 .pio/build/lolin32/firmware.bin \

Network Flashing

You can compile the firmware with ArduinoOTA by defining OTA in main.cpp. Flash with pio run -t upload --upload-port IP_ADDRESS_HERE. (Untested in Docker). This is not working right now (suspect the flash partition layout is incompatible with OTA) and is disabled by default.

Compile this firmware from Windows (GUI)

TODO? (No Windows around, here, so please fill in! ~MM)

Use this firmware's services / Client software

TODO (Not there yet!)

zum_ambeserver's People

Contributors

tarxvftech avatar zumradio avatar

Stargazers

Amo Xu avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.