Хочу сделать геймпад на ардуино про микро

Хочу сделать так: один джойстик выполняет функция ходьбы влево, вправо, вперед, назад, его пины такие: ось X - A3, ось Y - A2 и SW - 2. другой джойстик движение оси камеры по оси икс и игрик, пины такие: ось X - A1,ось Y - A0 и SW - 3. Все запитано и заземлено.
Однако компьютер видит плату как HID-устройство через раз (в Arduino IDE я ставил свою плату как Leonardo, и как Micro, работал и тот, и тот вариант, но через раз). Как это пофиксить?
Использовал библиотеку Joystick, вот ссылка на гитхаб: GitHub - MHeironimus/ArduinoJoystickLibrary: An Arduino library that adds one or more joysticks to the list of HID devices an Arduino Leonardo or Arduino Micro can support..
Вот код:

#include <Joystick.h>

// Определяем пины для кнопок и джойстиков
// Джойстик движения
const int moveJoystickXAxis = A3;
const int moveJoystickYAxis = A2;
const int moveJoystickButton = 2;

// Джойстик камеры
const int cameraJoystickXAxis = A1;
const int cameraJoystickYAxis = A0;
const int cameraJoystickButton = 3;

// Инициализируем Joystick библиотеку
Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_GAMEPAD,
                   6, 0, true, true, false, false, false, false, false, false, false, false, false);

void setup() {
  // Инициализируем пины кнопок
  pinMode(moveJoystickButton, INPUT_PULLUP);
  pinMode(cameraJoystickButton, INPUT_PULLUP);
  
  // Инициализируем джойстик
  Joystick.begin();
}

void loop() {
  // Обработка кнопок джойстиков
  Joystick.setButton(0, !digitalRead(moveJoystickButton));   // Кнопка движения
  Joystick.setButton(1, !digitalRead(cameraJoystickButton)); // Кнопка камеры

  // Обработка осей джойстика движения
  int moveX = analogRead(moveJoystickXAxis);
  int moveY = analogRead(moveJoystickYAxis);
  
  moveX = map(moveX, 0, 1023, -127, 127);
  moveY = map(moveY, 0, 1023, -127, 127);
  
  Joystick.setXAxis(moveX);
  Joystick.setYAxis(moveY);

  // Обработка осей джойстика камеры
  int cameraX = analogRead(cameraJoystickXAxis);
  int cameraY = analogRead(cameraJoystickYAxis);
  
  cameraX = map(cameraX, 0, 1023, -127, 127);
  cameraY = map(cameraY, 0, 1023, -127, 127);
  
  Joystick.setRxAxis(cameraX); // Используем RX и RY для второй оси
  Joystick.setRyAxis(cameraY);

  delay(10);
}