Open-USB-IO is an Open Source project and most material is licensed according to the latest General Public License (for details of GPL see  The beauty of Open Source is that you can take the work of others for free,  and make changes, but you have to give those changes back to the public domain.  In this way ideas steadily grow and branch.  If you can make money from your idea in a year then do that,  if not then go for fame and make your idea Open Source.  As a young engineer I had many good ideas but I kept them secret, did nothing with them,  and saw those ideas become useless or claimed by others.   It would have been much better to make the ideas Open Source and publish as I would have had the fame ( or infamy) as the creator of the ideas.  Working in this mode often brings in consulting work as you get known as an expert in the area.

Key GPL resources for Open-USB-IO are listed below.  Start with the reference manual which is quite detailed and explains how to use each resource.

Download note:  Many executable files have a *.gif extension to solve web blocking problems and you will have to remove the *.gif  extension before use.  To download  right click the item and select “Save Link” or a similar option.  Your browser may only download the link name which is about 50 bytes long.  If this happens then try placing the mouse over the link and wait until a  small window pops up.  In this window right click on the link at the top and then do a Save Link.
After you have downloaded to Windows you may find that Windows has hidden the file extension .gif.  To enable viewing the file extension select the Control Panel,  Folder Options,  select the View tab,  then untick “Hide extensions …”.  The .gif on the end of the files should become visible now,  right click to rename the file and remove the “.gif” and ensure the suffix (eg .exe) is present.  Say OK to any warning message,  the file now has its proper extension and can be used normally.

Sorry for this complexity but too many network providers have put blocks on downloading any executable files.  This method has proved the best way to avoid these problems.

August 2010 Update

  • Corrected a small error on how to wire up an on board regulator.  Made it clear that any ATMEGA32 register can be accessed by name using the ousb command line program.  Manual now version 1.085: open-usb-io_reference_1v085b.

June 2010 Update

  • Some users reported problems with Windows 7, especially 64 bit Windows 7.  We found that Windows 7 has timing issues with USB devices,  it is much less robust than Windows XP or Linux.  You can find the updated version 4 firmware below.  Co-USB also had problems,  there is a special Windows 7 version again to solve the timing issues.
  • Source code and hex file for ATMEGA32 USB interface firmware is here,  rename as *.zip and unpack.
    Assuming you have the new boot loader plug in your board with just the USB cable.  Open a terminal in the directory and type “make usbprog” to download the new firmware into the board using the boot loader.
    If you do not have a board with the bootloader then  you must also add the STK-200 cable,  and the command should be “make prog”.
  • Source code and hex file for Co-USB-Windows 97 here ,  rename *.zip and unpack.  The Linux live-DVD is probably a much better development environment and Co-USB should be used from there.
  • Manual has slight upgrades, see August update for the latest version.

April 2010 Major Upgrade

This version adds a USB bootloader,  symbolic debugger,  and Co-USB where your code can be added to the USB interface code.  These resources and much more are on the live-DVD available from

  • Reference manual ( a must read): open-usb-io_reference_1v08
  • Command line tool for Linux ousb, rename to just ousb.
  • If the Linux command line tool above fails because of a missing USB library then use the statically linked version here, also rename to simply ousb.
  • Command line tool for Windows here : rename as ousb.exe
  • Schematic circuit : open-usb-io_schematic.
  • Source code for PC command line tool is here, rename *.zip and unpack.
  • Source code and hex file for ATMEGA32 USB interface firmware here,  rename as *.zip and unpack.
    Some Windows 7 users report this firmware does not work,  but the old software does.  We are checking on this issue.
  • Source code and hex file for Co-USB here,  rename *.zip and unpack.
  • Source for bootloader and hex file here,  rename as *.zip and unpack.
  • Mac package,  see community resources page here.

Original Version

Just Using Open-USB-IO on your PC

If you have obtained an Open-USB-IO board then all you need is the reference manual,  the appropriate command line programs, and possibly the circuit schematic-

  • Reference manual version 1.06:  open-usb-io_reference_1v061
  • Linux command line tool version 1.2 which ensures PWM 2 and 3 always work.
    Normal version: not_static_ousb-zip.gif
    With libraries compiled in: static_ousb-zip.gif
  • Windows command line tool version 1.2 which ensures PWM 2 and 3 always work  ousb-zip.gif.
  • Linux command line tool version 1.1  ousbtargz,  or larger but with libraries included ousb_statictargz.
  • Windows command line tool  version 1.1  ousbexezip.
  • Schematic circuit : ousb_schematics

Writing your own ATMEGA32 Programs

The ATMEGA32 microprocessor is quite powerful with a  lot of code space.  If you wish to program this microprocessor or reload the USB firmware then you will need more resources.  These are explained in the reference manual.

It’s probably easier to purchase a live-DVD which contains all the development tools  installed and working,  a lot of example programs, documentation, and other resources.  Some tools are quite tricky to get going so this option could save you a  lot of time.  See to obtain the live-DVD,  and the Open-USB-IO board already assembled.

Useful resources-

  • Kit to ease the installation of the avr-gcc tool-chain on Linux linux_avr-gcc-kittargz
  • The Open-USB-IO firmware to program on the ATMEGA32 which matches the command line tool  version 1.1  open_usb_io_firmwarehex
  • STK-200 programming cable circuit stk-200_programming_cable.
  • Kit to enable Windows to access IO ports windows_io_accesszip (only works for Windows XP not Vista)

Modifying Open-USB-IO Code

If you wish to modify the Open-USB-IO command line or firmware then you may also need the following resources-

  • Source code for the command line program (suits any operating system) open-usb-io_command_linezip.
  • Source code for ATMEGA32 USB client open-usb-io_firmwarezip ( command line and firmware must match).

The live-DVD of development tools from has all this software and development environments set up.  It may prove a quicker way to develop your own code.

Known Issues

  • 2010/05/15 : some versions of Windows 7 will not recognize the new firmware.  This appears to be a Windows 7 issue as WinXP and Linux both recognize the new firmware with no problems.
    >>> This is solved in the June 2010 update and all live-DVDs made from 17/6/2010 onwards.
%d bloggers like this: