When soldered the way I illustrated they are nowhere near the metal plate, they don’t even extend above the top Xbone pcb. I know this because I installed one the same place as you 4 days ago.
However what are near the metal plate are the two shoulder button switches. I’d suggest removing them if they haven’t been insulated.
I prob should start the ps4 padhack tread. However I would warn people who are not skilled enough to just wait it out for a third party pad to come out. The ds4 is not forgiving if you destroy a contact pad and much more difficult to scrape and solder to the contact pads.
Right, if you cut that trace then the only path to ground is through the MCU pin and the impedance of the MCU pin (which is quite large) acts as a pull-down resistor and will keep the line at ground potential; see my schematic a few posts up. The MCU checks the voltage on the line very 8ms and if it’s anything less than ~1.2v it will think it’s being held down…hold on I think that might be my problem! Haha, yea thats what’s causing my A button to act all funky, the XB1 thinks my trigger(s) is being held down. If you go into the XB1 home screen and hold down the triggers nothing will happen but if you also try to press ‘A’ you will see it will ignore the press most of the time. This is also why it doesn’t register in KI because the trigger is never released.
So now I have a vested interest in solving this issue too
Interesting. The same thing happens if you hold down the back button while on xb1 home screen (nothing happens but if you press A it’ll register it cause the tile will move but nothing happens).
Unfortunately, no. You see the hall sensor acts as a voltage source (1.65V) and voltage sources have very, very low output impedance (i.e. resistance) in the order of 1-8 ohms. If you were to connect a resistor directly to the sensor you are create a voltage divider where the sensor’s output resistance is at the top of the divider and your added resistor is at the bottom. To get the triggers to work we need to drop the voltage low enough to register a hit; lets call that threshold voltage 1.2V. Here is the formula for a voltage divider:
Vout = Vin * (Rbot/(Rtop+Rbot))
The Vout we desire is 1.2V and we know Vin is 1.65V. Let’s assume that the output resistance of the sensor (Rtop) is 2 ohms. Lets plug in the numbers and solve for the required added resistor, Rbot.
1.2 = 1.65 * (Rbot/(2+Rbot))
Solve for Rbot and you get 5 ohms, that’s pretty damn small. Any larger resistance and your output voltage won’t be low enough to register a hit.
Lets see what kind of current we are drawing from the sensor with a 5 ohm resistor in series with a 2 ohm sensor output resistance. The equation for that is I = V / R where ‘V’ is 1.65V and R is the total series resistance, namely 5+2 = 7 ohms.
I = 1.65/7 = 236 mA!
Wow, 236mA is huge considering these things are rated between 3 and 10mA; major no bueno. If you were to tie directly to the sensor with no resistor at all then you would be dropping all 1.65v across the sensor’s low output resistance. Assuming 2 ohms like before, that’s I = 1.65/2 or 825mA.
So I have some pretty exciting discoveries (well for me anyway). I was right, the unresponsive ‘A’ button problem was due to one or both of my triggers registering as constantly pressed. I did a continuity test on the sensors themselves and both showed a short between the Vdd and GND pin. I actually removed the sensors, the RC filters and the small bypass cap right next to it and the short still remained; something got majorly FUBAR’d.
In any case I was able to fix my issue and trick the MCU to think the triggers were NOT pressed by forcing the voltage of the MCU trigger pins to 1.45V; the same voltage when the triggers are at rest inside the shell. Now you’re probably wondering where the hell did I get 1.45V from, good question! I simply used two resistors to create a voltage divider off the 5V USB rail. I had some 330ohm resistors on hand and a 1000ohm trim pot. Let’s use the voltage divider equation again to find the required resistor to get 1.45V from a 5V rail:
1.45v = 5v * (330/(330+Rtop)
Rtop = 808ohm.
Perfect, I dialed in my trim pot to an exact 808 ohm, wired it all up to supply the 1.45V to the bottom pads where the RC filter was and viola, no more ‘A’ button problem.
But I didn’t stop there. Now that I have a trim pot in my voltage divider, I can vary the pot and thus the voltage to the MCU and find the exact threshold voltage where the pad registers a trigger pull. That threshold voltage ladies and gents is 1.33v. At 1.33v Jago was kicking like a mofo as the voltage bounced around the threshold point. Dialing the voltage down to 1.31v stopped the madness. So as it turns out, a 330ohm series resistor connected to the bottom pads of the RC filter is a perfect resistance as that brings the line voltage to 1.26v or 5% below the threshold point.
Btw, the 330 & 808 ohm voltage divider requires ~4.5mA of current from the USB 5v rail which it’s more than capable of doing but is probably way more than we need. We really just need to cut the 5v rail by a factor of 3 to get 1.65v. There are an infinite number of resistors you can use to get that factor of 3. The general rule of thumb is to keep your resistors at least 10x smaller than the input resistance you’re hooking up to; the MCU pin in our case. I’m not 100% certain what the actual MCU input pin resistance is but 1MEG sounds pretty reasonable so a 20K on top and 10K on the bottom would do it and only require 0.2mA.
Whats doubly cool is that I should be able to easily get the trigger buttons to function normally by just pulling the 1.45v line to ground as we do for all the other buttons. I haven’t done this yet but I’ll report back with pictures and schematic diagrams when its all fleshed out.
TLDR
I figured out a way to get the triggers to work with the hall sensors completely removed
Holy shit bro. I’d like to think I know my shit, but that’s way over my head. I could be wrong, but I’m guessing there’s only a handful of people here that would fully understand that either.
I hope you figure it out. Will stay tuned.
In order to fool the pad to think the triggers are not pressed, you need to feed the trigger pins on the microcontroller anywhere from 1.35v to 3.3v. I choose 1.45v because that’s the actual voltage it sees with an un-moded pad.
Since there are no points on the pad that produce 1.45v, we need to create our own. We can do this by tapping off the 5v USB and create what is known as a “voltage divider” using nothing more than two resistors. The voltage divider does exactly what its name implies, i.e. it divides the input voltage (5v) by some divisor that we can determine by carefully selecting the appropriate resistance values. If you wire up a 330 ohm and an 808 ohm resistor back-to-back and tie the other end of the 880 to 5V and the other end of the 330 to GND, you will get exactly 1.45v at the point the two resistors are tied together.
Here is an illustration. R1 is 880, R2 is 330 and Vin is 5v from the USB. Vout will then be 1.45v
So now we can take this 1.45v and feed it to the trigger pins on the microcontroller. The best place to solder this 1.45v is the bottom pads of where the resistor/capacitor pair used to be, the ones that look like: [ ][ ].
I’ll take detailed pictures once I have it all figured out on how to best to do this and get the triggers working reliably. I’m pretty sure all this can be done with nothing more than four 1Kohm resistors. What’s cool is that they sell Resistor Arrays in a “bussed” configuration that make it super easy to wire to. Here is a pic of what I’m talking about:
That should be all you need to do what I have in mind. You don’t even need to remove the sensor, just the resistor and cap right after it and those are super easy to remove; just place your iron so that it heats both sides at the same time.
Nice work dude, I was wondering what that threshold would be and the really slim level makes sense. Think about how little you have to touch the trigger to get a response… so many shadow moves on accident while playing on pad just from shifting my grip, lol.
That’s a solid fix for people who fucked up their RT/LT, shame the source on the triggers pulses, otherwise it’d be so much simpler to use the already done source.
One thing you could try out… see if hooking to the 1.8v source of the analogs has adverse effects, single pull up on the RT/LT signal to the 1.8v source should nullify it, grounding would activate just the same and save some parts. Could use a single resistor instead of needing multiple, just easier to wire up overall. This is assuming you removed the HES of course.
Not saying putting the signal so high won’t cause problems, but I’d be super shocked if the analog input of the MCU had a max input that wasn’t higher considering the 3.3v I/O on the rest of the freescale micro is apparently 5v tolerant, lol.
Edit:
Actually, it shouldn’t matter that the HES source pulses. Hmm…
I’m soldering a line to the RC filter, then the diode which is simply popped onto the terminal block for ease, but if you are adding a resistor to the setup to avoid soldering to the tiny spots you could put it on either side.
Awesome idea, I didn’t even realize there was a 1.8v source I could tap into. I tried it and it works!. I forgot to mention that in addition to dropping the voltage down to 1.3v I also raised it to 3.3v just to see what would happen. I know this could have potentially killed the board, but I said fuck it, science bitch. Happy to report no adverse affects bringing the I/O pin up to 3.3v so 1.8v is perfect. I tied the 1.8v through a 10k pullup resistor to the RC filter and then used a temporary jumper wire to manually touch that node to ground and it registered a button press!
Btw, you don’t need to remove the sensor to get this trick to work, all you need to do is remove the RC filter. With the filter gone there is no path from the sensor’s output pin to the MCU so it’s essentially removed from the circuit.
Considering how sensitive the hall sensors are, I’m actually inclined to suggest this as the preferred method. The only thing it requires you to do is to remove the RC filter and then you have some real nice pads to solder to.