FIG. 6A shows an illustrative schematic of contents contained in non-volatile memory (NVM) 600 according to an embodiment. NVM 600 may represent NVM 540 of FIG. 5, for example. NVM 600 may contain several partitions or portions, each operative to store software and other information that may be used by a hazard detection system. As shown, NVM can include ENV 0 portion 602, ENV 1 portion 604, debug portion 606, Image 0 portion 608, Image 1 portion 610, audio portion 612, and HF ENV 614. The number of portions shown is merely illustrative and it will be appreciated that additional portions may be included and that one or more portions may be omitted. In addition, the size allocated to each portion may vary. ENV portions 602 and 604 can store environment variables of the device. These variables can persist over reboot and contain information that is either descriptive of the unique device or descriptive of the device's current state. For example, one or more of ENV portions 602 and 604 may include state machine status 522. During operation, the system may alternate between writing data to portions 602 and 604. HF Env portion 614 can optionally store high frequency environment variables. For example, portion 614 can store variables that need to be changed very frequently, such as for security purposes. Debug portion 606 may include code for implementing debugging operations. Image 0 and 1 portions 608 and 610 may each include a different version of code for enabling operation of the hazard detection system. Audio portion 612 may store one or more audio files, for example, that may be played back through the speaker (e.g., speaker 218).