WII U RASPBERRY PI 3 FINISHED

Want to show off your own project? Want to keep a build log of it? Post it here!
User avatar
VeteranGamer
Posts: 1738
Joined: Thu Jan 26, 2017 11:12 am
Location: London, UK
Has thanked: 528 times
Been thanked: 909 times

Re: WII U RASPBERRY PI 3 FINISHED

Post by VeteranGamer » Tue Nov 20, 2018 6:21 am

banjokazooie wrote:
Tue Nov 20, 2018 6:15 am
Helder wrote:
Tue Nov 20, 2018 3:42 am
Is that power board that copies the Wii U power board open source? If it is I can add a circuit that I used on the mintyPi v3 that turns the pi on and off with a button press. You need a way to do a safe shutdown though so is there a button specific to this or a button combo for this?
The board was not released as a pcb file but people allready made a copy of the layout a published it as their own version. I can upload the original eagle file if someone wants to tinker with it.

thanks
that would be great....

would it also be too much to ask, to include any parts lbr (such as the tactile buttons)....
as this would also help....


thank you...


.

User avatar
VeteranGamer
Posts: 1738
Joined: Thu Jan 26, 2017 11:12 am
Location: London, UK
Has thanked: 528 times
Been thanked: 909 times

Re: WII U RASPBERRY PI 3 FINISHED

Post by VeteranGamer » Tue Nov 20, 2018 12:20 pm

banjokazooie wrote:
Sun Oct 09, 2016 11:14 am

Teensy Update 2:

Home button action modified to switch between Joystick and Keyboard. Now usable in Amiga emulator. Joystick buttons reassigned to match actual wiring.

Code: Select all

const int  MODE = 15;    // the pin that the pushbutton is attached to
const int LED = 11;

int buttonPushCounter = 0;   // counter for the number of button presses
int buttonState = 0;         // current state of the button
int lastButtonState = 0;

void setup() {


  pinMode(0, INPUT_PULLUP);       // 01 Left Shoulder
  pinMode(1, INPUT_PULLUP);       // 02 Lelf Trigger
  pinMode(2, INPUT_PULLUP);       // 03 Right
  pinMode(3, INPUT_PULLUP);       // 04 Left
  pinMode(4, INPUT_PULLUP);       // 05 Up
  pinMode(5, INPUT_PULLUP);       // 06 Down
  pinMode(6, INPUT_PULLUP);       // 07 B
  pinMode(7, INPUT_PULLUP);       // 08 A
  pinMode(8, INPUT_PULLUP);       // 09 Right Trigger
  pinMode(LED, OUTPUT);           // LED
  pinMode(12, INPUT_PULLUP);      // 13 Start
  pinMode(13, INPUT_PULLUP);      // 14 Select
  pinMode(14, INPUT_PULLUP);      // 15 Y
  pinMode(MODE, INPUT_PULLUP);    // HOME Button
  pinMode(18, INPUT_PULLUP);      // 19 Left Joystick Button
  pinMode(19, INPUT_PULLUP);      // 20 Right Joystick Button
  pinMode(22, INPUT_PULLUP);      // 23 Right Shoulder
  pinMode(23, INPUT_PULLUP);      // 24 X

//  Serial.begin(9600);

 }

