Gamerino features:

  • 2 analog stick
  • 1 eight direction hat switch
  • 13 buttons
    • 4 cross buttons;
    • 4 shoulder buttons;
    • 5 special buttons (home,select,...).
  • 2 optional proportional analog trigger buttons;
  • 2 optional haptic actuator drivers.

I decided to use discrete buttons because I really like the touch feeling of such components. but of course discrete buttons are pretty anachronistic if compared with today typical solution but using such components allows to use the board/gamepad naked (i.e. without a 3D printed case).

ALPS Alpine analog stick are also one of my best-loved HMI components ... and they're quite cheap.

The total number of GPIOs available on ATMega32U4 are not enough for the full set of digital / analog gamepad inputs for this reason I decided to multiplex digital inputs (buttons, hat switch) into an I2C GPIO expander.

LT2, RT2 inputs are collected as analog inputs even it they are buttons: such lines are also coming from two connectors. This's the entry point for the actual analog signal (from a potentiometer or hall effect sensors).

In the lower part of the board I placed two connectors for, optional, aptic actuators.

TODO:

  • find an alternate component to RKJXS1004001
  • change RKJXU1210006 with RKJX21224001