FEZ Cerbot 1.3 - Can't get started

[1st of all: Please excuse my English, I am not a native speaker]

I have got

  • a FEZ Cerbot 1.3
  • VS 2012 Update 3
  • NETMF and Gadgeteer Package 2014 R3.exe installed (without any Messages or errors)
  • updated loader using STDU Tester
  • updated Firmware using FEZ Config
  • i.e.: TinyBooter and TinyCLR is “up to date” (4.3.4.0)

(OS is WIN 8.1 with MS Office and VS 2010 installed. No games, not other packages, extensions fort VS 2010 oder 2012, no other IDEs, no other Controller relaxed stuff.)

I am trying to write my first App for the FEZ Cerbot device.

After “File/New/Project/C#/Gadgeteer/.NET Gadgeteer Application” a dialogue asks me to choose from FEZ Cerberus, Cerubino Bee, Cerubino Net, Cobra II Eco, Hydra, Raptor, Spider, G400 HDR Breakout.

In the documentation (I also googled a few hours) there is a FEZ Cerbot Mainboard (but not on my Computer) and a CerbotController (missing as well, while there are a lot of components and I would combine them, if I had any hint, how and which of these to connect to which port…)

If I choose Cerberus (“SON OF CERBERUS” is printed on my device) the basic program (not touched by me) stops with the 0x80131700 error in file MMP which I can’t access via double clicking. (And while I do programming since 1981, I doubt that I would be able to fix something. This is my first time dealing with “electronics” at all.)

I would be very happy to have a working getting started guide for the FEZ Cerbot with your current software. Doesn’t have to be official - just anything that helps me to make it flash a led or something … from that point on I think I will be much better, probably fine.

Thanks for your help!
Frank

try these

https://www.ghielectronics.com/community/codeshare/entry/926

https://www.ghielectronics.com/docs/174/fez-cerbot-guide

https://www.ghielectronics.com/docs/46/fez-cerb-family-developers-guide#3253

Thank you very much!!

  1. Works (I couldn’t have updated the Tiny Loader without reading it) but does not address the problem I described

  2. “Is the problem” - I tried to describe that just it does not work like that (anymore?).

  3. I already read this and posted a question for some hint, what to do with it. Obviously its build for non Gadgeteer projects. The (somewhat not working - see 2) documentation addresses Gazetteer projects …

Most beginners (and I am with respect to this device) need at least an entry point (from zero) until something happens with the device the can observe.

Do you know such an entry point or some documents filling the gaps here?

Thank you very much!!!
Frank

@ F. Laskowski - For the MMP issue, it is a known issue with NETMF. See http://netmf.codeplex.com/workitem/221 You can copy the file found at that link to %ProgramFiles%\Microsoft .NET Micro Framework\v4.3\Tools and it should work. You could also install the .NET Framework version 3.5 from the Windows features dialog.

You can find more information here: https://www.ghielectronics.com/docs/165/netmf-and-gadgeteer-troubleshooting#2499

THanks a lot!

While I found this one already, it was the missing building brick for me (*)!

Now I am looking forward to connecting some of the modules.

Very :slight_smile:
Frank

(*)
Some assembly references needed to be included also, so somebody not familiar with .NET would still be faced with an obstacle, esp. because some locations changed lately, so copying from older projects, documentation wouldn’t help.

Hello everybody!

Thanks for the help so far.
Connecting modules I am facing another problem:


The short version:

Obviously I don’t know (and can’t find any hint) how to use the sockets on my FEZ Cerbot.


The med-sized version:

I understood that the different Sockets can not all be used for the same kind of device depending on the “bus”- type/type of communication.

When I construct a new accelerometer I get an exception telling me that the accelerometer can’t be used on a port with an invalid port number.

I tried 0 thru 6, connecting my Accel G248 module, disconnecting, powering up and down before and after whatever step …

Same result.


The long version:

VS 2012 / Update 4 / NETMF Project

This is my Code:

using System;
using Microsoft.SPOT;
using GHIDevices;
using Gadgeteer.Modules.GHIElectronics;

