My first Gadgeteer Module problems

I’ve created my first Gadgeteer module driver, but I can’t get it to show in the designer. It shows as a reference that I can add to my project though… I used the latest module template from Codeplex. What am i doing wrong?

<?xml version="1.0" encoding="utf-8" ?>
<GadgeteerDefinitions xmlns="http://schemas.microsoft.com/Gadgeteer/2011/Hardware">
  <ModuleDefinitions>
    <!-- This module definition should be filled in.  Mouse over any attribute name to get more help about that attribute. -->
    <!-- The Unique ID is auto-generated and does not usually need to be modified. -->
    <ModuleDefinition Name="CapTouch"
                  UniqueId="3aa85321-6940-4333-84e6-43f6538db33e"
                  Manufacturer="GMod"
                  Description="A CapTouch module"
                  InstanceName="CapTouch"
                  Type="Gadgeteer.Modules.GMod.CapTouch"
                  ModuleSuppliesPower="false"
                  HardwareVersion="1.0"
                  Image="Resources\Image.jpg"
                  BoardHeight="97"
                  BoardWidth="97"
                  MinimumGadgeteerCoreVersion="2.41.100"
                  HelpUrl=""
      			>

      <!-- Assemblies listed here are added to the project as references by the designer whenever this module is instantiated.  -->
      <!-- This functionality is used to -->
      <!--   (1) include the output assemblies of this template -->
      <!--   (2) include other custom assemblies that the module relies on (NB you must edit msm.wxs so these are installed too) -->
      <!--   (3) indicate a reliance on a Gadgeteer assembly other than Gadgeteer.dll (which is always referenced) -->
      <!-- Some examples are provided inline: -->
      <Assemblies>
        <!-- This lists the assemblies which provides the API to this module, i.e. the output assemblies of this template. ((1) in the list above) -->
        <!-- If you do not provide support for both NETMF 4.1 and 4.2, the relevant lines should be removed -->
        <!-- NB you should use the same name for the same assembly's NETMF 4.1 and NETMF 4.2 versions, since this will make it easier for users to change framework versions -->
        <Assembly MFVersion="4.1" Name="GTM.GMod.CapTouch"/>
        <Assembly MFVersion="4.2" Name="GTM.GMod.CapTouch"/>

        <!-- If your module relies on another assembly, then list it here (and see the msm.wxs file since you need to include it in the installer too), e.g.: -->
        <!--
        <Assembly MFVersion="4.1" Name="GMod.CustomAssembly"/>
        <Assembly MFVersion="4.2" Name="GMod.CustomAssembly"/>
        -->
        
        <!-- If your module either relies upon or is often used with a .NET Gadgeteer assembly other than Gadgeteer.dll, then list it here -->
        <!-- so that the designer automatically includes it when your module is included - e.g. by uncommenting the lines below -->
        <!-- These .NET Gadgeteer assemblies were separated out for NETMF 4.2, so don't need to be listed for NETMF 4.1 as separate -->
        <!-- Uncomment any of the below that you require for this module. -->
        <!--
        <Assembly MFVersion="4.2" Name="Gadgeteer.SPI" />
        <Assembly MFVersion="4.2" Name="Gadgeteer.Serial" />
        <Assembly MFVersion="4.2" Name="Gadgeteer.DaisyLink" />
        -->
        
        <!-- If this is a networking module, then uncomment all four lines below to include Gadgeteer's web client/web server libraries -->
        <!-- 
        <Assembly MFVersion="4.1" Name="Gadgeteer.WebClient" />
        <Assembly MFVersion="4.1" Name="Gadgeteer.WebServer" />
        <Assembly MFVersion="4.2" Name="Gadgeteer.WebClient" />
        <Assembly MFVersion="4.2" Name="Gadgeteer.WebServer" />
        -->
      </Assemblies>

      <!--
      This is an example socket specification with two sockets on the board.  
      The socket positions are specified in mm from the top left corner of the board, with the orientation 90 indicating the socket notches are pointing upwards (0=right, 180=left, 270=down)
      -->
      <Sockets>

        <!-- This example socket is compatible with socket types XY which has electrical connections to pins 3 and 4 -->
        <Socket Left="15" Top="93" Orientation="90" ConstructorOrder="1" TypesLabel="I">
          <Types>
            <Type>I</Type>
          </Types>
          <Pins>
            <Pin Shared="false">2</Pin>
            <Pin Shared="true">8</Pin>
            <Pin Shared="true">9</Pin>
          </Pins>
        </Socket>

      </Sockets>

      <!-- Use the ExtraLibrariesRequired element if this module requires specific firmware libraries to be provided by the mainboard, and so is limited to a subset of mainboards. -->
      <!-- 
      <ExtraLibrariesRequired>
        <Assembly MFVersion="4.1" Name="FooHelper" ErrorMessage="This module only works with the MainboardName1 or MainboardName2 mainboards." />
        <Assembly MFVersion="4.2" Name="FooHelper" ErrorMessage="This module only works with the MainboardName1 or MainboardName2 mainboards." />
      </ExtraLibrariesRequired>
      -->

      <!-- Also use the ExtraLibrariesRequired element if this module represents built-in functionality in a mainboard, listing the mainboard's driver as the required assembly. -->
      <!-- 
      <ExtraLibrariesRequired>
        <Assembly MFVersion="4.1" Name="GMod.Gadgeteer.MainboardName" ErrorMessage="This module is built-in to the MainboardName mainboard, so cannot be used with any other mainboard." />
        <Assembly MFVersion="4.2" Name="GMod.Gadgeteer.MainboardName" ErrorMessage="This module is built-in to the MainboardName mainboard, so cannot be used with any other mainboard." />
      </ExtraLibrariesRequired>
      -->
      
      <!-- Use the ProvidedSocket tag if this module provides a socket that another module can plug into -->
      <!-- The example below is for DaisyLink modules which provide a socket type "*" -->
      <!--
      <ProvidedSockets>
        <ProvidedSocket Label="*" Left="30" Top="10" Orientation="0" ConstructorParameter="DaisyLinkSocketNumber">
          <Types>
            <Type>*</Type>
          </Types>
        </ProvidedSocket>
      </ProvidedSockets>
      -->

    </ModuleDefinition>
  </ModuleDefinitions>
