Skip to content

Software Engineering

Overview | Software Engineering | Electronics Engineering | Mechanical Engineering | Infrastructure | Staff

The Software Engineering Division (SED) of the INIT department develops and maintains scientific and business software for experimental groups at iThemba LABS. The software ranges from specialized data acquisition (DAQ) software for radiation detectors, to control and monitoring software of equipment in experimental facilities, as well as broad organizational processes. SED projects can be grouped into following major categories; DAQ, Control and Monitoring and business process solutions.

Data Acquisition (DAQ)

SED is responsible for developing and maintaining dedicated data acquisition and ancillary software for the K600 Magnetic Spectrometer, Ion Beam Analysis techniques, as well as for other low energy physics experimental facilities requiring event by event information for their radiation detectors. Hardware and software frameworks which we support include; CAMAC, VME and PXI crates, an array of analog-to-digital converters (ADCs), charge-to-digital converters (QDCs), time-to-digital converters (TDCs), PSI and Daresbury MIDAS software packages etc. 

The division is currently building a one-of-its-kind distributed data acquisition system which employs the open-source Apache Kafka messaging platform and rich data analysis and visualisation tools using Python and Vuejs programming languages.

Control and Monitoring

Our control and monitoring software solutions range from low-level control to high-level remote monitoring and control of equipment in experimental and production lines. We also provide direct software support to experimental groups as well as the Nuclear Medicine and Biophysics departments at iThemba LABS.  Languages used include C/C++, ROOT scientific software framework, Java, EPICS, Python, JavaScript and LabView under Unix and Windows environments.

Business Process Solutions

These are mostly business software packages which are database centered e.g Key Performance Indicator database, Electronic component inventory, Asset management   system, Time and Attendance system etc. Languages used include Delphi, SQL, Java etc.