namespace MFConsoleApplication1
{
public delegate void EventHandlerDelegate(object s, object a);

public class Program
{
    public static void Main()
    {
        Accelerometer acc = new Accelerometer(2); 
           // An exception is thrown here for numbers ranging from 0 to 6! 

        acc.Calibrate();
        FEZCerbot.StartBuzzer(400, 500);

        int measurementsTaken = 0;
        acc.MeasurementInterval = new TimeSpan(0, 0, 2);
        acc.MeasurementComplete += (s, a) =>
            {
                Debug.Print("Accelerometer completed measurment!");
                measurementsTaken++;
                if (measurementsTaken >= 10)
                {
                    acc.StopTakingMeasurements();
                }
            };
        acc.StartTakingMeasurements();
    }

}

}

Assembly References:
Gadgeteer
GTM.GHIElectronis.Accelerometer
Microsoft.SPOT.Hardware.PWM
Microsoft.SPOT.Native
mscorlib

and

FEZCerbot

Which is an assembly I put the code from

https://www.ghielectronics.com/community/codeshare/entry/926

in.

For all socket numbers from 0 to 6 with the accelerometer plugin or not a Gadgeteer.Socket,InvalidSocketException is thrown. The message is: “Module Accelerometer can not be used with invalid socket number X”

(And yes: The buzz-thing alone works.)


So what am I missing??
Any further documentation I need to read or code I need to include?

Thanks a lot in advance!
Frank

the accelerometer connection method you’ve used there is a Gadgeteer constructor, but your app is a non-Gadgeteer app. Fundamentally, you can’t just use the Gadgeteer code, you need to take the driver of the module you want and port it into a pure netmf application.

@ GHI, this is why pulling out some of these items from the Gadgeteer designer isn’t a good thing.

Hey thanks for the help!

For doing this, I would appreciate to have two more hints:

  • Where to find the correct (probably latest? But really???) open source version of the drivers for the modules?

  • Is there any infrastructure I would have to port as well?

Inspired by your reply I took the other direction … described in the next post.

Greetings!
Frank

Hello everybody and esp. beginners (like me)!

Below you can find one way (the easiest I found so far) to get the FEZ Cerbot running (with current software). Feel free to extend, improve, correct, warn …

Thanks a lot!
Frank

Basics: (overview over well documented first steps)

  1. Hardware: Microsoft Surface 3 Pro

  2. Operating System: Windows 8.1

  3. VS 2012 Professional Update 4

  4. NETMF and Gadgeteer Package 2014 R4 from:
    https://www.ghielectronics.com/support/netmf/sdk/23/netmf-and-gadgeteer-package-2014-r4

  5. Copied the included file “MetaDataProcessor.exe.config” to the
    “ProgramFiles (x86)\Microsoft .NET Micro Framework\v4.3\Tools” directory
    accordin to:http://netmf.codeplex.com/workitem/221

  6. Update the loader according to
    https://www.ghielectronics.com/docs/46/fez-cerb-family-developers-guide
    (The STDFU Tester application has been installed in Step 3)

  7. Update the firmware using FEZ Config
    Start FEZ Config and check for updates. The loader should be up to date after step 5,
    but the firmware might need to be updated. (In my case to v4.3.5.)
    (The FEZ Config application has been installed in Step 3)

THE PROBLEM:

You probalby can’t find any direct hint to your FEZ Cerbot device.

