mmdvm and Pi-Star setup (Amateur Radio digital voice hotspot for DSTAR, DMR and other modes) – part 1

After setting up an SD Card with the Pi-Star image, booting it up and then hitting http://pi-star.local in a browser on my laptop, I used the default userid ‘pi-star’, password ‘raspberry’ to get to the dashboard page and set up the modes you want to operate. For this part of the setup I followed many of the existing guides and videos online, some of which I collected together here, but the best guide I found was this one by KE0FHS.

mmdvm board

The OLED display only appears to be active when on wifi, and is not active when on a wired connection. I setup mine on a wired connection first and was fiddling with the different display settings. When I had setup the wifi though and the rebooted with only wifi, then the screen started working. This is not obvious, but I think I read comments elsewhere that this is the expected behavior.

mmdvm board working on a Pi3, before moving to Pi Zero W

Some mmdvm boards are configured with a tx/rx offset (from photos online, usually indicated with a sticker on the board), but mine apparently had zero offset (it also didn’t have a sticker), and from watching the board transmit using my SDRPlay, when it was receiving DSTAR traffic from the Reflector I set it on it was transmitting locally spot-on frequency. Pi-Star showed it on 438.800Mhz, and it was right on the money.

Setting up a DV/DR repeater memory on my Icom 880 radio with the correct settings was absolutely key to getting everything working. It’s been a few years since I’ve used DSTAR, and it’s a good job I kept some notes here as it would have take hours to work out this again. Key settings to get this working were:

  • The hotspot repeater name of ‘KK6DCT B’ needed to be set EXACTLY in the repeater name setting for the DV memory setting on the radio, otherwise keying up the radio wouldn’t even appear on the mmdvm status page and it seems the transmissions are completely ignored by the hotspot (presumably because it’s not hearing traffic matching it’s own hotspot name so this is probably intentional)
  • Using the GRP UR setting on the 880 to send BOTH RPT1  (KK6DCT B) and RPT2 (KK6DCT G) values was key to getting my transmissions sent out across the internet gateway and to the reflector. I remember working this out before (link above), but this is key, as any of the other GRP * modes on the Icom 880 will not get your transmissions relayed out to the DTAR network

Once I had the above settings configured on my radio, transmitting on my Icom 880 I saw myself popup on the REF001 activity last heard list, so looking good so far:

Just as I was typing this (8/14/18 12am local time) I heard JI3IBK (Op = Masa) call CQ on REF001 so I returned his call and we had a quick QSO, and confirmed my setup is good, audio quality is good, so I’m pleased it’s all setup and working good, and I just had my first DSTAR QSO via my mmdvm hotspot!

Next steps are to solder the headers onto my new Pi Zero and move the mmdvm board from my Pi3 across to the Zero, and then put it in the custom aluminum case, and then my hotspot will be all set!

mmdvm useful setup references (Amateur Radio hotspot)

I’ve got a mmdvm board (Multi-mode Digital Voice Modem) on order – it’s an Amateur Radio hotspot for digital voice modes, such as DSTAR and DMR. While waiting for it to arrive I’m collecting together some useful links to help with the setup and config.

Excellent high level overview of digital voice hot spots in general:

Pi-Star – hotspot control software for the mmdvm board:

DMRplus MMDVM Setup

Pi-Star setup notes:

mmdvm hat assembly on Raspberry Pi:

ircDDB Android remote control app:

WordPress error uploading photos on nginx: “client intended to send too large body”

Attempting to upload some new photos between around 3 to 5MB, the majority of the uploads failed, and this error was occurring repeatedly in my nginx error.log:

2018/08/06 07:18:37 [error] 43#0: *5 client intended to send too large body: 3125530 bytes

Based on this tip from here, the solution was to increase the default POST body size config with this setting in my nginx.conf:

client_max_body_size 5M;