Main Site Documentation

FEZ Domino Low Power Modes


#1

Does anyone know how or if the FEZ Domino goes into low power mode or power down mode? If so, can you control that from code?


#2

There will be power modes and yes you can control from software. As of now, these features are not implemented just yet. Maybe in couple months


#3

No rush but please hurry! Thanks.


#4

Love your comment “no rush but hurry” :slight_smile:

This is a top priority for us and will be done as soon as possible.


#5

Yeah. haha. Trying not to be pushy. I am in about 3 weeks going to present different prototype hardware boards to my boss for a big project, and I am very much interested in this board. But I don’t think my boss with invest in this without low power modes.
I’m rooting for you!


#6

Has the low power modes been completed yet?


#7

Not yet. This is low priority so it would be couple months before tedhy are implemented


#8

Any word on the low power mode?


#9

No, it is still not priority. If you have a commercial application and need this for professional use then contact GHI directly with your needs please.


#10

When this functionality is implemented, can we assume the board can be powered down and kept in the hibernate state with power to the VBATT pin? Or is it too early to assume anything.


#11

I may contact GHI as I am developeing a commercial application, but could someone give me a little more info on how the low power mode might work in an application?

  1. What happens to running threads when it goes into and out of a low power state?

  2. What are the possible triggers to exit a low power mode? Could it be an analog pin?

  3. How much time does it take to enter/exit the low power mode?

-AP


#12

Please wait another week


#13

Hi Everyone,

I’m looking for new embedded systems to create a new plataform. So in my research I found the Fez Domino and i’m really surprise. I think it’s a good idea but i can’t use it without Low power modes, i think it has to be priority too.

I used to buy Embedded Master Module (The Breakout product but it doesn’t exist anymore) because you can use the System.hibernate to start the low power mode. But it wasn’t easy to wake up the system, so I haved to program the registers of the LPC2468 to do it.

I want to know if Fez Domino could be programmed using the lpc23xx user manual to solve these problems (Using Low Programation because .NETMF can’t do it yet)

I need a quickly solution please


#14

The new framework didn’t use the hibernate feature.

The whole power stuff moved to the new powerstate feature

http://msdn.microsoft.com/en-us/library/ee436249.aspx

But i think it is not yet implemented , but as Gus said , will be available soon.

In your case ( I think it is a commercial application) you can ask the GHI directly and they can implemnt this feature especially for you.


#15

The book is now updated to cover low power…have fun :slight_smile:


#16

Hi guys!!

I’m starting to test the Low Power Mode of Fez Domino and I have some issues,
I can’t wake up my FEZ Domino after Hibernation Mode.

I’m trying the Interrupts and RTC alarm for wake up the FEZ Domino. So I tried the example of the ebook and I don’t know why it doesn’t work.

Then I think that is may be a gitch filter issue, so I know that glitch filter works in a way to guarantee that all pin interrupts after event raising are ignored for “glitch time”

So I have to set the interrupt port to work on a single edge (raising or falling) because it will not work with both-edge interrupt.

This is my code:



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

namespace LowPower
{
    public class Program
    {

        public static OutputPort LED2;

        public static void Main()
        {

           
            LED2 = new OutputPort((Cpu.Pin)FEZ_Pin.Digital.Di9, true);

            InputPort hibernate = new InputPort((Cpu.Pin)FEZ_Pin.Digital.Di5, true, Port.ResistorMode.PullDown);

            RealTimeClock.SetTime(new DateTime(2010, 1, 1, 1, 1, 1));

            InterruptPort LDR = new InterruptPort((Cpu.Pin)0, true, Port.ResistorMode.PullUp, Port.InterruptMode.InterruptEdgeLow);
            LDR.OnInterrupt += new NativeEventHandler(LDR_OnInterrupt);


            while (true)
            {
                Thread.Sleep(3000);     //blink LED for 3 seconds
                if (hibernate.Read() == true)
                {
                    Debug.Print("Interrupt Hibernate Off \n");
                }
                else
                {
                    Debug.Print("Interrupt Hibernate On \n");
                    Debug.Print("Zzzzzzzz... everything will stop.");
                    RealTimeClock.SetAlarm(RealTimeClock.GetTime().AddSeconds(10));
                    Debug.Print("Going to sleep for 10 seonds!");
                    LED2.Write(false);
                    // sleep for 10 seconds
                    Power.Hibernate(Power.WakeUpInterrupt.InterruptInputs | Power.WakeUpInterrupt.RTCAlarm);
                    Debug.Print("Good Morning!");
                    LED2.Write(true);
                }
                
            }
        }


public static void LDR_OnInterrupt(uint data1, uint data2, DateTime time)
        {
            // empty for now!
            OutputPort LED;
            LED = new OutputPort((Cpu.Pin)FEZ_Pin.Digital.LED, true);

            while (true)
            {

                LED.Write(!LED.Read());
                // sleep this thread for 1 seond
                Thread.Sleep(200);
            }
        }
    }
}




#17

It cannot be a glitch filter issue. It should wakeup first and then process the glitch.


#18

How did you conclude that the system is not waking up?
Could you please try to use the exact example provided with the book or library documentation?

I noticed a wrong practice in your code:
It is very wrong to let the system stuck in an Interrupt handler in the While() loop. If you want to blink an LED why don’t you just use the LED driver available tinyclr.com?

[quote]public static void LDR_OnInterrupt(uint data1, uint data2, DateTime time)
{
// empty for now!
OutputPort LED;
LED = new OutputPort((Cpu.Pin)FEZ_Pin.Digital.LED, true);

        while (true)
        {

            LED.Write(!LED.Read());
            // sleep this thread for 1 seond
            Thread.Sleep(200);
        }
    }
}

}
[/quote]


#19

I found my error!!

So I make a lot of test (even that one in the ebook) and I can conclude one thing and It’s really important

This is my experience. First I have to say that I have two FEZ Domino, one with a SD Card Memory and another without.

I loaded the Program in the two and I saw that the one without SD Card Memory worked. So I wanted to know why does the other didn’t work. Then I create a class SDMemory and I maked an instance (a definition) for my SD Card Memory.

Then I loaded the program and it worked.
After that I tried with other components like Wifi and GPS and it was the same thing

So my conclusion is that you have to declare all the components you are using if you want to use the Hibernation Mode

All comments are accepted


#20

You have to keep in mind that any interrupt port can wake up the system including the interrupt ports used with compnents such as WiFi.

May I ask in what way it is not working? Is it not waking up or it is not sleeping?
Did you fix the issue I mentioned to you in your code?