Tango Controls is a collaborative effort involving many people across the world. It is a Free Open Source Software (FOSS) project available under GPL and LGPL open source licenses. The source code is available on GitLab organised into the core libraries of tango-controls, archiver tools and libraries in tango-controls-hdbpp, and a large number of device servers on our gitlab repository and on the older repository tango-ds on SourceForge. The source code can be downloaded and modified by anybody. Everyone is welcome to fork the git repositories from GitLab and fix any issues they find or make improvements to the code. Merge requests with bug fixes or new features are reviewed and integrated in the official source code by authorized developers.

Tango Controls started at the ESRF in 1999 and has since then been adopted by many sites. The following sites have committed to the sustainable development of Tango Controls by signing a Collaboration Contract and committing to financing the development of Tango for the next 5 years (at least):

ALBA ELETTRA INAF SKAO SOLARIS
DESY ESRF MAX-IV SKA-ZA SOLEIL

Many other sites use Tango Controls. Refer to the Partners to see some of the users of Tango Controls.


 

Mission

The mission of the Tango Controls software community is to:

Develop an open source toolkit called Tango Controls for building high performance and high quality distributed control systems for small and large installations. The toolkit design is based on the concept of distributed objects called devices and provides native support for multiple programming languages. The toolkit must implement a full set of tools for developing, managing and monitoring small and large control systems. Build a sustainable community dedicated to ensuring that the Tango Controls toolkit continually improves and remains modern to serve the needs of the community for at least the next 20 years. The goal of Tango Controls is to become a de facto industrial standard for industrial distributed control systems.


 

Licence

Tango Controls is an Open Source solution for Supervisory Control and Data Acquisition (SCADA) and Distributed Control Systems (DCS).

Tango Controls system libraries are made available under LGPL licence. This means that Tango Controls can be used and modified without constraints on the derived system built on Tango Controls.

The graphical tools and some of the device servers are made available under the GPL licence. This means modifications to them need to be shared with the community.


 

Roadmap

The Roadmap described below is being implemented thanks to the Tango Controls Collaboration and the community efforts. The Roadmap addresses the general evolution of Tango and its associated tools. Input is usually gathered at the annual Community Meeting, on Tango's Mattermost and in the forum. The Feature requests are then discussed in the interactive session during the Tango Community Meeting. The final discussion happens in issues located in the source code repositories where the features will be implemented.

The Executive Committee is working on identifying and investing resources in implementing these features. The Community is invited to contribute to implementing the topics below. 

Major new features on our to do list:

  • Warning and alarm hysteresis
  • New datatype DevDict (std::map/dict like type)
  • Multi-parameter commands (removes one parameter limit)
  • Multi-dimensional arrays (DevSpectrum & DevImage become specialisations of n-dimensional arrays)
  • Encryption support (CORBA & ZMQ)

The Tango project can be divided into 3 parts in terms of the source code: C++, Java, Python. We aim to carry out updates with minimal impact to the end users. Any changes to the Tango source code can be followed on the git repositories: C++, Java, Python.

Information about the Major Tango releases can be found on the Major Releases page.

Requests for new features can be submitted as new issues on TangoTickets repository.


 

History

The original proposal for Tango was made in a paper written in 31/7/1998 by W-D. Klotz, A. Götz, E. Taurel and J. Meyer :

Tango - object oriented device control implemented in CORBA and DCOM.

It was built on the ideas of a previous control system developed at the ESRF called TACO which was based on RPCs. The key concept of Devices in a Device Server was developed in TACO and then refined and improved in Tango. The first international presentation of Tango was at the ICALEPCS conference in 1999 in Trieste (Italy) in a paper written by J-M. Chaize, A. Götz, W-D. Klotz, J. Meyer, M. Perez and E. Taurel and entitled:

Icon Tango an Object Oriented Control System based on CORBA (33.9 KB)  

Development of Tango started in 1999 at the ESRF. In 2000 they were joined by the control's team from the Soleil Synchrotron. The two institutes co-developed the first releases of Tango. They were later joined by Elettra, ALBA, and DESY. The community quickly grew and today includes over 50 sites.

Releases

The latest major release of Tango V10 was made in January 2025. The Device implementation version, major features and previous releases are in the Major Releases web page.

Awards

At ICALEPCS 2011 the ICALEPCS Lifetime Achievement Award was given to Emmanuel Taurel (ESRF), Nicolas Leclerq (SOLEIL), Pascal Verdier (ESRF) for their contribution to the Tango core development over the last 10 years.

ICALEPCS 2011 Lifetime Achievement Award


 

Steering committee

The Tango Controls executive body is the Steering Committee. It makes strategic decisions about core developments in the Tango collaboration. There is one representative from each institute who has signed the Tango Controls Collaboration Contract. The representative is the person who is highest in each institute’s hierarchy and has sufficient technical knowledge about Tango. This representative should have enough power to decide how to allocate resources to developing software for Tango. To ensure that the best decisions are made and match those of the user community, advice must be sought by the committee from their respective users and developers on a regular basis.

There are 2 types of Tango Controls Steering Committee Members:

  1. Core members - contribute financially to the maintenance of Tango and commit at least 6 months of an engineer annually to develop and commit source to the Tango Controls core projects
  2. Contributing members - contribute to the financing of the maintenance of Tango.

Both members normally use Tango and write and share Tango device classes with the community.

The current Tango Controls Steering Committee member representatives are:

Chairman: Andy Götz (ESRF)
Coordinator: Yuri Matveev (DESY)
ALBA (core) Zbigniew Reszela
ELETTRA (core) Lorenzo Pivetta
ESRF (core) Reynald Bourtembourg
SOLEIL (core) Gwenaëlle Abeille
DESY (core) Linus Pithan
INAF (contributing) Matteo Canzari
MAX-IV (core) Benjamin Bertrand
SKAO (core) Marco Bartolini
SKA-ZA (contributing) Johan Venter
SOLARIS (contributing) Michal Falowski

Since 2024 the Steering Committee meets on a monthly basis.

Here are Minutes from (some) previous Steering Committee meetings: