OOPic B.2.x-Plus Objects
OOPic firmware version B.2.x-Plus contains all of the Objects found within version B.1.x plus an expanded set of Objects that utilize the capabilities of Microchip's PIC16F877 microcontroller.  This expanded Object set includes 12 new motor control hardware Objects, 5 new sensor Objects and several other robotic related Objects for a total of 26 new Objects.   In addition to the new Objects, the  B.2.x-Plus firmware can be programmed and debugged via the serial port as well as the I2C port.

Hardware Objects.
Hardware Objects are Objects that encapsulate the functionality of the physical hardware circuits within the OOPic.

All Hardware Objects have a Value property that reflects the electrical state of the hardware that they encapsulate. Most can be turned on and off by setting an Operate property that specifies if the hardware function is active. Hardware Objects that do not have an Operate property can still be enabled and disabled by their other properties.
Icon Object Description
oA2D An Object that provides an 8-Bit numerical measurement of a voltage.
oA2D10 An Object that provides a 10-Bit numerical measurement of a voltage.
oA2DX An expanded version of the oA2D Object that reads an analog voltage and detects when it has exceeded a threshold.
oBumper4 An Object that reads a 4 switch bumper and converts the input to a URCP Heading value.
oBumper8 An Object that reads an 8 switch bumper and converts the input to a URCP Heading value.
oButton A Object that reads the state of a switch and controls the state of an LED.
oCompassDN An Object that reads a Dinsmore Compass.
oCompassDV An Object that reads a Devantech Compass.
oCompassVX An Object that reads a Vector V2X Compass.
oDCMotor

An Object that uses URCP speed values to control a DC motor using a LMD18200 H-Bridge as used in the Magnevation Dual PWM Motor Driver.

oDCMotor2

An Object that uses URCP speed values to control a DC motor using a L293 H-Bridge as used in the Lynxmotion Dual Motor Driver.

oDCMotorMT

An Object that uses URCP speed values to control a DC motor using a Mondo-Tronics H-Bridge driver.

oDCMotorWZ

An Object that uses URCP speed values to control a DC motor using a Wirz 203 Motor Driver H-Bridge.

oDIO1 An Object that provides a 1 bit digital I/O.
oDIO16 An Object that provides a 16-bit digital I/O.
oDIO16x An Object that provides a 16-bit digital I/O.
oDIO4 An Object that provides a 4-bit digital I/O.
oDIO8 An Object that provides an 8-bit digital I/O.
oFreq An Object that outputs a frequency.
oI2C An Object that provides access to an I2C device.
oIRPD1 An Object that reads an IR Proximity Detector.
oIRPD2 An Object that reads a dual IR Proximity Detector.
oIRRange An Object that reads a Sharp GP2D12 IR ranging module.
oJoystick An Object that reads an Atari style joystick.
oKeypad An Object that reads a 4 x 4 Keypad matrix.
oKeyPadX

A Hardware Object that scans up to an 8 by 8 matrix of switches and determines which switch is pressed.

oLCD An Object that controls a LCD display.
oLCDSE(T) A set of 2 Objects that control Scott Edwards Serial LCD Displays.
oLCDWZ An Object that controls a Wirz Electronics SLI-OEM LCD display controller.
oMotorMind An Object that controls a Motor Mind module.
oPWM An Object that provides a Pulse-Width-Modulated output.
oPWMX An expanded version of the oPWM Object that outputs a PWM pulse on any I/O line.
oQencode An Object that reads a Quadrant Encoder.
oSerial An Object that provides an asynchronous serial I/O port.
oSerialPort An Object that provides a buffered asynchronous serial I/O port.
oSerialX An Object that provides Serial Inputs or Outputs on any I/O line.
oServo An Object that controls an RC Servo-motor.
oServoSE An Object that controls a Scott Edwards Serial Servo controller.
oServoSP1 An Object that uses URCP Speed values to control a modified RC Servo-motor.
oServoSP2 An Object that uses URCP Speed values to control a modified RC Servo-motor.
oServoX An Object that uses URCP Heading values to control an RC Servo-motor.
oSonarDV An Object that reads a Devantech SRF04 ultrasonic range finder.
oSonarPL An Object that reads a Polaroid 6500 sonar ranging module.
oSPI An Object that provides SPI serial input and output.
oSP0256 An Object that controls an SP0256 voice synthesizer chip.
oStepper An Object that controls a stepper motor.
oStepperL An Object that controls a stepper motor with latched drivers
oStepperSP An Object that uses URCP Speed values to control a stepper motor.
oStepperSPL An Object that uses URCP speed values to control a stepper motor with latched drivers.
oTimer(X) A set of 2 Objects that provide a 16-bit high speed counter.
oTone An Object that outputs a tone.
oTracker An Object that tracks the position of a line.
oUVTronHM An Object that reads a Hamamatsu UVTron Flame detector.
oVideoIC An Object that overlays text on a video signal using an Intuitive Circuits OSD232 On-Screen Display Character Overlay Board.

