I've been in contact with IComSat regarding this issue. I still don't have a 100% definite answer but it is most likely related to the netduino's 3.3V GPIO.
If I power the netduino independently without a debugger attached (hence reproducing the problem described), and I then MANUALLY feed a 5V feed to PIN 9 on the shield, the SIM900 powers up without issue. So basically, setting PIN 9 on the netduino to HIGH doesn't work, while jumpering a 5V feed to PIN 9 works.
What baffles me is why the thing works totally without issue (and without fail!) with the Visual Studio debugger attached. Does the Netduino somehow use 5V GPIO when a debugger is attached?
I understand the IComSat shield was designed for the Arduino (hence 5V GPIO), so I'm not too worried as I was aware of the "risk" before buying, though I'd really love to know the definite reason why this happens. At least I have a workaround to get the thing powered up via software
It is interesting. I swear all these guys must use the same circuit design. I myself use a board from SeeedStudio, and it also uses D9 for the power switch. And so does another from another manufacturer who's name escapes me.
Anyway, some things:
* the SIM900 is a 2.8v device. You can use the goog to find "SIM900_HD_V103.pdf" for gory deets, but it's not a 5v device, not even 3.3 really.
* it's a kind of a kooky device, and seems to want to be a phone (e.g. the input voltage is pretty clearly that of a LiPo battery), and this whole 'power on' line operation is like for a human operated switch rather than a computer.
But, quirks aside, it (the SIM900) does work -- I have been using several in the field continuously for months now.
I don't believe the 'designed for 5v' assertion unless there's level shifters from 5v logic to 2.8v logic, and they all looks like direct wired connections to me, based on the schematic.
I'm looking at the schematic for your board from:
http://itead-europe....009_IComSat.pdf
I can see VIN on p1 in section B-3, and then in area B-6. They are drawing VIN from your netduino's 5v line (which they call VDD5), not from the Vin pin (which comes straight from your power jack).
The Netduino's 5v line comes from either of two sources: USB, or power supply. There's a comparator and mosfet switch that selects between the two depending on whats plugged in. When it is operating off of USB, the onboard voltage regulator (to 5v, separate one to 3.3v) is not used, and when it is operating off of a jack, the onboard voltage regulator is used.
The SIM900 will suck the bejesus out of your power supply, especially during power-on and certain radio operations (and even worse if the signal is poor and the radio tries speaking loudly). They say be prepared for up to 2A!
An interesting experiment might be for you to run your program not in the debugger, but nonetheless connected to the computer via USB (i.e. just for power). Pass/Fail? And you could even -- but I know you won't -- but you could even cut just the +5 from your usb cable and power the board from the external supply, and this time be connected to the debugger (i.e. power from supply, but only data over usb). Pass/fail?
Anyway, see if they have a new revision that corrects the power supply design issues, or look to another vendor's product. But for experimentation you can make do with this one. And if you're bold, you can probably cut a trace and re-rerout the radio board's VIN to the netduino's Vin (instead of 5v). But by all means check the schematic yourself, as well as the feasibility from the pcb standpoint.