void loop_joystick() {

if (digitalRead(0) == LOW) 
  {
        Joystick.button(1, 1);
  }
  else
  {
    Joystick.button(1, 0);
    }

if (digitalRead(1) == LOW)
  {
      Joystick.button(2, 1);
  }
  else
  {
      Joystick.button(2, 0);
  }

if (digitalRead(2) == LOW)
  {
  Joystick.button(3, 1);
  }
  else
  {
  Joystick.button(3, 0);
  }

if (digitalRead(3) == LOW)
  {
  Joystick.button(4, 1);
  }
  else
  {
  Joystick.button(4, 0);
  }

if (digitalRead(4) == LOW)
  {
  Joystick.button(5, 1);
  }
  else
  {
  Joystick.button(5, 0);
  }

if (digitalRead(5) == LOW)
  {
  Joystick.button(6, 1);
  }
  else
  {
  Joystick.button(6, 0);
  }

if (digitalRead(6) == LOW)
  {
  Joystick.button(7, 1);
  }
  else
  {
  Joystick.button(7, 0);
  }

if (digitalRead(7) == LOW)
  {
  Joystick.button(8, 1);
  }
  else
  {
  Joystick.button(8, 0);
  }

if (digitalRead(8) == LOW)
  {
  Joystick.button(9, 1);
  }
  else
  {
  Joystick.button(9, 0);
  }

if (digitalRead(12) == LOW)
  {
  Joystick.button(13, 1);
  }
  else
  {
  Joystick.button(13, 0);
  }

if (digitalRead(13) == LOW)
  {
  Joystick.button(14, 1);
  }
  else
  {
  Joystick.button(14, 0);
  }
  
if (digitalRead(14) == LOW)
  {
  Joystick.button(15, 1);
  }
  else
  {
  Joystick.button(15, 0);
  }
  

if (digitalRead(18) == LOW)
  {
  Joystick.button(19, 1);
  }
  else
  {
  Joystick.button(19, 0);
  }

if (digitalRead(19) == LOW)
  {
  Joystick.button(20, 1);
  }
  else
  {
  Joystick.button(20, 0);
  }

if (digitalRead(22) == LOW)
  {
  Joystick.button(23, 1);
  }
  else
  {
  Joystick.button(23, 0);
  }

if (digitalRead(23) == LOW)
  {
  Joystick.button(24, 1);
  }
  else
  {
  Joystick.button(24, 0);
}

  int rX = analogRead(4);
    rX = (rX - 512) * 1.5 + 512;
  if (rX > 1023)
    rX=1023;  
  if (rX < 0)
    rX = 0;
  
  int rY = analogRead(5);
    rY = (rY - 512) * 1.5 + 512;
  if (rY > 1023)
    rY=1023;   
  if (rY < 0)
    rY = 0;
    rY=abs(1023-rY);

  int rL = analogRead(0);
    rL = (rL - 512) * 1.5 + 512;
  if (rL > 1023)
    rL=1023;  
  if (rL < 0)
    rL = 0;
  
  int rR = analogRead(1);
    rR = (rR - 512) * 1.5 + 512;
  if (rR > 1023)
    rR=1023;   
  if (rR < 0)
    rR = 0;
    //rR=abs(1023-rR);
 
  Joystick.X(rX);
  Joystick.Y(rY);
  Joystick.sliderLeft(rL);
  Joystick.sliderRight(rR);
}

  
void loop_keyboard() {

    if (digitalRead(4) == LOW)
  {
    Keyboard.press(KEY_UP);
  }
  else
  {
    Keyboard.release(KEY_UP);
   }
   
  if (digitalRead(5) == LOW)
  {
    Keyboard.press(KEY_DOWN);
  }
  else
  {
    Keyboard.release(KEY_DOWN);
  }
   
  if (digitalRead(3) == LOW)
  {
    Keyboard.press(KEY_LEFT);
  }
  else
  {
    Keyboard.release(KEY_LEFT);
  }
  
  if (digitalRead(2) == LOW)
  {
    Keyboard.press(KEY_RIGHT);
  }
  else
  {
    Keyboard.release(KEY_RIGHT);
  }

  //buttons
  if (digitalRead(0) == LOW)
  {
    Keyboard.press(KEY_ENTER);
  }
  else
  {
    Keyboard.release(KEY_ENTER);
  }
  if (digitalRead(1) == LOW)
  {
    Keyboard.press(KEY_ESC);
  }
  else
  {
    Keyboard.release(KEY_ESC);
  }

if (digitalRead(22) == LOW)
  {
    Keyboard.press(KEY_LEFT_CTRL);
  }
  else
  {
    Keyboard.release(KEY_LEFT_CTRL);
  }

  if (digitalRead(8) == LOW)
  {
    Keyboard.press(KEY_LEFT_ALT);
  }
  else
  {
    Keyboard.release(KEY_LEFT_ALT);
  }

if (digitalRead(7) == LOW)
  {
    Keyboard.press(KEY_A);
  }
  else
  {
    Keyboard.release(KEY_A);
  }
  if (digitalRead(6) == LOW)
  {
    Keyboard.press(KEY_B);
  }
  else
  {
    Keyboard.release(KEY_B);
  }
  if (digitalRead(14) == LOW)
  {
    Keyboard.press(KEY_Y);
  }
  else
  {
    Keyboard.release(KEY_Y);
  }
  if (digitalRead(23) == LOW)
  {
    Keyboard.press(KEY_X);
  }
  else
  {
    Keyboard.release(KEY_X);
  }

  if (digitalRead(12) == LOW)
  {
    Keyboard.press(KEY_F12);
  }
  else
  {
    Keyboard.release(KEY_F12);
  }
   if (digitalRead(13) == LOW)
  {
    Keyboard.press(KEYPAD_5);
  }
  else
  {
    Keyboard.release(KEYPAD_5);
  }

}


