This alpha module includes drivers and sample applications to add Morse Micro HaLow Wi-Fi to LTS version 3.7 of the Zephyr RTOS Project. The module is based on the 2.6.4 release of the MM-IoT-SDK
Morse Micro will provide Alpha ports of its software for some platforms. These ports are not part of the standard test and development cycle for a software release and may be incomplete in the set of supported features. They intend to provide a starting point for integrating Morse Micro software to projects based on these platforms.
Before using this module, please ensure you have followed the Zephyr Getting Started Guide.
Following the Zephyr Getting Started Guide you should be in the root directory of your west workspace, eg ~/zephyrproject
. Next add the Morse Micro repository and module to zephyr/west.yml
:
manifest:
remotes:
# <your other remotes>
- name: morsemicro
url-base: https://github.com/MorseMicro
projects:
# <your other projects>
- name: morsemicro
path: modules/lib/morsemicro
revision: main
repo-path: mm-iot-zephyr
remote: morsemicro
Update west's modules:
west update
Fetch the required blobs:
west blobs fetch morsemicro
Build and execute porting_assistant
west build -p auto -b [board] [--shield morse_mmech08] modules/lib/morsemicro/samples/porting_assistant
west flash
If using a Morse Micro MMECH08 hat, add the shield parameter to the build command.
The porting assistant example application compilation will fail if a node with compatible = "morse,spi"
is not found
in the compiled device tree.
Build and execute halow_client
west build -p auto -b [board] [--shield morse_mmech08] modules/lib/morsemicro/samples/halow_client
west flash
This application will boot the MM6108 and enable device connectivity via the Zephyr command line.
To scan for a network, run
wifi scan
To connect to a network run
wifi connect -s "<ssid>" -p "<key>" -k 3
Throughput measured on some boards is quite poor. For example, a nucleo_u575zi_q
board may only see ~3.5 Mbps UDP upload.
Host device power management hooks are not implemented in the Morse Micro Wi-Fi driver for Zephyr.
The band
information in the Zephyr Wi-Fi shell will show as UNKNOWN
for Morse Micro HaLow interfaces.
The Morse Micro HaLow Wi-Fi embedded software stack carries out a mix of short and long transactions over SPI. Unfortunately when paired with the SPI drivers for many platforms included in Zephyr, the overhead to prepare each transaction substantially reduces performance of the link.
Zephyr has recently released the RTIO subsystem which looks promising for improving this performance. Future development will focus on an RTIO compatible driver.
Feel free to join the Morse Micro developer community at https://community.morsemicro.com. While this is an Alpha port, we are happy to discuss issues and assist with further development.