webbot.org.uk News FeedAn RSS Feed for webbot.org.uk:80/iPoint/35.pagewebbot.org.uk:80/iPoint/35.pageitem&72Project Designer Version 2.2Version 2.2 has been released to allow easier use with AVRStudio 6.

 If your Project Designer folder contains a file ending with '.aps' then you delete it.

Regenerate your project in Project Designer making sure that you tick the option to 'Create AVRStudio project file'. This will create a fresh '.aps' file.

To use the project in AVR Studio 6 you should use the "File", "Import", "AVR Studio 4 project..."  menu option.

In the pop up window, in the 'APS File Location' section, Browse and select the '.aps' file generated above.

Click  the 'Convert' button.

That's it - you should now have an AVR Studio 6 project solution.


:80/iPoint/35.pageSat, 27 Jun 2015 04:15:44 +0100
:80/iPoint/35.pageitem&71WebbotLib Studio Version 1.19Version 1.19 has been released with the following features:-

  • Support for code 'libraries' has gotten better. To the extent that some code that was previously clogging up the main WebbotLib library hss now been moved out. Meaning that the core library everyone downloads is smaller and the 'extra' code is now an optional download if you need it.
  • Fixed the Doxygen help files to avoid a glitch whereby they showed the same super/base class multiple times.
  • Some initial libraries have been released
  • Some initial projects have been released - most noticably CenterServo for the Axon II - which is very small - and easy to convert to other boards.
:80/iPoint/35.pageSun, 18 Jan 2015 09:50:14 +0100
:80/iPoint/35.pageitem&70WebbotLib Studio Version 1.18Version 1.18 has been released:-

  • Device definition files can now create local power supplies - eg a motor controller board may have an unregulated 12V motor supply that is used to generate a local 5V regulated supply.
  • Fixed a quirk whereby reloading files that have been modified outside WLS caused the editor tab to indicate the file was dirty after being reloaded.
  • Fixed a quirk when choosing to save a Project that then told you the Project was changed and confirmed if you wanted to save it.
:80/iPoint/35.pageSun, 21 Dec 2014 05:56:57 +0100
:80/iPoint/35.pageitem&69WebbotLib Studio Version 1.17Version 1.17 has been released:-

  • The Windows toolchain (compiler/make etc) is now based on GNU 4.8.3 rather than 4.3.3 (WinAVR) as traditionally used
  • Help | About now shows the bit'ness of the JVM and the underlying hardware (eg a 32 bit version of Java on a 64 bit Windows PC). Whilst it is recommended that you use a 64 bit version of Java on a 64 bit PC WebbotLib Studio should now run ok if you are using 32 bit Java on a 64 bit Windows PC. It also shows the underlying compiller version.
  • The compile step of the download wizard now allows you to either build WebbotLib for all supported processors(Compile Now button) or to defer the building of WebbotLib for a given processor until you first use it (Compile Later button)
  • The CodeGen Dialog now allows you to set an extra parameter per project titled "Remove unused code/data (Alpha)?". By default this option is turned off. Turning it on will use new features of the GNU linker that attempt to remove data and code that is never actually used by your project leading to smaller executables. This is to be considered 'Alpha' - so if in doubt then leave this option turned off. NB don't beat me up if ticking this option causes things to fail - as this is GNU code not mine !!
:80/iPoint/35.pageMon, 01 Dec 2014 04:11:36 +0100
:80/iPoint/35.pageitem&68WebbotLib Studio Version 1.16Version 1.16 has been released and is largely a maintenance release:-

  • Help | About now shows the compiler version (once downloaded). Currently this is version 4.3.3 - the same as WinAVR - but I am preparing a new version as this is now quite old. This release is a step towards supporting different compiler versions.
:80/iPoint/35.pageTue, 25 Nov 2014 03:27:32 +0100
:80/iPoint/35.pageitem&67WebbotLib Studio Version 1.15Version 1.15 has been released with the following features:-

  • Breakout boards can now specify additional parameters - eg things such as on board I2C pullup resistors
  • Some re-factoring around Library support
:80/iPoint/35.pageTue, 25 Nov 2014 03:21:05 +0100
:80/iPoint/35.pageitem&66WebbotLib Studio Version 1.14Version 1.14 has been released with the following features:-

  • Some re-factoring around hardware programmers and software bootloaders
  • Add support for the Atmel Avr Dragon using ISP
:80/iPoint/35.pageTue, 14 Oct 2014 07:22:17 +0100
:80/iPoint/35.pageitem&65WebbotLib Studio Version 1.13Version 1.13 has been released with the following features:-

  • The previous download logic meant that you could end up with multiple download dialogues when installing from scratch. This has now been fixed and should be simpler for end users. If you have any download issues then let me know.
  • Using avrdude, particularly on Windows, was a bit problematic !!  WebbotLib Studio now sends you here to download any required 3rd party software.
