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. This document explains how to program our Orangutan SV-xx8, Orangutan LV-168, Baby Orangutan B, and 3pi robot from the Arduino IDE. The Orangutans and the 3pi robot have a substantial degree of overlap with Arduinos because they use the same ATmega328P and ATmega168 processors found on official Arduinos. Our Orangutan robot controllers can therefore be an attractive alternative to official Arduino hardware for those already familiar with the Arduino environment. Also, the Arduino IDE can be a beginner-friendly and cross-platform alternative to Atmel Studio for those looking to get started with Orangutans.


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 a simple installation of some files in your sketchbook directory, 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, the AVR’s hardware serial port is free for other uses, and you gain an extra 512 bytes 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.