With this project, You can cheat in FPS games.
- Y] USB host basic api
- Y] HID Host
- Y] HID Host Mouse
- Y] HID Host Keyboard
- Y] Optimize HID Host code
- Y] HID Device(composite device[mouse, keyboard])
- Y] Finish HID data (keyboard and mouse) transmission
- Y] HID data dynamic modification
- Y] HID Report Descriptor Clone
- T] Optimize HID Device Code
- T] Solve the problem that Initialization Delay of CH375 is not enough
- T] define a level for timeout error log
- T] improve auto gun press data
Y: done X: doing T: todo
-
Hardware
- stm32-f4discovery
- CH375 (USB Bus interface Module) [you need two, one for mouse, other for keyboard]
-
Develop Environment
- Ubunutu
- STM32CubeMX
- openocd (For stlink debug progame)
- gcc-arm-none-eabi
- vscode (with Arm extensions)
- USB docs from USB offical website (www.usb.org).
usb_20.pdf
- HID report descriptors from this website.
https://eleccelerator.com/tutorial-about-usb-hid-report-descriptors/
You can all so use the HID Descriptor Tool from usb.org https://www.usb.org/document-library/hid-descriptor-tool
- libusb (API design, constant definition referencing)
offical website: https://libusb.info/ GitHub Repository: https://github.com/libusb/libusb
- CH375 offical documents (offical website is http://www.wch.cn/products/CH375.html, you can find more docs from here)
CH375DS1.PDF, CH375DS2.PDF
- 0951:16D2 HyperX Alloy FPS Pro Mechanical Gaming Keyboard, control transfer error(token send failed) after set configuration.
- Drivers
- ch375: (include libraries, usbhost, usbhid, hidkeyboard, hidmouse)
- ...
- Middlewares/ST/STM32_USB_Device_Library
- Class/CustomHID
- CH375A
- USART2
- PE14 (Int Pin)
- CH375B
- USART3
- PE15 (Int Pin)
- Log Out
- UART4