Defining firmware has proven challenging, with the IEEE describing it as a combination of hardware devices and software instructions residing in read-only memory. A survey of 148 firmware engineers revealed that 81% agreed with a definition emphasizing firmware as programming stored in nonvolatile storage, which the user is not expected to change at runtime. Key elements of firmware definitions include persistence, hardware dependency, and the programming of devices, suggesting a foundation for understanding its role in embedded systems.