Processing Objects.
Processing Objects are Objects that encapsulate various mathematical logical and other data manipulation functions.

Processing Objects perform various data manipulation functions. Where-as Variable and Hardware Objects maintain a default Value property Processing Objects do not. Instead they have Object and Flag pointers that specify which other Objects hold the Value properties that will be used for the function's input and output values. All Processing Objects can be turned on and off by setting an Operate property that specifies if the function is enabled.
Icon Object Description
oBus(O,I,C) A set of 6 Objects that copy Values from one Object to another.
oChanged(O,C) A set of 4 Objects that detect when an Object's value has changed.
oClock An Object that provides a programmable logic clock.
oCompare(0,2,C) A set of 6 Objects that compare Object values.
oConverter(C) A set of 2 Objects that provide conversion functions.
oCountDown(O) A set of 2 Objects that decrease a value until it is 0.
oCounter An Object that provides counting functions.
oDataStrobe An Object that provides a Data-Strobe in response to a value being written to it.
oDDELink An Object that provides a Dynamic-Data-Exchange link over the I2C network.
oDebounce An Object that provide logic-state debouncing functions.
oDivider An Object that provides a clock divider.
oEvent(X,C) A set of 4 Objects that run program code when activated.
oFanOut(C) A set of 2 Objects that distributes a Boolean value to other Objects.
oFlipFlop(C) A set of 2 Objects that toggle a 1-Bit value.
oGate(C) A set of 2 Objects that provide logic-gate functions.
oIndex(C) A set of 2 Objects that provide indexing functions.
oMath(I,O,C) A set of 6 Objects that provide mathematical functions.
oNavCon(I,C) A set of 4 Objects that provide differential steering calculations. 
oNavConEI(C) A set of 2 Objects that provide differential steering calculations with encoder inputs.
oOneShot An Object that produces a one-pulse output in response to logic transition.
oRamp(I,C)

A set of 4 Objects that calculate a ramp speed for a motor.

oRandomizer(O,C) A set of 4 Objects that provide a random number.
oRepeat An Object that provides a repeat function.
oRTC An Object that maintains a Real Time Clock.
oSequencer An Object that sequences a series of numbers to an Object.
oSrvSync An Object that provides a method of synchronizing multiple servo-motors.
oWire(C) A set of 2 Objects that copy a Boolean value to another Object.

Variable Objects.
Variable Objects are Objects that store values.

All Variable Objects have a Value property that is used to store its value. In addition to the Value property various other properties and methods are available to manipulate the variable.
Icon Object Description
oBit An Object that maintains a 1-bit variable.
oBuffer An Object that maintains a variable size data-buffer/string variable.
oByte An Object that maintains an 8-bit (1-byte) variable.
oEEProm An Object that provides access to the non-volatile EEPROM memory.
oNibble An Object that maintains a 4-bit variable.
oRAM An Object that provides access to the system's Random-Access-Memory.
oWord An Object that maintains a 16-bit (2-byte) variable.

User definable Objects.
User Definable Objects are Objects that can be written by OOPic users.

Each User Definable Object is comprised of a small, self contained OOPic program  The Objects and Procedures within this program, become the User Definable Object's Properties and Methods.
Icon Object Description
oUserClass An Object that uses an OOPic program to provide a new Object definition.

System Objects.
System Objects are Objects that encapsulate the functions of the OOPic’s internal system.

Two System Object are provided that control the internal workings of the OOPic. These Objects are pre-created at the time that the OOPic chip is powered on.
Icon Object Description
OOPic An Object that provides control of and maintains information about the OOPic.
Pic An Object that provides access to the Microchip PIC16C74b microcontroller.