Discover EZB WiFi controllers by name, auto-bind connections, avoid IP management; live discovery and multi-EZB support for ARC.
How to add the EZB Connect By Name robot skill
- Load the most recent release of ARC (Get ARC).
- Press the Project tab from the top menu bar in ARC.
- Press Add Robot Skill from the button ribbon bar in ARC.
- Choose the General category tab.
- Press the EZB Connect By Name icon to add the robot skill to your project.
Don't have a robot yet?
Follow the Getting Started Guide to build a robot and use the EZB Connect By Name robot skill.
How to use the EZB Connect By Name robot skill
The EZB robot controllers created by EZ-Robot have built-in WiFi capabilities, allowing them to join your local wireless network and become discoverable by Synthiam ARC. Each EZB can be assigned a custom, human-friendly device name that reflects its purpose or position within your robot-for example: "LeftArm", "DriveBase", or "HeadController".
Once powered on, connected to WiFi, and assigned an IP address by your router, every EZB automatically broadcasts its device information over the network. This robot skill listens for those broadcasts and makes it possible to connect to an EZB by its name, instead of manually managing IP addresses.
This eliminates the need to track dynamic IPs or update your robot’s configuration every time your network changes.
When a new EZB is detected through its broadcast packet, it will immediately be shown in the log window along with its name, IP address, port, and board type. This helps you visually confirm that the controller is powered on and available for connection.
Why Connect By Name?
In many networks, especially home or mobile robotics setups, IP addresses can change from one power-cycle to the next. If your robot relies on different controllers for different subsystems, manually updating IPs becomes tedious and error-prone.
Using this robot skill:
- Your robot connects based on meaningful names, not numbers.
- IP changes no longer break scripts or connection sequences.
- Initialization scripts become more readable and easier to maintain.
- Diagnostics are simplified-if a controller powers on, you'll see its broadcast immediately.
This is particularly helpful for portable robots, school labs, or any environment where routers may reassign addresses frequently.
Multiple EZBs
Some advanced robots use several WiFi EZB controllers to support distributed subsystems such as motor control, sensors, lighting, or specialized mechanisms.
When working with multiple controllers, there are a few different network strategies you can use (robot as hotspot, router-based networks, isolated robotic APs, etc.). We have an excellent, in-depth guide explaining these setup patterns and best practices:
Multiple WiFi EZ-Bs Guide: https://synthiam.com/Support/Tips-to-Make-a-Robot/Multiple-EZ-B-over-WiFi
This robot skill fully supports multi-EZB systems by collecting all detected boards into a list and exposing them as selectable connection targets through ControlCommand().
Connecting
Connecting to an EZB using this robot skill is done through ControlCommand(). You specify:
- The index of the EZB connection in ARC’s Connection control
- The device name of the EZB you want to bind to that index
ARC’s connection indexes begin at 0 (zero). For example, index 0 corresponds to Connection #0 in the Connection skill, index 1 corresponds to Connection #1, and so on.
When editing an Init script, open the ControlCommand picker to view the full list of generated commands-it automatically lists all detected EZBs by name so you can select the correct one without typing.
Example Usage
If your EZB has the device name "DriveBase", and you want ARC to connect it to the first slot of the Connection control (index 0), your script would look like:
ControlCommand("EZB Connect By Name", "Connect", 0, "DriveBase")
If you have another EZB named "Head", and you want it bound to connection index 1:
ControlCommand("EZB Connect By Name", "Connect", 1, "Head")
These commands can be placed inside your project’s Init script, ensuring your entire robot connects automatically based on names every time the project loads.
Live Discovery
This robot skill listens continuously for broadcast packets. Whenever an EZB powers on and joins the network:
- Its broadcast is detected
- It is added to the skill’s internal list
- A log entry appears describing the discovery
- Its name becomes immediately available through ControlCommand()
This makes it easy to diagnose missing controllers-if you don’t see it appear in the log, it is not powered, not connected to WiFi, or not in range.
Error Handling
If you attempt a connection using a name that has not yet broadcasted, ARC will inform you:
- that the EZB was not found
- and that you may need to allow more time for broadcasts
This is helpful for robots that require a small network warm-up time before all controllers come online.
Summary
This robot skill provides a robust, flexible, and human-readable way to manage EZB WiFi controllers on any ARC-powered robot:
- No more updating IP addresses
- No more guessing which controller is where
- Automatic detection
- Clean connection scripting
- Ideal for multi-EZB advanced robots
By connecting based on device names, your robot becomes easier to maintain, more portable, and far more resilient to network changes.
Control Commands for the EZB Connect By Name robot skill
There are Control Commands available for this robot skill which allows the skill to be controlled programmatically from scripts or other robot skills. These commands enable you to automate actions, respond to sensor inputs, and integrate the robot skill with other systems or custom interfaces. If you're new to the concept of Control Commands, we have a comprehensive manual available here that explains how to use them, provides examples to get you started and make the most of this powerful feature.
Control Command ManualConnect
Connect to the EZB by the broadcast name at the specified EZB index of the connection robot skill.
Example: controlCommand("EZB Connect By Name", "Connect", [ezb index], "ezb broadcast name")
Hardware Info


@DJ SuresThis is great, except for one problem. If you have multiple EZ-B devices that are the same type (EZ-Bs or EZ-B IoTiny), all of them will have the same name, so you still can’t determine which is which. You can’t go by the IP since it will always change. And since ARC can support up to 132 EZ-B devices, this would be a serious problem when you get lots of devices. I think the Connect By Name skill name needs to include the serial number, or show the broadcast name of the device (which can be set via the WEB interface and be made unique).
@Jsale, So what I'm understanding is that you have gone into the EZB's web interface and changed it's broadcast's name and the Connect By Name skill is not picking up that change?
Yea Dave, it seems the Connect By Name uses the default name, and not the broadcast name. My WIFI shows the broadcast name, so I know I got it changed. DJ Sures is close with this, but still needs work, in my opinion.