MikroTik RBMetalG-52SHPacn
The MikroTik Metal 52 ac (RBMetalG-52SHPacn) is an outdoor-capable, single-radio high-power access point based on the Qualcomm Atheros QCA9556 SoC. It has one Gigabit Ethernet port (AR8033 SGMII PHY) and a single dual-band 1×1 802.11ac radio that serves either the 2.4 GHz or the 5 GHz band, paired with an external high-power amplifier. The radio chip is marked QCA9889 but is detected and driven as a QCA9887 by ath10k (same PCI ID / chip id). It is not supported by official OpenWrt; an external community port is available (see below).
OpenWrt support
Not supported by the official OpenWrt tree.
A working external port (device tree, image definition, calibration extraction, LED/GPIO kernel patch and build instructions) is maintained here:
Supporting activities
- External port & build guide: https://github.com/defencore/openwrt_rbmetalg-52shpacn
- Based on the wAP ac (
mikrotik,routerboard-wap-g-5hact2hnd), same SoC.
Experimental firmware
Built against OpenWrt v25.12.4 (kernel 6.12, apk package manager). Sources, patches and instructions:
Hardware highlights
| CPU | Ram | Flash | Network | WLAN | USB | Serial | JTag | ADC/Monitor |
|---|---|---|---|---|---|---|---|---|
| QCA9556 @ 720 MHz | 64 MiB | 16 MiB | 1x 10/100/1000 | a/b/g/n/ac 1×1 | No | yes | ? | ZT2046Q |
Installation
The device is installed by network-booting the OpenWrt initramfs image over
Ethernet and then running sysupgrade. RouterBOOT 6.48.6 requires the
plain ...squashfs-sysupgrade.bin (the -v7 image is for RouterBOOT 7+ only).
Installing OpenWrt
- Build (or obtain) the images from the external port. You need
...initramfs-kernel.bin(netboot) and...squashfs-sysupgrade.bin(flash). - On the host, serve the initramfs over TFTP/DHCP (example uses interface
enp0s8):cd bin/targets/ath79/mikrotik/ sudo dnsmasq -d -p0 -i enp0s8 --bind-interfaces \ --dhcp-authoritative --bootp-dynamic \ -F 192.168.1.100,192.168.1.200 \ --dhcp-boot=openwrt-ath79-mikrotik-mikrotik_routerboard-metal-52ac-initramfs-kernel.bin \ --enable-tftp --tftp-root="$(pwd)"
- In RouterOS arm a one-shot Ethernet boot, then power-cycle (or hold Reset until the file is sent):
/system routerboard settings set boot-device=try-ethernet-once-then-nand
- OpenWrt comes up in RAM at
192.168.1.1. Copy and flash the sysupgrade image (Dropbear in 25.12 has no sftp-server, usescp -O):scp -O openwrt-ath79-mikrotik-mikrotik_routerboard-metal-52ac-squashfs-sysupgrade.bin root@192.168.1.1:/tmp/ ssh root@192.168.1.1 sysupgrade -n /tmp/openwrt-ath79-mikrotik-mikrotik_routerboard-metal-52ac-squashfs-sysupgrade.bin
If you see RouterBOOT 6 and earlier requires ELF-in-YAFFS image, you flashed
the -v7 image by mistake -- use the plain ...sysupgrade.bin.
Debricking
The bootloader and hard_config (license/calibration) live in the read-only
RouterBoot partition and are not touched by OpenWrt. To return to RouterOS,
use MikroTik Netinstall. Network boot (try-ethernet-once-then-nand)
remains a safety net even if a flashed image fails to start.
Failsafe mode
Basic configuration
After flashing, proceed with Basic configuration. Wi-Fi is disabled on first boot (default OpenWrt behaviour).
Specific configuration
Network interfaces
The default network configuration is:
| Interface Name | Description | Default configuration |
|---|---|---|
| br-lan | LAN & WiFi | 192.168.1.1/24 |
| eth0 | Gigabit Ethernet port | LAN (bridged) |
| phy0-ap0 | WiFi (QCA9887) | Disabled |
The MAC base is read from hard_config (/sys/firmware/mikrotik/hard_config/mac_base).
Buttons
| BUTTON | Event |
|---|---|
| Reset | reset |
Hardware
Info
| Architecture | MIPS (74Kc, big-endian) |
|---|---|
| Vendor | MikroTik |
| Bootloader | RouterBOOT 6.48.6 |
| System-On-Chip | Qualcomm Atheros QCA9556 ver 1 rev 0 |
| CPU/Speed | 720 MHz |
| Flash size | 16 MiB (ISSI IS25LP128, 128 Mbit SPI NOR) |
| RAM | 64 MiB (Nanya NT5TU32M16FG-AC, DDR2) |
| Wireless | Qualcomm Atheros QCA9889 / QCA9887 (ath10k), 1×1, 2.4/5 GHz 802.11a/b/g/n/ac |
| Ethernet | 1x 10/100/1000 Mbit/s, AR8033 SGMII PHY |
| Switch | None (single port via PHY) |
| USB | None |
| Serial | Unknown (untested) |
| JTAG | Unknown (untested) |
| ADC / Monitor | ZillTek ZT2046Q, QFN-16, 4-wire SPI, internal reference (compat.: Auramicro AUR3840GQR, XPT2046, ADS7846) |
Flash Layout
16 MiB SPI NOR. RouterBoot (mtd0) is read-only and holds the bootloader and
hard_config (license, WLAN calibration, MAC base). mtd1-mtd5 are
sub-partitions of RouterBoot; kernel/rootfs are sub-partitions of
firmware; rootfs_data is the writable overlay inside rootfs
(values from /proc/mtd):
| mtd | Offset | Size | Name | Notes |
|---|---|---|---|---|
| mtd0 | 0x000000 | 0x020000 (128 KiB) | RouterBoot | read-only; contains mtd1-mtd5 |
| mtd1 | 0x000000 | 0x00e000 (56 KiB) | bootloader1 | in RouterBoot |
| mtd2 | 0x00e000 | 0x001000 (4 KiB) | hard_config | license, WLAN calibration, MAC base |
| mtd3 | 0x00f000 | 0x001000 (4 KiB) | bios | in RouterBoot |
| mtd4 | 0x010000 | 0x00f000 (60 KiB) | bootloader2 | in RouterBoot |
| mtd5 | 0x01f000 | 0x001000 (4 KiB) | soft_config | boot settings |
| mtd6 | 0x020000 | 0xfe0000 (16256 KiB) | firmware | OpenWrt; contains kernel + rootfs |
| mtd7 | 0x020000 | 0x320000 (3200 KiB) | kernel | in firmware |
| mtd8 | 0x340000 | 0xcc0000 (13056 KiB) | rootfs | in firmware |
| mtd9 | 0xa80000 | 0x560000 (5504 KiB) | rootfs_data | writable overlay (within rootfs) |
Photos
Insert photo of front of the casing
Insert photo of back of the casing
Insert photo of backside label
Insert photo of PCB
Opening the case
Describe how to open the enclosure (outdoor case, screws under the rubber gland/cover).
Serial
The kernel exposes ttyS0 at 0x18020000 (16550A, 115200 8N1)
| Serial connection parameters for MikroTik RBMetalG-52SHPacn | 115200, 8N1, 3.3V (kernel console; physical pads untested) |
|---|
JTAG
Not documented.
Bootlogs
OEM bootlog
COPY HERE THE BOOTLOG WITH THE ORIGINAL FIRMWARE
OpenWrt bootlog
[ 0.000000] Linux version 6.12.87 (ubuntu@ubuntu) (mips-openwrt-linux-musl-gcc (OpenWrt GCC 14.3.0 r32933-4ccb782af7) 14.3.0, GNU ld (GNU Binutils) 2.44) #0 Wed May 13 22:42:09 2026 [ 0.000000] CPU0 revision is: 00019750 (MIPS 74Kc) [ 0.000000] MIPS: machine is MikroTik RouterBOARD Metal 52 ac [ 0.000000] SoC: Qualcomm Atheros QCA9556 ver 1 rev 0 [ 0.000000] Kernel command line: console=ttyS0,115200n8 rootfstype=squashfs,jffs2 [ 0.000000] CPU clock: 720.000 MHz [ 0.117523] Memory: 52748K/65536K available [ 0.363039] 18020000.uart: ttyS0 at MMIO 0x18020000 (irq = 11, base_baud = 2500000) is a 16550A [ 0.421611] 0x000000000000-0x000000020000 : "RouterBoot" [ 0.441930] 0x000000000000-0x00000000e000 : "bootloader1" [ 0.448875] 0x00000000e000-0x00000000f000 : "hard_config" [ 0.455881] 0x00000000f000-0x000000010000 : "bios" [ 0.462186] 0x000000010000-0x00000001f000 : "bootloader2" [ 0.469106] 0x00000001f000-0x000000020000 : "soft_config" [ 0.476074] 0x000000020000-0x000001000000 : "firmware" [ 0.494386] 0x000000000000-0x000000320000 : "kernel" [ 0.500863] 0x000000320000-0x000000fe0000 : "rootfs" [ 0.507310] mtd: setting mtd8 (rootfs) as root device [ 0.518858] 0x000000a80000-0x000000fe0000 : "rootfs_data" [ 0.934180] ag71xx-legacy 1a000000.eth: connected to PHY at gpio-1:00 [uid=004dd074, driver=Qualcomm Atheros AR8031/AR8033] [ 0.946208] eth0: Atheros AG71xx at 0xba000000, irq 5, mode: sgmii [ 0.956138] MikroTik RouterBOARD hardware configuration sysfs driver v0.08 [ 0.965330] MikroTik RouterBOARD software configuration sysfs driver v0.05 [ 1.055781] pci 0000:00:00.0: [168c:0050] type 00 class 0x028000 PCIe Endpoint [ 12.014451] eth0: link up (1000Mbps/Full duplex) [ 12.889412] mount_root: switching to jffs2 overlay [ 13.980817] platform ath10k-leds: deferred probe pending: leds-gpio: Failed to get GPIO '/ath10k-leds/wlan' [ 17.094475] input: beeper as /devices/platform/beeper/input/input0 [ 17.155926] Loading modules backported from Linux version v6.18.26-0-g1fe060681 [ 18.199736] ath10k_pci 0000:00:00.0: pci irq legacy oper_irq_mode 1 irq_mode 0 reset_mode 0 [ 19.992516] ath10k_pci 0000:00:00.0: qca9887 hw1.0 target 0x4100016d chip_id 0x004000ff sub 0000:0000 [ 20.012756] ath10k_pci 0000:00:00.0: firmware ver 10.2.4-1.0-00047 api 5 features no-p2p,ignore-otp,skip-clock-init,mfp,allows-mesh-bcast crc32 62f7565f [ 20.848347] ath10k_pci 0000:00:00.0: board_file api 1 bmi_id N/A crc32 546cca0d [ 21.985705] ath10k_pci 0000:00:00.0: htt-ver 2.1 wmi-op 5 htt-op 2 cal file max-sta 128 raw 0 hwcrypto 1 [ 22.094771] ath: Country alpha2 being used: US [ 42.254508] eth0: link up (1000Mbps/Full duplex) [ 44.809681] ath10k_pci 0000:00:00.0: pdev param 0 not supported by firmware [ 45.286318] br-lan: port 2(phy0-ap0) entered blocking state [ 45.292009] br-lan: port 2(phy0-ap0) entered forwarding state
Notes
- The radio chip is marked QCA9889 but enumerates with the QCA9887 PCI ID (
168c:0050, chip id0x004000ff) and is driven by ath10k as a QCA9887. - A single radio serves both bands (2.4 and 5 GHz, one at a time); the SoC built-in 2.4 GHz MAC is not wired and is omitted from the device tree.
- LEDs:
green:eth(SoC GPIO 16) and, on the radio chip's own GPIOs,green:wlanplus a 4-segment signal bar (green:rssilow...green:rssihigh). The chip GPIOs are exposed via a kernel patch that re-adds the ath10kgpiochip(stripped from mainline). Theath10k-ledsnode therefore probes only after the radio loads (adeferred probe pendingline for it during early boot is expected). The RSSI bar reflects link signal only in station/client mode; in AP mode it has nothing to measure, and the chip GPIOs are controllable only while the radio firmware is running. - Optional MikroTik-style boot beep on the passive piezo (SoC GPIO 4) via
gpioset(square wave); see the external repo. - Package manager is apk (OpenWrt 25.x), not opkg.
- Key components (from the PCB): SoC Qualcomm Atheros QCA9556; radio QCA9889/QCA9887; RAM Nanya NT5TU32M16FG-AC (DDR2, 64 MiB); flash ISSI IS25LP128 (16 MiB SPI NOR); Ethernet PHY Qualcomm AR8033.
- RF front-end: 2x Qorvo RFPA5562 (5 GHz Wi-Fi PA, 4.9-5.925 GHz), 1x Qorvo RFPA5208 (2.4 GHz Wi-Fi PA), 1x Skyworks SKY13373 SP3T antenna/band switch -- this is the “high-power” front-end of the Metal 52 ac.
- ADC / voltage & temperature monitor: The board uses a ZillTek ZT2046Q (QFN-16, serial 4-wire SPI, internal reference) for supply-voltage and temperature monitoring. It is pin- and software-compatible with the Auramicro AUR3840GQR, XPT2046 and ADS7846. The equivalence is confirmed in the MikroTik CRS226 repair guide (p. 21, section “Temperature and Voltage monitor or LCD does not work”), where ZT2046Q and AUR3840GQR are listed as interchangeable replacements. The Linux driver is
ads7846(``CONFIG_TOUCHSCREEN_ADS7846``).
