C Library for Atmel AVR Processors

WebbotLib is a C library for robot builders supporting the following microcontrollers: ATMega168, ATMega32, ATMega328P, ATMega640, ATMega644, ATMega1280, ATMega2560 and ATMega2561.

The library supports a wide variety of different motor controllers, sensors and other devices. This allows you to concentrate on writing your own software without having to worry about the low level routines required to communicate with the attached devices.

When ever possible we have standardised the devices. For example: all distance sensors will return a value in centimeters. This means that you can change from one distance sensor to another with only a handfull of code changes at the top of your program. The same principle applies to motor controllers.

As well as the supported microcontrollers listed above the library also provides support for some commercial boards based on these devices. This allows 'built in' devices such as LEDs, buttons, or motor controllers to be automatically defined as well as making sure that you only attach devices to pins that have been made available by the manufacturer.

The source code and documentation for the latest release of this library is available from: http://sourceforge.net/projects/webbotavrclib/

Note that there are two code streams:-

Version 1 uses C only and can be used with, or without,  Project Designer.

Version 2 requires you to use  Project Designer and can generate smaller and more efficient code in either C or C++.

An online version of the C documentation is available here and the online C++ documentation is here


Comments and some unofficial examples may be found at the Society Of Robots web site

 See whats new for WebbotLib


Here is just a flavour of the devices currently supported:-

Type ModelComments      
 SOMO14D Allows playback of audio files from a microSD card
 Camera Blackfin
  •  Supports all resolution modes
  • Blob Detection
  • Mean Colour
  • Get Pixel colour at X,Y
  • Count pixels in a rectangle that match a colour bin
  • Blob Detection
  • Get Pixel colour at X,Y
 Motors Sabertooth
  • 2x5 amps
  • 2x10amps
  • 2x25 amps
  •  Dual Serial protocol
  •  Stand alone or built into board like BabyOrangutan
  •  L298 motor driver
  •  TB6612FNG either as a seperate module or built into boards like the BabyOrangutan B328
 Stepper Motors
  •  A4983 stepper motor controller board
  •  L297
  • ADXL335
  • ADXL345
  • ACCM3D2
  • MMA7260QT
  • CMPS03
  • CMPS09
  • HMC5843
  • HMC6343
  • HMC6352
  • HMC5883L
 Current Phidget 
  • DC and AC sensors
 Distance Devantech
  • SRF02, SRF04, SRF05, SRF08 sonars
  • EZ1
  • MB7077 (suitable for underwater)
  •  Ping Sonar

 Infra-red devices such as:

  • GP2
  • GP2D12
  • GP2D120
  • GP2D15
  • GP2Y0A02YK
  • GP2Y0A02YKOF
  • GP2Y0A21YK
  • GP2YOA700KOF
  • GP2Y0AY710KOF

And wide range devices like:

  • GP2Y3A002KOF
  • GP2Y3A003KOF
 Gyro InvenSense
  • IDG300
  • IDG500
  • ITG3200
  • LPR530AL
  • LY530ALH
  • Any GPS device sending NMEA messages
 IMU SparkFun
  •  Razor 9DofF
  • All standard Futaba/Hitech compliant servos
  • Dynamixel AX-12
  • Devantech SD21 Servo controller
  •  Sony PS2 controller
  • SD Card (raw format or a FAT file system so it is readable on a computer)
 Temperature Maxim
  • DS18B20
 Real Time Clock 
  • DS1307
  • DS3234


  • BMP085
  • MPX5100a
 Communications Narobo
  • DroneCell

Don't see your sensors listed here? Well we may already support them.

If you are a 'user' then check the docs from the latest release.

If you are a 'supplier' or 'manufacturer' then contact me. Here is an example of traffic on the Society Of Robots website to do with WebbotLib