HDHomerun Technical Manual

HDHomerun Technical Manual
HDHomeRun TECH Usage Guide
I. Hardware:
2 3 4 5
Power LED
Network LED
Tuner0 LED
Tuner1 LED
6. Power connector
7. Network connector
8. Tuner1
9. Tuner0
The HDHomeRun TECH should be used with the supplied 5V 1A power adapter.
The HDHomeRun TECH can be connected to a network switch (100baseT or Gigabit), or can be
connected directly to a computer/laptop Ethernet port.
Direct-connect: The Ethernet port on the HDHomeRun TECH is Auto-MDX (auto-crossover) and
does not require a cross-over cable when connected directly to a computer/laptop.
Each tuner on the HDHR-TECH-US supports 8VSB, QAM265 (ITU Annex B), and QAM64 (ITU
Annex B) with an RF range of 55-861MHz (cable channels 1 to 135).
The signal level for digital cable must be in the range of -12dBmV to +40dBmV. Lower signal
levels can be measured.
II.Software Installation
The latest HDHomeRun drivers, code, and firmware can be found on the Silicondust website:
The HDHomeRun TECH requires the HDHomeRun Software release 20090215 or newer.
Download and install the latest Windows release of the HDHomeRun software.
The installation process will automatically detect and upgrade the firmware in any HDHomeRun
TECH units detected on the local subnet.
Location: The location setting is not used by the TECH hardware and can be left blank.
Signal source: The signal source should be set to “Digital Antenna” or “Digital Cable” as
appropriate for the intended use of each tuner.
Application: The application setting is only required if a DVR application is used. When the TECH is
used for non-DVR use this setting has no effect and can be left at the default.
Channels: Untick “Connect to the Silicondust Lineup server” to disable channel name correction
information. A channel scan may be run to verify correct operation.
When the installation process is complete it is recommended that the HDHomeRun program
directory be added to the PATH so that the hdhomerun_config utility can be run from a cmd
prompt. The default program directory is “C:\Program Files\Silicondust\HDHomeRun\”
Download and extract the libhdhomerun archive.
Run "make" to compile hdhomerun_config.
Copy hdhomerun_config to /usr/local/bin
VideoLAN VLC is a third party video player that works with the HDHomeRun TECH:
TSReader is a third party Transport Stream analyzer for Windows that works with the
III.Initial Configuration
Computer IP address configuration:
If the HDHomeRun TECH is connected directly to a computer (no DHCP server) the computer will
need to be configured such that it has a 169.254.x.x IP address (subnet This can be
achieved by statically configuring a 169.254.x.x IP address, or by the computer assigning itself an
AutoIP address.
Windows: Windows will pick an AutoIP address after a period of time if configured to “obtain an IP
address automatically”. This takes 3 minutes on XP and 30 seconds on Vista. Setting a static
169.254.x.x IP address will avoid this delay.
The HDHomeRun will take 20 seconds from link-up until it can be addressed using an AutoIP
Default IP Address:
By default the HDHomeRun TECH will attempt to acquire an IP address using DHCP, as well as
choosing an AutoIP address in the 169.254.x.x range.
If The HDHomeRun TECH is on the same DHCP-managed subnet as the computer or is connected
directly to the computer then the unit can be addresses by Device ID. It is not necessary to know
the IP address.
Methods to determine the IP address of the HDHomeRun TECH:
If using DHCP and the computer is on the same subnet as the HDHomeRun TECH, run
“hdhomerun_config discover” from a shell.
If using DHCP and the computer is on a different subnet then check the DHCP server logs.
The HDHomeRun TECH reports a hostname of “HDHR-XXXXXXXX” where XXXXXXXX is the
Device ID printed on the bottom of the unit.
If the HDHomeRun TECH is directly connected to the computer the computer will need to
be configured such that it has a 169.254.x.x IP address (subnet This can be
achieved by statically configuring a 169.254.x.x IP address, or by the computer assigning
itself an AutoIP address. Run “hdhomerun_config discover” from a shell.
If the HDHomeRun TECH has been previously configured with a static IP address and that
IP address is no longer valid for the network then connect the HDHomeRun TECH directly
to a computer and use the direct-connect technique to communicate with the unit.
Setting the IP address:
DHCP local subet:
The HDHomeRun TECH can be addressed by device ID if it is on the same DHCP-managed subnet
as the computers that will be controlling it. It is not necessary to set an IP address.
DHCP Fixed assignment:
Most DHCP servers can be configured to assign a set IP address to a specific device. The
HDHomeRun TECH can be identified by the DHCP server by MAC address or by hostname. The
hostname will be reported as “HDHR-XXXXXXXX” where XXXXXXXX is the Device ID printed on
the bottom of the unit. The MAC address is printed on the bottom of the unit.
Static IP assignment:
A static IP address can be configured using the following command (the quotes are required as
Format: hdhomerun_config <old ip> set /sys/ipaddr “<new ip> <subnet> <gateway>”
Example: hdhomerun_config set /sys/ipaddr “”
Reverting to DHCP:
The HDHomeRun TECH can be configured for DHCP operation (default) using the following
Format: hdhomerun_config <old ip> set /sys/ipaddr dhcp
Example: hdhomerun_config set /sys/ipaddr dhcp
Setting the channel map:
The channel map is a non-volatile configuration option that is used to set the channel to frequency
table, to configure the channel scan table, and to optimize the auto-modulation detection.
GUI: The channel map can be set for each tuner by running HDHomeRun Config (GUI).
Command line: The channel map can be set for each tuner using the following command:
Format: hdhomerun_config <ip|id> set /tuner<n>/channelmap <channelmap>
Example: hdhomerun_config 10001000 set /tuner0/channelmap us-cable
Example: hdhomerun_config 10001000 set /tuner1/channelmap us-cable
Channel maps supported by HDHR-TECH-US hardware:
Digital Antenna (ATSC).
US, Canada
Digital Cable - Normal frequency layout. US, Canada
Digital Cable - HRC frequency layout.
US, Canada
Digital Cable - IRC frequency layout.
US, Canada
Channel maps supported by HDHR-TECH-EU hardware:
au-bcast Digital Antenna (Australia).
au-cable Digital Cable (Australia).
eu-bcast Digital Antenna (Europe).
Europe, New Zealand
eu-cable Digital Cable (Europe).
Europe, New Zealand
Digital Antenna (Taiwan).
Digital Cable (Taiwan).
IV.HDHomeRun Config (GUI)
HDHomeRun Config (GUI) is a GUI utility for checking signal level and/or previewing channels
using VLC. VideoLAN VLC should be installed prior to running HDHomeRun Config (GUI).
Step 1: Select a HDHomeRun TECH tuner.
Step 2: Select the desired channel map.
Step 3: Select the desired channel. The scan up/down buttons will automatically stop on the next
digital channel found.
The HDHomeRun TECH should auto-detect all programs (sub-channels) present on the selected
To view a program select the desired program and click View.
To view the constellation plot for the channel click Plot (Windows only).
8VSB Constellation plot
QAM64 Constellation plot
QAM256 Constellation plot
The HDHomeRun can be scripted using the hdhomerun_config command line utility.
This utility is cross-platform:
Windows, Linux, Mac, *BSD, Solaris.
32-bit or 64-bit operating systems.
Big-endian and little-endian CPUs.
PC or embedded platforms.
Using hdhomerun_config
The list of supported commands can be obtained by running hdhomerun_config without any
<id> get help
<id> get <item>
<id> set <item> <value>
<id> scan <tuner> [<filename>]
<id> save <tuner> <filename>
<id> upgrade <filename>
Discover the HDHomeRun devices on the network:
The discover command will find HDHomeRun devices that are on the same subnet as the host:
hdhomerun_config discover
Sending commands to a specific HDHomeRun:
The “<id>” shown above represents a unique identifier for a HDHomeRun device, this can be
either Device ID, or IP address:
hdhomerun_config <device id> get help
hdhomerun_config <ip address> get help
To address by Device ID the HDHomeRun must be on the same subnet as the host.
A Device ID of FFFFFFFF can be used as a wild card for the first HDHomeRun device found on the
network. Do not use this syntax if there are multiple HDHomeRun devices on the network, as the
device used will be random based on discovery order, which may change between commands.
Query the list of options supported by a HDHomeRun device:
The get/set options supported by a specific HDHomeRun device can be queried using the get help
hdhomerun_config <id> get help
Example output:
Supported configuration options:
/tuner<n>/channel <modulation>:<freq|ch>
/tuner<n>/channelmap <channel map>
/tuner<n>/filter 0x<nnnn>-0x<nnnn> [...]
/tuner<n>/program <program number>
/tuner<n>/target <ip>:<port>
Get/set modulation and frequency
Get/set channel to frequency map
Get/set PID filter
Get/set MPEG program filter
Get/set target IP for tuner
Display status of tuner
Display stream info
Display debug info for tuner
Set/clear tuner lock
Display model name
Display supported features
Display firmware version
Display firmware copyright
Display debug info
Channel scan:
To run a channel scan:
Format: hdhomerun_config <id> scan /tuner<n> [<log filename>]
Example: hdhomerun_config FFFFFFFF scan /tuner0 scan0.log
This command will scan all channels on the selected channel map plus any additional channel
maps associated with the selected channel map. All standard modulation types for the selected
channel map are tested.
When a digital channel is found it will identify the programs on the channel.
The log filename is optional; if included it will log to the given filename.
Tuning a physical channel:
To set a channel use the set channel command:
<id> set
<id> set
/tuner<n>/channel <modulation>:<frequency>
/tuner<n>/channel <modulation>:<channel>
set /tuner0/channel auto:651000000
set /tuner0/channel auto:60
To auto-detect the modulation type use “auto” for the modulation.
Supported modulation types can be queried with the get sys-features command:
hdhomerun_config <id> get /sys/features
To stop the tuner set the channel to none:
Format: hdhomerun_config <id> set /tuner<n>/channel none
Example: hdhomerun_config FFFFFFFF set /tuner0/channel none
Checking the signal strength:
The basic signal information can be obtained by using the get status command:
Format: hdhomerun_config <id> get /tuner<n>/status
Example: hdhomerun_config FFFFFFFF get /tuner0/status
Example output:
ch=qam:33 lock=qam256 ss=83(-10dBmV) snq=90(29dB) seq=100 bps=38807712 pps=0
ch = channel requested
lock = actual modulation detected
ss = signal strength.
snq = signal to noise quality (MER).
seq = symbol error quality (based on the number of uncorrectable digital errors detected).
bps = raw channel bits per second.
pps = packets per second sent through the network.
More advanced information can be obtained by using the get debug command:
Format: hdhomerun_config <device id> get /tuner<n>/debug
Example: hdhomerun_config FFFFFFFF get /tuner0/debug
Example output:
ch=qam:33 lock=qam256 ss=84 snq=88 seq=100 dbg=22081-6930
resync=0 overflow=0
bps=38809216 ut=94 te=0 miss=0 crc=0
pps=0 err=0 stop=0
Each line contains a prefix to indicate the type of data, followed by the values.
tun = tuner status
see above section
dev = device status
ts = transport stream
bps = bits per second
ut = utilization percentage (100% is filled to capacity)
te = transport error counter (uncorrectable reception error)
miss = missed packet counter (jump in sequence numbers)
crc = crc error counter
flt = results after pid filtering
bps = bits per second
net = network status
pps = packets per second
err = packets or TS frames dropped before transmission.
stop = reason for stopping the stream
The counters are reset to zero upon a channel change, but may indicate a small number of errors
caused before the tuner locks on the channel. As a result, diagnostics should be based on the
change in values over time, and not the initial values.
Detecting the programs on a physical channel:
The HDHomeRun will detect the programs (sub-channels). Use the get streaminfo command to
query the detected programs:
Format: hdhomerun_config <id> get /tuner<n>/streaminfo
Example: hdhomerun_config FFFFFFFF get /tuner0/channel streaminfo
The output format is:
<program number>: <virtual major>.<virtual minor> [<name>] [(<flags>)]
Example output:
3: 20.1 KBWB-HD
4: 20.4 AZTECA
Digital cable does not always provide the channel name or virtual channel number:
1: 0.0
2: 0.0 (encrypted)
3: 0.0 (control)
It may take several seconds after setting the channel for the stream information to be fully
populated (depending on how long the channel takes to lock and how often the stream
information is sent by the broadcaster/cable provider).
Filtering by program (sub-channel):
The HDHomeRun supports automatic PID filtering by program number or virtual channel number:
hdhomerun_config <id> set /tuner<n>/program <program number>
hdhomerun_config <id> set /tuner<n>/program <virtual channel number>
Example: hdhomerun_config FFFFFFFF set /tuner0/program 3
hdhomerun_config FFFFFFFF set /tuner0/program 11.2
When filtering by program the MPEG TS tables are generated by the HDHomeRun. The result is a
valid single-program transport stream.
The program filter is cleared when a set channel or a set filter command is received.
Advanced: By default the PAT and PMT are generated. To also generate a ATSC-style TVCT use:
hdhomerun_config <id> set /tuner<n>/program "<program number> tvct_from_pmt=<virtual major>.<virtual
Example: hdhomerun_config <id> set /tuner0/program "3 tvct_from_pmt=11.2(TEST)"
Advanced: On cable systems the video elementary stream may be flagged as DC-II. To change
this indication to MPEG2 add the pmt_dc2_to_mpeg2 flag:
hdhomerun_config <id> set /tuner<n>/program "<program number> pmt_dc2_to_mpeg2 tvct_from_pmt=<virtual
major>.<virtual minor>(<name>)"
Example: hdhomerun_config <id> set /tuner0/program "3 pmt_dc2_to_mpeg2 tvct_from_pmt=11.2(TEST)"
Filtering by PID:
The HDHomeRun supports arbitrary hardware PID filtering:
Format: hdhomerun_config <id> set /tuner<n>/filter <filter>
Example: hdhomerun_config FFFFFFFF set /tuner0/filter "0x0000-0x1FFF"
hdhomerun_config FFFFFFFF set /tuner0/filter "0x0000 0x0030-0x0033 0x1FFB"
When filtering by PID the stream is filtered but otherwise unmodified.
The filter is cleared to pass-all (0x0000-0x1FFF) when a set channel command is received.
Saving a stream:
The hdhomerun_config command can be used to automate the process of saving to the local
Format: hdhomerun_config <id> save /tuner<n> <filename>
Example: hdhomerun_config FFFFFFFF save /tuner0 capture.ts
While saving the stream, a single period “.” will be displayed every second. Errors will be indicated
by a letter.
Example output:
-- Video statistics -23323 packets recieved, 2 network errors, 1 transport errors, 1 sequence errors
Advanced: A filename of “null” indicates no file should be created, allowing the use of the save
command as a diagnostic tool.
Advanced: “-” may be used as a filename to indicate standard output, allowing the save
command to be used as a pipe on supported platforms.
Example: hdhomerun_config FFFFFFFF save /tuner0 - | vlc -
Streaming to a target machine:
Set the target IP address and port number using the set target command:
<id> set
<id> set
/tuner<n>/target udp://<ip>:<port>
/tuner<n>/target rtp://<ip>:<port>
set /tuner0/target udp://
set /tuner0/target rtp://
The target machine must be listening on the given UDP port. The HDHomeRun will automatically
clear the target if a ICMP port unreachable message is received.
A global broadcast (, subnet broadcast, or multicast target can be specified
however care must be taken to ensure that the traffic will not cause problems with other devices
on the network. If the local network is bridged to a wireless network then the AP will typically
transmit at a low broadcast speed saturating the wireless network.
The time-to-live (TTL) defaults to 64. To configure a lower TTL use the following format (quotes
<id> set
<id> set
/tuner<n>/target “udp://<ip>:<port> ttl=<n>”
/tuner<n>/target “rtp://<ip>:<port> ttl=<n>”
set /tuner0/target “udp:// ttl=8”
set /tuner0/target “rtp:// ttl=8”
Example: Streaming to VLC:
Run VLC: File, Open Network Stream. Select UDP/RTP. Specify port 5000.
Discover the HDHomeRun:
hdhomerun_config discover
Run a channel scan:
hdhomerun_config FFFFFFFF scan /tuner0 scan0.log
Set the physical channel:
hdhomerun_config FFFFFFFF set /tuner0/channel auto:651000000
Check sub-programs:
hdhomerun_config FFFFFFFF get /tuner0/streaminfo
Select a sub-program:
hdhomerun_config FFFFFFFF set /tuner0/program 3
Set the target:
hdhomerun_config FFFFFFFF set /tuner0/target <ip address of pc>:5000
Using /sys/boot
The /sys/boot variable allows the HDHomeRun Tech unit to automatically set variables at startup,
allowing you to preserve settings across power outages or simply set the power on defaults.
The syntax for the /sys/boot consists of multiple lines of text; a variable name followed by a
single space and then the value: (there should not be any space before the variable name)
<variable1> <value of variable1>
<variable2> <value of variable2>
<variableN> <value of variableN>
Example (save as boot.txt):
/tuner0/chanelmap us-cable
/tuner0/channel 103
/tuner0/program 4
To store the configuration to the HDHomeRun:
Format: hdhomerun_config <id> set /sys/boot - < filename
Example: hdhomerun_config FFFFFFFF set /sys/boot - < boot.txt
Changes will be applied the next boot; to execute the new /sys/boot immediately:
Format: hdhomerun_config <id> execute
Example: hdhomerun_config FFFFFFFF execute
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF