Asked
I'm experiencing an intermittent issue with ARC where two out of my three EZ-B controllers lose their connection.
- I'm using direct USB connections from the computer's USB port through USB-to-serial converter cables connected to the EZ-B's camera ports.
- At startup, ARC connects to the two EZ-Bs using an initialization script. The EZ-B controllers connect properly to ARC, and commands can be sent without issue.
- Randomly, connections 0 and 2 will disconnect from the computer. This could happen to either connection or both, but at different times. It seems they don't disconnect simultaneously.
- The disconnections can occur within a few minutes of a successful ARC startup and initial connection to the EZ-Bs or after ARC has been running for an extended period.
- It doesn't seem to matter if data is actively being sent through the serial connection or not. Disconnects occur whether ARC is idle or executing commands from scripts.
- The EZ-B controllers do not lock up. I can simply click the reconnect button in the Connection Control within the Connection Skill, and the connection is reestablished between ARC and the EZ-B.
I'm seeking advice on what might be causing these disconnects and how to resolve the issue.
Could Windows 11 be interfering with the COM ports or doing something in the operating system that would cause these disconnects? Might electromagnetic fields (EMF) from nearby power cables induce such disconnections in the serial converter cables?
Thanks in advance for any suggestions.
Related Hardware EZ-B v4
Related Controls
EZB Connection
Connection Diagnostic

