Issue with USB serial on AE3

I’m using the AE3 with the Lego EV3 running pybricks. For those not familiar with Pybricks EV3, it’s basically just a Linux system running a customized Debian Stretch distribution.

With the H7+, I can easily communicate with the camera over USB serial (ie. /dev/ttyACM0), but with the AE3, I can’t get the serial device to appear reliably; /dev/ttyACM0 would appear and disappear repeatedly and rapidly.

Looking at dmesg, I see a few messages which might suggest a cause…

usb 1-1: config 1 interface 1 altsetting 0 endpoint 0x2 has invalid maxpacket 512, setting to 64
usb 1-1: config 1 interface 1 altsetting 0 endpoint 0x82 has invalid maxpacket 512, setting to 64
usb 1-1: config 1 interface 2 altsetting 0 endpoint 0x3 has invalid maxpacket 512, setting to 64
usb 1-1: config 1 interface 2 altsetting 0 endpoint 0x83 has invalid maxpacket 512, setting to 64

I’m not familiar with the USB protocol, but a quick search for the error message suggests that the AE3 is trying to run at high speed mode, while the USB host on the EV3 only supports full speed.

I also see a lot of…

usb 1-1: reset full-speed USB device number 7 using ohci-da8xx
cdc_acm 1-1:1.0: ttyACM0: USB ACM device
usb 1-1: reset full-speed USB device number 7 using ohci-da8xx
cdc_acm 1-1:1.0: ttyACM0: USB ACM device

…repeated over and over.

Is there anyway for me to work around this issue?

Hi Cort,

You’re going to have to build your own custom firmware to downgrade the speed: 14.1. Firmware development - OpenMV MicroPython 1.28 documentation

Once you have the firmware building you’re going to need to change the TinyUSB config:

Then you can use OpenMV IDE to flash the new firmware. I’d use Claude or another AI to find any other places you may need to change and check if there are any other buffer sizes that need to be resized.

Thanks. I’ll give it a try.