void loop() {

  buttonState = digitalRead(MODE);
  if (buttonState != lastButtonState) {
  if (buttonState == HIGH) {
    buttonPushCounter++;
//    Serial.println("on");
//      Serial.print("number of button pushes:  ");
//      Serial.println(buttonPushCounter);
} 
    else {
//  Serial.println("off");
    }
  }
  lastButtonState = buttonState;
  
 if (buttonPushCounter % 2 == 0) {
    digitalWrite(LED, HIGH);
  } else {
   digitalWrite(LED, LOW);
  }
  

    if (digitalRead(LED) == LOW)
  {
     loop_joystick();
  }
  else
  {
    
     loop_keyboard();
  }
  }


I've just been wiring up my Teensy....
and there isnt a up to date wiring diagram if using the script above....
(there could be, but i may have missed it)

heres one that i'm using...
and it may be of assistance to others....


Image


i havent tested it yet (so apologies if theres any errors)




.

User avatar
banjokazooie
Posts: 211
Joined: Thu May 19, 2016 1:14 pm
Location: https://t.me/pump_upp
Been thanked: 171 times
Contact:

Re: WII U RASPBERRY PI 3 FINISHED

Post by banjokazooie » Tue Nov 20, 2018 4:04 pm

VeteranGamer wrote:
Tue Nov 20, 2018 12:20 pm
banjokazooie wrote:
Sun Oct 09, 2016 11:14 am

Teensy Update 2:

Home button action modified to switch between Joystick and Keyboard. Now usable in Amiga emulator. Joystick buttons reassigned to match actual wiring.

Code: Select all

const int  MODE = 15;    // the pin that the pushbutton is attached to
const int LED = 11;

int buttonPushCounter = 0;   // counter for the number of button presses
int buttonState = 0;         // current state of the button
int lastButtonState = 0;

void setup() {


  pinMode(0, INPUT_PULLUP);       // 01 Left Shoulder
  pinMode(1, INPUT_PULLUP);       // 02 Lelf Trigger
  pinMode(2, INPUT_PULLUP);       // 03 Right
  pinMode(3, INPUT_PULLUP);       // 04 Left
  pinMode(4, INPUT_PULLUP);       // 05 Up
  pinMode(5, INPUT_PULLUP);       // 06 Down
  pinMode(6, INPUT_PULLUP);       // 07 B
  pinMode(7, INPUT_PULLUP);       // 08 A
  pinMode(8, INPUT_PULLUP);       // 09 Right Trigger
  pinMode(LED, OUTPUT);           // LED
  pinMode(12, INPUT_PULLUP);      // 13 Start
  pinMode(13, INPUT_PULLUP);      // 14 Select
  pinMode(14, INPUT_PULLUP);      // 15 Y
  pinMode(MODE, INPUT_PULLUP);    // HOME Button
  pinMode(18, INPUT_PULLUP);      // 19 Left Joystick Button
  pinMode(19, INPUT_PULLUP);      // 20 Right Joystick Button
  pinMode(22, INPUT_PULLUP);      // 23 Right Shoulder
  pinMode(23, INPUT_PULLUP);      // 24 X

//  Serial.begin(9600);

 }

