Master Strike PCB : The Intelligent Control Center


#1

**Master Strike PCB

**[LEFT]After doing some Led Mods and wireless Dual Mods with PurpleArms we find it usefull to have a power-saving control center for led modded and dual modded Fight Sticks.
So here we go.
[/LEFT]

**
FEATURES:**

  • Intelligent switching by detecting button presses on power up
  • Makes wired setups completely free of physical switches
  • Reduces requirement for wireless setups **to one physical switch **(SPST)
  • USB switching (2 channels)
    -
    6
    channels of power switching: provide power to any device you want up to 800ma per channel (for LED, controller PCB, anything you can imagine!)
    -** Power can be supplied by USB or by Battery** (set by solder jumper on the back of the board) or even both (for advanced users only)
    -** Highly compatible with any common ground** controller or mod such as DualStrike, Cthulu products (dual mod setups included), LEO dual wireless board. Common ground controllers include all PS3 controllers, TE sticks and certain xbox controller models
  • Can be run stand-alone to do LED switching and/or USB switching only
  • Additional via holes to ground is provided to help group ground wires
  • You can use this board to switch Arc-Eye LEDs!

OPTIONAL FEATURES (parts not included):

  • Microprocessor can be reprogrammed any way you want via ISP programming interface (standard 2.54mm breakaway header/pins required)
  • 6 output channels are designed to use 3.5mm screw terminals
    -USB mini-B jack compatible (for main USB connection)
  • Indicator LED on the underside of the board (5050 SMT RGB LED required, 0805 Resistors required). Indicator LED states the current switching setup.
  • convenient spot to solder joystick LEDs and resistors to (common ground)

Exmple setups and uses:

Image you’ve build your dream fight stick with ARC EYE, wireless Dual Mod ala LEO or wired with Dual Strike.
How to switch only the blue LEDs and PS3 on? What about playing xbox360 only with green LEDs. We want to save battery power in wireless setups, so please switch PS3 off while playing xbox360!

With SPST power switch or USB:

When power is turned on (usb plugged in, or spst switch is flipped), PS3 PCB and PS3 USB and all blue LEDs are on by default.

If alternative switch is turned on, then switch to 360 PCB and 360 USB and blue leds are activated.

Map your buttons to Master Strike and switch LEDs off while playing in tournament.

Define your own setups and switch them easily on startup :

  • Play PS3 with a specific color.
  • Play xbox360 wit a specific color.
  • Play the consoles without LEDs
  • Play the consoles only with Case Lighting
  • Play the consoles only with Stick Ball Lighting.
  • […]

Okay, much stuff so far.

State of Mod
**========

**Order for parts and PCB has been placed. Prototype firmware is done.
We await the PCBs in a f ew weeks. Project is of course open soure. Developers are welcome. Target is Atmel based environment. MC can be ATMega8, 8L 88, 168 …

The board has a general design and be used for prototyping.

Some technical stuff

Have fun

Jochen aka Bencao


Absolute Question and Answer Thread v.3 (ASK YOUR QUESTIONS HERE!)
Dual modding 101
#2

**VIDEO DEMONSTRATION:

[media=youtube]ySfBtmmkXtI[/media]
**
HOW TO ORDER:

North America (DIY kit): Contact me

**MasterStrike V1 DIY Kit: ** $22 assembled and fixed (original design errors will be fixed for you)
Boards will not come with ISP pin headers or LED indicator! They are +$1 for each option. LED indicator is not recommended unless you have 10~20ma to spare (which comes out of the 500ma cap if you are USB wired joystick user).
**NOTE: **MasterStrike Remix boards will be more expensive when (and if) they get produced

Add +$5 for shipping. I will combine shipping with Arc-Eyes!!

It is assumed that you are wired joystick user! Wireless users contact me first!

I accept payal at

Please include the following information in the paypal note. You can copy and paste the following, and fill it out (default values below):

SRK Nickname:

Boards: 1

LED Indicator: No
ISP Pins: No
USB Wired / Wireless: Wired

**SHIPPING DISCLAIMER: **Orders placed with me are shipped from Toronto via ground mail (to keep it cheap). $5 is my actual cost of postage + padded envelope + tax. It usually takes up to 2 weeks to get to a US address (although the post office quotes up to 4-6 weeks). There is no tracking number.

Europe / Asia: Contact Bencao74

North America (Custom install): Contact gummowned or check out his mod service thread

FAQ:

Q: What is Master-Strike in a nutshell?
A: Its a custom circuit board designed to allow switching of power for up to 6 devices on any common ground setup. The device can be almost anything from LEDs to controller PCBs (for dual wireless modding). It also allows switching between two USB data lines.

