Package installer with many imporovements

Hello community,

Sorry this took longer than expected and we even had to rush things to get this out before the end of the day. Can you guys try it out and let us know what you find.

This release has some important fixes for hydra and covers the camera problem for spider.

As for FEZ Hydra
• Fixed socket 4 SPI module to use the correct channel.
• Added support for Gadgeteer Mainboard specific storage interface.
• Added Bitmap Converter support.
• Dynamic LCD Configuration support added.
• PWM wave inversion corrected.
• I2C is now fixed to use the correct pins.
• Fixed USB issues where some machines failed to connect.
• Ethernet enabling (ENC28 module) is not dynamic, 2 firmware versions are provided for now.

As always, please see release notes in the SDK.

Note: This will be deleted in few days and an official announcement will be made.

GHI Support Team

bad link, works if pasted. on to testing…

spider and usbizi (Panda 1) installers work fine.
will try hydra updater later tonight

Ok, changed the file name on server and updated the link. It should work fine now.

Perfect! Will try it tonight.

Awesome, downloading now. I’ll check it as soon as I get back home. :smiley: :smiley: :smiley:

Just tested the installer and it all worked ok. Updated firmware ok and it’s alive and kicking.

Though, the camera seems to be playing up

Pressed Button

Program Started
Camera ERROR : Camera Timeout, Restart Streaming.
Camera ERROR : Camera Timeout, Restart Streaming.
Camera ERROR : Camera Timeout, Restart Streaming.
Camera ERROR : Camera Timeout, Restart Streaming.

Picture appears, then it seems to have crashed.

Program here:

using System;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Presentation;
using Microsoft.SPOT.Presentation.Controls;
using Microsoft.SPOT.Presentation.Media;
using Microsoft.SPOT.Touch;

using Gadgeteer.Networking;
using GT = Gadgeteer;
using GTM = Gadgeteer.Modules;
using Gadgeteer.Modules.GHIElectronics;

namespace CameraTest
    public partial class Program

        // This method is run when the mainboard is powered up or reset.   
        void ProgramStarted()
            Modules added in the Program.gadgeteer designer view are used by typing 
            their name followed by a period, e.g.  button.  or  camera.
            Many modules generate useful events. Type +=<tab><tab> to add a handler to an event, e.g.:
                button.ButtonPressed +=<tab><tab>
            If you want to do something periodically, use a GT.Timer and handle its Tick event, e.g.:
                GT.Timer timer = new GT.Timer(1000); // every second (1000ms)
                timer.Tick +=<tab><tab>

            // Initialise event handlers
            button.ButtonPressed += new Button.ButtonEventHandler(button_ButtonPressed);
            camera.PictureCaptured += new Camera.PictureCapturedEventHandler(camera_PictureCaptured);

            // Use Debug.Print to show messages in Visual Studio's "Output" window during debugging.
            Debug.Print("Program Started");

        void camera_PictureCaptured(Camera sender, GT.Picture picture)
            display.SimpleGraphics.DisplayImage(picture, 5, 5);

        void button_ButtonPressed(Button sender, Button.ButtonState state)


What happens if you wait? Still times out?

This is going to sound strange but can you try it in a bright light?

I pressed the button once previously and it started to send that message every second until the picture displayed. (I rebooted it and the same happened again)

But, I’ve just re-run the program via visual studio and now it’s working perfectly.

Maybe something went wrong the first time the program go transferred.


Actually these are not error messages. The Camera might take a while to sync up the video streaming at the first time. It might take few seconds to get the first picture so we restart the streaming internally. But it should work smoothly after that since the video streaming is still running in the back ground thread.

The streaming stops if the picture is not being taken for one minute by default.

Do you have more details on how it is crashing?

I think that message is confusing to users. Error means error but this is not an error. This should be removed or changed. Let’s see how the new drivers work for others.

Basically, the button didn’t do anything afterwards and after around 20 seconds this produced an exception:

display.SimpleGraphics.DisplayImage(picture, 5, 5);

(I lost the exception information, sorry)

I’ve tried to get it to fail again but I cannot.

I have noticed that it seems to have buffered some pictures. I.e. if I put my hand in front of the camera and press the button immediately it takes a few more camera presses before the picture with my hand appears. Is that expected behaviour?



Yes the camera images have lag.

Thanks Gus. (I never got that far before :wink: )


Hydra updater app worked great with VMWare USB Arbitration Service on. Yay! A successful log looks like this:

– Log –
Connecting to device…
Hydra found at Port#: COM12
Device will be updated automatically! DO NOT disconnect or turn off the device!
TinyBooter updated sucessfully. Version number:
Updating Firmware. Please wait…
Deploying C:\Program Files (x86)\GHI Electronics\GHI OSH NETMF v4.1 SDK\FEZ Hydra\Firmware\FEZ Hydra Firmware\ER_CONFIG … successful!
Deploying C:\Program Files (x86)\GHI Electronics\GHI OSH NETMF v4.1 SDK\FEZ Hydra\Firmware\FEZ Hydra Firmware\ER_FLASH … successful!
Firmware updated sucessfully. Version number:
Updating TinyBooter and Firmware is done!

My OLED works! I can attach the SD card without it blowing up!

Pardon me, I need to go do a little dance and then get back to programming.

Looks like SD card could still use some work. It detects & mounts ok but I’ve got a card with 6 files in the root and the following code returns 0 files:

            Debug.Print("Root: " + sdCard.GetStorageDevice().RootDirectory);
            string[] s = sdCard.GetStorageDevice().ListFiles(sdCard.GetStorageDevice().RootDirectory);
            for (int i=0; i < s.Length; i++)

            s = sdCard.GetStorageDevice().ListFiles("\\SD\\");
            for (int i = 0; i < s.Length; i++)

Please format FAT and FAT32 then try again.

I updated my Hydra, and the OLED is working great. As another bonus, the Motor Module does what I expected it to! I previously had a problem with it where setting the speed anywhere between 0 and 100 were reverse what you would expect. I’ve got a few projects that were waiting on these two things, so I’ll give it some testing this weekend and see if I can find any problems.

Actually, one thing that I noticed is still in there, could you update the MotorControllerL298.cs file to correctly mark which motor should be the left?

        /// <summary>
        /// Represents the desired motor to use.
        /// </summary>
        public enum Motor
            /// <summary>
            /// The left motor, marked M1, is the one in use.
            /// </summary>
            Motor1 = 0,

            /// <summary>
            /// The left motor, marked M1, is the one in use.
            /// </summary>
            Motor2 = 1,

Hydra Updater fails with (ethernet) firmware: see attachment

I also tried the manual firmware upgrade (like I did yesterday with the offical release)
But when I need to deploy with MFDeploy.exe I get the following error:

Erasing sector 0x0041df00
Error: Unable to deploy to device

I also tried connection the ENC28 module during firmware update, but without success.