ROSpider 6-channel R818 microphone records clearly but never detects wake word

: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 ROSpider with integrated 6-channel ring microphone array and R818 noise-reduction board
  • SKU or kit name: Jetson Orin Nano Super 8GB; integrated circular six-microphone
  • Purchase channel: Hiwonder Website (order #86870)
  • Controller board: NVIDIA Jetson Orin Nano Super 8GB plus ROSpider STM32 controller

Software and Environment

  • Operating system: Ubuntu 22.04.5 LTS, arm64 Kernel 5.15.148-tegra
  • Connection method: SSH
  • Software version: ROS2 Humble
  • Firmware version: R818 query result: version: circle6:v1.0.2 engine:se_circle.1004; build date: Thu Jun 16 14:29:55 CST 2022
  • Image version: Hiwonder factory supplied image.
  • Tutorial step: Voice Control Basic Lesson 6.1.1

Issue Description

  1. After the spider initializes, I expect it to respond to the wake word: “Hello Hi Wonder”

  2. What actually happened? No response from wake word.

  3. Error message or logs:
    After startup_test.launch.py finishes and the robot says “I am ready,” saying “Hello Hiwonder” toward the front produces no audible response and no message on /awake_node/awake_flag. I also tested the supplied Chinese pinyin default, xiao3 huan4 xiao3 huan4, without a wake event.

    The active /awake_node parameters are:

    awake_word: hello hi wonder
    enable_setting: True
    mic_type: mic6_circle
    port: /dev/ring_mic
    

    /awake_node/init_finish returns success=True. The R818 responds to the version query, so serial communication is at least partly functional. However, no wake event is published.

    Error messages / logs / screenshots:

    Normal startup includes:

    [awake_node]: Wake up word: hello hi wonder
    [awake_node]: start
    [asr_node]: start
    [voice_control_move]: I am ready
    

    Monitoring the wake event:

    ros2 topic echo /awake_node/awake_flag
    

    produces no output when either wake phrase is spoken.

    The R818 version query returns:

    std_srvs.srv.Trigger_Response(
      success=False,
      message='{"code":0,"content":"version: circle6:v1.0.2 engine:se_circle.1004; build date: Thu Jun 16 14:29:55 CST 2022","type":"version"}'
    )
    

    The JSON code is 0, but the ROS response says success=False. Inspection of awake_node.py shows that get_setting_srv(), set_mic_type_srv(), and set_wakeup_word_srv() never assign response.success, so the default false value does not appear to indicate whether the R818 operation succeeded.

    Explicitly calling the wake-word service takes the documented approximately 30 seconds but also returns the default false response:

    ros2 service call /awake_node/set_wakeup_word \
      xf_mic_asr_offline_msgs/srv/SetString \
      "{data: 'hello hi wonder'}"
    
    response:
    xf_mic_asr_offline_msgs.srv.SetString_Response(success=False, message='')
    

    The microphone itself seems to be functioning. I can record and play back sounds which sound good when facing the spider at the front or back.

Reproduction Steps

  1. Boot the ROSpider and wait for “I am ready.”

  2. Face the front of the microphone array and confirm clear raw audio from XFM-DP-V0.0.18 (card 0, device 0) at 16 kHz, mono, S16_LE.

  3. Run ros2 topic echo /awake_node/awake_flag.

  4. Say “Hello Hiwonder” clearly toward the front several times.

  5. Observe that /awake_node/awake_flag publishes nothing and the robot does not say “I’m here.”

Evidence

  1. Please see detailed notes below.

What You Have Tried

  1. Confirmed the microphone devices with arecord -l. Works as expected.

  2. Recorded from plughw:0,0 at 16 kHz mono; front/rear speech is intelligible.

  3. Tested front, rear, and side orientation. Front/rear are much clearer than the side.

  4. Confirmed the voice nodes are running: /awake_node, /asr_node, /voice_control, and /voice_control_move.

  5. Confirmed /awake_node publishes /awake_node/awake_flag and /awake_node/angle

  6. Confirmed the active parameters shown above.

  7. Confirmed /awake_node/init_finish returns success.

    • Queried the R818 version successfully.

    • Monitored /awake_node/awake_flag while speaking the English wake phrase.

    • Explicitly sent both hello hi wonder and xiao3 huan4 xiao3 huan4 with /awake_node/set_wakeup_word; neither phrase subsequently produced a wake event.

    • Relaunched startup_test.launch.py manually and watched the console; no wake-event message or traceback appeared.

      Additional Notes/Questions for HiWonder:Additional notes / questions for Hiwonder:

      1. Does R818 firmware circle6:v1.0.2 / se_circle.1004 support the English shallow-customization keyword hello hi wonder? The set_wakeup_word() comment says the parameter must be Chinese pinyin, while mic_init.launch.py intentionally passes hello hi wonder whenever ASR_LANGUAGE is not exactly Chinese.

      2. What R818 response confirms that wakeup_keywords was accepted? The current Python code discards the response from self.send() and logs “Wake up word: …” regardless of the R818 result.

      3. Is there a command to query the active wake word, not merely the firmware version?

      4. Should the threshold value 500 work with this firmware and English keyword?

      5. Is newer R818 firmware or a separate English wake-word resource required?

      6. Can Hiwonder provide corrected awake_node.py code or a known-good test utility for this exact ROSpider image?

Urgency

  • II would like to understand t his before a school demonstration next month

To protect your privacy, this topic has been made private, and a staff member will follow up with you directly. @Hiwonder_Scarlett

I’m okay with the topic being public. I don’t see a setting for making it public.

Dear Scout,

Thank you for your patience while our engineering team reviewed your diagnostic details.

Here are the technical clarifications and the recommended testing workflow regarding the R818 microphone array and offline wake word functionality:

1. Wake Word Support & Language Environment Configuration

  • Firmware Capability: The factory firmware natively supports both the Chinese wake word xiao3 huan4 xiao3 huan4 and the English wake word hello hiwonder

  • Note: When saying “hiwonder”, please pronounce it fluently and cohesively as a single continuous word.

  • Check the Active Language Variable: Open a terminal and run:

    Bash

    echo $ASR_LANGUAGE
    
    
    • If the terminal outputs English, use the English wake word.

    • If the terminal outputs Chinese, use the Chinese wake word.

  • Switching via Desktop Tool: You can also switch the system language environment via the desktop GUI:

    1. Open the Tool configuration utility on the desktop.

    2. Select the English wake word environment.

    3. Select English and click Save > Apply > Quit in sequence.

    4. Reboot the robot for the changes to take full effect.

  • Default Parameters: The default threshold and node parameters do not need to be modified.

2. Clean Step-by-Step Diagnostic Test

To isolate any background process interference, please run the following test sequence in the terminal:

  1. Stop existing background ROS processes:

    Bash

    ~/.stop_ros.sh
    
    
  2. Launch the offline voice control node manually:

    Bash

    ros2 launch xf_mic_asr_offline voice_control_move.launch.py
    
    
  3. Wait for the node initialization to complete until the robot audibly announces: “I am ready”.

  4. Speak the corresponding wake word (as confirmed in Step 1) clearly toward the front of the array to test waking.

3. Firmware Status & Next Steps

  • Firmware Reflashing: Reflashing the R818 firmware is generally not required.

  • Video Feedback (If Issue Persists): If the robot still does not wake up after following the procedure above, please provide a brief, complete video clip showing:

    1. The full terminal output logs printed after running the launch command.

    2. The actual wake-up attempt showing how and where the wake word is spoken toward the robot.

Our engineering team will review the log details and behavior in the video to determine if any firmware reflash or further adjustments are needed.

I followed the steps as shown and it still doesn’t work. Here’s the output:

~/.stop_ros.sh
ros2 launch xf_mic_asr_offline voice_control_move.launch.py
[INFO] [launch]: All log files can be found below /home/ubuntu/.ros/log/2026-08-27-14-27-23-644474-ubuntu-7324
[INFO] [launch]: Default logging verbosity is set to INFO

INFO\] \[apply_calib-1\]: process started with pid \[7326
INFO\] \[imu_filter_madgwick_node-2\]: process started with pid \[7328
INFO\] \[joint_state_publisher-3\]: process started with pid \[7330
INFO\] \[robot_state_publisher-4\]: process started with pid \[7332
INFO\] \[ros_robot_controller-5\]: process started with pid \[7334
INFO\] \[ekf_node-6\]: process started with pid \[7336
INFO\] \[oled_show-7\]: process started with pid \[7363
INFO\] \[servo_controller-8\]: process started with pid \[7367
INFO\] \[search_kinematics_solutions-9\]: process started with pid \[7369
INFO\] \[move_controller-10\]: process started with pid \[7377
INFO\] \[ldlidar_stl_ros2_node-11\]: process started with pid \[7381
INFO\] \[scan_to_scan_filter_chain-12\]: process started with pid \[7384
INFO\] \[awake_node.py-13\]: process started with pid \[7386
INFO\] \[voice_control-14\]: process started with pid \[7388
INFO\] \[asr_node.py-15\]: process started with pid \[7394
INFO\] \[voice_control_move.py-16\]: process started with pid \[7403
INFO\] \[init_pose-17\]: process started with pid \[7412

[imu_filter_madgwick_node-2] [INFO] [1787866044.457374701] [imu_filter]: Starting ImuFilter
[imu_filter_madgwick_node-2] [INFO] [1787866044.458002152] [imu_filter]: Using dt computed from message headers
[imu_filter_madgwick_node-2] [INFO] [1787866044.458028681] [imu_filter]: The gravity vector is kept in the IMU message.
[imu_filter_madgwick_node-2] [INFO] [1787866044.458114125] [imu_filter]: Imu filter gain set to 0.100000
[imu_filter_madgwick_node-2] [INFO] [1787866044.458137518] [imu_filter]: Gyro drift bias set to 0.000000
[imu_filter_madgwick_node-2] [INFO] [1787866044.458146062] [imu_filter]: Magnetometer bias values: 0.000000 0.000000 0.000000
[robot_state_publisher-4] [INFO] [1787866044.504719637] [robot_state_publisher]: got segment base_footprint
[robot_state_publisher-4] [INFO] [1787866044.504928830] [robot_state_publisher]: got segment base_link
[robot_state_publisher-4] [INFO] [1787866044.504948319] [robot_state_publisher]: got segment camera_connect_link
[robot_state_publisher-4] [INFO] [1787866044.504958239] [robot_state_publisher]: got segment coxa_LF
[robot_state_publisher-4] [INFO] [1787866044.504965856] [robot_state_publisher]: got segment coxa_LM
[robot_state_publisher-4] [INFO] [1787866044.504972800] [robot_state_publisher]: got segment coxa_LR
[robot_state_publisher-4] [INFO] [1787866044.504979456] [robot_state_publisher]: got segment coxa_RF
[robot_state_publisher-4] [INFO] [1787866044.504985985] [robot_state_publisher]: got segment coxa_RM
[robot_state_publisher-4] [INFO] [1787866044.504992737] [robot_state_publisher]: got segment coxa_RR
[robot_state_publisher-4] [INFO] [1787866044.504999201] [robot_state_publisher]: got segment depth_cam_frame
[robot_state_publisher-4] [INFO] [1787866044.505005857] [robot_state_publisher]: got segment depth_cam_link
[robot_state_publisher-4] [INFO] [1787866044.505088581] [robot_state_publisher]: got segment end_LF
[robot_state_publisher-4] [INFO] [1787866044.505103366] [robot_state_publisher]: got segment end_LM
[robot_state_publisher-4] [INFO] [1787866044.505112326] [robot_state_publisher]: got segment end_LR
[robot_state_publisher-4] [INFO] [1787866044.505118854] [robot_state_publisher]: got segment end_RF
[robot_state_publisher-4] [INFO] [1787866044.505125383] [robot_state_publisher]: got segment end_RM
[robot_state_publisher-4] [INFO] [1787866044.505131975] [robot_state_publisher]: got segment end_RR
[robot_state_publisher-4] [INFO] [1787866044.505138439] [robot_state_publisher]: got segment end_effector_link
[robot_state_publisher-4] [INFO] [1787866044.505145415] [robot_state_publisher]: got segment femur_LF
[robot_state_publisher-4] [INFO] [1787866044.505152136] [robot_state_publisher]: got segment femur_LM
[robot_state_publisher-4] [INFO] [1787866044.505159080] [robot_state_publisher]: got segment femur_LR
[robot_state_publisher-4] [INFO] [1787866044.505165416] [robot_state_publisher]: got segment femur_RF
[robot_state_publisher-4] [INFO] [1787866044.505171689] [robot_state_publisher]: got segment femur_RM
[robot_state_publisher-4] [INFO] [1787866044.505177961] [robot_state_publisher]: got segment femur_RR
[robot_state_publisher-4] [INFO] [1787866044.505184201] [robot_state_publisher]: got segment gripper_link
[robot_state_publisher-4] [INFO] [1787866044.505191017] [robot_state_publisher]: got segment imu_link
[robot_state_publisher-4] [INFO] [1787866044.505197514] [robot_state_publisher]: got segment l_in_link
[robot_state_publisher-4] [INFO] [1787866044.505204010] [robot_state_publisher]: got segment l_link
[robot_state_publisher-4] [INFO] [1787866044.505210794] [robot_state_publisher]: got segment l_out_link
[robot_state_publisher-4] [INFO] [1787866044.505217195] [robot_state_publisher]: got segment leg_center_LF
[robot_state_publisher-4] [INFO] [1787866044.505223723] [robot_state_publisher]: got segment leg_center_LM
[robot_state_publisher-4] [INFO] [1787866044.505230187] [robot_state_publisher]: got segment leg_center_LR
[robot_state_publisher-4] [INFO] [1787866044.505236459] [robot_state_publisher]: got segment leg_center_RF
[robot_state_publisher-4] [INFO] [1787866044.505242956] [robot_state_publisher]: got segment leg_center_RM
[robot_state_publisher-4] [INFO] [1787866044.505249388] [robot_state_publisher]: got segment leg_center_RR
[robot_state_publisher-4] [INFO] [1787866044.505255788] [robot_state_publisher]: got segment lidar_frame
[robot_state_publisher-4] [INFO] [1787866044.505262444] [robot_state_publisher]: got segment lidar_link
[robot_state_publisher-4] [INFO] [1787866044.505269165] [robot_state_publisher]: got segment link1
[robot_state_publisher-4] [INFO] [1787866044.505275821] [robot_state_publisher]: got segment link2
[robot_state_publisher-4] [INFO] [1787866044.505281933] [robot_state_publisher]: got segment link3
[robot_state_publisher-4] [INFO] [1787866044.505288206] [robot_state_publisher]: got segment link4
[robot_state_publisher-4] [INFO] [1787866044.505294318] [robot_state_publisher]: got segment link5
[robot_state_publisher-4] [INFO] [1787866044.505300686] [robot_state_publisher]: got segment r_in_link
[robot_state_publisher-4] [INFO] [1787866044.505306862] [robot_state_publisher]: got segment r_link
[robot_state_publisher-4] [INFO] [1787866044.505313519] [robot_state_publisher]: got segment r_out_link
[robot_state_publisher-4] [INFO] [1787866044.505319951] [robot_state_publisher]: got segment tibla_LF
[robot_state_publisher-4] [INFO] [1787866044.505326383] [robot_state_publisher]: got segment tibla_LM
[robot_state_publisher-4] [INFO] [1787866044.505332527] [robot_state_publisher]: got segment tibla_LR
[robot_state_publisher-4] [INFO] [1787866044.505338960] [robot_state_publisher]: got segment tibla_RF
[robot_state_publisher-4] [INFO] [1787866044.505348592] [robot_state_publisher]: got segment tibla_RM
[robot_state_publisher-4] [INFO] [1787866044.505355440] [robot_state_publisher]: got segment tibla_RR
[ldlidar_stl_ros2_node-11] [INFO] [1787866044.685290878] [LD19]: LDLiDAR SDK Pack Version is: v3.0.3
[ldlidar_stl_ros2_node-11] [INFO] [1787866044.685511591] [LD19]: <product_name>: LDLiDAR_LD19
[ldlidar_stl_ros2_node-11] [INFO] [1787866044.685532104] [LD19]: <topic_name>: scan
[ldlidar_stl_ros2_node-11] [INFO] [1787866044.685545704] [LD19]: <frame_id>: lidar_frame
[ldlidar_stl_ros2_node-11] [INFO] [1787866044.685554505] [LD19]: <port_name>: /dev/lidar
[ldlidar_stl_ros2_node-11] [INFO] [1787866044.685561961] [LD19]: <port_baudrate>: 230400
[ldlidar_stl_ros2_node-11] [INFO] [1787866044.685569417] [LD19]: <laser_scan_dir>: Counterclockwise
[ldlidar_stl_ros2_node-11] [INFO] [1787866044.685577546] [LD19]: <enable_angle_crop_func>: true
[ldlidar_stl_ros2_node-11] [INFO] [1787866044.685585258] [LD19]: <angle_crop_min>: 120.000000
[ldlidar_stl_ros2_node-11] [INFO] [1787866044.685604523] [LD19]: <angle_crop_max>: 240.000000
[ldlidar_stl_ros2_node-11] [INFO] [1787866044.698958246] [LD19]: ldlidar node start is success
[ldlidar_stl_ros2_node-11] [INFO] [1787866044.704527668] [LD19]: ldlidar communication is normal.
[ldlidar_stl_ros2_node-11] [INFO] [1787866044.708525695] [LD19]: Publish topic message:ldlidar scan data.
[voice_control-14] appid:3f498ac9
[voice_control-14] >>>>>denoise_sound_path :/home/ubuntu/ros2_ws/src/xf_mic_asr_offline/audio/vvui_deno.pcm
[voice_control-14] [INFO] [1787866044.815993362] [voice_control]: Initialization Offline resource parameter success!
[scan_to_scan_filter_chain-12] [WARN] [1787866045.638668357] [scan_to_scan_filter_chain]: diagnostic_updater: No HW_ID was set. This is probably a bug. Please report it. For devices that do not have a HW_ID, set this value to ‘none’. This warning only occurs once all diagnostics are OK. It is okay to wait until the device is open before calling setHardwareID.
[joint_state_publisher-3] [INFO] [1787866046.130870122] [joint_state_publisher]: Waiting for robot_description to be published on the robot_description topic…
[awake_node.py-13] [INFO] [1787866046.508889791] [awake_node]: Wake up word: hello hi wonder
[awake_node.py-13] [INFO] [1787866046.527982534] [awake_node]: start
[move_controller-10] 7377 (process ID) old priority 0, new priority -19
[voice_control_move.py-16] /home/ubuntu/.local/lib/python3.10/site-packages/numpy/core/getlimits.py:549: UserWarning: The value of the smallest subnormal for <class ‘numpy.float64’> type is zero.
[voice_control_move.py-16] setattr(self, word, getattr(machar, word).flat[0])
[voice_control_move.py-16] /home/ubuntu/.local/lib/python3.10/site-packages/numpy/core/getlimits.py:89: UserWarning: The value of the smallest subnormal for <class ‘numpy.float64’> type is zero.
[voice_control_move.py-16] return self._float_to_str(self.smallest_subnormal)
[apply_calib-1] [INFO] [1787866047.006591097] [imu_calib]: Calibrating gyros; do not move the IMU
[ros_robot_controller-5] [INFO] [1787866047.055950614] [ros_robot_controller]: start
[servo_controller-8] [INFO] [1787866047.059139356] [servo_manager]: start
[servo_controller-8] [INFO] [1787866047.370850582] [controller_manager]: start
[search_kinematics_solutions-9] [INFO] [1787866047.612790361] [arm_kinematics]: start

INFO\] \[oled_show-7\]: process has finished cleanly \[pid 7363

[init_pose-17] [INFO] [1787866048.330086675] [init_pose]: start
[apply_calib-1] [INFO] [1787866049.102212120] [imu_calib]: Gyro calibration complete! (bias = [-0.005, -0.023, -0.005])
[imu_filter_madgwick_node-2] [INFO] [1787866049.123623507] [imu_filter]: First IMU message received.
[asr_node.py-15] /home/ubuntu/.local/lib/python3.10/site-packages/numpy/core/getlimits.py:549: UserWarning: The value of the smallest subnormal for <class ‘numpy.float64’> type is zero.
[asr_node.py-15] setattr(self, word, getattr(machar, word).flat[0])
[asr_node.py-15] /home/ubuntu/.local/lib/python3.10/site-packages/numpy/core/getlimits.py:89: UserWarning: The value of the smallest subnormal for <class ‘numpy.float64’> type is zero.
[asr_node.py-15] return self._float_to_str(self.smallest_subnormal)
[asr_node.py-15] /home/ubuntu/.local/lib/python3.10/site-packages/numpy/core/getlimits.py:549: UserWarning: The value of the smallest subnormal for <class ‘numpy.float32’> type is zero.
[asr_node.py-15] setattr(self, word, getattr(machar, word).flat[0])
[asr_node.py-15] /home/ubuntu/.local/lib/python3.10/site-packages/numpy/core/getlimits.py:89: UserWarning: The value of the smallest subnormal for <class ‘numpy.float32’> type is zero.
[asr_node.py-15] return self._float_to_str(self.smallest_subnormal)
[voice_control_move.py-16] /home/ubuntu/.local/lib/python3.10/site-packages/numpy/core/getlimits.py:549: UserWarning: The value of the smallest subnormal for <class ‘numpy.float32’> type is zero.
[voice_control_move.py-16] setattr(self, word, getattr(machar, word).flat[0])
[voice_control_move.py-16] /home/ubuntu/.local/lib/python3.10/site-packages/numpy/core/getlimits.py:89: UserWarning: The value of the smallest subnormal for <class ‘numpy.float32’> type is zero.
[voice_control_move.py-16] return self._float_to_str(self.smallest_subnormal)
[asr_node.py-15] [INFO] [1787866053.840353369] [asr_node]: start
[voice_control_move.py-16] [INFO] [1787866054.007560510] [voice_control_move]: 唤醒口令: 小幻小幻(Wake up word: hello hiwonder)
[voice_control_move.py-16] [INFO] [1787866054.008576520] [voice_control_move]: 唤醒后15秒内可以不用再唤醒(No need to wake up within 15 seconds after waking up)
[voice_control_move.py-16] [INFO] [1787866054.010232523] [voice_control_move]: 控制指令: 左转 右转 前进 后退 过来 跳个舞吧(Voice command: turn left/turn right/go forward/go backward/come here /dance)
[voice_control_move.py-16] [INFO] [1787866055.835334868] [voice_control_move]: I am ready

I took a video as requested but your form won’t let me upload it; it says it requires a trust level of 1 or higher. However, the video just shows the output that i pasted and that I was facing the spider. In the video, the spider says “I’m ready” but the output sits there and does nothing when I say “hello hiwonder”. Please adivse on how to upload the video without the trust level error. Thank you

Also i verified that the English setting is in effect via echo $ASR_LANGUAGE and it returned English.

Hi, there,

Thank you very much for providing this information.

We would appreciate having the video to forward to our engineers for inspection so that we can better resolve the issue. You can upload the video to Google Drive and share the link with us so that we can download and review it.

Looking forward to your reply.

Here is the link to the video. I hope that helps!

Hi, Scout,

Thank you very much for your video and testing feedback.

Based on the video, it appears that the microphone may not be picking up audio properly. Please follow these steps:

  1. Connect to the robot using the NoMachine remote desktop tool to access the desktop interface. Open Settings from the top-right corner, go to the Sound tab, and find the Input section, as shown in the image below. Speak toward the microphone and check whether the input volume bar fluctuates. To connect via the remote desktop tool, please refer to the tutorial at this link: https://wiki.hiwonder.com/projects/ROSpider/en/jetson-orin-nano-version/docs/1_ROSpider_User_Manual.html#\_1-4-development-environment-setup

  2. If sound is being captured normally, the system may simply have failed to recognize the wake word—please try adjusting your angle and attempting to wake it several more times. If there are no audio fluctuations, select a different microphone input device from the drop-down list and test again.

  3. If none of the input devices can pick up sound properly, you can try reflashing the microphone firmware.

    Mic Firmware Flashing File and Tool.rar (77.9 MB)

Thank you for your response!

The XFM input device does pick up my voice and shows normal fluctuations, and I can record understandable audio from it. The USB device does not show input activity, but I understand that may not be the microphone input. The remaining problem is that “Hello Hiwonder” is not recognized reliably. On rare occasions, the robot says “I’m Here” several minutes later. Given that XFM can capture sound, do you still recommend flashing the microphone firmware?

Hi, Scout,

Thank you for your reply.

Our engineers tested this scenario and did not encounter the issue during testing. Please try the following two troubleshooting methods:

  1. Open the Tool application on the desktop, set ASR to English, and click Save, then Apply. Please be sure to click the Apply button to save and apply the configuration. Then, test whether the robot wakes up properly using the wake word "Hello Hiwonder".

  2. If the issue persists, please try reflashing the microphone firmware and test the wake-up function again after flashing.

Mic Firmware Flashing File and Tool.rar (77.9 MB)

Please record a short video while attempting these two methods. If the issue remains unresolved, please share the video with us so our engineers can investigate and diagnose the problem further.