Minew BLE/Wifi Gateway Documentation

Info on the MT7628-based SoM labeled Minew MS93MFZ_V1.0

Pinout

Quantity 2, 1x19 0.05” pin headers.

J1

Pin Description
1 USB Data
2 USB Data
3 GND
4 SD
5 SD
6 SD
7 SD
8 SD
9 SD
10 SD
11 SD
12 ETH
13 ETH
14 ETH
15 ETH
16 GND
17 UART RX
18 UART TX
19 PWM_CH0

J2

Pin Description
1
2
3
4
5
6
7
8
9
10
11 LED1 (gpio43, active high)
12
13
14
15
16 GND
17 GND
18 VDD (3.5V)
19 VDD (3.5V)

Flash Image

Original flash image (dated 29/06/2020) can be downloaded from here

Flash Contents

Offset Description
0x50000 uImage header + LZMA Linux kernel (4.14.149)
0x1D5DAD Squashfs
0x7F0000 JFFS2

File System Contents

Decompressed squashfs tree is available here

Root Password Hash

md5crypt: $1$Sevciuy0$CRuXyRAOWeathkwz1T00I1

Squashfs root with no root password

Modified rootfs with no root password (otherwise the image is identical) is available here.

Download the image and overwrite the squashfs at 0x1d5dad. The you can login without a password via the UART.

dmesg

