{"action":"created","issue":{"url":"https://api.github.com/repos/tessel/project/issues/79","labels_url":"https://api.github.com/repos/tessel/project/issues/79/labels{/name}","comments_url":"https://api.github.com/repos/tessel/project/issues/79/comments","events_url":"https://api.github.com/repos/tessel/project/issues/79/events","html_url":"https://github.com/tessel/project/issues/79","id":100842741,"number":79,"title":"Passing FCC Certification with Tessel 2","user":{"login":"tcr","id":80639,"avatar_url":"https://avatars.githubusercontent.com/u/80639?v=3","gravatar_id":"","url":"https://api.github.com/users/tcr","html_url":"https://github.com/tcr","followers_url":"https://api.github.com/users/tcr/followers","following_url":"https://api.github.com/users/tcr/following{/other_user}","gists_url":"https://api.github.com/users/tcr/gists{/gist_id}","starred_url":"https://api.github.com/users/tcr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tcr/subscriptions","organizations_url":"https://api.github.com/users/tcr/orgs","repos_url":"https://api.github.com/users/tcr/repos","events_url":"https://api.github.com/users/tcr/events{/privacy}","received_events_url":"https://api.github.com/users/tcr/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-08-13T18:54:26Z","updated_at":"2015-08-30T04:31:37Z","closed_at":null,"body":"Tessel 2 is seeking FCC approval. Tessel 2 runs OpenWRT, a distribution of Linux designed as open firmware for routers with very granular control over wireless capabilities.  Currently Tessel 2 is stuck in FCC approval pending its demonstration of being able to generate packets in the 802.11n range.\r\n\r\n### Testing instructions\r\n\r\nInstallation on a Tessel 2:\r\n\r\n```\r\nopkg update\r\nopkg install tcpdump\r\nwget https://kevinmehall.net/tmp/packetspammer -O /usr/bin/packetspammer\r\nchmod +x /usr/bin/packetspammer\r\n```\r\n\r\nTo configure monitor on wlan0 (this goes away on each reset):\r\n\r\n```\r\nifconfig wlan0 down\r\niw dev wlan0 interface add mon0 type monitor\r\nifconfig mon0 up\r\niw mon0 set channel 11\r\n```\r\n\r\nTo set which transmit mode you want:\r\n\r\n```\r\niw mon0 set bitrates legacy-2.4 1 2 11 # b\r\niw mon0 set bitrates legacy-2.4 6 12 24 # g\r\niw dev mon0 set bitrates ht-mcs-2.4 4 10 # n\r\n\r\n# to reset these values:\r\niw mon0 set bitrates legacy-2.4\r\niw dev mon0 set bitrates ht-mcs-2.4\r\n```\r\n\r\nLastly run the `packetspammer` command, and see if the resulting output is being transmitted at a speed that correlates with the given spec:\r\n\r\n```\r\npacketspammer -d40000 mon0\r\n```\r\n\r\nOutput may resemble:\r\n\r\n```\r\n1818:20:58.209712 1.0 Mb/s 2462 MHz 11b -38dB signal [bit 29] 0us 13:22:33:44:55:66\r\n(oui Unknown) Unknown SSAP 0x60 > 13:22:33:44:55:66\r\n(oui Unknown) Unknown DSAP 0x50 Unnumbered, ua, Flags [Response], length 72\r\n```\r\n\r\nNote the \"1.0 Mb/s\" indicating the output speed (1.0 Mb/s, 802.11g)\r\n\r\n\r\n### Issue\r\n\r\nWe observe that in spite of the `iw dev mon0 set bitrates ht-mcs-2.4 4 10` command, Tessel 2 always transmits at b or g rates.\r\n\r\nPossible diagnoses:\r\n\r\n1. Our OpenWRT distribution is old and this has been fixed in a more recent build. We can rebase the OpenWRT build to a newer one.\r\n2. There is an issue in the MT7620 driver that we must dig into and fix.\r\n3. ???\r\n\r\n### References\r\n\r\n* Tessel's OpenWRT distribution (rebased as of 2015-06-21): https://github.com/tessel/openwrt\r\n* `iw` documentation (slightly outdated): https://wireless.wiki.kernel.org/en/users/documentation/iw"},"comment":{"url":"https://api.github.com/repos/tessel/project/issues/comments/136084331","html_url":"https://github.com/tessel/project/issues/79#issuecomment-136084331","issue_url":"https://api.github.com/repos/tessel/project/issues/79","id":136084331,"user":{"login":"Frijol","id":454690,"avatar_url":"https://avatars.githubusercontent.com/u/454690?v=3","gravatar_id":"","url":"https://api.github.com/users/Frijol","html_url":"https://github.com/Frijol","followers_url":"https://api.github.com/users/Frijol/followers","following_url":"https://api.github.com/users/Frijol/following{/other_user}","gists_url":"https://api.github.com/users/Frijol/gists{/gist_id}","starred_url":"https://api.github.com/users/Frijol/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Frijol/subscriptions","organizations_url":"https://api.github.com/users/Frijol/orgs","repos_url":"https://api.github.com/users/Frijol/repos","events_url":"https://api.github.com/users/Frijol/events{/privacy}","received_events_url":"https://api.github.com/users/Frijol/received_events","type":"User","site_admin":false},"created_at":"2015-08-30T04:31:37Z","updated_at":"2015-08-30T04:31:37Z","body":"Thanks for the comment @pastcompute ! I think @tcr might have made some progress on this today"}}