The device behaves a little poorly for me on Ubuntu Linux with 1.47 firmware (or the 1.43 firmware it came with). I can connect to it, send it commands, etc. But, occasionally my python code will fail to write to the device reporting back an OS level error. This is sometimes, though not necessarily always, accompanied by the device disconnecting and reconnecting itself. In doing this it maintains power – if I have some pins set to output high, they stay high. What I see from the kernel is:
[14057.800085] hub 2-0:1.0: port 2 disabled by hub (EMI?), re-enabling...
[14057.800220] usb 2-2: USB disconnect, device number 3
[14058.040043] usb 2-2: new full-speed USB device number 4 using uhci_hcd
[14058.211549] cdc_acm 2-2:1.0: This device cannot do calls on its own. It is not a modem.
[14058.211786] cdc_acm 2-2:1.0: ttyACM0: USB ACM device
[36662.008081] hub 2-0:1.0: port 2 disabled by hub (EMI?), re-enabling...
[36662.008211] usb 2-2: USB disconnect, device number 4
[36662.304043] usb 2-2: new full-speed USB device number 5 using uhci_hcd
[36662.535241] cdc_acm 2-2:1.0: This device cannot do calls on its own. It is not a modem.
[36662.535482] cdc_acm 2-2:1.0: ttyACM1: USB ACM device
[56875.992086] hub 2-0:1.0: port 2 disabled by hub (EMI?), re-enabling...
[56875.992222] usb 2-2: USB disconnect, device number 5
[56876.232043] usb 2-2: new full-speed USB device number 6 using uhci_hcd
[56876.402700] cdc_acm 2-2:1.0: This device cannot do calls on its own. It is not a modem.
[56876.402934] cdc_acm 2-2:1.0: ttyACM0: USB ACM device
This means that my script can no longer control the device unless I completely re-initialize. Is this something that anyone else has seen? I’m going to try writing some controller code in C to see if it has to do with the way that Python interfaces with devices via RS-232, but I’m skeptical as Python has been doing that for a long time.