> For the complete documentation index, see [llms.txt](https://docs.morsemicro.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.morsemicro.com/application-notes/appnote-42-bcf-essentials_-a-guide-to-morse-micro-ic-configuration.md).

# APPNOTE-42 BCF Essentials\_ A Guide to Morse Micro IC Configuration

## 1 BCF Overview

### Introduction

A Board Configuration File (BCF) is a specialized configuration file used by the Morse Micro firmware (FW) to define and control hardware behavior and system parameters. Its role is to provide a layer of abstraction between the hardware and firmware, allowing system configuration to be customized without requiring firmware changes.

A BCF file contains detailed settings that define how the hardware components operate. These include control mappings for GPIO (General Purpose Input/Output) pins, transmit power levels across Modulation and Coding Schemes (MCS) rates, and state transitions of the RF Analog Front-End (AFE) or Front-End Module (FEM) during transmit (Tx) and receive (Rx) modes. By externalizing hardware configuration, BCFs enable customization for different hardware variants, regional compliance requirements, and performance optimization. This centralized approach simplifies development, deployment, and updates while maintaining compatibility and traceability, significantly reducing the complexity and cost of managing Wi-Fi HaLow systems.

### Key Functions of a BCF

A BCF is loaded by the Morse Micro firmware at runtime to  configure system parameters for optimal performance of the Morse Micro Wi-Fi HaLow chip. A correctly calibrated and configured BCF defines performance characteristics, ensures regulatory compliance, and influences system reliability. The following outlines the key functions covered by BCF configurations:

* Analog Front-end (AFE) Control - The BCF manages transitions between AFE states, such as transmit, receive, and sleep modes. GPIO mappings facilitate features like Low Noise Amplifier (LNA) bypass in receive mode, enabling precise signal handling and gain management
* Output Power Optimization -The BCF specifies MCS-specific power backoffs and frequency-dependent power offsets to regulate power amplifier behavior across modulation schemes and bandwidths, ensuring controlled output power and consistent signal integrity.
* Uniform Power Output Across Frequency - The BCF defines frequency-specific power offsets to flatten the transmit power curve over the target frequency range, ensuring consistent output levels.
* Compliance of Regulatory Standards - The BCF manages power levels to ensure the device operates within regulatory spectral emission limits, such as those required for FCC certification.
* Application-Specific Functions – The BCF configures GPIO behavior for application-layer functions, such as monitoring externally triggered wake-up events or indicating changes in link status.

A well-configured and calibrated BCF is essential for optimal performance, regulatory compliance, and reliable operation. Accurate validation and implementation enable Morse Micro systems to operate effectively while reducing risks and operational complexity.

### Impact of a Misconfigured BCF

The use of an incorrect or poorly configured BCF can lead to several negative outcomes, including:

* Reduced Output Power - Suboptimal power settings result in diminished signal strength.
* Limited Connection Range -  Improperly configured AFE receive states degrade the device's ability to detect and process incoming signals.
* Decreased Throughput - Inefficient MCS rate power configurations hinder data transmission performance.
* Regulatory Non-Compliance - Improper settings can cause out-of-band emission violations, leading to non-compliance with regulatory standards.
* Incorrectly Reported Power Metrics - Improper power level settings can cause the driver to report inaccurate transmit power values to the host software, resulting in misleading metrics.
* Incorrect Application-Specific GPIO Behavior – Misconfigured user-defined GPIO functions (e.g., wake signals or link status indicators) may not operate as intended.

### Where to Find the Correct BCF

The method for obtaining the correct BCF depends on the hardware being used. If you are using a third-party module from a Morse Micro module vendor, it is essential to use the BCF provided by the module manufacturer that corresponds to the supported firmware version.

For Morse Micro modules and selected third-party modules, the correct BCF is included in the firmware binaries release package for each firmware release. These packages are available through the [Morse Micro GitHub repository](https://www.google.com/url?q=https://github.com/MorseMicro/morse-firmware\&sa=D\&source=editors\&ust=1783469796637968\&usg=AOvVaw0cQzRDiIwavxEtw-BjAcSQ).

Note that the latest bundled software packages—such as the [Morse Micro OpenWRT](https://www.google.com/url?q=https://github.com/MorseMicro/openwrt\&sa=D\&source=editors\&ust=1783469796638198\&usg=AOvVaw3FagWBfd45ClAm4jj3wuPt) or [MM IoT Software Development Kit (SDK)](https://www.google.com/url?q=https://github.com/MorseMicro/mm-iot-sdk\&sa=D\&source=editors\&ust=1783469796638304\&usg=AOvVaw2sTX9Z1Eg3b02unE3SzFk6) release packages—include the updated BCF files matched to the associated firmware release.

### BCF Versioning and Firmware Dependencies

BCF files employ semantic versioning (major.minor.patch). Each firmware version is designed to support only specific BCF versions. Attempting to load a BCF with an unsupported version will cause the firmware to fail and display the error:

| FW manifest pointer not set. |
| ---------------------------- |

Refer to the BCF and Firmware Compatibility Table for a reference of compatibility dependencies.

### BCFs File Formats (.bin or .mbin )

In the Morse Micro ecosystem, BCFs  are available in two formats— “.bin” for Linux-based host devices and “.mbin” for embedded systems leveraging the Morse Micro IoT SDK. Both formats contain identical configuration data; the only difference is their internal encoding structure.

### BCF Editing Tools

BCF files are compiled binary files used by the Morse Micro IC and cannot be modified directly without first decoding their contents. To simplify this process, Morse Micro provides a BCF Editor Tool for Windows, Linux and macOS, released alongside each firmware version.

With the BCF Editor you can:

* Open & View BCF contents, including BCF version.
* Edit Parameters such as transmit power levels, regional regulatory limits, and AFE configurations.
* Recompile & Save a new BCF file.

The BCF Editor is compatible with both .bin and .mbin BCF file formats.

To obtain the BCF Editor, contact your local Morse Micro field application engineer, who can provide you with the appropriate installer and documentation.

***

## 2 BCF Usage and Tracking

### BCF Selection and Loading

BCF files must reside on the host file system. During initialization of the Morse Micro Integrated Circuit (IC), the driver loads the required BCF file from this location. In Morse Micro’s OpenWRT based-systems, the default directory is: /lib/firmware/morse/

During initialization, the driver selects which BCF file to load according to the following priority:

1. User-specified BCF: If a BCF file is explicitly provided via a driver mod parameter (modparam), it takes precedence.
2. OTP-derived BCF: If no user-specified file is provided, the driver attempts to load the BCF file corresponding to the programmed OTP board type.
3. Default BCF: If neither of the above selections succeed, the driver falls back to loading the file bcf\_default.bin. If this file is unavailable, driver initialization will be aborted.

If the OTP board type is set and the file does not exist, abort the driver load.

Refer to [MM APPNOTE-41 - OTP and BCF Selection](https://www.google.com/url?q=https://www.morsemicro.com/download/mm-appnote-41-otp-and-bcf-selection/\&sa=D\&source=editors\&ust=1783469796642363\&usg=AOvVaw2ksndksGaJ7K-LOcvLiOym) for additional details on the usage of the OTP board type field.

### BCF Tracking and Versioning

The latest BCF format includes a structured metadata description field in a JSON format. This metadata records key information such as the target module, certification status, modification state, and update timestamp. An example of how this metadata appears in the BCF Editor is shown in [Figure 1](#kix.kr5qd3t4vxdj).

![](/files/87a0eac17b3a2e6400bea708703f22b7df2efbfe)

**Figure 1.  BCF Metadata displayed in the BCF Editor**

In addition to the structured metadata, a custom description field is available for user-defined notes. This field can be used to capture details such as product type, product name, and development status. [Figure 2](#kix.2ozljetgx1n1) illustrates an example of a custom entry in the BCF Description field of the BCF Editor.

![](/files/9de168e7a53986dcd2181cf965b98218fd4cf7ee)

**Figure 2. - BCF Editor - Description field**

The BCF filename should clearly indicate the target module or product (e.g.. mf08651\_us.bin). Avoid naming BCF files with generic names like "bcf\_default.bin”. Generic names create confusion, undermine traceability, and complicate debugging.

## 3 BCF Parameters

The following sections break down BCF parameters into distinct groups, each focusing on a specific configuration area—such as transmit power for various modulation and encoding schemes, regional channel settings, and AFE configuration.

### Metadata

This section specifies the mandatory metadata fields required for each BCF file. These fields provide contextual information (e.g., human-readable description), version control, and include a Cyclic Redundancy Check (CRC) to ensure file integrity.

Among these fields, only BCF Description and Primary Region are user-configurable. BCF Version is fixed and cannot be modified by users.

| Parameter            | <p>User<br>Configurable</p> | Type                 | Details                                                                                                                                                                                                                                                           |
| -------------------- | --------------------------- | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| BCF Version          | No                          | major.minor.patch    | The BCF employs semantic versioning  to indicate compatibility with specific firmware versions. Refer to the [BCF and Firmware Compatibility Table](#h.wgvrjmd5hxjn) for a detailed list of compatible BCF and firmware versions.                                 |
| CRC                  | No                          | uint32               | This checksum is calculated over the BCF file contents to detect any unintended modifications. The CRC ensures that the file has not been tampered with or corrupted.                                                                                             |
| BCF Description      | Yes                         | string               | Free-form text (e.g. date code, module number, internal notes). Refer to [BCF Tracking and Versioning](#h.4gmeyy5ehael) for details on how this field can be utilized.                                                                                            |
| Primary Region       | Yes                         | ISO region code      | <p>Regulatory profile applied when no OS/driver is active.<br>For example, when the Morse Micro chip is controlled directly from a PC using a test board such as the Morse Micro MMDEBUG board. Typically, this field is not used and can be left as default.</p> |
| Certification Status | No                          | JSON structured text | Tracks the certification and regulatory compliance status of the BCF, along with the target module for which the BCF is intended. Possible status values include: not-certified, certified, and compliant.                                                        |

### Transmit Power Configuration

This section defines the key parameters for controlling RF output, setting Error Vector Magnitude (EVM) compliant targets per MCS rate, and tuning overall link performance.

| Parameter                      | Units | Details                                                                                                                                                                                                                                                                                                                                                                                             |
| ------------------------------ | ----- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Reference Transmit Power       | dBm   | <p>The Reference Transmit Power is a measure of the radio’s output power level when no additional scaling (boost or backoff) is applied.<br>It provides the firmware with a known starting power level for all further power control calculations.<br>Refer to <a href="#h.lz43dk276fev">How to find the reference power BCF parameter</a>.</p>                                                     |
| Max Power                      | dBm   | <p>The Max Power parameter represents the absolute ceiling for RF output power. It is chosen to ensure compliance with IEEE spectral mask limits and serves as the upper limit for all subsequent power settings.<br>Note, this value defines the maximum average power, rather than the maximum peak power.<br>Refer to <a href="#h.bf6mmvec3q7d">How to find the Max Power BCF parameter</a>.</p> |
| MCS Rate Power Levels          | dBm   | The MCS Rate Power Levels define the transmit power thresholds for each MCS index. Output power is reduced at higher MCS rates to meet IEEE EVM compliance requirements.                                                                                                                                                                                                                            |
| Per-Bandwidth MCS Control \*\* | -     | The Per-Bandwidth MCS Control allows independent MCS configurations for 1, 2, 4, and 8 MHz channel bandwidths.                                                                                                                                                                                                                                                                                      |
| Transmission Mode Control \*\* | -     | The Transmission Mode Control selects the transmission mode and applies per-MCS power limits accordingly to ensure EVM-compliant output power levels.                                                                                                                                                                                                                                               |

&#x20;\*\* Supported by the MM810x only

Please see Appendix Additional information on Transmit power for more information.

### Additional Control Functions

Additional Control Functions extend beyond RF and regional configurations, enabling host-interface operations, antenna gain compensation, and advanced PHY overrides for specialized use cases.

| Parameter                                                       | Units            | Details                                                                                                                                                                                                                                                                                                        |
| --------------------------------------------------------------- | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <p>GPIO for action frame<br></p>                                | #                | Select GPIO pin to wake host MCU when a Morse Micro action frame is triggered.                                                                                                                                                                                                                                 |
| Duration of action frame                                        | ms               | Specify duration of GPIO state change for action frame.                                                                                                                                                                                                                                                        |
| Action frame pin toggle state                                   | -                | Set action frame pin state as active-low or active-high.                                                                                                                                                                                                                                                       |
| Busy pin toggle state                                           | -                | Set busy pin state as active-low or active-high.                                                                                                                                                                                                                                                               |
| GPIO for connection status                                      | #                | Select GPIO pin to toggle when the 802.11ah link state changes (connect/disconnect). Useful for external monitoring.                                                                                                                                                                                           |
| Duration of connection status                                   | ms               | Specify duration of GPIO state change for connection status.                                                                                                                                                                                                                                                   |
| Connection status toggle state                                  | -                | Set connection status pin state as active-low or active-high.                                                                                                                                                                                                                                                  |
| <p>GPIO pin triggered by external input<br>(low power wake)</p> | #                | Select the GPIO pin that triggers a wake-up when its input state changes. Reduces unnecessary MCU wake-ups by offloading simple sensing to Morse Micro IC.                                                                                                                                                     |
| External input GPIO pin state                                   | -                | Set low power wake pin state as active active-low or active-high.                                                                                                                                                                                                                                              |
| CCA temperature variation offset                                | dB               | Specify the Clear Channel Assessment (CCA) level threshold adjustment to compensate for noise changes caused by temperature.                                                                                                                                                                                   |
| CCA detect override                                             | Enabled/Disabled | When enabled, CCA uses energy detection if in-channel jamming prevents preamble detection; when disabled, CCA relies on preamble detection first.                                                                                                                                                              |
| Crystal load capacitor trim (xon)\*\*                           | -                | Sets the internal load-capacitance trim code on the XON pin for the 32 MHz crystal. Use to minimise carrier frequency error without changing external load capacitors. Refer to [MM810x 32MHz External Crystal Capacitor Trimming](#h.roaww3yma16g) for additional details on how to configure this parameter. |
| Crystal load capacitor trim (xop)\*\*                           | -                | Sets the internal load-capacitance trim code on the XOP pin for the 32 MHz crystal. Use to minimise carrier frequency error without changing external load capacitors. Refer to [MM810x 32MHz External Crystal Capacitor Trimming](#h.roaww3yma16g) for additional details on how to configure this parameter. |

\*\* Supported by the MM810x only

***

### Regional Control Functions

Set RF channels, bandwidths, power limits, and thresholds to comply with regional regulations.

| Parameter                            | Units              | Details                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| ------------------------------------ | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Region Select                        | ISO code           | Select the active region regulatory profile. Ensures RF operation is limited to channels authorized in the specified region. Example selection: US, JP, EU, etc.                                                                                                                                                                                                                                                                                                               |
| Bandwidth Selection                  | MHz                | Select the channel bandwidth (1, 2, 4, or 8 MHz).                                                                                                                                                                                                                                                                                                                                                                                                                              |
| Channel Max Power                    | dBm                | <p>Set the maximum Effective Isotropic Radiated Power (EIRP) allowed per channel.<br>Note: This value is limited by the Max Power parameter in <a href="#h.edu6kondr1z">Transmit Power Configuration</a> .</p>                                                                                                                                                                                                                                                                 |
| Disable Channel                      | Enabled/Disabled   | Disable a channel. Prevents transmission or reception on that channel.                                                                                                                                                                                                                                                                                                                                                                                                         |
| CCA Threshold                        | dBm                | Override default CCA threshold value for a channel.                                                                                                                                                                                                                                                                                                                                                                                                                            |
| Antenna Selection                    | <ul><li></li></ul> | <p>Select antenna used for transmit (Tx) and receive (Rx) per regional channel.<br>Useful for multi-region products where two distinct antennas, each tuned to different frequency bands, are used. e.g. US (902-926 MHz) and EU (863-868 MHz).<br>Note: Available antennas are determined by the <a href="#kix.5l0amhzjqxf">Antenna selection</a> configured in AFE control.</p>                                                                                              |
| Antenna Gain n                       | dBi                | Specify the gain of the connected antenna. Antenna number (n) corresponds to [Antenna selection](https://www.google.com/url?q=https://docs.google.com/document/d/1I24WbQhiVrYyU-bxJ9mlOUN5RH5j6lrtgxwSomDfbvk/edit?pli%3D1%26tab%3Dt.0%23bookmark%3Did.u3n2gq5x7xqr\&sa=D\&source=editors\&ust=1783469796666527\&usg=AOvVaw2_hQyJ51iOYNbxeT_QgKFL) configured in AFE control. If this value is positive, it is included when calculating EIRP to ensure regulatory compliance. |
| IQ Gain offsets \*\*                 | <p>dB<br></p>      | Specify the gain correction offset applied during transmit (Tx) IQ calibration to compensate for amplitude mismatches between the I and Q signal paths. This can be used to improve modulation accuracy in certain circumstances.                                                                                                                                                                                                                                              |
| IQ Phase offsets \*\*                | Degree             | Specify the phase correction offset applied during transmit (Tx) IQ calibration to correct phase imbalance between the I and Q signal paths, reducing constellation distortion.                                                                                                                                                                                                                                                                                                |
| Boot-up Frequency and Bandwidth \*\* | MHz                | Specify the default RF channel configuration used by the PHY layer at boot-up, including center frequency and channel bandwidth. Defines the initial operating frequency before dynamic channel selection or scanning begins.                                                                                                                                                                                                                                                  |

\*\* Supported by the MM810x only

For details on how regional profiles are selected and loaded by the driver, refer to the FAQ entry How does the BCF handle multiple regional profiles? .

### Analog Front End (AFE) Control

Configure GPIO control of front-end modules and RF switches, including state masks for sleep, transmit, and receive modes. Also defines the number of receive gain stages and antenna switching logic. Proper configuration ensures correct power sequencing, optimal RF performance, and maximum receive sensitivity.

| Parameter                                    | Units              | Details                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| -------------------------------------------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| AFEControl GPIO Pins                         | bitmask            | Select the GPIO lines (using a bitmask) that will be used to control the AFE, including the FEM and any associated front-end components such as RF switches.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| Sleep Mode                                   | bitmask            | Specify the GPIO bitmask that, when asserted, places the AFE into its low-power (sleep) state.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| PA On - Transmit Mode                        | bitmask            | Specify the GPIO bitmask to enable the FEM’s power amplifier for transmission.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| PA Off - Transmit Mode                       | bitmask            | Specify the GPIO bitmask to disable the FEM’s power amplifier, bypassing PA in transmit mode.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| Receiver Gain Stages                         | #                  | Select the number of receive gain stages (1–4) supported by the FEM.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| Stage n Receive Mode                         | bitmask            | Specify the GPIO bitmask to select the FEM’s receive stage.  Note: four (n) receiver gain stage options are available.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| Stage n Receive Mode Value                   | dB                 | Enter the expected dB gain for the receive stage.  Note: four (n) receiver gain stage options are available.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| Antenna Selection GPIO Pins                  | bitmask            | <p>Select the GPIO pins (via bitmask) used to control antenna selection when multiple antennas are available.<br>Note: the selected GPIO pins will be made available for Antenna n Select</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| Antenna n Selection                          | bitmask            | Specify the GPIO combination to select the antenna. Note: four (n) antenna options available                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| Transmit Gain of Antenna n                   | dBi                | <p>Specify the transmit gain for the chosen antenna.<br>The transmit antenna gain parameter stores the dBi value of the connected antenna, used in link budget and output power calculations. It is set only for products with a known and fixed antenna gain; otherwise, a default value of 0 dBi is used.<br>If used, refer to <a href="#h.cely8sryh7r">Antenna Gain</a> for details on implementation<br> Note: four (n) antenna options available</p>                                                                                                                                                                                                                                                                     |
| Antenna Diversity                            | <ul><li></li></ul> | Enables antenna diversity if supported. Control can be automatic (firmware-managed) or determined by regional channel selection as configured by [Antenna Selection](#kix.jhwywk35rp4c) in Regional Control                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| TDC(Time-to-Digital  Converter) Power Gating | Enabled/Disabled   | <p>Select TDC enabled or disabled. TDC power gating maintains continuous power to the TDC for optimal measurement stability and fast response.<br>Note: Disable this setting to allow power-down between conversions, reducing energy consumption.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| Extended Gain Table                          | Enabled/Disabled   | <p>Enables an alternative receiver gain configuration intended for specific hardware variants and use cases where additional attenuation is required when handling high-power received signals. This option modifies the internal gain behavior to improve isolation in low-gain operating conditions, helping prevent receiver saturation in challenging RF environments.<br>This feature is not intended for general use and may only be applicable to certain designs or platforms. Enabling it increases configuration complexity and should be done selectively, based on the characteristics of the RF front end and expected signal levels. Guidance on when this feature is required will be provided separately.</p> |
| AGC Selection GPIO Pins\*\*                  | bitmask            | <p>Selects the GPIO lines (via bitmask) controlled by the hardware Automatic Gain Control (AGC). A maximum of three GPIOs can be assigned.<br>In RF systems, the AGC monitors the amplitude of incoming signals and dynamically adjusts gain to maintain a stable output level. When integrated with the AFE RF switch, the AGC can also select different signal paths or gain settings based on the strength of the incoming signal.<br>Hardware-controlled AGC pins allow for faster state transitions, as they are managed directly by the AGC rather than requiring firmware intervention.</p>                                                                                                                            |
| AGC overrides RF switch\*\*                  | Enabled/Disabled   | <p>Enables or disables AGC override.<br>When enabled, the MM IC’s hardware AGC directly controls the AFE GPIO pins, allowing faster and more dynamic gain adjustments.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |

\*\* Supported by the MM810x only

For additional guidance on controlling a AFE via the BCF refer to :  Example AFE Configuration via BCF

### AFE Linearity Correction

The AFE Linearity Correction section in the BCF allows for compensation of non-linear gain variations across channels. It applies per-channel offset adjustments in 0.25 dBm steps to correct output power mismatches, ensuring consistent transmit power and optimal RF performance.

| Parameter                         | Units | Details                                                                                                                                                                                    |
| --------------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Channel Transmit Power Adjustment | dBm   | <p>Adjust the per channel transmit power.<br>This feature allows a user to compensate for AFE non-linearity to achieve a uniform transmit power profile for consistent RF performance.</p> |

For additional information on how to achieve a uniform AFE output power across channels refer to : Example AFE Linearity Correction

***

## 4 Example AFE Configuration

This section demonstrates how to configure analog front-end (AFE) parameters in the BCF file to ensure proper AFE operation and optimal RF performance, using the MM6108-MF08651 reference module as the example.

⚠️Note: The following example is specific to the MM6108-MF08651 reference module. While the principles may be applicable to other AFE configurations, careful attention must be paid to their specific details.

The MM6108-MF08651 reference module integrates the SKY66423-11 front-end module (FEM) along with two RF switches to manage transmit and receive signal paths. The block diagram below illustrates the AFE architecture.

![](/files/0a8e3533c5e5ecf437c028444de9354ea00439b2)

Figure 3. - Simplified Block diagram showing MM6108 IC and the RF connections to the Skyworks SKY66423 FEM

The SKY66423-11 FEM integrates a power amplifier (PA), low-noise amplifier (LNA), and internal bypass switches to support multiple operating modes. Three control pins—CPS, CTX, and CSD—are used to select the appropriate mode of operation. The FEM block diagram is shown below in [Figure 4](#kix.si33bzcytb9t).

![](/files/24a60a009a25516d8081dab7514b751bb268f93b)

Figure 4. - Block Diagram from Skyworks component datasheet:\
<https://www.skyworksinc.com/en/Products/Front-end-Modules/SKY66423-11>

The MM6108 chipset controls the SKY66423-11 FEM using GPIO14 (CTX) and GPIO15 (CSD); the CPS pin is pulled high, disabling transmit-bypass mode. Four additional GPIO lines control two Richwave RTC6608OU SPDT RF switches - see [Figure 5](#kix.dw26fm7ztsn5). Each switch uses a pair of control signals to route the MM6108’s RF input either directly from the FEM through the band-pass filter or through the filter and LNA.

![](/files/66b51778ff0ade252aad0a4d53da06be36c6614b)

Figure 5. MM6108 GPIOs assigned for FEM and Front-end switch control

The control logic truth table for the RTC6608OU RF switch is shown below. Note that the logic is inverted—when VC1 is pulled high, the RFC-to-RF2 path is enabled. This control logic will be applied in the following section when configuring AFE settings within the BCF.

| Enabled Path        | VC1 | VC2 |
| ------------------- | --- | --- |
| RFC to RF1 (Port 1) | 0   | 1   |
| RFC to RF2 (Port 2) | 1   | 0   |

Truth Table of RTC6608OU Switch control pins. Source RTC6608OU datasheet

FEM control is configured using the AFE tab in the BCF Editor tool. The following section outlines how to set each AFE-related BCF parameter, using the configuration details described above as a reference. Note that in the BCF Editor, an unticked checkbox corresponds to logic low (0), while a ticked checkbox represents logic high (1).

![](/files/072f7acbce7bf78b7408f463216c7e728488c6b1)

Figure 6. Screenshot from BCF Editor showing GPIO pin assignments

The following numbered bullet points correspond to the labels shown in the BCF Editor screenshot above in [Figure 6](#kix.9c2wz949yoxc).

1. All GPIO pins used to control the FEM and RF switches are selected using the [AFE Control GPIO Pins](#kix.9x9ze3wm6j5k) parameter. This defines which GPIO lines are used by the firmware to drive state transitions for the FEM and associated switches. In the MM6108-MF08651 BCF configuration shown in [Figure 6](#kix.9c2wz949yoxc), GPIO15 through GPIO10 are assigned.
2. The FEM control states must be defined in the BCF Editor tool. In our example, the Skyworks SKY66423 FEM is used, and its associated control logic is shown in [Figure 7](#kix.g2rg6fraxc6x).

![](/files/296643b2952316c3399fef922509e7a9e0516d7d)

Figure 7. Control Logic table  from Skyworks component datasheet:\
<https://www.skyworksinc.com/en/Products/Front-end-Modules/SKY66423-11>

In order to define these control states in the BCF, the control logic (CSD, CTX) must be ticked or unticketed according to the logic in [Figure 7](#kix.g2rg6fraxc6x). SKY66423-11 FEM control and BCF Edit tool parameters are mapped as per:

| SKY66423-11 Mode | BCF Editor Mode        |
| ---------------- | ---------------------- |
| Shutdown         | Sleep mode             |
| Transmit         | PA On - Transmit Mode  |
| Receive LNA mode | PA Off - Transmit Mode |
| Transmit Bypass  | N/A                    |

This mapping is translated into BCF Editor as per [Figure 8](#kix.qrqlzbpna1om).

![](/files/4a23c2101ce0f2fb1744b96b8d74c693765382e5)

Figure 8. Control Logic for FEM control states implemented in BCF Editor

3. The number of receiver gain stages must be configured in the BCF Editor. Each stage corresponds to a distinct gain or attenuation level, which the firmware selects dynamically based on the received signal’s power level and signal-to-noise ratio (SNR). This allows the receiver to optimize performance across a wide range of input conditions.

In this example, three stages are implemented:

* High Gain = LNA enabled
* Medium Gain = LNA bypassed
* Low Gain = Isolated path through RF switch to reduce signal level

Note: Some designs may also include a fourth gain stage, Very Low Gain, for enhanced attenuation where required.

4. High gain receive mode is implemented by placing the FEM into Receive LNA Mode using the CSD and CTX control lines. Refer to [Figure 7](#kix.g2rg6fraxc6x), for the control logic required to set the FEM in Receive LNA Mode.

The two front-end switches are configured to route the FEM filtered signal (RX\_FLT) to the FEM’s LNA input pin (LNA\_IN) . The conditioned signal is then routed through the second switch to the MM6108’s receive input pin (RFIN).

The expected receiver gain in this configuration is 18 dB, as specified in the Skyworks datasheet (Receive Gain parameter).[\[2\]](#kix.u7snw1oc5151)

![](/files/afa0134db32eb2e973e91c48db4db8150e6bbad4)

Figure 9. Control Logic for high gain receive mode  implemented in BCF Editor

5. Medium gain receive mode is implemented by configuring the FEM in Receive LNA Mode, as in the high gain case, but adjusting the front-end switches to bypass the LNA entirely.

In this configuration, the two RF switches route the filtered receive signal (RX\_FLT) directly to the MM6108’s receive pin, avoiding any amplification. This preserves signal integrity when receiving moderate-strength signals.

The expected gain in this mode is –1 dB, reflecting the insertion loss through the two RTC6608OU switches.[\[2\]](#kix.u7snw1oc5151)

![](/files/9f0daf4f79c3e1fb303838227e799348fa3d5867)

Figure 10. - Control Logic for medium  gain receive mode  implemented in BCF Editor

6. Low gain receive mode is implemented by configuring the FEM in Receive LNA Mode, as in the high and medium gain cases, but adjusting the front-end switches such that the second switch selects the RF2 input while the incoming signal is routed to RF1.

Due to the internal isolation between RF switch ports, only a small portion of the signal couples from RF1 to RF2. As a result, a highly attenuated version of the input signal reaches the MM6108’s RFIN pin.

The expected gain in this mode is –30 dB, based on the RF1-to-RF2 isolation specified in the RTC6608OU datasheet..[\[2\]](#kix.u7snw1oc5151)

![](/files/f76af11210a880c060b403c55e0c7d0a8db811a3)

Figure 11. - Control Logic for low  gain receive mode  implemented in BCF Editor

\[1] The use of shutdown mode as a substitute for sleep mode is only valid if the device’s boot-up response time meets the required timing specification for state transitions (i.e. <300 nanoseconds). This parameter should be measured directly, as datasheets often specify timing based on 10–90% transition intervals, which may not reflect true readiness.

\[2] As a best practice, these values should be verified through measurement using a Vector Network Analyzer (VNA).

Once all BCF parameters are configured, the BCF file can be saved and loaded onto the device. The functionality of the Morse Micro IC should then be validated to ensure correct operation. If necessary, RF test data can be reviewed and the BCF updated accordingly.

***

## 5 Example AFE Linearity Correction

The AFE Linearity Correction section of the BCF allows the user to compensate for the AFE’s non-linear output characteristics across operational channels. It can be used to achieve a uniform transmit power (“flat”) profile for consistent RF performance.

An example illustrates the process of transforming a non-uniform power profile into a uniform one across the 902–928 MHz operational channels, using measurements from eight devices to capture device-to-device variation.

Step 1: Capture the AFE Output Power Profile

First, perform a transmit power sweep across the entire frequency range of interest (all channels). Run the sweep on multiple devices (minimum of 3 recommended) to capture device-to-device variation.

For consistent results, it is recommended to:

* Use MCS0 for the sweep
* Repeat the sweep for each supported channel bandwidth

For our example,[Figure 12](#kix.t3p3tvhr10t2) shows output power versus frequency for 1 MHz bandwidth channels across eight tested devices.

![](/files/4cf0e2246d2999fdd5c1721ac537e885b971ae83)

Figure 12. - Output Power vs Frequency Sweep for Eight Devices

Step 2: Determine the Median Target Power

For each channel, calculate the median output power across all devices to generate a single power profile (see gray line in [Figure 13](#kix.8cd97y7mwdr4))

Then, compute the median of this profile to define the uniform (“flat”) power target. (see green line in [Figure 13](#kix.8cd97y7mwdr4)).

![](/files/aa4c3d02891d529267eb91522843f849bb199e66)

Figure 13. Median and Target Transmit Power Across Frequency

For our example, a power target of 17.8dBm is calculated (see green line of [Figure 13](#kix.8cd97y7mwdr4))

Step 3: Calculate and Apply Corrections

To achieve a uniform power profile:

1. Subtract the power target value from the actual median power at each frequency to obtain a per-frequency correction.\
   Note: The resulting offset indicates how much the output power for each frequency must be increased or decreased to achieve power target
2. In the AFE Linearity Correction tab of the BCF Editor, apply the calculated per-frequency correction.\
   Note: The correction resolution is limited to 0.25 dB steps.

![](/files/2954e72bce2a12b15800099086a0795aa5daa318)

Figure 14. BCF Editor screenshot showing applied output flattening

As illustrated in [Figure 14](#kix.ukv82pmli6i), the new maximum power curve appears as an inverted version of the original grey dotted line from [Figure 13](#kix.8cd97y7mwdr4). This inverse profile is expected, as higher-than-average power regions (e.g., at lower frequencies) must be reduced, while lower-than-average regions (e.g., at higher frequencies) must be increased.

For instance, at 926.5 MHz, the unadjusted output power is approximately 0.75 dB below the target. Therefore, a +0.75 dB adjustment is applied at this point, as shown in the BCF Editor screenshot in [Figure 14](#kix.ukv82pmli6i).

Step 4: Check Resulting AFE Output Power Profile

With the AFE Linearity Corrections applied, save the new BCF and load into the device. Re-perform Step 1 and validate results.

For our example, [Figure 15](#kix.1dswpifcu0zj) shows the AFE output power profile before (left) and after (right) applying corrections. The application of AFE Linearity Corrections results in a uniform (“flat”) output power response across all frequencies of interest.

![](/files/4cf0e2246d2999fdd5c1721ac537e885b971ae83)

Figure 15. Before and After Uniform Power Adjustment

***

## 6 FAQ

### Why is my BCF not compatible with my upgraded FW?

Firmware releases are tied to specific BCF versions, and the firmware expects every parameter to match its predefined format. Loading a BCF version that doesn’t align with the firmware’s expectations can cause parameters to be misinterpreted, leading to unpredictable performance or unintended behavior. The FW will return an error if an incompatible BCF is loaded. See Wi-Fi HaLow interface won’t initialize - FW manifest pointer not set.

### What happens if I use the incorrect BCF?

For a detailed examination of how an improperly configured BCF can affect device performance and regulatory compliance, refer to the Impact of a Misconfigured BCF section.

### Wi-Fi HaLow interface won’t initialize - FW manifest pointer not set

The FW manifest pointer not set error indicates that the firmware could not load the BCF file because it is incompatible with the current firmware version.

| <p>\[] morse\_sdio mmc1:0001:2: Loaded firmware from morse/mm6108.bin,size 444304, crc32 0x1c6a0f92<br>\[] morse\_sdio mmc1:0001:2: Loaded BCF from morse/bcf\_mf08651\_us.bin, size 751, crc32 0x7d95a855<br>\[] morse\_sdio mmc1:0001:2: FW manifest pointer not set<br>\[] morse\_sdio mmc1:0001:2: morse\_firmware\_init failed: -5</p> |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

To diagnose the cause, retrieve the BCF from the affected device and open it using the BCF Editor Tool. The tool allows the BCF version to be checked. Use the BCF and Firmware Compatibility Table to verify which BCF versions are supported by the firmware version in use. Ensure that the correct BCF version is loaded.

Note: This error may also occur if the BCF file is incorrect or corrupted.

### Wi-Fi HaLow interface won’t initialize - error -2

Error -2 indicates that the firmware couldn’t locate the BCF file. Common causes include:

* An incorrect BCF filename.
* The firmware referencing the wrong filename.
* A broken symbolic link pointing to a nonexistent file.

| <p>\[] morse\_sdio mmc1:0001:2: Loaded firmware from morse/mm6108.bin, size 444304, crc32 0x1c6a0f92<br>\[] morse\_sdio mmc1:0001:2: Direct firmware load for morse/bcf\_mf08651\_us.bin failed with error -2<br>\[] morse\_sdio mmc1:0001:2: Falling back to sysfs fallback for: morse/bcf\_mf08651\_us.bin<br>\[] morse\_sdio mmc1:0001:2: morse\_firmware\_init failed: -12</p> |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

To resolve this issue, verify that the BCF filename and path are correct. If symbolic links are used, ensure they point to a valid file. Once corrected, restart the system to confirm the error is resolved.

### Wi-Fi HaLow interface won’t initialize - Country code not found in BCF

The Country code not found in BCF error indicates that the device's configured operating country is not supported by the selected BCF.

| <p>\[] morse\_sdio mmc1:0001:2: Loaded firmware from morse/mm8108b2-rl.bin, size 428112, crc32 0x6d44dc54<br>\[] morse\_sdio mmc1:0001:2: Loaded BCF from morse/bcf\_mf15457\_no\_au.bin, size 1983, crc32 0xee6303eb<br>\[] morse\_sdio mmc1:0001:2: Country code AU not found in BCF<br>\[] morse\_sdio mmc1:0001:2: morse\_firmware\_init failed: -1<br>\[] morse\_sdio\_probe failed. The driver has not been loaded!</p> |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

To confirm the cause, retrieve the BCF from the device and open it using the BCF Editor Tool. The available country profiles in BCF can be viewed within the Regional Parameters tab.

### Wi-Fi HaLow interface initializes but device has no transmit power

If loading the BCF and initialization of the Wi-Fi HaLow interface is successful, but the device still can’t associate—or transmit power is low—check for these common failure modes:

Hardware fault

* Use the same FW+BCF pair on another unit.
* Inspect the device schematic and board layout for incorrect connections.

Incorrect AFE settings in the BCF

* Retrieve the BCF from the device and open it in the BCF Editor Tool.
* Confirm that each AFE configuration parameters match the AFE component datasheet.

Use the Example AFE Configuration example to ensure the correct state tables are selected.

### How can I upgrade my BCF to be compatible with the latest FW version?

Direct upgrades between major BCF versions are currently not supported. Each major-version increase to the BCF can introduce significant file-format changes and new control features. To understand exactly what’s changed, please contact a local Morse Micro field applications engineer.

* For Morse Micro modules - The revised BCF file is included in the firmware binaries release package for each new firmware version.
* For third-party vendor modules - Ask the third-party vendor to supply the correct BCF file that corresponds to the firmware version being deployed.

### How does the BCF handle multiple regional profiles?

A single BCF can include configuration profiles for multiple regulatory regions. At runtime, the Morse Micro driver selects and loads the region that matches the host system’s country code. Only the selected region is copied into device memory, even though all region profiles are stored in the BCF file.

This approach ensures that device memory usage remains constant regardless of how many regions the BCF supports.

### How to verify that the system has correctly loaded the BCF parameters?

After loading the BCF file and bringing the Morse Micro Wi-Fi HaLow interface online, the morsectrl tx\_pwr\_adj command can be invoked to display the configured Reference Power ( Base Power), the Max Power, and each MCS rate’s power level (for more information on morsectrl, see the Glossary).  These values correspond to the active RF channel and must comply with regional regulatory limits, so the reported power levels will vary depending on the selected channel and applicable regional constraints.

| <p>root\@ekh01-de5e:\~# morsectrl tx\_pwr\_adj<br>TX power state information<br>        Base power: 17.750 dBm<br>        Max power: 20.750 dBm<br>        Current power: 20.750 dBm<br>        Regulatory limit: 20.750 dBm<br>        Subband power adjustment: -0.125 dB<br>        Temperature power adjustment: 0.125 dB<br>        Arbitrary txscaler: 0.000 dB<br>        Tx power drift: 0.000 dB<br>        TX antenna gain: 0 dBi<br>        TX power adjustment mask: 63<br>        Enable MCS based adjustment: 1<br>        Enable sub-band based adjustment: 1<br>        Enable temperature based adjustment: 1<br>        Enable per channel power limit: 1<br>        Enable power drift correction: 1<br>        Enable power adjustment across frequency: 1<br>        MCS0: 20.750 dBm<br>        MCS1: 20.500 dBm<br>        MCS2: 20.000 dBm<br>        MCS3: 20.000 dBm<br>        MCS4: 19.000 dBm<br>        MCS5: 17.750 dBm<br>        MCS6: 17.000 dBm<br>        MCS7: 16.500 dBm<br>        MCS8: 17.000 dBm<br>        MCS9: 17.000 dBm</p> |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

***

## 7 Appendices

### BCF and Firmware Compatibility Table

The below table captures the compatible BCF version for each Morse Micro firmware release.

| Morse Micro Firmware Versions | <p>Compatible BCF Version<br> (Major. Minor. Patch )</p> |
| ----------------------------- | -------------------------------------------------------- |
| 1.7.4 to 1.9.3                | 4.2.0                                                    |
| 1.9.4 to 1.10.2               | 4.3.0                                                    |
| 1.11.0                        | 4.5.0                                                    |
| 1.11.1 to 1.11.3              | 5.0.0                                                    |
| 1.12.0 to 1.12.1              | 6.2.0                                                    |
| 1.12.2 to 1.12.5              | 6.3.0                                                    |
| 1.13.0                        | 6.7.0                                                    |
| 1.14.1                        | 8.0.0                                                    |
| 1.15.3                        | 12.1.0\*\*                                               |
| 1.16.3                        | 12.1.0\*\*                                               |
| 1.17.4                        | 12.1.0\*\*                                               |

\*\* Starting from firmware version 1.15.0, backward compatibility is supported for BCF versions v8.0.0 (MM6108) and v12.0.0 (MM810x). However, using older BCF versions is not recommended, as they do not support newly introduced features. For optimal performance and full feature support, it is advised to use the latest BCF version that is fully compatible with the target firmware.

### Additional Information on Transmit Power

The dynamic range available for power control is essentially the difference between Max Power and Reference Power. All per-frame power adjustments (MCS-dependent, sub-band, temperature, and arbitrary user-specified scaling) are calculated as offsets from the reference power, but capped such that the sum does not exceed the max power.

Why These Values Matter:

* Regulatory Compliance - Ensures the transmitter never exceeds spectrum emission mask limits, avoiding out-of-band emissions that could violate regional regulations.
* Signal Quality (EVM) - Provides a baseline that meets EVM specifications for each modulation and coding scheme; boosts or backoffs maintain optimal signal fidelity.
* PA Linearity & Saturation - Prevents driving the PA into compression (distortion) at high power, and avoids operation in inefficient regions at low power where quantization noise dominates.
* Temperature Compensation - Enables the system to adjust output power dynamically to counteract variations caused by temperature changes.

### How to find the Max Power BCF parameter

The Max Power parameter in the BCF defines the highest transmit power across all channels. This value should be set at an appropriate level where the  device remains compliant with the spectral mask  (e.g. out-of-band emissions) requirements specified by the IEEE for Wi-Fi HaLow. Note that this parameter specifies the maximum average power level, not the maximum peak power level.

For example, in the case of 1 MHz BW MCS0, the IEEE spectral mask requirement (red line) is overlaid on the measured power spectral density (PSD) across frequency. The Max Power value is selected to ensure the PSD remains below the spectral mask limit line.

&#x20;

![](/files/7f02df3fdfc0741bc4d516f2f3ffab4fa2be7983)

Figure 16. Power Spectral Density vs Frequency - 1 MHz BW MCS 0 (902.5 MHz)

To determine the appropriate Max Power parameter, PSD measurements must be performed across all supported channels and bandwidths. Starting from a low Max Power setting, the value is gradually increased until the PSD reaches—but does not exceed—the spectral mask limit. As transmit power increases, out-of-band emissions also rise; beyond a certain point, these emissions exceed IEEE limits and lead to non-compliance.

For example, in the case of 8 MHz BW MCS0, the following two figures illustrate Max Power settings where the spectral mask limit is met in one case and exceeded in the other.

![](/files/b72491577b04992c5036b2b449f6da821bdf35d8)

Figure 17. Spectral Mask Limit Met - Power Spectral Density vs Frequency - 8 MHz BW MCS 0 (924 MHz)

![](/files/a54a66663a23124a7098d52efce4a210486a2457)

Figure 18. Spectral Mask Limit Exceeded - Power Spectral Density vs Frequency - 8 MHz BW MCS 0 (924 MHz)

This measurement and analysis must be conducted for every regional channel and bandwidth. The user must identify the highest transmit power level that maintains compliance under all operating conditions. A properly selected Max Power parameter ensures continuous adherence to IEEE regulatory limits, preserving both device performance and certification.

Note: A module vendor may apply a stricter threshold to allow for worst-case device-to-device variation. When selecting the transmit power level, ensure that measured emissions remain below the IEEE limit or any more conservative vendor-defined limit.

### How to find the Reference Transmit Power BCF parameter

The Reference Transmit Power parameter in the BCF defines the average system transmit power without any applied gain or back-off. All subsequent power scaling calculations, including regulatory back-off, rate-based power control, or temperature-based adjustments, are performed relative to this reference value.

Reference Transmit Power is determined by setting the Reference Transmit Power, Max Power, and MCS rate fields to 0 dBm in BCF Editor (see [Figure 19](#kix.vqyuid5joaat)), measuring output power across all supported channels, and calculating the average (mean) value.

Firstly, create and save a test BCF with Reference Transmit Power, Max Power, and MCS rate fields to 0 dBm:

![](/files/3c3f7356a38b8707f1d119bde3453981f7cfbe05)

Figure 19. BCF Editor where Reference Transmit Power, Max Power & MCS rate power are 0 dBm

Load this BCF onto the device, and confirm 0 dB set power values by running the morsectrl tx\_pwr\_adj command (for more information on morsectrl, see the Glossary).

In the example below, we can see that the base power (a.k.a Reference Transmit Power), Max and MCS rate power levels are all set to 0 dBm.

| <p>root\@ekh01-ddd9:\~# morsectrl tx\_pwr\_adj<br>TX power state information<br>        Base power: 0.000 dBm<br>        Max power: 0.000 dBm<br>        Current power: 0.000 dBm<br>        Regulatory limit: 0.000 dBm<br>        Subband power adjustment: -0.125 dB<br>        Temperature power adjustment: 0.063 dB<br>        Arbitrary txscaler: 0.000 dB<br>        Tx power drift: 0.000 dB<br>        TX antenna gain: 0 dBi<br>        TX power adjustment mask: 63<br>        Enable MCS based adjustment: 1<br>        Enable sub-band based adjustment: 1<br>        Enable temperature based adjustment: 1<br>        Enable per channel power limit: 1<br>        Enable power drift correction: 1<br>        Enable power adjustment across frequency: 1<br>        MCS0: 0.000 dBm<br>        MCS1: 0.000 dBm<br>        MCS2: 0.000 dBm<br>        MCS3: 0.000 dBm<br>        MCS4: 0.000 dBm<br>        MCS5: 0.000 dBm<br>        MCS6: 0.000 dBm<br>        MCS7: 0.000 dBm<br>        MCS8: 0.000 dBm<br>        MCS9: 0.000 dBm</p> |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

Next, measure output power across the range of 1 MHz BW channels using MCS0, calculate the average (mean) value and round to the nearest 0.25 dB step. As can be seen in [Figure 20](#kix.8edkphq6579z), for example DUT (MM6108-MF08651-US) the average (mean) output power is 17.5 dBm. This value is then used in the BCF as the Reference Transmit Power.

![](/files/29b3dfd86bbe88778e1d6f0230a2f6f90b44bad0)

Figure 20. MM6108-MF08651-US transmit power vs frequency with test BCF loaded

### How to find the MCS rate power levels

The MCS rate power level control is required to allow the reduction of the transmit power for higher MCS rates to ensure compliance with the Wi-Fi HaLow 802.11ah standard. The below table shows the EVM limit in dB for each MCS rate, as implemented by Morse Micro. Note that Morse Micro applies stricter limits than the IEEE standard to maintain compliance across device variations.

| MCS Rate | EVM Limit (dB) |
| -------- | -------------- |
| 10       | -7             |
| 0        | -8             |
| 1        | -13            |
| 2        | -16            |
| 3        | -19            |
| 4        | -22            |
| 5        | -25            |
| 6        | -28            |
| 7        | -30            |
| 8        | -32            |
| 9        | -33            |

To determine the acceptable transmit power for a given MCS rate, begin by generating an EVM versus transmit‐power plot for each MCS rate. On each plot, overlay the EVM limit line corresponding to that MCS rate; the maximum transmit power is the highest power level whose EVM remains below this limit. Perform this measurement across a representative sample of devices and on all channels of interest to account for board‐to‐board variation.

For example, the EVM versus Tx‐power plots for MCS7 at 902.5 MHz and 926.5 MHz with a 1 MHz bandwidth are shown in [Figure 21](#kix.rz8t8igmpadt). In this case, a vendor‐imposed limit of –30 dB (instead of the IEEE’s –28 dB) was applied to ensure compliance under worst‐case conditions. From these curves, the highest power level that stays under –30 dB is 16.5 dBm; accordingly, that value is entered as the MCS7 power level in the BCF Editor tool as seen in [Figure 22](#kix.mo773bosgmxq).

![](/files/ec72ec25ed116ff0893fb105f1847dad946670a7)

Figure 21. EVM vs Tx power plot  ( MCS7 902.5 MHz & 926.5 MHz -1 MHz BW)

![](/files/b0337566e8f9f2743684814aee88597c5042b822)

Figure 22. Screenshot from BCF Editor showing set MCS rates power levels

### Antenna Gain

The [Transmit Gain of Antenna](#kix.5njyewi6zwaf) parameter in the BCF specifies the gain of a known and fixed antenna and is used by the firmware when calculating and reporting Effective Isotropic Radiated Power (EIRP). Module manufacturers should continue to use the default value of 0 dBi, allowing the end product to define the antenna gain.

For products with a known fixed antenna, the Antenna Gain parameter must be populated with the actual antenna gain (positive or negative). The firmware automatically incorporates this value when enforcing regional EIRP limits and reporting transmit power.

The Max Power parameter represents the maximum conducted output power of the board and should be selected based on spectral mask and SEM compliance. It is not antenna dependent and must not be increased to account for positive antenna gain. Regional compliance is achieved by configuring the per-channel maximum power such that the conducted power plus antenna gain does not exceed the applicable regional EIRP limit.

If the antenna gain is negative, the firmware compensates internally by increasing conducted power up to the configured Max Power. Increasing Max Power or modifying MCS back-offs to recover additional power is not recommended, as this may increase the risk of spectral emission mask violations.

| Case                            | Board Max Power (dBm) | Antenna Gain (dBi) | Per-Channel Max Power (dBm) | Reported TX Power (EIRP dBm) | Notes                                                  |
| ------------------------------- | --------------------- | ------------------ | --------------------------- | ---------------------------- | ------------------------------------------------------ |
| <p>0 dBi        <br>antenna</p> | 21                    | 0                  | 21                          | 21                           | <p>Baseline case, no antenna gain<br>applied</p>       |
| +dBi antenna (EIRP compliant)   | 21                    | +2                 | 19                          | 21                           | <p>Per-channel power reduced to meet<br>EIRP limit</p> |
| +dBi antenna (EIRP violated)    | 21                    | +2                 | 21                          | 23                           | <p>Non-compliant: EIRP exceeds<br>regional limit</p>   |
| −dBi antenna                    | 21                    | −2                 | 21                          | 19                           | <p>Max Power<br>unchanged</p>                          |

Note: The example uses a Regional EIRP limit of 21 dBm.

⚠️Warning: If a module has been certified for regulatory compliance using a 0 dBi antenna, re-certification is required if an antenna with positive gain is used in the final product.

⚠️Warning: Using an antenna with increased gain without updating the corresponding BCF parameters (Transmit Antenna Gain and Regional Max Power) can result in the system exceeding regulatory EIRP limits. For example, under FCC regulations, the maximum allowable EIRP is 36 dBm. This will be required for all product manufacturers who intend to use a positive gain antenna along with a previously certified module.

### MM810x 32MHz External Crystal Capacitor Trimming

The MM810x utilizes an external 32 MHz crystal as its primary clock source. Integrated programmable load capacitors are provided for frequency trimming, eliminating the requirement for external load capacitors. The crystal load capacitor trim (xon) and crystal load capacitor trim (xop) are configured in the BCF Editor, as seen in [Figure 24](#kix.x29z1ll5vxxk). Adjusting these trim values changes the effective load capacitance on the XON/XOP pins, allowing for fine frequency correction of the crystal.

![](/files/ab3152d645a689ae9082e819821673c0876dec17)

Figure 24. BCF Editor Crystal load capacitor trim xon & xop fields

The module designer shall follow the calibration procedure below in order to achieve a frequency offset that meets the IEEE 802.11ah frequency error limit of ±20 PPM.

The usable range for the crystal load capacitor trim parameters are 0–511 (9-bits).

Calibration procedure

Perform procedure on a reasonable sample size.

1. Choose a representative sample of DUTs. Allow samples to reach thermal steady state at the intended operating temperature.
2. Configure the MM8108 to transmit a single unmodulated tone in cartesian mode using morsectrl:  morsectrl transmit\_cw start 912000000 1 .  Use the built-in help option (-h) with morsectrl commands to see details for each parameter. Make sure the transmit power is set to a safe level for your tester.

&#x20;Measure frequency error (Δf) at several RF channels, for example 850, 880, 920, and 950 MHz, using a calibrated tester, where  ![](/files/cde14c7d1253ca4e50de4189919fa0069279dacf) .

Refer to the [MM APPNOTE-43 - HaLow RF Test Guide](https://www.google.com/url?q=https://www.morsemicro.com/download/halow-rf-test-guide-app-note-43/\&sa=D\&source=editors\&ust=1783469796738455\&usg=AOvVaw3xR6X0XNr_HnZkSB8kB-gv) for instructions on how to measure frequency offset. Calculate the parts per million (ppm) offset value using the below formula:

![](/files/609bbf5611edcad138f0f0656cb7f6bc0acd78f5)

3. Set both XON/XOP trims (typically equal) to a starting code. If no prior data exists, use mid-scale 256. Define bounds: low = 0, high = 511.
4. Successive approximation (binary search)\
   At each test frequency:

* Set the current code as both  XON/XOP values in the BCF file, where the current code is the floor function of the low and high bounds:   ![](/files/25ea8a7c17871006e81df4134402437a7499900a)
* Measure Δf, using the same approach as step 2. It is best to take the measurement after the frequency has stabilized. This stabilization may occur after the device warms up during boot, when temperature-induced drift has settled.
* Decide frequency shift direction using the observed monotonicity between code and frequency on your hardware (e.g., if increasing code increases load capacitance and lowers frequency, keep the half that moves Δf toward 0).
* Update bounds and iterate until |Δf| meets tolerance (e.g., ±20 ppm) or bounds converge.

&#x20;Record the code yielding the smallest |Δf|. If readings are noisy, average multiple measurements per step.

5. For each DUT, average the per-frequency results to obtain that unit’s XON/XOP codes. Repeat for all DUTs, then compute the lot average rounded to the nearest integer. In most builds XON and XOP remain equal; only introduce deliberate asymmetry if measurement evidence supports it.
6. Update the production BCF with the averaged trim codes.

Validation

* Measure the frequency offset across a larger sample set (about 30 units) and check that results meet the program limit (e.g., ±20 ppm).An example distribution of frequency error (in ppm) for a sample of the MM8108-MF15457 is shown in the [Figure 25](#kix.2f99l2rb7e22) below.

![](/files/f119b8b475812033d99254fc3fb2901d58284750)

Figure 25. Frequency error (in ppm) for samples of MM8108-MF15457

* Using a LitePoint (or equivalent), run Tx EVM sweeps to confirm no degradation with the chosen trims.
* Perform a cold-start check to ensure reliable oscillator start-up at temperature and voltage corners.

Notes and troubleshooting

* If the sign of the trim-to-frequency relationship is unknown, determine it empirically by stepping the code up/down and observing Δf.
* Large unit-to-unit spread suggests crystal load mismatch or temperature effects; revisit external crystal load capacitance targets or narrow the averaging method (e.g., weighted by temperature).

## Glossary

| Abbreviation | Full Term                          | Description / Context                                                                                                                      |
| ------------ | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| 802.11ah     | IEEE 802.11ah                      | The Wi-Fi HaLow standard for sub-GHz, long-range, low-power IoT applications.                                                              |
| AFE          | Analog Front-End                   | RF circuitry controlling signal routing between the IC and external components, including FEM, LNA, and antenna.                           |
| AGC          | Automatic Gain Control             | Hardware mechanism that dynamically adjusts receiver gain; can be overridden by BCF for manual antenna control.                            |
| BCF          | Board Configuration File           | Binary configuration file defining hardware behavior, RF parameters, and system control for Morse Micro ICs.                               |
| CCA          | Clear Channel Assessment           | Mechanism that determines if a channel is free for transmission; thresholds adjustable via BCF.                                            |
| CRC          | Cyclic Redundancy Check            | Checksum verifying file integrity of the BCF.                                                                                              |
| EIRP         | Effective Isotropic Radiated Power | Total radiated power accounting for transmit power and antenna gain; must comply with regulatory limits.                                   |
| EVM          | Error Vector Magnitude             | Measure of modulation quality; determines maximum allowed transmit power for each MCS rate to meet standards.                              |
| FEM          | Front-End Module                   | A hardware module containing RF switches and amplifiers that routes signals between the IC and antenna for transmit (Tx) and receive (Rx). |
| FW           | Firmware                           | Embedded software running on the Morse Micro IC that loads and applies BCF configurations at runtime.                                      |
| GPIO         | General Purpose Input/Output       | Configurable digital pins controlling FEM, RF switches, or signaling host state changes.                                                   |
| LNA          | Low Noise Amplifier                | Amplifies weak received signals with minimal added noise to improve sensitivity.                                                           |
| MCS          | Modulation and Coding Scheme       | Set of modulation and coding rates; transmit power backoffs per MCS ensure EVM compliance.                                                 |
| MMDEBUG      | Morse Micro Debugger               | Hardware/software tool for programming and debugging Morse Micro ICs directly.                                                             |
| morsectrl    | Morse Micro control                | Command-line utility for controlling and monitoring IC configuration and RF operation.                                                     |
| OTP          | One-Time Programmable              | Non-volatile 16-bit field programmed during manufacturing, used to select BCF based on board type.                                         |
| PA           | Power Amplifier                    | Amplifies RF transmit signals to achieve desired output power; configured via BCF parameters.                                              |
| PHY Layer    | Physical Layer                     | OSI networking layer handling physical transmission and reception of RF signals.                                                           |
| SDK          | Software Development Kit           | Morse Micro tools for embedded system development and BCF editing.                                                                         |
| TDC          | Time-to-Digital Converter          | Internal measurement unit used for fine-tuning RF timing and frequency                                                                     |
| PPM          | Parts Per Million                  | Unit of frequency accuracy for crystal oscillators; defines allowable deviation from nominal frequency in RF systems.                      |

***

## Revision History

| Release Number | Release Date | Release Notes                                                                       |
| -------------- | ------------ | ----------------------------------------------------------------------------------- |
| 1              | 27-06-2025   | Initial Release                                                                     |
| 1.1            | 01-10-2025   | <p>Improved clarity.<br>Added details are crystal calibration tuning for mm810x</p> |
| 1.2            | 29-01-2026   | Updated details due to changes implemented in FW 1.17                               |

Morse Micro provides this information "as is" without warranties of any kind, express or implied. No guarantee is made as to the accuracy, completeness, or suitability of this information or Morse Micro’s products for any specific purpose. Use of this information and products is at the user’s sole risk. Morse Micro products are not designed or tested for use in mission-critical systems, and should not be used in such applications. Performance specifications are based on internal testing and are believed to be reliable; however, they are not guaranteed. It is the Buyer’s responsibility to test and validate all product performance, compatibility, and compliance, both in isolation and within end applications. Morse Micro assumes no liability for the use or application of any product, circuit, or information described herein. No license or other rights—express or implied—are granted under Morse Micro’s intellectual property. This document contains proprietary information of Morse Micro and is subject to change without notice. Wi-Fi®, Wi-Fi HaLow™, and the Wi-Fi logo are trademarks of Wi-Fi Alliance. All other trademarks are the property of their respective owners.
