I have my controller port and internal controller wired up according to this diagram:
But when I switch from position2 (external=player2) to position1 (internal turned off) without an external controller plugged in, random things keep happening, usually the joystick reads movement in any direction and it gets stuck like that until I plug in a secondary controller. Once it even triggered the start button, though I'm not sure if that was actually related to the same problem. I also have the same issue when I switch back to position2.
Is there a problem in actually cutting power to a controller that it sends a burst of data when turned on/off?
I should preface this reply by saying I have no idea what's causing this. Anyway, try measuring the voltage of the data line in position 1 when the external controller is disconnected and when connected. It should rest at 3.3V most of the time. If it is floating under this then that may be due to the internal controller. Does this problem only occur when you switch the positions while the console is on? I can see no conceivable other way there could be a problem with position 2.
If you use the same external controller does the joystick always move the same way (or 180 degrees opposite)? When you switch does the game you're using come up with a no controller message or is it a fast enough switch?
Yes, the data line is at about 2.2 when it's in position 1. I changed the upper half of that switch to switch the data lines of the internal controller as opposed to the power, and had no more trouble. This might decrease my battery life ever so slightly when using an external controller instead of the internal, but it's better than the controller having spasms when I switch schemes during a game.
Thanks for your input, I wouldn't have thought to check for any kind of voltage drain.