The ConnectCore 8M Nano is manufactured with a United States of America regulatory domain in accordance with Federal Communications Commission (FCC) regulations. By default, 802.11d protocol and "Additional regulatory domains" support is disabled.

Host product manufacturers using the ConnectCore 8M Nano on their own designs, and customers using the ConnectCore 8M Nano Development Kit outside of the United States can either use the default US regulatory domain when allowed by their own country regulations, or set a different regulatory domain region.

Set regulatory domain

If you plan to use that module in a different region, you need to override the wireless binary to be loaded using kernel command line parameters. You can define it in U-Boot environment variable extra_bootargs:

=> setenv extra_bootargs wlan.regdmn=World
=> saveenv

The wlan.regdmn parameter can be:

  • US, for U.S.A (default)

  • World, for worldwide

When using the US regulatory domain in Japan, and according to current Japanese regulations, channels from 149 to 165, both inclusive, should not be used.

Configuration modes

Digi Embedded Yocto provides the Wi-Fi interface functionality to use different network types:

  • Client infrastructure mode: Digi Embedded Yocto reads the certification region and configures the wireless interface for the specified region. When in worldwide mode, the wireless interface is initially configured in a highly restrictive world regulatory domain. It then listens for access point beacons with country identification elements. Once a country is identified, the wireless interface queries the crda (central regulatory domain agent) daemon, which scans a regulatory domain database to return the country’s regulatory limitations.

  • Access point mode: Digi Embedded Yocto uses the hostapd user space daemon to manage access point mode. Configure the default Digi Embedded Yocto hostapd configuration file /etc/hostapd.conf as follows to work in worldwide regulatory mode. For instance, to configure for Spain (country code ES):

    # IEEE 802.11d - Country Code
    ieee80211d=1
    country_code=ES
    Change the country code to match your regulatory domain according to ISO/IEC 3166-1.

Indoor channels

The Linux kernel obtains the configured regulatory domain information from the database file regulatory.db, which is embedded in the file system. This database contains specific information about the Wi-Fi channels allowed by every possible regulatory domain.

Depending on the configured regulatory domain, you may find some frequency range marked as "NO-OUTDOOR". That implies the channels contained in that range are for indoor use only.

# iw reg get
global
country ES: DFS-ETSI
        (2400 - 2483 @ 40), (N/A, 20), (N/A)
        (5150 - 5250 @ 80), (N/A, 23), (N/A), NO-OUTDOOR, AUTO-BW
        (5250 - 5350 @ 80), (N/A, 20), (0 ms), NO-OUTDOOR, DFS, AUTO-BW
        (5470 - 5725 @ 160), (N/A, 26), (0 ms), DFS
        (5725 - 5875 @ 80), (N/A, 13), (N/A)
        (5945 - 6425 @ 160), (N/A, 23), (N/A), NO-OUTDOOR
        (57000 - 66000 @ 2160), (N/A, 40), (N/A)

By default, Digi Embedded Yocto assumes the device will be used outdoors and disables the ability to initiate radiation ("no IR") on indoor channels, which means:

  • Devices working in Client infrastructure mode perform passive scanning on indoor channels when looking for access points. They listen, but never transmit beacons on those channels, which increases the time it takes to detect a nearby access point. However, they are allowed to transmit after connecting to an access point on any of those channels.

  • Devices working in Access point mode cannot operate on indoor channels since they must initiate transmission, which is not allowed on those channels.

# iw list
Wiphy phy0
[...]
                Frequencies:
                        * 5180 MHz [36] (23.0 dBm) (no IR)
                        * 5200 MHz [40] (23.0 dBm) (no IR)
                        * 5220 MHz [44] (23.0 dBm) (no IR)
                        * 5240 MHz [48] (23.0 dBm) (no IR)
                        * 5260 MHz [52] (20.0 dBm) (no IR, radar detection)
                        * 5280 MHz [56] (20.0 dBm) (no IR, radar detection)
                        * 5300 MHz [60] (20.0 dBm) (no IR, radar detection)
                        * 5320 MHz [64] (20.0 dBm) (no IR, radar detection)
                        * 5500 MHz [100] (26.0 dBm) (radar detection)
                        * 5520 MHz [104] (26.0 dBm) (radar detection)
                        * 5540 MHz [108] (26.0 dBm) (radar detection)
                        * 5560 MHz [112] (26.0 dBm) (radar detection)
                        * 5580 MHz [116] (26.0 dBm) (radar detection)
                        * 5600 MHz [120] (26.0 dBm) (radar detection)
                        * 5620 MHz [124] (26.0 dBm) (radar detection)
                        * 5640 MHz [128] (26.0 dBm) (radar detection)
                        * 5660 MHz [132] (26.0 dBm) (radar detection)
                        * 5680 MHz [136] (26.0 dBm) (radar detection)
                        * 5700 MHz [140] (26.0 dBm) (radar detection)
                        * 5720 MHz [144] (13.0 dBm) (no IR, radar detection)
                        * 5745 MHz [149] (13.0 dBm)
                        * 5765 MHz [153] (13.0 dBm)
                        * 5785 MHz [157] (13.0 dBm)
                        * 5805 MHz [161] (13.0 dBm)
                        * 5825 MHz [165] (13.0 dBm)
                        * 5845 MHz [169] (13.0 dBm)
                        * 5865 MHz [173] (13.0 dBm) (no IR, radar detection)

If the device will be operating indoors, you can enable support for indoor channels by adding the following configuration to the wireless driver configuration file /lib/firmware/wlan/qcom_cfg.ini:

gindoor_channel_support=1

Then, indoor channels will be able to initiate transmissions just like outdoor channels:

# iw list
Wiphy phy0
[...]
                Frequencies:
                        * 5180 MHz [36] (23.0 dBm)
                        * 5200 MHz [40] (23.0 dBm)
                        * 5220 MHz [44] (23.0 dBm)
                        * 5240 MHz [48] (23.0 dBm)
                        * 5260 MHz [52] (20.0 dBm) (radar detection)
                        * 5280 MHz [56] (20.0 dBm) (radar detection)
                        * 5300 MHz [60] (20.0 dBm) (radar detection)
                        * 5320 MHz [64] (20.0 dBm) (radar detection)
                        * 5500 MHz [100] (26.0 dBm) (radar detection)
                        * 5520 MHz [104] (26.0 dBm) (radar detection)
                        * 5540 MHz [108] (26.0 dBm) (radar detection)
                        * 5560 MHz [112] (26.0 dBm) (radar detection)
                        * 5580 MHz [116] (26.0 dBm) (radar detection)
                        * 5600 MHz [120] (26.0 dBm) (radar detection)
                        * 5620 MHz [124] (26.0 dBm) (radar detection)
                        * 5640 MHz [128] (26.0 dBm) (radar detection)
                        * 5660 MHz [132] (26.0 dBm) (radar detection)
                        * 5680 MHz [136] (26.0 dBm) (radar detection)
                        * 5700 MHz [140] (26.0 dBm) (radar detection)
                        * 5720 MHz [144] (13.0 dBm) (no IR, radar detection)
                        * 5745 MHz [149] (13.0 dBm)
                        * 5765 MHz [153] (13.0 dBm)
                        * 5785 MHz [157] (13.0 dBm)
                        * 5805 MHz [161] (13.0 dBm)
                        * 5825 MHz [165] (13.0 dBm)
                        * 5845 MHz [169] (13.0 dBm)
                        * 5865 MHz [173] (13.0 dBm) (no IR, radar detection)