I picked up the SIM reader kit and after having played around with it for a while, I have to say: Excellent!
I've learned a lot about how SIMs work trying this project, reading some of the references, and poking around the pySimReader code. Always better to learn by doing.
After all the fun with this project, I'm excited and got to thinking: It might be interesting to try interfacing directly to the phone's SIM interface using software on my computer to communicate from the SIM card end of the conversation back to the phone. Start by using a software proxy and watching between the phone and the real SIM card (the SIM reader interface would work nicely for that), and eventually try completely SIMulating the SIM card (badum,bum).
I've started playing around with this and after trying a few different things, came up with a home-made dummy "sim-card cable" to interface to the phone with. It basically connects 6 contact points on a thin "fake" SIM card to some fairly thin insulated wires so the card can fit and run out from underneath phone batteries or other tight places where phone SIM card sockets live. The other end of the wires are connected (soldered on a fragment of pc board) to some male pin headers which connects nicely on a prototyping bread-board, or down the road to a female header interface. The SIM-card end is pretty sturdy and it fits well in several cell phone's I've tried it on so far (if a little snugly). Feeling really good, until I realize I'm kind of at a brick wall.
The obvious next step now is to design the circuit so I can converse with the phone. But, my lack of experience here has got me a bit wary. I'm still learning my way in all this stuff with limited electronics experience so far. But my general thought process is that the circuit for my dummy SIM cable can use the SIM reader design as a basis and reference.
The first part I'm unsure about lies in the single I/O on the SIM interface side. The SIM reader circuit uses an NPN transistor to allow the 2 receive/transmit signals from the serial connection to share a single pin on the SIM card. Would it work the same in reverse? Would I use a PNP transistor, instead? I've got a pretty decent grasp of normal serial communications and I think I can figure some of the rest out, but that single I/O pin has me hesitating.
Also, the programming pin in the SIM interface: I know nothing about. It's not dealt with too much in the SIM reader project either except for a brief mention in your (awesome) citizen engineer video. I'm naturally curious here too. Does that work similar to the I/O pin?
Any pointers would be very appreciated. Thanks again to Lady Ada and Torrone for making accessible this new area to play around in.