Summary

RS-232 serial control for the Neothings Tahoe matrix switch. Commands are human-readable ASCII wrapped in square brackets, terminated by the closing bracket (no CR/LF required). The Tahoe is part of the Neothings product family, and the source document describes the family-level serial protocol; the specific protocol variant for Tahoe is not identified in the source.

Transport

protocols:
  - serial
serial:
  baud_rate: 9600
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none
auth:
  type: none  # inferred: no auth procedure in source

RS-232 pinout (from source):

  • Pin 2: Transmit (data out of unit)
  • Pin 3: Receive (data into unit)
  • Pin 5: Ground
  • Pin 1: for reference only

The matrix is also controllable via USB COM port with identical settings (9600 8N1, no flow control). Per the source, the control system does not distinguish between USB and RS-232 ports.

Traits

- routable   # inferred from per-input/per-output routing command examples
- queryable  # inferred from [?Bx]-style state query examples

Actions

# UNRESOLVED: the source describes a family of protocol variants (Avalon, Borrego,
# Concord, Delano, Eureka, Fallbrook, Gillespie, Hawthorne, Imperial, Juneau).
# The Tahoe's specific protocol variant is not identified in the source, so the
# routing opcodes below cannot be populated without fabrication. Only the
# cross-protocol envelope and version query pattern are common to every variant
# in the family and are listed verbatim.

- id: send_command_envelope
  label: Send bracketed command
  kind: action
  command: "[{payload}]"
  params:
    - name: payload
      type: string
      description: Protocol-specific command body. The closing `]` triggers processing; no CR/LF required. All commands are case sensitive; spaces are not allowed between the brackets.
  notes: |
    Maximum processing time before response: 150 ms. The serial port does NOT
    echo sent characters. When sending a string of commands, wait at least
    150 ms between each command. Any character outside the matching `[ ]`
    braces is ignored; characters inside the braces are processed and an
    error response is returned if invalid.

# The following entries represent the family-level command patterns the source
# documents. The Tahoe may use any one of the variants - the source does not
# state which.

# UNRESOLVED: per-protocol route command shape is variant-specific. The source
# documents the following shapes across the family:
#   - Avalon / Borrego:  [Bx,Xx,X,Y]   (board, board-type, input, output)
#   - Concord:           [Bx,X,Y]      (board, input, output)
#   - Delano:            [DV,XX,YY]    (video, input, output)
#   - Eureka / Gillespie:[EX,XX,YY] / [GX,XX,YY]  (audio-variant, input, output)
#   - Fallbrook:         [FV,XX,YY]
#   - Hawthorne:         [HV,XX,YY]
#   - Imperial:          [IV,XX,YY]
#   - Juneau:            [JV,XX,YY]
# Inputs use 0 (mute) or 1-8 (sources). Outputs use 1-8 (model-dependent max).
# Tahoe's variant is not stated in source.

- id: version_query
  label: Version / product ID query
  kind: query
  command: "[V,{prefix}{major}{minor}]"
  params:
    - name: prefix
      type: string
      description: Single-letter family prefix. Tahoe's prefix is not stated in the source; the family uses A (Avalon), B (Borrego), C (Concord), D (Delano), E (Eureka), F (Fallbrook), G (Gillespie), H (Hawthorne), I (Imperial), J (Juneau).
    - name: major
      type: integer
      description: Major firmware version digit.
    - name: minor
      type: integer
      description: Minor firmware version digit.
  notes: |
    The source's version query is documented only as a pattern that returns
    the product ID and version (e.g. `[V,A12]` = Avalon v1.2). It is unclear
    from the source whether the device sends this on operator request or
    whether the bracketed form itself is a request the device echoes back.
    Verify against a real device before depending on the response payload.

Feedbacks

- id: syntax_error
  type: enum
  values: [error]
  description: |
    Any command syntax error results in the response `[E]`. The device only
    attempts to process content between matching `[ ]` braces.

