Starlink – Part 13 – Local Wi-Fi on 2.4 GHz

Outdoor Starlink setup with a 2.4 GHz Wi-Fi link to the house

In the previous post, I had a look at the 5 GHz Wi-Fi of the Starlink router at close range for maximum throughput. In this post, I’ll have a look at the completely opposite scenario: How Starlink’s Wi-Fi performs when used to bridge a larger distance. This wasn’t actually a theoretical test, but the scenario I bought my Starlink terminal in the first place: Fast Internet connectivity in ‘underserved’ places. As you can see in the picture above, I put the satellite antenna itself in a courtyard, while the router and the 230V power supply (more about that in a follow up post) was in the car next to it.

A Samsung S22 at the window for in-house distribution

I estimate the distance to the router to be about 30 meters, give or take a bit. To make the scenario more challenging, both the Starlink Router and the Wi-Fi client device were behind glass windows. On the client side, I used a Samsung S22 smartphone and Wi-Fi tethering at first, which delivered around 30 Mbps in the downlink direction and around 15 Mbps in the uplink direction to a notebook when running iperf3 throughput tests. Between the Starlink router and the S22, the two devices chose to use the 2.4 GHz band, the 5 GHz band was too weak to be useful. However, since I set the S22 to use the 5 GHz band for Wi-Fi tethering, the in-house tethering part to my notebook was done over the 5 GHz band. I would not have expected that a smartphone could have two Wi-Fi’s active at the same time, so I was positively surprised.

A Linksys Router at the Window for in-house distribution

A smartphone might not be the ideal device for long range Wi-Fi connections, I took a full grown Linksys 1200 AC Wi-Fi router with me. As I ran the Linux based OpenWRT OS on the Linksys, I could configure it to my heart’s desire and open a remote SSH shell to get to more detailed link status information. Even with bigger antennas, however, I couldn’t use the 5 GHz channel to connect to the Starlink router. So I configured the Linksys router as a client for the Starlink router on the 2.4 GHz band. Like with the S22, I then chose the 5 GHz band for in-house distribution. With this setup, I could get speeds between 35 and 50 Mbps in the downlink direction and 15 to 20 Mbps in the uplink direction. A bit more, but actually not that much more, at least not at close range.

Where is the Bottleneck?

While those speeds were not bad at all given the circumstances, Starlink can deliver much higher speeds. And indeed, when connecting to Starlink’s own Wi-Fi at close range, I could get well over 130 Mbps. Therefore, the bottleneck must have been somewhere else. I then ran an iperf3 downlink test between the Linksys router and the Starlink terminal, and could reach the same speeds as before. In other words: The bottleneck was the 2.4 GHz connection to the Starlink router. Next, I had a look at the parameters announced in Starlink’s beacon frames for the 2.4 GHz band:

	TSF: 9978354977 usec (0d, 02:46:18)
	freq: 2412
	beacon interval: 100 TUs
	capability: ESS (0x1431)
	signal: -72.00 dBm
	last seen: 200 ms ago
	Information elements from Probe Response frame:
	SSID: xyzabc
	RSN:	 * Version: 1
		 * Group cipher: CCMP
		 * Pairwise ciphers: CCMP
		 * Authentication suites: PSK
		 * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)
	HT capabilities:
		Capabilities: 0x1ad
			SM Power Save disabled
			RX HT20 SGI
			RX STBC 1-stream
			Max AMSDU length: 3839 bytes
		Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
		Minimum RX AMPDU time spacing: 4 usec (0x05)
		HT RX MCS rate indexes supported: 0-23
		HT TX MCS rate indexes are undefined
	HT operation:
		 * primary channel: 1
		 * secondary channel offset: no secondary
		 * STA channel width: 20 MHz
	VHT capabilities:
		VHT Capabilities (0x33c279b1):
			Max MPDU length: 7991
			Supported Channel Width: neither 160 nor 80+80
			short GI (80 MHz)
			SU Beamformer
			SU Beamformee
			RX antenna pattern consistency
			TX antenna pattern consistency
		VHT RX MCS set:
			1 streams: MCS 0-8
			2 streams: MCS 0-8
			3 streams: MCS 0-9
			4 streams: not supported
			5 streams: not supported
			6 streams: not supported
			7 streams: not supported
			8 streams: not supported
		VHT RX highest supported: 260 Mbps
		VHT TX MCS set:
			1 streams: MCS 0-8
			2 streams: MCS 0-8
			3 streams: MCS 0-9
			4 streams: not supported
			5 streams: not supported
			6 streams: not supported
			7 streams: not supported
			8 streams: not supported
		VHT TX highest supported: 260 Mbps
	VHT operation:
		 * channel width: 0 (20 or 40 MHz)
		 * center freq segment 1: 0
		 * center freq segment 2: 0
		 * VHT basic MCS set: 0xffe5

