MetaMotion C kinetic awakening after sleep
I have access to a lot of MetaMotion C boards. (A LOT). Using the sleep command from the Android API and the newly added option on the Metawear App, I am able to put them to sleep (successfully; I should add, as they do not advertise for an extended period). Howerver, I have discovered that about a quarter of the devices will wake from sleep mode after being moved. Simply rotating the unit seems to awaken it. They are all the same hardware revision (r0.1) and I tried reflashing firmware 1.3.6; sleeping again, and still having it wake up due to movement. So it would appear to be consistently the same devices.
I assume that the sleep mode is simply an interruption to the usual boot process that waits on the button press to continue the boot to the advertising mode. Is it possible that the one or more of the sensors (accelerometer, gyro or magnetometer) are not being initialised and are in a non-dormant state after the reset and before the sleep-pause, resulting in this behavior?
I assume that the sleep mode is simply an interruption to the usual boot process that waits on the button press to continue the boot to the advertising mode. Is it possible that the one or more of the sensors (accelerometer, gyro or magnetometer) are not being initialised and are in a non-dormant state after the reset and before the sleep-pause, resulting in this behavior?
This discussion has been closed.
Comments
Flash the latest firmware (1.3.6)
Connect to the device.
Write the macro to change the name.
Sleep the device.
Wake the device (with the button) to ensure the name change has taken.
Connect to the device.
Put the deivce back to sleep.
Sleep is confirmed with a third party app to ensure the device is no longer advertising.
Further testing seems to be waking more devices (a total of 77 so far), so it's quite possible they are all afflicted with the same problem it just requires sufficient movement (or perhaps the right kind of movement) to awaken them. A number of devices (18) have also drained their batteries whilst in sleep mode (see my other post regarding power consumpiton; a device I was testing drew a continual 3000uA or current but I was unable to reproduce this). Part of the test procedure is to check the button on the device to ensure it has a good mechanical 'click'. And while moving the unit, care is being taken not to press the button.
This puts us (at time of post) with 95/130 units (73%) that exhibit anomalous behavior. I cannot fathom how this problem could be occuring other that to reiterate that if the 'sleep' is an interruption to the usual startup that prevents the device advertising, that it may be occuring before the onboard processor and hardware have been initialized to a stable state. It would save considerable time on our part if you could grab a number of your in-stock units and attempt to conduct a similar test procedure to the one I have described above to see if you experience similar results. Given the number of units now exhibiting problems, I cannot see that it would require too many test units on your end to reproduce.
mbl_mw_macro_erase_all(board);
mbl_mw_macro_record(board, 1);
mbl_mw_settings_set_device_name(board, deviceName, 8);
mbl_mw_macro_end_record(board, macroWritten);
// sleeping the device
mbl_mw_debug_enablePowersave(board); // adapted from android. Sends 0xfe 0x07
mbl_mw_debug_reset(board);
The board is inside a plastic case.
macroWritten
callback function?macroWritten
callback function?macroWritten
has been called?macroWritten
has been called or not?write_gatt_char
points to:Video 1
Video 2
Video 3
Video 4
Video 5
Video 6
Video 7