# Enigma (DVB)

Enigma2, the second generation of Enigma software, is an application used in Linux-based Digital Video Broadcasting (DVB-S, DVB-C, DVB-T) receivers or TV set-top boxes and Internet Protocol television receivers. It creates a graphical user interface to control the said devices using a remote control and provides features such as tuning available satellite transponders, cable channels and terrestrial television transmitters (according to available tuners) or accessing material via Internet Protocol television (IPTV), watching a TV program or listening to radio, time shifting, Digital video recorder, streaming media programs to other devices (personal computer, mobile phone), etc. Other features are available through plugins – for example Electronic program guide (EPG), Hybrid Broadcast Broadband TV (HbbTV), access to TV archives and movie databases, playback of multimedia files, viewing photos, etc.
The name Enigma2 is often used to refer to the whole Linux distribution designed for TV receivers containing the Enigma2 application. Sometimes the distribution is called Linux E2 or E2 Linux, but usually it is named after the specific distro or development team – OpenATV, OpenPLi, OpenViX, EGAMI, OpenEight, Black Hole, OpenDroid, PurE2, etc. The distribution was originally developed for Dreambox receivers, but after 2010 a number of manufacturers of similar equipment appeared, such as Formuler, GigaBlue, Octagon, Opticum, Unibox, Vu+, Zgemma, etc.

## The devices

Devices designed for Enigma2 (i.e. satellite receivers, set-top boxes and IPTV receivers, often simply called boxes) are equipped with one or more DVB-S, DVB-C and DVB-T tuner(s) (unless they are pure IPTV receivers), a Remote control receiver and an Ethernet and/or Wi-Fi network adapter. To receive coded/scrambled programs the box may be equipped with one or more slots for decoding cards. The operating system is usually stored on internal flash memory, whereas to record programs or to play multimedia files a larger, internal or external, hard disk, SSD, USB flash disk or memory card can be used. The device may use Network Attached Storage or a disk volume on a personal computer using Samba or NFS protocol as well. The system is designed to be controlled by a Remote control similar to those used for TV receivers. The TV set usually connected via a HDMI (or SCART) cable works as a multimedia monitor. The device may connect to a home audio system either via TOSLINK or Bluetooth.
The box can be accessed with terminal emulation protocol telnet, ssh, or via FTP. The OpenWebif module implements a web server that allows control of the box from a PC using a web browser. The box can act as a streaming server, streaming material received by its tuners or direct from its hard drive or any mounted device available to it.

## History

Enigma is one of the Graphical user interfaces developed for digital satellite receivers DBox-2 during the TuxBox project in 2000-2001. The development was then continued by Dream Multimedia for their receivers. In 2006 Dream Multimedia released a new open source version of the software called enigma2. Around that time many receiver manufacturers who were competitors of Dream Multimedia started using the software developed by Dream Multimedia without contributing to system development. Dream Multimedia therefore decided not to continue system development as free software and introduced its own Dreambox OS. Currently, there are about 20 teams that develop the enigma2 application, control and maintain their own versions of the distribution for dozens types of devices.

## Features

The main feature is displaying the received TV program on the TV screen connected usually using an HDMI cable transferring sound as well. At the same time Enigma2 creates graphical user interface controlled using an infrared remote commander, that displays on the TV screen in the form of menu, dialogues and forms allowing control of all basic settings of the set-top box or the receiver.

### Plugins

Enigma2 features can be extended by various plugins.
Some plugins offers specific features of smart TVs, like
* Electronic program guide (EPG)
* Display tuned channel and their switching
* Digital video recorder and Time shifting
* Playback of video and audio recordings
* Teletext
* Hybrid Broadcast Broadband TV
* KODI multimedia centre
* Logical channel number list creation (AutoBouquetsMaker, and others)
Some plugins appear in the Plugins menu and can be customised from there while others blend seamlessly into the graphical user interface in such a way that it is not always clear what is a plugin and what is a built in feature. And, depending on the distro, some plugins are built into the base distribution, for example, Graphical EPG and AutoTimer recordings.

### Disk

To use an Enigma2 box as a Digital video recorder, or for time shifting or other features like system backup and setup it is possible to connect an external hard disk or USB flash drive. Some receivers contains a builtin disk or have a pull-out drawer to install an internal hard disk drive. Also use of network-attached storage or a shared disk from a computer is possible.

### Network interface

For Internet access, access to network disk storages or to shared folders on computer, stream programs to a computer, mobile phone or other receiver and to control the receiver from a computer using web browser, or other purposes most receivers have builtin interface Ethernet and/or Wi-Fi, or it is possible to connect an external WiFi module. The receiver uses DHCP for dynamic assignment of IP address, but when the user wants to control receiver using web browser, file transfer protocols File Transfer Protocol (FTP) or SFTP or to login interactively to the receiver using telnet or SSH, it is better to configure the receiver to use a fixed IP address.

