ARINC 661 is a standard which aims to normalize the definition of a Cockpit Display System (CDS), and the communication between the CDS and User Applications (UA) which manage aircraft avionics functions. The GUI definition is completely defined in binary Definition Files (DF). The CDS software is constituted of a kernel which is able to create the GUI hierarchy specified in the DF during initialization, thus not needing to be recompiled if the GUI definition changes. History and adoption in industry The first version of the standard was adopted in 2001. Its first use was for Airbus A380 CDS development. The first supplement was adopted in 2003, and added new widgets. The second supplement was adopted in June 2005, and added supplementary widgets. Third supplement has been adopted in 2007. Supplement 4 was adopted in 2010. The standard is known today to be used for Airbus A380 and A400M CDS development, and also Boeing 787 CDS development. AgustaWestland company use ARINC 661 for the development of a new Touchscreen unit in the upgraded Merlin helicopter for the Royal Navy. In March 2011, Embraer announced that it selected SCADE Solutions for ARINC 661, a COTS (Commercial Off The Shelf) tool for ARINC 661 development, for its future developments. An ARINC 661 Part 2 is currently in development, allowing to specify look and feel for widgets. It should be released in 2020. Supplement history Technical overview The standard normalizes : the GUI definition of the CDS interface, in a binary file called DF (Definition File) defining the structure of the graphical interface tree. The GUI tree is instantiated at initialization time (called the Definition Phase in the standard) in the CDS, using the definition contained in the DF. the communication at runtime between the User Applications (UA) and the CDS. This communication protocol is typically used for UAs to send widgets modifications to the CDS, and return user events (such as buttons selection) from CDS to UA. In order to be compliant with the standard, a CDS must have a kernel that can create the widgets tree during CDS initialization, using the Definition File, and communicate with UA in both ways using the runtime protocol. ARINC 661 does not imply the use of a particular Data bus structure to perform the low-level communication between CDS and UA. For example, an ARINC 429 or Ethernet protocol such as ARINC 664 can be used,