Patent ID: 7328434

Claim:
A method for updating software and firmware operating with hardware located in a main controller device and at least one associated module device in communication therewith, said method comprising: receiving at the main controller device an updated application bundle, the updated application bundle having an updated software element, a set of firmware elements relating to the updated software element, and a firmware loader for loading the firmware elements relating to the updated software element; determining whether the updated application bundle is operable with a hardware element of the main controller device and the at least one associated module device; installing the updated application bundle in the main controller device and the at least one associated module device if the updated application bundle can be operated with the hardware element; and, utilizing an existing application bundle at the main controller device and the at least one associated module device if the updated application bundle cannot be operated with the hardware element; wherein the determining whether the updated application bundle is operable with the hardware element includes: storing a hardware/software compatibility level value and a hardware/firmware compatibility level value on the main controller device and the at least one associated module device; retrieving the hardware/software compatibility level value and the hardware/firmware compatibility level value with the firmware loader; and, searching a matrix with the firmware loader using the hardware/software compatibility level value and the hardware/firmware compatibility level value to determine whether a version of the software element and a version of the firmware elements provided in the updated application bundle are compatible with the hardware element, the matrix listing versions of the software elements compatible with the hardware element for the hardware/software compatibility level value and versions of the firmware elements compatible with the hardware element for the hardware/firmware compatibility level value.