Integration of MM6108 with nRF52833 – SDK Porting, SPI Interface & IDE Compatibility

Dear Morse Micro Team,

I am working on a project involving your MM6108 Wi-Fi HaLow SoC, and I plan to integrate it with a system that uses the Nordic nRF52833 SoC as the host microcontroller.

I would appreciate your guidance on the following aspects of this integration:

  1. Feasibility:
  • Is the MM6108 designed to be integrated with nRF52-series MCUs such as the nRF52833 using SPI or other interfaces?
  1. SDK Porting:
  • What is the recommended process for porting the MM IoT SDK (e.g., morselib) to an nRF52 platform?
  • Are there platform abstraction layers or templates that support Cortex-M4 microcontrollers?
  1. SPI Communication:
  • Since the MM6108 will be connected over SPI, could you please share the required SPI configuration parameters and any timing considerations?
  1. IDE and Toolchain:
  • My current development environment is Segger Embedded Studio (used for Nordic SoCs). Is the MM IoT SDK compatible with this IDE, or do you recommend an alternative?
  1. Integration Considerations:
  • Are there known constraints, memory requirements, or compatibility issues when integrating MM6108 with low-power MCUs such as nRF52833?

I am eager to evaluate and integrate Wi-Fi HaLow in a lightweight embedded system and would appreciate any access to documentation, SDKs, or integration guidelines you can provide.

I look forward to your response.

Hi @shivani

With 512KB of flash, and 128KB of RAM, the nRF2833 might be a bit under resourced to support the software stack required for the MM6108. The MM6108 is a “soft-mac” chip which requires much of the 802.11 upper mac software layers to be run on the host controller.
We also require storage for the MM6108 chip firmware, which is the primary consumer of flash size.

Is the MM6108 designed to be integrated with nRF52-series MCUs such as the nRF52833 using SPI or other interfaces?

The MM6108 is designed to be integrated to many MCUs using a SPI or SDIO interface. For basic applications, you will want a minimum of 750KB of flash and 128KB of RAM. Though for most applications, you will likely want to increase that to >1MB and >192KB.

What is the recommended process for porting the MM IoT SDK (e.g., morselib) to an nRF52 platform? Are there platform abstraction layers or templates that support Cortex-M4 microcontrollers?

It will depend on your application, including choice of RTOS, network stack, and of course, host controller. Our SDK is based on FreeRTOS + LwIP. If you’re starting a project from scratch, you might want to consider building from within the MM-IoT-SDK and adding a platform.

However, typically most users don’t want to do this when building their software, as they have a preferred IDE or other software framework which they wish to integrate into. This will require the user to pull in the appropriate libmorse (eg for cortex-m4f) and the required includes.
You will need to include the firmware and BCF binaries in your image. A simple approach to include these binaries would be to convert them to .c files with xxd -i mm6108.mbin. You will need to include one of the mmpktmem implementations, and mmutils has useful functions when parsing scan results.

Finally, you will need to implement the necessary abstraction layers. These are platform specific, but you can draw inspiration from the shims in the mm-iot-sdk.

We recognise this is quite a challenging port, and we are working on improving this type of integration, and writing documentation to help users along.
Instead, you might want to look at a more generic integration such as mm-iot-zephyr. While this is an Alpha port, we have tried it against an nRF5340 with much success.

Since the MM6108 will be connected over SPI, could you please share the required SPI configuration parameters and any timing considerations?

Please see our datasheet at MM6108 Data Sheet (DS100) - Morse Micro

My current development environment is Segger Embedded Studio (used for Nordic SoCs). Is the MM IoT SDK compatible with this IDE, or do you recommend an alternative?

The MM-IoT-SDK provides its own framework for compiling software, which is Makefile based. If you require integration with a specific IDE you will need to do some work.
If you are using Segger embOS, then we do not currently have support for this, and you will need to implement the mmosal functions.

Are there known constraints, memory requirements, or compatibility issues when integrating MM6108 with low-power MCUs such as nRF52833?

See the start of my response.


You will probably find an initial integration experience simpler with the nRF5340, as we have used this board as part of our bring up of mm-iot-zephyr. Note however that this is an Alpha port, and we are still actively developing it.