:80/iPoint/35.pageSun, 28 Sep 2014 05:17:02 +0100
:80/iPoint/35.pageitem&64WebbotLib Studio Version 1.12Version 1.12 has been released with the following features:

  • The online help is now rebuilt properly irrespective of your local PATH settings. Note that the available Help is 'per workspace' and will only show the help for core WebbotLib plus the devices you have chosen to download to the workspace. This avoids giving help on boards/devices that you do not use.
  • The table displaying devices used by a board or project now support dag and drop. You can use this to re-order the items in the same list and therefore the order in which the devices are initialised at power up. You can also use it to copy device set up from one project to another. For example: a complex biped robot project may use a large number of servos with a lot of set up info (ie range/center of each servo and the pin connections) that you want to re-use in another project. You can now drag the servo bank from the source project to a different project.
:80/iPoint/35.pageSun, 21 Sep 2014 06:30:53 +0100
:80/iPoint/35.pageitem&63WebbotLib Studio Version 1.10Version 1.10 has been released with the following features:-

  • All of my devices have been updated to generate up-to-date offline help. See Help|Documentation
  • When adding/editing a given device to your board/project the 'Docs..' button now shows the WebbotLib Studio documentation rather than the old WebbotLib documentation - including any documentation created by 3rd party device driver authors.
  • Various bug fixes when editing devices
:80/iPoint/35.pageSun, 27 Jul 2014 06:26:50 +0100
:80/iPoint/35.pageitem&62WebbotLib Studio Version 1.09Version 1.09 has been released with the following features:-

  • When working on a Project there is a new Files tab to allow you to open the source code for any file included by the Project.
  • Offline documentation is now generated for each workspace based on the devices that you have choosen to download.
  1.  Existing users with existing Workspaces should select 'Site | Download' and step through the Wizard to the 'Documentation' stage and then click the 'Create' button.
  2. Documentation can then be viewed by selecting 'Help | Documentation'. 
  3. 3rd party device publishers should make sure that their header files contain the relevant Doxygen documentation to assist their users.
  4. I also need to work on the documentation for my own devices by annotating the header files with Doxygen comments. These will be released individually as and when they are done.

:80/iPoint/35.pageMon, 05 May 2014 05:43:01 +0100
:80/iPoint/35.pageitem&60Ever Wondered How To Debug Code for a small I2C Slave DeviceSo your problem is that you are trying to write some code to run on, say, an ATtiny85 that is acting as an I2C slave - perhaps to control a servo or some NeoPixels. Without the cost of JTAG how do you debug the code?

We came up with the following solution - not 'rocket science' and 'obvious maybe' when you think about it.

Our problem was to write code for an ATTiny85 which would listen on the I2C bus and control a string of high power LEDs. The ATtiny85 only has a USI - not a proper UART-  so its hard to dump any debug messages plus its easy to bloat the code and run out of space on this small chip. So how to do it?

  1. Use a bigger board which has various 'on board' gadgets or multiple UARTs like the Axon or, better, the Axon II.
  2. Split the resources of the board in half (mentally - not with a hacksaw!).
  3. One half (acting as the Master) is connected to your favourite computer terminal software to accept keyboard commands and send back messages to be displayed. It also uses two pins to define a software I2C bus.
  4. The other half (acting as the Slave) has the hardware I2C bus, the IO pins to talk to the LEDs, and either another UART for sending debug messages or the 8 Segment LED built onto the Axon II board.
  5. Now all we need to do is to connect the two I2C ports together as if they were seperate boards - you will need to add pullups from both the SDA and SCL lines to 5v using, say, 4k7 resistors.
  6. Create your project with each of these options set up. Your main loop should then have the code for both the master and the slave.
  7. Test and debug all one board !
  8. Once you've got it working. Create a new project for the ATtiny85 and only add the LED devices. Copy and paste the slave code in and remove any debugging stuff. 
  9. Create a new project for the Axon and only add the devices used by the master. Copy and paste the master code in.
  10. Change the two I2C wires so that they connect the I2Cpins on the different boards. You will either need to continue using the external pullups or, alternatively, the master can now use the hardware I2C in which case Studio will tell you whether you need the external pullups or not.

And there you go.

WebbotLib Studio makes it so easy due to the fact that it generates and uses the correct code (believe me - it is different) for the ATtiny85 once moved off the Axon. No need to rewrite anything.

:80/iPoint/35.pageWed, 12 Feb 2014 08:34:41 +0100
:80/iPoint/35.pageitem&61WebbotLib Studio DocumentationNew documentation is being released for WebbotLib Studio.This is now based around DoxyGen.


1. The implementation of WebbotLib has been modified compared with previous releases. A (work in progress - very early) version of the WebbotLib for Studio documentation is available here.

2. Other members of the WebbotLib community (it could be you!) can publish work to be shared within the community. Obviously the contributors, not me!, need to produce any documentation as part of that publishing process. DoxyGen seems like a 'recognised' ie familiar way of doing this. But that's the next step - and I need to document how other contributors can document...



