Let's Make Robots!

Wii IR camera as standalone sensor

Using the Wii Remote IR camera directly with an Arduino
Wii-IR-Camera-schem.pdf11.63 KB
Wii-IR-Camera-board.pdf11.3 KB
wii_remote_ir_sensor_sample.pde2.5 KB

The Wii Remote became a very intersting tool for hacking and other uses where it not has been mentioned for. After the first hacks appears in the internet a lot of people are doing great stuff with it.

This tip&walkthrough is about  using the IR camera from the Wii Remote as a standalone sensor. It is based on hack of a japanese guy named kako. There also exists a Make article

This sensor is great for tracking infrared sources. It can track upto 4 sources independently and give out the coordinates and the strength ob each tracked object. The IR camera has an I2C interface which can be easy accessed by a microcontroller. Here an Arduino board has been used. 

Wii Remote disassembling:

To get the IR camera out of the Wii Remote, the Wiimote must be disassembled. A Tri-Wing screw driver has been used for this task. The IR camera is on the front of the board. To get the IR sensor out a hot air gun is been usefull.  

This walkthrough only works for an original Wii Remote. There exists some Wii Remote clones, which are cheaper than the original one but they have different sensors with unknown pinout, so be warned!


The schematic slightly differs from Kako's aproach, it has been taken form the CC2 ATM18 project. A quartz oscillator has been used. A frequency bettween 20..25MHz will work. Unfortunately the sensr is a 3.3V device. Some level conversion must be done before connecting it to a 5V Arduino board. The sensor gets it power source from 2 diodes in series with a 5V from the arduino board which give roughly 3.6V. 2 pullup resistors on the I2C pins limits the voltage down to 3.6.

Schematic and a board layout is atached to this article.



  • Wii Remote IR Camera (from a original Wii Remote, not a clone!!)
  • 24Mhz quartz oscillator (or 25MHz, but not a resonator!)
  • 2x diode 1N4148 or equivalent
  • 2x elecrolytic capacitor 10uF
  • 1x ceramic capacitor 100nF
  • 2x resistor 2.2kOhm
  • 1x resistor 22kOhm
  • perf board 60 x 25 mm
  • pin bar 1x4
  • pin bar 2x4
  • bar jack 2x4



The Arduino control software is also based on Kako's sources. It simply initialise the IR camera sensor and sends the readed blob information to a PC: The sourcecode has been slightly modified to work with the PC software.

The PC software is also taken from the CC2 ATM18 project and can be downloaded here.

An Arduino sketch is attached to this article. At the moment I am working on a processing sketch for graphical represantation of the Wii IR Camera output.



To be continued...






Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Agree with botthoughts about using the 74HC04 or 74AC04. The CD4000 series has a maximum toggle speed of 5MHz, see Wikipedia.  Don't think it will work.

An alternative chip would be a hex schmitt-trigger inverter 74xx14. It is pin compatible to the 74xx04. A 74xx00 should be ok too, but is not pin compatible and you need to tie both input pins of the NAND gates together.

Do you have a chance to lean an oscilloscope. Than you can measure the clock and every signal.

What I have learned when building electronics. If you wanna build an oscillator, it will not oscillate. If you wanna build an amplifier, it will oscillate.

I think you need a CMOS inverter. Either a 74HC04 or (apparently) 74AC04. I think the clock is the biggest problem right now.

Try the CD4009. It can't hurt to try. Maybe it will work.

If not, can you order from Newark, Digikey, Mouser, Jameco, Farnell, -- or even ebay (from HK, Taiwan, China, etc)?  Check octopart.com for additional suppliers; search for 74AC04 and 74HC04.

Finally!! found the 74HC04 and i got the respond! its full of 1023 data flow...

i have to reset my atmega first to see the data... the next cycle will be full of 1023 data... like this

1023, 1023, 1023, 1023, 1023, 1023

1023, 1023, 1023, 1023, 1023, 1023 


386, 452, 1023, 1023, 1023, 1023

1023, 1023, 1023, 1023, 1023, 1023

1023, 1023, 1023, 1023, 1023, 1023

..... < repeated until reset >


560, 301, 1023, 1023, 1023, 1023

.... and so on..

cannot connect to wiiblobtrack either..

Question : why must i reset for got the data? or my driver is the problem?

anyway, thx guys for help until now.

is it necessary to use Atmel ATmega328?

I'm just using ATmega168.

From what I know, the ONLY differences between the Atmega 328 and 168 are related to memory:

- the size of the flash program memory (32KB vs 16)

- the size of the EEPROM (1KB vs 512B)

- the size of the SRAM (2KB vs 1)


Hope this helps,



No it is the same chip for the most part.

How do I know if the camera is fried?

Hard to say. I would double check the cabling. If you don't get a response from the sensor, it should be dead. Do you use a quartz oscillator? A normal crystal will not work.

one more question. is it possible to just use the 5v and 3.3V simultaneously of Arduino directly so i will not make anymore circuit for the conversation of voltages from 5v to 3.3V

and can i just buy your detach sensor. i dont want to buy a new one and detach it on my own again. i urgently need it for my project T___T