HaLowLink2 compatibility with TXW8301


| / | __ _ __ __ __ | / (*) __ _ __ __
| |/| |/ _ | '__/ __|/ _ \ | |/| | |/ | '/ _
| | | | () | | __ \ / | | | | | (| | | () |
|| ||_
_/|| |/_| || ||*|_|_| _/


OpenWrt 23.05.6, Morse-2.11.13

root@halowlink2-908b:~# logread -f | grep hostapd_s1g
Sun May 24 00:57:10 2026 daemon.info hostapd_s1g: wlan0: STA ce:4f:26:8f:aa:88 IEEE 802.11: authenticated
Sun May 24 00:57:21 2026 daemon.info hostapd_s1g: wlan0: STA ce:4f:26:8f:aa:88 IEEE 802.11: authenticated
Sun May 24 00:57:33 2026 daemon.notice hostapd_s1g: wlan0: STA ce:4f:26:8f:aa:88 IEEE 802.11: did not acknowledge authentication response
Sun May 24 00:57:43 2026 daemon.notice hostapd_s1g: wlan0: STA ce:4f:26:8f:aa:88 IEEE 802.11: did not acknowledge authentication response
Sun May 24 00:57:55 2026 daemon.info hostapd_s1g: wlan0: STA ce:4f:26:8f:aa:88 IEEE 802.11: authenticated
Sun May 24 00:58:05 2026 daemon.notice hostapd_s1g: wlan0: STA ce:4f:26:8f:aa:88 IEEE 802.11: did not acknowledge authentication response
Sun May 24 00:58:15 2026 daemon.info hostapd_s1g: wlan0: STA ce:4f:26:8f:aa:88 IEEE 802.11: authenticated
Sun May 24 00:58:27 2026 daemon.notice hostapd_s1g: wlan0: STA ce:4f:26:8f:aa:88 IEEE 802.11: did not acknowledge authentication response
Sun May 24 00:58:39 2026 daemon.info hostapd_s1g: wlan0: STA ce:4f:26:8f:aa:88 IEEE 802.11: authenticated
Sun May 24 00:58:49 2026 daemon.info hostapd_s1g: wlan0: STA ce:4f:26:8f:aa:88 IEEE 802.11: authenticated
Sun May 24 00:59:00 2026 daemon.notice hostapd_s1g: wlan0: STA ce:4f:26:8f:aa:88 IEEE 802.11: did not acknowledge authentication response
Sun May 24 00:59:10 2026 daemon.notice hostapd_s1g: wlan0: STA ce:4f:26:8f:aa:88 IEEE 802.11: did not acknowledge authentication response

CLIENT LOG ANALYSIS AND AP CORRELATION DIAGNOSIS

The log you provided is a client-side driver log. When analyzed together with
the previously examined AP-side hostapd log (“did not acknowledge
authentication response”), it helps reveal the root cause of the problem.

This log clearly shows that the connection between the AP (50:2e:91:d2:c4:c9)
and the client (ce:4f:26:8f:aa:88) is failing at the Association stage.


  1. LOG ANALYSIS SUMMARY

Item : Value
------------------±------------------------------------------------
Client MAC : ce:4f:26:8f:aa:88 (local in LMAC STATUS)
AP MAC : 50:2e:91:d2:c4:c9
SSID : hgic_ah_test
Channel : 1 (S1G channel 1, freq 916.5MHz)
Failure Stage : Association (assoc_resp status_code=1)


  1. KEY LOG MESSAGE INTERPRETATION

2.1 ieee80211_sta_select_bss:24::by SSID find hgic_ah_test
[50:2e:91:d2:c4:c9] at channel 1

-> The client discovered the AP (50:2e:91:d2:c4:c9) with SSID
   "hgic_ah_test" on channel 1.

2.2 vif1 state WPA_SCANNING → WPA_AUTHENTICATING

-> The client attempts authentication with the AP.

2.3 vif1 state WPA_AUTHENTICATING → WPA_ASSOCIATING

-> Authentication completed successfully, transitioning to the
   Association stage.

2.4 ieee80211_sta_rx_assoc_resp:246::assoc_resp status_code= 1
[CRITICAL ERROR]

-> The AP rejected the client's Association Request.
-> status_code= 1 means "Unspecified Failure".
-> This is the code used by the AP when rejecting an Association in
   the IEEE 802.11 standard, and it does not specify the exact reason.

2.5 lmac set GTK: cmd=1 addr=50:2e:91:d2:c4:c9 cipher= 0x0 flags= 0x0
keyidx= 0 keylen= 0

-> Attempt to set the GTK (Group Temporal Key).
-> cipher= 0x0 indicates that encryption is not configured.

2.6 del_STA: addr=50:2e:91:d2:c4:c9

-> The AP deletes the client from its association list.

2.7 vif1 state WPA_ASSOCIATING → WPA_DISCONNECTED

-> The connection has been terminated.

2.8 vif1 state WPA_DISCONNECTED → WPA_AUTHENTICATING → WPA_SCANNING

-> It returns to the authentication and scanning stage to retry.

  1. CORRELATION WITH AP LOG

Comparing with the AP-side log analyzed earlier reveals an interesting
pattern.

Stage | Client Log | AP Log
------±------------------------------------±------------------------------
1 | WPA_AUTHENTICATING | authenticated (auth succeeded)
2 | WPA_ASSOCIATING | (Association response sent)
3 | assoc_resp status_code= 1 | did not acknowledge auth resp
4 | WPA_DISCONNECTED | (connection terminated)

KEY ISSUE:

  • The AP sent an Authentication Response, but the client did NOT send an
    ACK, so the AP treated it as authentication failure
    (“did not acknowledge authentication response”).

  • However, in the client log, authentication APPEARS to have succeeded
    (WPA_AUTHENTICATING → WPA_ASSOCIATING), and it moved on to the
    Association stage.

  • Yet the AP rejected the Association with status_code= 1
    (Unspecified Failure).

This indicates a STATE MISMATCH between the client and the AP.
The client believes authentication succeeded, but the AP considers
authentication to have failed and rejects the Association.


  1. ESTIMATED CAUSES

4.1 Authentication Response ACK Loss (Most Likely)

- The AP sent an authentication response, but the client failed to
  send an ACK.
- The client received the authentication response but either failed
  to send the ACK, or the ACK did not reach the AP.
- As a result, the AP treated it as authentication failure while the
  client treated it as success, creating a state mismatch.

4.2 Security Configuration Mismatch

- The security settings (WPA2/WPA3, encryption method) between the
  client and AP may not match.
- If the AP is configured with "encryption 'none'" and the client
  attempts WPA authentication, the AP may reject it.

4.3 HaLow (S1G) Characteristics

- HaLow is a standard for low-power, long-range communication and has
  different characteristics from regular Wi-Fi.
- In particular, RAW (Restricted Access Window) settings may not be
  compatible between the client and AP.

4.4 Signal Quality Issues

- bgr: -108 (Background RSSI) indicates a very weak signal strength.
- Poor signal quality increases the likelihood of ACK frame loss.

4.5 Channel Mismatch

- The client log shows "channel 1", while the AP log shows
  "S1G operating channel 29".
- This may be due to the mapping difference between S1G channels and
  HT channels. (S1G channel 29 = HT channel 116 = freq 916.5MHz)
- However, it is necessary to verify that the client and AP are using
  the same channel.

  1. SOLUTIONS

5.1 Match Security Settings

- Change the AP setting to 'psk2' (WPA2-PSK).
- Ensure the client uses the same security settings.

5.2 Improve Signal Quality

- Reduce the distance between the AP and client, or adjust antenna
  orientation.
- bgr: -108 indicates a very weak signal, so signal strength must be
  increased.

5.3 Re-check AP Configuration

# Check wireless settings on the AP
cat /etc/config/wireless

# Check hostapd configuration file
cat /var/run/hostapd-phy0.conf

5.4 Increase hostapd Log Level

# Add to the wifi-device section in /etc/config/wireless
option log_level '2'

# Apply the configuration
wifi reload

# Check detailed logs
logread -f | grep hostapd_s1g

5.5 Check Client Driver Logs

- Increase the client driver log level to obtain more detailed logs.
- In particular, check for additional information about
  status_code= 1 in assoc_resp.

5.6 Test Channel Change

- Change the AP channel to avoid interference.
- Example: channels 27, 29, 31, etc.

  1. CONCLUSION AND SUMMARY

This log shows that the client succeeded in authentication with the AP but
was rejected at the Association stage with status_code= 1
(Unspecified Failure).

Combined with the AP log’s “did not acknowledge authentication response”,
the most likely cause is a state mismatch due to authentication response
ACK loss.


  1. SUMMARY TO SEND TO JAMES HAGGERTY

"The client (ce:4f:26:8f:aa:88) succeeded in authentication with the AP
(50:2e:91:d2:c4:c9) but was rejected at the Association stage with
status_code= 1 (Unspecified Failure).

The AP log repeatedly shows ‘did not acknowledge authentication response’,
suggesting a state mismatch due to authentication response ACK loss.

The signal strength is very weak at -108dBm, and the security setting
(encryption ‘none’) also needs to be verified."

client log

-------------------
[151084]LMAC STATUS:
local: ce:4f:26:8f:aa:88 AID= 0 mode= 0(0/1:STA;2:AP)
freq= 916.5 bw=1 bgr=-107 dc=0:0(5:44)
chn: 916.5
bgr: -108
buf: free=65 tq=0 sq=0
irq: ac=31 bkn=0 bo(rts:frm)=0:0:0:0:31 to(rts:frm)=0:0 rx=65
tx : cnt=31 dly=0:0ms est_rate=900kbps txp=0 fail=0 drop=0
rx : cnt=65 bus=0ms
cca: st12= 0:0 mid1224= 0:0:0:0
chip-temperature:33, vcc:3.37, vdd13b:1.35, vdd13c:1.34
sta_list: no sta

[40;31m[155652]ieee80211_sta_select_bss:24::by SSID find hgic_ah_test [50:2e:91:d2:c4:c9] at channel 1
[0m[155661]vif1 state WPA_SCANNING → WPA_AUTHENTICATING
[155671]vif1 state WPA_AUTHENTICATING → WPA_ASSOCIATING
[155686]bss max idle: 300 x 1000TUs
[40;31m[155688]ieee80211_st[155690]bss max idle: 300 x 1000TUs
a 300 x 1000TUs
6::assoc_resp status_code= 1
[0m[155698][155699]bss max idle: 300 x 1000TUs
iss max idle: 300[155703]bss max idle: 300 x 1000TUs
x 1000TUs
x200490e0. 50:2e:91:d2:c4:c9
[155710]lmac set GTK: cmd=1 addr=50:2e:91:d2:c4:c9 cipher= 0x0 flags= 0x0 keyidx= 0 keylen= 0
[155718]del_STA: addr=50:2e:91:d2:c4:c9
[155722]stamap=0x0
[155724]sleepmap=0x0
[155726]vif1 state WPA_ASSOCIATING → WPA_DISCONNECTED
[155731]vif1 state WPA_DISCONNECTED → WPA_AUTHENTICATING
[155736]vif1 state WPA_AUTHENTICATING → WPA_SCANNING

AP log

OpenWrt 23.05.6, Morse-2.11.13

root@halowlink2-908b:~# logread -f | grep hostapd_s1g
Sun May 24 00:57:10 2026 daemon.info hostapd_s1g: wlan0: STA ce:4f:26:8f:aa:88 IEEE 802.11: authenticated
Sun May 24 00:57:21 2026 daemon.info hostapd_s1g: wlan0: STA ce:4f:26:8f:aa:88 IEEE 802.11: authenticated
Sun May 24 00:57:33 2026 daemon.notice hostapd_s1g: wlan0: STA ce:4f:26:8f:aa:88 IEEE 802.11: did not acknowledge authentication response
Sun May 24 00:57:43 2026 daemon.notice hostapd_s1g: wlan0: STA ce:4f:26:8f:aa:88 IEEE 802.11: did not acknowledge authentication response
Sun May 24 00:57:55 2026 daemon.info hostapd_s1g: wlan0: STA ce:4f:26:8f:aa:88 IEEE 802.11: authenticated
Sun May 24 00:58:05 2026 daemon.notice hostapd_s1g: wlan0: STA ce:4f:26:8f:aa:88 IEEE 802.11: did not acknowledge authentication response
Sun May 24 00:58:15 2026 daemon.info hostapd_s1g: wlan0: STA ce:4f:26:8f:aa:88 IEEE 802.11: authenticated
Sun May 24 00:58:27 2026 daemon.notice hostapd_s1g: wlan0: STA ce:4f:26:8f:aa:88 IEEE 802.11: did not acknowledge authentication response
Sun May 24 00:58:39 2026 daemon.info hostapd_s1g: wlan0: STA ce:4f:26:8f:aa:88 IEEE 802.11: authenticated
Sun May 24 00:58:49 2026 daemon.info hostapd_s1g: wlan0: STA ce:4f:26:8f:aa:88 IEEE 802.11: authenticated
Sun May 24 00:59:00 2026 daemon.notice hostapd_s1g: wlan0: STA ce:4f:26:8f:aa:88 IEEE 802.11: did not acknowledge authentication response
Sun May 24 00:59:10 2026 daemon.notice hostapd_s1g: wlan0: STA ce:4f:26:8f:aa:88 IEEE 802.11: did not acknowledge authentication response

Hi @yuhan

I have a TXW8301 and can reproduce your same issue using the AT commands as documented at taixin_tools/docs/at_commands_2x_firmware.md at main · aliosa27/taixin_tools · GitHub

The TXW8301 attempts authentication with the HaLowLink2 but it attempts this with the wrong authentication algorithm in Sequence 1 of the authentication process, the TXW8301 is sending this commit with “Open System”. Following this with the Association Request - the TXW8301 appears to attempt to associate with WPA1 - indicated by the inclusion of the WPA Information element. This element is also malformed.

The HaLowLink2 is rejecting this association with an “Unspecified Error”, likely caused by the malformed packet.

This is not WPA3 which is required for Wi-Fi HaLow. Taixin claim WPA3 certification (and there is a publicly available report) so there must be some way to use WPA3 with these devices. I would strongly recommend asking Taixin how to configure the device to use WPA3.

1 Like

Hi ajudge,
Thank you so much for taking the time to look into this and successfully reproduce the issue.
I also really appreciate being able to refer to the documentation you provided regarding
the authentication process.

Your detailed technical analysis—specifically regarding the “Open System” commit in Sequence 1
and the malformed WPA1 Information Element—perfectly explains the “Unspecified Error” I have
been encountering. It is incredibly helpful and reassuring to have this behavior confirmed by
someone else working with the same hardware.

I completely agree with your recommendation. I will reach out to Taixin support directly,
share this sniffer trace analysis, and ask for the specific AT commands, configuration steps,
or firmware updates required to properly enable WPA3 on the TXW8301.

Additionally, I am considering pivoting my device development to use the MM8108-EKH05 instead.
Could you kindly share any advice or easy starting points for getting up and running with this kit?
I am specifically planning to set up my development environment on Windows, so any recommendations
for Windows-friendly toolchains, SDKs, or getting-started guides would be highly appreciated.

Thanks again for your valuable insight and for pointing me in the right direction!
Best regards,
Yuhan

For a Windows development environment the best place to start would be the CMSIS pack we have available at GitHub - MorseMicro/mm-iot-cmsis · GitHub
Additional documentation is available at https://www.morsemicro.com/resources/user_guides/MM-IoT-CMSIS-Pack-User-Guide.pdf which should help guide you through the pack.


The MM IoT SDK is the core SDK here that the CMSIS pack is based on, and both will nudge you towards using FreeRTOS on your host microcontroller. If you want to use Zephyr instead, I’d recommend looking at the Zephyr port, however this does come currently come with some throughput limitations.

1 Like

Hi ajudge,
Thank you so much for pointing me to the CMSIS pack and the User Guide.
This is exactly the clear direction I needed to get started.

I truly appreciate the detailed heads-up regarding the MM IoT SDK, the recommendation to use
FreeRTOS on the host microcontroller, and the transparency about the current throughput
limitations of the Zephyr port. This information is incredibly valuable for planning my
Windows-based development environment effectively.

I will carefully review the GitHub repository and the documentation you provided,
and I am excited to dive into the MM8108-EKH05 development using these resources.
I will do my best to make solid progress!

Thanks again for your continued support, valuable insights, and
for always pointing me in the right direction.

Best regards,
Yuhan

35 posts were split to a new topic: EKH05 CMSIS Pack usage and metrics