Wiele osób do budowy przemiennika używa wersji MMDVM wykonanej przez BI7JTA. Wersja ta jest chwalona przez wielu użytkowników za jakość wykonania i dobry wsparcie od strony autora MMDVM. Gotowy produkt można kupić bezpośrednio u autora na stronie: https://www.bi7jta.org/cart

MMDVM na płytce zawiera:

  • STM32F446,
  • FOX924B 12MHz TCXO,
  • Gniazdo DB9 do podłączenia z radiem,
  • USB serial port,
  • 4PIN gniazdo na wyświetlacz Nextion.

Przykładowe połączenia z radiem znajdziecie w postaci fotografii na stronie BI7JTA (link na początku artykułu).

W Pi-Star należy wybrać "Modem-Type" na "STM32-DVM / MMDVM_HS - Raspberry Pi Hat (GPIO)"

Aby zrobić aktualizacje MMDVM firmware potrzebny będzie nam program do wgrywania który możemy pobrać dla RPI z strony BI7JTA:

rpi-rw
sudo -s
cd /usr/bin/
curl -OL https://raw.githubusercontent.com/bi7jta/MMDVM_HS_firmware_VR2VYE/master/RepeaterV3F4/stm32flashV5
chmod +x stm32flashV5

Aktualizacja oprogramowania.

Można spróbować własnych sił kompilacji firmware MMDVM. Pamiętaj żeby wykonać kompilacje z użyciem Pi-Star w wersji RPi 3.x. Uwaga na obecną chwilę (Maj 2020) nie używać do kompilacji na PI-Star v4.1.x. Nie przechodzi poprawnie kompilacja a niektórym udało się skompilować to i tak firmware nie działało poprawnie.:

rpi-rw
sudo -s
apt-get update
apt-get upgrade
apt-get install gcc-arm-none-eabi gdb-arm-none-eabi libstdc++-arm-none-eabi-newlib libnewlib-arm-none-eabi

Pobieramy źródła firmware MMDVM:

rpi-rw
cd /home/pi-star
git clone https://github.com/g4klx/MMDVM 
cd MMDVM 
git clone  https://github.com/juribeparada/STM32F4XX_Lib 

Musimy wykonać edycje pliku Config.h gdzie mamy definicje częstotliwości zegara zewnętrznego oraz rodzaj podpiętego modemu do STM32.

nano Config.h

Wybieramy definicje zewnętrznego zegara TCXO np:

#define EXTERNAL_OSC 12000000

LED'y do pokazywania trybu pracy DMR,YSF,NXDN itp

#define MODE_LEDS

oraz definicje pinów dla STM32F4xxx:

#define STM32F4_NUCLEO_MORPHO_HEADER

Jeśli pobieramy dane o poziomie sygnału z radia to należy włączyć, jeśli nie pobierasz danych z radia zostaw znaki // przed tym wierszem:

#define SEND_RSSI_DATA

Jeśli chcemy podłączyć wyświetlacz NEXTIOn musimy włączyć, jeśli nie planujesz zostaw znaki // przed tym wierszem:

#define SERIAL_REPEATER

W najnowszej wersji MMDVM z wsparciem dla FM należy mieć włączone

// Use the D-Star and YSF LEDs for FM
#define USE_ALTERNATE_FM_LEDS

bez tego kompilacja nie zakończy się poprawnie (uwaga z dnia 2020.05.03)

Kompilacja firmware dla STM32F446:

make nucleo

Kiedy skończy się kompilacja powinna być w ostatnich wierszach informacja:

.......
arm-none-eabi-size bin/mmdvm_f4.elf
   text    data     bss     dec     hex filename
 288592    1692   52984  343268   53ce4 bin/mmdvm_f4.elf
arm-none-eabi-objcopy -O ihex bin/mmdvm_f4.elf bin/mmdvm_f4.hex
Objcopy from ELF to IHEX complete!

arm-none-eabi-objcopy -O binary bin/mmdvm_f4.elf bin/mmdvm_f4.bin
Objcopy from ELF to BINARY complete!

czyli kompilacja wykonała się prawidłowo i teraz zostaje nam wgranie nowego firmware (opis na podstawie blogu BI7JTA):

rpi-rw
sudo -s
killall MMDVMHost >/dev/null 2>&1 
/usr/bin/stm32flashV5 -v -w /home/pi-star/MMDVM/bin/mmdvm_f4.hex  -R  -i 20,-21,21:-20,21 /dev/ttyAMA0

Po wgraniu należy wyłączyć zasilanie RPI i ponownie włączyć zasilanie i możemy cieszyć się nowym firmware w naszym modemie.

Opis pinów do podłączenia na złączu DB9:

Poprzedni Post Następny Post