void loop_joystick() {

if (digitalRead(0) == LOW) 
  {
        Joystick.button(1, 1);
  }
  else
  {
    Joystick.button(1, 0);
    }

if (digitalRead(1) == LOW)
  {
      Joystick.button(2, 1);
  }
  else
  {
      Joystick.button(2, 0);
  }

if (digitalRead(2) == LOW)
  {
  Joystick.button(3, 1);
  }
  else
  {
  Joystick.button(3, 0);
  }

if (digitalRead(3) == LOW)
  {
  Joystick.button(4, 1);
  }
  else
  {
  Joystick.button(4, 0);
  }

if (digitalRead(4) == LOW)
  {
  Joystick.button(5, 1);
  }
  else
  {
  Joystick.button(5, 0);
  }

if (digitalRead(5) == LOW)
  {
  Joystick.button(6, 1);
  }
  else
  {
  Joystick.button(6, 0);
  }

if (digitalRead(6) == LOW)
  {
  Joystick.button(7, 1);
  }
  else
  {
  Joystick.button(7, 0);
  }

if (digitalRead(7) == LOW)
  {
  Joystick.button(8, 1);
  }
  else
  {
  Joystick.button(8, 0);
  }

if (digitalRead(8) == LOW)
  {
  Joystick.button(9, 1);
  }
  else
  {
  Joystick.button(9, 0);
  }

if (digitalRead(12) == LOW)
  {
  Joystick.button(13, 1);
  }
  else
  {
  Joystick.button(13, 0);
  }

if (digitalRead(13) == LOW)
  {
  Joystick.button(14, 1);
  }
  else
  {
  Joystick.button(14, 0);
  }
  
if (digitalRead(14) == LOW)
  {
  Joystick.button(15, 1);
  }
  else
  {
  Joystick.button(15, 0);
  }
  

if (digitalRead(18) == LOW)
  {
  Joystick.button(19, 1);
  }
  else
  {
  Joystick.button(19, 0);
  }

if (digitalRead(19) == LOW)
  {
  Joystick.button(20, 1);
  }
  else
  {
  Joystick.button(20, 0);
  }

if (digitalRead(22) == LOW)
  {
  Joystick.button(23, 1);
  }
  else
  {
  Joystick.button(23, 0);
  }

if (digitalRead(23) == LOW)
  {
  Joystick.button(24, 1);
  }
  else
  {
  Joystick.button(24, 0);
}

  int rX = analogRead(4);
    rX = (rX - 512) * 1.5 + 512;
  if (rX > 1023)
    rX=1023;  
  if (rX < 0)
    rX = 0;
  
  int rY = analogRead(5);
    rY = (rY - 512) * 1.5 + 512;
  if (rY > 1023)
    rY=1023;   
  if (rY < 0)
    rY = 0;
    rY=abs(1023-rY);

  int rL = analogRead(0);
    rL = (rL - 512) * 1.5 + 512;
  if (rL > 1023)
    rL=1023;  
  if (rL < 0)
    rL = 0;
  
  int rR = analogRead(1);
    rR = (rR - 512) * 1.5 + 512;
  if (rR > 1023)
    rR=1023;   
  if (rR < 0)
    rR = 0;
    //rR=abs(1023-rR);
 
  Joystick.X(rX);
  Joystick.Y(rY);
  Joystick.sliderLeft(rL);
  Joystick.sliderRight(rR);
}

  
void loop_keyboard() {

    if (digitalRead(4) == LOW)
  {
    Keyboard.press(KEY_UP);
  }
  else
  {
    Keyboard.release(KEY_UP);
   }
   
  if (digitalRead(5) == LOW)
  {
    Keyboard.press(KEY_DOWN);
  }
  else
  {
    Keyboard.release(KEY_DOWN);
  }
   
  if (digitalRead(3) == LOW)
  {
    Keyboard.press(KEY_LEFT);
  }
  else
  {
    Keyboard.release(KEY_LEFT);
  }
  
  if (digitalRead(2) == LOW)
  {
    Keyboard.press(KEY_RIGHT);
  }
  else
  {
    Keyboard.release(KEY_RIGHT);
  }

  //buttons
  if (digitalRead(0) == LOW)
  {
    Keyboard.press(KEY_ENTER);
  }
  else
  {
    Keyboard.release(KEY_ENTER);
  }
  if (digitalRead(1) == LOW)
  {
    Keyboard.press(KEY_ESC);
  }
  else
  {
    Keyboard.release(KEY_ESC);
  }

if (digitalRead(22) == LOW)
  {
    Keyboard.press(KEY_LEFT_CTRL);
  }
  else
  {
    Keyboard.release(KEY_LEFT_CTRL);
  }

  if (digitalRead(8) == LOW)
  {
    Keyboard.press(KEY_LEFT_ALT);
  }
  else
  {
    Keyboard.release(KEY_LEFT_ALT);
  }

if (digitalRead(7) == LOW)
  {
    Keyboard.press(KEY_A);
  }
  else
  {
    Keyboard.release(KEY_A);
  }
  if (digitalRead(6) == LOW)
  {
    Keyboard.press(KEY_B);
  }
  else
  {
    Keyboard.release(KEY_B);
  }
  if (digitalRead(14) == LOW)
  {
    Keyboard.press(KEY_Y);
  }
  else
  {
    Keyboard.release(KEY_Y);
  }
  if (digitalRead(23) == LOW)
  {
    Keyboard.press(KEY_X);
  }
  else
  {
    Keyboard.release(KEY_X);
  }

  if (digitalRead(12) == LOW)
  {
    Keyboard.press(KEY_F12);
  }
  else
  {
    Keyboard.release(KEY_F12);
  }
   if (digitalRead(13) == LOW)
  {
    Keyboard.press(KEYPAD_5);
  }
  else
  {
    Keyboard.release(KEYPAD_5);
  }

}


