MMDVM_HS Hat hardware
Post Reply
Posts: 2
Joined: Thu May 04, 2023 3:00 pm


Post by ad7o »

Hey everyone,

First off, please accept my apologies if this one has been covered already in another thread. However, I haven't been able to find anything in my searches thus far.

I purchased a AURSINC mmdvm duplex hotspot off Amazon that looks like this:

It works fine, but the board came with firmware version 1.4.7, and I have been pulling my hair out trying to get it upgraded.

Their firmware update instructions are as follows:
Update new FW: (pi-star / expert / ssh access / user :pi-star pass:raspberry) then run sudo pistar-mmdvmhshatflash hs_dual_hat set Jumper BOOT0=1,BOOT1=0 and solder JP1 First! After upgraded finished, disconnect JP1
Basically they claim I just have to short pins 38 & 40 on the GPIO board like this:

Well, I tried this and I actually even did try soldering a wire between them, but I keep getting "Failed to init device." The board itself would only light the PWR LED when it is shorted. Normally, the PWR LED would be solid while the SVC LED would blink. Therefore, I am assuming the board is being placed into some other mode, presumably the bootloader mode? However, it simply refuses to 'init' the device.

I read on Phil Pemberton's website ( that BOOT0 should be connected directly to pin 38 and NRST should be pin 40. He goes into some details about adding a 10k resistor to the pin 2 side of the JP1 pins and wire that back to pin 38 on the GPIO header for the bigger version of this duplex board. I did some digging and it looks like the pin 1 side went to VCC (3.3v aka GPIO pin 1). So, I tried to do this as well by soldering a 10k resistor between pin 1 and pin 38. This continues to result in only the solid PWR LED.

I was able to run reset the modem and it does go back into normal operation even with this resistor installed:
[email protected](rw):pi-star# pistar-mmdvmhshatreset
Resetting Modem: STM32-DVM / MMDVM_HS - Raspberry Pi Hat (GPIO)
Warning: Stopping mmdvmhost.service, but it can still be activated by:
Modem reset complete
Here is the find modem details if it helps:
[email protected](rw):~$ sudo pistar-findmodem
Detected MMDVM_HS Port: /dev/ttyAMA0 (GPIO) Baud: 115200 Protocol: V1
Modem Data: MMDVM_HS_Dual_Hat-v1.4.7 20180821 14.7456MHz dual ADF7021 FW by CA6JAU GitID #b14548e
Nothing I've tried has worked thus far. Ultimately, it is trying to run this command to apply the firmware:
eval sudo ./STM32F10X_Lib/utils/rpi32/stm32flash -v -w mmdvm_hs_dual_hat_fw.bin -g 0x0 -R -i 20,-21,21:-20,21 /dev/ttyAMA0
I am concerned that the firmware may be set as read only. If it is, there is no STLink pins that I can see on that board, unless you can use the OLED pins somehow?

Does anyone know any thing else I can try here? I am hoping that perhaps I may just need an adjustment on my initialization line for stm32flash? I do have an OLED soldered on, but I set the display to 'none' and port to 'none' already as I heard it could cause similar issues.

Thanks in advance for any help you may have here!
Posts: 2
Joined: Thu May 04, 2023 3:00 pm


Post by ad7o »

I just wanted to post a follow up to this and let everyone know that the seller suggested there was nothing else they could do to assist beyond shorting pins 38 & 40. However, I did get help from AC4AG who suggested that I just needed to adjust the stm32flash init string to "-i 20:-20,21". With this suggestion along with manually lowering my baud rate, I did eventually get some successful initializations. I took the opportunity to ensure the flash was not read nor write protected and then I tried to flash v1.5.2. However, it crashed mid-way and effectively erased the entire flash. At this point I just continued to trying to time running stm32 flash command while mounting the hat. I eventually did get a full successful installation of v1.5.2 but even after this, the display didn't work anymore and pi-star kept cutting my transmissions off and then acting like I was keying up indefinitely. When traffic was coming in from BM, it would play for maybe a couple seconds and then just stop. I assume it either didn't actually receive the full bin content (even though I did have verify set?) or it wasn't for the correct hat possibly. Either way, here is some of the output from that successful write:

Code: Select all

[email protected](ro):pi-star# sudo ./STM32F10X_Lib/utils/rpi32/stm32flash -b 38400 -v -w mmdvm_hs_dual_hat_fw.bin -g 0x0 -R /dev/ttyAMA0
stm32flash Arduino_STM32_0.9

Using Parser : Raw BINARY
Interface serial_posix: 38400 8E1
Version      : 0x10
Option 1     : 0x00
Option 2     : 0x00
Device ID    : 0x0410 (Medium-density)
- RAM        : 20KiB  (512b reserved by bootloader)
- Flash      : 128KiB (sector size: 4x1024)
- Option RAM : 16b
- System RAM : 2KiB
Write to memory
Erasing memory
Wrote and verified address 0x0800cda8 (100.00%) Done.

Starting execution at address 0x08000000... done.
Notice, I didn't even have an init string on that one because it was defaulting to DFU mode since the flash was failed/empty.

Here is the output from AC4AG's working board with that '-i 20:-20,21' string:

Hopefully, these details can help someone else struggling to update these boards. However, after that one flash, I could not get the board to successfully initialize again. Thus, it was stuck with the non-functional v1.5.2. Since the vendor advised that there was nothing else they could do, I decided to simply return it. I am now waiting for a BH3BBU mini duplex board to arrive from China. Unfortunately, it appears to be only 440/UHF, but that is fine for my needs.

Post Reply