As shown, FIG. 5 shows system parameters 520, state machine status 522, timer initiated software update request 524, user initiated software update request 526, physical port 528, wireless port 530, non-volatile memory 540, volatile memory 550, and wireless network 560. FIG. 5 is shown to be divided by a dashed line to graphically illustrate which aspects can represent hardware and/or software modules and which aspects can represent data or information. System parameters 520 may represent parameters associated with hardware operation of the system such as, for example, power levels of a power source (e.g., battery power source or a line power source). State machine status 522 may represent the state of each of the state machines operating in system 500. For example, the state machines represented by status 522 can include one or more of the state machines shown and described in connection with FIG. 3 and/or FIG. 4. Software update module 510, and in particular, system status check module 512, may use one or more parameters from system parameters 520 and one or more status indicators from state machine status 522 to determine whether to proceed with a software update. For example, if the system parameters indicate that the power level of the power source is below a fixed threshold, system status check module 512 may prevent or stop a software update process. As another example, if the status of any one of the state machines indicates that it is in a pre-alarm state or an alarm state, then system status check module 512 may prevent or stop a software update process.