### Decryption card interfaces

Enigma 2 boxes are equipped with interfaces for popular conditional access cards like Common Interface slot and/or smart card reader to allow reception of encrypted content which may be stored or streamed after decryption.

### Controlling using a web client

Most of the enigma2 features can be controlled by web browser using interface OpenWebif. It contains a virtual remote control offering the same features as remote control supplied with the receiver. Use of this interface must be enabled in receiver settings and an access password must be generated. Connection to the receiver is usually possible only from within the LAN network as most internet providers assign IP addresses dynamically and do not allow connecting from the public internet to home network.

### Video streaming

Enigma2 allows streaming of the received programs as well as multimedia files stored on the disk.
The easiest access to streaming is with OpenWebif. By clicking to the screen icon or mobile phone icon next to the desired program or multimedia file, a *.m3u stream is opened that can be reproduced by VLC or any other application that is compatible with the selected source.
Cheaper receivers with single tuner allow streaming, recording and watching programs from only one multiplex or satellite transponder at a time. Many boxes have multiple tuners which allows streaming, watching or recording programs from more than one multiplex or satellite transponder simultaneously. The latest boxes rather that having multiple tuners have a newer type of tuner module known as Full Band Capture which allow up to 8 multiplexes to be tuned simultaneously, per tuner module. When there are not enough tuners for the current demand, recordings take priority, so while recording a program on single-tuner box it is not possible to switch to channels on other multiplexes or transponders and even while watching a program the receiver may automatically switch to another program when a programmed recording starts.

### Feeds

Each distro has its own feeds available from the internet via the network adaptor. The feeds contain a wide array of plugins and other addons that can be downloaded and installed at the click of a button. Package management and versioning is handled by opkg.

### Software upgrade

Software update is an extension of the feeds. When a new version or build is available an icon is displayed in the graphical user interface to alert the user. It is recommended to make system backup before the upgrade, to allow reinstating the previous working system version in case of any problem. Some distros, such as OpenViX do this automatically. Upgrades to new builds are normally limited to the same version, and to change version a complete reflash is required.

### System backup and setup

Enigma2 allows backing up the system to an attached disk or network-attached storage. It is possible to make a backup of settings only (configuration files, their initial list can be modified), or of the whole system (internal volume, or more exactly one partition of it called a slot), on Multiboot systems also a multiboot loader.

### Images

Image is complete disk image. As a record of standard film has gigabyte size, the usual software installation method to a set-top box with enigma2 is installation of a complete disk image, which has usually size of around one hundred megabytes.

### Multiboot

Some receivers allow installing on the internal volume a number of different system images (usually max. 4, each to separate space called a slot) and determining before a system restart which slot should be used to boot the system. This feature is useful to evaluate different disk images, either different versions or from different teams, and in case of problems with the receiver (allows distinguishing between hardware and software problems). The receiver can also be reflashed to a different operating system or system version using USB disk or SD/SDHC card.

### Skins

The look of the enigma2 application in most distributions is widely configurable. Skin in this context means complete description of the look, that is placement of the menu, its contents, colors, fonts, graphics and icons in individual menu levels, as well as information displayed on information screens etc. Some skins are pre-installed in the base image and others can be downloaded from the feeds. Selecting the skin is done from the menu and after a GUI restart the new skin is displayed.

### File transfer

Pro File transfer between receiver and computer in home network is possible using protocols FTP, SFTP or shared directory trees in receiver using protocols Samba or Network File System (NFS). Downloading multimedia files from receiver to a computer can be performed using OpenWebif interface as well.

### Picons

Picons (PLi icons) are graphical icons with the logo of individual TV/radio stations. They make visual navigation through channel lists easier and faster.

### Command line environment

It is possible to connect to the enigma2 box using terminal emulator protocol telnet or SSH. A password must be generated either using the GUI or SSH. After login the user gets to the Linux Command-line interface, and therefore some knowledge this environment and some specialties of E2 Linux systems is necessary. This access is rather a supplement that is allowed by using system Linux, as greater part of necessary features is realized using the enigma2 GUI application or by plugins.

## Technical realization

Enigma2 application implements a Graphical user interface (GUI) to control DVB receivers; it does not use X Window System for graphic output as is usual on Linux systems, but direct access to framebuffer; to run it makes use the Linux kernel and environment, usually in lightweight versions (BusyBox, Dropbear (software), etc.), for software build OpenEmbedded (OE) environment is used. The configuration of the features necessary to manage the system is realized in the form of menu and text dialogues. The Enigma2 core is written in the programming language C++ and creates an API for plugins written in Python (programming language). Tutorials are available on the satsupreme.com website about plugin development including the source code of simple plugins.