Homepod & ATV - Streaming Issues (MTK & MT76)

Hi Team,

I would like to get any feedback from anyone who use HomePods with openwrt (positive/negative), if they had similar issue & if you were able to resolve it. At the moment im using outdated (21.02) openwrt glinet firmware for MT6000 with mtk closed source drivers, where the issue is not present.

The design of the network is pretty simple:

ONT + MT6000 used for routing and wifi in main room.
Main room: Apple TV connected to the router by ethernet lan cable with default audio output device as a TV. Once you change audio output to "HomePod", Apple TV syncs with HomePod to deliver smooth video and audio experience balancing audio and video output. (No issue at main room as ATV is connected by ethernet)

Bedroom: Apple TV & HomePod connected via wifi to mt6000 from main room.
HomePod is the default audio device as the monitor used on bedroom hasn't any audio device.
First what you will notice is very slow internet speed. Both connected to 5ghz channel with continues speed drops, all time jumping between 30-150 mb.
Powering off HomePod resolves the issue and I can easily reach 500-600 Mb.
This impacts a lot on streaming anything. (Continuos Freezes, Quality degradation)

First the idea was that this is purely bad apple product, but..
Then I tested the "latest" glinet firmware with closed mtk driver and this issue is not present there.

There is a lot of similar posts in the google and I will include one which can include little bit more info, like this issue is present in more router brands:
(same situation described in this post on reddit )

What I tried to resolve this:
Using non DFS channel (36)
Turning off wed & sf/hw offloading.
Moving HomePod to 2.4Ghz channel and leaving AppleTV on 5Ghz.
Moving both to 2.4Ghz.
Moving HomePod location.
Changing encryption.
The network configuration is very simple, there is no additional tuning... just stock config with wed, hw offload, pbr (turned off) (Cloudflare Wireguard tunnel which is not being used), ipv6 turned off, that's it.

wireless conf:

Summary

config wifi-device 'radio0'
	option type 'mac80211'
	option path 'platform/soc/18000000.wifi'
	option channel '1'
	option band '2g'
	option htmode 'HE20'
	option disabled '1'

config wifi-iface 'default_radio0'
	option device 'radio0'
	option network 'lan'
	option mode 'ap'
	option ssid '****'
	option encryption 'psk2+ccmp'
	option key '****'

config wifi-device 'radio1'
	option type 'mac80211'
	option path 'platform/soc/18000000.wifi+1'
	option channel '128'
	option band '5g'
	option htmode 'HE160'
	option country 'DE'
	option cell_density '0'

config wifi-iface 'default_radio1'
	option device 'radio1'
	option network 'lan'
	option mode 'ap'
	option ssid '****'
	option encryption 'psk2+ccmp'
	option key '****'

network conf:

Summary

config interface 'loopback'
	option device 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'

config device
	option name 'br-lan'
	option type 'bridge'
	list ports 'lan1'
	list ports 'lan2'
	list ports 'lan3'
	list ports 'lan4'
	list ports 'lan5'
	option ipv6 '0'

config device
	option name 'lan1'
	option macaddr '****'

config device
	option name 'lan2'
	option macaddr '****'

config device
	option name 'lan3'
	option macaddr '****'

config device
	option name 'lan4'
	option macaddr '****'

config device
	option name 'lan5'
	option macaddr '****'

config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	option ipaddr '192.168.1.1'
	option netmask '255.255.255.0'

config device
	option name 'eth1'
	option macaddr '****'
	option ipv6 '0'

config interface 'wan'
	option device 'eth1.1'
	option proto 'dhcp'

config device
	option type '8021q'
	option ifname 'eth1'
	option vid '1'
	option name 'eth1.1'
	option ipv6 '0'

config device
	option name 'phy1-ap0'
	option ipv6 '0'

config device
	option name 'eth0'
	option ipv6 '0'

config interface 'Cloudflare'
	option proto 'wireguard'
	option private_key '****'
	list addresses '172.16.0.2/32'
	list dns '1.1.1.1'
	option auto '0'

config wireguard_Cloudflare
	option description 'Cloudflare'
	option public_key '****'
	list allowed_ips '0.0.0.0/0'
	option endpoint_host '162.159.193.7'
	option endpoint_port '2408'
	option persistent_keepalive '25'


Nothing helps.

Appreciate any feedback.

Adding @nbd as at the moment he is working on mt76 drivers.

Thanks.

Maybe it's a good idea to report the issue on mt76 github

1 Like

After spending a lot of tests trying to place HomePod and ATV in different subnets with mdns setup, which didn't worked, the workaround was in using 149(80Mhz) and connecting both devices to same channel. Basically poor apple design, more details here: https://github.com/moonlight-stream/moonlight-ios/issues/607
AWDL......
Anyway with MTK drivers you still can use 128 DFS or any other channel and this issue is covered in their drivers, so not sure if @nbd can somehow introduce some kind of workaround in opensource drivers as this is not a real wifi driver issue and bad apple design.

1 Like

well that is more complex that you think. mt76 is totaly different from mtk wifi driver. so that is not an mt76 problem but is how open drivers work.

Probably, but I'm not saying that there is a problem with drivers, I'm sure openwrt should look into resolving this by placing a workaround, not a fix, as there is no issue with the driver itself, instead bad apple design :slight_smile: Probably there will be some amount of people being routers where they can set channel 149 just because their home cinema setup is working correctly on this band. Im from Spain and I have to use stock mt6000 firmware just because of this, of course it's easy for me set Panama and use 149.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.