ooPIC Mark III Notes

Junun ooPIC Mark III Notes
Salvador Garcia, May 21, 2008
We recently purchased a Mark III robot from www.junun.org. Specifically, we decided to get the ooPIC version. I had researched the matter and asked opinions and the general consensus was this model of the Mark III.
As I began to read the Mark III’s online instructions I noticed certain aspects that did not seem to apply to the ooPIC version. After assembly, more research and some searching I found information specific to this model that was not obvious from reading the available documentation.
For this reason I decided to document these changes here so that we can use it as a future reference.
The ooPIC is a PIC16F877 Microchip component that has been enhanced with special firmware. The firmware gives the component the ability to be programmed using an object oriented approach (hence the “oo” in the name).
The differences between the PIC version of the Mark III and the ooPIC version are the following:
  1. The ooPIC version Mark III uses the PIC16F877 with the Object Oriented programming firmware while the other version uses a PIC without this special firmware.
  2. The ooPIC version Mark III needs an extra component to work, this being the EEPROM that is labeled as U4. Note: Even if your model is the PIC version, get an 8-pin DIP IC socket and solder it in where U4 goes. It will be very useful if you decide to upgrade to the ooPIC version later on. Just be careful to match the notch on the silkscreen with the notch on the socket.
  3. The ooPIC version Mark III needs two jumpers installed on the jumper block labeled JP1 that the non ooPIC version does not need. These jumpers have to be installed on header pins 4 & 6 and 3 & 5. The following figure illustrates the location of JP1 and the jumper block settings.
The general instructions do not make any mention of the jumper settings. U4 is labeled as “Unused” in the parts list, but a paragraph does briefly mention that this component is mandatory if the ooPIC version of the Mark III is being assembled.
The jumper settings are documented in the schematic of the Mark III. The second illustration presents the schematic of the Mark III with the section containing the JP1 zoomed in. The URL where the schematic is located is also given. This illustration also shows the location of U4 which is just above JP1.

 JP1 Configuration

Above: The Mark III PCB showing the silkscreen. Place and solder the jumper headers before jumpering the pins with the jumper blocks.
 JP1 Highlighted in schematic
Above: Schematic diagram highlighting the key element for the ooPIC version of the Mark III. Schematic taken from Junun webpage at http://www.junun.org/markIII/datasheets/Controller_SCH.pdf.
The online instructions detail how to communicate with the Mark II using a terminal program and how to download the Celestial Horizons CHBasic development environment.
The ooPIC version of the Mark III functions differently and the instructions mentioned in the previous paragraph do not apply. Some of the differences are the following:
  1. The non ooPIC version of the Mark III comes preloaded with the firmware PICLoader 1.1 while the ooPIC does not have this firmware, but instead has the enhanced firmware to allow it to be programmed in object oriented languages. This means that the ooPIC version of the Mark III won’t be able to make use of utilities that interact with the PIC Loader, such as BotLoader.
  2. The non ooPIC version of the Mark III can be programmed in Basic using CH Basic, in JAL, a language created by Brett Nelson for some PIC models and in C using the CC5X or CCS C development environment. On the other hand, the ooPIC version needs to be programmed using the multi language development environment available at www.oopic.com. Languages are modeled after commercial languages such as Visual Basic, BASIC, Java and C.
  3. The instructions given to use a terminal program with the Mark III do not work the same way with the ooPIC version of the robot; in fact, HyperTerminal will not work at all with the ooPIC robot.
  4. The programs that are referenced in the general instructions are for the non ooPIC version of the Mark III and will not work with the ooPIC Mark III. This includes the calibration application to calibrate the servos.
The first step to get the ooPIC Mark III going is to download the development environment from www.oopic.com. This is the OOPIC Multi language compiler v6.00 available at http://www.oopic.com/dloadp.html. The only file that needs to be downloaded is ooPIC611Setup.exe.
The second step is to join the Mark III group at Yahoo at the following URL:
This is a group dedicated to the Mark III. Their file repository contains applications for the ooPIC version of the Mark III, including a calibration application.
Following the above considerations I was able to get the ooPIC Mark III to calibrate the servos, run diagnostics and run a simple line follower program. Make sure the robot is turned on when using the OOPIC development environment.
For further information, use the search string ‘oopic’ or ‘oopic robot’ (without quotes) at www.google.com. There is plenty of information on how to use and program the ooPIC chip for general and robotic applications.