/HID_Arduino

HID mouse emulation by host shield

Primary LanguageC++

Arduino HID mouse

ENG

This repository contains HID mouse emulation for the AI Aimbot.

  • To get started, acquire an Arduino Leonardo R3 ATMEGA32U4, ARDUINO USB HOST SHIELD, and a soldering iron if you don't have one.

  • Download and install the Arduino IDE.

  • Download and unpack the repository archive to C:\Users\your_username\Documents\Arduino\HID_Arduino

  • Download and unpack this archive into C:\Users\your_username\Documents\Arduino\libraries\USB_Host_Shield_2.0-1.6.2

  • Solder 3 contacts on the board to increase the voltage as shown in the image.


  • Open the file C:\Users\your_username\Documents\Arduino\HID_Arduino\HID_Arduino.ino

  • Connect the ARDUINO USB HOST SHIELD to the Arduino Leonardo and connect the ARDUINO to the PC.

  • In the Arduino IDE, select the device's COM port and upload the script to the Arduino. (click the right arrow button).

  • Connect the mouse to the host shield.

  • Test the mouse for functionality. If everything works as it should, then you have been successful and lucky with the mouse model. But if something does not work correctly, continue to the next steps.

  • Open the file C:\Users\your_username\Documents\Arduino\libraries\USB_Host_Shield_2.0-1.6.2\settings.h in notepad.

  • Change #define ENABLE_UHS_DEBUGGING 0 to #define ENABLE_UHS_DEBUGGING 1

  • Upload the script to the device.

  • In the Arduino IDE, open the Tools->Serial Monitor tab.


  • Select 9600 baud.


  • You should see the data that the mouse sends to the host shield.

  • Switch to the hidcustom.h tab and look at the struct MYMOUSEINFO structure

  • In my case, it looks like this:


  • For me, the mouse button bytes are transmitted first, but your data might be different, like the mouse coordinates on the X-axis, for example.

  • Then you will need to change the structure of MYMOUSEINFO so that the variable uint16_t dX; is at the beginning.

  • In some cases, you will need to change uint16_t on the X axis or uint16_t on the Y axis to uint8_t .

  • Do this with all the output data and normalize the structure.

  • Do not forget to disable the #define ENABLE_UHS_DEBUGGING 0 in settings.h after completing all the steps.

RU

Этот репозиторий содержит HID эмуляцию мыши для ИИ Аимбота.

  • Для начала приобритите Arduino Leonardo R3 ATMEGA32U4, ARDUINO USB HOST SHIELD и паяльник если его нет.

  • Скачайте и установите Arduino ide.

  • Скачайте и распакуйте архив скачанный с репозитория в C:\Users\ваше_имя_пользователя\Documents\Arduino\HID_Arduino

  • Скачайте и распакуйте этот архив и распакуйте в C:\Users\ваше_имя_пользователя\Documents\Arduino\libraries\USB_Host_Shield_2.0-1.6.2

  • Спаяйте на плате 3 контакта чтобы получилось как на изображении. (Для увеличения напряжения)


  • Откройте файл C:\Users\ваше_имя_пользователя\Documents\Arduino\HID_Arduino\HID_Arduino.ino

  • Подключите плату ARDUINO USB HOST SHIELD к Arduino Leonardo и подключите к ПК ARDUINO.

  • В Arduino ide выберите COM порт устройства и загрузите скрипт на ардуино. (кнопка стрелочка в право).

  • Подключите мышь к host shield.

  • Проверьте мышь на работоспособность. Если всё работает как нужно то у вас всё получилось и повезло с моделью мыши. Но если что-то работает не правильно вам дальше.

  • Откройте в блокноте файл C:\Users\ваше_имя_пользователя\Documents\Arduino\libraries\USB_Host_Shield_2.0-1.6.2\settings.h

  • Измените #define ENABLE_UHS_DEBUGGING 0 на #define ENABLE_UHS_DEBUGGING 1

  • Загрузите скрипт на устройство.

  • В Arduino ide откройте вкладку Tools->Serial Monitor.


  • Выберите 9600 baud


  • Вы должны увидеть данные которые пересылает мышка на host shield.

  • Переключитесь на вкладку hidcustom.h и взгляните на структуру struct MYMOUSEINFO

  • В моем случаи это выглядит так:


  • У меня в начале пересылаются байты кнопок мыши, но у вас может пересылаться что-то другое, к примеру координаты мыши по X-горизонтали.

  • Тогда вам нужно будет изменить структуру MYMOUSEINFO так что-бы в начале стояла переменная uint16_t dX;.

  • В некоторых случаях нужно будет изменить uint16_t по оси X или uint16_t по оси Y на uint8_t .

  • Проделайте это со всеми выходными данными и приведите структуру в норму.

  • Не забудьте отключить после всех проделанных действий #define ENABLE_UHS_DEBUGGING 0 в settings.h.