Q: Why do I need this?
A: You can use this board to do power switching for you without any additional physical switches if you have any of these mods and a common ground setup:

  • LEDs (Case or button)
  • two USB connections (PS3 and 360 Controllers)
  • Wireless dual mod (Project LEO)
  • The need to switch power to anything via USB or battery

Q: Will this work with dualstrike or cthulu?
A: Yes! It will work with any common ground setup. It will even work if you have a simple PS3 setup using Axisdapter, stock TE sticks, madcatz wireless 360 pads, or any other CG 360 padhacked joysticks.

Q: Will this work with Project LEO dual wireless?
A: Yes! It will allow you to switch USB, and PCB power without the need to install multiple switches.

Q: This eliminates the need for physical switches?
A: For wired / USB joystick users, this completely eliminates the need to install any toggle switches. For wireless battery users, you need one simple on/off SPST switch to control power to MasterStrike. The board will in turn handle power switching to everything else.

Q: It does USB switching? But I have an IMP board already?
A: No need to touch your imp board setup. USB switching is an optional feature of the MS. If you are a wired joystick user, master-strike requires +5v and - from USB only. It is not manditory for MS to switch your USB lines!

Q: Does this work better than an IMP board? What if I only need to switch USB?
A: IMP is a fantastic product by Toodles and is very power efficient. You should get it if you are only switching USB and do not need to switch power to anything. The MS uses the same method to switch USB lines as the IMP, but offers the additional options of power switching.

Q: What are the power limitations of this board?
A: Each transistor (channel) can handle up to 800ma of power. Thats more than most people will need in a joystick :wink:

Wired Joystick users who draw power from USB have a limit of 500ma total. 100ma of that should be set aside for controller function, which leaves you with up to 400ma total to switch LEDs etc. There are ways to get more juice, but only try at your own risk!

Wireless battery users are only limited by the capacity of their battery and the current limit of each transistor (channel). The standard 750maH PS3 just won’t cut it if you want to drive a bunch of LEDs. You need an upgrade to a 3.7v LiPO (I recommend 3000mAH+). I personally use a giant 6AH battery from sparkfun. Here is another place you can get them.

Q: What is the difference between V1 and V2 / MS Remix?
A: V1 is the first version of MasterStrike. A second version (v2) is currently in design phase, and is called the MasterStrike Remix. It is largely identical to V1, but it will have 2 additional channels of control (total of 8), and will feature USB programming (no ISP pins necessary). MS Remix will lose the LED indicator.

Q: What is the “Fix” or problem I am reading about?
A: After the V1 design was submitted to the manufacturer, two design errors were discovered. 4066N pin 1 and 13 need to be swapped (can be done with a wire fix. The S3 signal is mapped to ATMEGA8 pin 10 and it should be mapped to pin 16 (can also be done with a wire fix). Anyone who orders masterstrike V1 will have the repair done for them! There is nothing to worry about!

A video will be posted here to describe the problem and the solution for anyone who is interested.

Q: What are the dimensions of MasterStrike?
A: L x W: V1 = 54.2 x 31mm Remix = 66.2mm x 31mm

Q:
A:


#3

TECHNICAL INFORMATION:

The signal and code logic was designed to be flexible, whether you have a SPST, DPDT, or no switch setup.
Feedback is welcome and appreciated =)

**Click here to see how to wire MasterStrike to a DPDT switch

**Click here for the pin connection specs, signal logic, code specs (in pseudo code format).

Click here for the MSV1 PCB EAGLE schematic

Click here for a guide on how to program MSV1

MasterStrike V1 FIRMWARE: Access the entire library here!

V1 DEFAULT.ZIP: DOWNLOAD (link coming soon)
SETUP: Specs and behavior
NOTES: This is the default firmware that comes with the Masterstrike.

Click here for MasterStrike REMIX Eagle Schematics and Change Log

Current issues and solutions

Problem: Masterstrike was causing PS3 not to report the battery charge level properly
Cause: The cause is the status indicator LED.
Solution: There is a solder spot on the back of masterstrike for a 0805 LED (same as from arc-eye), which was purely optional. After disabling this, battery charge level was properly being reported on ps3. This feature is optional, and will be axed from masterstrike remix.

Problem: Recharging a battery (for wireless users) was 4x slower than without doing it through masterstrike
Cause: PNP transistors used to switch power are not the most efficient at low currents, therefore recharge rate is adversely affected
Solution: Do not use masterstrike to switch power to PCBs. I am experimenting with using it to switch grounds instead.

Problem: USB sync for 360 controller blows. Its inconsistent.
Cause: Not sure, butusb sync seems to suck in general for 360.**
Solution: **A spare pin will be wired to sync button on 360. Select + Up will be changed to trigger this. For masterstrike remix, 4066N will switch usb lines for ps3 and for usb programming mode. Wireless 360 will use sync button and will have a connection spot on the board.


#4

