Skip to content

Knight Board Command Set

The Knight Board accepts ASCII string commands at runtime via BrainFlow’s config_board() method. All commands below are passed as strings into:

board_shim.config_board(<command>)

The board needs time to process and apply each command before the next one is sent. Always insert blocking pauses between consecutive config_board() calls. Sending commands back-to-back without delays can cause settings to be dropped or only partially applied.

Recommended minimum delays:

EventPause
After start_stream(), before first command2 s
Between chon_ and rldadd_ for the same channel1 s
Between commands for different channels1 s
Example with correct pauses
board.start_stream()
time.sleep(2) # wait for the board to stabilise after stream start
for ch in range(1, 9):
time.sleep(1)
board.config_board(f"chon_{ch}_12")
time.sleep(2)
board.config_board(f"rldadd_{ch}")
time.sleep(1)

Command 1 — Enable EEG Channel / Set Gain

Section titled “Command 1 — Enable EEG Channel / Set Gain”

Purpose: Enables a specified channel and sets its gain, starting data acquisition on that channel. If the channel is already enabled, its gain is updated.

chon_{channel}_{gain}

Parameters:

ParameterDescription
channelOne-indexed channel number to enable (1 – 8).
gainAmplification level. Allowed values: 1, 2, 3, 4, 6, 8, 12 (recommended).

Example — enable channel 3 at gain 12:

board_shim.config_board("chon_3_12")

Purpose: Disables a specified channel, stopping data acquisition on that channel.

choff_{channel}

Parameters:

ParameterDescription
channelOne-indexed channel number to disable (1 – 8).

Example — disable channel 5:

board_shim.config_board("choff_5")

Purpose: Enables the Right-Leg Drive (RLD) for the specified channel.

rldadd_{channel}

Parameters:

ParameterDescription
channelOne-indexed channel number to include in the RLD network.

Example:

board_shim.config_board("rldadd_1")

Purpose: Disables the Right-Leg Drive for the specified channel.

rldremove_{channel}

Parameters:

ParameterDescription
channelOne-indexed channel number to remove from the RLD network.

Example:

board_shim.config_board("rldremove_1")

A standard session enables all desired channels and adds them to the RLD network after calling start_stream():

import time
from brainflow.board_shim import BoardShim, BrainFlowInputParams, BoardIds
params = BrainFlowInputParams()
params.serial_port = "COM3" # adjust for your OS
params.other_info = '{"gain": 12}' # optional global gain override
board = BoardShim(BoardIds.NEUROPAWN_KNIGHT_BOARD, params)
board.prepare_session()
board.start_stream()
num_channels = 8
for ch in range(1, num_channels + 1):
time.sleep(1)
board.config_board(f"chon_{ch}_12") # enable channel at gain 12
time.sleep(2)
board.config_board(f"rldadd_{ch}") # add to RLD
time.sleep(1)