MY SOLUTION:

  1. Preparation: Make up a .NET MF class library to access your FEZ Cerbot device from any
    .NET MF application including .NET Gedgeteer applications.
  • Create a new .NET MF class library with a meaningfull name, e.g. “AdditionalGHIDevices”
  • Add three assembly references to the project:
    GHI.Pins
    Microsoft.SPOT.Hardware
    Microsoft.SPOT.Hardware.PWM
  • Rename your “Class1.cs” to “FEZCerbot.cs” and replace the code in it with the file from:
    https://www.ghielectronics.com/community/codeshare/entry/926
  1. Get going:
  • Create a new .NET Gadgeteer application
  • Choose the Cerberus mainboard (FEZ Cerbot is based on) and the Framework v4.3
  • Add the assembly reference to the .NET MF class library with the FEZCerbot class
  • Add the using statement, e.g. “using AdditionalGHIDevices”
  • Use the Members of the static FEZCerbot class, e.g. “FEZCerbot.StartBuzzer(400,500)”,
    to access the built in FEZ Cerbot Modules
  • Use any other modules the way described in the documentation for .NET Gadgeteer.
    (Its pretty straightforward with the visual designer provided by GHI.)
  • Be happy so far …
  1. Not figured out yet:
    I want to be able to write .NET MF class libraries/assemblies that access the FEZ Cerbot built in modules
    (no problem with FEZCerbot.cs) and .NET Gadgeteer Modules, when included by a .NET Gadgeteer project or
    loaded into it via the SD card module.
    Let’s see …
1 Like

@ F. Laskowski –
Sorry I didn’t see your posts earlier. Although they won’t supply all the [em]missing pieces[/em], they would have helped:

https://www.ghielectronics.com/downloads/man/Introduction_to_NET_Gadgeteer.pdf

https://www.ghielectronics.com/downloads/man/Learning_to_program_in_Visual_Basic_and_Gadgeteer.pdf

https://www.ghielectronics.com/community/forum/topic?id=16999&page=1#msg169307 (follow the link to the .NET Gadgeteer Hardware page for a description of socket types.)

@ F. Laskowski - This helped a lot! Thank you :wink:

… well, I am back at the device and I am somewhat stuck again.

Would be grateful to have hints again:

When I tried my modules I found the following:

Working modules:

  1. Accelerometer (worked with it already)

Don’t know yet:
2) Serial Camera L1 (at least no exception, when creating an instance)

Not working modules:

  1. Gyro - Not working at all! (Same System.Exception when connected or not connected)
  2. Compass Module (Exception on first use)
  3. Display N18 (Exception on first use)
  4. Reflector R3 (no driver)
  5. Distance US3 (no driver)
  6. Keypad KP16 (no driver)

Three questions arouse:

Q1:

I found a KP16 driver (NuGet).
But is this the appropriate one?
And what about the other devices? (*)
In other words:
Is there a list with drivers for GHI modules that were still sold less than 12 month ago by GHI?

Q2:

Writing drivers is another option.
To get started with this the following would be very helpful:

  • One simple but somewhat complete example (**)

  • Might be a list of open source drivers for the modules above (***)

Q3:
Or would you say: “Frank! Just by another kind of device. If you want something, where you can use .NET on a micro controller, learning to do things like using PWM, programming PID filters and addressing individual PINs, while also getting started with some ready “gadgets”, and you need some documentation to learn this - buy product XYZ …”?

Sorry, this sounds a little aggressive.
Somewhat frustrated today … but thankful for any hint, as always
Frank


Just ignore pls:

(*)
I am scared: Do I have to search for drivers of each of these products and install different versions without knowing when I am somewhat settled in?
I mean: Just for one discontinued educational device, not for a long living lead product?
When would I be able to start working with my robot?
I mean, writing applications with students to make robots do something robots do.
… if I want to have a meaningless complex modules installation nightmare I don’t need robots, I can use eclipse … Sorry!!!

(**)
That example might be distributed among several documents. But it should be working if done right by somebody who is not familiar with electronics, i.e. someone who its not saying “Yes, of course I have to activate a low pass filter on a PWM pin and have to sync with a GPIO pin that I just rewired to PIN 456 of my gyro because it has a yellow border.” (****)

()
I might port older software in terms of “software” but not in terms of “electronics”: As a beginner I am not capable of just knowing that PWM it now called HTS and I have to use a PID-Filter on HTS when I want to use it as PWM. (
*) That’s not FEZ (Freaking EaZy!) …

(****)
That’s nonsense, I know. But I am a software engineer and not an electrical engineer.

@ F. Laskowski

Did you look at :

