Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| tech [2026/03/24 05:10] – neds | tech [2026/03/24 06:39] (current) – neds | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== SiliconDust TECH manual ====== | ====== SiliconDust TECH manual ====== | ||
| - | < | + | < |
| ===== Hardware ===== | ===== Hardware ===== | ||
| Line 7: | Line 7: | ||
| ==== Ethernet ==== | ==== Ethernet ==== | ||
| <WRAP indent> | <WRAP indent> | ||
| + | |||
| Connect the Ethernet port(s) to a network switch. On models with multiple ports, all ports must be connected in order for all tuners to be accessible. A single port can be directly connected to the network interface on a PC to access that specific device. All ports are auto-crossover so a standard Ethernet cable can be used. | Connect the Ethernet port(s) to a network switch. On models with multiple ports, all ports must be connected in order for all tuners to be accessible. A single port can be directly connected to the network interface on a PC to access that specific device. All ports are auto-crossover so a standard Ethernet cable can be used. | ||
| </ | </ | ||
| + | |||
| </ | </ | ||
| ===== Additional Tools and Software ===== | ===== Additional Tools and Software ===== | ||
| Line 40: | Line 42: | ||
| </ | </ | ||
| + | |||
| </ | </ | ||
| - | |||
| ===== Command Line Utility (hdhomerun_config) ===== | ===== Command Line Utility (hdhomerun_config) ===== | ||
| <WRAP indent> | <WRAP indent> | ||
| Line 49: | Line 51: | ||
| The list of supported commands can be obtained by running hdhomerun_config without any parameters: | The list of supported commands can be obtained by running hdhomerun_config without any parameters: | ||
| + | <WRAP indent> | ||
| < | < | ||
| hdhomerun_config discover | hdhomerun_config discover | ||
| Line 59: | Line 61: | ||
| hdhomerun_config <id> upgrade < | hdhomerun_config <id> upgrade < | ||
| </ | </ | ||
| + | </ | ||
| ==== Discover devices on the network ==== | ==== Discover devices on the network ==== | ||
| Line 65: | Line 67: | ||
| The discover command will find devices that are on the same subnet as the host: | The discover command will find devices that are on the same subnet as the host: | ||
| - | < | + | |
| + | <WRAP indent> | ||
| + | < | ||
| + | hdhomerun_config discover | ||
| + | </code> | ||
| + | </WRAP> | ||
| </ | </ | ||
| Line 101: | Line 108: | ||
| <WRAP indent> | <WRAP indent> | ||
| - | | / | + | < |
| - | | / | + | / |
| - | | / | + | / |
| - | | / | + | /oob/debug Get out of band channel debug info (6CC only) |
| - | | / | + | / |
| - | | / | + | /sys/boot < |
| - | | / | + | / |
| - | | / | + | /sys/debug Get/set system debug information |
| - | | / | + | / |
| - | | < | + | / |
| - | | / | + | /sys/ipaddr dhcp|"< |
| - | | / | + | /sys/model Get/set model string |
| - | | / | + | / |
| - | | < | + | / |
| - | | < | + | / |
| - | | / | + | / |
| - | | / | + | / |
| - | | / | + | / |
| - | | / | + | / |
| - | | / | + | / |
| - | | / | + | / |
| - | | / | + | / |
| - | | / | + | / |
| - | | / | + | / |
| - | | / | + | / |
| + | / | ||
| + | </ | ||
| </ | </ | ||
| Line 180: | Line 189: | ||
| </ | </ | ||
| - | ==== Tuning a virtual channel (TECH3-6CC only) ==== | + | ==== Tuning a virtual channel (TECH3-CC only) ==== |
| <WRAP indent> | <WRAP indent> | ||
| Line 202: | Line 211: | ||
| </ | </ | ||
| + | ==== Checking the signal strength ==== | ||
| + | <WRAP indent> | ||
| + | The basic signal information can be obtained by using the get status command: | ||
| + | <WRAP indent> | ||
| + | < | ||
| + | Format: hdhomerun_config <id> get / | ||
| + | Example: hdhomerun_config FFFFFFFF get / | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Example output: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | 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: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | Format: hdhomerun_config <device id> get / | ||
| + | Example: hdhomerun_config FFFFFFFF get / | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Example output: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | tun: ch=qam:33 lock=qam256 ss=84 snq=88 seq=100 dbg=22081-6930 | ||
| + | dev: resync=0 overflow=0 | ||
| + | ts: bps=38809216 ut=94 te=0 miss=0 crc=0 | ||
| + | flt: bps=38809216 | ||
| + | net: 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 device will detect the programs (sub-channels). Use the get streaminfo command to query the detected programs: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | Format: hdhomerun_config <id> get / | ||
| + | Example: hdhomerun_config FFFFFFFF get / | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | The output format is: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | <program number>: <virtual major> | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Example output: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | 3: 20.1 KBWB-HD | ||
| + | 4: 20.4 AZTECA | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Digital cable does not always provide the channel name or virtual channel number: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | 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/ | ||
| + | |||
| + | </ | ||
| + | ==== Filtering by program (sub-channel) ==== | ||
| + | <WRAP indent> | ||
| + | |||
| + | TECH3 and later supports automatic PID filtering by program number or virtual channel number: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | Format: hdhomerun_config <id> set / | ||
| + | hdhomerun_config <id> set / | ||
| + | Example: hdhomerun_config FFFFFFFF set / | ||
| + | hdhomerun_config FFFFFFFF set / | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | When filtering by program the MPEG TS tables are generated by the device. 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: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | hdhomerun_config <id> set / | ||
| + | minor> | ||
| + | </ | ||
| + | < | ||
| + | Example: hdhomerun_config <id> set / | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | ==== Filtering by PID ==== | ||
| + | <WRAP indent> | ||
| + | |||
| + | The TECH supports arbitrary hardware PID filtering: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | Format: hdhomerun_config <id> set / | ||
| + | Example: hdhomerun_config FFFFFFFF set / | ||
| + | hdhomerun_config FFFFFFFF set / | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | 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 ==== | ||
| + | <WRAP indent> | ||
| + | |||
| + | The hdhomerun_config command can be used to automate the process of saving to the local filesystem: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | Format: hdhomerun_config <id> save / | ||
| + | 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: | ||
| + | <WRAP indent> | ||
| + | < | ||
| + | ............n...............................n..........ts.......... | ||
| + | -- Video statistics -- | ||
| + | 23323 packets recieved, 2 network errors, 1 transport errors, 1 sequence errors | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | **Advanced: | ||
| + | |||
| + | **Advanced: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | Example: hdhomerun_config FFFFFFFF save /tuner0 - | vlc - | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | ==== Streaming to a target machine ==== | ||
| + | <WRAP indent> | ||
| + | |||
| + | Set the target IP address and port number using the set target command: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | Format: hdhomerun_config <id> set / | ||
| + | Format: hdhomerun_config <id> set / | ||
| + | Example: hdhomerun_config FFFFFFFF set / | ||
| + | Example: hdhomerun_config FFFFFFFF set / | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | The target machine must be listening on the given UDP port. The TECH3 will automatically clear the target if a ICMP port unreachable message is received when sending to a unicast address. To override this, add no_clear to the target. | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | Format: hdhomerun_config <id> set / | ||
| + | Format: hdhomerun_config <id> set / | ||
| + | Example: hdhomerun_config FFFFFFFF set / | ||
| + | Example: hdhomerun_config FFFFFFFF set / | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | A global broadcast (255.255.255.255), | ||
| + | |||
| + | 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 required): | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | Format: hdhomerun_config <id> set / | ||
| + | Format: hdhomerun_config <id> set / | ||
| + | Example: hdhomerun_config FFFFFFFF set / | ||
| + | Example: hdhomerun_config FFFFFFFF set / | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | ==== Example: Streaming to VLC ==== | ||
| + | <WRAP indent> | ||
| + | |||
| + | Run VLC: Media, Open Network Stream. Select UDP/RTP. Specify port 5000. | ||
| + | |||
| + | Discover the device: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | hdhomerun_config discover | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Run a channel scan: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | hdhomerun_config FFFFFFFF scan /tuner0 scan0.log | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Set the physical channel: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | hdhomerun_config FFFFFFFF set / | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Check sub-programs: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | hdhomerun_config FFFFFFFF get / | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Select a sub-program: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | hdhomerun_config FFFFFFFF set / | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Set the target: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | hdhomerun_config FFFFFFFF set / | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== HTTP Streaming (TECH3-CC only) ===== | ||
| + | <WRAP indent> | ||
| + | TECH3-CC models can be used to stream via HTTP (unicast only) to VLC or other clients. | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | Format: http://< | ||
| + | Example: http:// | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | ===== Lineup file (TECH3-CC only) ===== | ||
| + | <WRAP indent> | ||
| + | TECH3-CC units support virtual channel lineup information transmitted by the cable provider and received via the CableCARD. This is available in XML and JSON format. | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | http://< | ||
| + | http://< | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | ===== Datacast operation ===== | ||
| + | <WRAP indent> | ||
| + | |||
| + | TECH3 units support Datacast TCP/IP over OTA broadcast. Datacasting often provides news, weather, traffic, stock market, and other information which may or may not relate to the program[s] it is carried with. An electronic program guide is usually included. Datacast TCP-IP packets are reassembled and then routed to the LAN port. | ||
| + | |||
| + | Example: | ||
| + | |||
| + | Discover the device: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | hdhomerun_config discover | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Set the physical channel: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | hdhomerun_config FFFFFFFF set / | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Set the datacast PID: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | hdhomerun_config FFFFFFFF set / | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Set the target: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | hdhomerun_config FFFFFFFF set / | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | ===== Using /sys/boot ===== | ||
| + | <WRAP indent> | ||
| + | |||
| + | The /sys/boot variable allows the 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) | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | ... | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Example (save as boot.txt): | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | To store the configuration to the device: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | 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: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | Format: hdhomerun_config <id> execute | ||
| + | Example: hdhomerun_config FFFFFFFF execute | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== Static IP assignment ==== | ||
| + | <WRAP indent> | ||
| + | |||
| + | A static IP address can be configured using the following command (the quotes are required as shown): | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | Format: hdhomerun_config <old ip> set /sys/ipaddr "< | ||
| + | Example: hdhomerun_config 169.254.34.98 set /sys/ipaddr " | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Note: The TECH requires a gateway when used to stream multicast, even if on the same subnet. | ||
| + | |||
| + | </ | ||
| + | ==== Reverting to DHCP ==== | ||
| + | <WRAP indent> | ||
| + | |||
| + | The TECH can be configured for DHCP operation (default) using the following command: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | Format: hdhomerun_config <old ip> set /sys/ipaddr dhcp | ||
| + | Example: hdhomerun_config 169.254.34.98 set /sys/ipaddr dhcp | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | ===== Setting the channel map ===== | ||
| + | <WRAP indent> | ||
| + | |||
| + | 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: | ||
| + | |||
| + | <WRAP indent> | ||
| + | < | ||
| + | Format: hdhomerun_config < | ||
| + | Example: hdhomerun_config 10001000 set / | ||
| + | Example: hdhomerun_config 10001000 set / | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Channel maps supported by HDHR-TECH-US hardware: | ||
| + | |||
| + | <WRAP indent> | ||
| + | ^ Name ^ Description ^ Location ^ | ||
| + | | us-bcast | Digital Antenna (ATSC). | US, Canada | | ||
| + | | us-cable | Digital Cable - Normal frequency layout. | US, Canada | | ||
| + | | us-hrc | Digital Cable - HRC frequency layout. | US, Canada | | ||
| + | | us-irc | Digital Cable - IRC frequency layout. | US, Canada | | ||
| + | </ | ||
| + | |||
| + | Channel maps supported by HDHR-TECH-EU hardware: | ||
| + | |||
| + | <WRAP indent> | ||
| + | ^ Name ^ Description ^ Location ^ | ||
| + | | au-bcast | Digital Antenna (Australia). | Australia | | ||
| + | | au-cable | Digital Cable (Australia). | Australia | | ||
| + | | eu-bcast | Digital Antenna (Europe). | Europe, New Zealand | | ||
| + | | eu-cable | Digital Cable (Europe). | Europe, New Zealand | | ||
| + | | tw-bcast | Digital Antenna (Taiwan). | Taiwan | | ||
| + | | tw-cable | Digital Cable (Taiwan). | Taiwan | | ||
| </ | </ | ||