MMDVM POG board mods and notes

The MMDVM POG board is a widely-available Raspberry Pi HAT. It uses an STM32F105RBT6 microcontroller with a simple analogue front-end to connect a Raspberry Pi to a radio transceiver.

Warning – some MMDVM POG boards (especially the Chinese clones) are built in a Raspberry Pi HAT form-factor and have the 3.3V LDO regulator fitted. The regulator must not be fitted if the board is being used as a HAT!. Leaving the POG's LDO fitted may damage or destroy the power management IC on your Pi (this is especially common on the Pi 3)! Remove the LDO regulator before using the HAT.

In-system re-flash

The POG board is normally reflashed by installing a jumper (JP1) and toggling the reset pin. Later HAT boards like S75NAN's Hotspot series and the MMDVM-HS-HAT don't need the jumper. It's easy to modify a POG to allow this. You will need:

The two GPIO pins we'll be using are:

Installation is fairly easy:

It should now be possible to upgrade the board's firmware using the tools included with Pi-Star.

To flash manually:

stm32flash -v -w firmware.bin -g 0x0 -R -i 20,-21,21:-20,21 /dev/ttyAMA0

# -v: verify writes
# -w: write flash from file
# -g: start execution at specified address (after loading)
# -R: reset device at exit
# -i: GPIO sequence --
#       enter with GPIO20 high and toggle GPIO21 L->H
#       exit with GPIO20 low and GPIO21 H
# /dev/ttyAMA0: Pi serial port
#
# default baud rate is 57600

The output should be similar to:

stm32flash 0.5

http://stm32flash.sourceforge.net/

Using Parser : Intel HEX
Interface serial_posix: 57600 8E1
Version      : 0x22
Option 1     : 0x00
Option 2     : 0x00
Device ID    : 0x0418 (STM32F105xx/F107xx)
- RAM        : 64KiB  (4096b reserved by bootloader)
- Flash      : 256KiB (size first sector: 2x2048)
- Option RAM : 16b
- System RAM : 18KiB
Write to memory
Erasing memory
Wrote and verified address 0x0800d07c (100.00%) Done.

Starting execution at address 0x08000000... done.