Skip to the content
2 layers65 × 56 mmMMDVM HS Dual Hat, the printed circuit board in 3D

MMDVM HS Dual Hat

phl0/MMDVM_HS_Dual_Hat218

Duplex variant of MMDVM_HS_Hat

Size
65 × 56 mm
Copper layers
2
Thickness
1.6 mm
Parts
216
Nets
99
Pads
566
Tracks, vias
1,185, 72
Pours
2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
23 Jan 2018
Updated
18 Oct 2020

Overview

MMDVM HS Dual Hat is an open-source printed circuit board by phl0, from the phl0/MMDVM_HS_Dual_Hat repository on GitHub. It is a 2-layer board of 65 × 56 mm with 216 parts on 99 nets, routed with 1,185 tracks and 72 vias.

It is built around the STM32F103C8T6 and LD1117S33TR(MS). Its parts include 51 capacitors, 30 resistors, 12 inductors, 9 diodes and 8 connectors. It belongs with the STM32 boards of this library.

Main components

2

README

README.md

MMDVM_HS_Dual_Hat

Duplex variant of MMDVM_HS_Hat DB9MAT DF2ET DO7EN

This PCB uses the MMDVM_HS by Andy CA6JAU. It has two ADF7021 onboard and allows for duplex operation with two time slots on DMR.

MMDVM_HS_Dual_Hat

Revisions

Revision 1.0

Initial release.

Revision 1.1

LEDs D4 and D5 interchanged to align with scan order. Solder jumper JP1 was added. It can be closed if the board is used on Raspberry Pi only. It ties BOOT1 to GND. BOOT0 is controlled via GPIO. The 2x3 pin header can be unpopulated in this case to save space. We placed two coils on U1 and U2 for experiments with extended VCO. These are L11 and L12 and they are optional and do not need to be inserted for UHF use. Testpoints TP1 and TP2 on backside allows the demodulator output SNR to be measured with #define TEST_DAC compiled firmware.

This version is not recommended for (re-)production!

Revision 1.2

An accidentially deleted 3v3 wire has been added back to the PCB layout. BOM, Mouser cart and stencil stay the same as for rev1.1.

Revision 1.3

STlink header has been refactored to have the same pinout as the MMDVM_HS_Hat boards. OLED and STlink header have been exchanged. JP1 has been slightly moved. C44, C45 and C46 have been relocated nearer to the STM32F1 CPU. A table was added to the bottom silkscreen to show which TCXO is installed. This is important to the firmware. BOM and Mouser cart are still the same. The stencil has slightly changed. If you manually solder C44-C46 you can still use the old one.

BOM

Mouser cart for rev1.0 is here.

This is the Mouser cart for rev1.1. L11 and L12 are optional.

Firmware installation

The device can be used on top on a RPi attached via the GPIO port or standalone and connected via USB. Both variants require different handling of compiling and uploading the firmware. The USB connection requires firmware with bootloader support whereas the GPIO version does not.

For USB connection a bootloader has to be installed initally. This requires STlink connection. After that is done the MMDVM_HS firmware upgrade can be done via the USB connection. The STlink connection can be used as fallback if wrongly configured firmware was installed for example.

Install the firmware with bootloader support for USB connection

If you want to use the device via USB port you have to install a bootloader and build the firmware with bootloader support. As the raw device cannot be used with USB you have to use a USB-serial adapter or STlink device. Using STlink this can be done as follows:

text
user@host:/opt/MMDVM_HS$ make stlink-bl 
././STM32F10X_Lib/utils/linux64/st-flash write ./STM32F10X_Lib/utils/bootloader/generic_boot20_pc13.bin 0x8000000
2018-03-02T10:01:04 INFO src/usb.c: -- exit_dfu_mode
2018-03-02T10:01:04 INFO src/common.c: Loading device parameters....
2018-03-02T10:01:04 INFO src/common.c: Device connected is: F1 Medium-density device, id 0x20036410
2018-03-02T10:01:04 INFO src/common.c: SRAM size: 0x5000 bytes (20 KiB), Flash: 0x10000 bytes (64 KiB) in pages of 1024 bytes
2018-03-02T10:01:04 INFO src/common.c: Attempting to write 7160 (0x1bf8) bytes to stm32 address: 134217728 (0x8000000)
Flash page at addr: 0x08001800 erased
2018-03-02T10:01:04 INFO src/common.c: Finished erasing 7 pages of 1024 (0x400) bytes
2018-03-02T10:01:04 INFO src/common.c: Starting Flash write for VL/F0/F3 core id
2018-03-02T10:01:04 INFO src/common.c: Successfully loaded flash loader in sram
  6/6 pages written
