Arnov Sharma
Published © MIT

Weird Formfactor NES Game Controller

Made a Retro Game Controller with a different form factor.

BeginnerFull instructions provided1 hour199

Things used in this project

Story

Read more

Custom parts and enclosures

Left Grip

right hand grip

Schematics

sch

Code

code

C/C++
#include <Gamepad.h>

Gamepad gp;

void setup() {
  
  pinMode(0,  INPUT_PULLUP); //LEFTBUTTON
  pinMode(1,  INPUT_PULLUP); //RIGHTBUTTON
  pinMode(2,  INPUT_PULLUP); //UP
  pinMode(3,  INPUT_PULLUP); //DOWN
  pinMode(4,  INPUT_PULLUP); //LEFT
  pinMode(5,  INPUT_PULLUP); //RIGHT
  pinMode(6,  INPUT_PULLUP); //A
  pinMode(7,  INPUT_PULLUP); //B  
  
}

void loop() {
  
  int UPLEFT, UPRIGHT, UP, DOWN, LEFT, RIGHT, RIGHTBUTTON, LEFTBUTTON, A, B, START, STOP;

  RIGHTBUTTON = digitalRead(0);
  LEFTBUTTON = digitalRead(1);
  UP = digitalRead(2);
  DOWN = digitalRead(3);
  LEFT = digitalRead(4);
  RIGHT = digitalRead(5);
  A = digitalRead(6);
  B = digitalRead(7);
  START = digitalRead(8);
  STOP = digitalRead(9);
  
      
  if(UP == LOW)
    gp.setButtonState(2, true);
  else
    gp.setButtonState(2, false);

  if(DOWN == LOW)
    gp.setButtonState(3, true);
  else
    gp.setButtonState(3, false);    

  if(LEFT == LOW)
    gp.setButtonState(4, true);
  else
    gp.setButtonState(4, false); 

  if(RIGHT == LOW)
    gp.setButtonState(5, true);
  else
    gp.setButtonState(5, false);     

  if(RIGHTBUTTON == LOW)
    gp.setButtonState(1, true);
  else
    gp.setButtonState(1, false);   

  if(LEFTBUTTON == LOW)
    gp.setButtonState(0, true);
  else
    gp.setButtonState(0, false);     

  if(A == LOW)
    gp.setButtonState(6, true);
  else
    gp.setButtonState(6, false);  

  if(B == LOW)
    gp.setButtonState(7, true);
  else
    gp.setButtonState(7, false);  

  delay(20);
}

Credits

Arnov Sharma
329 projects • 334 followers
Just your average MAKER
Contact

Comments

Please log in or sign up to comment.