CH375B module. It is usually supplied with a 2 way jumper mounted on TXD and RXD pin. The TXD RXD pins are located next to the female USB receptacle. Please unmount the jumper before use. |
- Get the following components:
- Arduino Nano
- Male to female jumper wires - 4 pieces
- USB Mouse
- CH375B module
- Download MeUsb.cpp and MeUsb.h from https://github.com/xeecos/Me-USB-Host
- On your Windows computer which already has arduino installed, go to your documents folder. There you will find a folder called arduino and within that another folder called libraries. Inside this libraries folder create a new folder called "MeUsb"
- Place MeUsb.cpp and MeUsb.h in this folder
- In the arduino\libraries folder, create another folder called "SoftwareSerial_fix"
- And in this folder download and place SoftwareSerial_fix.cpp and SoftwareSerial_fix.h from the same link as above.
- Assemble the circuit on the bread board as follows:
- +5V of Arduino Nano to +5V of CH375B
- GND of Arduino Nano to GND of CH375B
- D10 of Arduino Nano to TXD of CH375B
- D9 of Arduino Nano to RXD of CH375B
Connecting the CH375B to Arduino Nano Connecting the CH375B to Arduino Nano - Start arduino and open a new sketch. Copy the source code into it and download it into the arduino nano.
- Once the code is downloaded successfully, start serial monitor on your PC with baud rate set to 115200 and observe the pattern of 4 bytes that are being received.
Every time you move the mouse, 4 bytes are sent to the Arduino Nano.
Deciphering the 4 bytes received from CH375B when a mouse is connected to it |
You can CH375B module in India from www.vishaworld.com
To interface a USB Joystick, have a look at Me-USB-Host.ino available at https://github.com/xeecos/Me-USB-Host
Source Code to interface USB Mouse.To interface a USB Joystick, have a look at Me-USB-Host.ino available at https://github.com/xeecos/Me-USB-Host
#include <Arduino.h> #include "SoftwareSerial_fix.h" #include "MeUsb.h" MeUsb usb(10,9); void setup() { Serial.begin(115200); usb.init(USB1_0); } void loop() { if(!usb.device_online) { usb.probeDevice(); delay(100); } else { int len = usb.host_recv(); if (len == 4){ Serial.print(usb.RECV_BUFFER[0],DEC); Serial.print(','); Serial.print(usb.RECV_BUFFER[1],DEC); Serial.print(','); Serial.print(usb.RECV_BUFFER[2],DEC); Serial.print(','); Serial.print(usb.RECV_BUFFER[3],DEC); Serial.print('\n'); } } }
Hi Anurag,
ReplyDeleteVery Nice and simple Tutorial!
I have got a question though.
I have tried it with 2 different mice (1 hp which works, and a cheap chines mouse which doesn't work)
Do you have any idea why the 2nd mouse wouldn't work?
Is there firmware in the CH375 that recognises the mouse, and if it doesn't recognise it, Then it is tough luck?
Or should it work with all USB devices (I really like to use it with an old USB touchscreen (Which doesn't give any reaction)
Regards,
Albert
Hey Albert,
ReplyDeleteNo idea as to why the second mouse is not working.
You can try connecting your second mouse to your windows PC and use some USB packet sniffer like:
http://www.eltima.com/products/usb-port-monitor/
and check if it is sending the same packets as the first mouse.
hello sir,,how can i use this module with avr and copy bmp image through this,,please give instructions.. thank you :-)
ReplyDeleteFix you shared code --> if (len == 4){ to if (len != 0){
ReplyDeletehow to write into pendrive sensor value
ReplyDeleteI think you should use CH376 chip for writing to USB Flash drives:
ReplyDeletehttps://www.mpja.com/download/ch376ds1.pdf
Hello i wanted to write the sensor value to the pen drive. i am not able to do it
ReplyDeletei have already purchased CH375B
ReplyDeleteWe are also getting the same issue.......i too can't create file or write data to USB Pendrive....kindly advice me
ReplyDeletei tried to do this but only prints "101" several times
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteThank you for the example.
ReplyDeleteIt took me 1 week to get it working.
Thge problem seems to be in using a Chinese clone Arduino. With a very old original Uno it works!
Butonly with 1 mouse (logitech), not the HP one. And you must move the mouse to get data.
But... now I can start working on the USB serial protocol I need to get my Dream Cheeky Thunder working :)
I wondered what you changed in the Software Serial library. I had a look at the differences but it puzzles me. I thought you added the extra 9th bit needed for communicating with the 375 I cannot find that. Could you elaborate please?
s it possible to read a keyboard with this module?
ReplyDeleteJose,
ReplyDeleteI got some response from a keyboard (not all I tried). But I think there is still some stuff missing. That might be the reasin that no all mouses work properly.
Someone with more experience with USB HID could maybe elaborate.
If I find time I will try to dive into the subject because the chip itself is capable of connecting to most USB devices.