:80/iPoint/35.pageWed, 12 Feb 2014 08:33:58 +0100
:80/iPoint/35.pageitem&59WebbotLib Studio Version 1.08 Version 1.08 has been released with the following changes:-

  • Board Designer allows you to set the default programmer to use for each board. The settings are then used by, or can be overriden by, individual projects, The settings are then remembered and re-used each time you flash your project.
  • A few improvements, fixes, and extra logging when trying to create your own upload site for publishing your work
  • The memory bars showing how much space has been used by your project now use a different background colour to make it easier to see the percentage used
  • Shaved some extra bytes from the project size by only including timer definitions if you, as an advanced user, start modifying timers and compare channels on the fly.
  • Some re-working of the I2C slave code for the ATtiny85
:80/iPoint/35.pageTue, 04 Feb 2014 01:58:41 +0100
:80/iPoint/35.pageitem&58WebbotLib Studio Version 1.07The Atmel AVRISP MKII programmer support is now more robust.

Reworked the 'Color' library to avoid bringing in the floating point library when it wasn't needed.

:80/iPoint/35.pageSat, 18 Jan 2014 02:31:09 +0100
:80/iPoint/35.pageitem&57WebbotLib Studio Version 1.06Version 1.06 has been released and includes:-

  • Chip programming via AVRISP MKII, FBoot and my own bootloader WLSBoot
  • Fixed a memory leak when reading executable (ELF) files to show the amount of Flash, Data, EEPROM memory required

Note that using the AVRISP MKII comes in two different flavours:-

  1. If you are on Windows and have a working copy of AvrStudio 6 running then you should see an option for "AVRISP MKII (Atmel AVR Studio 6.0)" when trying to flash. Any errors when using this option probably mean that AvrStudio or the Jungo USB drivers it uses are not properly configured.
  2. You should always see an option for "AVRISP MKII (avrdude)" regardless of what operating system you are using. Unix users may need to make sure avrdude is loaded by running "sudo apt-get install avrdude". If programming fails with a message like 'usbdev_open(): did not find any USB device "usb"' then avrdude cannot see your AVRISP MKII. On Windows you can install a usb filter by downloading 'libusb-win32-bin-' from the sourceforge libusb-win32 project - unzip the file - and run the file 'bin\inf-wizard.exe' with your AVRISP MKII plugged in. This should find your programmer and create a Windows INF file to install a driver for it. avrdude should then be happy. Word of caution: if you have AvrStudio installed as well then libusb may kill the Jungo drivers meaning AvrStudio no longer works! Bah - why did Atmel choose to buy those stupid Jungo drivers when libusb is free ! You can uninstall libusb and get the Jungo drivers running again but best practice is: if you have AvrStudio installed then use "AVRISP MKII (Atmel AVR Studio 6.0)" otherwise install libusb and then use "AVRISP MKII (avrdude)"
:80/iPoint/35.pageSat, 11 Jan 2014 09:27:01 +0100
:80/iPoint/35.pageitem&56New Release of DownloaderA new version of Downloader has been made.

This fixes a problem on non-Windows machines where the 'Run' button failed to launch some applications. (Tested on Ubuntu and Debian).


It also contains a link for WebbotLib Studio

:80/iPoint/35.pageTue, 26 Nov 2013 12:44:33 +0100
:80/iPoint/35.pageitem&55WebbotLib Version 2.11 and Project Designer Version 2.1A new version of Board/Project Designer has been released - Version 2.1.You can view the current version number in Project Designer via Help | About.

  • Fixes issues in the generated code for software UARTs and Tone generators
  • Increased support for the ATtiny85

Downloading the new Designers means that you must also have a version of WebbotLib that is Version 2.11 or greater.

Note that you will need to regenerate your project code followed by a 'make clean' and a 'make'.


:80/iPoint/35.pageSun, 06 Oct 2013 03:25:59 +0100
:80/iPoint/35.pageitem&54WebbotLib Versions 1.36, 2.10 and new Project DesignersA new version of Board/Project Designer has been released - Version 2.0.You can view the current version number in Project Designer via Help | About.

The main change is in the format of the code generated by Project Designer. Consequently new versions of WebbotLib have also been released to support this revised format.

Downloading the new Designers means that you must also have a version of WebbotLib that is Version 2.10 or greater or Version 1.36 or greater.

WebbotLib Version 2.10

Compatible with new code generated by Project Designer but you MUST re-generate your project in Project Designer before doing a 'make clean' and then 'make'.

 In addition - preliminary support has been added for the ATtiny85.

WebbotLib Version 1.36

 Compatible with new code generated by Project Designer but you MUST re-generate your project in Project Designer before doing a 'make clean' and then 'make'.

 No other major changes.

:80/iPoint/35.pageSat, 21 Sep 2013 08:35:26 +0100
:80/iPoint/35.pageitem&53WebbotLib Studio early alpha releaseWebbotLib Studio has been made available for Windows - for those who are already familiar with the WebbotLib designers and programming AVR chips. ]]>:80/iPoint/35.pageThu, 05 Sep 2013 10:59:46 +0100:80/iPoint/35.pageitem&52Version 2.09Fixed bug in HD44780 display when using 8 bit data bus