There are a number of interesting things in here: As already established in the previous post, the current Starlink router is based on a Wi-Fi 5 (802.11ac) chipset. While that’s not so much of an issue for the 5 GHz band, it’s not ideal for the 2.4 GHz frequency band, as 802.11ac was only specified for the 5 GHz band. Well, at least theoretically. That means that the older 802.11n standard has be used in the 2.4 GHz band, which has a very limited feature set. Here’s a dump of the connection details between the Linksys and the Starlink router on the 2.4 GHz channel, taken on the Linksys router:

root@Linksys-1:~# iw wlan1 station dump
Station 00:00:00:00:00:00 (on wlan1)
        inactive time:  10 ms
        rx bytes:       2215416139
        rx packets:     1600475
        tx bytes:       640216467
        tx packets:     917347
        tx retries:     0
        tx failed:      0
        beacon loss:    0
        beacon rx:      21799
        rx drop misc:   81
        signal:         -70 dBm
        signal avg:     -69 dBm
        beacon signal avg:      -70 dBm
        tx bitrate:     39.0 MBit/s MCS 10
        rx bitrate:     86.7 MBit/s MCS 12 short GI
        rx duration:    0 us
        authorized:     yes
        authenticated:  yes
        associated:     yes
        preamble:       long
        WMM/WME:        yes
        MFP:            no
        TDLS peer:      no
        DTIM period:    1
        beacon interval:100
        short preamble: yes
        short slot time:yes
        connected time: 2442 seconds

When transferring data over the 30m distance and through 2 glass windows, Modulation and Coding Scheme (MCS) 12 was used most of the time (16-QAM, 2 MIMO streams, 3/4 coding) with a maximum data throughput of 86.7 Mbps on the physical layer. That’s around 60-70 Mbps at most on the IP layer. With a stronger signal, MCS 15 with 64-QAM could have been used over 2 streams, with a maximum throughput on the physical layer of 144 Mbps. Almost twice, but still not enough for Starlink.

In addition, the Starlink router only supports a 20 MHz channel on the 2.4 GHz band. That’s a bit of a shame, a 40 MHz channel, despite the rather bad signal conditions might have improved the throughput. Again, I’ll chase up this thought in a follow up post. Also, it looks like Starlink might launch a new router with 802.11ax support soon, which might just do that. Have a look here for details. On the other hand, I can understand Starlink’s decision to use the 2.4 GHz band for maximum range rather than to optimize throughput.

VHT on 2.4 GHz!? How Strange!

There is one other noteworthy point in information contained in the beacon frame caught on the 2.4 GHz channel: There’s a VHT section! VHT stands for ‘Very High Throughput’ and is part of the 802.11ac (Wi-Fi 5) standard. As mentioned above, it’s not standardized for the 2.4 GHz range. So what does this do in here? A online search revealed that there seem to be proprietary extensions of the standard to allow the use of 802.11ac modulation and coding in 802.11n on the 2.4 GHz band. And indeed, when checking the MCS information during data transmission, I could detect the use of VHT MCS’es every now and then. How interesting!

Opening a Window

In a final step, I opened the window to see how this would change the data rate of downlink transmissions. And indeed, I could immediately get downlink speeds of around 60 Mbps. So, yes, glass windows are quite a data blocker I’m afraid.


Overall, I’m very happy with the result achieved over the weekend and I learnt a great deal while using Starlink in an ‘underserved’ area. I wished the 2.4 GHz Wi-Fi link had performed a bit better, but the transmission was clearly power limited and hence, I’m not sure how a 40 MHz channel or 802.11ax support on 2.4 GHz would have helped.

Next Up: Dishy among trees and hills