Good info - thanks, Dave. Your tests rule out a lot (FTDI adapters, hub, even the USB-TTL cable present vs removed), which narrows this down. Below I’ll summarize the likely causes left, give a prioritized set of hardware/software tests, and provide two ready-to-run ARC JavaScript scripts you can drop in Script Manager:
Before the scripts, quick analysis of what your findings imply
Prioritized tests to isolate cause (do these in order)
Minimal isolated test (fast, high value)
Power isolation (very likely)
Swap power harnesses between EZ-Bs
Long-run bench test
Windows/PC checks (if hardware tests don’t show the cause)
Connection Diagnostic logs and ARC logging
EMI / cable routing (if cabling runs near motors/power)
If still unresolved: try a different PC or Linux box
Two ready-to-run JavaScript scripts
Notes before pasting:
How to use:
Important: Update connectCommandForIndex() if your Connection skill uses a different control name or format to connect. If you paste a working ControlCommand you already use (for example the one you use in your init script), I’ll replace the function with the exact string for you.
What I recommend you run now
Post those here and I’ll correlate them and look for patterns (e.g., a device reset, a voltage-related fault, or Windows USB event).
Follow-up questions so I can help more precisely
If you want, I can:
Next best step: run the simple logger, capture one disconnect event with Windows Event Viewer and Connection Diagnostic log, paste those timestamps/log snippets here, and I’ll analyze them for the most likely root cause.
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
interesting.... reviewing the log file i can see the disconnect...
but essentially that's saying the host disconnected which is "impossible" if the usb is not powering down the port. because the serialport should stay open the entire time. and your log shows a reconnect occurs...
i first wondered if there's another device in a script query that isn't responding - such as a sabertooth or something. But when that happens, the ezb usually presents a red led and the communication protocol locks up. but in this case, that isn't showing happening. i can see in the log that the port disconnects, but it reconnects...
that tells me the ezb doesn't actually get out of command protocol sync - and instead was entirely unaware that there was a disconnection. the disconnection occurs on the Windows OS side. i'm still leaning toward either power saving on windows or an EZB brownout causing a reboot. but even a reboot wouldn't tell windows because the EZB simply restarts and the USB uart hardware device is entirely unaware of that.
Good catch, DJ - that log is the smoking gun. The errors show ARC lost the TCP connection to the EZB (192.168.4.216:23) with the message "Unable to read data from the transport connection", then ARC immediately reconnects. That tells us the disconnect is a network/TCP layer event (host-side or network) rather than an EZB protocol corruption at the servo/command level.
Below is a concise diagnosis and a prioritized set of tests/fixes (with exact steps and quick scripts you can drop into ARC) to isolate and fix the root cause.
What the log means (short)
Prioritized checklist (run in order)
Immediate steps I recommend you run now (exact commands & scripts)
Share those and I’ll correlate exactly whether the socket is being reset by the PC, the EZB, or network layer.
Other useful hints & recommendations
Follow-ups I need from you (so I can target advice)
If you want, I’ll:
Which of the above tests will you run first? If you like, start with the ping (A) + the ARC monitor script (B) and post the results/timestamps - I’ll analyze them immediately.
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
@DJ,
Thanks for looking into this on your side.
Yes, you're correct. The EZB reconnects. This is because I have a script that loops every 30 seconds that checks the connection status of the three connected EZBs on my robot (Connection numbers 0,1 & 2). When it sees that one of them are disconnected, in this case conection 0, the script will automatically reconnect it.
When I lose the connection on 0 all either I or the script monitoring the connection has to do is cluck the connection button in the connection skill. I do not have to reboot the EZB like I've had to do in the past when a bad serial command is sent to something like a Sabertooth. The connection is just initiated once lost and the EZB connects. No EZB reboot needed.
As mentioned, this happens on connection 0 if the EZB in USB connection mode or if I physically remove the USB to serial converter cable and disable WIFI in the EZB interface and communicate over WIFI.
I've disabled all power saving settings in the Win 11 OS (In Power Options and in Device Manager), disabled Selective Suspend and turned down the baud rate on all Win Com ports, in ARC and the EZB to 9600.
I've also replaced two of the three EZBs and rerouted power cables away from the signal cables the best I could.
I'm down to power or ground issues. All EZBs are getting 12vcd.
I do have some servos and a Kangaroo 2x motor controller connected to this problem EZB that are powered from a different AC to DC Power supply then this EZB is. Maybe a neutral / ground problem? I'm thinking of trying to run a jumper from the ground pins of the problem EZB to the ground pins of another EZB close by, or maybe connect the DC neutrials of both AC to DC power supplies togather. Shot in the dark.
In addition, When the connection 0 is lost the EZB does not seem to reboot. I've been near the robot when the connection is lost and I do not hear the startup chimes like I do when the robot first starts up and powers up the EZBs. When configured for WIFI connection I do not hear the announcement that the EZB is connected to my Network. I can simply click the Connection 0 button in ARC and ARC will reconnect to the EZB and everything will work.
Furthermore, ARC is aware that there is no connection when it drops. The Connection 0 button in the Connection Skill in ARC goes dark and then shows the word Connect on it. Like I mentioned, I then click it to reconnect (or the script watching the connection will reconnect). The button will then show that the connection is made.
arc is aware because it times out receiving a response from a command, not because it detects a disconnection. although i'm confused becuase we're switching between discussing tcp wifi and usb/uart. this conversation started with usb/uart so if it is changing to a new connection type, it should be a new thread. let me know.
Thanks - good detective work so far, Dave. You’ve narrowed a lot of variables out (FTDI, cables, boards, camera pin VCC, power-save settings) and the logs DJ posted are useful: ARC reports a TCP transport read error then immediately reconnects successfully. That pattern means ARC’s TCP socket lost contact at the network/host layer (not a firmware/protocol corruption on the EZ-B), and since you don’t hear EZ-B startup chimes the EZ-B is usually not rebooting. That keeps a few likely suspects:
Below I’ll give a short prioritized plan, safe grounding/power tips, and two small JavaScript scripts you can drop into ARC to help diagnose and mitigate (keepalive + logging, and an automatic reconnect logger). After you run a few steps please paste the logs and I’ll analyze them.
Prioritized next steps (do in order)
If it stays connected, the original project has something causing the socket interruption. If it still drops, it’s PC/network or EZB environment.
Safety note: Only connect DC negatives together. Do not tie AC neutrals or earths unless you’re confident of the PSU design and safety - consult your PSU documentation or a qualified electrician.
Scripts to use in ARC (1) Keepalive + detailed logger - poll the EZ-B web server and log successes/failures. Create folder C:\ARC_Logs first.
Paste into Script Manager Add Script JavaScript. This will print to Script Manager and append to file and Notepad skill.
(2) Simple connection-event file logger (if you want only connect/disconnect timestamps):
What to capture next (please paste these if/when the next disconnect happens)
Follow-up questions for you
If you want, I’ll:
Which of the above scripts and tests will you try next?
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.