The library now compiles in GCC 4.7.0 although the supplied libraries are still compiled via GCC 4.3.3 (WinAVR-20100110). This is largely due to some errors in GCC 4.7.0 that I have reported to gnu. However: those of you who have reported compile errors in version > 4.3.3 should now be able to compile - but don't moan to me about any issues if you do so! To find which version of the compiler you are using then at a command prompt type in:

avr-gcc --version

You will need to make sure that you have downloaded the latest Project Designer and re-generate your projects (standard practice).

If you are using my Downloader then Version 1 is now being put on ice so within the Downloader select WebbotLib V1 and then click the 'Properties...' button.If the Remote URL says:- 'http://sourceforge.net/projects/webbotavrclib/files' then change it to 'http://sourceforge.net/projects/webbotavrclib/files/Version1'

This is necessary as the Version 1 codebase used to be the default download from SourceForge whereas the default is now Version 2


:80/iPoint/35.pageSat, 21 Apr 2012 07:40:38 +0100
:80/iPoint/35.pageitem&51Version 1.35 and 2.08Added DCM class in 2.08 for C++ for AHRS projects. Examples are here.
Updated ADXL345 to allow you to set the refresh rate
Fixed LengthSquared bug in Vector2D and Vector3D
Fixed bug in HMC5883L where Y and Z registers are reversed ]]>
:80/iPoint/35.pageFri, 14 Oct 2011 04:58:23 +0100
:80/iPoint/35.pageitem&50Version 1.34 and 2.07Added support for two real time clocks - DS3234 and DS1307 (Version 2.07 only)
Added Dallas 1 Wire support (Version 2.07 only)
Added support for the DS18B20 temperature sensor (Version 2.07 only)
Added support for HMC5883L compass
Added support for BMP085 pressure sensor (with functions to return altitude and depth)
Sharp wide angle distance sensors now return the minimum distance across all 5 sensors rather than the average

Version 2.07 also contains an alpha release for the 4D Systems serial graphical displays. Not all functionality is yet supported but Project Designer will generate some example code to show-off some of the abilities.

N,B. Pressure sensors now return values in Pa rather than kPa (for better accuracy) - so if you are using them already then read the updated section of the manual.

Project Designer now has all 3 revisions of the Sparkfun Razor board

:80/iPoint/35.pageSat, 13 Aug 2011 06:14:26 +0100
:80/iPoint/35.pageitem&49Version 1.33 and 2.06This is a maintenance release.

It fixes a potential issue with the use of rprintf under interrupts - such as with the DroneCell - but could apply to other devices as well. The longer they are up and running then the increased chance of something going wrong.

All PWM based motor controllers now allow you to specify the actual PWM frequency ( default is the previous version of 10kHz) in Project Designer or as an extra parameter to the 'init' function.


So perform a 'clean' and then regenerate your code in Project Designer if you are using it. If you aren't using Project Designer then recompiling will show errors with your motor controller initialisation calls (read the manual) you will note that you have to add the PWM frequency as an extra parameter.


The DroneCell SMS code has been modified to make sure thay you make use of the return code which indicates whether or not the DroneCell is currently capable of sending a SMS message. Failure to do so willnow result in a compiler warning. See the manual and/or example code produced via Project Designer to see what your code should actually look like!


:80/iPoint/35.pageSun, 10 Jul 2011 07:44:28 +0100
:80/iPoint/35.pageitem&48Version 1.32 and 2.05After a long haul the new C++ option is here (in Version 2.05).

Project Designer now gives you the option to generate C or C++ code but note that if you change from one to the other then it is recommended that you use seperate project folders. The main reason being that, if your project is called MyProject, then you can end up with a MyProject.c and a MyProject.cpp which are both compiled to MyProject.o and so the makefile gets confused as to which one to use.

As a result of some of the changes required by Version 2.05 then a new Version 1.32 has also been released so that it is compatible with Project Designer. Hence, after upgrading to either of these versions, you should regenerate your code from Project Designer. If you are using version 1 without Project Designer then read the release notes in the documentation as there some changes you may need to make to your code by hand.

If you are using a GPS then you should also check out the release notes as there are some small code changes you will need to make plus the longitude and lattitude readings are now returned in degrees rather than radians.


:80/iPoint/35.pageWed, 06 Jul 2011 03:20:57 +0100
:80/iPoint/35.pageitem&46C++ VersionHave been working long and hard on a C++ version of WebbotLib that sits alongside the existing C version.

The code was fairly quick to implement but am now having to revisit 300+ pages of documentation - which is taking a while!.

Let me know if this is of interest !! Can always use some testers !





:80/iPoint/35.pageMon, 06 Jun 2011 10:25:21 +0100
:80/iPoint/35.pageitem&45Version 1.31 and 2.04The principal changes in this release are to do with minimising the chances of 'receive buffer overflow' (Error 11) with a GPS device.

These devices are different to many other serial devices in that they don't just 'reply when spoken to' but rather just keep shouting unsolicited messages. Previously: if these message were not processed quickly enough then they could stack up and overflow the receive buffer - especially at power on when they often chuck out all sort of version number kinda messages. This release has changed everyting so that each character is processed under interrupts as and when it is received.

