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.1I 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
-
What did you expect to happen?
I expected the robot to:- Stop broadcasting the HW-24372984 access point.
- Connect to KT_GiGA_5G_2DC8 in STA mode.
- Receive an IP address from the router.
- Disconnect the existing SSH session because its IP address changed.
-
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
-
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 → unavailabledevice (wlP1p1s0): supplicant interface state:
internal-starting → disconnecteddevice (wlP1p1s0): state change:
unavailable → disconnectedAfter 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 54The 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:
- It uses “wlan0”, but the actual interface is “wlP1p1s0”.
- It contains “if supportead:” instead of “if supported:”.
- nmcli stdout and stderr are captured but not written to wifi.log.
- 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
-
Power on the ROSOrin.
-
Connect a computer to HW-24372984.
-
SSH to ubuntu@192.168.149.1.
-
Set WIFI_MODE to 2.
-
Set WIFI_STA_SSID to KT_GiGA_5G_2DC8.
-
Set WIFI_STA_PASSWORD to the correct router password.
-
Apply the same configuration to:
/home/ubuntu/wifi_manager/wifi_conf.py
/etc/wifi/wifi_conf.py -
Run:
sudo systemctl restart wifi.service -
Check: systemctl status wifi.service
-
The service fails, and the robot remains in AP mode.
Evidence
-
Photos or short video: Not provided.
-
Wiring photo: Not applicable. No hardware wiring was changed.
-
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.
- Verified the SSID spelling.
- Verified that the password is quoted and at least eight characters long.
- Updated both wifi_conf.py files.
- Restarted wifi.service.
- Rebooted the robot.
- Tested both 2.4 GHz and 5 GHz router configurations.
- Set the router to WPA2-PSK with AES.
- Tested a fixed 2.4 GHz channel.
- Confirmed that the wireless interface is wlP1p1s0.
- Confirmed that the robot still falls back to HW-24372984.
- 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.