ROSOrin Ultimate Kit with Jetson Orin NX Super 8GB fails to switch from AP mode to 5 GHz STA mode

:light_bulb: Using this template is recommended — you may also edit it freely, but you must fully describe your product and the problem (at least: product name, version, and problem description).

Product and Purchase

  • Product model: Hiwonder ROSOrin ROS2 Smart Car (Mecanum-wheel configuration)
  • SKU or kit name: Ultimate Kit / With Jetson Orin NX Super (8GB)
  • Purchase channel: hiwonder homepage
  • Controller board: NVIDIA Jetson Orin NX Super (8GB)

Software and Environment

  • Operating system: Ubuntu 22.04 LTS with ROS 2 Humble

  • Connection method: Wi-Fi AP mode and SSH
    Robot AP SSID: HW-24372984
    Robot AP address: 192.168.149.1

    I am trying to switch the robot to 5 GHz STA mode.

  • Software version: NetworkManager 1.36.6
    Linux kernel 5.15.148-tegra
    Python 3

  • Firmware version: Unknown

  • Image version: Unknown. This is the system image supplied with the robot.

  • Tutorial step: ROSOrin User Manual
    Section 1.7.3, “LAN Mode Connection”

Issue Description

I followed the official tutorial and changed the Wi-Fi mode from AP mode to STA mode.

I configured both of the following files:

/home/ubuntu/wifi_manager/wifi_conf.py
/etc/wifi/wifi_conf.py

The effective configuration is:

WIFI_MODE = 2
WIFI_STA_SSID = “KT_GiGA_5G_2DC8”
WIFI_STA_PASSWORD = “”

The password is a string, is enclosed in quotation marks, and is at least eight characters long.

I then ran:

sudo systemctl restart wifi.service

  1. What did you expect to happen?
    I expected the robot to:

    1. Stop broadcasting the HW-24372984 access point.
    2. Connect to KT_GiGA_5G_2DC8 in STA mode.
    3. Receive an IP address from the router.
    4. Disconnect the existing SSH session because its IP address changed.
  2. What actually happened?
    The SSH session remained connected through HW-24372984.

    The robot did not connect to the router, and wifi.service failed with exit status 1. After rebooting, the robot continued to operate in AP mode.

    There was no successful STA activation for KT_GiGA_5G_2DC8 in the NetworkManager logs.

    The actual wireless interface on this system is:

    wlP1p1s0

    However, the factory wifi.py contains at least one hard-coded reference to:

    wlan0

  3. Error message or logs:
    wifi.service: Main process exited, code=exited, status=1/FAILURE
    wifi.service: Failed with result ‘exit-code’.

    NetworkManager recognizes the wireless interface:

    device (wlP1p1s0): state change:
    unmanaged → unavailable

    device (wlP1p1s0): supplicant interface state:
    internal-starting → disconnected

    device (wlP1p1s0): state change:
    unavailable → disconnected

    After wifi.service fails, NetworkManager activates the robot AP again:

    Activation: starting connection ‘HW-24372984’

    Started Wi-Fi Hotspot “HW-24372984”

    I also tested the unmodified factory script with:

    python3 -m py_compile /home/ubuntu/wifi_manager/wifi.py

    It fails before reaching the STA connection code:

    SyntaxError: (unicode error) ‘utf-8’ codec can’t decode byte 0xc8
    in wifi.py, line 54

    The factory wifi.py appears to contain non-UTF-8 Chinese text, but it has no Python source encoding declaration.

    I also noticed these possible problems in the factory script:

    1. It uses “wlan0”, but the actual interface is “wlP1p1s0”.
    2. It contains “if supportead:” instead of “if supported:”.
    3. nmcli stdout and stderr are captured but not written to wifi.log.
    4. The script can exit with status 1 without showing the original nmcli error.

    No custom modification to wifi.py is currently installed. The original factory file was restored after testing.

Reproduction Steps

  1. Power on the ROSOrin.

  2. Connect a computer to HW-24372984.

  3. SSH to ubuntu@192.168.149.1.

  4. Set WIFI_MODE to 2.

  5. Set WIFI_STA_SSID to KT_GiGA_5G_2DC8.

  6. Set WIFI_STA_PASSWORD to the correct router password.

  7. Apply the same configuration to:
    /home/ubuntu/wifi_manager/wifi_conf.py
    /etc/wifi/wifi_conf.py

  8. Run:
    sudo systemctl restart wifi.service

  9. Check: systemctl status wifi.service

  10. The service fails, and the robot remains in AP mode.

