Signed Mac OS Driver for Winchiphead CH340 serial bridge. November 2015 4. Juni 2018 Bjoern Arduino. I just received a signed driver by Winchiphead for their USB Serial bridge CH340. Now it should be possible to use Arduino’s equipped with that without any problems under Mac OS 10.9 to mac OS 10.13 (High Sierra). This came from the driver CD that came with a cheap CH341 based USB to Serial adapter that had numerous other drivers on the CD as well. This is the correct driver for the serial adapter, and it includes drivers for Windows 7 x64.
Active6 months ago
This page contains the drivers installer for wch cn USB-SERIAL CH340, the hardware/chipset supported by this driver are: USB VID_1A86&PID_7523, etc. Introduction: Download windows driver from here. CH340 windows driver. Automatic installation: If you are connected to internet, just plug CH340 USB to serial converter to your computer, windows will detect and download driver.
I am working with an Arduino Uno clone that uses the CH340G USB to TTL converter in lieu of the 16U2 found on the Uno. I see that most tutorials suggest downloading the CH340G drivers from what they call 'a chinese website'. I don't quite trust that site, is there any more trustworthy website where one might be able to acquire CH340G drivers for a modern Linux distro (preferably CentOS or Debian).
I ask here because devices withthat chipseemto bepopularin theArduinocommunity. If the unix stackexchange site would be a better place to ask then the question can be moved. Thank you.
EDIT: Apparently my system is having an issue with recognizing the device. Here are some specs:
My entire
dmesg
file can be found on pastebin, here is the end of it:
Community♦
dotancohendotancohen
2 Answers
Linux doesn't need drivers (indeed, the whole concept is pretty alien to Linux users).
The CH340G is fully supported by the default kernel in all distros I have ever used. On my Ubuntu machine the CH340G on my NodeMCU is detected automatically:
Nothing to download, nothing to install, nothing to risk the security of your system with.
Majenko♦Majenko
74.1k4 gold badges38 silver badges84 bronze badges
'Linux doesn't need drivers (indeed, the whole concept is pretty alien to Linux users).'
I feel alienated, however this information is incorrect. I have at least two Ubuntu machines that did not recognize the CH340g chip. One is Linux Mint 18.2 32bit the other is a Linux Mint 19 64bit. I used the 'driver' that I downloaded from the site in question and guess what? It is the exact same driver that NodeMCU uses. For those that want or need to download the driver, but don't want to visit a 'suspicious site' just go here nodemcu-dev and you will find three flavors: Linux, MAC and Windows. Strange that they have an MIT license for their own software.
For Linux, just extract the archive CH341SER_LINUX.ZIP, then open a terminal in the directory and use
make && sudo make
then load the module ahem. driver with (may need to use sudo) insmod /{path-to-your-extracted-folder}/ch34x.ko
or reboot.
Cute tv usb drivers. Now, I am not arguing whether or not Linux comes with the module, because I see two (one for each kernel) on just one of my systems located at /lib/modules/{x.x.x-xx}-generic/kernel/drivers/usb/serial/ch341.ko, however the one that is needed comes from the Chinese site in question that happens to be the same place where NodeMCU got theirs (or possibly some other site) for it to be recognized.
Also, I don't get how someone can buy Chinese products (or from anywhere else) and be afraid to visit their site.
AlienatedAndConflictedAlienatedAndConflicted
Not the answer you're looking for? Browse other questions tagged ch340 or ask your own question.
Active1 year, 9 months ago
$begingroup$
Attaching a 'Nano V3.0' arduino clone device to a Windows 7 PC's USB port causes the ATMega328P on the device to misbehave and lock up.
We are deliberately NOT using the Arduino toolchain - we are using Atmel Studio and a JTAGICE 3 programming device, the AVR does NOT have the standard bootloader installed. We need low level hardware control and so we're writing the firmware to have no bootloader.
Attaching the Nano to a Linux box (CentOS / Android etc) USB port was also causing the device to lock up in an unknown state.
Running this from a 'dumb' USB power pack however was successful.
What could be causing this?
Wossname
WossnameWossname
2,0692 gold badges11 silver badges26 bronze badges
$endgroup$
2 Answers
$begingroup$
After some investigation with an oscilloscope we discovered that the CH340 USB-Serial interface chip on this Nano V3.0 device (a common chip for cheap arduino clones) is forced to reset 5 times by it's Windows device driver during USB enumeration.
The Linux device driver also causes it to reset upon USB enumeration but only sends one reset pulse.
The dumb battery pack has no data lines and no concept of enumeration and consequently no reset is done - allowing the Nano to boot up normally and run correctly.
Age of empires 2 utorrent. Here's a comparison of the CH340's serial 'DTR' pin a few seconds after inserting the USB cable on both Windows and Linux..
From Theory of International Politics: National politics is the realm of authority, of administration, and of law. International politics is the realm of power, of struggle, and of accommodation.... States, like people, are insecure in proportion to the extent of their freedom. Organizations that establish relations of authority and control may increase security as they decrease freedom. Download waltz kenneth theory of international politics pdf. If freedom is wanted, insecurity must be accepted.
On the Nano V3.0, the DTR signal is AC coupled to the ATMega328P's reset pin. So for every falling edge on those traces the ATMega328P chip is being reset! For some reason, going through these resets was putting the Nano into some unknown state
The Workaround for those of us that want to use a Nano V3.0 WITHOUT needing Arduino IDE compatibility is to simply desolder the small surface mount capacitor attached to pin 13 on the CH340 on the Nano V3.0 device. That's it.
This will still allow Windows and Linux to talk to the device over the serial interface and allows you to power the device from some external 5V supply and attach it to a PC without the Nano resetting itself.
For us, our devices now work just fine with Atmel Studio + JTAGICE 3 and boot up correctly no matter what we plug them into.
Ch340 Driver Windows 7
Conclusion:It may be desirable for some applications to have the Nano reset itself when you plug it into a PC but it does seem that this 'feature' is causing undesired operation of the device in our case. The fact that the windows driver behaves so differently to the Linux one is interesting and I'd invite opinions on that.
I realise that very often a Nano device will only ever get it's power from the USB cable and this is fine but only if you've got some sort of bootloader on the AVR that knows how to handle these sporadic resets and avoids getting it self (and probably the CH340 too) into an unknown, broken state.
WossnameWossname
2,0692 gold badges11 silver badges26 bronze badges
Ch340g Driver Install
$endgroup$$begingroup$
I solved this by adding a 0.1uF cap between DTR and Gnd. Everything is working fine. On USB power, on external and even on both given together, controller reset behavior is quite normal. Boots up without issue and DTR reset works from the software.
If you are still getting random restarts and suspect that CH340 is playing some tricks because of the absence of any signal on USB D+ and D-, or any burst during enumeration etc, before convicting the innocent 340, first look other causes of reset. Check for WDT resets in your code and also check if the 5V/3.3V regulators aren't cooking. The Chinese board doesn't have power drain protection and simply shuts down the voltage regulator at high temperatures.
After a thorough inspection of one of my commercial products (yeah, I have to use the clone to reduce the cost), it came down to 5V regulator. On high temp, it simply shuts down at high speed, creating spikes. Unlike the conventional 7805 which starts to reduce Vcc less exponentially on high temps. It even crashes the program sometimes if the additional Cap between Gnd and Vcc isn't enough because of these spikes. So I have come to the conclusion that a 0.1uF cap on DTR to GND, one 220uF cap on 5Vcc of the controller to Gnd, and a 7805 to power-up everything else (SD card, LCD, camera etc) solves everything. Don't forget the heat sink and caps needed adjacent to 7805 otherwise, it will also start to heat up.
Umar HassanUmar Hassan
$endgroup$