Anyone seen Helios or Liberation interfere with other USB devices? DMX universes reassigning since adding Helios

Hi everyone,

I’m trying to determine whether Helios or Liberation may be contributing to a problem that started shortly after adding laser control to our venue system.

Background

For quite a while, we were running:

  • Mac Studio
  • ShowXpress
  • Xpress 512
  • Xpress 512S

with no major issues.

Recently we added:

  • Liberation
  • Helios DAC (USB)

and since then we’ve been experiencing intermittent control problems.

Symptoms

Every once in a while during operation, one of two things happens:

Lighting issue:

  • ShowXpress starts behaving incorrectly.
  • Fixtures stop responding as expected.
  • In some cases I have to reassign universes in ShowXpress to get everything working again.
  • It almost seems like Universe 1 and Universe 2 become swapped or reassigned.

Laser issue:

  • Liberation stays running.
  • Helios appears to stop outputting.
  • Lasers stop responding until we restart/reconnect.

What’s strange is that the lighting issue didn’t seem to exist before Helios/Liberation was added to the system.

Current Setup

Mac Studio running:

  • Resolume
  • ShowXpress
  • Liberation

USB devices include:

  • Helios DAC
  • Xpress 512
  • Xpress 512S
  • APC40
  • Keyboard
  • Mouse
  • Other small devices

Most of these are connected through USB hubs and USB runs to the operator position.

What I’m Trying to Determine

I’m not looking to blame Liberation or Helios—I’m just trying to figure out whether anyone has seen similar behavior.

Specifically:

  • Has anyone experienced Helios disconnecting/reconnecting without Liberation crashing?
  • Has anyone seen Helios cause USB device re-enumeration on macOS?
  • Has anyone run Helios alongside multiple USB-DMX interfaces and experienced conflicts?
  • Does Helios use any USB serial drivers or behavior that could affect how other USB devices are detected?
  • Have any Mac users seen stability issues when Helios shares a USB hub with DMX interfaces?

Why I Suspect a Connection

The timing is what makes me suspicious.

The ShowXpress setup was running for a long time before Helios was introduced.

After adding Helios/Liberation, we started seeing:

  • occasional DMX universe assignment issues
  • occasional laser output loss

So I’m trying to determine whether:

  1. Helios is simply exposing a weakness in our USB topology, or
  2. Others have seen similar interactions between Helios and other show-control USB devices.

Any experiences, recommendations, or troubleshooting ideas would be greatly appreciated.

Thanks!

Hi Jon, and welcome to the forum!

I’m always keen to make sure that Liberation plays well with other apps - often the incompatibility can not be fixed on my side alone but I try to do whatever I can, so thanks for the report!

Liberation/Helios doesn’t use serial drivers and shouldn’t touch the ShowXpress DMX interfaces directly. But Helios is a continuous raw USB streaming device, and on a crowded hub/long USB run it could expose a weak USB setup. The simultaneous laser dropout plus DMX universe reassignment strongly points to USB bus/hub re-enumeration rather than a Liberation DMX bug.

Here’s my troubleshooting suggestions :

  1. Put Helios on its own direct Mac Studio port, or a separate high-quality powered hub, not the same hub/run as Xpress 512/512S.

  2. Put both ShowXpress DMX interfaces on their own powered hub/direct chain, preferably short and stable.

  3. Avoid long passive USB runs for Helios and DMX interfaces; use active/repeater or optical USB if distance is unavoidable.

  4. Test with only ShowXpress + Xpress devices, then add Helios/Liberation, then add APC40/other devices one by one.

  5. During a failure, check macOS Console/System Information for USB disconnect/reconnect events. If the Xpress devices and Helios all re-enumerate at the same timestamp, it is almost certainly hub/bus-level.

I’ve done a bit of research and it seems that XPress does use port/order as hardware identity[1] but I would not treat that list order as a guaranteed stable universe identity. macOS can re-enumerate USB devices after hub/device resets, and if ShowXpress binds universes by enumeration order rather than serial number or stable USB location, two Xpress interfaces can swap. Liberation’s Helios polling should not directly reorder Xpress devices, but adding Helios may be stressing the shared USB topology enough to expose this.

Let me know what you figure out!

All the best,

Seb


  1. As confirmed by XPress support in this forum post Multi Universe Order - The Lighting Controller Classic ↩︎

Hi Seb,

Thanks for the detailed reply and for taking the time to look into it.

Your thoughts were actually very much in line with my own suspicions. The fact that I was seeing both occasional laser output loss and DMX universe assignment issues at the same time made me think this was more likely a USB topology/re-enumeration problem than a Liberation-specific bug.

Based on that theory, I made some changes to the setup today. I ran a dedicated active USB extension directly from the Mac Studio and moved the ShowXpress interfaces (Xpress 512 and Xpress 512S) onto their own USB chain. I also moved the Helios onto its own separate direct USB connection so that the lighting and laser control are no longer sharing the same branch of the USB bus.

After making those changes, I ran ShowXpress, Liberation and Resolume together for about 30 minutes and everything behaved normally. No universe reassignment issues and no laser dropouts.

Of course, 30 minutes isn’t enough to declare victory, so we’re going to put it through its paces this weekend during live operation and see if any other issues surface.

I appreciate the explanation regarding Helios and USB streaming as well as the note about ShowXpress potentially relying on enumeration order. That aligns with what I’ve been observing when the issue occurs.

Thanks again for the response and the troubleshooting suggestions. I’ll keep you posted on what we find after a full weekend of testing. :slight_smile: