• All advoli PCIe Graphics Cards support both a Configuration Console and an API

  • The Console and the API are accessible through USB as Virtual COM ports

  • Programatically, they are opened and use just like any other COM port

  • Opening the COM-port at any BaudRate except 110 baud opens the Configuration Console

  • Opening the COM-port at 110 baud accesses the API, which uses the TRAPI specification below

Text Readable Application Programming Interface (TRAPI)

TRAPI is a simple human readable text based interface protocol for control and query from an application to devices. It uses text stings of readable characters rather than commands sent as hex numbers, which is most commonly used between devices and applications.

  • easy to program using C/C++/C#,Visual Basic, .NET, ActiveX, etc.

  • simple, easy to learn syntax

  • query of temperatures, fans speeds, features, read and set parameters, etc.

  • firmware version queries and even can support firmware upgrade

  • practical to use through command console interface such as a terminal program

Basic Syntax Rules:

  • case insensitive

  • spaces and uppercase are ignored

  • Commands are terminated with [CR]

  • Optional local echo of characters

Modal Single Character Commands:
These keys can be sent any time, will immediately cause action, and clear any pending requests.

KEY ASCII NOTES

[ESC] 27 Resets parsing and terminates current command.
clears all buffers and commands currently in process.
[ESC] can be sent before any command to ensure a ready state

[?] Instantly displays a brief help menu

