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.
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>
timer.Start();
*******************************************************************************************/
// 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)
{
camera.TakePicture();
}
}
}
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.
iasuk70,
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.
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.
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?
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++)
Debug.Print(s[i]);
s = sdCard.GetStorageDevice().ListFiles("\\SD\\");
for (int i = 0; i < s.Length; i++)
Debug.Print(s[i]);
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.