Need guidance for connecting Arduino UNO to CH376S USB module


I am a little confused at the moment with this USB module (CH376S).

I have found a couple of documents on the web that seem to be getting me close to what I need, but I am struggling with the language barriers presented to me, and I am hoping someone here has already been down this road and can point me in the right direction.

This is the best datasheet that I could find for this product. This site has also given me some hope - but it is in chinese.

I was hoping to communicate with this module using an Arduino UNO and the SoftwareSerial library. But I don't even know if I have connected it to Arduino correctly. Once I figure this out, then I will try sending it some basic commands.

I currently have the SoftwareSerial TX on Arduino >>>> RXD on CH376S SoftwareSerial RX on Arduino >>>> TXD on CH376S GND on Arduino >>>> GND on CH376S

Ok so do I just need to connect the 5V on Arduino to the 5V pin on the CH376S ? Are there any other connections that I need to make?

Any guidance would be highly appreciated. Thanks Scott

Yes, it looks like it should work when you connect 5V power. It looks like it's got a 3.3V regulator onboard.

I would suggest you move over to SPI, if you are sending any more than a kb of data. It will be much faster than serial.

Thank you for your quick reply MorganS. Right now I would just be happy with one byte of data :)

Once I have managed to get Serial to work, I will probably look into the SPI alternative....

Do you think I need any other connections or components to get this to work? So right now I have 4 wires running between the Arduino and the CH376S module.

All of these surface mount components on the module are so small, I am not sure if I should be seeing an LED light up on the module when powered by the Arduino ??

I have attached a section of the datasheet (that I linked to in my original post).
I need a technical mind to help explain it to me. It looks like there are a few more connections that need to be made on D4, D5, and D6 of the CH376 module, and perhaps a pull up resistor on the INT pin.

Seems like a lot of connections just to communicate using UART/Serial ?

Ok - managed to get this to work using Serial Communication.

It only needs the 4 wires. TX, RX, 5V and GND

Am not exactly sure what the other pins actually do. I get the feeling that the INT pin is required if you plan to have a long wire between the Arduino (MCU) and the CH376S module. The other pins seem to be related to communication settings, however I was happy with the default.

Documentation for this module is sketchy, and I managed to piece something together from various web pages around the internet.

I knew that there was a voltage regulator onboard, however, sometimes these are activated by a jumper or something. So I connected everything up, crossed my fingers and ran my sketch and hoped for the best...and Voila !! It worked.

Once I play around with it some more - I will write a tutorial, and post a link to it here for others who happen to find themselves in the same boat I was in...


Ok - I have finally finished my tutorial for this module.

It only shows you how to connect and communicate with the CH376S USB disk read/write module using an Arduino UNO. It shows how to communicate with the module using Serial Communication.

When I get better at this game, I may re-visit this module and work out how to interface using SPI, however at least this is a start.

Here is the link to my tutorial:

I hope this helps you.

Sir is it possible to copy a file from one flash drive to another using two of ch376 and arduino atmega2560? Thnx.

3 Years late but thanks for your example program. I am having issues with opening files. If the example program creates the file, the program can read it back and send it to the serial port. After creating a file in the program, If I move the USB drive to my PC, I can see the file name in Windows but cannot open the file (Windows says the file does not exist). If I create the file on Windows, the Arduino program does not see the file and cannot open it.

Do you have any suggestions or have you ever tried this before? Is it a CH376 issue?




I read the messages there. I have a 2GB Sandisk and no format type from Windows 7 helps.

ljbeng: If that link is an answer to my query we are in a Catch-22. That's' the program that I'm using...

You'll have to contact the person who wrote the program.

I don't have the CH376S (it is intriguing) so I can't help further.


The maximum speed I can reach when using the ch376 series is 115200 bps. I need to communicate as SPI so I can read larger files faster. SPI briefly mentioned in the datasheet, but did not provide details. Does anyone know of it as SPI or have a library?