Consequently: the uart you are using does NOT required ANY input buffer at all.

The only difference to your code is that there is now a gpsNMEAinit function you MUST call to get the communications started. If you are using Project Designer then this will automatically be added for you if you regenerate the code from the Tools menu.

The second change is to do with uartAttach - which now has an extra parameter - but this is an advanced function so you probably aren't using it. Either read the manual or just add an extra 'null' parameter to anywhere you are calling it.


:80/iPoint/35.pageWed, 20 Apr 2011 08:59:23 +0100
:80/iPoint/35.pageitem&44Version 2.03Version 2.03 has been released:-

  • Fixes a problem with Sharp GP2 distance sensors
  • Adds support for the DroneCell to send and receive SMS text messages
:80/iPoint/35.pageWed, 13 Apr 2011 06:10:45 +0100
:80/iPoint/35.pageitem&43Version 1.30 and 2.02Verion 1.30 and 2.02 have been relased with the following

  •  Sparfun serLED horiz/vert graph - now shows something - but low resolution!
  •  Added VT100 to allow PC to act as an LCD display (no kbd)
  •  Added Devantech LCD03 a 20/4 LCD via I2C - now my favourite display !!
  • Version 2.02 also allows a software UAT to use the INTx pins as well as the ICPx pins
:80/iPoint/35.pageWed, 09 Mar 2011 06:38:04 +0100
:80/iPoint/35.pageitem&42Version 1.29Version 1.29 has been released:-

  • Added support for the ATMega1284P as used in the Orangutan-SVP
  • Added the ability to drive up to 8 servos from one 16 bit PWM channel via a 74HC238 de-multiplexer chip
  • Porject Designer now supports the Orangutan SVP 1284 board
:80/iPoint/35.pageTue, 22 Feb 2011 12:57:39 +0100
:80/iPoint/35.pageitem&41Webbot Download FixAnother release to clear up another SourceForge related issue ]]>:80/iPoint/35.pageThu, 17 Feb 2011 10:39:42 +0100:80/iPoint/35.pageitem&40Webbot Download FixSourceForge went and changed their website - which meant the Downloader stopped working for WebbotLib itself.

A new release of the downloader has been made to cope with this.


:80/iPoint/35.pageSun, 13 Feb 2011 05:54:23 +0100
:80/iPoint/35.pageitem&39Webbot DownloaderHopefully you are now using lots of my stuff: WebbotLib and the various Designer programs. Well here's a new little application to allow you to manage them. Download new versions, run stuff - all from one small little window.

Check it out  here  

:80/iPoint/35.pageMon, 07 Feb 2011 12:09:42 +0100
:80/iPoint/35.pageitem&38Version 1.28Version 1.28 has been released:-

  • Some minor fixes to documentation, encoders and software uarts
  • Added the ITG3200 3 axis gyro with thermometer
  • The Tools | Generate menu option in Project Designer now creates a makefile - great for those non-AVRStudio, Mac, Unix users who have no other way to build their code. Just change to the project folder and run 'make' to create your hex file.
  • Mac and Unix users were reporting that the 'Tools | Generate' command in Project Designer didn't do anything. I think I've fixed this but have no way of testing.

OK - So not lots of new stuff. But a time to consolidate and stabilise after the 450 downloads of the previous version. Thanks to everyone (and dont forget that 'donate $' button on the SourceForge download site !!!!!)


:80/iPoint/35.pageWed, 12 Jan 2011 10:43:22 +0100
:80/iPoint/35.pageitem&37Version 1.27Version 1.27 has been released:-

  •  Displays - set the back light brightness to 50% and then turn it off at startup
  •  SparkFun serLCD display now implements the setBrightness command for the back light
  • Motors   - Added 2pin for L293D, and compatibles, for uBotino.
  • Encoders - speeded up the encoder_read function for when interpolation is turned off
  • Added the tone.h file for playing single tones or ring tones
  • Project/Board Designer - Added the uBotino board and changed the way the splash screen is displayed to get around bugs in some fire walls


:80/iPoint/35.pageSat, 09 Oct 2010 08:28:12 +0100
:80/iPoint/35.pageitem&36Designer changesBoard Designer

  • now allows you to create jumpers which can be used to select which supply a row of pins is connected to at runtime
  • when the jumper is selected it will alternate between the colour of the jumper and the colour of the supply it is connected to

Project Designer

  • allows you to reconfigure the jumper on a project basis
  • now shows the total estimated current consumption for each power bus / battery


Also fixed some issues when multiple files were open.


