Arc-Eye / Project Gouken - ARCEYE2 IS ARRIVING!

Lol… they’re my friend’s copies of ssf4 he’s selling… so i took the opportunity for a photo shoot!
actually i think i will be lucky if i break even with arc-eyes and masterstrike… but i was never really in this for the money!

All the info you need is in the first post… feel free to ask questions if any part of it confuses you… install guide video should come probably this weekend! :rock:

more updates on page 12

the whole flickr set with more / bigger images

This is getting very interesting!

Progress on Build - Part 3b

Hey everyone. I thought i could do this in 3 posts, but i will actually nee more so reserving a few more spots.

Anyway, here is Part 3b… …This is all about more wiring and keeping it clean. No MasterStrike update yet. that will be in the other thread

Here we go.

  1. i created a PCB version of a power bar to accommodate more powered devises

http://farm4.static.flickr.com/3153/4562475084_024ab65190.jpg

  1. remember this guy

http://farm4.static.flickr.com/3286/4561859245_631820a12a.jpg

well now the wiring is complete

http://farm4.static.flickr.com/3461/4561819281_d608a203be.jpg

  1. the IC chips are now onboard (the ATMEGA already has my program on it)
  1. more fitting test in the case

http://farm4.static.flickr.com/3145/4561852455_fb44e27b43.jpg

  1. wiring fit test

http://farm5.static.flickr.com/4064/4562492744_a6949bd417.jpg

lower right is the daisy chain of grounds
and in the center is an additional harness coming from or to (depending on mod) the turbo/guide pcb in the top right for future mod (cough cough MasterStrike)

  1. closup of inputs on ATMEGA PCB

http://farm5.static.flickr.com/4003/4562476148_0c841218da.jpg

Progress on Build - Part 4

hey all
welcome back to update #4

so. in this update, i wired everything up and ran through the bootloader test… …wonky!
in my code i had buttons being read as active high instead of active low, pullup vs pulldown… …you know

the code was fixed, the atmega328 replaced on the PCB and here are your results! SUCCESS!

1. the rats nest (i need to clea it up)

**2. the case itself **

3. one button press

4. any EX

5. ultra

6. throw, focus or taunt

video when it finishes uploading to youtube!

Progress on Build - Part 5

the code for the ATMEGA written in Arduino IDE

//these are for the shift register
/*

Q1 -| U |- VCC
Q2 -| |- Q0
Q3 -| |- DS
Q4 -| |- OE
Q5 -| |- ST
Q6 -| |- SH
Q7 -| |- MR
GD -| |- Q7’

*/
#define LATCH_PUNCH 9 //Pin connected to ST_CP 74HC595
#define CLOCK_PUNCH 10 //Pin connected to SH_CP 74HC595
#define DATA_PUNCH 8 //Pin connected to DS of 74HC595

#define LATCH_KICK 12 //Pin connected to ST_CP 74HC595
#define CLOCK_KICK 13 //Pin connected to SH_CP 74HC595
#define DATA_KICK 11 //Pin connected to DS of 74HC595

int PUNCH[3] = {LATCH_PUNCH, CLOCK_PUNCH, DATA_PUNCH};
int KICK[3] = {LATCH_KICK, CLOCK_KICK, DATA_KICK};

// pattern test
int counter = 0;
int powerup = 0;

// Serial
boolean serial = false;

/*
L = 1
M = 2
H = 4

L + M = 1 + 2 = 3
L + H = 1 + 4 = 5
M + H = 2 + 4 = 6
L + M + H = 1 + 2 + 4 = 7

Throw = (1 + 1)/1 - 1 = 0
Focus = (2 + 2)/2 - 1 = 0
Taunt = 4 + 4 =
*/

int sequence[11] = {
B00000000, // OFF
B10000000, // L
B00100000, // M
B01010000, // L + M
B00001000, // H
B01000100, // L + H
B00010100, // M + H
B00000010, // L + M + H
B11000000, // Throw
B00110000, // Focus
B00001100 // Taunt
};

// pins
int punchPins[3] = {2,3,4};
int kickPins[3] = {5,6,7};

int punchIndex = 0;
int kickIndex = 0;
int values[3] = {1,2,4};

void setup()
{
//shift register pins are output.
for(int n = 0; n < 3; n++)
{
pinMode(PUNCH[n], OUTPUT);
pinMode(KICK[n], OUTPUT);
}

//initiate pins as input
for(int n = 0; n < 3; n++)
{
pinMode(punchPins[n], INPUT);
pinMode(kickPins[n], INPUT);
}

//startup serial
if(serial)
{
Serial.begin(9600);
Serial.println(“started”);
}
}

void loop()
{
if(powerup == 0){pattern();}
pressed();
}

void pressed()
{
// reset index values
punchIndex = 0;
kickIndex = 0;

// read button states
//Serial.println(“reading”);
for(int n = 0; n < 3; n++)
{
punchIndex += digitalRead(punchPins[n]) == 0 ? values[n] : 0;
kickIndex += digitalRead(kickPins[n]) == 0 ? values[n] : 0;

}
//if(punchIndex != 0 || kickIndex != 0){output();}
output();
}