[`] 96 Toggles echo sent back to the host.

[CR] 13 Terminates all commands, and executes parsing.
Empty [CR] with no command prompts ; to indicate
that the API is operational.

Key Characters in Responses:

KEY ASCII NOTES

% Asynchronous message start character

; End of response or message character

: Data/value separator

? Syntax Error

Example:

fan

Response:

;SYSPWROFF; //system is off, so no fans running

;SET:80%;Fan1:%13500RPM;Fan2:12752RPM; //fan status

Notification:

%added display channel 2;

%fan stuck;

Single Character Commands

These commands respond right away, and does not require [CR]

Command: Is the API alive?
[CR] Carriage Return (ENTER)
Response:
;
reply OK, the API is responsive
Command: Cancel/reset command
[ESC] ASCII character 27 (the escape key), terminates any command immediately and starts over
Response: (none)
Command: Enable Character Echo
` ASCII character 96 (the apostrophe key) toggles echo back to host. This is typically used only in manual text use mode, so the user can see characters typed to the API, and typically not used when sending commands from an application through a serial port
Command: Help!
? //show brief help
Example Response:--- API MODE HELP --- advoli products follow the TRAPI specification TAPI mode is entered when opening serial at 110baud To exit TRAPI mode, open at a different baud rate.

Command Listing

All the following commands are terminated with [CR] (the enter key)

Syntax Error
qeftajdtyertyrusgyusgyud some randome keystrokes to simulate a non-existing command
Response:? syntax error
Version
ver request to see the version of the FW and/or API
Response:;TABXFW91:2020-Mar-15;
Number of Channelschannels How many channels does this product haveResponse:;4;
I2C Baudrate
i2cbaud Get the current baudrate of the I2C bus
i2cbaud 400000 Set the baudrate of the I2C bus to 400kHz
Possible Responses:
;402738; The actual closets possible baudrate to the specified value;E; ERROR in the baudrate value specified
I2C Write (as Master)
i2cw 00 11 22 33 write 3 (hex) bytes to channel 0. The bytes written are 0x11 0x22 and 0x33
Possible Responses:
;A; ACK: I2C Acknowledge, the command was accepted ;N; NACK: The command was Not-Acknowledged ;E; ERROR: Some error like a bus error, occurred
I2C Read (as Master)
i2cr 00 03 read 3 (hex) bytes from channel 0
Possible Response:
;A02:cc dd ; ACK read 2 bytes: cc and dd ;N; NACK ;E; ERROR
I2C WriteRead (as Master)
i2cwr 00 04 55 66 first write two bytes 0x55 and 0x66, then if ACK immediately read 4 (hex) bytes from channel 0
Possible Response:
;A04:cc dd ee ff; ACK read 4 bytes: 0xcc , 0xdd , 0xee, 0xff;N; NACK ;E; ERROR
I2C Reset
i2creset Resets the I2C controllers and tries to clear a bus with data or clock lines stuck low
Possible Response:
;ERROR; Could not fix, error is still there;OK;FIXED; OK, problem was fixed
PCI Reset
pcireset Resets the PCI bus of the PC
Possible Response:
;
PCI Wake
pciwake Issues the signal on the PCI-bus to wake up the system
Possible Response:
;
Set/get Valens HDBaseT Reset State
vr Reads the current reset state in hex format, where each bit is a channel, i.e. 0x01 is channel A, 0x02 is channel B etc
vr 0x3e Assert the reset for Channel Avr 0x3f Deassert reset for all (6) channels
Typical Responses:
;0x3F; All channels are out of reset;0x00; All channels held in reset
Set/get Channels State
ch Reads the current channel state of enabled or disabled in hex format, where each bit is a channel, i.e. 0x01 is channel A, 0x02 is channel B etc.
ch 0x3e Disable Channel A, all others are Enabledch 0x3f All (6) channels are enabled
Typical Responses:
;0x3F; All channels are enabled;0x00; All channels are disabled
Halt operation of local sensors
halt stops any reading of sensors on the I2C bus, so a firmware upgrade can be uninterrupted. If sensors are not halted before a firmware upgrade, the likelihood that I2C commands with overlap in time with commands reading local temp sensors, cable diagnostics, etc is high, and commands would have to be retried, which causes complexity in writing safe firmware update algorithms.
Response:
;
Resume operations of local sensors
resume resumes reading of sensors on the I2C bus
Response:;
Reset the Controllerreset resets the controller that hosts this APIResponse: ; after this command the product will do a software reset
Power Statuspow Shows Voltages, Currents and Powers at the moment of the commandExample Response: ;1V0:1.06V,1V0:1.08V,1V2:1.19V,1V8:1.80V,3V3:3.29V,5V0:5.11V,12V0:11.66V,POEV:48.53V,POEI:0.01A;
The format is VoltageName:VoltageValue and each name/value pair is separated by comma (,) except the last result, which is terminated by semicolon (;). Note that there can be more than one voltage reading for the same voltage name, as seen in the example where 1V is read two different places on the product.
Valens Link Quality and Statusval Shows Voltages, Currents and Powers at the moment of the commandExample Response: A:TX:VS100TX,RX:VS100RX,LUP,HDMI,HDBT,<20,93-91-89-91\nB:TX:VS100TX,RX:VS100RX,LUP,NOVD,HDBT,63,89-87-91-89\nC:TX:VS100TX,RX:NA,LDN,NOVD,DSCN,NA,---\nD:TX:VS100TX,RX:NA,LNA,NOVD,HDBT,NA,---\n;
Response Field Descriptions (per channel)A: Channel IdentifierTX: Channel Direction (TX or RX)VS100TX, Chip Type (i.e VS100TX, VS010TX, VS2310TX)RX: Channel Direction (TX or RX)VS100RX, Chip Type (i.e VS100RX, VS010RX, VS2310RX)LUP, Link Status (LUP:Link is Up, LDN:Link is Down, LLP:Link in LowPowerMode, LFB:Link in FallBackMode)HDMI, Video Status: (HDMI: Video in non-HDCP mode, HDCP:Video in HDCP mode, NOVD:No Video Signal)HDBT, Operation Mode: (DSCN:Disconnected, LRMD:LongReachMode, STB1/STB2:StandByModes, ETFM:Ethernet Fallback Mode, HDPT:HDMI Pass Through Mode63, Cable Length in meters (m), cable lengths under 20m and over 110m show as <20 or >110. If no cable shows NA. other options are: NR:NotReady, ERR:Error97-83-88-95 Instant Cable Quality (not accumulated over time). Best is 99, worst is 0. if no cable:---\n End of data for one Channel, \n=[CR] Character Return, or "the enter key"; End of data for all Channels
The format is VoltageName:VoltageValue and each name/value pair is separated by comma (,) except the last result, which is terminated by semicolon (;). Note that there can be more than one voltage reading for the same voltage name, as seen in the example where 1V is read two different places on the product.
Getting HDBaseT Operation ModeOptions are: A:Auto, B:Bypass, F:(Ethernet)Fallback, 1=LowPowerMode1, 2=LowPowerMode2,H:HDBaseT, L:LongReachMode
mode Sets all of the channels to Auto mode for ALL channels.
Example Response: ;A:STB2,B:HDBT,C:LRMD,D:DSCN,;
Response Field Descriptions (per channel)A: Channel Identifier(mode), Can be one of the following Operation Modes: Operation Mode: (DSCN:Disconnected, LRMD:LongReachMode, STB1/STB2:StandByModes, ETFM:Ethernet Fallback Mode, HDPT:HDMI Pass Through Mode; End of data for all Channels
Setting HDBaseT Operation Mode
mode A Sets all of the channels to Auto mode for ALL channels. mode A A L L Sets a different mode for EACH channel. This example sets Channels A and B in Auto Mode, and Channels C and D in Long Reach Mode. Note that the number of channels much match the number of channels. Use command channels to find that.
Example Responses: ;; OK. New Mode set;? Error. New Mode not set
Cable Quality Analysis (accumulated over time)cbl Shows result of a Cable Quality accumulated over time.Example Response: ; Command accepted., then a few seconds may go by to accumulate data... .. then a few seconds may go by ... Here comes the response:A:99-94-97-99,B:---,C:---,D:---,;
Ethernet Cable has 4 pairs. The 4 numbers separated by a dash (-) represents the signal quality for each pair.For each pair, best is 99, worst is 0. if no cable:---
Load Factory Default Settingsdefault Clear all configurations, and load all channels in Auto mode.
Response: ;; OK? Error, make sure there are no parameters and try again

EDID Configuration Commands

There are 3 basic EDID modes, and these are the commands and functions:

Set Auto EDID Modeauto Select Auto EDID mode
Response: ;; OK? Error, make sure there are no parameters and try again
Set Graphics Card Mode (GCM)gcm Select GCM
Response: ;; OK? Error, make sure there are no parameters and try again
Lock the current EDID Configurationlock Lock EDID, to prevent any changes to channels removed, added, or changed.
Response: ;; OK? Error, make sure there are no parameters and try again
Get EDID Mode Configurationedid Gets the configuration for each channel of which mode and state it is in.
Example Response: ;A:AUTO,VDACT,PLUGGEDIN\nB:GCM,VDACT,PLUGGEDIN\nC:LOFF,NOACT,PLUGGEDIN\nD:F0,NOACT,UNPLUGGED\n
Response Field Descriptions (per channel)A: Channel IdentifierAUTO, EDID mode, can be: AUTO, LOCK (Locked and ON), LOFF (Locked and OFF), OFF (Always OFF), GCM (Graphics Card Mode), Fn (Fixed mode n), Un (User Mode n)VDACT, Video Activity can be VDACT if video is flowing, or if not will be NOACTPLUGGEDIN Connection to Display or Projector is detected, can be PLUGGEDIN or UNPLUGGED\n End of data for one Channel, \n=[CR] Character Return, or "the enter key"; End of data for all Channels
Restart EDID DetectionAfter a change in configuration, in most cases the new configuration is detected automatically.However, when some changes in configuration is not detected, a restart could be required.
restart Soft start of EDID detection, will normally not cause loss of screensrestart ! Hard Restart of EDID detection, and will cause screens to be temporary lost.
Dump EDID Raw Data from a ChannelNote that the channel must exist, so use command channels first to find number of channels.edump 2 Will fetch the raw data of the EDID EEPROM of Channel 2 (or Channel C)edump 0 Will fetch the raw data of the EDID EEPROM of Channel 0 (or Channel A)edump F Will fetch the raw data of the EDID EEPROM of Channel 5 (or Channel F)
Example Response:ERR I2C was busy, try again? Syntax Error in command
Successful command returns exactly 255 (0xff) bytes of data in this format:;00 ff ff ff ff ff ff 00 06 97 6b 00 00 00 00 00 01 1a 01 03 80 30 1b 78 2e 43 f5 a7 56 53 9c 26 10 50 54 0f cf 00 d1 c0 01 00 01 00 01 00 01 00 01 00 01 00 01 00 29 36 80 a0 70 38 1f 40 30 20 35 00 40 44 21 00 00 1e 00 00 00 ff 00 54 42 36 5f 47 48 4f 53 54 0a 20 20 20 00 00 00 fd 00 32 3c 0f 52 11 00 00 00 00 00 00 00 00 00 00 00 fc 00 31 30 38 30 50 0a 20 20 20 20 20 20 20 01 36 02 03 1e f1 51 90 05 04 03 02 07 06 1f 14 13 12 11 16 15 0f 0e 01 23 09 7f 07 83 01 00 00 29 36 80 a0 70 38 1f 40 30 20 35 00 40 44 21 00 00 1e 02 3a 80 d0 72 38 2d 40 10 2c 45 80 dc 0c 11 00 00 1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7f ;
Valens Ethernet LAN Controller PHY Statuslan Shows the configuration of the PHY inside the Valens Chips for each channel. Note that the product must have external LAN ports, abd be connected for this command to return valid data, otherwise all 0xff.
Example Response:ERR I2C was busy, try again? Syntax Error in command
Command returns the configured PHY address if configured, otherwise 0xff as show below.;A:ff:ff:ff:ff:00B:ff:ff:ff:ff:00C:ff:ff:ff:ff:00D:ff:ff:ff:ff:00;
PoE Controller Statuspoe Shows the status of the PoE Controller(s).
Example Response:NOPOE; The product does not have PoE Controller(s)ERR I2C was busy, try again? Syntax Error in command
Example response:POE:59.1C,48.18VA:AUTO,3,ROK 5.45W,48.42V,112.49mA,374mAB:AUTO,NA,OC 0.00W,0.00V,0.00mA,374mAC:AUTO,NA,OC 0.00W,0.00V,0.00mA,374mAD:AUTO,NA,OC 0.00W,0.00V,0.00mA,374mA;Where:A: Channel IdentifierAUTO: PoE mode, can be AUTO, MAN, OFF, SAUT (Semi-Auto)3: PoE Classification, can be NA, 1,2,3,4,R(reserved),0,OC(Open Circuit),CM(class missmatch)ROK: Channel Status, can be: ROK(resOK),NA(?),SHORT,RTOL(res too low), RTH(res too high),OC(open circuit),MF(mosfet fault), LEG(legacy detect),CINV(cap invalid),OOR(out of range)5.45W: Port Power Consumption48.42V: Port Voltage Reading112.49mA: Port Current Reading
Receiver Statusrcv Shows the status of the receiver (if connected)
Example Response:NOPOE; The product does not have PoE Controller(s)ERR I2C was busy, try again? Syntax Error in command
Example response:A:FW10,44C,40371,32245,1004mV,1723mV,3177mV,fb:e4:c6B:NAC:NAD:NAWhere:A: Channel IdentifierFW10: Receiver Fan Controller Firmware Version44C: Internal temperature of the PCB of the receiver40371: Fan1 RPM32245: Fan2 RPM1004mV: Receiver 1.0V reading1723mV: Receiver 1.8V reading3177mV: Receiver 3.3V readingfb:e4:c6: Accelerometer XYZ reading of the position of the receiver