[    0.000000] Linux version 4.14.149 (yancy@thingoo) (gcc version 7.4.0 (OpenWrt GCC 7.4.0 r0-9bc2c1f3)) #0 Tue Jun 23 03:25:21 2020
[    0.000000] Board has DDR2
[    0.000000] Analog PMU set to hw control
[    0.000000] Digital PMU set to hw control
[    0.000000] SoC Type: MediaTek MT7628AN ver:1 eco:2
[    0.000000] CPU0 revision is: 00019655 (MIPS 24KEc)
[    0.000000] MIPS: machine is THINGOO-G1-C
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 08000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] On node 0 totalpages: 32768
[    0.000000] free_area_init_node: node 0, pgdat 804a7360, node_mem_map 81000040
[    0.000000]   Normal zone: 256 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 32768 pages, LIFO batch:7
[    0.000000] random: get_random_bytes called from start_kernel+0x90/0x478 with crng_init=0
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 32512
[    0.000000] Kernel command line: console=ttyS0,57600 rootfstype=squashfs,jffs2 loglevel=2
[    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Writing ErrCtl register=0006af42
[    0.000000] Readback ErrCtl register=0006af42
[    0.000000] Memory: 124696K/131072K available (3728K kernel code, 171K rwdata, 868K rodata, 152K init, 200K bss, 6376K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS: 256
[    0.000000] intc: using register map from devicetree
[    0.000000] CPU Clock: 580MHz
[    0.000000] timer_probe: no matching timers found
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6590553264 ns
[    0.000011] sched_clock: 32 bits at 290MHz, resolution 3ns, wraps every 7405115902ns
[    0.000059] Calibrating delay loop... 385.84 BogoMIPS (lpj=1929216)
[    0.059991] pid_max: default: 32768 minimum: 301
[    0.060259] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.060276] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.065957] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.065983] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.066105] pinctrl core: initialized pinctrl subsystem
[    0.067169] NET: Registered protocol family 16
[    0.092843] mt7621_gpio 10000600.gpio: registering 32 gpios
[    0.093136] mt7621_gpio 10000600.gpio: registering 32 gpios
[    0.093352] mt7621_gpio 10000600.gpio: registering 32 gpios
[    0.097685] clocksource: Switched to clocksource MIPS
[    0.098888] NET: Registered protocol family 2
[    0.099737] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.099776] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.099805] TCP: Hash tables configured (established 1024 bind 1024)
[    0.099974] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.100012] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.100342] NET: Registered protocol family 1
[    0.100380] PCI: CLS 0 bytes, default 32
[    0.103943] Crashlog allocated RAM at address 0x3f00000
[    0.105298] workingset: timestamp_bits=30 max_order=15 bucket_order=0
[    0.111134] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.111146] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.121717] io scheduler noop registered
[    0.121730] io scheduler deadline registered (default)
[    0.122624] Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
[    0.123835] console [ttyS0] disabled
[    0.123894] 10000c00.uartlite: ttyS0 at MMIO 0x10000c00 (irq = 28, base_baud = 2500000) is a 16550A
[    0.123941] console [ttyS0] enabled
[    0.125253] spi-mt7621 10000b00.spi: sys_freq: 193333333
[    0.138635] m25p80 spi0.0: w25q128 (16384 Kbytes)
[    0.138689] 4 fixed-partitions partitions found on MTD device spi0.0
[    0.138696] Creating 4 MTD partitions on "spi0.0":
[    0.138716] 0x000000000000-0x000000030000 : "u-boot"
[    0.139645] 0x000000030000-0x000000040000 : "u-boot-env"
[    0.140484] 0x000000040000-0x000000050000 : "factory"
[    0.141345] 0x000000050000-0x000001000000 : "firmware"
[    0.143528] 2 uimage-fw partitions found on MTD device firmware
[    0.143541] Creating 2 MTD partitions on "firmware":
[    0.143562] 0x000000000000-0x000000185dad : "kernel"
[    0.144445] 0x000000185dad-0x000000fb0000 : "rootfs"
[    0.145260] mtd: device 5 (rootfs) set to be root filesystem
[    0.148136] 1 squashfs-split partitions found on MTD device rootfs
[    0.148165] 0x0000007a0000-0x000000fb0000 : "rootfs_data"
[    0.150052] libphy: Fixed MDIO Bus: probed
[    0.159666] rt3050-esw 10110000.esw: link changed 0x00
[    0.162815] mtk_soc_eth 10100000.ethernet eth0: mediatek frame engine at 0xb0100000, irq 5
[    0.164196] NET: Registered protocol family 10
[    0.167655] Segment Routing with IPv6
[    0.167851] NET: Registered protocol family 17
[    0.167911] 8021q: 802.1Q VLAN Support v1.8
[    0.174472] VFS: Mounted root (squashfs filesystem) readonly on device 31:5.
[    0.175302] Freeing unused kernel memory: 152K
[    0.175307] This architecture does not have kernel memory protection.
[    0.923297] init: Console is alive
[    2.147700] random: fast init done
[    2.658871] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    2.834129] usbcore: registered new interface driver usbfs
[    2.834207] usbcore: registered new interface driver hub
[    2.834330] usbcore: registered new device driver usb
[    2.836236] reg_opt_init
[    2.842222] exFAT: Version 1.2.9
[    2.875265] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    2.884338] SCSI subsystem initialized
[    2.889830] ehci-platform: EHCI generic platform driver
[    2.900190] phy phy-10120000.usbphy.0: remote usb device wakeup disabled
[    2.900203] phy phy-10120000.usbphy.0: UTMI 16bit 30MHz
[    2.900228] ehci-platform 101c0000.ehci: EHCI Host Controller
[    2.900274] ehci-platform 101c0000.ehci: new USB bus registered, assigned bus number 1
[    2.900402] ehci-platform 101c0000.ehci: irq 26, io mem 0x101c0000
[    2.927727] ehci-platform 101c0000.ehci: USB 2.0 started, EHCI 1.00
[    2.928701] hub 1-0:1.0: USB hub found
[    2.928886] hub 1-0:1.0: 1 port detected
[    2.932356] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    2.934221] ohci-platform: OHCI generic platform driver
[    2.934492] ohci-platform 101c1000.ohci: Generic Platform OHCI controller
[    2.934528] ohci-platform 101c1000.ohci: new USB bus registered, assigned bus number 2
[    2.934623] ohci-platform 101c1000.ohci: irq 26, io mem 0x101c1000
[    3.002691] hub 2-0:1.0: USB hub found
[    3.002878] hub 2-0:1.0: 1 port detected
[    3.071928] sdhci: Secure Digital Host Controller Interface driver
[    3.071939] sdhci: Copyright(c) Pierre Ossman
[    3.073378] sdhci-pltfm: SDHCI platform and OF driver helper
[    3.077615] usbcore: registered new interface driver usb-storage
[    3.081109] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    3.084696] init: - preinit -
[    3.579992] usb 1-1: new high-speed USB device number 2 using ehci-platform
[    3.791425] random: procd: uninitialized urandom read (4 bytes read)
[    3.792242] hub 1-1:1.0: USB hub found
[    3.792674] hub 1-1:1.0: 4 ports detected
[    4.137578] rt3050-esw 10110000.esw: link changed 0x00
[    4.273484] usb 1-1.2: new full-speed USB device number 3 using ehci-platform
[    4.278635] mount_root: loading kmods from internal overlay
[    4.318110] kmodloader: loading kernel modules from //etc/modules-boot.d/*
[    4.319544] kmodloader: done loading kernel modules from //etc/modules-boot.d/*
[    4.903218] jffs2: notice: (381) jffs2_build_xattr_subsystem: complete building xattr subsystem, 19 of xdatum (3 unchecked, 16 orphan) and 46 of xref (17 dead, 15 orphan) found.
[    4.903805] block: attempting to load /tmp/jffs_cfg/upper/etc/config/fstab
[    4.913145] block: extroot: not configured
[    4.972420] jffs2: notice: (379) jffs2_build_xattr_subsystem: complete building xattr subsystem, 19 of xdatum (3 unchecked, 16 orphan) and 46 of xref (17 dead, 15 orphan) found.
[    5.296119] block: attempting to load /tmp/jffs_cfg/upper/etc/config/fstab
[    5.306093] block: extroot: not configured
[    5.307259] mount_root: switching to jffs2 overlay
[    5.343593] overlayfs: upper fs does not support tmpfile.
[    5.348154] urandom-seed: Seeding with /etc/urandom.seed
[    5.491988] procd: - early -
[    6.214510] procd: - ubus -
[    6.367370] random: ubusd: uninitialized urandom read (4 bytes read)
[    6.461145] random: ubusd: uninitialized urandom read (4 bytes read)
[    6.461718] random: ubusd: uninitialized urandom read (4 bytes read)
[    6.462773] procd: - init -
[    7.451309] kmodloader: loading kernel modules from /etc/modules.d/*
[    7.571034] urngd: v1.0.0 started.
[    7.645653] ntfs: driver 2.1.32 [Flags: R/O MODULE].
[    7.667117] ws2812: Major=152  device=/dev/ws2812
[    7.676509] ws2812: Base GPIO number: 11, gpio_count=1
[    7.686691] ws2812: Leds per chain: 24
[    7.694142] ws2812: Inverted: 0
[    7.700369] ws2812: RGBW LEDs: 0
[    7.764007] ip6_tables: (C) 2000-2006 Netfilter Core Team
[    7.785528] fuse init (API version 7.26)
[    7.792123] Loading modules backported from Linux version v4.19.79-0-gdafd634415a7
[    7.792134] Backport generated by backports.git v4.19.79-1-0-g0c303298
[    7.800914] ip_tables: (C) 2000-2006 Netfilter Core Team
[    7.819388] nf_conntrack version 0.5.0 (2048 buckets, 8192 max)
[    7.930736] random: crng init done
[    7.930754] random: 6 urandom warning(s) missed due to ratelimiting
[    7.937880] usbcore: registered new interface driver ums-alauda
[    7.940243] usbcore: registered new interface driver ums-cypress
[    7.942837] usbcore: registered new interface driver ums-datafab
[    7.944885] usbcore: registered new interface driver ums-freecom
[    7.947280] usbcore: registered new interface driver ums-isd200
[    7.949966] usbcore: registered new interface driver ums-jumpshot
[    7.952056] usbcore: registered new interface driver ums-karma
[    7.954959] usbcore: registered new interface driver ums-sddr09
[    7.957582] usbcore: registered new interface driver ums-sddr55
[    7.960122] usbcore: registered new interface driver ums-usbat
[    7.965957] usbcore: registered new interface driver usbserial
[    7.966053] usbcore: registered new interface driver usbserial_generic
[    7.966155] usbserial: USB Serial support registered for generic
[    7.988276] xt_time: kernel timezone is -0000
[    8.091405] usbcore: registered new interface driver cp210x
[    8.091513] usbserial: USB Serial support registered for cp210x
[    8.091690] cp210x 1-1.2:1.0: cp210x converter detected
[    8.097988] usb 1-1.2: cp210x converter now attached to ttyUSB0
[    8.199057] mt76_wmac 10300000.wmac: ASIC revision: 76280001
[    9.220184] mt76_wmac 10300000.wmac: Firmware Version: 20151201
[    9.220200] mt76_wmac 10300000.wmac: Build Time: 20151201183641
[    9.237692] mt76_wmac 10300000.wmac: firmware init done
[    9.407609] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'

Bluetooth subsystem

Overview

The bluetooth functionality is provided by an nRF52 w/ external PA/LNA. This is connected to the main SoC via a SiLabs CP2102 USB<–>UART chip via an onboard USB hub.

All these chips likely exist because the UART on the mt7628 is a three-wire UART and doesn't expose the 5-wire interface needed to run H4 protocol, but the CP2102 does support this.

Reset

gpio45 on the mt7628 is wired to the unmarked pin on the nRF52 SWD header (J12). I think this is the nRST pin for the nRF52.