From danielrolf.com

Jump to: navigation, search



[edit] Things you can do

  • You can monitor the temperatures of the HD160XT sensors and the sensors that SpeedFan recognizes.
  • You can use these temperatures to control the fans.
  • You can use your remote control to control an IRTrans-TCP/IP-capable client application, e.g. MediaPortal.
  • You can customize the Home and the Power key.
  • You can use the display mirror to mirror some display in the D-HD160XT-C Display tab.

[edit] Help

Please join Google Group D-HD160XT-C to discuss / ask / answer questions on this project!

[edit] Installation

  1. Create a directory like "c:\programme\D-HD160XT-C"
  2. Unzip the contents of the zip-file you received into that directory
  3. Move "IrTrans hd160xt.xml" file to your "MediaPortal / InputDeviceMappings / defaults" directory, should be "C:\Programme\Team MediaPortal\MediaPortal\InputDeviceMappings\defaults"
  4. Make sure that the you have read the following configuration notes.
  5. Run D-HD160XT-C.exe and agree with the license terms. Drag the application to the touch screen.
  6. Appropriately, put a link to D-HD160XT-C.exe in your autostart folder if you would like to let D-HD160XT-C to be run each time when windows starts.

[edit] Configuration Notes

Please carefully read the following configuration notes BEFORE you start D-HD160XT-C the first time.

[edit] Temperature Sensors

There are two temperature sensors in the case. At first, you have to identify the front and the rear sensor: Use your hand to warm the sensor and look which temperature is increasing.

So, you should put the rear sensor somewhere in the rear, maybe next to your CPU, and the front sensor in the front, maybe next to your ODD/HDD.

[edit] SpeedFan

It does not matter whether you start SpeedFan or D-HD160XT-C at first. However, SpeedFan must be running in order to use SpeedFan's temperature readings to be used for fan control.

Anyway, you do not SpeedFan if you think that the two built-in temperature sensors are enough. But, I advise you to use it since you will have more safety then.

[edit] Fan Channels

The two fans at the rear form the rear channel, the one at the left side and the one at the bottom are called the front channel.

By design of the case, you can only control the front and rear channel independently from each other, but not the single fans!

[edit] COM3

The HD160XT is connected via USB to your motherboard, however it is mapped to a COM port. At the moment, it is assumed that this COM3. Look at Device Manager > COM and LPT > USB Serial Port whether it is connected to COM3.

Moreover, there must not be running any other software (e.g. ZINI) that talks to the HD160XT fans / temperatures / remote control, i.e. only one programme can use the COM port. If ZINI comes up every time you boot, you should check autostart registry keys, i.e. Windows > CurrentVersion > Run.

[edit] Monitor Setting

Your main screen (TV/flatscreen) should be configured as primary monitor. Actually, MediaPortal only starts on the primary monitor.

Therefore, your touch screen should be configured as secondary monitor. D-HD160XT-C should run in borderless, fullscreen mode (see Settings > Window) on that display. It is optimized for a resolution of 800x600.

For the Display Mirror to work, you will have to select the right source display, cf. Settings > Display.

[edit] IRTrans

D-HD160XT-C emulates a IRTrans TCP/IP server at port 21000. Client applications can connect to that port to receive the remote control commands. The remote name is set to hd160xt. You have to configure MediaPortal to use IRTrans for receiving rc commands with remote name hd160xt.

You may have to open your firewall for D-HD160XT-C! Stay calm, it does not phone home, but it needs to establish a socket server and this could be blocked by your firewall.

[edit] GUI

The GUI of D-HD160XT-C consists of a couple of tabbed pages:

  • Status -- State of the temperature and fans
  • Fan Control -- Settings for the fan controller
  • Log -- Debug log
  • Settings -- Settings for everything else
  • Display -- The display mirror

[edit] Status

You see the big labels "Rear" and "Front" and below them the actual fan speed of the rear and front channel.

Note that this reflects the speed the D-HD160XT-C would like to set. But, when you are fans are broken or the wire is broken, you will not recognize it here since there is not any feedback of the fans, i.e. D-HD160XT-C does not know whether the fans are running or not.

Below the big labels, you should see the temperature readings of the various sensors the D-HD160XT-C is connected to. But, these readings are ONLY visible if the D-HD160XT-C is connected to them, i.e. if there are not any readings, then D-HD160XT-C is not able to connect.

"Rear" and "Front" show the temperatures of the rear and front sensors. If these two readings are missing, D-HD160XT-C could not connect to COM3!

"0" ... "3" reflect temperatures recognized by SpeedFan, i.e. they are only visible when SpeedFan is running too. But, when you shutdown SpeedFan, the temperatures stay as they are, i.e. they do not disappear again. This is because D-HD160XT-C reads the results form SpeedFan via the "SFSharedMemory_ALM" memory mapped file. SpeedFan writes the readings there, but does not reset them when it shuts down. You can customize the label names and which sensor to get from SpeedFan on the FanControl tab.

