The main idea is to make a PC controller using Arduino Nano 33 BLE, slim buttons, tactile buttons, vertical tactile buttons and analog sticks based on the designs below.
Exported from schematic.json
- The Arduino digital pins are put as INPUT_PULLUP so that when the button is closed, the signal goes to low in the digital input to register a press.
- The L2 and R2 buttons are analog while the rest of them should be digital. The L2 and R2 inputs would be using Force-Sensitive Resistors to allows the analog value to change the more the button is pushed. An alternative approach would be to use a potentiometer and turning mechanism when the button is pushed.
- Based on the Arduino pinout diagram, I am connecting the 3.3V and GND to the +ve and -ve ends of the battery to power the Arduino.
- A voltage regulator should be put in this schematic.
The PCB designed from schematic is also included with the Gerber files. It most likely doesn't follow best practices for routing connections and needs to be tested.
- The intention is that the pads meant for the Arduino line up with the pins on the board and can be used without having to solder it.
- Later work needs to be done to directly connect a nRF52840 microcontroller instead of the whole Arduino board.
Exported from buttons.drawio
- The button holes are meant to be able to be turned 45° clockwise to switch from Nintendo layout to Xbox layout.
- The size of the holes should be different so that even if it looks similar the wrong button shouldn't able to go in the wrong hole.
Use Matthew Heironimus' Arduino Joystick Library to make the Arduino Sketch that will act as the firmware for the controller.
Note: Currently I don't have an Arduino Nano 33 BLE available so I am using an Arduino Leonardo to test my code.