HEX Controller
Introduction
The HEX Controller is the core controller of the HEX series products, widely used in various HEX products. This document provides a detailed guide on how to use the HEX Controller.
Usage Method
Finding the Controller's IP Address
Some products (like Maver-X4) are equipped with a display, allowing users to easily view and set the controller's IP address via the touchscreen interface. For products without a display, other methods are needed to find the controller's IP address.
On Ubuntu, you can use the avahi-browse command to discover the controller.
First, install the avahi-browse tool:
sudo apt update && sudo apt install avahi-utils
After installation, run the following command to find the controller:
avahi-browse -r _hexfellow._tcp
Example: As shown below, a controller in the local network is found with the IP address 172.18.8.139.
If only IPV6 address appears (direct cable connection)
If there is no router (DHCP4 Server) in your network, such as directly connecting the cable between the robot and PC, you can still communicate using the IPV6 address. However, using IPV6 requires understanding the IPV6 address format, ZoneID, etc.
If unfamiliar, use a router to configure the controller's IPV4 as a static IP. Refer to the next section for details.

On macOS, other tools can be used for discovery. Here, we use Discovery - DNS-SD Browser as an example.
Open the application and search for the _hexfellow._tcp service record. After expanding the record, you can view the controller's IP address information.

Changing the Controller's IP Configuration
Changing the controller to a static IP requires network understanding
If you are not familiar with subnet masks, gateways, DNS, etc., do not change the controller's IP configuration. Use a router instead and configure through it, rather than setting a static IP.
Download Configuration Tool
We provide a network configuration tool for easily configuring the controller's IP address.
IP Configuration Reset
Use the hf-net-config tool to reset the IP configuration. After resetting, the device will return to DHCP Client status:
./hf-net-config <device ip> reset

Query Current IP Configuration
./hf-net-config <device ip> get
Configure Device as Static IP
The complete command format should include the following:
./hf-net-config --url <device ip> set --interface <interface port> static <interface ip> --prefix <prefix> --gateway <gateway ip> --dns <dns server ip> <dns server ip2> --dhcp-server <pool offset> <pool size>
Parameter descriptions are as follows, not all are required:
- device ip: The device's IP address in the current network configuration, supports IPV4 and IPV6.
- interface port: The network interface to modify, defaults to the robot's external network interface. Do not fill unless specified.
- interface ip: The desired static IP address.
- prefix: The subnet mask of the IP address, defaults to 24 if unspecified.
- gateway ip: The gateway IP address, defaults to empty if unspecified.
- dns server ip: The DNS server IP address, defaults to empty if unspecified.
- dns server ip2: The backup DNS server IP address, defaults to empty if unspecified.
Configuration Example:
Scenario 1: Connect and configure via IPv4
Low difficulty, requires router (network with DHCP4 server) configuration before direct cable connection. Cannot configure with direct cable connection initially.
Connect both the PC and device to the router, ensuring the router can assign IP addresses, then change the device to a static IP.
For example, if the router assigns the robot's IPv4 address as 172.18.28.201, you want to change it to a static IP: 192.168.33.2, with a gateway of 192.168.33.1, subnet mask of 24, and DNS of 192.168.33.1.
./hf-net-config --url 172.18.28.201 set static 192.168.33.2 --prefix 24 --gateway 192.168.33.1 --dns 192.168.33.1
Successful modification will show the following message.

After modification, remember to set the PC's IP to the same subnet; otherwise, the PC will not be able to access the robot.
Scenario 2: Connect and configure via IPv6
Direct cable connection supported during configuration, no router needed.
Using IPV6 requires understanding IPV6; if not understood, use a router and configure via IPV4.
When connecting using an IPv6 Link-Local address, append % and your computer's network interface name (Zone ID). For more on Zone ID, see IPv6-Zone-ID.
Find the network interface name using the ip a command.

Note: The zone id uses the interface name, not the interface id.
Assume the controller's IPv6 address is fe80::500d:96ff:fee1:d60b, connected via enp3s0, and you want to configure IPV4 as static IP 192.168.34.1, gateway 192.168.34.2, subnet mask 24, and DNS 192.168.34.2:
# Note: After % fill in your actual network interface name
./hf-net-config --url fe80::500d:96ff:fee1:d60b%enp3s0 set static 192.168.34.1 --prefix 24 --gateway 192.168.34.2 --dns 192.168.34.2
Successful modification will show the following message.

Other IP Configuration Needs
hf-net-config also provides functions like get IP information, change static IP to dynamic IP, etc. Use the -h parameter for help.
If you configure the IP incorrectly, reset the IP configuration (see above).