FEZ Mini Starter Kit Not working?

Hello Experts,

I have been in programming for a long time, but I am first-timer to the Robotics World.
I have ordered the FEZ Mini Kit, the kit arrived this morning. unfortunately, I have spent 10+ hours today and still could not get it to work properly. I suspect that the problem has to do with my Windows 7 (32 bits) couldnt find a workable driver for USBizi? (as it show a yellow exclamation mark on devices manager)
as the result, .Net Micro Framework could not recognize USBizi (nothing shows when I selected device=USB)

I have been doing lots of research trying to find a workable driver for USBizi, but no luck. These were what I have installed: Visual Studio Professional 2008 +SP1 (with C#), .Net Micro Framework 4.0, GHI NETMF SDK.

-Another thing seems wierd is after I reassembled the kit, the LED light keeps blinking…was that by design?)

-When I pressed the toggle button Di2 or Di4, 99% o the times nothing would happen, one awhile (rarely) one of the wheels spin…(are they supposed to spin everytime their corresponding button is pressed?)

Again, I know nothing about robotics so please forgive me for such stupid questions. but I am so desperate to get this thing works.

-Thanks in advance!
Hai Nguyen

Just come here and ask for help. No need to spend 10 hours :slight_smile:

Start simple, disconnect everything from the mini and only connect the USB cable to your pc. The led may blink since we load the mini with blinking test before we ship them.

Now, the drivers are in the GHI folder in program files. There are 2 drivers. If one didn’t work then try the other.

Once drivers are loaded let us know what driver dud load.

Do not force the driver loading. Windows should tell you if the driver is suitable or not

-I am not clear what is the point you are trying to make on this step because as I expected, if I disconnected USB cable from Mini, then PC will immediately unload the USBizi driver. So I leave the cable intacted so I can right click on erroneous driver and update driver for it. on the next step

-Got it, this is what I have been wasting 10+ hours yesterday for. just in case there are others “not-so-bright-mind” someone out there like me… the driver mentioned above located some where under this path: C:\Program Files\GHI Electronics

For my understanding purpose of these buttons, could you briefly explain this question as well:

Thank You!

My point was you not having any components connected (not even the starter kit board) to the mini that is causing it to reset. Start by the device and USB cable ONLY and once you can load a blinking LED project and maybe read a button then you can start connecting things.

I didn’t understand your other question!

@ Gus :
I think he is using the robotics starter kit.

@ Hai:

Have you connected the board to an USB-hub?
If so , try connect the board to a normal USB port without hub

On Windows 7 you have to interrupt Windows when it first tries to load the driver, then go to Device Manager, find the FEZ/USBizi in the list on unknown devices, open it up and tell it you want to update the driver.

Windows 7 makes it MUCH harder to manually point Windows to the correct driver when a device is first inserted. To the folks at GHI, can you somehow ‘load’ the driver (in System32?) when the SDK is loaded to prevent folks from needing to go through this dance of pointing Windows to the correct driver manually?

Hmm,

I also use Windows 7 32bit and the driver installation works fine. Without any problems

Maybe it depends which chipset combination is on the mainboard :confused:

Thank you guys for helping. Yes, I got Fez Mini robot starter kit.
My initial issue has been solved after installed the correct USBizi driver, I could flash the robot with the blinking program from VS 2008 and see LED acting.

now I need help on making wheel spinning, turning left/right, that sort of cool stuffs :slight_smile: but I have no idea where those classes are and methods I should be calling. Could someone thow me some sample code please!!!

this is all i have so far :-). that is all I know.

using System;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using GHIElectronics;
using GHIElectronics.NETMF;
using GHIElectronics.NETMF.FEZ;

namespace MiniProject
{
    public class Program
    {
        public static void Main()
        {
            OutputPort MainLED = new OutputPort((Cpu.Pin)FEZ_Pin.Digital.LED, true);
            OutputPort Di2LED = new OutputPort((Cpu.Pin)FEZ_Pin.Digital.Di2, true);
            OutputPort Di4LED = new OutputPort((Cpu.Pin)FEZ_Pin.Digital.Di4, true);
         
               while (true)
             {
                 try
                 {
                     MainLED.Write(true);
                     Di2LED.Write(true);
                     Di4LED.Write(true);
                     Thread.Sleep(300);
                     MainLED.Write(false);
                     Di2LED.Write(false);
                     Di4LED.Write(false);
                     Thread.Sleep(300);
                 }catch(Exception e){

                 }
             } 
 
        }

    }
}