:80/iPoint/35.pageWed, 06 Oct 2010 12:37:31 +0100
:80/iPoint/35.pageitem&35Version 1.26Version 1.26 released:-

  • The I2C master logic has undergone a re-write. The previous i2c_master.h for an I2C master has been replaced by i2cBus.h which now allows you to create an I2C master via the hardware I2C bus (as before) and also a software I2C bus using any IO pins you like (with the addition of external pull up resistors).
  • i2cBus.h also now allows you to make your board an I2C slave device - accepting incoming requests from another master.
  • The Devantech SD21 servo controller now requires some code changes as it is an I2C device. The benefit is that you can now add additional SD21 cards, even though it only has a fixed I2C address, by connecting additional boards to a software I2C bus.
  • Users of Project Designer should regenerate the code for their project to make the necessary code changes. Non Project Designer users should read the documentation and examples of i2cBus.h
  • Project Designer has been changed so that it doesn't reserve power pin headers for disabled devices and should also now take up less CPU time. It also now groups all the I2C devices under the bus to which they are attached. Old files are automatically converted when loaded so that the I2C devices are placed inside a new 'hardware I2C bus' called 'i2c'.
  • If you have created any boards using Board Designer then you should load and then re-save the board to take account of changes to the way I2C devices are handled.
:80/iPoint/35.pageFri, 01 Oct 2010 11:12:38 +0100
:80/iPoint/35.pageitem&34Version 1.25
  • Encoders - The MAKE command now has an extra parameter to say whether or not you want the encoder to interpolate to generate a guesstimate of its current 'part-click'. Most useful for low resolution encoders attached to large wheels. For backwards compatibility you will need to add a FALSE parameter to your encoder MAKE commands or, if using Project Designer, then regenerate the code.
  • Stepper Motors - fixed some bugs and also added Stepper/Generic/Bipolar.h for a generic stepper motor controller using h-bridge components such as the L293 series
:80/iPoint/35.pageMon, 20 Sep 2010 11:19:03 +0100
:80/iPoint/35.pageitem&33WebbotLib Online DocumentationThe documentation is now searchable via the text input and Find button - I got fed up waiting for Google to index it all !

The pages load a lot fast now too.


:80/iPoint/35.pageFri, 03 Sep 2010 09:07:09 +0100
:80/iPoint/35.pageitem&32Version 1.24WebbotLib Version 1.24 has been released with the following new features:-

  • core.h - added the 'isqrt' function to calculate the square root of an uint32_t without needing the floating point library
  • The Stepper directory has been added to handle stepper motors. The initial (alpha) version copes with the Pololu A4893 as well as the generic L297 controller
  • GaitRunner.h has been improved via the new gaitRunnerSetDelta and gaitRunnerGetDelta functions which allow you to modify the gait at runtime. For example: change the ankle joints of a biped if it is walking up, or across, a slope
  • Sensors/Encoder/Generic/fastquad,h now has a MAKE_GENERIC_FAST_QUADRATUREx2 constructor. This requires an INT pin for both channels A and B - but the resolution of the encoder is doubled generating 4 ticks per stripe on the encoder disk.
:80/iPoint/35.pageWed, 11 Aug 2010 09:21:32 +0100
:80/iPoint/35.pageitem&31Version 1.23WebbotLib Version 1.23 has been released with the following features:- 

  • a2d.h - Added a2dReadMv
  • Reworked ALL analogue sensors to work with different ADC reference voltages


  • Added: Audio/SOMO14D audio playback device
  • Added generic support for serial servo controller cards: see servoSerialInit
  • Added support for the ATMega644
:80/iPoint/35.pageMon, 19 Jul 2010 09:43:51 +0100
:80/iPoint/35.pageitem&30Version 1.22WebbotLib Version 1.22 has been released with the following features:-

  •  iopin.h - pin_make_output now specifies the initial output value, and pin_pulseIn/Out now specifies if the pulse is active high or low
  •  HMC5842 - the compass now also returns the raw magnetometer values in rawX, rawY, and rawZ. It also calculate the roll and pitch angles
  •  Added Sensors/IMU/Sparkfun/razor.h - but needs new firmware from Admin at societyofrobots.com for the Razor
  •  Added the Maths folder for 3D vectors and matrices and 2D vectors
  •  Added GaitRunner so that your robot can use a gait exported from Gait Designer without needing to be connected to the computer.


:80/iPoint/35.pageSun, 04 Jul 2010 12:22:59 +0100
:80/iPoint/35.pageitem&29Gait DesignerA new release of Gait Designer has been made with the followings changes:

  1. The value of each servo slider (shown under the slider) now has little up/down arrows to allow you to nudge the values more accurately
  2. The left panel now has a 'Groups' box for grouping servos into logical groups. Initially this will only show one group called 'All'. Each group shows the number of servos in the group and also has a tick box to say whether you wat to show or hide all the servos in the group.This makes it easier to view a subset of the servos that you want to work on. You cannot edit or delete groups but when a saved file is reloaded then any unused groups will auto-magically be removed.
  3. The'Servo' box- which shows you the details on the selected servo, now has a drop down to let you move the servo into a different group

Thanks to 'klims' for his suggestions.


