1. Introduction

The Orangutan LV-168 attached to a 3-AA battery holder.
Baby Orangutan B with included header pins soldered in for breadboard installation.

Arduino is a popular, open-source prototyping platform that makes it easy for people with little electronics experience to get into the world of microcontrollers and embedded programming. The Arduino environment consists of an open-source integrated development environment (IDE) and compiler, software libraries, and programmable hardware boards based on the powerful ATmega168 and ATmega328 microcontrollers. Because our Orangutan SV-xx8, Orangutan LV-168, and Baby Orangutan B robot controllers use these same microcontrollers, they have a substantial degree of overlap with Arduinos. Our Orangutan robot controllers can therefore be an attractive alternative to official Arduino hardware for those already familiar with the Arduino environment, and the environment can be a beginner-friendly alternative to AVR Studio for those looking to get started with Orangutans.

Note: The Pololu 3pi robot effectively has an Orangutan SV-xx8 as its core, so this guide and the Orangutan Arduino libraries apply to the 3pi as well. For more information on the 3pi, please see the 3pi user’s guide.


The Orangutans and 3pi robot offer integrated hardware that Arduinos do not, such as on-board dual motor drivers. This makes them well suited for applications involving control of small- to medium-sized robots. The Orangutan SV-xx8, Orangutan LV-168, and 3pi robot also have integrated pushbuttons, a piezo buzzer, and a removable LCD, all of which are additional features not found on official Arduinos.

With some minor changes to the Arduino software configuration files, it becomes possible to program our Orangutans and 3pi robot using the Arduino IDE and libraries. This guide will step you through the process of reconfiguring the Arduino IDE, and it will provide a series of custom libraries that will make it easy for you to interface with all of the Orangutan’s/3pi’s onboard hardware.

One key difference between standard Arduino boards and the Orangutan robot controllers is that most Arduinos come with integrated USB-to-serial adapters, which allow you to connect them to your computer and program them through pre-loaded bootloaders, while Orangutans lack integrated USB-to-serial adapters. As such, for the Orangutan SV-xx8, LV-168 and 3pi robot, we recommend you program the Orangutans or 3pi robot using an AVR ISP (referred to as ICSP in the Arduino world) programmer such as our USB AVR Programmer. By taking this approach and leaving off the bootloader, you gain an extra 2 KB of program space. You also avoid the bootloader delay when you power up or reset the board.

Pololu USB AVR programmer with included six-pin ISP cable.

Note: This document applies only to the 3pi robot and Orangutan SV-xx8, Orangutan LV-168, and Baby Orangutan B robot controllers. For simplicity, the latter three devices will be referred to from this point on as “Orangutans”, unless a distinction needs to be made between specific Orangutan models. This document does not apply to the original Orangutan, Baby Orangutan, Orangutan X2, or Orangutan SVP robot controllers.