I work with an ESP32s2 micropython board using a usb ttyACM0 connection. With micropython v1.19 this works fine on Leap 15.5 and Tumbleweed. With micropython v1.20 cdc_acm is loaded and provides /dev/ttyACM0 however I am unable to communicate (also not possible as root) conclusion: it is a micropython bug. BUT on Windows, Ubuntu and Mint both v1.19 and v1.20 are working.
My conclusion is, there is a difference in v1.19 and 1.20 but for Windows and Debian it is tolerant. As openSUSE is my development platform it would be nice if I can use it here, now I use an Ubunto VirtualBox.
thanks.
If the ESP32s2 is connected through USB, the driver cdc_acm is attached. This driver says: driver for USB modems and ISDN adapters. This type of drver communicates with AT commands. That is not what I need, it should just pass my ASCII text. Could I replace it with an other driver?
No need to do that. ttyACM/cdc_acm just means “there is no second communication channel used for talking to the communication device”.
A typical example of this way of communication is a modem. If you send “hello” then these bytes will reach your communication partner at the other end of the telephone line. But if you send
<1 second pause>+++<1 second pause>ATD123456
then the “AT123456” will go to your modem instead and it will dial “123456”.
Devices which don’t have a second channel for configuring the device are often declared as ttyACM/cdc_acm - devices (opposed to ttyUSB-Devices). If that device doens’t have any special strings used to configure/influence it, every byte will be sent to the communication partner. And if it does have special strings, only these will be grabbed and all the others will be sent.
But there might be a timing problem with the cdc_acm-driver. I’ve just had a problem with ttyACM0-Communication to a Qstarz-GPS-Logger where over 4kB long packages always lost 1280 Bytes except if I connected over an old USB2-HUB or used a slower(!) PC (both Leap 15.5 fresh install).