:80/iPoint/35.pageTue, 22 Jun 2010 07:54:44 +0100
:80/iPoint/35.pageitem&28Version 1.21WebbotLib Version 1.21 has been released with the following features:-

  • Added Sensors/Encoder/Generic/fastquad.h for high resolution encoders
  • Added ADXL345 accelerometer (i2c)
  • Added HMC5843 compass (i2c)
  • Added Maxbotix MB7077 (works with 7067 as well) distance sonar- can be used under water
  • Fixed ATMega128 UART problem (darn those ATmel naming conventions!)
  • Changed Controller/Sony/ps2.h to have rumble motors, key pressures, and some extra helper routines
  • Changed buffer.h - added function bufferBytesUsed

Project Designer now supports the Sparkfun 9Dof Razor IMU board  - make sure you get the one with the ATMega328P processor - not the old board with the ATMega168. This means that you can now use WebbotLib to author your own firmware to be installed on this board. Note that the programming header also allows you to connect SPI devices - for example you could connect an SDcard to log all of the readings from the on-board devices.

:80/iPoint/35.pageMon, 21 Jun 2010 01:31:27 +0100
:80/iPoint/35.pageitem&27Version 1.20 WebbotLib Version 1.20 has been released with the following:

  • Fixed L298 bug where motor only turned one way
  • SPI added functions to get/set the mode, bit order, and clock
  • SPI added generic spi device for devices not directly supported
  • Added servosCenter to servos.h and an example program of how to center servos using HyperTerminal (or any other serial terminal emulator)
  • Added Text2Speech.h for speech synthesis - making WebbotLib perhaps the only library to provide text-to-speech with no additional hardware (other than an amplifier!)

Now you CAN make your robot talk !!!  See here for more info.


:80/iPoint/35.pageTue, 08 Jun 2010 01:03:02 +0100
:80/iPoint/35.pageitem&26New Release of Project DesignerA new version of Project Designer has been released (and it will auto-install the next time you run it).

This release has a File | Print option for saved projects which generates a PDF of your project. Note that you will need to have Adobe Reader installed and this is freely available from Adobe.


:80/iPoint/35.pageFri, 28 May 2010 12:53:19 +0100
:80/iPoint/35.pageitem&25Version 1.19WebbotLib Version 1.19 has been released with the following:-

  • Devantech SRF02 and SRF08 sonar
  • Devantech SD21 Servo Controller (up to 21 servos)
  • Devantech CMPS03 now also supports I2C interface
  • Devantech CMPS09 compass with pitch and roll
  • The I2C code now has some more friendly code for reading/writing registers on a slave device
  • All other code remains untouched
:80/iPoint/35.pageWed, 19 May 2010 03:44:01 +0100
:80/iPoint/35.pageitem&24Version 1.18WebbotLib Version 1.18 has been released with the following:-

  • Sony PS2 Controller - this uses an SPI connection but it is very fussy about timings! But I have tested it with a software SPI bus successfully. Hardware SPI seems to work too fast for the controller to cope with
  • Added Gait/GaitDesigner.h to allow you to write your own programs that link to the Gait Designer on your computer 
  • Added support for the ATMeg128
  • Added alpha support for the ATMega128RFA1
  • Added Mode 1 and Mode 3 to software SPI
  • Fixed a few minor bugs
:80/iPoint/35.pageWed, 12 May 2010 06:31:51 +0100
:80/iPoint/35.pageitem&21Project Designer for 1.15The Project Designer has the following new features:-

  1. The File menu has a list of the most recently used Projects
  2. The Autoroute function used to take forever for certain device types. It now has a timeout for each device
  3.  When generating the code for a new project, and you are working on Windows, there is a new option to create the default AVRStudio project file with all of the configuration set correctly. Note that since the authors of AVRStudio do NOT publish this file format then I will continue to support it while I can - but I am at their beck and call!
:80/iPoint/35.pageWed, 03 Mar 2010 04:37:50 +0100
:80/iPoint/35.pageitem&20Version 1.15b of WebbotLib:80/iPoint/35.pageSun, 21 Feb 2010 09:37:44 +0100:80/iPoint/35.pageitem&19Version 1.15a of WebbotLib:80/iPoint/35.pageSun, 21 Feb 2010 09:36:10 +0100:80/iPoint/35.pageitem&18Version 1.15 of WebbotLibWebbotLib Version 1.15

  • Added support for ATMega2561 and ATMega1280
  • Added GetWriter and GetReader  functions to various I/O areas - ie tried to standardise output and input streams
  • Removed 'one offs' like 'rprintfMarquee' in favour of above
  • Sensor 'last read' time is now set by start of read rather than by end of read to assist when regularly scheduled
  • Software UART MAKE command now uses a timer number rather than pointers like TIMER0, TIMER1 etc. Eases integration with Project Designer
  • The new Displays folder adds support for various serial LCDs as well as a generoc HD44780 parallel LCD.
  • GPS NMEA gpsNMEAprocess now returns various flags as to what has been received - see manul for info
:80/iPoint/35.pageThu, 18 Feb 2010 06:15:59 +0100
:80/iPoint/35.pageitem&17Project DesignerFirst alpha release of the WebbotLib Project Designer becomes available.

See Project Designer

