XBC

The XBC, or the Xport Botball Controller, is a robot based on Charmed Labs' Xport hardware. It was built specifically for the Botball competition and uses a Game Boy Advance for its display and for high-level processing; a field-programmable gate array is used to offload low-level processing of motors and sensors from the Game Boy Advance. The XBC is programmed using Interactive C, which is a variant of the C programming language. The XBC replaced the RCX in 2005 as Botball's official processor. The RCX can be programmed using Interactive C, Not Quite C, or Lego's simple GUI interface. Both robots can have bases built with Lego pieces.

Sensors
The XBC has ports for LEDs/light sensors, IR reflection/color sensors, SONAR, and touch sensors. A camera can also be connected via a header pin array on the front of the XBC; it can blob-track or serve as a color sensor. The camera's live feed can be displayed on the GBA's screen.

Servos and Motors
The XBC has 4 motor ports and 4 servo ports, each labeled 0-3, respectively. Each motor can be independently programmed to go either backwards or forwards and each servo can be independently changed and controlled with precision. Servos and motors are powered by a separate battery pack from the Game Boy Advance.

Programming
The XBC can be programmed using either Interactive C (IC) or the Xport Development Kit (Xport DK). IC is a simplified variant of C, which is intended to be as easy as possible to use. The Xport DK, in contrast, is a full-blown C/C++ cross-compiler. IC has many feature limitations that are not present in the Xport DK; this is in part a result of the fact that IC was originally written for the Handy Board (which had much fewer features), not the XBC. Some limitations of IC include a 16KiB compiled program size limit, and the lack of features for graphics and sound. The Xport DK was originally designed to program the Xport Robot Controller (XRC - the predecessor of the XBC), and supports the XBC as well. The Xport DK does not have the same limitations of IC, but has its own problem - an almost complete lack of documentation. Because IC is significantly easier to use, has extensive documentation for most features, and is still powerful enough for most uses, the vast majority of XBC users program in IC.