Iperf example SoftAP

Hi Guys

We are doing a project using the Quectel FGH100MAAMD with an esp32-s3. We were able to confirm the SPI communication using the porting assistant and are now trying to run an iperf between two quectel modules. When flashing both the TCP server and the TCP client try to connect to an access point. Is it possible to run the server as a SoftAP to test connection between two modules? We couldn’t find anything thus far.

Any help is appreciated

Hi @alwym

AP mode support for the esp32 will be more accessible in our next release. It is possible to make SoftAP work with 2.9.7 but it requires pulling in some hostap code from the MM-IoT-SDK , linking it to libmorse_nosupplicant.a, then mangling symbols which collide with ESPs hostap symbols of the same name.

Not really an easy process, so definitely can’t recommend it yet. Keep an eye out for 2.10!

1 Like

Just end up at same situation, looking forward for the next release.

SoftAP Example (Built Dec 5 2025 21:02:35)

Raw COUNTRY_CODE from build: ‘“US”’

After stripping quotes: ‘US’
Regulatory DB has 9 domains\n [0] AU: 23 channels\n [1] CA: 48 channels\n [2] EU: 7 channels\n [3] GB: 9 channels\n [4] IN: 3 channels\n [5] JP: 12 channels\n [6] KR: 16 channels\n [7] NZ: 23 channels\n [8] US: 48 channels\nSuccessfully loaded regulatory domain for ‘US’
First 10 channels in list:
[0] Chan=1, GlobalOpClass=68, S1GOpClass=1, BW=1 MHz, Freq=902500000 Hz
[1] Chan=3, GlobalOpClass=68, S1GOpClass=1, BW=1 MHz, Freq=903500000 Hz
[2] Chan=5, GlobalOpClass=68, S1GOpClass=1, BW=1 MHz, Freq=904500000 Hz
[3] Chan=7, GlobalOpClass=68, S1GOpClass=1, BW=1 MHz, Freq=905500000 Hz
[4] Chan=9, GlobalOpClass=68, S1GOpClass=1, BW=1 MHz, Freq=906500000 Hz
[5] Chan=11, GlobalOpClass=68, S1GOpClass=1, BW=1 MHz, Freq=907500000 Hz
[6] Chan=13, GlobalOpClass=68, S1GOpClass=1, BW=1 MHz, Freq=908500000 Hz
[7] Chan=15, GlobalOpClass=68, S1GOpClass=1, BW=1 MHz, Freq=909500000 Hz
[8] Chan=17, GlobalOpClass=68, S1GOpClass=1, BW=1 MHz, Freq=910500000 Hz
[9] Chan=19, GlobalOpClass=68, S1GOpClass=1, BW=1 MHz, Freq=911500000 Hz
Loaded channel list for country: US (48 channels)
Calling mmwlan_boot(NULL)…
Actual SPI CLK 40000kHz

BCF API version: 12.1.0

BCF build version: fa428d75 8c4dd7f
BCF board description: {“module”: “mm6108-mf08651-us”,
Morselib version: 2.9.7-esp32
Morse firmware version: 1.16.4
Morse chip ID: 0x0306
Morse chip name: MM6108A1

Initializing network interface (IP: 192.168.1.1, Netmask: 255.255.255.0, Gateway: 192.168.1.1)
Morse LwIP interface initialised. MAC address 02:00:45:a4:5a:2c
Starting Soft AP with:
SSID: SoftAP
Security: OPEN
PMF Mode: DISABLED
Op Class: 71
S1G Channel: 44
Primary BW: 0 MHz
Primary 1MHz Chan Idx: 0
Beacon Interval: 100 TUs
DTIM Period: 1
Raw COUNTRY_CODE from build: ‘“US”’
After stripping quotes: ‘US’
Regulatory DB has 9 domains\n [0] AU: 23 channels\n [1] CA: 48 channels\n [2] EU: 7 channels\n [3] GB: 9 channels\n [4] IN: 3 channels\n [5] JP: 12 channels\n [6] KR: 16 channels\n [7] NZ: 23 channels\n [8] US: 48 channels\nSuccessfully loaded regulatory domain for ‘US’
First 10 channels in list:
[0] Chan=1, GlobalOpClass=68, S1GOpClass=1, BW=1 MHz, Freq=902500000 Hz
[1] Chan=3, GlobalOpClass=68, S1GOpClass=1, BW=1 MHz, Freq=903500000 Hz
[2] Chan=5, GlobalOpClass=68, S1GOpClass=1, BW=1 MHz, Freq=904500000 Hz
[3] Chan=7, GlobalOpClass=68, S1GOpClass=1, BW=1 MHz, Freq=905500000 Hz
[4] Chan=9, GlobalOpClass=68, S1GOpClass=1, BW=1 MHz, Freq=906500000 Hz
[5] Chan=11, GlobalOpClass=68, S1GOpClass=1, BW=1 MHz, Freq=907500000 Hz
[6] Chan=13, GlobalOpClass=68, S1GOpClass=1, BW=1 MHz, Freq=908500000 Hz
[7] Chan=15, GlobalOpClass=68, S1GOpClass=1, BW=1 MHz, Freq=909500000 Hz
[8] Chan=17, GlobalOpClass=68, S1GOpClass=1, BW=1 MHz, Freq=910500000 Hz
[9] Chan=19, GlobalOpClass=68, S1GOpClass=1, BW=1 MHz, Freq=911500000 Hz
Found matching channel at index 47:
S1G Op Class in DB: 4
Global Op Class in DB: 71
BW in DB: 8 MHz
Freq in DB: 924000000 Hz
→ Op class MATCHES (using Global)

*** IMPORTANT: SoftAP API is marked as BETA in mmwlan.h ***
*** This feature may not be fully implemented in firmware 1.16.4 ***
*** The mm6108 chip or this firmware version may not support SoftAP mode ***

Failed to start Soft AP (status ERROR / 1)

Possible causes:

  1. SoftAP is a BETA API and may not be fully functional
  2. Firmware 1.16.4 may not support SoftAP on mm6108 hardware
  3. The mm6108-mf08651-us module may be STA-only
  4. Additional firmware configuration or licensing may be required

Recommendation: Use STA (station) mode instead, or contact Morse Micro support.
I (1278) main_task: Returned from app_main()