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.

I think AVR is limited to a clock signal of fclk/2 so on Arduino that'd be 8MHz.  The mbed I used is running 96MHz so 25MHz is no big deal. Easy enough to just use a separate 25mhz crystal/oscillator/clock thingy.

That seems logical. Thanks.

What about the voltage ? Should I use the 5 V output and additional components or the 3.3 V output ?


I have tried to solder wires on the camera's pins but it's really hard. After having managed to solder all of them I pulled on one wire and the complete pin went out from the camera. So I would recommand to attach the camera directly to a PCB as in the article.

I had no choice but to cut the black box containing the camera. You can see the pictures in the official Arduino forum. The sensor has eight copper lines with a 0.875mm pitch (SMD standard ?). So it appears even harder to solder...

I figured out that the clock oscillator I bought is a bit different than the one shown on the diagram. Mine looks like this:As you can see it has only two pins. Is is also written "24.000 QIC" over it. Can I use this component ? Can I power it with 5 V ? Do I connect the other connection to the sensor's CLK input ?

This is a crystal oscillator not a clock oscillator. But you can build a clock oscillator from it with a circuit like this (X1 is the crystal oscillator).

Kaku has been used a similar circuit with a crystal oscillator:


I decided to buy a regular quartz oscillator because components from the 74AC family are not so easy to find and are reported to create some noise if they are not properly used. Also I am also not sure the 74AC04 could be replaced by a 74HC04 because ICs of the 74AC family have a faster edge rate.

I've used a 74HC04 with a crystal to create a clock signal, but it was a different project so can't speak to the rise/fall times.


I've managed to dismantle another Wiimote properly and have soldered the sensor to a piece of perfboard.

This time, instead of having nothing, I have data flowing on my serial monitor but there are only zeroes. I have moved an IR led in front of the sensor but it doesn't change anything.

I have no oscilloscope, so I can't check precisely what's coming from the sensor. All I could achieve was a test to know if there was some voltage coming out from pins 5 to 8 and there is indeed.

I have checked the circuit and I think everything is connected correctly.

What and how can I test to ensure it's not the sensor which is broken again ? :-(

zero data flows means :

1. the clock is not sufficient to drive the camera ( in my case, using 24mhz crystal, kako schematic, 74ls14, just got 3 MHz), fixed by using 74HC04 and got around 22 Mhz with 15pF capacitor, 18Mhz using 22pF

2. the reset is not correctly connected ( it's happen too. make sure you use the right 22k or 30k for reset and it got 3.3v ), fixed by make another pcb, but stilll cannot detected by wiiblobtrack, but read the position of IR correct

3. if SDA and SCL line pull up by 3.3v, use 2k2, but if 5v, use 4k7 ( yup... it happen that the data is still logic 0 because the pull-up is not sufficient )

this is my case so far about zero data flow.

to test the sensor, is put back the sensor to wiimote again... i did it about 7 times.. just solder all 8 pins, not the side pin, and test it again. hope it works

o yeah. i test it using PC, connect using bluetooth, wii whiteboard v 0.3 from johnny lee


1. I have used the updated schematics with a 24 MHz clock oscillator so I don't think there's an issue here. I would need an oscilloscope to check that. Might be my next purchase...

2. I think the reset is correctly connected.

3. I am using two pull-up resistors from 3.3 V, so it's 2k2 indeed.

I don't want to resolder the sensor to the Wiimote, it's a bit too hard to unsolder and resolder, I fear to destroy it.

I was first using the parts indicated in the schematics to get the 3.3 V (it was 3.36 actually) but to simplify I have modified the circuit and now I take it from the Arduino. Actually it's 3.28 V (the Arduino takes its power from the USB connection). Could it be an issue ?