The main elements of a neutrino telescope are the sensitive optical detectors, which in the case of KM3NeT are small photocathode area photomultipliers (PMT) distributed inside the glass spheres of Digital Optical Modules (DOMs). Each DOM has 31 small PMTs which collect the Cherenkov light and convert it into electronic signals. In order to translate these signals into the arrival time of the photons, they are processed by Time to Digital Converters (TDCs) implemented on a Kintex-7 FPGA.
The control of the DOM is achieved by means of two LM32, an open source firmware microprocessor from Lattice. One of them is dedicated to the White Rabbit protocol which directly manages the tunable oscillators and the optical link traffic, in order to achieve a time synchronization of sub-nanosecond level with the Grand Master clock of the on-shore station. The rest of the modules are managed by the second microcontroller, which has access to all the communication interfaces (SPI, UART, GPIO and I2C) needed for the instrumentation devices, the acoustic and optical readout systems and the multiboot module.
31 TDCs are responsible to record the arrival time and the width (with 1 ns of resolution) of the
hits incoming from the signals of the PMTs. An acoustic readout is dedicated to the decoding of the incoming AES3 formatted stream. All the data, together with some other slow control monitoring information (as temperature, humidity, tilt meter, compass, currents, etc.) are put in UDP packets and connected to an IP/UDP packet buffer stream selector (IPMUX). This IPMUX splits the data into separate streams, based on UDP port number and send to the shore station via the endpoint, a normal Ethernet MAC but it has time stamping capabilities allowing sub-nanosecond timing precision, such that it facilitates the Precision Time Protocol (IEEE588).
The multiboot subsystem allows the selection of a different image from where to boot the electronic system and the presence of a Golden Image as a fallback solution, will make possible to remotely configure the firmware after the deployment of the DOM.
The control of the DOM is achieved through complex and robust embedded software running in the LM32. No operative system is used in order to reduce power consumption. The software allows multiple parties to work on it and extending it without compromising stability and clarity. The software has been layered into three main modules, the first one, which contain the common functions, macros and standard libraries; the second one includes, which includes the start-up code and drivers, and the last one is reserved for the application specific code