Dune HD STB - SDK OVERVIEW



JS STB SDK

Overview:
   - SDK for creating fullscreen application using HTML, JavaScript, and
     Dune HD STB JS API.

Features:
   - Dune HD STB JS API provides operations for controlling video/audio
     playback (start/stop/pause/seek/set video window/etc) and accessing
     and controlling various STB functions.

For more information, see here:
   http://files.dune-hd.com/sdk/doc/html/html_apps.html

For Dune HD STB JS API documentation and usage examples, please download
the SDK package (js_stb_sdk-*.zip) from the below sections and use the
following files:
   - Documentation:
      - js_stb_sdk-*/doc/dune_js_stb_api.txt
   - Usage examples:
      - js_stb_sdk-*/test/*.html

Supported Dune HD models:
   - SMP8670 chipset:
      - TV-101, TV-102p, TV-201*, TV-301.
   - SMP8674 chipset:
      - TV-102, TV-202*, Connect.
      - TV-102 v2.
   - SMP8672 chipset:
      - TV-303D, Base 3D.
      - TV-303D v2, Base3D v2.
   - SMP8756 chipset:
      - TV-203, TV-204.
   - SMP8758 chipset:
      - TV-205, TV-206, Solo 4K, Solo Lite, Duo 4K.
   - NOTE: the models marked with "*" are not officially launched.

JS STB SDK -- WebKit-based versions

   - "r11" (recommended for new projects) (for SMP875x platforms):
      - Documentation and examples (same as in r10):
         - http://files.dune-hd.com/sdk/js_stb_sdk/js_stb_sdk-150729_0139_r10.zip
      - Dune HD TV-203, TV-204, TV-205, TV-206, Solo 4K, Solo Lite, Duo 4K (SMP8756, SMP8758):
		   - Use the standard firmware.

   - "r10" (recommended for new projects) (for SMP867x platforms):
      - Documentation and examples:
         - http://files.dune-hd.com/sdk/js_stb_sdk/js_stb_sdk-150729_0139_r10.zip
      - Firmware based on QtWebkit 4.7:
         - Dune HD TV-102, TV-202, Dune HD Connect (SMP8674):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv102_150729_0139_r10_js_stb_webkit.dff.zip
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv102v2_150729_0139_r10_js_stb_webkit.dff.zip
         - Dune HD TV-303D, Dune HD Base 3D (SMP8672):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv303d_150729_0139_r10_js_stb_webkit.dff.zip
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv303d2_150729_0139_r10_js_stb_webkit.dff.zip
      - Firmware based on QtWebkit 4.8:
         - Dune HD TV-102, TV-202, Dune HD Connect (SMP8674):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv102_150729_0139_r10_js_stb_webkit48.dff.zip
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv102v2_150729_0139_r10_js_stb_webkit48.dff.zip
         - Dune HD TV-303D, Dune HD Base 3D (SMP8672):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv303d_150729_0139_r10_js_stb_webkit48.dff.zip
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv303d2_150729_0139_r10_js_stb_webkit48.dff.zip

   - "b9":
      - Documentation and examples:
         - http://files.dune-hd.com/sdk/js_stb_sdk/js_stb_sdk-140401_0133_b9.zip
      - Firmware:
         - Dune HD TV-101, TV-102p, TV-201, TV-301 (SMP8670):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_hdtv_101_140401_0133_b9_js_stb_webkit.dff.zip
         - Dune HD TV-102, TV-202, Dune HD Connect (SMP8674):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv102_140401_0133_b9_js_stb_webkit.dff.zip
         - Dune HD TV-303D, Dune HD Base 3D (SMP8672):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv303d_140401_0133_b9_js_stb_webkit.dff.zip

   - "b8":
      - Documentation and examples:
         - http://files.dune-hd.com/sdk/js_stb_sdk/js_stb_sdk-140314_0133_b8.zip
      - Firmware:
         - Dune HD TV-101, TV-102p, TV-201, TV-301 (SMP8670):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_hdtv_101_140314_0133_b8_js_stb_webkit.dff.zip
         - Dune HD TV-102, TV-202, Dune HD Connect (SMP8674):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv102_140314_0133_b8_js_stb_webkit.dff.zip
         - Dune HD TV-303D, Dune HD Base 3D (SMP8672):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv303d_140314_0133_b8_js_stb_webkit.dff.zip

   - "b6":
      - Documentation and examples:
         - http://files.dune-hd.com/sdk/js_stb_sdk/js_stb_sdk-140223_0132_b6.zip
      - Firmware:
         - Dune HD TV-101, TV-102p, TV-201, TV-301 (SMP8670):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_hdtv_101_140223_0132_b6_js_stb_webkit.dff.zip
         - Dune HD TV-102, TV-202, Dune HD Connect (SMP8674):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv102_140223_0132_b6_js_stb_webkit.dff.zip
         - Dune HD TV-303D, Dune HD Base 3D (SMP8672):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv303d_140223_0132_b6_js_stb_webkit.dff.zip

For more information on Local PVR and Local PLTV support, see here:
   http://files.dune-hd.com/sdk/doc/html/pvr.html

For more information on PIP support, see here:
   http://files.dune-hd.com/sdk/doc/html/pip.html

JS STB SDK -- Opera-based versions

   - "r10" (recommended for new projects) (for SMP867x platforms):
      - Documentation and examples:
         - http://files.dune-hd.com/sdk/js_stb_sdk/js_stb_sdk-150729_0139_r10.zip
      - Firmware based on Opera Devices SDK 3.3:
         - Dune HD TV-102, TV-202, Dune HD Connect (SMP8674):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv102_150729_0139_r10_js_stb_opera33.dff.zip
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv102v2_150729_0139_r10_js_stb_opera33.dff.zip
         - Dune HD TV-303D, Dune HD Base 3D (SMP8672):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv303d_150729_0139_r10_js_stb_opera33.dff.zip
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv303d2_150729_0139_r10_js_stb_opera33.dff.zip
      - Firmware based on Opera Devices SDK 3.5:
         - Dune HD TV-102, TV-202, Dune HD Connect (SMP8674):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv102_150729_0139_r10_js_stb_opera35.dff.zip
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv102v2_150729_0139_r10_js_stb_opera35.dff.zip
         - Dune HD TV-303D, Dune HD Base 3D (SMP8672):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv303d_150729_0139_r10_js_stb_opera35.dff.zip
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv303d2_150729_0139_r10_js_stb_opera35.dff.zip
      - Firmware based on Opera Devices SDK 3.5 with HbbTV support:
         - Dune HD TV-102, TV-202, Dune HD Connect (SMP8674):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv102_150729_0139_r10_js_stb_opera35_hbbtv.dff.zip
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv102v2_150729_0139_r10_js_stb_opera35_hbbtv.dff.zip
         - Dune HD TV-303D, Dune HD Base 3D (SMP8672):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv303d_150729_0139_r10_js_stb_opera35_hbbtv.dff.zip
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv303d2_150729_0139_r10_js_stb_opera35_hbbtv.dff.zip

   - "b9":
      - Documentation and examples:
         - http://files.dune-hd.com/sdk/js_stb_sdk/js_stb_sdk-140401_0133_b9.zip
      - Firmware:
         - Dune HD TV-102, TV-202, Dune HD Connect (SMP8674):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv102_140401_0133_b9_js_stb_opera.dff.zip
         - Dune HD TV-303D, Dune HD Base 3D (SMP8672):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv303d_140401_0133_b9_js_stb_opera.dff.zip
         - Dune HD TV-101, TV-102p, TV-201, TV-301 (SMP8670):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_hdtv_101_140401_0133_b9_js_stb_opera.dff.zip

   - "b8":
      - Documentation and examples:
         - http://files.dune-hd.com/sdk/js_stb_sdk/js_stb_sdk-140314_0133_b8.zip
      - Firmware:
         - Dune HD TV-102, TV-202, Dune HD Connect (SMP8674):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv102_140314_0133_b8_js_stb_opera.dff.zip
         - Dune HD TV-303D, Dune HD Base 3D (SMP8672):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv303d_140314_0133_b8_js_stb_opera.dff.zip
         - Dune HD TV-101, TV-102p, TV-201, TV-301 (SMP8670):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_hdtv_101_140314_0133_b8_js_stb_opera.dff.zip

   - "b6":
      - Documentation and examples:
         - http://files.dune-hd.com/sdk/js_stb_sdk/js_stb_sdk-140223_0132_b6.zip
      - Firmware:
         - Dune HD TV-101, TV-102p, TV-201, TV-301 (SMP8670):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_hdtv_101_140223_0132_b6_js_stb_opera.dff.zip
         - Dune HD TV-102, TV-202, Dune HD Connect (SMP8674):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv102_140223_0132_b6_js_stb_opera.dff.zip
         - Dune HD TV-303D, Dune HD Base 3D (SMP8672):
            - http://files.dune-hd.com/sdk/js_stb_sdk/dune_firmware_tv303d_140223_0132_b6_js_stb_opera.dff.zip

Native GUI STB SDK

Overview:
   - SDK for creating fullscreen applications using C/C++, DirectFB API
     (and optionally Qt API for WebKit-based versions), and Dune HD STB C
     API.

Features:
   - DirectFB is hardware accelerated.
   - Dune HD STB C API provides the same possibilities as Dune HD STB JS
     API (see above).
   - NOTE: Applications created using this approach can only be used with
     the "Native GUI SDK" firmare versions, and are not supported for
     standard firmware versions.

Supported Dune HD models:
   - The same as for JS STB SDK, except SMP875x based platforms.

Versions:

   - "r10" (recommended for new projects):
      - Firmware for DirectFB applications w/o QtWebkit:
         - Dune HD TV-102, TV-202, Dune HD Connect (SMP8674):
            - SDK, documentation and examples:
               - http://files.dune-hd.com/sdk/native_gui_sdk/dune_native_gui_sdk.tv102.150729_0139_r10.dfb.tgz
               - http://files.dune-hd.com/sdk/native_gui_sdk/dune_native_gui_sdk.tv102v2.150729_0139_r10.dfb.tgz
            - Firmware:
               - http://files.dune-hd.com/sdk/native_gui_sdk/dune_firmware_tv102_150729_0139_r10_native_stb_dfb.dff.zip
               - http://files.dune-hd.com/sdk/native_gui_sdk/dune_firmware_tv102v2_150729_0139_r10_native_stb_dfb.dff.zip
         - Dune HD TV-303D, Dune HD Base 3D (SMP8672):
            - SDK, documentation and examples:
               - http://files.dune-hd.com/sdk/native_gui_sdk/dune_native_gui_sdk.tv303d.150729_0139_r10.dfb.tgz
               - http://files.dune-hd.com/sdk/native_gui_sdk/dune_native_gui_sdk.tv303d2.150729_0139_r10.dfb.tgz
            - Firmware:
               - http://files.dune-hd.com/sdk/native_gui_sdk/dune_firmware_tv303d_150729_0139_r10_native_stb_dfb.dff.zip
               - http://files.dune-hd.com/sdk/native_gui_sdk/dune_firmware_tv303d2_150729_0139_r10_native_stb_dfb.dff.zip
      - Firmware for DirectFB + QtWebkit applications (includes QtWebkit 4.7):
         - Dune HD TV-102, TV-202, Dune HD Connect (SMP8674):
            - SDK, documentation and examples:
               - http://files.dune-hd.com/sdk/native_gui_sdk/dune_native_gui_sdk.tv102.150729_0139_r10.webkit.tgz
               - http://files.dune-hd.com/sdk/native_gui_sdk/dune_native_gui_sdk.tv102v2.150729_0139_r10.webkit.tgz
            - Firmware:
               - http://files.dune-hd.com/sdk/native_gui_sdk/dune_firmware_tv102_150729_0139_r10_native_stb_webkit.dff.zip
               - http://files.dune-hd.com/sdk/native_gui_sdk/dune_firmware_tv102v2_150729_0139_r10_native_stb_webkit.dff.zip
         - Dune HD TV-303D, Dune HD Base 3D (SMP8672):
            - SDK, documentation and examples:
               - http://files.dune-hd.com/sdk/native_gui_sdk/dune_native_gui_sdk.tv303d.150729_0139_r10.webkit.tgz
               - http://files.dune-hd.com/sdk/native_gui_sdk/dune_native_gui_sdk.tv303d2.150729_0139_r10.webkit.tgz
            - Firmware:
               - http://files.dune-hd.com/sdk/native_gui_sdk/dune_firmware_tv303d_150729_0139_r10_native_stb_webkit.dff.zip
               - http://files.dune-hd.com/sdk/native_gui_sdk/dune_firmware_tv303d2_150729_0139_r10_native_stb_webkit.dff.zip

   - "b9":
      - Dune HD TV-102, TV-202, Dune HD Connect (SMP8674):
         - SDK, documentation and examples:
            - http://files.dune-hd.com/sdk/native_gui_sdk/dune_native_gui_sdk.tv102.140401_0133_b9.webkit.tgz
         - Firmware:
            - http://files.dune-hd.com/sdk/native_gui_sdk/dune_firmware_tv102_140401_0133_b9_native_stb_webkit.dff.zip
      - Dune HD TV-303D, Dune HD Base 3D (SMP8672):
         - SDK, documentation and examples:
            - http://files.dune-hd.com/sdk/native_gui_sdk/dune_native_gui_sdk.tv303d.140401_0133_b9.webkit.tgz
         - Firmware:
            - http://files.dune-hd.com/sdk/native_gui_sdk/dune_firmware_tv303d_140401_0133_b9_native_stb_webkit.dff.zip
      - Dune HD TV-101, TV-102p, TV-201, TV-301 (SMP8670):
         - SDK, documentation and examples:
            - http://files.dune-hd.com/sdk/native_gui_sdk/dune_native_gui_sdk.hdtv_101.140401_0133_b9.webkit.tgz
         - Firmware:
            - http://files.dune-hd.com/sdk/native_gui_sdk/dune_firmware_hdtv_101_140401_0133_b9_native_stb_webkit.dff.zip

   - "b8":
      - Dune HD TV-102, TV-202, Dune HD Connect (SMP8674):
         - SDK, documentation and examples:
            - http://files.dune-hd.com/sdk/native_gui_sdk/dune_native_gui_sdk.tv102.140314_0133_b8.webkit.tgz
         - Firmware:
            - http://files.dune-hd.com/sdk/native_gui_sdk/dune_firmware_tv102_140314_0133_b8_native_stb_webkit.dff.zip
      - Dune HD TV-303D, Dune HD Base 3D (SMP8672):
         - SDK, documentation and examples:
            - http://files.dune-hd.com/sdk/native_gui_sdk/dune_native_gui_sdk.tv303d.140314_0133_b8.webkit.tgz
         - Firmware:
            - http://files.dune-hd.com/sdk/native_gui_sdk/dune_firmware_tv303d_140314_0133_b8_native_stb_webkit.dff.zip
      - Dune HD TV-101, TV-102p, TV-201, TV-301 (SMP8670):
         - SDK, documentation and examples:
            - http://files.dune-hd.com/sdk/native_gui_sdk/dune_native_gui_sdk.hdtv_101.140314_0133_b8.webkit.tgz
         - Firmware:
            - http://files.dune-hd.com/sdk/native_gui_sdk/dune_firmware_hdtv_101_140314_0133_b8_native_stb_webkit.dff.zip

   - "b6":
      - Dune HD TV-102, TV-202, Dune HD Connect (SMP8674):
         - SDK, documentation and examples:
            - http://files.dune-hd.com/sdk/native_gui_sdk/dune_native_gui_sdk.tv102.140223_0132_b6.webkit.tgz
         - Firmware:
            - http://files.dune-hd.com/sdk/native_gui_sdk/dune_firmware_tv102_140223_0132_b6_native_stb_webkit.dff.zip
      - Dune HD TV-303D, Dune HD Base 3D (SMP8672):
         - SDK, documentation and examples:
            - http://files.dune-hd.com/sdk/native_gui_sdk/dune_native_gui_sdk.tv303d.140223_0132_b6.webkit.tgz
         - Firmware:
            - http://files.dune-hd.com/sdk/native_gui_sdk/dune_firmware_tv303d_140223_0132_b6_native_stb_webkit.dff.zip
      - Dune HD TV-101, TV-102p, TV-201, TV-301 (SMP8670):
         - SDK, documentation and examples:
            - http://files.dune-hd.com/sdk/native_gui_sdk/dune_native_gui_sdk.hdtv_101.140223_0132_b6.webkit.tgz
         - Firmware:
            - http://files.dune-hd.com/sdk/native_gui_sdk/dune_firmware_hdtv_101_140223_0132_b6_native_stb_webkit.dff.zip

For more information on Local PVR and Local PLTV support, see here:
   http://files.dune-hd.com/sdk/doc/html/pvr.html

For more information on PIP support, see here:
   http://files.dune-hd.com/sdk/doc/html/pip.html

Plugins mechanism

The mechanism of plugins provides the following possibilities:
   - Integration of applications into the standard Dune HD GUI.
   - Implementation of GUI applications in PHP language using GUI framework
     and PHP API provided by Dune HD STB (especially helpful for quick
     integration of simple IPTV/VOD services, which do not require a lot of
     custom GUI).

For more information, see here:
   http://files.dune-hd.com/sdk/doc/html/plugins.html

Supported Dune HD models:
   - All current Dune HD models and most discontinued models (starting with
     SMP8642 chipset).

Firmware:
   - The latest standard public firmware version is recommended for new
     developments.
   - The oldest supported firmware version is 111122_0159_beta.

Documentation:
   - http://files.dune-hd.com/sdk/doc/html/plugins.html

Linux Kernel SDK

Overview:
   - SDK for compiling custom Linux kernel modules.
   - Typical usage: compiling DRM modules or drivers for specific USB
     devices.

Supported Dune HD models:
   - All current models and several discontinued models.

Firmware:
   - Any latest public firmware.
   - NOTE: Firmware from JS STB SDK and Native GUI SDK are supported too.

SDK:
   - Available on request.

Simple IPTV channels zapper

If you need to configure STB to just switch through a set of IPTV channels,
please see here:

   http://files.dune-hd.com/sdk/doc/html/dune_simple_iptv.html

Ekioh SVG browser and Beesmart

For the information about Ekioh SVG browser and Beesmart middleware usage,
see here:

   http://files.dune-hd.com/sdk/ekioh/dune_beesmart_howto.txt

Supported media streaming protocols and formats

Currently supported:
   - Multicast UDP/TS (raw-UDP or RTP-over-UDP).
   - HTTP/TS.
   - Apple HLS (with adaptive bitrate).
   - HTTP/MP4.
   - HTTP with other container formats (WMV, AVI, MKV, MP3, etc).
   - RTSP/TS (RTSP+RTP or RTSP-over-TCP).
   - MMS (MMS-over-TCP or MMS-over-HTTP).
   - SMB (any files).
   - NFS (any files).

Support for other protocols and formats can be potentially added on
request.

For more information, see here:
   http://files.dune-hd.com/sdk/doc/html/media_url.html

For the information on how to test media playback, see here:
   http://files.dune-hd.com/sdk/doc/html/dune_media_playback_howto.html

NOTE: For certain media streaming protocols (HTTP/TS and HTTP/MP4), a
special way of launching media playback should be typically used to ensure
good performance: HTTP URLs pointing to the media content should be formed
using a special syntax ("http://ts://" and "http://mp4://" instead of just
"http://", see "media_url" documentation for the details).

NOTE: To get good channel zapping time, special care should be typically
taken, especially, when the playback is controlled by a 3-party UI
application. There are two typical recommendations: 1) ensure appropriate
"media_url" syntax and parameters; 2) ensure that the UI application does
not perform "stop playback" command when switching TV channels, and only
perform "start playback" command.

If you encounter any problems with playback performance or channel zapping
performance, please send a consultation request to your Dune HD contacts,
you can get useful hints how to solve the problem.

Supported DRMs

Currently supported out-of-the box:
   - Verimatrix IPTV client. Supported with:
      - Multicast UDP/TS.
      - HTTP/TS.
      - RTSP/TS.
   - Verimatrix Web client. Supported with:
      - Apple HLS.
   - AES (generic). Supported with:
      - Apple HLS.

For more information about Verimatrix support, see here:
   - http://files.dune-hd.com/sdk/doc/html/dune_verimatrix_info.html

Other DRMs that can be potentially used (integration work may be needed):
   - Microsoft PlayReady.
   - Microsoft DRM10.
   - SecureMedia.
   - Widewine.
   - Other/custom DRMs.

Basic Dune HD information

All models of Dune HD media players / set-top-boxes and their features:
   - http://dune-hd.com/products/set_top_boxes
   - http://dune-hd.com/products/full_hd_media_players

Accessories:
   - http://dune-hd.com/accessories/

Additional potentially helpful information:
   - http://dune-hd.com/firmware/

Firmware update instructions

Installing public firmware update using online firmware update mechanism:
   - The STB periodically automatically detects and proposes to update
     the firmware (typically this happens on STB boot or when exiting
     from playback mode to the main menu mode).
   - To manually check for available firmware versions (this also allows to
     check for beta-status firmware updates), use:
      - Setup / Misc / Firmware Upgrade

Manually installing firmware from a .DFF file via USB:
   - Get the .DFF file with the needed firmware image.
   - Put the .DFF file to a USB flash file.
   - Attach USB flash drive to the STB.
   - Go to "Sources" menu in the STB native menu, choose the USB flash
     drive, choose the .DFF file, and "launch" it by pressing ENTER RC
     button.

Firmware upgrade error codes:
   - See http://files.dune-hd.com/sdk/doc/html/firmware_upgrade_error_codes.html

Emergency firmware recovery (when STB does not boot):
   - See "Emergency firmware recovery" section below.

Automated firmware installation via USB:
   - See "Automated firmware installation via USB" section below.

Triggering firmware update via STB API:
   - See STB API documentation.

Important notes on upgrading TV-102, TV-303D, Base 3D from old "_b3"
firmware versions:
   - See "Upgrading TV-102 / TV-303D / Base 3D from old b3 firmware
     versions" section below.

Retail firmware versions

If you want to restore the STB from an SDK firmware version back to a
regular retail firmware version, you can typically do it via online
firmware update mechanism (see "Firmware update instructions" section).

If online firmware update mechanism can not be used for some reason and
firmware installation via USB is needed, you can obtain the firmware file
on the following web page (please use the latest stable or the latest beta
version, depending on your needs):
   http://dune-hd.com/firmware/

If native Dune UI can not be reached, see "Emergency firmware recovery"
section.

Upgrading TV-102 / TV-303D / Base 3D from old b3 firmware versions

If your TV-102 / TV-303D / Base 3D box as a firmware version ending with
"_b3", you can not directly upgrade it to any newer firmware version,
because firmware file format for these models was changed starting with
"_b4" firmware versions. You should first upgrade to intermediate "_b4"
firmware version, and after that you will be able to upgrade to any newer
firmware version ("_b5" and later).

To upgrade from "_b3" firmware version to "_b4" firmware version, you can
do it via online firmware update mechanism, or you can download the "_b4"
firmware image and upgrade via USB flash drive. See "Firmware update
instructions" section for more details. Links to download "_b4" firmware
versions:
   - Dune HD TV-102:
      - http://files.dune-hd.com/firmware/tv102/dune_firmware_tv102_130221_1050_b4.dff.zip
   - Dune HD TV-303D:
      - http://files.dune-hd.com/firmware/tv303d/dune_firmware_tv303d_130221_1050_b4.dff.zip
   - Dune HD Base 3D:
      - http://files.dune-hd.com/firmware/base3d/dune_firmware_base3d_130221_1050_b4.dff.zip

Emergency firmware recovery

The following emergency firmware recovery procedure can be used to
(re)install firmware when the STB does not boot, or when STB native menu
can not be reached, or when non-GUI way for firmware installing is needed
for some other reason:
   - Get the .DFF file with the needed firmware image.
   - Put the .DFF file to the root of a USB flash drive.
   - Rename the .DFF file to "dune_firmware.dff".
   - Attach USB flash drive to the STB.
   - Power on the STB.
   - The STB will detect "dune_firmware.dff" file on the USB flash drive
     and will automatically start reflashing itself to this file. During
     reflashing process, the LED on the front panel of the STB will blink,
     it should take about 1 minute.
   - After the LED blinking stops, disconnect the USB flash drive from the
     STB, and do power-off/power-on of the STB.
   - If the procedure fails, the "dune_firmware_recovery.log" file is
     created in the root directory of the USB flash drive. For information
     about error codes, see here:
     http://files.dune-hd.com/sdk/doc/html/emergency_firmware_recovery_error_codes.html

NOTE: emergency firmware recovery does not reset STB settings, it only
installs the firmware. If settings reset is also needed, see "Emergency
settings reset" section below.

Emergency settings reset

The following emergency settings reset procedure can be used to reset all
STB settings to default values when the STB does not boot, or when STB
native menu can not be reached, or when non-GUI way for settings reset is
needed for some other reason:
   - Create an empty "dune_boot_reset_settings.flag" file in the root of a
     USB flash drive.
   - Attach USB flash drive to the STB.
   - Power on the STB.
   - The STB will detect "dune_boot_reset_settings.flag" file on the USB
     flash drive and will automatically perform settings reset.
   - After that, the STB will continue normal boot automatically.
   - After the STB is booted ok, disconnect the USB flash drive from the
     STB.

Automated firmware installation via USB

NOTE: this functionality is currently available only on Dune HD models
based on SMP8674 and SMP8672 chipsets.

The following procedure can be used to install firmware:
   - Download the following dune_firmware_upgrader archive:
     http://files.dune-hd.com/sdk/misc/dune_firmware_upgrader_8672_8674.zip
   - Unzip the dune_firmware_upgrader archive to the root of a USB flash
     drive.
   - Get the .DFF file with the needed firmware image.
   - Put the .DFF file to the root of the same USB flash drive.
   - Rename the .DFF file to "dune_firmware_upgrader.dff".
   - As a result, root directory of the USB flash drive should contain the
     following 3 files:
      - dune_firmware_upgrader.dff
      - dune_firmware_upgrader.sh
      - dune_firmware_upgrader.sign
   - Attach the USB flash drive to the STB.
   - Power on the STB.
   - The STB will detect dune_firmware_upgrader files on the USB flash
     drive and will automatically start firmware installation. During
     firmware installation, the LED on the front panel of the STB will
     blink, it should take about 1 minute.
   - After the LED blinking stops, disconnect the USB flash drive from the
     STB, and do power-off/power-on of the STB.
   - If the procedure fails, the "dune_firmware_upgrader.log" file is
     created in the root directory of the USB flash drive.

NOTE: this procedure can be used regardless of the firmware version
installed on the STB.

Using TV-101 firmware on TV-201, TV-301, TV-102p models

Dune HD TV-101, TV-201, TV-301, TV-102p models have compatible hardware,
and, for testing purposes, the firmware for TV-101 can be installed on
these models using the following "cross-upgrade" procedure:
   - Get the .DFF file with the needed TV-101 firmware image and put it to
     a USB flash drive (NOTE: do not rename the .DFF file to
     "dune_firmware.dff").
   - Additionally, download the following .DSF service file and put it to
     the USB flash drive:
      - http://files.dune-hd.com/tmp/dune_service_allow_cross_upgrade_tv.dsf
   - Boot the STB and launch the native Dune's UI.
   - Attach USB flash drive to the STB, go to "Sources" menu in the STB
     native menu, choose the USB flash drive.
   - Choose the .DSF file and "launch" it by pressing ENTER RC button.
   - Immediately after that (w/o doing full reboot of the STB), choose the
     .DFF file and launch it by pressing ENTER RC button.

Restoring back the original TV-201/TV-301/TV-102p firmware can be done in
the same way, with the following additional step:
   - If the firmware upgrade shows an error in the end (may take place when
     reinstalling TV-201 or TV-102p firmware over TV-101 firmware), please
     reinstall the TV-201 or TV-102p firmware once again using "Emergency
     firmware recovery" procedure.

For production use, TV-201/TV-301/TV-102p should be used with the firmware
specially built for these models.

NOTE: The "emergency firmware recovery" procedure can not be used to
cross-upgrade the firmware between different Dune HD models.

Exchanging firmware between TV-102 and Connect models

Similarly to installing Dune HD TV-101 firmware on other models with
compatible hardware, it is possible to use the same firmware for any of the
following models (all based on SMP8674 chipset and the same hardware):
   - Dune HD TV-102 (Setup / Information / Product ID: tv102)
   - Dune HD Connect (Setup / Information Product ID: connect)

NOTE: do not mix TV-102 based on SMP8674 (product ID: tv102) and TV-102p
based on SMP8670 (product ID: hdtv_102p).

NOTE: do not mix Connect based on SMP8674 (product ID: connect) and Connect
3D based on SMP8672 (product ID: connect3d).

Procedure for cross-upgrading firmware between these models:
   - Get the .DFF file with the needed TV-102 or Connect firmware image and
     put it to a USB flash drive. (NOTE: do not rename the .DFF file to
     "dune_firmware.dff")
   - Additionally, download the following .DSF service file and put it to
     the USB flash drive:
      - http://files.dune-hd.com/service/dune_service_allow_cross_upgrade_tv102_connect.dsf
   - Boot the STB and launch the native Dune's UI.
   - Attach USB flash drive to the STB, go to "Sources" menu in the STB
     native menu, choose the USB flash drive.
   - Choose the .DSF file and "launch" it by pressing ENTER RC button.
   - Immediately after that (w/o doing full reboot of the STB), choose the
     .DFF file and launch it by pressing ENTER RC button.

NOTE: The "emergency firmware recovery" procedure can not be used to
cross-upgrade the firmware from different Dune HD models.

Differences between TV-102 (tv102) and TV-102p (hdtv_102p) models

Dune HD TV-102p model (internal identifier hdtv_102p) is an early version
of Dune HD TV-102 model (internal identifier tv102). It is discontinued and
was completely replaced by Dune HD TV-102 model.

Dune HD TV-102p and Dune HD TV-102 models, although are both positioned as
revisions of the same "Dune HD TV-102" model, are based on different chips
(SMP8670 in TV-102p and SMP8674 in TV-102) and have completely incompatible
firmwares.

To check if you have TV-102p (hdtv_102p), go to "Setup / Information" menu
and check "Product ID", it should report "hdtv_102p" for TV-102p, and
"tv102" for "TV-102.

Differences between TV-102 (tv102) and TV-102-N (tv102v2) models

Dune HD TV-102-N model (aka TV-102 v2, internal identifier "tv102v2") is a
new revision of the older Dune HD TV-102 model (internal identifier
"tv102"), which has the same hardware, but which uses a newer revision of
SMP8674 chip.

NOTE: Depending on the exact project / distribution approach, the model
TV-102-N may have or not have "N" part in the model name.

To check if you have TV-102-N (tv102v2), go to "Setup / Information" menu
and check "Product ID", it should report "tv102v2" for TV-102-N, and
"tv102" for "TV-102.

The firmware files for TV-102 and TV-102-N (tv102v2), are not compatible
and can not be interchanged, because different firmware signing keys are
used. The reason is that this new revision of SMP8674 chip uses the new
keys for signing/verification of firmware components during STB boot.

To migrate a custom firmware from TV-102 to TV-102-N (tv102v2) it is enough
to repack the custom firmware using base firmware for TV-102-N (tv102v2).
Any custom software which is part of custom firmware for TV-102 does not
require any changes when migrating to TV-102-N (tv102v2) and will work
absolutely the same way on both TV-102 and TV-102-N (tv102v2).

Differences between TV-303D (tv303d) and TV-303D v2 (tv303d2) models

The idea is the same as the difference between TV-102 and TV-102 v2.

Differences between Base 3D (base3d) and Base 3D v2 (base3d2) models

The idea is the same as the difference between TV-102 and TV-102 v2.

Getting into native Dune UI from the middleware

If an HTML or SVG middleware is configured to automatically run on the STB,
and the middleware does not provide its own way (e.g. special menu item) of
entering native Dune UI, the following procedure can be used to temporarily
enter native Dune UI:
   - Go to standby mode by pressing "POWER" RC button.
   - Press "D" RC button. Native Dune UI should launch.

Basic development information

The following document provides various information needed for
development:
   - Telnet access to the box.
   - Toolchain for compiling C/C++ code.
   - Overview of STB internal filesystem structure.
   - Overview of STB boot process.
   - Some hints useful for development.

http://files.dune-hd.com/sdk/doc/html/dune_devel_info.html

DHCP options supported by Dune HD units

See here:
   - http://files.dune-hd.com/sdk/doc/html/dune_dhcp_settings.html

Creating custom firmware builds

See here:
   - http://files.dune-hd.com/sdk/doc/html/dune_custom_firmware.html

Working with built-in DVB-T/T2/S/S2/C tuners

See here:
   - http://files.dune-hd.com/sdk/doc/html/dvb.html