https://www.ghielectronics.com/docs/299/discontinued-gadgeteer-module-drivers

In short for 4.3

MSI

https://www.ghielectronics.com/downloads/NETMF/SDK/GHI%20Electronics%20Discontinued%20Gadgeteer%20Modules%20SDK.msi

Source

https://bitbucket.org/ghi_elect/gadgeteer/src/f4166debf799d741ac2ced860d2d2af82cf5698c/Modules/GHIElectronicsDiscontinued/?at=master

[quote]1) Gyro - Not working at all! (Same System.Exception when connected or not connected)
2) Compass Module (Exception on first use)
3) Display N18 (Exception on first use)[/quote]

Narrow down and post a screenshot of output window and your code. Please avoid frustration… don’t let them pile-up!

[quote]4) Reflector R3 (no driver)
5) Distance US3 (no driver)
6) Keypad KP16 (no driver)[/quote]

Sorry, the drivers for discontinued modules are not distributed with the main SDK. The source for all drivers can be found in our repository ( https://bitbucket.org/ghi_elect/gadgeteer ). Indirect links to that do exist on our support page for .NET Gadgeteer; but given the learning curve you’re fighting, I expect there will be lots of nooks and crannies on our website that don’t jump right out at you.

That should answer most of Q1 and Q2 (I hope!)

In all seriousness if you run into:

[quote]… of course I have to activate a low pass filter on a PWM pin and have to sync with a GPIO pin that I just rewired to PIN 456 of my gyro because it has a yellow bo…

… knowing that PWM it now called HTS and I have to use a PID-Filter on HTS when I want to use it as PWM[/quote]

Please let us know. If you dive below .NET Gadgeteer into NETMF programming, then an understanding of devices and electronics becomes necessary… But you can look at the source code to .NET Gadgeteer programs/drivers to make the transition easy

Have you stumbled across this:
http://www.ghielectronics.com/docs/174/fez-cerbot-guide

I would say - the cerbot isn’t necessarily a great “mainboard” to get working first up. Cerberus would be a better first user device. I’d also say that the now discontinued modules are not a good set of modules to get working either, although the others have given you good pointers to getting that working with the now limited support there is.

I would suggest getting a Cerberus to make sure you get the best Gadgeteer experience and not have to navigate some of these challenges - to give you the best experience with what should be the least pain; then once you’ve got the exposure you are more prepared to tackle the cerbot.

For all those who want to use FEZ-Cerbot with .NETMF 4.3, there are installer for FEZCerbot and its CerbotController.

It works with my Visual Studio 2012.

Happy programming,

Maik

I too am trying to get started. After failing to find the Cerbot in the toolbox, I uninstalled everything and started over with:
VS 2010
.Net Micro Framework 4.2 QFE2
Netmf and gadgeteer package 2013 R1

This worked OK but I still don’t see Cerbot in the toolbox.

I understand why the discontinued hardware doesn’t show up in the latest gadgeteer SDK, but why doesn’t it show up in the older version either?

@ clarkpark - I believe you went back too far. Try 2014 R1 or 2013 R3.

Doesn’t seem to work with the latest SDK. I’m getting the following:

Link failure: some assembly references cannot be resolved!!

Assembly: CerbotTest (1.0.0.0) needs assembly ‘GHIElectronics.Gadgeteer.FEZCerbot’ (1.0.0.0)

Assembly: GHIElectronics.Gadgeteer.FEZCerbot (1.0.0.0) needs assembly ‘GHI.Hardware’ (4.3.5.0)

Assembly: GHIElectronics.Gadgeteer.FEZCerbot (1.0.0.0) needs assembly ‘GHI.Usb’ (4.3.5.0)

Assembly: GHIElectronics.Gadgeteer.FEZCerbot (1.0.0.0) needs assembly ‘GHI.Pins’ (4.3.5.0)

Error: a3000000

My version of the GHI assemblies above is 4.3.6.0. When I’ve got more time, I’ll try to dig into the github source and see if I can resolve this myself, but if someone else has run into this and knows the solution, please let me know.