The master-strike board has been submitted for manufacturing and will be in stock in about 2-3 weeks. After which I will install one into my own stick and demonstrate what this baby can do! This product is exclusively available from me and Bencao74.

In a nutshell, it can switch between 2 usb lines, and also provide power for up to 6 devices, which could be LEDs, wireless controller PCBs, anything else you can think of!

For the majority of users, you can use this to switch USB lines, button LEDs, and case lights. For wired joystick users, this eliminates all physical switches from your setup. If you are wireless, you will only need one simple on/off switch (SPST).

Both wired and wireless users can also use a DPDT to switch between two sets of lights / PCBs without the need to hold a button down while turning it on.


#5

This will be funnnnn!


#6

You know I’m in line to get one, and will have plenty of questions on how to wire it when it gets here. Name the price and I’ll get it to you guys. Fantastic work as always. Matt, you may have some work when you come up for the tourney!


#7

Thanks! Take a close look at the diagram in the first post (don’t worry about the back of the board). It should give you an idea where everything is wired to.

The price will be quite reasonable… updates and more info will come throughout the week as we work on it!


#8

The diagram looks very interesting as for the possibilities. Here’s a question on the ACC line. Say I went ahead with the EL panel idea. That will need it’s own power source, naturally. But would I be able to use Master Strike to turn the panel on and off? I know I’d have to run it inline with the external power, but I’m not sure the switch is set up like that.


#9

@Spenzalii : The EL Panels is a different story. What power does your Panel take. I assume alternating current?


#10

I believe power inverters for EL Panels take 12v usually. The microprocessor (ATMEGA88) accepts 1.8 V ~ 5.5 V, so that means the board can only take that voltage range. USB is 5v, and ps3 battery is 3.7v (within that range).

However, it should be possible to use ACC1 to switch an EL inverter. Transistor T3 controls DC power output to ACC1. Its signaled by the micro-controller to act as a gate to let DC power go to ACC1 . But since voltage of your EL power source is incompatible, you can separate T3 from the boards power source, and connect it to your EL power source instead (which I believe converts DC to AC for the EL panel?)

The transistor consists of 3 legs. The middle one is called the “Base” which connects to the micro-controller. This is the line that the micro-controller uses to control the transistor. The other two legs (“Emitter” and “Collector”) connect to battery power and to the EL inverter. So those two legs have to be electrically separated from the board.

So if you don’t install T3 onto the board, but run a wire from the center hole (of the T3 spot on the board) to the middle leg of the transistor (“Base”), this should still allow the micro-processor to signal the T3 transistor to switch…

That should solve the EL switching issue. BUT the transistor is rated to allow 800ma as an absolute maximum. So it really depends on the inverter…


#11

Love the ISP option!!!
great work on the collaboration guys
look forward to getting my hands on one!


#12

Superb! Not that I’ll end up doing this (still debating) but at least the theory on how to do it has been answered. Now to figure out what the inverter would be rated at.

Now a question about switches. If I’m reading this correctly, a wireless setup would need a spst switch between the lipo battery and the master strike. What would be the downside of not having that switch? I could understand if you have your button LEDs wired to be on all the time. But if you are using the button press option only, besides the buttons lighting up if pressed regardless of either system being on, would it matter? Seems like it would function like a regular wireless controller. Unless of course, the master strike is constantly drawing current, in which case my babbling is moot…


#13

By default, the master strike is programmed to do all the switching upon power-up (when it will detect what buttons are pressed, then decide what to do), then go into a low power idle state. So as soon as wired users plug in the USB cable, the board is powered up, and depending on what buttons you held when plugging it in, it will perform the requested switching. Wireless users would always be connected to a power source, so thats why you need a switch to cut power to the micro controller.

However, the power consumption of the micro-controller is something around 0.03ma during operation and 0.0002ma during idle. The 4066n chip should be similarly low. Which means that even if its left on, it should drain the battery very slowly. That means theoretically its possible to do totally switch free wireless.

That presents a small programming challenge during joystick operation. How could the micro controller tell whether you are trying to switch something, or if you are actuallly pulling off a [media=youtube]1Domg6WJQwo#t=0m30s"[/media]? lol

the answer to that could be surprisingly easy… you could have a magic button combination that normally doesn’t happen during play… something like holding guide + a direction on the joystick… that could give you up to 8 switching options depending on direction!

And thats the beauty of masterstrike… you (or anyone) can program and adapt it any way you want… if you don’t like the config, you can flash it back to the original…


#14

Nice work, guys! :tup:
-ud


#15

Yeah, let’s go with the ‘anyone else’ option! Holding guide + right for PS3, guide + left for 360 (default to PS3) could be interesting. That said, a small switch on the underside wouldn’t be the worst thing. It would default to one system, say PS3, and I’d only need to hit the button combo if I wanted to go to 360 mode for that session, not every time the stick is powered up, right?

I’d like to see how the wiring would go to have the arc eyes change color depending on which system is operational (or what other options are available there). Either way, I’ve got a lot to decide for my next projectm that’s for sure.


#16

The board will come pre-configured to act upon startup. If S1 is not pulled low, it will automatically provide power to PS3 (pcb power as marked on the board), LED1 and ACC1, and PS3 USB . If signal S1 has been pulled low (the button is pressed), then it will switch to 360 (pcb power as marked on the board) and 360 USB. LED1 and ACC1 remain on (not everyone has two sets of lights).

If you connect S2 to S1 (and to the same button), then in addition to switching 360 power and 360 USB, it will also switch LED2 on and LED1 off. If you connect S3 to S1, it will switch ACC2 on and ACC1 off. Or you can connect S1 + S2 + S3 to switch both LED and ACC and PCB and USB.

So the default code really was meant to be activated on startup. I don’t know AVR programming myself (I plan to learn with masterstrike), but you’d need something slightly different. S1 would be your guide button. S2-5 would be mapped to up, down, left, right… so the code would have to flow like this:

PS3 = ON
PS3 USB = ON
LED1 = ON

BEGIN ENDLESS LOOP
{
IF S1 has been pulled low THEN //guide has been pressed
[INDENT]{
If S2 has been pulled low THEN //up + guide has been pressed
[INDENT]{[/INDENT]
[INDENT]PS3 PCB OFF
PS3 USB OFF
360 USB ON
360 PCB ON
}
[/INDENT]END IF
}
[/INDENT]END IF
}
END LOOP

So the code first checks if guide is pressed and held. If it is, then it will look to see if up/down/left/right has been pressed and only do something if it is. That gives you 8 possibilities right there. You would need one mode to power everything off, one to power off only LEDs, etc etc…

But like I said, i don’t know avr programming. But if you’re getting your joystick done by Gummowned, you might be able to convince him to write this code for you :wink:


#17

Gum very well may have to give me a hand on this one, for sure! I guess what I’ll do is wait until I get the case and figure out what colors I’m going with then decide how I want to set the stick up and proceed accordingly. I really don’t play much on a 360, and while switching the color of the LEDs depending on what system is on (can that be set up natively with the MStrike, or does it need to be reprogrammed to do it) is nice, I’m not sure I’d need all that or how much wiring would be involved. A lot is really riding on how this case comes out and if I want to do the panel (which, in the end, could just work off it’s own switch to somplify things). The stick will be really classy so I’m not sure how it would go with multocolored lights going of. One color (or white) could do the trick.

One other question: Is there any delay from the time the stick is powered on to when it checks for the buttons that are pressed? Say on a wireless setup that had the switch recessed on the bottom of the case or hidden away somewhere. Would I have to hold the buttons down, reach around to wherever the switch is then switch the power, or is there, say, a 3 second setup window where you could chose your options before the stick is active?

Ae the first 3 setups preprogrammed into the MStrike:
*
Define your own setups and switch them easily on startup :

  • Play PS3 with a specific color.
  • Play xbox360 wit a specific color.
  • Play the consoles without LEDs*

#18

The default setup treats everything as sets of two… LED1 and LED2, ACC1 and ACC2, PS3 and 360… you can switch (or not switch) in any order you want… for example, I will use blue LEDs for PS3 on LED1, blue case LEDs for PS3 on ACC1, green leds for 360 on LED2, green case leds on ACC2, and switch between them…

The microcontroller has a 20mhz clock. Which I believe means it cycles 20x per second… If its programmed to check once per cycle (20x per second or ever 50ms). it will continue to check over and over as long as power is provided to the chip… in this case, since its constantly checking, theres no need to reach for the toggle switch (you should be able to switch without turning off and on)… default setup only checks once on power up, then it goes to low power sleep mode…

If you hold the button down longer than 50ms, that might present a logic problem the next time the code cycles back to check if the proper buttons are pressed (and they already are). I’m sure its a standard thing that a AVR programmer considers… Maybe bencao can provide a better answer regarding this…

The pre-programmed setup will activate on startup PS3 PCB, LED1, ACC1 if no buttons are pressed. Check the descriptions of S1-S8 for what those signals will cause MS to do. You can combine pretty much connect any combination of them to one button depending on your switching needs. Or you can assign each signal to an individual button. I personally prefer to reduce the number of button presses i need to get something done…


#19

doesn’t matter here, since the MStrike is running anyways. Its left to the firmware of course . Now when I read about this ideas Im considering to implement both features. Swichting on the fly can be also possible parallel to switchin on startup. Don’t see a show stopper here… :)we could add this to the spec… mike, what do you think?


#20

Yes great idea… I will modify the logic in post #3 tomorrow