I am a developer on the completely open-source Tessel 2 project (tessel.io). We are running a OpenWRT distribution on a custom board designed around the MT7620N.

We are attempting to pass FCC approval but have exhausted our expertise on the following: testing requires our device operate in isolation, so we need to demonstrate that we can emit packets on for bitrates spanning b, g, and n.

Our distribution is updated to the Chaos Calmer release [1] as of June 14th but we have also tested Chaos Calmer as of August 14th. We have been using the packetspammer [3] utility to send packets as a monitor of wlan0, so wirelessly transmitting packets without being connected to an AP. In short, after hammering against this for sometime, we discovered these commands are successful in setting the appropriate bitrates:

iw mon0 set bitrates legacy-2.4 1 2 11 # b
iw mon0 set bitrates legacy-2.4 6 12 24 # g

But when we try to configure our board for HT speeds, we find that, unless connected to an AP(!), the driver will only output speeds last set by the last legacy-2.4 command. We find this is the case even if we clear all legacy-2.4 speeds:

iw mon0 set bitrates legacy-2.4
iw dev mon0 set bitrates ht-mcs-2.4 4 10 # n

In this scenario, we have been seeing packetspammer [3] output speeds of 1.0 Mb/s, as though HT rates were never being achieved and the driver were accepting defaults.

We cannot pass FCC certification by introducing another device (say, an AP) into the environment, so we must find some way to demonstrate with the current driver in isolation that we are able to achieve HT speeds.

Can someone can help us troubleshoot or discover exactly what failure mode we are running into? Are there any other test modes or things we should be doing besides monitor mode/packetspammer? It would be a huge help, as this is the last blocker before we can move forward to full production. Thank you for any help you may have!


[1] Our distribution: https://github.com/tessel/openwrt 
[2] Our custom code overlay: https://github.com/tessel/openwrt-tessel 
[3] Packetspammer source code: https://wireless.wiki.kernel.org/en/use … ketspammer 
[4] A breakdown of our testing setup: https://github.com/tessel/project/issues/79