TL;DR: it is possible to turn GM300 radios into complete M17 transceivers. See the “New setup” section below for a tentative guide on how to accomplish this.
TEST SETUP: My setup is very simple. A Raspberry Pi 3B is basically playing back a .raw file containing the M17 baseband. The .raw was generated with m17-mod tool. See the code below for details. Output from the soundcard is applied (through a 1k potentiometer) to pin 5 of the connector at the back (accessory connector). The REF trim pot in the radio is set fully clockwise, allowing the signal to pass through. The VCO_MOD pot is set to about 90% of its range (more details later). PTT is keyed by asserting low voltage level at pin 3 (pin 7 is GND, just connect them both).
[code]#generate the baseband from a wave file (8000Hz sample rate, mono, signed 16 bit, little endian)
sox sample.wav -t raw - | m17-mod -S SP5WWP > m17_baseband.out
#the baseband signal is sampled at 48000Hz
#play it back with the external USB soundcard
cat m17_baseband.out | aplay -D plughw:1,0 -c 1 -r 48000 -f S16_LE[/code]
Update: Encoding signal from the microphone input is possible, use this script.
A USB soundcard and RPi >=3 is needed. My soundcard is based on a C-media HS-100B chip, they are very cheap.
GM300 modifications needed: JU551 in A position, REF pot set to 100%, VCO pot set to about 90% (set them both to get a flat baseband response, use Gqrx’s audio FFT plot), cut pin 4 of TDA1519 open (to be able to inject AF from our own amplifier).
TX: Connect microphone or apply any other equivalent signal source to the mic input (thru a pot if needed). Run the PTT python script. Set the pot so that the reported deviation is 1.0 (use rtl_fm, see this for details). Output from the line out should go to pin 5 of the accessory connector; again: thru a pot… No dc-blocking cap needed.
RX: Connect pin 11 to the mic input (via a pot). Run the command below:
arecord -D plughw:1,0 -c 1 -r 48000 -f S16_LE | sox -t raw -e signed-integer -c 1 -b 16 -L -r 48000 - -t raw - vol -1 | m17-demod -d | aplay -D plughw:1,0 -c 1 -r 8000 -f S16_LE
Amplify the line out signal using LM386 or something similar and feed it to pin 16 (tie pin 1 to GND).
The “RX audio” output (pin 11) looked clipped. I had to bypass 390k R552 resistor with a 100k one (THT resistor in the center of the image below). See page 37 of the attached document (GM300 schematic). Alternative link.