[edit] Fan Control

You see two pages "Rear" and "Front". Here you can configure the ranges for the rear resp. front fan channel. On the third tab, you can customize the SpeedFan link.

[edit] Rear / Front

For every temperature sensor you can set a "min" and "max" value as well as a "response" time.

The fan speed is computed using the following algorithm:

  • Let "o" be the current fan speed of the respective channel.
  • Every second and for each sensor "i", we do:
    • We compute a target fan speed "t(i)" for that sensor, which is
      • 0 % if temperature is at most min,
      • 100 % if temperature is at least max, and
      • f % if temperature t is at least min and at most max where f = ( t - min ) / ( max - min ) * 100, i.e. linearily interpolated between "min" and "max".
    • We compute the new fan speed "n(i)" for that sensor to be n(i) = o + ( t(i) - o ) * response.
  • We take the maximum new fan speed of the above speeds n(i) to be the new fan speed for the channel.

Roughly speaking, each sensor gives a target reading which is recognized with a response latency. Using the response latency, the fans do not go up when the temperature peaks, i.e. they are little bit lazy.

[edit] SpeedFan Link

You can configure D-HD160XT-C to copy the readings of at most four readings that are given by SpeedFan.

On the left side, you set the custom label for that sensor that is display in D-HD160XT-C. On the right side, you set the index of that sensor in SpeedFan. Normally, that is the index of the sensor in you SpeedFan monitor box. However, it could be that they do not match exactly. That happens for instance when you hide some sensors, i.e. SpeedFan seems to add dummies for them. So, you should compare the readings on SpeedFan and on D-HD160XT-C for the sensors to be sure!

[edit] Fan Speed Remap

If you have a problem with some low fan speeds resulting in ugly noise, you can use these settings to remap those fan speeds to other ones. For exmaple, have problems with front fan speeds 17%, 18% and 19%. They make a humming noise. So, I remap those speeds to 20 by entering


in the front remap box.

To remap fan speeds, put an A=B pair on each line: When the controller thinks it should adjust the fan speed because of temperature change, it looks in the table for the new fan speed as A in a line A=B. If it finds a line A=B, it sets the fan speed to B instead of A.

[edit] Log

This is a debug log that shows log events generated by D-HD160XT-C.

The log is saved to D-HD160XT-C.log. However, when it reaches 3600 lines, the oldest entry ist removed. After a restart of the programme, the log is cleared.

[edit] Creating...

The app is just creating.

[edit] Comm: Init

Setting up the COM port connection.

[edit] Comm: Detecting

Trying to detect the HD160XT.

[edit] Comm: HD160XT detected

The HD160XT was detected.

[edit] Query standby/suspend

The computer is queried to go to standy/suspend. See MSDN docs.

[edit] Query standby/suspend failed

Some other programme does not want the computer to go to standy/suspend. See MSDN docs.

[edit] Standby/suspend

The computers is going to standby/suspend. See MSDN docs.

[edit] Resume automatic

The computer was resumed, but there was not any user interaction yet. See MSDN docs.

[edit] Resume suspend

Issued after the first user interaction after the computer resumed. See MSDN docs.

[edit] Resume critical

The computer was resumed from a critical standby/suspend. See MSDN docs.

[edit] Stopping display thread

The display mirror is going to switch off.

[edit] Stopped display thread

The display mirror is switched off.

[edit] Start display thread

The display mirror is switched on.

[edit] Click @ x, y

You clicked in the display tab at position x, y.

[edit] MediaPortal IRTrans connected

MediaPortal connected to the IRTrans server.

[edit] MediaPortal IRTrans disconnected

MediaPortal disconnected from the IRTrans server.

[edit] Settings

[edit] Window

Specify whether you would like D-HD160XT-C to have a border or to be maximized.

[edit] Display

The settings:

  • Source display --- Set to the number of the display you want to be mirrored. Try all posibilities until you have the right display mirrored in the Display tab.
  • High quality --- Use high quality stretch-blitting (slow)
  • Buffered copy --- If off, then D-HD160XT-C does screen-to-screen stretch-blitting (could be slow). If on, then it uses an off-screen buffer for stretch-blitting (could be faster).
  • Target direct access -- If on, then D-HD160XT-C directly blits the result in the traget are (DESKTOP Device Context) of the Display tab on the screen (could be faster). When some application is above D-HD160XT-C, the display "shines thru". If off, D-HD160XT-C blits in the window (WINDOW Device Context).
  • Wait between frames -- How long to wait between two mirror blits.

Below at "Average Copy Time", you can see how fast your settings are. This value is only updated when the Display tab is visible! So, do some changes, go to the Display tab, come back, and see your readings.