2018-03-02T10:01:05 INFO src/common.c: Starting verification of write complete
2018-03-02T10:01:05 INFO src/common.c: Flash written and verified! jolly good!
././STM32F10X_Lib/utils/linux64/st-flash write bin/mmdvm_f1bl.bin 0x8002000
2018-03-02T10:01:05 INFO src/common.c: Loading device parameters....
2018-03-02T10:01:05 INFO src/common.c: Device connected is: F1 Medium-density device, id 0x20036410
2018-03-02T10:01:05 INFO src/common.c: SRAM size: 0x5000 bytes (20 KiB), Flash: 0x10000 bytes (64 KiB) in pages of 1024 bytes
2018-03-02T10:01:05 INFO src/common.c: Attempting to write 55016 (0xd6e8) bytes to stm32 address: 134225920 (0x8002000)
Flash page at addr: 0x0800f400 erased
2018-03-02T10:01:07 INFO src/common.c: Finished erasing 54 pages of 1024 (0x400) bytes
2018-03-02T10:01:07 INFO src/common.c: Starting Flash write for VL/F0/F3 core id
2018-03-02T10:01:07 INFO src/common.c: Successfully loaded flash loader in sram
 53/53 pages written
2018-03-02T10:01:12 INFO src/common.c: Starting verification of write complete
2018-03-02T10:01:13 INFO src/common.c: Flash written and verified! jolly good!

The device should now be usable as /dev/ttyACMx.

If you want to update the MMDVM_HS firmware itself later on via USB you can use the dfu upload method. The settings in Config.h are:

text
#define MMDVM_HS_DUAL_HAT_REV10
#define ENABLE_ADF7021
#define DUPLEX

#define ADF7021_14_7456

or #define ADF7021_12_2880

for boards with 12.288MHz TCXO.

text
#define STM32_USB_HOST
#define ENABLE_SCAN_MODE

Optionally:

text
#define SEND_RSSI_DATA
#define SERIAL_REPEATER

Compile the firmware with "make bl" and then:

text
user@host:/opt/MMDVM_HS$ sudo make dfu devser=/dev/ttyACM3
././STM32F10X_Lib/utils/linux64/upload-reset /dev/ttyACM3 750
././STM32F10X_Lib/utils/linux64/dfu-util -D bin/mmdvm_f1bl.bin -d 1eaf:0003 -a 2 -R -R
dfu-util 0.7

Copyright 2005-2008 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2012 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

Filter on vendor = 0x1eaf product = 0x0003
Opening DFU capable USB device... ID 1eaf:0003
Run-time device DFU version 0110
Found DFU: [1eaf:0003] devnum=0, cfg=1, intf=0, alt=2, name="STM32duino bootloader v1.0  Upload to Flash 0x8002000"
Claiming USB DFU Interface...
Setting Alternate Setting #2 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 0110
Device returned transfer size 1024
No valid DFU suffix signature
Warning: File has no DFU suffix
bytes_per_hash=1100
Copying data from PC to DFU device

Compile and upload manually for GPIO connection

For specific details about the firmware installation, check these instructions. The process is similar to the installation on the ZumSpot Pi. You can make use of the preconfigured scripts in MMDVM_HS. Editing Config.h by hand requires these settings:

Enable the following settings in Config.h:

text
#define MMDVM_HS_DUAL_HAT_REV10
#define ENABLE_ADF7021
#define DUPLEX
#define ADF7021_14_7456
#define STM32_USART1_HOST
#define ENABLE_SCAN_MODE

Optionally:

text
#define SEND_RSSI_DATA
#define SERIAL_REPEATER

And for 12.288MHz TCXO equipped boards

text
#define ADF7021_12_2880

instead of the 14_7456 option.

Build the firmware:

text
make

Make sure the two BOOT jumpers are set as follows:

text
BOOT0: completey removed
BOOT1: set to BOOT 1 -

And finally upload the firmware to the MMDVM_HS_Dual_Hat:

text
sudo make mmdvm_hs_dual_hat

Update within Pi-Star

PiStar contains a binary that allow for flashing precompiled binary firmware to the MMDVM_HS_Dual_Hat. To update the firmware within PiStar execute the following commands:

text
$ rpi-rw
$ pistar-mmdvmhshatflash hs_dual_hat

If you have a board equipped with 12.288MHz TCXO you have to flash the according firmware type using:

text
$ pistar-mmdvmhshatflash hs_dual_hat-12mhz

License

This project is released under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 (CC-BY-NC-SA 3.0, https://creativecommons.org/licenses/by-nc-sa/3.0/) license. You may edit and share it as you like, as long as credit is given and the license is not changed. You can build as many boards for you and your friends as you like and you can even sell it to them to cover your costs, however it is strictly forbidden to turn this into a commercial product! You are not allowed to build and sell these boards for profit!

Parts

216
QtyValueFootprintReferences
13100nCapacitors_SMD:C_0402C13, C14, C19, C20, C29, C30, C35, C36, C43, C44, C45, C46, C50
131kResistors_SMD:R_0402R11, R12, R13, R14, R16, R17, R18, R19, R20, R21, R22, R23, R24
1210nCapacitors_SMD:C_0402C3, C4, C15, C16, C17, C18, C31, C32, C38, C39, C42, C49
4RPi_Hat:RPi_Hat_Mounting_Holeol, or, ul, ur
46p8Capacitors_SMD:C_0402C1, C2, C11, C12
3redLEDs:LED_0402D0, D3, D7
2100kResistors_SMD:R_0402R29, R30
210kResistors_SMD:R_0402R15, R25
210pCapacitors_SMD:C_0402C6, C9
213nInductors_SMD:L_0402L7, L8
215nCapacitors_SMD:C_0402C25, C26
218nInductors_SMD:L_0402L11, L12
21k1Resistors_SMD:R_0402R1, R2
21nCapacitors_SMD:C_0402C27, C28
220nInductors_SMD:L_0402L3, L4
220pCapacitors_SMD:C_0402C40, C41
2220pCapacitors_SMD:C_0402C5, C8
222nCapacitors_SMD:C_0402C23, C24
222nInductors_SMD:L_0402L1, L2
222pCapacitors_SMD:C_0402C33, C34
2270Resistors_SMD:R_0402R9, R10
227RResistors_SMD:R_0402R26, R27
227nInductors_SMD:L_0402L5, L6
23k8Resistors_SMD:R_0402R3, R4
23r9Resistors_SMD:R_0402R5, R6
2470pCapacitors_SMD:C_0402C21, C22
247pCapacitors_SMD:C_0402C47, C48
24p7Capacitors_SMD:C_0402C7, C10
2560Resistors_SMD:R_0402R7, R8
2ADF7021Housings_DFN_QFN:QFN-48-1EP_7x7mm_Pitch0.5mmU1, U2
2SMAConnectors:SMA_THT_Jack_StraightP1, P2
2TEST_1PConnectors_TestPoints:Test_Point_Pad_1.0x1.0mmTP1, TP2
2greenLEDs:LED_0402D1, D4
2yellowLEDs:LED_0402D2, D5
1100MHzInductors_SMD:L_0402L9
110uInductors_SMD:L_0402L10
110uCapacitors_SMD:C_0402C52
110u/10VCapacitors_Tantalum_SMD:CP_Tantalum_Case-A_EIA-3216-18_ReflowC51
11k5Resistors_SMD:R_0402R28
18MHzCrystals:Crystal_SMD_Abracon_ABM3-2pin_5.0x3.2mmY1
1CONN_02X03Pin_Headers:Pin_Header_Straight_2x03P7
1DISPLAYPin_Headers:Pin_Header_Straight_1x04P4
1DNIButtons_Switches_SMD:SW_SPST_B3U-1000PSW1
1I2CPin_Headers:Pin_Header_Straight_1x04P3
1LD1117S33TRTO_SOT_Packages_SMD:SOT-223-3_TabPin2U4
1LOGOLogos:Logo_silk_CC-BY-NC-SA_10x3.6mmG***
1LOGOMMDVM:MMDVM_logoG***
1RPi_GPIOPin_Headers:Pin_Header_Straight_2x20J1
1STLINKPin_Headers:Pin_Header_Straight_1x04P5
1STM32F103C8T6Housings_QFP:LQFP-48_7x7mm_Pitch0.5mmU3
1SolderJumper_2_OpenJumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mmJP1
1TCXOCrystals:Crystal_SMD_3225-4pin_3.2x2.5mmX1
1USB_OTGMMDVM:USB-mini-710-65100516121P8
1amberLEDs:LED_0402D6
1blueLEDs:LED_0402D8

The 126 most common of 216 parts.

Similar boards

  • 4 layers96 × 96 mmSTM32F103C8T6, the printed circuit board in 3D

    STM32F103C8T6

    andreabadan/STM32F103_Telemetry_V01

    115 partsGPL-3.0
  • 2 layers100 × 100 mmWifi PB panel, the printed circuit board in 3D

    Wifi PB panel

    AntonioMR/Wifi-Play-Board

    Placa de experimentacion para el ESP12F (ESP8266)

    416 parts29
  • 2 layers65 × 56 mmMMDVM RPT Hat, the printed circuit board in 3D

    MMDVM RPT Hat

    mathisschmieder/MMDVM_RPT_Hat

    MMDVM_RPT_Hat for the Raspberry Pi

    119 parts27
  • 2 layersRobot MGR, the printed circuit board in 3D

    Robot MGR

    rayvburn/diff_drive_mapping_robot

    ROS driver for the Raspberry Pi based differential drive robot

    95 parts27
  • 4 layers111.8 × 80.8 mmPrototype1, the printed circuit board in 3D

    Prototype1

    nmikstas/atari_pokey

    Recreation of the Atari POKEY chip (work in progress)

    164 parts20
  • 4 layers45.5 × 50 mmAdapter, the printed circuit board in 3D

    Adapter

    strfry/LG360VR

    This about making the LG 360 VR Goggles usable with a normal DisplayPort outlet.

    58 parts19
  • 2 layers74.9 × 40.6 mmAnavi fume extractor, the printed circuit board in 3D

    Anavi fume extractor

    AnaviTechnology/anavi-fume-extractor

    Open source WiFi development board for a portable fume extractor with 5V USB-powered fan for absorbing smoke.

    34 parts17
  • 2 layers74.9 × 40.6 mmAnavi thermometer, the printed circuit board in 3D

    Anavi thermometer

    AnaviTechnology/anavi-thermometer

    WiFi Smart Thermometer with ESP8266, DHT22, DS18B20, OLED display and slots for up to 3 I2C sensor modules

    25 parts17

Questions

How big is the MMDVM HS Dual Hat PCB?

It measures 65 × 56 mm and has 2 copper layers, 1.6 mm thick.

What parts does the MMDVM HS Dual Hat use?

216 parts, built around the STM32F103C8T6 and LD1117S33TR(MS). The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the MMDVM HS Dual Hat KiCad files?

From the phl0/MMDVM_HS_Dual_Hat repository on GitHub, at the commit this page was made from: the board is hardware/r1.3/mmdvm_hs_dual_hat.kicad_pcb and its schematic hardware/r2.0-mini/Power.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the MMDVM HS Dual Hat design in my own project?

Its repository states no licence, so its author keeps all rights: ask phl0 before reusing the design.