:slight_smile: please stop laughing!!! I am just trying to have some fun here.

Thanks!

My robot is pretty dumb now, it couldn’t even move, all it does is sitting there and flashing LEDs :slight_smile: I want to see my robot mobilized. Which libraries should I use to control motors, sensors (A6,A7) Servo ports, etc. ?

Thanks!

Hi Hai,

a good start is to use the demo application here

http://www.tinyclr.com/hardware/2/fez-mini/

http://www.tinyclr.com/downloads/Mini/FEZMiniRobot-Demo.cs

http://www.tinyclr.com/downloads/Mini/FEZMini_Robot.cs

Add the classes to a project and start :smiley:

For movement:

FEZMini_Robot.MoveRamp(-100, 100, 10);
FEZMini_Robot.MoveRamp(100, -100, 10);

Now my robot can do something…
Thank cypher
Thanks Foekie…You guys rock!

I noticed in one of the classes “FEZ_Mini_DEMO” it used FEZ_Components. (see below) but i couldnt find where the class is. i couldnt use it, any idea?

thanks!

    
public static FEZ_Components.Piezo myPiezo = new FEZ_Components.Piezo(FEZ_Pin.PWM.Di3);

        public static void Main()
        {

            FEZ_Components.LED OnBoardLED = new FEZ_Components.LED(FEZ_Pin.Digital.LED);

            FEZ_Components.LED LED1 = new FEZ_Components.LED(FEZ_Pin.Digital.An0);

            FEZ_Components.LED LED2 = new FEZ_Components.LED(FEZ_Pin.Digital.An1);

            FEZ_Components.LED LED3 = new FEZ_Components.LED(FEZ_Pin.Digital.Di9);
FEZ_Components.LED OnBoardLED = new FEZ_Components.LED(FEZ_Pin.Digital.LED);

FEZ_Components.LED LED1 = new FEZ_Components.LED(FEZ_Pin.Digital.An0);

FEZ_Components.LED LED2 = new FEZ_Components.LED(FEZ_Pin.Digital.An1);

FEZ_Components.LED LED3 = new FEZ_Components.LED(FEZ_Pin.Digital.Di9);

As you can see it’s a LED component. The driver for this is listed below:

is there a URL for the complete FEZ_Components class, I see multiple urls of this partial class, each covers few components drivers.

Thanks, Hai

Here is a link but try not to use it! It is better if you know what you need and then go find the download under the component

http://www.tinyclr.com/downloads/Component/

Ok back to the PWM question, I have Mini robot kit, I still confuse about the code to control motor A and B. If you look my suedo code below assumming A6,A7 variables in suedo code below represent signal recieved from A6 and A7 reflective sensors respectively, where True means got reflective, and False means no reflective detected. One wants to make simple operations as noted in 1-4 below. My question is can the existing the MoveRamp method be used to achive (1), (2) and (3) below? if so how would the code look like? FYI: my kit does not current have servo motor yet, so turn left/right is not an option for this example


while (true)
{
	if (A6 && A7 ) //if reflective detected on both sensors
	{
	   //1) stop/reverse both motor B and A
	}
	else if (A6 && !A7 ) //if only A6 sensor detects reflective 
	{
	  //2) stop/reverse motor B, run A
	}
	else if (A7 && !A6) //if only A7 sensor detects reflective 
	{ 
	  //3) stop/reverse motor A, run motor B
	}
	else //if none of sensors detects any reflective 
	{
	  //4) run both motor B and A	   
	   FEZMini_Robot.MoveRamp(-100, 100, 10);
	   FEZMini_Robot.MoveRamp(100, -100, 10);
	}
}

Thank You!

Your question is not related to PWM. You basically need to read the reflector sensor and depending on the ir level you would move the robot.

Try to read the values from the reflective sensor and print them to the output window then try to put a white sheet of paper to your sensor to see how numbers change.

Your question about controlling your motors can be easily answered.

As you take a look in visual studio, you can hold your mouse on MoveRamp, you will now see addictional info:

void FEZMini_Robot.MoveRamp(sbyte speed1, sbyte speed2, byte ramping delay)

And this is your code:

	   FEZMini_Robot.MoveRamp(-100, 100, 10);

Now have a look at how it works. you can see the values -100, 100. Those are your motor speeds (directions) and 10 is the ramping delay.

There seems to be an error on the forum, certain characters in the (code) block can turn it into non-readable. It may be the double quotes, that caused the issue?