Main Site Documentation

Should Hibernate work on G120?


G120, SDK 1.0.4 (v4.2.10.0)

My new G120 module has been performing well and passing all the tests up until now, none of the bursts of register dumps out the COM port like the previous one.
However up until now it hasn’t been going into hibernate, as the code only hibernates when disconnected from USB, and as per a previous post, it hasn’t been detecting USB disconnection.

Well, I’ve enabled the Hibernate call


but it doesn’t go at all well. There is a stream of register dump info out the COM port, otherwise the module seems to have locked up, until it reboots by itself. From a TeraTerm capture of the com port:

     Hibernate (This is a debug message just before the call to hibernate)
  pc  =0x0000bed2
  lr  =0x000441dd
  sp  =0x1000fe68
  r00 =0x00000180
  r01 =0x1000fe90
  r02 =0x1000fe94
  r03 =0x05000000
  r04 =0xe002c000
  r05 =0x3fffc000
  r06 =0xa0979238
  r07 =0x00000000
  r08 =0xa0025320
  r09 =0xa0024ce8
  r10 =0x00000000
  r11 =0x00000000
  r12 =0x00000010
  pc  =0xa0979238
  lr  =0x3fffc000
  sp  =0x1000fe48
  r00 =0x00000180
  r01 =0x1000fe90
  r02 =0x1000fe94
  r03 =0x05000000
  r04 =0xe002c000
  r05 =0x3fffc000
  r06 =0xa0979238
  r07 =0x00000000
  r08 =0xa0025320
  r09 =0xa0024ce8
  r10 =0x00000000
  r11 =0x00000000
  r12 =0xe002c000


The EMX based boards, running the same code, go into hibernate, reducing current draw to 28mA, until I touch any key, at which point they immediately wake.
[One thing does seem changed from under 4.1 - it looks like the analog output goes to 0V under hibernate now, whereas I thought it still held up in the old version. But I can’t be sure…]

So, the question is, is Hibernate supported on the G120?
If not, will it be? When?
If so, does anyone else have it working?


From the Known Issues section of the release notes for the latest SDK:


@ Mike - From the GHI Premium NETMF v4.2 Release Notes, which go from 0.0.1 BETA (June 15, 2012), to the current 1.0.4 (April 30, 2013), in version 0.0.4 and 0.0.5 was:

Known Issue
Hibernate(WakeUpInterrupt WakeUpInterrupt) is not available and is being evaluated.

In the following release. 0.0.6, this was gone, and we have:
Power class is now available in GHI.Premium.Hardware

So it wasn’t implemented, and then it was (Power class encapsulates Hibernate).

Roll forward to version 1.0.2, and we get the
Known Issue
Low Power feature is not currently supported

Does this refer to Hibernate? The uC has several power modes, with independent supply rails,etc, which GHI hasn’t supported previously, although they have supported Hibernate mode. A first reading would indicate that is what is referred to. Why would they implement Hibernate and then remove it?

In any case, it works with the EMX. If there is a problem with the G120 implementation, then this should be listed under G120 Known Issues, not with the general NETMF library Known Issues.

I’m hoping for a response either from:
a) someone who has tried it on the G120 and had it work (in which case the problem is with my module) or had it crash (in which case the problem is with the NETMF Library, which should throw a “Not Implemented” exception rather than crash-and-burn.
b) GHI, confirming there is an issue and when/if they plan to have it fixed

With its lower cost and smaller size G120 looks like a great replacement for the EMX. However if you add in higher power consumption and lack of hibernate feature, together with the reliability and other problems we have found, the balance is pushed back in the other direction.


Well spotted!

So now two questions:

  1. Does anyone have it actually working?
  2. Gus - why does mine crash as described?


@ Gus - Can you confirm (or not) the Hibernate problem with the G120, and if so possible timing for a fix? Also, any progress on the G120 USB disconnect problem?

I have to prepare a batch for customer delivery in under 5 weeks, and both the older EMX based board and new G120 one need some layout changes. If the G120 problems won’t be guaranteed to be resolved within a week, I’ll have to abandon that board and put my time into reworking the EMX one.


All I can confirm is we never tested power modes. This is next on the list of improvement. Hopefully it is useable by your application till it is implemented.


@ C-Born - 5 weeks is still in the comfort zone no? :stuck_out_tongue:

[EDIT] I actually deploy a solution right now that was planned for October…


@ Gus - On the G120 a call to Hibernate crashes the system immediately, with a continuous register-dump streaming from the COM port until the device reboots (see my first post in this thread), so it isn’t really usable in its current state!
On the EMX it appears to work correctly, at least in the limited testing I’ve done so far.


We have an order worth over $38k based on the EMX board due to ship to Canada in a couple of days. The 5-week job was a “worst case” delivery time on a $16k order using the G120 modules, which we have in stock. As it appears the G120 firmware is not actually ready for deployment as this stage, I have to design, test and produce a new EMX-based board to replace the G120, along with building and testing the rest of the device hardware, in that time. Not really comfortable!


October 2012 or 2013?


2013 :smiley:


Well, we made it - just finished testing the last one, (Sunday 28th), due delivery date is Monday 29th!
The new EMX based board works well, although the new solder paste didn’t arrive on time and the old stuff seems to run after stenciling, causing bridging and requiring a few reworks, including under one of the modules. ITEAD Studio got 10 PCBs and a stencil back to me only 10 days after my order, which is great.

Now back to testing the G120 boards with the new firmware…


@ C-Born - Good job!

Sounds like you better get some sleep for a change, first. :slight_smile: