Screen#
Introduction#
The EXP Brain’s screen has a set amount of rows and columns to use when printing text on its screen.
By default, the font for printing to the Brain is monospaced small which has 7 rows and 20 columns.
For drawing, the Brain’s resolution is 159 x 107 pixels.

Below is a list of available methods:
Cursor Print – Display text and manage the print cursor.
print– Prints text on the screen using the current cursor position.print_at– Prints text at specific x and y coordinates on the screen.set_cursor– Sets the cursor position.set_origin– Sets the origin used for drawing graphics on the Brain’s screen.set_font– Sets the font type used for printing text on the Brain’s screen.column– Returns the current column where text will be printed.row– Returns the current row where text will be printed.get_string_width– Gets the width of a string in pixels as if it was on the Brain’s screen.get_string_height– Gets the height of a string in pixels as if it was on the Brain’s screen.
Settings – Change the appearance of text and graphics.
clear_screen– Clears the whole Brain’s screen to a single color.clear_row– Clears a row to a single color.next_row– Moves the cursor to the next row.set_pen_width– Sets the pen width used for drawing lines, rectangles and circles.set_pen_color– Sets the pen color used for drawing lines, rectangles and circles.set_fill_color– Sets the fill color used for drawing rectangles and circles.
Draw – Create shapes, lines, and graphics on the Brain screen.
draw_pixel– Draws a pixel using the current pen color.draw_rectangle– Draws a rectangle on the screen using the current pen and fill colors.draw_circle– Draws a circle using the current pen and fill colors.draw_image_from_file– Draws an image from the SD card.render– Switches drawing to double buffered and renders the Brain’s screen.set_clip_region– Sets the clip region for drawing the supplied rectangle.
Cursor Print#
print#
print prints text on the screen using the current cursor position.
Usage:
brain.screen.print(text, sep, precision)
Parameters |
Description |
|---|---|
|
The text to print. |
|
Optional. A string to inset between values. This must be written as a keyword argument (sep=). The default is |
|
Optional. The number of decimal places to display when printing simple numbers. This must be written as a keyword argument( |
brain.screen.print("Hello, Robot!")

# Print the number 1 on the Brain's screen at current
# cursor position.
brain.screen.print(1)
# Print the numbers 1, 2, 3 and 4 on the Brain's screen at
# current cursor position separated by a '-'.
brain.screen.print(1, 2, 3, 4, sep='-')
print_at#
print_at prints text at specific x and y coordinates on the screen.
Usage:
brain.screen.print_at(text, x, y, sep, precision, opaque)
Parameters |
Description |
|---|---|
|
The text to print. |
|
The x position to print at as a keyword argument (x=), referenced to the screen origin. |
|
The y position to print at as a keyword argument (y=), referenced to the screen origin. |
|
Optional. A string to inset between values. This must be written as a keyword argument (sep=). The default is |
|
Optional. The number of decimal places to display when printing simple numbers. This must be written as a keyword argument( |
|
Optional. A boolean value indicating whether or not the text should clear background pixels. The default is |
# Print the number 1 on the Brain's screen at position (100, 40).
brain.screen.print_at(1, x=100, y=40)
set_cursor#
set_cursor sets the cursor position. The row and column spacing will take into account the selected font. The default cursor position is Row 1, Column 1.
Usage:
brain.screen.set_cursor(row, column)
Parameters |
Description |
|---|---|
|
The row to set the cursor to. |
|
The column to set the cursor to. |
# Display text starting at Row 3 Column 10.
brain.screen.set_cursor(3, 10)
brain.screen.print("R3, C10")

set_origin#
set_origin sets the origin used for drawing graphics on the Brain’s screen. Drawing functions consider the top left corner of the Brain’s screen as the origin. This function can move the origin to an alternate position such as the center of the Brain’s screen.
Usage:
brain.screen.set_origin(x, y)
Parameters |
Description |
|---|---|
|
The origin’s x position relative to top left corner. |
|
The origin’s y position relative to top left corner. |
set_font#
set_font sets the font type used for printing text on the Brain’s screen.
Usage:
brain.screen.set_font(fontname)
Parameters |
Description |
|---|---|
|
The font size (examples below):
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
# Set the font type to MONO40.
brain.screen.set_font(FontType.MONO40)
brain.screen.print("VEX")

column#
column returns the current column where text will be printed as an integer.
Usage:
brain.screen.column()
Parameters |
Description |
|---|---|
This method has no parameters. |
# Display the cursor's current column.
brain.screen.set_cursor(3, 10)
brain.screen.print(brain.screen.column())

row#
row returns the current row where text will be printed as an integer.
Usage:
brain.screen.row()
Parameters |
Description |
|---|---|
This method has no parameters. |
# Display the cursor's current row.
brain.screen.set_cursor(3, 10)
brain.screen.print(brain.screen.row())

get_string_width#
get_string_width gets the width of a string in pixels as if it was on the Brain’s screen. The width of a string changes based on the length of the string and the size of the font.
Usage:
brain.screen.get_string_width(string)
Parameters |
Description |
|---|---|
|
The string to measure. |
get_string_height#
get_string_height gets the height of a string in pixels as if it was on the Brain’s screen. The height of a string changes based on the length of the string and the size of the font.
Usage:
brain.screen.get_string_height(string)
Parameters |
Description |
|---|---|
|
The string to measure. |
Mutators#
clear_screen#
clear_screen clears the whole Brain’s screen to a single color.
Usage:
brain.screen.clear_screen(color)
Parameters |
Description |
|---|---|
|
Optional. A valid ColorType, a hex value, or a web string.
|
# Print VEXcode on the Brain's screen.
brain.screen.print("VEXcode")
# Clear screen to black.
brain.screen.clear_screen()
# Print VEXcode on the Brain's screen.
brain.screen.print("VEXcode")
# Clear screen to blue using predefined color.
brain.screen.clear_screen(Color.BLUE)
clear_row#
clear_row clears a row to a single color.
Usage:
brain.screen.clear_row(row)
Parameters |
Description |
|---|---|
|
Optional. The row to clear. The default is the current cursor row. |
|
Optional. A valid ColorType, a hex value, or a web string.
|
# Clear Brain's screen to black.
brain.screen.clear_row()
# Clear Brain's screen to blue using predefined color.
brain.screen.clear_row(2, Color.BLUE)
next_row#
next_row moves the cursor to the next row.
Usage:
brain.screen.next_row()
Parameters |
Description |
|---|---|
This method has no parameters. |
# Display two lines of text.
brain.screen.print("Line 1")
brain.screen.next_row()
brain.screen.print("Line 2")

set_pen_width#
set_pen_width sets the pen width used for drawing lines, rectangles and circles.
Usage:
brain.screen.set_pen_width(width)
Parameters |
Description |
|---|---|
|
The pen width. |
# Draw a rectangle with a pen width of 10.
brain.screen.set_pen_width(10)
brain.screen.draw_rectangle(20, 20, 75, 50)

set_pen_color#
set_pen_color sets the pen color used for drawing lines, rectangles and circles.
Usage:
brain.screen.set_pen_color(color)
Parameters |
Description |
|---|---|
|
A valid ColorType, a hex value, or a web string.
|
# Draw a rectangle with orange borders.
brain.screen.set_pen_color(Color.ORANGE)
brain.screen.draw_rectangle(20, 20, 75, 50)

# Set pen color red using a hex value.
brain.screen.set_pen_color(0xFF0000)
# Set pen color blue using predefined color.
brain.screen.set_pen_color(Color.BLUE)
# Set pen color green using web string.
brain.screen.set_pen_color("#00FF00")
set_fill_color#
set_fill_color sets the fill color used for drawing rectangles and circles.
Usage:
brain.screen.set_fill_color(color)
Parameters |
Description |
|---|---|
|
A valid ColorType, a hex value, or a web string.
|
# Draw a purple rectangle.
brain.screen.set_fill_color(Color.PURPLE)
brain.screen.draw_rectangle(20, 20, 75, 50)

# Set pen color red using a hex value.
brain.screen.set_fill_color(0xFF0000)
# Set pen color blue using predefined color.
brain.screen.set_fill_color(Color.BLUE)
# Set pen color green using web string.
brain.screen.set_fill_color("#00FF00")
Draw#
draw_pixel#
draw_pixel draws a pixel using the current pen color.
Usage:
brain.screen.draw_pixel(x, y)
Parameters |
Description |
|---|---|
|
The x position to draw the pixel referenced to the screen origin. |
|
The y position to draw the pixel referenced to the screen origin. |
# Draw the pixels marking the corners of a square.
brain.screen.draw_pixel(50, 50)
brain.screen.draw_pixel(50, 75)
brain.screen.draw_pixel(75, 50)
brain.screen.draw_pixel(75, 75)
![]()
draw_line#
draw_line draws a line using the current pen color.
Usage:
brain.screen.draw_line(x1, y1, x2, y2)
Parameters |
Description |
|---|---|
|
The x position of the start of the line referenced to the screen origin. |
|
The y position of the start of the line referenced to the screen origin. |
|
The x position of the end of the line referenced to the screen origin. |
|
The y position of the end of the line referenced to the screen origin. |
# Draw a line from the top left to bottom right of the screen.
brain.screen.draw_line(0, 0, 159, 107)

draw_rectangle#
draw_rectangle draws a rectangle on the screen using the current pen and fill colors.
Usage:
brain.screen.draw_rectangle(x, y, width, height, color)
Parameters |
Description |
|---|---|
|
The x position of the top-left corner of the rectangle referenced to the screen origin. |
|
The y position of the top-left corner of the rectangle referenced to the screen origin. |
|
The width of the rectangle. |
|
The height of the rectangle. |
|
Optional. A valid ColorType, a hex value, or a web string.
|
# Draw a rectangle on the screen.
brain.screen.draw_rectangle(20, 20, 80, 30)

# Draw a green rectangle on the screen that is filled using blue.
brain.screen.set_pen_color(Color.GREEN)
brain.screen.set_fill_color(Color.BLUE)
brain.screen.draw_rectangle(10, 10, 20, 20)
# Draw a green rectangle on the screen that is filled using red.
brain.screen.set_pen_color(Color.GREEN)
brain.screen.draw_rectangle(50, 50, 20, 20, Color.RED)
draw_circle#
draw_circle draws a circle using the current pen and fill colors.
Usage:
brain.screen.draw_circle(x, y, radius, color)
Parameters |
Description |
|---|---|
|
The x position of the circle center referenced to the screen origin. |
|
The y position of the circle center referenced to the screen origin. |
|
The radius of the circle. |
|
Optional. A valid ColorType, a hex value, or a web string.
|
# Draw a circle on the screen.
brain.screen.draw_circle(80, 50, 20)

# Draw a green circle on the Brain's screen that is filled using blue.
brain.screen.set_pen_color(Color.GREEN)
brain.screen.set_fill_color(Color.BLUE)
brain.screen.draw_circle(50, 50, 10)
# Draw a green circle on the Brain's screen that is filled using red.
brain.screen.set_pen_color(Color.GREEN)
brain.screen.draw_circle(100, 50, 10, Color.RED)
draw_image_from_file#
draw_image_from_file draws an image from the SD card. The filename you put when calling the method must be located on the SD card.
Usage:
brain.screen.draw_image_from_file(filename, x, y)
Parameters |
Description |
|---|---|
|
The filename of the image. |
|
The x coordinate for the top-left corner of the image on the screen. |
|
The y coordinate for the top-left corner of the image on the screen. |
# Draw the vex.bmp image on the Brain's screen at coordinate 0, 0.
brain.screen.draw_image_from_file('vex.bmp', 0, 0)
render#
render switches drawing to double buffered and renders the Brain’s screen. Once called, further drawing will not appear on the Brain’s screen until the next time render is called.
Trueif buffer was successfully rendered to the screen.Falseif buffer was not successfully rendered to the screen.
Usage:
brain.screen.render()
Parameters |
Description |
|---|---|
This method has no parameters. |
set_clip_region#
set_clip_region sets the clip region for drawing the supplied rectangle.
Usage:
brain.screen.set_clip_region(x, y, width, height)
Parameters |
Description |
|---|---|
|
The x position of the top-left corner of the rectangle, referenced to the screen origin. |
|
The y position of the top-left corner of the rectangle, referenced to the screen origin. |
|
The width of the rectangle. |
|
The height of the rectangle. |









