# Connecting to USB serial device

**URL:** <https://forum.inductiveautomation.com/t/connecting-to-usb-serial-device/102287>\
**Category:** Ignition\
**Tags:** perspective\
**Created:** [February 13, 2025, 1:23am UTC](https://forum.inductiveautomation.com/t/connecting-to-usb-serial-device/102287 "2025-02-13T01:23:32Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![tanda](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/tanda/32/19154_2.png) [@tanda](https://forum.inductiveautomation.com/u/tanda)\
**Post date:** [February 13, 2025, 1:23am UTC](https://forum.inductiveautomation.com/t/connecting-to-usb-serial-device/102287/1 "2025-02-13T01:23:32Z")

</div>

Hello,

We have a project where our perspective application commands and retrieves data from a serial device. The current setup is:

Ignition\_Server(Ethernet)\<---\> (Ethernet)PLC(Serial) \<-----\> (Serial)Device

The device manufacturer has obsoleted the serial device and the new unit has a USB connection. Works fine to connect it to a PC with USB and it creates a virtual COM port but throws a kink in our current deployment.

Any recommendations on elegant solution?  
We currently use Productivity PLCs for this application, is there a PLC that will host a virtual com port?  
There are USB remote servers but haven't used them before and wouldn't that expose the Ignition sever's USB port out on the floor?  
Considered Edge and the serial module but also need database connectivity which becomes an issue with Edge.

Advice welcome!  
Thanks  
Tanda

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [February 13, 2025, 1:36am UTC](https://forum.inductiveautomation.com/t/connecting-to-usb-serial-device/102287/2 "2025-02-13T01:36:25Z")

</div>

> [@tanda](#):
>
> (Ethernet)PLC(Serial)

How much logic is there here?

Presumably you're doing work in the PLC to read/write to the serial port and translate it into Modbus that is accessed by Ignition using the Modbus driver?

---

<div class="post-metadata">

**Author:** ![tanda](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/tanda/32/19154_2.png) [@tanda](https://forum.inductiveautomation.com/u/tanda)\
**Post date:** [February 13, 2025, 1:41am UTC](https://forum.inductiveautomation.com/t/connecting-to-usb-serial-device/102287/3 "2025-02-13T01:41:26Z")

</div>

Originally the PLC code was more involved. It's now basically being used as Ethernet to Serial converter. Modbus TCP string tags flow in/out serial port.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [February 13, 2025, 1:47am UTC](https://forum.inductiveautomation.com/t/connecting-to-usb-serial-device/102287/4 "2025-02-13T01:47:09Z")

</div>

I don't know how reliable it would be compared to the current setup, but you could hook this thing up to a Raspberry Pi and then use something like [socat](https://linux.die.net/man/1/socat) to expose the serial port over ethernet...

Then in Ignition you'd just make a TCP connection to the RPi.

If you wanted it to still look like Modbus to Ignition then you'd have to write a custom Modbus server on the RPi instead. Wouldn't be that difficult for a software developer, but still a bit custom.

---

<div class="post-metadata">

**Author:** ![tanda](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/tanda/32/19154_2.png) [@tanda](https://forum.inductiveautomation.com/u/tanda)\
**Post date:** [February 13, 2025, 1:52am UTC](https://forum.inductiveautomation.com/t/connecting-to-usb-serial-device/102287/5 "2025-02-13T01:52:03Z")

</div>

Have considered that or some other interposing PC in between. There is a PC in the mix anyway to run Perspective Workstation near the equipment. Maybe a driver to make its virtual COM, that's connected to the new device, available over TCP... Would be nice if it worked like a mobile device and I could just okay access from Perspective to my Serial Device.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 13, 2025, 2:04am UTC](https://forum.inductiveautomation.com/t/connecting-to-usb-serial-device/102287/6 "2025-02-13T02:04:38Z")

</div>

If you don't want to dip your toe into the RPi, there are networked USB sharing devices that may suit, like these, perhaps:

[https://www.usbgear.com/catalogsearch/result/?q=network+usb+sharing](https://www.usbgear.com/catalogsearch/result/?q=network+usb+sharing)

(There seems to be quite a few products in this niche.)

---

<div class="post-metadata">

**Author:** ![tanda](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/tanda/32/19154_2.png) [@tanda](https://forum.inductiveautomation.com/u/tanda)\
**Post date:** [February 13, 2025, 2:06am UTC](https://forum.inductiveautomation.com/t/connecting-to-usb-serial-device/102287/7 "2025-02-13T02:06:02Z")

</div>

Kevin, thanks for the socat memory jog. Still looking for something a bit less custom but may go down the rabbit hole of deploying the nearby perspective workstation on an x64 Linux box, so I can run perspective, and then use socat to virtualize the serial port.

---

<div class="post-metadata">

**Author:** ![tanda](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/tanda/32/19154_2.png) [@tanda](https://forum.inductiveautomation.com/u/tanda)\
**Post date:** [February 13, 2025, 2:08am UTC](https://forum.inductiveautomation.com/t/connecting-to-usb-serial-device/102287/8 "2025-02-13T02:08:47Z")

</div>

Hi Phil, Have you used these? I came across them when looking for a solution but was worried they might look to much like a do-anything USB port hanging off of the Ignition Server. i.e. a port someone on the floor could plug a thumb drive into and it would be on the server. Our security folks might object.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 13, 2025, 2:12am UTC](https://forum.inductiveautomation.com/t/connecting-to-usb-serial-device/102287/9 "2025-02-13T02:12:03Z")

</div>

No, haven't used them. Almost throw-away pricing though, compared to engineering time. I would think multiple choices would be worth trying.

---

<div class="post-metadata">

**Author:** ![tanda](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/tanda/32/19154_2.png) [@tanda](https://forum.inductiveautomation.com/u/tanda)\
**Post date:** [February 13, 2025, 2:16am UTC](https://forum.inductiveautomation.com/t/connecting-to-usb-serial-device/102287/11 "2025-02-13T02:16:13Z")

</div>

> [@pturmel](#):
>
> No, haven't used them. Almost throw-away pricing though, compared to engineering time. I would think multiple choices would be worth trying.

Always worth a try and could use somewhere else if not in this application.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 13, 2025, 2:16am UTC](https://forum.inductiveautomation.com/t/connecting-to-usb-serial-device/102287/12 "2025-02-13T02:16:18Z")

</div>

Saw this:

[https://www.digi.com/products/models/aw02-g300](https://www.digi.com/products/models/aw02-g300)

DIgi has a pretty good reputation.

---

<div class="post-metadata">

**Author:** ![tanda](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/tanda/32/19154_2.png) [@tanda](https://forum.inductiveautomation.com/u/tanda)\
**Post date:** [February 13, 2025, 2:18am UTC](https://forum.inductiveautomation.com/t/connecting-to-usb-serial-device/102287/13 "2025-02-13T02:18:45Z")

</div>

> [@pturmel](#):
>
> Saw this:
> 
> [AW02-G300 - AnywhereUSB 2 Plus — dual USB 3.1 Gen 1 ports, single 10 M/100 M/1 G Ethernet, 5&nbsp;VDC (power supply sold separately) | Digi International](https://www.digi.com/products/models/aw02-g300)
> 
> DIgi has a pretty good reputation.

Haha, that's the one sitting in my mouser cart.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 13, 2025, 2:21am UTC](https://forum.inductiveautomation.com/t/connecting-to-usb-serial-device/102287/14 "2025-02-13T02:21:33Z")

</div>

Maybe add this after checking the barrel size:

> **[Amazon.com: Industrial Gigabit PoE Splitter with IEEE 802.3af/at-Compliant...](https://www.amazon.com/Industrial-at-Compliant-Raspberry-DC-Port/dp/B0D7PZNKX1)**
>
> Industrial Gigabit PoE Splitter, 5V 5A 25W Output, DC Port. Adopts MPS control chip solution, high-efficiency, high-safety, stable-performance. Features Adopts MPS control chip solution, high-efficiency, high-safety,...

---

<div class="post-metadata">

**Author:** ![tanda](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/tanda/32/19154_2.png) [@tanda](https://forum.inductiveautomation.com/u/tanda)\
**Post date:** [February 13, 2025, 2:28am UTC](https://forum.inductiveautomation.com/t/connecting-to-usb-serial-device/102287/15 "2025-02-13T02:28:02Z")

</div>

Lot's of other things plugged in nearby and not assured ports will be POE so probably just use the supplied wall-wart if I go that route.

---

<div class="post-metadata">

**Author:** ![tanda](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/tanda/32/19154_2.png) [@tanda](https://forum.inductiveautomation.com/u/tanda)\
**Post date:** [February 13, 2025, 3:17am UTC](https://forum.inductiveautomation.com/t/connecting-to-usb-serial-device/102287/16 "2025-02-13T03:17:47Z")

</div>

Hey Phil/Kevin,

I think I'm going to order an Onlogic industrial PC with Linux and try the socat approach. This will be my first Linux box running perspective workstation. Do you recommend a particular Distro?

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [February 13, 2025, 3:23am UTC](https://forum.inductiveautomation.com/t/connecting-to-usb-serial-device/102287/17 "2025-02-13T03:23:04Z")

</div>

Phil usually recommends Kubuntu (Ubuntu + KDE).

I’d second that, or at least something Ubuntu-based.

I use Fedora + KDE for my personal stuff but that’s a little more on the bleeding edge and updates frequently in comparison.

Plus QA generally tests Ubuntu.

---

<div class="post-metadata">

**Author:** ![tanda](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/tanda/32/19154_2.png) [@tanda](https://forum.inductiveautomation.com/u/tanda)\
**Post date:** [February 13, 2025, 3:41am UTC](https://forum.inductiveautomation.com/t/connecting-to-usb-serial-device/102287/18 "2025-02-13T03:41:38Z")

</div>

Thanks, Ubuntu desktop 22.04 LTS is an easy choice preinstalled from onlogic and unless there is some reason to avoid GNOME that's probably what I'll go with. KDE is nice but this will likely spend it's life with Perspective in kiosk mode covering the screen.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [February 13, 2025, 3:43am UTC](https://forum.inductiveautomation.com/t/connecting-to-usb-serial-device/102287/19 "2025-02-13T03:43:08Z")

</div>

You also plan to run a Gateway on this yeah?

Perspective Sessions can’t access serial ports unless they’re on the Gateway.

---

<div class="post-metadata">

**Author:** ![tanda](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/tanda/32/19154_2.png) [@tanda](https://forum.inductiveautomation.com/u/tanda)\
**Post date:** [February 13, 2025, 3:45am UTC](https://forum.inductiveautomation.com/t/connecting-to-usb-serial-device/102287/20 "2025-02-13T03:45:31Z")

</div>

I'm going to try the hack of pointing the gateway to a TCP port on this machine that is connected via socat to the serial port used by the device. Seems like convoluted good fun and if it works it solves a few instances of this same situation for me where I'd like to keep applications on our central gateway but have a serial something out at the perspective workstation.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [February 13, 2025, 3:48am UTC](https://forum.inductiveautomation.com/t/connecting-to-usb-serial-device/102287/21 "2025-02-13T03:48:42Z")

</div>

Oh right, I lost the plot a little.

Perspective Workstation on the middle PC, communicating with the Gateway, which is communicating via socat with the the middle PC, and socat is exposing the virtual serial port from the USB connection to this device.

And some new scripting on the Gateway to read/write to this TCP connection and put it into tags or something.

[Next page](https://forum.inductiveautomation.com/t/connecting-to-usb-serial-device/102287.md?page=2)
