|
Post by lintball on Oct 27, 2013 20:07:49 GMT -5
Quick Question: To power the controller are you pulling 3.3v directly from the Pi? I assume that 3.3v instead of the 3v it usual runs off of, is not a big enough difference to cause trouble...
|
|
|
Post by Frisbone on Oct 27, 2013 22:00:12 GMT -5
Correct, using the 3.3v off the header. Not a problem with my controller - I'm guessing that all of the parts used on the board are rated at 3.3V though. I doubt that is an issue. You having a similar issue on the new controller?
|
|
|
Post by lintball on Oct 28, 2013 20:03:32 GMT -5
At first I thought so, but I think its partially due to the Xbox that I resurrected. Seems to be working fine with my other one. I tried the old with the other Xbox and it wast still having issues.
The new one, is in much better shape, I got the 4 face buttons & Xbox button hooked up and hope to try out that PSP joystick soon
|
|
|
Post by lintball on Oct 29, 2013 20:49:17 GMT -5
Got Start and trigger up and running.. Current issue is with the PSP joystick pad. It looks like the way Xbox and PSP interpret the data is slightly different. One axis of the Joystick is backwards to what the Xbox wants. Since the PSP joystick shares the vcc and gnd for both axes, I can't just switch one. i'm not sure if there is a way to flip the signal coming out. So I might have to revert back to the normal xbox sticks...its a shame the PSP nub is much more compact.
|
|
|
Post by Frisbone on Oct 29, 2013 21:19:51 GMT -5
Post the specs on that psp stick and ill have a look. Makes you wonder if perhaps Xbox is interpreting one of the axes (the micro controller ) in reverse voltage. Perhaps perpetuating a design flaw that they are stuck with?
You'd think your psp JY would be two independent POTs and that the common VCC could be severed - would be a mod though. Bet there is some kind of comparator circuit though you could build to apply a reference voltage and take the difference sending that to the MC. So if normally 1.61v would be sent comparing to 1.61 constant would be zero, if pot was 0, compare would be 1.61, etc.
|
|
|
Post by lintball on Oct 29, 2013 21:46:39 GMT -5
Don't have too many tech details, here is the link for the product at least. Adafruit PSP JoystickHere is an image of one opened up. Its just a etched track which the wipers move on.
|
|
|
Post by Frisbone on Oct 30, 2013 6:48:32 GMT -5
Did a quick search for something like what I was referring to. This post is pretty much exactly what I was suggesting - and someone suggests using an Op Amp as a solution: www.electro-tech-online.com/threads/how-to-invert-an-analog-signal.31423/It is a strange circuit but I think that circle is is fixed resistive material, with probably equal resistance on both halves of the circle. The things I label "Variable Pad" or strip is probably the same resistive material and the movement on that axis alters how much of it is exposed to the circuit. If you were willing to make modifications, I think you could split the circuit with some trace cuts. I'd put a volt meter on various points to see what resistance values you have. Perhaps the loop can be replaced by a couple of resistors and you could make a single cut to remove it from the circuit. Then you would have to cut across two sections of the VCC side (right most pad) to separate the two sides completely and then wire the resistors direct to the two separated sides. In doing this, you could then reverse the wiring on either side to get your desired results. I expect the op-amp would be less work - but parts you have to wait for. One last idea is that you pick the axis you are having a problem with and make a cut right a where your wire connects - then, make a nice "ditch" next to the opposite end - fill with solder and connect your output wire there instead. Should result in the opposite behavior just on that axis assuming I am right that it is the strip with the resistive material and not the top VCC side. Attachments:
|
|
|
Post by lintball on Nov 8, 2013 23:00:29 GMT -5
So now controller #3 (Yep #2 had a fatal accident where the trigger contacts ripped clean off ), I have all the major buttons wired and working. I added the 2 leads for the right analog stick added as well. I made both triggers digital and it looks like its working fine with Black Ops. The only thing left to add is the left analog stick and its button. I have the original joystick wired up as well as the PSP one so its a matter of decidingwhich one to plug into the controller. Now the only problem is that I still have this odd issue where now and then the controller will lose it connection to the Xbox. It will go to 4 blinking lights and usually reconnect. I also noticed that on start up it takes a bit longer then it use to connect to the system. This problem is extremely frustrating since I've been seeing this with each iteration. I moved the power to separate lines to see if that might be the problem, and it made no difference. Though power is still coming thru the breadboard with is connected to the Pi. I also tried disconnecting a few of the transistors and it still occurred as well. So not sure what to do next...could a bad transistor do it(though all the buttons work when the controller is connected)? Or maybe the power is not quite right or even slightly loose? Anyways I'll be away at a wedding this weekend so maybe the break will help...I really want to move on the rest of the project.
|
|
|
Post by Frisbone on Nov 9, 2013 7:03:08 GMT -5
I never would have tagged you as a perfectionist. My honest opinion is that you ignore it and move on - if everything else functions its of no real consequence as we know we have more iterations to go with this thing anyway.
But speaking to the problem from my experience and all I've read the 4 blinking lights is a syncing problem (some say its a battery low condition - but I think that is true only indirectly). I think that the low battery doesn't provide enough power for transmitting and it therefore loses sync and has to go through that cycle. So I get why you are thinking power - but it might not be power, it might just be a syncing problem. I'd go through process of elimination a bit here and:
a) Connect to a different X-box - and make sure it isn't the X-box causing the disconnects
b) Check for interference - all these devices these days are operating in the same spectrum. Perhaps you have something going on elsewhere that could be mucking with the signal. (Wireless routers being the big item). Easiest thing would be to relocate both items to another place you know to be free of interference and check it out there.
c) For power confirmations - measure the input voltage to your PI not under load. Then measure it under load. Then measure the 3.3V out p - and not connected to the Xbox controller - then measure it connected and running. Comparing to my numbers might reveal an actual power issue - but if they are close, then I really doubt it.
But all in all I'd say be happy with what you have functional and move on. You are perhaps concerned that the real issue will eventually reveal itself in a much more obvious way as you finish it up? If so - that would probably be a good thing in helping to resolve it. If not, not sure I see the harm in an occasional disconnect.
You say this was happening with the first controller too? Were they of the same revision?
On average, how long does it take before the disconnect?
|
|
|
Post by lintball on Nov 12, 2013 23:25:15 GMT -5
The time would vary, sometimes only takes a few minutes. Tonight I moved the Xbox and also laid it down horizontally instead of vertical. Also I plugged in the left analog joystick/L3, to the controller board. After that the connection seemed to be much more stable. Eventually it turned off but probably only due to it falling asleep. So perhaps the joystick input without anything plugged in, was causing bad data to go through? Seems like a long shot, but who knows.
|
|
|
Post by Frisbone on Nov 13, 2013 6:14:03 GMT -5
Ah - didn't realize you had those two JY input lines floating. I definitely had problems with that. At the time I was focused on controlling the right joystick programattically and having no luck at all - seemed as though my inputs were ignored and random movements would occur as well, other discrete inputs would trigger as well as the analog triggers. When I think back to that time period, I think I also recall the controller turning itself off - but I attributed it to it timing out. Once I hooked up the joystick and drove those inputs - the problems went away. I think I might have an old post on that - but I might have forgotten.
Its very odd how that microcontroller operates where it behaved like that. I think perhaps the free floating inputs were interrupt driven and perhaps overloading the MC??
I'd bet that was a good portion of your problem though. Oddly enough for me ever since then my controller does not time out - which is odd because I always thought it did that by design.
|
|