Understanding modules


I have some questions about the various gadgeteer modules like GPS, compass etc:

  1. Does a module itself have any software on it?
  2. Does NETMF “know” about all these different types of module?
  3. Do modules (like a GPS module) all have to comply with some MS standard?
  4. If I found a better GPS chip/board could it be used as-is?
  5. How many logical cores are there on Raptor board?
  6. What’s the best, most reliable WiFi board to use with a Raptor?
  7. Can I use TCP and UDP over WiFi?
  8. Can I use WiFi modules from another vendor with a Raptor?

Incidentally I recently started a blog and have posted about GHI, here is URL:

Assuming you’re talking about Gadgeteer modules here…

  1. maybe, depending on the module. For example, the “DaisyLink” module family have an intelligent processor on them.
  2. it doesn’t. The “driver” for that module is included in the Gadgeteer library that Visual Studio includes in your app when you include that module in your design.
  3. Gadgeteer dictates standards for the connection. It basically defines what type of socket has what type of processor IO interface on it.
  4. no, the module is the module. You could potentially however use the driver code, modified or unmodified depending on your new GPS functions, but it would be unlikely you could take a module and unsolder the core component and solder in a new one.

Here’s where your questions are a bit whacky.

  1. there are no “cores”. There is one processor that has a single processing stream.
  2. YMMV, but the GHI one. Which one of the GHI boards is a different question and not a simple “pick this”.
  3. perhaps. that’s a multi-level problem. You need to explain more about what you want to do before that can be really answered.
    8.) perhaps. You need a driver - the driver is the challenge. If someone (or you) writes the driver, and integrates it to netmf, then yes.

I assume you use a Premium board because you named the Raptor.

  1. as Brett said

  2. NETMF doesn’t. Some are included in GHI Firmware like Network (ENC28) and WiFi.
    If it’s not in the FW, then there is usually a driver that comes with the Module.

  3. MS Defines a Standard for the Electrical Interface (the connector) and gives a guide line for the mechanical form factor (size, hole diameter/distance, …
    For drivers there is no standard interface or framework as far as I know.

  4. You need to connect it to any one of the 10-Pin Socket types (Like S for SPI), and provide a driver for it.

  5. As Brett said: It’s a single core processor, no HT or something like this. I don’t think NETMF would support multicore. But it supports threading (which are scheduled on the one core, just like in good old pre Win2k times :smiley:

  6. Can’t tell, but the driver for the one provided by GHI is built into the Firmware, so it should be quite performant.

  7. I use ENC28 with G120 SoM (with the ENC28 FW driver).
    I could use anything so far (TCP, UDP) as I know it from the Win.Net.
    So if you use the GHI Wifi I assume it’s the same.

  8. I would say yes. You need to provide a driver for it. I’m not sure if you can use the FW builtin TCP stack, so you have two options:
    Use a Chip that has TCP Stack onboard, or provide your own stack (like the one in the mIP project (look in Codeshare).
    btw. the mIP stack can be used with different hardware than ENC28. You just need to implement an Interface for your chip.

I just had a glimpse at your blog.
If you are interested in Desktop/µC Interaction, then you should have a look at Lynx from GHI as well.

@ Barraty - Well written and interesting blog.

There is a module driver framework that you have to use to create Gadgeteer module drivers. If not the pseudo drivers you create will not work with the designer surface and will most likely not play well with other modules.

Microsoft also provides a VS template for building module drivers, it does require a separate download and install in addition to the standard install that you would do for typical .NETMF + Gadgeteer development.