This is my page about USB-IR-BOY. My original works are PCBs and schematics in Eagle for USB-IR-BOY and PROMMER.
You can find it here:

The original USBIRBOY page is locatede on address

USB-IR-Boy Documentation

Contacting authors

In case of a problems or bugs you might find, use apropriate mailinglist.
Note: There is no m$ windows support and will not be (atleast by us) so dont bother asking.

Making the board

Refer to electronic schematics and create your board either with real PCB layout or design your board using so called "test" board.
Test boards are ready made with even grid type drilling of holes and copper stripes on the copper side. Example design for test board can be found from the pictures section.

Building MCU flash image

If you do not whant to build the MCU code your self,
you can find ready build image from the distribution tarball from "mcubin" folder .

You need to have SDCC installed in order to complete this step.

  1. cd /path/to/my/usbirboy-0.x/mcu/
  2. ./configure
  3. make

Programming the board MCU

In case you do not have access to real prommer hardware that supports the MCU, you can create a small prommer to program your board. You will naturally also need PC with RS232 port to use the prommer.
We use Spgmr08 as the prommer software.

Quick promming howto:

  1. Start promming software :
    $ ./spgmr -P /dev/ttySn
    Where n is 0 for COM1 and 1 for COM2 etc.

  2. Select CPU type:
     cpu jb8

  3. Power on the prommer

  4. Clear secure codes:
     scodes try blank

  5. Erase device:

  6. Power off the prommer

  7. Power on the pormmer

  8. Clear secure codes:
     scodes try blank
    (NOTE: for new, never programmed chip you need to repeat steps 4-8 two times)
  1. Program your hex image:
     program from /path/to/my/usbirboy.s19

And you are all set.

Kernel module

Kernel module is currently only for 2.6.x kernels.
Note that if usbirboy is the only device you use in LIRC, you do not need to compile the LIRC devices. usbirboy module is stand-a-lone and does not need any other driver to be availabe.
(LIRC was included in some of the earliest 2.6 kernels but it seems to be removed in current kernel three)

Quick kernel module install howto:

  1. Make sure you have USB enabled in the kernel

  2. Check that Makefile refers to right installation path
    (Default is "/lib/modules/`uname -r`/input/usb/" )

  3. Make the module
    $ make

  4. Install the module (as root)
    $ make install

  5. Load module (as root)
    $ modprobe usbirboy
    (to enable driver debugging, use "modprobe usbirboy debug=1")

  6. Naturally you can then add loading of the driver to your start up script
    (variates between dirstributions)

Give it a try

After pluggin in, you sould be able to see the product using command:
cat /proc/bus/usb/devices

Output sould include something like:

T:  Bus=03 Lev=01 Prnt=01 Port=03 Cnt=02 Dev#=  3 Spd=1.5 MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=fffe ProdID=0000 Rev= 0.02
S:  Manufacturer=I Made it!
S:  Product=IR Boy
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=ff Driver=usbirboy
E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=1ms
E:  Ad=02(O) Atr=03(Int.) MxPS=   8 Ivl=1ms

Device node for the module

Usbirboy kernel module uses devfs to determine device node.
If your system supports devfs , you can skip this step.
If for some reason you do not have devfs installed, you need to create the device node by hand:

mknod /dev/usbirboy c 180 240

Get it work with LIRC

Refer to LIRC documentation about installing, configuring and using LIRC in your applictions.

To get LIRC daemon to use usbirboy kernel module, you need to start the daemon using atleast argument:

-d /dev/usbirboy

Note: Starting the daemon and setting the arguments variates between distributions

For Gentoo:

Edit /etc/conf.d/lircd to have:
LIRCD_OPTS="-d /dev/usbirboy"

 And you are set.

Feel free to send success stories =D

Developing kernel module

Kernel module was created using usbskeleton from linux kernel USB core.
There is not much special in this section.
Kernel module is only for 2.6 kernels at the moment. Feel free to submit patch to make it 2.4 compatible.

Current kernel modules sources can be seen in here or grap them from project cvs

Developing MCU code

MCU code was orginaly developed using Metrowerks CodeWarrior due we tough there was no linux compiler for this particular MCU.
This was not true and current MCU code is compiled using SDCC (huge thanks to SDCC developers for this).
Current MCU sources can be seen in here or grap them from project cvs

Last modified date: Thu 01.01.1970 01:00:00