Once DroidStar started to support the MMDVM HotSpot board over USB, I had to take a closer look.. This minimal M17 Transceiver provides a great, cheap way of demonstrating and experimenting with M17.
This document is very much a work in progress, None of it is warranted as Correct, Accurate or Optimal.. Suggestions very welcome.
Android Device, Phone or tablet with USB OTG and Google Play support
Most Android devices are suitable, does not need to be the latest, even a cheap Amazon Fire Tablet may be suitable. Key things are USB OTG and Google Play support.
Latest DroidStar app from Google Play, or build from source
Easiest just to install the latest version of DroidStar from Google Play. See the Build DroidStar section to build from source.
Generic Pi Hotspot Board or USB Hotspot Board (No adapter needed)
Generic Pi Hotspot board. Boards with built in USB are also available.
Latest firmware loaded on the HotSpot Board (Pi 3b used)
Build and flash the latest Hotspot Firmware with M17 support, based on
Please note I am using G4KLX repo
Disable conflicting services
sudo systemctl disable serial-getty@ttyAMA0.service sudo systemctl disable bluetooth.service # in /boot/config.txt - remove the console section # Add.. enable_uart=1 dtoverlay=pi3-disable-bt
cd ~ git clone https://github.com/g4klx/MMDVM_HS # Refer to scripts/install_buildtools.sh for build prerequisites only cd MMDVM_HS # M17 support now in master git checkout master
Load Flash Tools
cd ~ git clone https://git.code.sf.net/p/stm32flash/code stm32flash cd stm32flash make sudo make install
Build and Flash
cd ~/MMDVM_HS git submodule init git submodule update # Ensure you have correct board config and clock selected cp ~/MMDVM_HS/configs/MMDVM_HS_Hat.h ~/MMDVM_HS/Config.h # in Config.h # uncomment //#define USE_ALTERNATE_M17_LEDS # comment out other // LED options make # Flash sudo make mmdvm_hs_hat
Hotspot board flashing in progress
USB to TTL adapter board
Using a Silabs CP2102 USB to TTL board (others could be used). This board has proved very reliable and provides a 3.3 Volt output and 3.3 Volt levels for the RX and TX. Beware some boards provide 5 Volt RX and TX output, these risk damaging your Hotspot board.
Cable to connect the USB TTL board to the Pi Hotspot Board.
Pi Header pin 6 for ground, pin 1 for 3.3 Volt, and pin 8 for TX Data from the Pi, and pin 10 for RX Data into the Pi. Pi Header Spec Note that some USB TTL boards may have RX and TX “Swapped”
USB OTG lead
Connect the USB TTL board to your Android device.
The configuration of Android, USB OTG cable, USB TTL board connecting cable and Hotspot can be tested using a Android USB Serial Terminal App. Set the baud rate to 115200 and send e0 03 00 hex. This is a basic version check command and should give similar output to this.
Building DroidStar requires the Qt toolset and development environmen. To build DroidStar Android the Android toolset, frameworks and NDK etc are also required.
https://www.qt.io/download-qt-installer Sign up etc… Select Install 5.15.2
sudo apt-get install build-essential # These are likely not needed #sudo apt-get install qtcreator #sudo apt-get install qt5-default #sudo apt-get install qtquickcontrols2-5-dev #sudo apt-get install qtdeclarative5-dev # Modules likely to be required sudo apt-get install qtmultimedia5-dev sudo apt-get install libqt5serialport5-dev sudo apt-get install qml-module-qtquick-dialogs
DroidStar Project Install and Linux Build
cd Documents git clone git://github.com/nostar/DroidStar.git # Install imbe vocder lib and headers sudo git clone git://github.com/nostar/imbe_vocoder.git cd imbe_vocoder make make install cd /home/nicolas/Documents/DroidStar ~/Qt/5.15.2/gcc_64/bin/qmake make # Run Linux DroidStar! ./DroidStar
DroidStar Android Build