I’m trying to use a mini router to poll my solar inverter. I want to use this tiny router instead of a full Linux box or Windows. The FT232R USB-RS485 keeps disconnecting (“disabled by hub (EMI?) / flowcontrol urb”) when polling the inverter.
The RS485 adapter is FTDI-based (FT232R, shows up as 0403:6001). The exact same adapter and wiring work fine from a Windows 11 PC, so inverter, wiring, and Modbus side are already verified.
On the router, the device shows up as /dev/ttyUSB0 and I can open it from Python or just test tools. The very first write to the port works, but as soon as I start actually talking to the inverter, the USB port resets itself.
What happens in practice:
I open /dev/ttyUSB0 at 115200 8N1
send a short frame (Modbus RTU request)
I get no reply (0 bytes)
then any later write fails with input/output error
dmesg then shows the FTDI device disconnecting and reconnecting over and over
The recurring kernel messages look like this in plain English:
usb hub disables the port “(EMI?)”
FTDI driver reports “error from flowcontrol urb”
device disconnects from ttyUSB0
immediately re-attaches again as ttyUSB0
This repeats every time I try to poll. So, from user space it looks like the port just dies mid-conversation.
Important points so nobody wastes time on the wrong thing:
the Modbus frames themselves are correct (they work from Windows)
the USB-RS485 adapter works fine on Windows with the same inverter
the problem only shows up on this MT300N-V2 router running OpenWrt
it doesn’t matter whether I use a Python script or a trivial “write bytes, read bytes” test – the USB link still resets
What I’m trying to figure out is:
Is this a known problem with FT232R adapters on the MT300N-V2 or similar SoCs (the “disabled by hub (EMI?) / flowcontrol urb” pattern)?
Are there any known fixes or workarounds, such as:
disabling hardware flow control for the FTDI driver
quirks or parameters for kmod-usb-serial-ftdi
USB autosuspend / power save issues on this router
Could this simply be a power limitation on the router’s USB port and is using a powered USB hub the usual fix?
If the answer is basically “this router’s USB implementation is flaky for this kind of serial workload, use a different adapter or add a powered hub”, that’s fine too. I’d just like to know whether this is expected behavior or if there’s something obvious I should change in OpenWrt configuration.
Thanks in advance to anyone who’s run into this before.