LINX Specification

The LabVIEW Interface for X (LINX) is intended to replace the LabVIEW Interfaces for Arduino and Chipkit and provide a generic protocol for LabVIEW to interface with any programmable device, but specifically targeted at microcontrollers and SoCs.

Overview

LINX will provide a high level G API that allows users to communicate with LINX enabled devices. A firmware spec will be provided for developers to create LINX firmware for their target of choice.

Features

  • Standard commands for hardware agnostic actions
  • Hardware specific commands for advanced functionality
  • Variable length packets with error checking
  • TCP and Serial communication
  • Firmware version checking

LINX Packet Structure
return_status

Devices

Error Codes

Flash Memory Config Data

Commands

Command Function Status
System Commands (0x0000 - 0x003F)
0x0000 Sync Required
0x0001 Flush Recommended
0x0002 system_reset Recommended
0x0003 Get Device ID Required
0x0004 Get LINX API Version Required
0x0005 Get Max Baud Rate Required (For Serial Interface)
0x0006 Set Baud Rate Required (For Serial Interface)
0x0007 system_get_max_packet_size Optional
0x0008 Get DIO ChannelsRecommended
0x0009 Get AI Channels Recommended
0x000A Get AO Channels Recommended
0x000B Get PWM Channels Recommended
0x000C Get QE Channels Recommended
0x000D Get UART Channels Recommended
0x000E Get I2C Channels Recommended
0x000F Get SPI Channels Recommended
0x0010 Get CAN Channels Recommended
0x0011 Disconnect Optional
0x0012 Set Device User ID Required
0x0013 Get Device User ID Required
0x0014 Set Device Ethernet IP Optional (Required For Ethernet Interface)
0x0015 Get Device Ethernet IP Optional (Required For Ethernet Interface)
0x0016 Set Device Ethernet PortOptional (Required For Ethernet Interface)
0x0017 Get Device Ethernet PortOptional (Required For Ethernet Interface)
0x0018 Set Device WIFI IP Optional (Required For WIFI Interface)
0x0019 Get Device WIFI IP Optional (Required For WIFI Interface)
0x001A Set Device WIFI Port Optional (Required For WIFI Interface)
0x001B Get Device WIFI Port Optional (Required For WIFI Interface)
0x001C Set Device WIFI SSID Optional (Required For WIFI Interface)
0x001D Get Device WIFI SSID Optional (Required For WIFI Interface)
0x001E Set Device WIFI Security Type Optional (Required For WIFI Interface)
0x001F Get Device WIFI Security Type Optional (Required For WIFI Interface)
0x0020 Set Device WIFI Password Optional (Required For WIFI Interface)
0x0021 Get Device WIFI Password Optional (Required For WIFI Interface)
0x0022 Set Device LINX Max Baud Rate Optional
0x0023 Get Device LINX Max Baud Rate Optional
0x0024 Get Device Name Required
0x0025 Get Servo Channels Required
0x0025 - 0x003F Reserved
Digital I/O (0x0040 - 0x005F)
0x0040 Set Digital Pin Mode Optional
0x0041 Digital Write Recommended
0x0042 Digital Read Recommended
0x0043 Digital Write Square Wave Recommended
0x0044 Digital Read Pulse Width Recommended
0x0045 - 0x005FReserved
Analog I/O (0x0060- 0x007F)
0x0060Analog Set Reference Voltage Optional
0x0061Get AI Reference Optional
0x0062analog_set_resolution Optional
0x0063analog_get_resolution Optional
0x0064Analog Read Recommended
0x0065Analog Write Optional
0x0066- 0x007FReserved
PWM (0x0080 - 0x009F)
0x0080pwm_open Optional
0x0081pwm_set_mode Optional
0x0082PWM Set Frequency Recommended
0x0083PWM Set Duty Cylce Recommended
0x0084pwm_close Optional
0x0085- 0x009FReserved
Quadrature Encoder (0x00A0- 0x00BF)
0x00A0- 0x00BFReserved
UART (0x00C0- 0x00DF)
0x00C0UART Open Recommended
0x00C1UART Set Baud Rate Recommended
0x00C2UART Get Bytes Available Recommended
0x00C3UART Read Recommended
0x00C4UART Write Recommended
0x00C5 UART CloseRecommended
0x00C6- 0x0DFReserved
I2C (0x00E0 - 0x00FF)
0x00E0 I2C Open Master Recommended
0x00E1 I2C Set Speed Optional
0x00E2 I2C Write Recommended
0x00E3 I2C Read Recommended
0x00E4 I2C Close Recommended
0x00E5 - 0x00FFReserved
SPI (0x0100- 0x011F)
0x0100SPI Open Master Recommended
0x0101SPI Bit order Recommended
0x0102SPI Set Clock Frequency Recommended
0x0103SPI Set Mode Recommended
0x0104SPI Set Frame Size Legacy
0x0105SPI Set CS Logic Level Legacy
0x0106SPI Set CS Pin Legacy
0x0107SPI Write/Read Recommended
0x0108 - 0x011F Reserved
CAN (0x0120 - 0x013F )
0x0120- 0x013F Reserved Optional
Servo (0x0140 - 0x015F)
0x0140Servo Open Recommended
0x0141Servo Set Pulse Width Recommended
0x0142Servo Close Recommended
WS2812(0x0160 - 0x0167)
0x0160WS2812 Open Optional
0x0161WS2812 Write One Pixel Optional
0x0162WS2812 Write N Pixels Optional
0x0163WS2812 Refresh Optional
0x0164WS2812 Close Optional
Reserved (0x0140- 0xFBFF)
320 - 64511ReservedN/A
User Commands (0xFC00- 0xFFFF)
0xFC00- 0xFFFFThese values are reserve for
custom user commands and will
never be used in official LINX
packets.
N/A