Home/Support/Support Forum/machine.reset_cause() not working

machine.reset_cause() not working

0 votes

I am attempting to utilize both the watchdog feature and the machine.reset_reason() without any luck.

I am initializing the watchdog based on the documentation and this is working properly:
dog = machine.WDT(timeout=5000, response=machine.HARD_RESET)

In my test I am triggering a watchdog event after a few seconds. Upon reboot, I read out the reset cause like so:
reset_reason = machine.reset_cause()
print("reset reason: " + str(reset_reason))

As a result, reset_reason is always printing 0 even when it is a triggered watchdog event.

I found the list of constants that the machine.reset_cause returns, and I would thing I would return a 4 or a 5 if the cause was a watchdog reset.


Am I doing something wrong that is causing machine.reset_cause() to not return the correct value?

I am operating XB3-24 Digimesh 300B

Thank you.
asked May 17, 2021 in XBee3 DigiMesh by backpacker87 Community Contributor (51 points)

Please log in or register to answer this question.

2 Answers

+1 vote
Same here,

import time
import xbee
import machine

print("reset_cause", machine.reset_cause())

above main.py continually prints:

Loading /flash/main.mpy...
Running bytecode...
reset_cause 0
soft reboot

despite help(machine) saying that:

I would have expected machine.reset_cause() to return 6
answered Jul 26, 2021 by Matthew Findlow New to the Community (3 points)

I emailed tech support who confirmed this is a bug that is specific to Digimesh 300B firmware (it works as expected on 802.15.4 and ZigBee.

It was suppose to be escalated to engineering for them to fix in a future firmware release, but I am not aware of a implemented fix yet :(

–1 vote
I suspect you have not implemented one of the needed functions.

import machine
answered Jun 22, 2021 by mvut Veteran of the Digi Community (15,409 points)