</GadgeteerDefinitions>

Did you modify the msm.wxs file at all? What files were installed in the module folder?

@ Steven,
I didn’t edit that file. Only edited GadgeteerHardware.xml.

NETMF 4.1 amd 4.2 contains the same files(content might not be the same). Resources contains Image.jpg

Did you make sure to edit common.wxi to have your SafeManufacturer and FullManufacturer? What about the project properties tab/AssemblyInfo.cs? Have you checked that its not in the toolbox? It could be in the incorrect tab. I have this happen from time to time. See if you have a tab in the toolbox named “ManufacturerFullName”

Looked through those files. I didn’t edit them, but they are correct. I think the new module template wizard modified them.

My module is nowhere to be found. I only have Seeed, GHI Electronics, Gadgeteer Mainboards and General under the tabs, and it isn’t in any of them…

Hm. I haven’t used the wizard yet, so I’ll try it and see what happens.

Edit: Tried the wizard, made a new project, and didn’t change a single thing, just compiled and installed. Showed up in the designer properly.

Have you restarted Visual Studio after you have installed your module driver?

Yep, restarted VS2010 and Win7…

Bummer. Guess I must start from scratch and see what happens…

Did you compile your solution in Release mode and then go into the setup projects bin\Release\Installer folder and installed the .msi file? I am using the latest 4.2 templates.

Created a new template for my 3D Compass and everything is working fine.

Don’t know what is wrong with my CapTouch driver. Will restart the driver then I’m done with the compass driver…

Thanks for everybody’s help…