:80/iPoint/35.pageMon, 08 Feb 2010 05:19:18 +0100
:80/iPoint/35.pageitem&16Version 1.14a
  • Fixes a bug in the marquee code
  • Added setServoConfig in servos.h to allow the developer to alter the servo configuration at runtime
  • ]]>
    :80/iPoint/35.pageSat, 06 Feb 2010 04:34:46 +0100
    :80/iPoint/35.pageitem&15Version 1.14WebbotLib Version 1.4 released. The powerful Project Designer is about to be released and you will need to upgrade to this version of AVRlib before you can use it. So do it now...

    • Previous versions of WebbotLib assumed that the ADC inputs were mirrored on other IO pins. This is no longer the case as certain controller, in certain package configurations, may have ADC pins that are stand alone. The biggest change to your code is that previous MAKE commands for sensors that required an ADC input used to specify the ADC pin - whereas they now specify the ADC channel (see a2d.h)
    • Removed functions a2dConvert10bitIO and a2dConvert8bitIO as ADCs no longer have to be IOPins.You need to use a2dConvert10bit and a2dConver8bit instead
    • Added 'uartSendBuffer' to send a sequence of bytes over a UART
    • Added switch.h to wrap an IOPin with some more friendly macro calls for a switch
    • Changed Marquee to introduce a brief 'flash' so that if two chars are the same then there is a brief blink between them
    • On Axon II removed the individual LED definitions for the segment display. They have been replaced with a single SEGLED called 'led_display'. So to turn on segment E then use:-

    segled_on(&led_display, SEGMENT_E); // turn on  segment E
    segled_off(&led_display,SEGMENT_E); // turn off segment E

    • Fixed ATMega32 timer0 compare problem in device.h
    • Added HMC6352 compass - but untested as of yet. If you use it then let me know.
    • Added some functions to HMC6343 to allow change of sample frequency
    • Replaced all the Sharp distance sensor header files with one file called GP2.h
    • Added Sharp GP2Y0A02YK0F, GP2Y0A700K0F and GP2Y0A710K0F distance sensors
    • Added Sharp GP2Y3A002K0F, GP2Y3A003K0F 'wide' sensors
    • Moved gps.h to Sensors/GPS/gps.h
    • Moved gpsNMEA.h to Sensors/GPS/NMEA/gpsNMEA.h
    • MAKE_GPS_NMEA has an extra parameter for the baud rate. You no longer need to initialise the UART yourself.It just happens. This was done to reduce buffer overflows at powerup.
    • Added alpha support for AVRcam - can't test it - don't have one and they aren't available! Test it and let me know - you know who you are!
    • Stop the sys files from making pins into outputs in 'configure ports'. Its "mega-bad" as it can cause temporary short circuits and, as found/fixed earlier, can really upset UARTs. WebbotLib sets pins to output mode as and when required depending upon the hardware devices you use.


    Download the latest release of WebbotLib from here.

    :80/iPoint/35.pageFri, 05 Feb 2010 03:17:35 +0100
    :80/iPoint/35.pageitem&14WebbotLib GUI toolsI have just published a 'pre-release/alpha' version of Project Designer - a very powerful new GUI tool that compliments WebbotLib.

    Project Designer comes with several 'pre-built' boards. A board is a processor of a given package, and clock frequency, mounted on a PCB along with some header pins. The user just sees an image of the board. The board can also contain some built in devices like motor controllers, LEDs, switches etc. In this way it is like an unfinished project. A seperate application is available for 'board designers' so that they can create and publish the design of their board to any user of Project Designer.

    To create a specific project you select the required board and add whatever sensors and controllers you want - simply using drag and drop.

    An 'auto-route' feature will shuffle your devices around the possible header pins to get them to fit.

    Images are shown for every device to help understand pin connections and any DIP switch settings that need to be set on the 3rd party boards/sensors.

    Oh - and it also generates all the code you need for WebbotLib to declare and initialise the devices you use. It even gives some example code as to how to read and write to all the sensors/controllers you have used.

    If you want to join the alpha testing program then see my thread at Society of Robots.or contact me direct.

    If you create your own commercial boards then you may want to have your board added to this suite. There are lots of ways to do this - contact me.


    WebbotLib - "it just does it !"

    :80/iPoint/35.pageWed, 03 Feb 2010 05:15:50 +0100
    :80/iPoint/35.pageitem&13Version 1.13WebbotLib Version 1.13 released

    • Previously the #include statements were made suitable for Unix when linking with WebbotLib. but now the #include statements have been fixed for those peoplebuilding the libraries from the source code.
    • Added Sensors/Distance/Devantech/SRF04_Sonar.h for the older style of Devantech sonars that require seperate trigger an echo I/Opins.
    • The MAKE_BLACKFIN_CAMERAmacro has been changed to allow for simpler use - check the manual
    • segled.h has been added to allow for multi-segment LED character displays. As well as the ability to display a single character to a single character display the library has been enhanced to allow for scrolling messages across one, or more, single character LED dsplays. The only supported commercial board to provide this functionality, at time of writing, is the Axon II.
    • Downloadable from here 
    :80/iPoint/35.pageMon, 28 Dec 2009 10:01:20 +0100