Skip to main content

01 Required Hardware

I've updated the links and pricing information from the original source when and where applicable!

Required Hardware

Software Requirements

    Operating System: Raspbian 12 (x86/32-bit)
      Installed via: Raspberry Pi Imager Internet Connection SSH Enabled

      Connect to & Configure the Raspberry Pi via SSH

      ssh user@raspberrypi
      sudo systemctl disable bluetooth.service [email protected]
      sudo systemctl mask [email protected]
      grep '^dtoverlay=disable-bt' /boot/firmware/config.txt || echo 'dtoverlay=disable-bt' | sudo tee -a /boot/firmware/config.txt
      sudo sed -i 's/^console=serial0,115200 *//' /boot/firmware/cmdline.txt
      sudo reboot

      Note: These steps were taken from the dvmhost GitHub: https://github.com/DVMProject/dvmhost under the Raspberry Pi Preparation Notes section and updated to accommodate the current Raspbian 12 file structure. 

        /boot/config.txt -> /boot/firmware/config.txt /boot/cmdline.txt -> /boot/firmware/cmdline.txt

        Prepare the Raspberry Pi for the MMDVM Board

        ssh user@raspberrypi
        sudo shutdown now
          Afix the MMDVM_HS_HAT_DUPLEX board to the GPIO pins on the Raspberry Pi so that the new board covers the Raspberry Pi Screw on the provided antennas
            Note: There is no designated antenna for transmit (TX) or receive (RX)

            Power on the Raspberry Pi & Flash the DVM Firmware

              Clone the hsflash GitHub repository
              git clone https://github.com/ThisGuyNeedsABeer/hsflash.git
                Compile the source and hsflash executable
                cd hsflash/
                gcc hsflash.c -o hsflash
                chmod +x hsflash

                1. Flash the firmware, if stm32flash is missing, hsflash will attempt to install it

                ██╗  ██╗███████╗   ███████╗██╗      █████╗ ███████╗██╗  ██╗
                ██║  ██║██╔════╝   ██╔════╝██║     ██╔══██╗██╔════╝██║  ██║
                ███████║███████╗   █████╗  ██║     ███████║███████╗███████║
                ██╔══██║╚════██║   ██╔══╝  ██║     ██╔══██║╚════██║██╔══██║
                ██║  ██║███████║██╗██║     ███████╗██║  ██║███████║██║  ██║
                ╚═╝  ╚═╝╚══════╝╚═╝╚═╝     ╚══════╝╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝
                                  * HOTSPOT FLASH EZ *
                
                [WARN] stm32flash is not installed.
                Install stm32flash now? [Y/n]: y
                
                ... apt output omitted...
                
                Enter BOOT0 GPIO pin [default 20]: 20
                Enter NRST GPIO pin [default 21]: 21
                Enter firmware filename (e.g. dvm-firmware-hs-hat-dual.bin): dvm-firmware-hs-hat-dual.bin
                Enter serial port [default /dev/ttyAMA0]: /dev/ttyAMA0
                
                ===== Configuration Summary =====
                BOOT0 GPIO      : 20
                NRST GPIO       : 21
                BIN_FILE        : dvm-firmware-hs-hat-dual.bin
                SERIAL_PORT     : /dev/ttyAMA0
                stm32flash      : found
                =================================
                
                Proceed with flashing? [Y/n]: y
                [INFO] Proceeding with firmware flash setup...
                [INFO] Setting BOOT0 high (GPIO20)...
                [ raspi-gpio is deprecated - try `pinctrl` instead ]
                [INFO] Asserting reset (GPIO21 low)...
                [INFO] Releasing reset (GPIO21 high)...
                [INFO] Flashing firmware...
                stm32flash 0.7
                
                http://stm32flash.sourceforge.net/
                
                Using Parser : Raw BINARY
                Size         : 57248
                Interface serial_posix: 57600 8E1
                Version      : 0x22
                Option 1     : 0x00
                Option 2     : 0x00
                Device ID    : 0x0410 (STM32F10xxx Medium-density)
                - RAM        : Up to 20KiB  (512b reserved by bootloader)
                - Flash      : Up to 128KiB (size first sector: 4x1024)
                - Option RAM : 16b
                - System RAM : 2KiB
                Write to memory
                Erasing memory
                Wrote and verified address 0x0800dfa0 (100.00%) Done.
                
                Resetting device...
                Reset done.
                
                [INFO] Setting BOOT0 low (GPIO20)...
                [INFO] Resetting MCU to boot from flash...
                [SUCCESS] Flashing complete and STM32 restarted successfully.
                  Reboot to complete the process upon a successful flash
                  sudo reboot