void loop() {

  buttonState = digitalRead(MODE);
  if (buttonState != lastButtonState) {
  if (buttonState == HIGH) {
    buttonPushCounter++;
//    Serial.println("on");
//      Serial.print("number of button pushes:  ");
//      Serial.println(buttonPushCounter);
} 
    else {
//  Serial.println("off");
    }
  }
  lastButtonState = buttonState;
  
 if (buttonPushCounter % 2 == 0) {
    digitalWrite(LED, HIGH);
  } else {
   digitalWrite(LED, LOW);
  }
  

    if (digitalRead(LED) == LOW)
  {
     loop_joystick();
  }
  else
  {
    
     loop_keyboard();
  }
  }


I've just been wiring up my Teensy....
and there isnt a up to date wiring diagram if using the script above....
(there could be, but i may have missed it)

heres one that i'm using...
and it may be of assistance to others....


Image


i havent tested it yet (so apologies if theres any errors)




.
Dont use the old code for analog stick instead use the updated one from wiiu with intel stick. For the max positions of the pots you will need to read values through serial console but then it will utilize the whole range.

Code: Select all

  Joystick.X(map(analogRead(LEFT_HOR),215, 795, 0, 1023));
  Joystick.Y(map(analogRead(LEFT_VER),235, 855, 1023, 0));
  Joystick.sliderLeft(map(analogRead(RIGHT_HOR),210, 805, 1023, 0));
  Joystick.sliderRight(map(analogRead(RIGHT_VER),195, 805, 0, 1023));

User avatar
Helder
Trailblazer
Trailblazer
Posts: 2985
Joined: Thu May 05, 2016 8:33 am
Location: Rogers, AR
Has thanked: 1459 times
Been thanked: 3114 times

Re: WII U RASPBERRY PI 3 FINISHED

Post by Helder » Wed Nov 21, 2018 7:13 am

banjokazooie wrote:
Tue Nov 20, 2018 6:15 am
Helder wrote:
Tue Nov 20, 2018 3:42 am
Is that power board that copies the Wii U power board open source? If it is I can add a circuit that I used on the mintyPi v3 that turns the pi on and off with a button press. You need a way to do a safe shutdown though so is there a button specific to this or a button combo for this?
The board was not released as a pcb file but people allready made a copy of the layout a published it as their own version. I can upload the original eagle file if someone wants to tinker with it.
Sure post the Eagle files and I can add the power LED along with the on/off feature with SMD tactiles or through hole (6x6mm tactiles).
Chat with me and other members On Discord

Don't contact me about obtaining my board files (as you will not get them). If my Boards or PCB Kits are sold out, they will be restocked as soon as I can get them and there is demand for them. You can join the mailing list on my Website to be notified when they are available.


Helder's Game Tech Website

We will not support any cloned work so don't come to us with technical issues to resolve, go talk to the cloner for help.

rogelion
Posts: 1
Joined: Wed Nov 21, 2018 6:54 pm

Re: WII U RASPBERRY PI 3 FINISHED

Post by rogelion » Wed Nov 21, 2018 7:22 pm

Ely wrote:
Tue Aug 28, 2018 2:13 pm
VeteranGamer wrote:
Tue Aug 28, 2018 1:11 pm

