• VEXcode Robotics Logo VEX Robotics Logo
  • VEX API Home Button VEX API Home Button
  • VEX 123 logo in purple VEX 123 logo in white
  • VEX GO logo in lime green VEX GO logo in white
  • VEXcode AIM logo in blue VEXcode AIM logo in white
  • VEX IQ logo in blue VEX IQ logo in white
  • VEX EXP logo in red VEX EXP logo in white
  • VEX V5 logo in red VEX V5 logo in white
  • VEX CTE logo in green VEX CTE logo in white
  • VEXcode VR logo in gold VEXcode VR logo in white
Skip to main content
Ctrl+K

< Back to Platform Select

  • VEX EXP
  • C++
  • serial_link
  • VEXcode Robotics Logo

Section Navigation

  • Blocks
  • Switch
  • Python
  • C++
    • Enums
    • accelerometer
    • aivision
    • analog_in
    • arm
    • brain
    • bumper
    • color
    • competition
    • controller
    • digital_in
    • digital_out
    • distance
    • drivetrain
    • electromagnet
    • encoder
    • event
    • gyro
    • inertial
    • led
    • light
    • limit
    • line
    • message_link
    • motor
    • motor29
    • motor_group
    • motor_victor
    • objectdetector
    • optical
    • pneumatic
    • pot
    • potV2
    • Print Console
    • pwm_out
    • rotation
    • serial_link
    • servo
    • signaltower
    • smartdrive
    • sonar
    • thread
    • triport
    • vision

Platform Navigation

  • VEX 123 logo in purple VEX 123 logo in white
  • VEX GO logo in lime green VEX GO logo in white
  • VEXcode AIM logo in blue VEXcode AIM logo in white
  • VEX IQ logo in blue VEX IQ logo in white
  • VEX EXP logo in red VEX EXP logo in white
  • VEX V5 logo in red VEX V5 logo in white
  • VEX CTE logo in green VEX CTE logo in white
  • VEXcode VR logo in gold VEXcode VR logo in white

serial_link#

  • What is a Serial Link?

  • Initializing the SerialLink Class

  • Class Methods

    • send()

    • receive()

  • received()

What is a Serial Link?#

VEXlink enables an EXP Brain to communicate with another EXP Brain, allowing for point-to-point connections and the creation of communication meshes between multiple robots. It supports both wireless and wired communication, with wired connections recommending a modified smart cable to prevent power routing issues. For wireless communication, each robot needs a V5 Robot Radio connected to a Smart Port, and the VEXlink Radio can be used alongside a V5 Controller’s VEXnet radio, which should be connected to the highest numbered Smart Port to avoid conflicts.

The SerialLink class within VEXlink allows for a stream of data to be sent between robots, the contents of the stream needs to be understood by both the transmitting and receiving robot, this class is usually used as part of higher layer of software that encodes and decodes packets as necessary.

To create a VEXlink, both EXP Brains must be connected to a V5 Robot Radio.

Initializing the SerialLink Class#

A VEXlink is created by using the following constructor:

The serial_link constructor creates a serial_link object.

Parameter

Description

port

A valid Smart Port that the VEXlink Radio is connected to.

name

The name of this link. It is recommended that this unique string is long enough that when hashed by vexos it will create a unique ID. A bad link name would be something generic such as “vexlink” as it may be used by another team.

linktype

The type of link, either linkType::manager or linkType::worker. This information is used to correctly configure the radio and also determines available bandwidth for transmission and reception. A manager robot has double the available bandwidth (1040 bytes/second) to send information to the worker robot (520 bytes/second).

wired

Whether or not it is a wired link. Set to true if wired.

// Construct a VEXlink "seriallink" with the serial_link class.
serial_link seriallink = serial_link(PORT1, "Link", linkType::manager);

This seriallink object will be used in all subsequent examples throughout this API documentation when referring to serial_link class methods.

Class Methods#

send()#

The send(buffer) method sends a buffer through the serial link.

Parameters

Description

buffer

A string or bytearray. The message to send.

Returns: An integer representing the length of the message sent.

// Send the string 'test'.
seriallink.send('test');

receive()#

The receive(length, timeout) method receives data from the serial link.

Parameters

Description

length

The maximum amount of data to wait for.

timeout

The timeout value in milliseconds before the function returns.

Returns: An integer with the length of the received data.

// Wait for 128 bytes of data for 1000mS.
int buffer = seriallink.receive(128, 1000);

received()#

The received(callback) method registers a callback function for when data is received.

Parameters

Description

callback

The callback function to be called when data is received.

Returns: None.

previous

rotation

next

servo

On this page
  • What is a Serial Link?
  • Initializing the SerialLink Class
  • Class Methods
    • send()
    • receive()
  • received()
Innovation First, International

VEX and VEX Robotics are trademarks or service marks of Innovation First, Inc. Copyright ©2025. All Rights Reserved. VEX Robotics, Inc. is a subsidiary of Innovation First International, Inc. All other product names / marks of others are the property of their respective owners. Patents and / or Patents Pending - innovationfirst.com/patents
Site Privacy Policy / Site Terms of Use / Cookie Policy / Software Privacy Policy

Visit the VEX Robotics Facebook Page Visit the VEX Robotics Twitter Page Visit the VEX Robotics Instagram Page Visit the VEX Robotics YouTube Page
VEX API Feedback Form

We value your feedback! Use this form to share suggestions, compliments, or report errors with the VEX API. Your input helps us enhance the VEX API documentation.

If you are experiencing technical issues or require customer support, please visit support.vex.com.

  • Send Happy Feedback
  • Send Sad Feedback

Note: the current URL will be shared with your message

By including your email address, you agree that VEX may send you email emails if we have questions about your feedback.
Privacy Policy >
Choose Which VEX IQ Generation to View

VEX IQ (1st gen)

VEX IQ (2nd gen)