[edit] RC Home

Specify how the Home button of the remote control is processed. However, it is always issued a Home-command thru the IRTrans server. But, you can set some special features for the Home button here:

  • Start MediaPortal if not running -- Starts MediaPortal if it is not running yet when you click the Home button.
  • Close MediaPortal after x ms -- When this option is checked, you can hold down the Home button for at least x ms to let D-HD160XT-C query MediaPortal to close. However, if MediaPortal is frozen, this may fail.
  • Kill MediaPortal after x ms -- When this option is checked, you can hold down the Home button for at least x ms to let D-HD160XT-C kill the MediaPortal process. This is like "kill process" in the taskman. You should do this only, when MediaPortal avoids to response (frozen).
  • MediaPortal Program -- Provide a path to the MediaPortal.exe here (including MediaPortal.exe!). If you do not provide the right path, the above options cannot be used.

[edit] RC Power-Off

Specify how the Power-Off button of the remote control is processed.

The best selection is to check "stop/hop" and to check "hibernate". That way playback is switched of and MediaPortal is brought to the homescreen and then we try to hibernate Windows. This fails if MediaPortal is recording. Since MediaPortal is now in the homescreen, you can check "only hibernate in homescreen" in your power scheduler (e.g. PVRS Scheduler) and it does automatically hibernate Windows when the recording is finished.

When the "stop/home" checkbox is checked, "stop" is sent, wait a second, "home" is sent, wait a seconds, and then it is done what you have selected under the "Do" box.

At the current time, there is a bug in MediaPortal that forces a critical hibernate or standby when MediaPortal receives a "power" RC. This is bad practice and could lead to unexpected behaviour. So you should not select "Send power RC"!

Details of the options:

  • Pass "stop" RC and "home" RC -- Stops any playback and brings MediaPortal to the home screen.
  • Do -- Do one of the following:
    • Try to hibernate Windows -- Tries to hibernate Windows. If MediaPortal is recording it automatically denies the request and Windows DOES NOT hibernate.
    • Try to standby Windows -- Tries to standby Windows. If MediaPortal is recording it automatically denies the request and Windows DOES NOT hibernate.
    • Send "power" RC -- Send "power" RC to MediaPortal. See note below!!!
    • Shutdown Windows -- This will shutdown Windows even if MediaPortal is recording something.
    • Nothing -- Just do nothing.

[edit] RC Key-Repeat

How key repeats are handled. Note that the HD160XT does only issue a generic command on the COM port when a key is hold down (key repeat). So, D-HD160XT-C has to remember the real last key press that was issued by the HD160XT.


  • Bogus repeat after x ms -- When there is a time of x ms between two issues by the RC, the key repeated by the IRTrans server. Imagine the following: You point your RC to the HD160XT, hold down key "1", then you point away, release key "1" and hold down key "2", and point back to the HD160XT. The following commands come thru the COM port: Key press "1", Repeat, Repeat, (pointed away), Repeat, Repeat. Since when you pointed away your RC when you pressed key "2", this key press is not received by the HD160XT. But while pointing away, some time elapsed. At if that time was more than x ms, the D-HD160XT-C recognized that you were pointing to somewhere else, and suppresses the "bogus" key repeat. 250 ms is a safe value!
  • Time until first repeat -- When you press and hold down a key, this is the time until the key is repeated the first time.
  • Time between repeats -- This is the time between to repeat events. Note that even if you set it to a very low value, there are about at most 10 repeats per second.

[edit] Volume Control

Here you specify how the volume knob behaves. Rotating the volume knob issues IRTrans "vol+" and "vol-" commands proportional to the rotation angle and depending whether you went right (vol+) or left (vol-).

  • Volume Control Stretch x %. Here you can specify a rotation stretch / shrink. When you set a big value, you have to rotate the volume knob more to issue "vol" commands. For a small value, you habe to rotate less. 200% is a good value.

[edit] Display

Here the display is mirrored. Which display to mirror, you specify in the Display Settings.

This feature is implemented by copying the bitmap from the DesktopDC of the source display and stretch-blitting it to the Display tab.

This works for MediaPortal since MediaPortal uses VMR9 to mix video playback with its frontend. However, it may be possible that when using other media center software, you get only a black rectangle where the video should be.

At the moment, this is a rather unstable feature since the mirrored display flickers a lot when something fancy is going on (video playback, overlays). Moreover, the click translator is not very sophisticated right now. Howover, I am going to improve it!

When you click in the display tab, the click event is translated to the source display.

There are two hidden buttons:

  • To turn the display black, click in the lower left edge of the window. To turn it on again, click somewhere in the display. You can also use the "warp"-key of your RC to toggle the display.
  • Click at the lower right edge of the window to go back to the status tab.

<= D-HD160XT-C:Features | D-HD160XT-C:FAQ =>