Evidence

  1. Photos or short video: Not provided.

  2. Wiring photo: Not applicable. No hardware wiring was changed.

  3. Screenshot: Not provided.

    The relevant terminal output and service logs are included as text in this post.

What You Have Tried

Verified that WIFI_MODE is an integer with the value 2.

  1. Verified the SSID spelling.
  2. Verified that the password is quoted and at least eight characters long.
  3. Updated both wifi_conf.py files.
  4. Restarted wifi.service.
  5. Rebooted the robot.
  6. Tested both 2.4 GHz and 5 GHz router configurations.
  7. Set the router to WPA2-PSK with AES.
  8. Tested a fixed 2.4 GHz channel.
  9. Confirmed that the wireless interface is wlP1p1s0.
  10. Confirmed that the robot still falls back to HW-24372984.
  11. Restored the original factory wifi.py after diagnostic testing.

Urgency

  • Is this for a class, competition, or deadline?
    Yes. This robot is being integrated into an active development project.
    This issue is completely blocking an active development project. I need to resolve it by September 1, 2026 (KST), so I would greatly appreciate an
    urgent response within 24 hours.

Your symptoms are consistent with two documented issues: the Wi-Fi service is failing before the STA connection completes, and the robot is then remaining in or falling back to AP mode. The ROSOrin documentation states that the robot can automatically return to AP mode when the configured LAN network cannot be found, while the configuration remains set to LAN mode.

The official Orin Nano/Orin NX network-adaptation procedure is the appropriate next step. It instructs you to replace the current wifi.py with the supplied adapter version, then stop the service and run the replacement manually:

gedit wifi_manager/wifi.py
sudo systemctl stop wifi.service
sudo python3 wifi_manager/wifi.py

Copy the contents of the wifi.py supplied in the same network-adaptation tutorial into /home/ubuntu/wifi_manager/wifi.py. Do not continue using the factory file that fails py_compile; a syntax/encoding error prevents Python from reaching the STA code. Avoid manually patching individual lines such as wlan0 or supportead before testing the supplied adapter file.

Also verify the literal configuration being loaded. Your post shows:

WIFI_MODE = 2
WIFI_STA_SSID = "KT_GiGA_5G_2DC8"
WIFI_STA_PASSWORD = ""

If the empty string is the actual value rather than a redaction, replace it with the real router password. Keep the SSID and password quoted, and make sure the values in the configuration used by the service are consistent. The official manual documents WIFI_MODE = 2 for STA mode and requires WIFI_STA_SSID and WIFI_STA_PASSWORD to be configured.

After the manual script run reports a successful connection, reboot the robot and verify its new LAN IP. Do not combine the manual configuration-file method with APP-based network switching while testing. If the supplied Orin NX adapter script still exits with status 1, provide the complete wifi.log, the full systemctl status wifi.service output, and the complete terminal output from sudo python3 wifi_manager/wifi.py for further diagnosis.


If this reply was helpful, you can mark it as the solution using the button below.

“Orin Nano/Orin NX 네트워크 적응 튜토리얼” 또는 wifi.py의 어댑터 버전을 찾을 수 없습니다. 답변에는 링크 또는 첨부 파일이 없습니다.

정확한 공식 wifi.py 파일을 첨부하거나 직접 다운로드 URL을 제공하십시오.

  • ROSOrin Ultimate Kit는
  • Jetson 오린 NX 최고 8GB
  • SKU: 21031757

또한 파일이 /home/ubuntu/wifi_manager/wifi.py를 대체해야 하는지 확인하십시오.

Official support staff are being brought in to help locate the correct adapter file and download link. If you still need my help, reply here and @ me. @Hiwonder_Scarlett

공식 지원 담당자를 불러 도움을 드리겠습니다. 추가로 제 도움이 필요하면 이 글에 답글을 남기고 @저를 태그해 주세요. @Hiwonder_Scarlett

Hi there,

Thank you for reaching out.

Regarding the error message you provided, this issue is generally caused by network service conflicts or Wi-Fi authentication failures.

To switch to LAN mode, you can also try using the app. Please note that you cannot connect to Wi-Fi networks requiring secondary authentication, and you can also try connecting to a mobile hotspot for testing. Refer to this tutorial for detailed information: LAN Mode Connection

If you need to restore the wifi.py file, simply replace the file at the following path: /home/ubuntu/wifi_manager/wifi.py

Here is the original factory wifi.py file: [wifi.py (7.9 KB)]

When switching via the app, please record a video of the process. If the robot still fails to switch to LAN mode, you can send the video to us so we can check your steps and provide a more accurate solution.

Looking forward to your reply.