you've got a board that supports most of the components....


Image


im assuming that's something you made yourself.....


if you wouldn't mind giving the heads up on what you made it out of....
(i would like to do something similar)


thanks....
Hey Veteran, you should check the last 5 replies of page 24.
Marty is giving a link to the copper / fiber glass material used and Banjo gives his template :)
I only found a JPG file for the template, but when I printed it, it doesn't fit, it's a little bigger, do you know if there is other file?

User avatar
YaYa
Posts: 1719
Joined: Mon Jun 26, 2017 12:42 pm
Location: brittany - France
Has thanked: 871 times
Been thanked: 689 times
Contact:

Re: WII U RASPBERRY PI 3 FINISHED

Post by YaYa » Wed Nov 21, 2018 11:16 pm

Check you printer settings. The softwares has always default weird options like “scale to fit media”

It may have been upscaled somehow
Follow me on instagram Image

User avatar
Marty33
Posts: 145
Joined: Wed Feb 22, 2017 4:55 pm
Has thanked: 19 times
Been thanked: 13 times

Re: WII U RASPBERRY PI 3 FINISHED

Post by Marty33 » Sat Nov 24, 2018 9:20 am

Helder wrote:
Wed Nov 21, 2018 7:13 am
Sure post the Eagle files and I can add the power LED along with the on/off feature with SMD tactiles or through hole (6x6mm tactiles).
WOW ! That's a very good news. I wait this board, and i buy two PSU (one for WiiU and one for my GBz project).

@VeteranGamer, you can present your project ? I'm very curious where you will place the battery.

Big thanks. Give news :)

Gyrfalcon
Posts: 2
Joined: Sun Dec 02, 2018 6:44 am

Re: WII U RASPBERRY PI 3 FINISHED

Post by Gyrfalcon » Sun Dec 02, 2018 6:51 am

Anyone looking for the connectors to the joysticks they are made by JST

SM05B-GHS-TB(LF)(SN)

Surface mount only so I soldered mine to a SOP breakout, the connector is 1.25mm pitch and the SOP is 1.27mm, close enough to work for just 5 pins.

User avatar
Helder
Trailblazer
Trailblazer
Posts: 2985
Joined: Thu May 05, 2016 8:33 am
Location: Rogers, AR
Has thanked: 1459 times
Been thanked: 3114 times

Re: WII U RASPBERRY PI 3 FINISHED

Post by Helder » Sun Dec 02, 2018 9:04 am

Gyrfalcon wrote:
Sun Dec 02, 2018 6:51 am
Anyone looking for the connectors to the joysticks they are made by JST

SM05B-GHS-TB(LF)(SN)

Surface mount only so I soldered mine to a SOP breakout, the connector is 1.25mm pitch and the SOP is 1.27mm, close enough to work for just 5 pins.
I can confirm that this is the correct part that I found over a year ago but never posted info on it since I never messed with the Wii U beyond the some initial searches on parts.
Chat with me and other members On Discord

Don't contact me about obtaining my board files (as you will not get them). If my Boards or PCB Kits are sold out, they will be restocked as soon as I can get them and there is demand for them. You can join the mailing list on my Website to be notified when they are available.


Helder's Game Tech Website

We will not support any cloned work so don't come to us with technical issues to resolve, go talk to the cloner for help.

doggerx
Posts: 5
Joined: Wed Nov 02, 2016 11:42 am
Has thanked: 4 times

Re: WII U RASPBERRY PI 3 FINISHED

Post by doggerx » Wed Dec 12, 2018 4:07 am

jung stranger wrote:
Sun Sep 23, 2018 7:07 am
IMG_8016-1.jpg
IMG_8018-1.jpg
IMG_8034-1.jpg
IMG_8038-1.jpg
IMG_8014-1.jpg
IMG_8045-1.jpg
IMG_8041-1.jpg
IMG_8043-1.jpg
IMG_8039-1.jpg

Hi
I am a Korean who likes Korean retro games.
I was inspired by your production.
The internal structure is different, but it has been helped.
Thank. Brother :) :)
How bad is look this beautiful piece of work and ask himself "What is the internal design?"... :lol: However very good and clean look. Can you share with us some useful tips? Thank you!

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest