Summary
SKAARHOJ Tally Box / Eth Tally Link: compact IP device with eight RJ-45 outputs driving red and green tally lamps for up to eight cameras. Supports Raw Panel protocol over TCP (port 9923), TSL v3.1/v5.0 over UDP (port 7001), and a REST-style HTTP API for tally control and automation.
Transport
protocols:
- tcp
- udp
- http
addressing:
base_url: http://<device_ip>/tally/<color>/<channel>/<action>
tcp_port: 9923
udp_port: 7001
auth:
type: password
username: admin
password: skaarhoj
notes: HTTP basic-auth credentials may be embedded in URL as http://admin:<password>@<ip>/... (insecure; trusted networks only). Web UI supports "Allow access without login" advanced setting. # UNRESOLVED: auth scheme on Raw Panel (TCP/9923) and TSL (UDP/7001) not separately specified in source.
Traits
- routable # inferred from per-camera tally routing and output mapping
- queryable # inferred from HTTP GET returning state
Actions
- id: set_tally_red
label: Set Camera Red Tally
kind: action
command: "GET {base_url}/tally/red/{channel}/set"
params:
- name: channel
type: integer
description: Camera number (1-8)
- id: set_tally_green
label: Set Camera Green Tally
kind: action
command: "GET {base_url}/tally/green/{channel}/set"
params:
- name: channel
type: integer
description: Camera number (1-8)
- id: clear_tally_red
label: Clear Camera Red Tally
kind: action
command: "GET {base_url}/tally/red/{channel}/clear"
params:
- name: channel
type: integer
description: Camera number (1-8)
- id: clear_tally_green
label: Clear Camera Green Tally
kind: action
command: "GET {base_url}/tally/green/{channel}/clear"
params:
- name: channel
type: integer
description: Camera number (1-8)
- id: toggle_tally_red
label: Toggle Camera Red Tally
kind: action
command: "GET {base_url}/tally/red/{channel}/toggle"
params:
- name: channel
type: integer
description: Camera number (1-8)
- id: toggle_tally_green
label: Toggle Camera Green Tally
kind: action
command: "GET {base_url}/tally/green/{channel}/toggle"
params:
- name: channel
type: integer
description: Camera number (1-8)
- id: clear_all_tallies
label: Clear All Tallies
kind: action
command: "GET {base_url}/tally/clear"
- id: get_tally_state
label: Get Tally State
kind: query
command: "GET {base_url}/tally/{color}/{channel}"
params:
- name: color
type: enum
values: [red, green]
- name: channel
type: integer
description: Camera number (1-8)
- id: raw_panel_hwc_set
label: Raw Panel Set HWC
kind: action
command: "HWC#{hwc}={value}"
params:
- name: hwc
type: integer
description: Hardware Component ID (1=Cam1 Red, 2=Cam1 Green, 3=Cam2 Red, 4=Cam2 Green, ... up to 16=Cam8 Green)
- name: value
type: integer
description: 0=off, non-zero=on (example: 32 turns Camera 1 Red on)
notes: Send over TCP port 9923. Raw Panel protocol.
- id: raw_panel_clear
label: Raw Panel Clear All Tallies
kind: action
command: "Clear"
notes: Send over TCP port 9923. Clears all tally outputs.
- id: serial_help
label: Serial Monitor Help
kind: query
command: "help"
notes: USB serial (Micro USB) on SKAARHOJ devices. Plain text commands.
- id: serial_set_ip
label: Serial Set Static IP
kind: action
command: "ip=a.b.c.d"
params:
- name: ip
type: string
description: Static IP, or 0.0.0.0 for DHCP
notes: USB serial. Reboot required.
- id: serial_set_subnet
label: Serial Set Subnet Mask
kind: action
command: "subnet=a.b.c.d"
notes: USB serial.
- id: serial_set_gateway
label: Serial Set Gateway
kind: action
command: "gateway=a.b.c.d"
notes: USB serial.
- id: serial_set_dns
label: Serial Set DNS
kind: action
command: "dns=a.b.c.d"
notes: USB serial.
- id: serial_reset
label: Serial Soft Reset
kind: action
command: "reset"
notes: USB serial. Reboots device.
- id: serial_notick
label: Serial Disable Tick Output
kind: action
command: "notick"
notes: USB serial. Disables dot and loopcount output every second.
- id: serial_ping
label: Serial Ping
kind: query
command: "ping"
notes: USB serial. Returns ack.
- id: serial_debug
label: Serial Enable Debug
kind: action
command: "debug"
notes: USB serial. Enable debug mode until reboot.
- id: serial_sockets
label: Serial Show Socket Status
kind: query
command: "sockets"
notes: USB serial.
- id: serial_newmac
label: Serial Generate New MAC
kind: action
command: "newmac"
notes: USB serial. Generate and save a new MAC address.
- id: serial_resetAll
label: Serial Factory Reset
kind: action
command: "_resetAll"
notes: USB serial. Clear user settings and reset.
- id: serial_getCID
label: Serial Get Device CID
kind: query
command: "getCID"
notes: USB serial.
- id: serial_getInfo
label: Serial Get Device Status JSON
kind: query
command: "getInfo"
notes: USB serial. Returns detailed device status in JSON.
- id: serial_get_ip
label: Serial Get Current IP
kind: query
command: "ip=?"
notes: USB serial.
- id: serial_dumpIP
label: Serial Dump IP Config
kind: query
command: "dumpIP"
notes: USB serial.
- id: eth_autoneg_enable
label: Enable Ethernet Auto-Negotiation
kind: action
command: "ethautoneg=1"
notes: USB serial. Reboot required.
- id: eth_autoneg_disable
label: Disable Ethernet Auto-Negotiation
kind: action
command: "ethautoneg=0"
notes: USB serial. Reboot required.
- id: raw_panel_mode_enable
label: Enable Raw Panel Over USB Serial
kind: action
command: "serialRawPanel"
notes: USB serial. Switches USB port into Raw Panel mode. Exit only via power cycle. Disables all other serial comms.
- id: factory_reset_button
label: Factory Reset via Reset Button
kind: action
command: "Hold Reset button 10 seconds"
notes: Hardware. Resets all settings including network.
- id: factory_reset_webui
label: Factory Reset via Web UI
kind: action
command: "Network > Configuration Management > Restore Factory Defaults"
notes: Web UI. Preserves network settings.
Feedbacks
- id: tally_state
type: enum
values: [on, off]
notes: Returned by GET /tally/{color}/{channel} as JSON: {"tally": "green", "channel": 3, "state": true}.
- id: device_status_json
type: object
notes: Returned by getInfo serial command; structure not detailed in source.
- id: socket_status
type: object
notes: Returned by sockets serial command; structure not detailed in source.
Variables
- id: device_description
type: string
description: Custom device name up to 20 characters (set via Web UI).
- id: dhcp_enabled
type: boolean
description: Network setting (Web UI).
- id: static_ip
type: string
description: Manual IP when DHCP disabled (Web UI / serial ip= command).
- id: subnet_mask
type: string
description: Network setting; default 255.255.255.0.
- id: gateway
type: string
description: Network setting.
- id: web_password
type: string
description: Web UI password, up to 20 characters. Username fixed as "admin".
- id: allow_access_without_login
type: boolean
description: Advanced setting; when enabled, removes Web UI credential requirement.
- id: disable_mdns
type: boolean
description: Advanced setting; stops mDNS/Bonjour advertisements.
- id: eth_auto_negotiation
type: enum
values: [enabled, disabled]
description: Network setting; toggleable via ethautoneg=1|0 (reboot required).
- id: raw_panel_enabled
type: boolean
description: Starts Raw Panel Server on TCP 9923, up to 3 simultaneous clients.
- id: raw_panel_allow_only_ip
type: string
description: Optional single-IP whitelist for Raw Panel connections.
- id: raw_panel_channel_labels
type: array
description: Up to 8 per-camera labels for Raw Panel tally identification.
- id: tsl_enabled
type: boolean
description: Enables TSL tally reception.
- id: tsl_listening_port
type: integer
description: UDP port for TSL; default 7001.
- id: tsl_mappings
type: array
description: Per-output TSL 3.1 (Address 0-126, Bit 0-3) and TSL 5.0 (Screen, Index, Bit) mappings.
- id: http_api_enabled
type: boolean
description: Enables REST-style HTTP tally API.
- id: direct_connection_enabled
type: boolean
description: Enables follow-mode for ATEM/vMix switchers (Devices tab).
- id: devices_switcher_type
type: enum
values: [ATEM, vMix]
description: Switcher type to follow.
- id: devices_switcher_ip
type: string
description: Switcher IP address for Direct Connection.
- id: outputs_mapping
type: array
description: Per-output mapping (Bus + Camera/Input); Bus blank disables row. ATEM buses: Green Tally, Red Tally, Aux 1..40. vMix buses: Preview, Active, selected outputs. ATEM Camera 1..40; vMix Input 1..100.
Events
# UNRESOLVED: source documents no unsolicited notification format.
Macros
# UNRESOLVED: source does not document multi-step sequences beyond factory-reset / enable Raw Panel mode.
Safety
confirmation_required_for:
- factory_reset
- raw_panel_mode_enable # disables all other serial comms; recovery only by power cycle
interlocks:
- Direct Connection mode owns tally outputs and cannot be overridden by manual/TSL/Raw Panel until rows cleared or Direct Connection disabled.
notes: |
Source warns: HTTP login credentials are transmitted unencrypted; use only on trusted
local networks. Do not expose device directly to the internet without VPN/firewall.
Source warns: embedding credentials in URLs (http://admin:password@ip) is insecure.
Source warns: ATEM Constellation series can cause slower / intermittent connectivity; SKAARHOJ
recommends Blue Pill products for these environments.
# UNRESOLVED: detailed electrical / fault-recovery procedures not stated in source.
Notes
- TCP/9923 Raw Panel accepts up to 3 concurrent clients; mDNS advertises service.
- UDP/7001 default for TSL; can receive unicast or broadcast; broadcast affects multiple devices on subnet.
- Per-output HWCs (Raw Panel): HWC 1=Cam1 Red, 2=Cam1 Green, 3=Cam2 Red, 4=Cam2 Green, ..., 15=Cam8 Red, 16=Cam8 Green.
- Tally outputs support daisy-chaining; one connector can drive a lamp and pass signals to two additional lamps.
- Micro USB service port also used for firmware updates and manual IP setting.
- Save vs Save+Reboot in Web UI: some settings take effect immediately; IP/services/port changes need reboot.
- SKU "Eth Tally Link" not explicitly cross-referenced in source; assumed equivalent to / model of Tally Box platform "Link IO".
Provenance
source_domains:
- pid.skaarhoj.com
- skaarhoj.com
source_urls:
- https://pid.skaarhoj.com/Manuals/SKAARHOJ_manual-ETH-TALLY-LINK-V3.pdf
- https://www.skaarhoj.com/product/eth-tally-link
- https://www.skaarhoj.com/raw-panel
retrieved_at: 2026-06-29T20:31:44.691Z
last_checked_at: 2026-06-30T07:12:12.473Z
Verification Summary
verdict: verified
checked_at: 2026-06-30T07:12:12.473Z
matched_actions: 31
action_count: 31
confidence: medium
summary: "All 31 spec actions matched literally with verbatim source evidence; HTTP API, Raw Panel, and serial commands fully documented in source. (6 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "Tally Box / Eth Tally Link model disambiguation not explicit in source."
- "auth scheme on Raw Panel (TCP/9923) and TSL (UDP/7001) not separately specified in source."
- "source documents no unsolicited notification format."
- "source does not document multi-step sequences beyond factory-reset / enable Raw Panel mode."
- "detailed electrical / fault-recovery procedures not stated in source."
- "TSL on-wire packet format not enumerated; Raw Panel wire-format beyond example commands not detailed; HTTP response schema beyond example not specified."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0