MMDVM for NanoPI Replace for Raspberry support DMR/YSF/P25/NXDN/DSTAR/POCSAG

a.jpg
b.jpg
main.png
CFGb.png
CFGa.png
Features:
Mini and Portable, L/W/H 5.6x6x4.1mm, Two way circulation and natural heat dissipation to avoid fan noise
Support MMDVM mode: DMR/YSF/P25/NXDN/DSTAR/POCSAG
Frequency range: 144-146Mhz,420MHz-475MHz,842MHz-950MHz
3xFast Setting Speed then raspberry zerow /2w,don't wait.
Replaceable folding antenna,center frequency 433MHz.
External USB port for USB wifi | rtlsdr stick |Usb to Serial connect Nextion 2.x-3.x tft screen
Certified seller:AURSINC/LUSYA with technical support
Including && components
1x MMDVM for nano PiHAT,
1x folding antenna,
1x Nanopi NEO 256M,
1x 16G/8G C10 TF Card
1x 0.96-inch OLED

Options:
1.USB to Usart ,use for link and power Nextion display.
2.USB WiFi support wifi function

Specs and Docs:
Power require: 5V2A
MCU: F103C8T6
Transceiver IC: ADF7021,Programmable output power: -16dBm to +10dBm
TCXO: 14.7456MHz,±2.5 ppm
PCB: 40mmx40mmx1.2mm
Host: NanoPi NEO 256M RAM,v1.4,A3 Architecture
Options USB WiFi: RTL8188CUS
OLED: I2C 128*64px, blue color
SDCard: 8Gb
Charging cable: Micro USB can transfer data, support 5V2A

http://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO

**Modem TYPE:"MMDVM_HS_NPi Hat (VR2VYE) for Nano Pi(GPIO)"
update FW: sudo pistar-vyehsflash nano_hs**
http://www.pistar.uk/beta/Pi-Star_NanoPi_V4.1.5_25-Jun-2021.zip
Warning:
Be sure to use a qualified power supply 5V2A, non-conforming power will lead to bit error rate(BER) instability, Overvoltage will burn this NanoPi and HAT!

Easy to Start:
Just MicroUSB power it,Connect RJ45 with Router,Computer connect Router Open http://pi-star(win) or http://pi-star.local(MAC) to start,login user pi-star pass raspberry

to support v1.5.x switch to hackrf usb mode no black screen

/home/jumbo/hackrf/firmware/common/ui_portapack.c

const hackrf_ui_t* portapack_hackrf_ui_init() {

if( portapack() ) {  //switch to hackrf_usb mode, if portapack install set lcd blue screen
    return &portapack_hackrf_ui;
} else {
    return NULL;
}

}
/home/jumbo/hackrf/firmware/common/portapack.c
static uint32_t jtag_pp_idcode(void) {

cpld_jtag_take(&jtag_cpld);

/* TODO: Check if PortaPack TMS is floating or driven by an external device. */
gpio_output(jtag_cpld.gpio->gpio_pp_tms);

/* Test-Logic/Reset -> Run-Test/Idle -> Select-DR/Scan -> Capture-DR */
jtag_pp_shift(0b11111010, 8);

/* Shift-DR */
const uint32_t idcode = jtag_pp_shift(0, 32);

/* Exit1-DR -> Update-DR -> Run-Test/Idle -> ... -> Test-Logic/Reset */
jtag_pp_shift(0b11011111, 8);

cpld_jtag_release(&jtag_cpld);

return idcode;

}
static bool portapack_detect(void) {

return jtag_pp_idcode() == 0x020A50DD;   

//i change this code to "return jtag_pp_idcode() >0;" to support
//Portapack H2 TQFP100 v3.6pcb fix fw v1.4.2
}

static const portapack_t portapack_instance = {
};

static const portapack_t* portapack_pointer = NULL;

const portapack_t* portapack(void) {

return portapack_pointer;

}

void portapack_init(void) {

if( portapack_detect() ) {
    portapack_if_init();
    portapack_lcd_reset();
    portapack_lcd_init();
    portapack_pointer = &portapack_instance;
} else {
    portapack_pointer = NULL;
}

}

hackrf portapack h2 cpld update new QFP100

pcbV3.5.jpg

Because it is not easy to buy 5m40ze64c5n
so i replace new EPM240T100C5N instead it is QFP100 bigger then QFP64
but it works
every cpld flashed fw,if manyhem boot faile just dont shutdown the base,add A,B to let new
CPLD work
portapack.cpp

i2c0.start(i2c_config_boot_clock);

if( !portapack::cpld::update_if_necessary(portapack_cpld_config()) ) {

    A//shutdown_base();
    B//return false;

}