- id: route_echo
  type: object
  description: |
    Successful routing commands are echoed back verbatim. Example:
    sending `[B0,00,2,4]` returns `[B0,00,2,4]`. (Avalon example; Tahoe's
    echo payload will match whatever variant it uses.)

- id: matrix_state
  type: object
  description: |
    Query responses return the full state of the matrix wrapped in an outer
    pair of square brackets, with one `[Bx,...]` sub-structure per output.
    Example Avalon 8x4 response to `[?B0]`:
    `[[B1,C4,3,1][B1,C4,2,2][B1,C4,6,3][B1,C4,2,4][B2,B4,3,1][B2,B4,2,2][B2,B4,3,3][B2,B4,2,4]]`
    Tahoe's query prefix and sub-structure shape are not stated in source.

# UNRESOLVED: device-driven state-change notifications (unsolicited messages)
# are not described in the source.

Variables

# UNRESOLVED: persistent setup parameters exist (the source mentions a `[?S]`
# query that "returns all setup parameters" on the Hawthorne variant and
# notes that routing state is "stored in backup memory and will still be set
# after a power outage"), but the parameter set is not enumerated in the
# source.

Events

# UNRESOLVED: the source does not describe any unsolicited device-to-host
# notifications. Remove this section if Tahoe has no async events.

Macros

# UNRESOLVED: the source mentions a "virtual board" (B0) concept for
# controlling all switching levels in parallel, but does not document any
# user-defined multi-step macro facility. Remove if Tahoe has no macros.

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: the source contains no safety warnings, interlock procedures,
# or power-on sequencing requirements. Do not infer.

Notes

  • All commands are case sensitive; no spaces are allowed between the brackets.
  • The closing ] triggers the device to process the command; no CR/LF required.
  • The serial port does NOT echo sent characters. Responses arrive within 150 ms max.
  • When sending a string of commands, wait ≥150 ms between each.
  • Routing state is stored in non-volatile memory and survives power loss (per source).
  • The source describes ten protocol variants for the broader NeoPro/Neothings family. The Tahoe is not explicitly mapped to any of them in the source; verification against a real device is required before driving Tahoe-specific opcodes.
  • The Hawthorne variant additionally documents a [?S] query returning all setup parameters; the parameter list itself is not enumerated in the source.

Provenance

source_domains:
  - neoprointegrator.us
  - drivers.control4.com
  - manualslib.com
source_urls:
  - https://neoprointegrator.us/wp-content/uploads/2024/01/DOC42-00007-I_Serial-Protocols.pdf
  - https://drivers.control4.com/avswitch_232_neothings_Tahoe_v23_enc.c4i
  - https://neoprointegrator.us/wp-content/uploads/2024/01/NeoPro-Tahoe-UserGuide.pdf
  - https://www.manualslib.com/manual/4219559/Neopro-Tahoe-Veo.html
retrieved_at: 2026-05-21T15:02:21.118Z
last_checked_at: 2026-06-02T17:23:35.982Z

Verification Summary

verdict: verified
checked_at: 2026-06-02T17:23:35.982Z
matched_actions: 2
action_count: 2
confidence: medium
summary: "Both spec actions (command envelope and version query) are documented verbatim in source; transport parameters match exactly. (9 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "source covers the broader Neothings/NeoPro family (protocols named Avalon, Borrego, Concord, Delano, Eureka, Fallbrook, Gillespie, Hawthorne, Imperial, Juneau). The Tahoe-specific protocol variant is not named in the source."
- "the source describes a family of protocol variants (Avalon, Borrego,"
- "per-protocol route command shape is variant-specific. The source"
- "device-driven state-change notifications (unsolicited messages)"
- "persistent setup parameters exist (the source mentions a `[?S]"
- "the source does not describe any unsolicited device-to-host"
- "the source mentions a \"virtual board\" (B0) concept for"
- "the source contains no safety warnings, interlock procedures,"
- "firmware version compatibility, voltage/current draw, fault behavior, and error-recovery sequences are not stated in the source."

From the AI4AV catalog (https://ai4av.net) · ODbL-1.0