Cellular Radio Module and Framework version 4.2


I recently buy an Cellular Radio Gadgeteer Module
I try to add in my project and i have a message like “This module installer was not correctly set up, it does not provide a compatible assembly for .NET Micro Framework version 4.2”

And is there someone who have a simple example for use this module…


I think this thread talked about this device and driver

Yes but in this thread they talk about one function
I try to start a new project and I don’t know wath to do…

Hi plouf, I’m assuming you want TCP data so you can download a driver from https://tcpcellularradio.codeplex.com/. There is a placeholder codeshare at http://www.tinyclr.com/codeshare/entry/590.

The CellularRadioManager is provided for reference and is due to be integrated into the next driver release.

You can either link to the driver project, or install the WIX toolkit and build the project in Release mode to get an installer.

If you don’t need data, you can build your own driver from the main Gadgeteer trunk which will give you SMS and call functionality.

Hi Byron thanks for your answer

Yes I need for TCP Data

But I don’t understand what you say…
You tell me that I don’t need CellularRadioManager but you give me a link that use CellularRadioManager …

and when you say “You can either link to the driver project, or install the WIX toolkit and build the project in Release mode to get an installer.” I understand near like nothing … (between my english and my small knowlage it’s very hard…)

Current Gadgeteer drivers will not work for TCP data. You need to download driver from link that Byron provide, and include GTM.DLSys.CellularRadio.dll in your project.

Ok tvinko thanks I see GTM.DLSys.CellularRadio.dll, but how to use it ?
There is no CellularRadioManager inside !

on the exemple there is

// ctor with initialization
var _radioManager = new CellularRadioManager(_cellularRadio) { DebugPrintEnabled = true };

even if I try to create

public class CellularRadioManager : ITcpServerConnection


public RadioState RadioState { get; private set; }

is not recognise …

and when I add the gadgeteer visual component I Have the same message “This module installer was not correctly set up, it does not provide a compatible assembly for .NET Micro Framework version 4.2”

Sorry I think all problem is that I need some more knowledge … But if you can help me with all details as you can …

I don’t understand what exactly the problem is.

I’m using it this way :
I downloaded project with source code, and include it at my solution. The name of the project is CellularRadio_42
I build it, and add reference from my client application.

Then use it as a

cellularRadio = new GTM.DLSys.CellularRadio(4);

Ok thanks I think I take the wrong download…

So I Just doing something like :

CellularRadio cellularRadio = new CellularRadio(2);
cellularRadio.DebugPrintEnabled = true;

with dll or adding CellularRadio_42 project…

I try to use TCP commands if you have got any exemples it’s welcome


So I try to use for can you tell me if there is something wrong please …

I doing simply

 Debug.Print("Program Started");
cellularRadio.DebugPrintEnabled = true;

and my output is :

[quote]CellularRadio : Turning ON
CellularRadio : Turning module on
CellularRadio : <ÿ>
CellularRadio : <ÿÿ>
CellularRadio : <ÿ>
CellularRadio : <AT


CellularRadio : SENT: AT

CellularRadio : <AT+CMGF=1


CellularRadio : SENT: AT+CMGF=1

CellularRadio : <AT+CSDH=0


CellularRadio : SENT: AT+CSDH=0

CellularRadio : SENT: AT+CPBS=“SM”

CellularRadio : <AT+CPBS=“SM”


CellularRadio : SENT: AT+CPMS=“SM”

CellularRadio : <AT+CPMS=“SM”



It looks like not good , isn’t it ? [quote][/quote]

yes so i add like this :

cellularRadio.DebugPrintEnabled = true;
cellularRadio.SendATCommand("AT+CPIN=0000");  // my pin is 0000 but don't say to anyone....

and it 's the same…

There is no need for using AT commands by yourself. I have unlocked pin, but I think that there is plenty events, among others Pin required, so manage pin there.
The command set is here 系统发生错误
so look what is each error command from debug window. AT+CPBS is Select Mempry storage, which fails for me also, but I can receive and send tcp commands normally.

Also look for GPRS apn, user and password for your country

Look in method : private void TimerTick(object state) in driver
I added parameters in attachgprs method for my needs:

if (!_gprsIsAttached)
				if (!_gprsConnectionRequestSent)
					_radio.AttachGPRS(ApplicationSettings.GprsApn,ApplicationSettings.GprsUserName, ApplicationSettings.GprsPassword);
					_gprsConnectionRequestSent = true;


I try to find …
private void TimerTick

or the different variable _gprsConnectionRequestSent or _gprsIsAttached …

but no way…

is there someone who have a simple (complete) exemple for tcp mode with cellular module …

@ plouf30, please download the latest drivers from Codeplex and the revised codeshare entry here at http://www.tinyclr.com/codeshare/entry/590

_gprsConnectionRequestSent and _gprsIsAttached come from the CellularRadioManager example class.

Note that the PowerOn method should be called with a minimum value of 40s as documented in the SIM900 manual. Haven’t got around to forcing this in the driver.

If you still have problems, please start a new thread. If you have problems specifically with the driver please take the conversation to codeplex.

Good luck!

Thanks for your help Byron,
I think there is something (perhaps a lot of things) that i don’t understand …

with the sorce code I still have the problem
"Program.CellularRadioManager.RadioState’ is a ‘property’ but is used like a ‘type’ "

and now a new one
"No overload for method ‘ConnectTCP’ takes 3 arguments"


and have Merry Christmas Everybody ! (I hop Santa will give to you nice Gadgeteer Modules :wink: )

Manually add following line :

public enum RadioStateEnum { Unitialized, PowerOff, StartingUp, Ready, WaitingForGprsConnection, WaitingForIMEI, WaitingForNetworkRegistration }

Correct initialization with this line :

public RadioStateEnum RadioState { get; private set; }

Replace all RadioState with RadioStateEnum, where needed. Eg:

RadioState = RadioState.Unitialized;


RadioState = RadioStateEnum.Unitialized;

ConnectTCP has now one more parameter : time out.

Hi everyone !

now my drivers and project looks good thanks

but I have some AT troubles…

first in reponse I have :
+CREG: 1,0

so it’s looks nice but in debug I can see “GSM Network Registration Error”

I see in the code something like

reply = (response.Substring(first, last - first)).Trim();

in reply there is "1,0"
and in a switch for testing state CREG there is

int state = int.Parse(reply);

( so generate exception becaus of “1,0”)

is ther anything to do ?


Now it’s ok by adding (in CREG and CGREG check region …)

 reply = reply.Substring(0, 1); 

and I change




because i don’t see AT+CCREG in AT document but I see AT+CGREG so I try it … and it’s ok

for French people I try with “Bouygues Telecom” with no success (apn is normally “mmsbouygtel.com”) I try see with telecom support
with SFR it’s ok with apn “websfr”

Now I have my ip adresse ans I can try to send data !

Thanks guys for all the advices

me again …

If someone has an example for write an http request with :


thanks :wink:

Did you try making the request to google.com and monitoring the received data? google is very good at giving detailed diagnostic information. Wikipedia has examples of
simple Http request formats. the newlines are really important…