Matter, Unifi and mDNS

I started playing around with the connectedhomeip repository last week in an effort to get a better understanding of Matter and Thread.

One of the issues I ran into was related to how Matter uses mDNS and DNS-SD.

After hours of messing around with both my nRF52840 and ESP32 boards, I could see both WiFi connections (ESP32) and Thread connections (nRF52), but pairing via the chip-tool and iOS would fail.

Open Thread Border Router showing my Matter device on the network

As I got to understand more about the pairing process, I realised that the DNS-DS part wasn’t working. Matter uses services called _matter._tcp and _matterc._tcp to indicate they are present and ready to be commissioned.

Using WireShark, I could see that the mDNS traffic I expected just wasn’t arriving correctly.

Unifi and mDNS

I came to realise my issue wasn’t related to Matter, but to my Unifi networking setup.

The first setting to change is Router Advertisment. This is required by Thread networking when you an border router. It lets the devices on the Thread network advertise onto your IP network. You’ll find this under the Networks tab.

The next setting to tinker with is under the WiFi panel. Select your WiFi network and ensure Multicast Enhancement is enabled. Most importartantly, ensure that Multicase and Broadcast Control is disabled! This setting, when turned on, only allows certain devices to Multicast.

With those two settings, I began to see the services appear on both my Mac and Windows PC. Pairing was then successful using both iOS and the chip-tool.

Using the macOS dns-sd tool to browse for Matter services

I’ve a lot to learn about Matter and networking, but this might help you get unblocked. If you’re learning more about Matter, I’d love to hear from you. Tell me what you’re up to in the comments!