The SMR101 is a programmable reset controller especially designed for embedded consumer electronics. The device provides dual outputs that can be used to implement "soft" and "hard" system resets. Both resets can be triggered by an external reset input, and an internal voltage monitor can trigger the soft reset. Typically a "soft" reset applies to volatile registers in an embedded controller while a hard reset is equivalent to a full power cycle without the associated power-up delays. The SMR101 receives an external push-button input using an internal programmable debounced timer. The push button input hold down time is programmable up to 40 seconds with an internal on-chip timer. A "short" hold down time (0.125-10 sec) asserts the SOFT_RST# pin while a long hold down time (0.5-40 sec) asserts the HARD_RST# pin. Both reset outputs have programmable output durations from 1- 200ms. Additionally, voltage monitoring is provided via a programmable threshold detector (2.30V - 4.50V) on the VDD pin. This voltage detector asserts the SOFT_RST# pin for the same 1-200ms output duration as above. A 15us glitch filter avoids nuisance tripping that can result in unnecessary system resets. The SMR101 is factory programmed, to default values; however, multiplexed programming pins are also provided for in-system programming for prototype purposes.