void output()
{
// Test for Throw, Focus, Taunt
if(punchIndex == kickIndex){for(int n = 0; n < 3; n++){if(punchIndex == values[n]){punchIndex = kickIndex = (n + 8);break;}}}

// Punch
digitalWrite(LATCH_PUNCH, LOW);
shiftOut(DATA_PUNCH, CLOCK_PUNCH, MSBFIRST, sequence[punchIndex]);
digitalWrite(LATCH_PUNCH, HIGH);

// Kick
digitalWrite(LATCH_KICK, LOW);
shiftOut(DATA_KICK, CLOCK_KICK, MSBFIRST, sequence[kickIndex]);
digitalWrite(LATCH_KICK, HIGH);
}

void pattern()
{
if(serial)
{
Serial.print(counter);
Serial.print(":");
Serial.println(sequence[counter], BIN);
}

counter++;
if (counter > 11)
{
counter = 0;
powerup = 1;

// PUNCH
digitalWrite(LATCH_PUNCH, LOW);
shiftOut(DATA_PUNCH, CLOCK_PUNCH, MSBFIRST, sequence[counter]);
digitalWrite(LATCH_PUNCH, HIGH);

// KICK
digitalWrite(LATCH_KICK, LOW);
shiftOut(DATA_KICK, CLOCK_KICK, MSBFIRST, sequence[counter]);
digitalWrite(LATCH_KICK, HIGH);

}
delay(100);
}

Lol… Looky at what i found in my mailbox today :lovin: Well i know what im gonna do all weekend :rofl: But man i really underestimated how small an area i have to work with for soldering everything together lol This should be a fun experience though, especially since imma pick up a new soldering iron this weekend too :rock: apparently my Radiocrap iron well… crapped out on me rofl… heres a snap shot of epicness :tup:
http://i257.photobucket.com/albums/hh227/TenshiAoi/th_IMG_0352.jpg

I was gonna do something fun with the picture as well like Bencao did but i was like “eff it, i have a paper due tomorrow” lol But yeah, these are so awesome Purplearms!!! Expect more business from me again once i get these babies installed in some sticks ;D

I like gummowned’s light up on press and rumble activation. So this would work on a chimp + 360 madkatz controller pcb I assume? And the first page I’m still kind of confused what is the instructions >_>

Thats quite a brilliant idea! Is that a grounding pcb underneath? Or just a perf board where you’ve wired the base of all the swiss headers together?

Glad to see you got it! Don’t forget the flux!!! i will do a video install this weekend so stay tuned and concentrate on your paper for now… I will post the vid here…

Yes you can do button press activation since chimp / 360madcatz is a common ground setup… I’m not sure of 360 madcatz has rumble, but if it does, you can use that… check out gummowned’s wiring diagram… arc-eye is common power (anode)… blue is button press activation (ignore the diode), green is rumble activation, and ignore the black wire with the 2.2k ohm resistor (its for button dim -> increase brightness on button press):

http://i79.photobucket.com/albums/j138/gocontourgo/projects/dim.jpg

it’s actually the center rails from a perfboard
you can find ones that have common rails down the middle, i leveraged that and cut it to my needs.
that way where power is coming in, it’s distributed through the rail (top is +v, bottom is ground)

see the center rails in the photo below

could i do button light up on press with the paewang revolution pcb?

I think its a common ground pcb, so yes…

I’ll probably order 8 then. =O need to figure out how to install them first since i’m total shit at understanding any of this lol. Or do you provide instructions with purchase?

Theoretical question, probably requiring a few answers: If I were to install all these Arc-Eyes into a stick with a wireless 360 PCB running off of the official rechargeable battery, would this be an appropriate way of disabling the LEDs while I’m not plugged in to USB power(either because I’m on battery power, or charging the battery) via a Play and Charge Cable connected to an Imp? I ask because I’m pretty sure that the 5V on the wireless PCB is used just for recharging the battery, and it’s the 3.3V that actually powers the PCB itself. Keep in mind that the other PCB connected to the Imp is a PS3 board.

I’m not sure if I even need a DPDT, or just a SPDT for turning off the 5V line to the Arc-Eyes. Basically, when I plug in a USB cable I want to be able to:

1.) Charge the 360 battery (Imp 1)

2.) Play PS3 (Imp 2)

3.) Use the LEDs on both PS3 and 360 (Imp 1 and 2)

So when the USB cable is not plugged in, I don’t want to use the LEDs because they’d drain the battery really fukken quick. That’s about it. Is there any better way to do this, or is the way I’m thinking of shown above adequate enough?

even SPST

Haha wow, I’m a retard. Yeah, I can totally use SPST if I use a PnC cable (I was still thinking about the setup I was going to use without it). Does this look like it’ll work then?

What’s the imp being used for with a wireless board in the setup ?

…That’s a very valid point, isn’t it? Hahaha oh wow, I’m really smart today. It’s actually there because right now my 360 PCB is a Madcatz (linked with the stock Hori PCB in my HRAP3). Does that mean that the D+ and D- for the PnC cable (and for that matter, the PnC cable itself) aren’t necessary? Like, if I just had the 5V for the PS3 PCB/charging the 360 battery and had a SPST switch on it for turning the LEDs on and off, that would work just fine?

The reason I ask is because I’d obviously want to be able to use the LEDs while playing on the 360 board, and the only way I’d be able to do that (without the battery draining in a few hours at best, according to my math) is to have it plugged in via USB. I’m pretty sure that the PnC cable powers the 360 board with 3.3V while it charges the battery with 5V. Please, please correct me if I’m wrong.

So could I ask what exay do I do after the buttons and everything have been soldered onto the arc eye? Do I solder the wire to the buttons on the paewang pcb?