Closed romainreignier closed 8 months ago
@romainreignier Interesting, it works fine for me. I'm running a virtual machine and I can use it without installing any drivers.`
Ubuntu 18.04.3 LTS Kernel 5.4.0-150
@romainreignier I've just tested another fresh VM and it also works ok.
ubuntu-22.04.3 Kernel 6.5.0
Thanks for testing. Which software did you use? I have used picocom
.
I have tried with minicom and picocom on an old Ubuntu 16.04 with 4.15 kernel but the result is the same.
Thanks for testing. Which software did you use? I have used
picocom
.
I used screen, and I had TX RX looped. Nothing special in my setup.
Just to confirm you've set the right permissions?
I have tried with minicom and picocom on an old Ubuntu 16.04 with 4.15 kernel but the result is the same.
I assume you're using a VM?
Just to confirm you've set the right permissions?
No, I have used sudo
.
I assume you're using a VM?
No, an old PC
I have tried with the correct dialout group and with screen without success. I have also tried in a VirtualBox VM with Debian 12 OS and USB 1.1 Controller and nothing changed.
I have tried a Debian 12 VM on a Windows 10 host and I get interesting results.
So, it seems to me that the Manufacturer Driver do something to init the chip and then after, it starts working in standard CDC-ACM driver.
And on a Linux HOST using the WCH 343 driver, the serial port needs to be opened once before it works in a Linux VM with the CDC-ACM default driver.
@romainreignier is it possible that flow control is somehow being enabled ?
Seems like I need to contact wch for support about this issue.
Removing R20 worked for me using the default cdc_acm
driver.
R20 is pulling down the CFG
pin which enables hardware flow control. The RS-232 port on the Ollie does not support HW flow control however, so it will never work without forcing the ch344 to use software flow control. The ch343ser
driver does this and changes the ch344 to use software flow control, but the cdc_acm
does not.
From the datasheet:
@jamesturton Good catch! I confirm removing R20 works.
@romainreignier Please remove R20, it's marked in the picture below. You can desolder it or just use a tweezers to flick it off the PCB. I've tested on a fresh raspberry pi just now and this fix works.
@meatpiHQ I have removed R20 and the Linux cdc-acm driver now works directly! Thanks a lot @jamesturton A noticed should be issued to the users or at least in the README of this repo.
@romainreignier Done :)
https://github.com/meatpiHQ/meatpi_ollie_v2?tab=readme-ov-file#linux
Is there any downside to removing R20?
Is there any downside to removing R20?
No downside. On the latest batch that resistor is unpopulated.
As mentioned on Discord, the Ollie-V2 is detected by the Linux kernel as 5 CDC-ACM USB interfaces. 4 for the CH344 (serial ports) and one for the CAN microcontroler:
But I cannot manage to send data through any of the 4 serial ports. The Green and Red lights do not blink and using a scope or doing a wire loop between Tx and Rx on RS-232 or UART ports, nothing is sent.
The CH344 is advertised as a CDC-ACM compliant device.
Using the manufacturer provided ch343 driver works but it requires a manual installation of an external driver which is not ideal.
I have noticed the same on Windows. Using the CH343 driver work but forcing the default Serial Driver does not work.
Did you manage to use the standard CDC-ACM driver? At least, your README should explain the situation for Linux (I see that you Windows driver uses the CH343 driver).
Tested on Windows 10, Ubuntu 22.04 with kernels 5.15 and 6.2, ArchLinux with kernel 6.6, Alpine Linux 3.8 with kernel 6.1.