Note on comments.

About six months ago, we were hit with a serious rash of spam and had over 20,000 comments posted in the span of about two weeks. Unfortunately, at that time, we had no spam moderation tools installed in our blogging platform. The comment spam overwhelmed our ability to deal with real comments.

Today, we deleted 37,000 comments that were pending moderation. we are quite certain that ten or eleven of them were legitimate, and we apologize to anyone caught in the fray.

Posted in Uncategorized | Leave a comment

Casio EX-FH100 and EX-F1 Shutter Release/Video/USB Pinout

I love the Casio EX-FH100. I hate proprietary bullshit. It’s tremendously aggravating when a manufacturer arbitrarily makes up a new connector — especially when we have perfectly good standard connectors already. Proprietary bullshit stokes my rebel spirit, makes me fighty, makes me hack.

I know there’s plenty of interest in this information. I know because I, for one, was interested, and went looking. I found that people had discovered a few interesting things — among them that the remote for the F1 also works with the FH100. I also went asking for help from people close to the problem — and got zero response, which also aggravates the hell out of me. But I have a somewhat exaggerated ability to transmogrify aggravation into positive action. So action, it is. To be clear- this is no great hack. Rather, it is the inverse of a labor of love.

Gather your tools.

Make a micro-probe from a single strand of wire.

Get your fighting knife and cut in.

Check the silkscreen. Pinout:Half_Shut, Shutter, and GND. But we already knew that. How do they correspond to the pins on the connector?

Probe it. Continuity between pins in the connector and traces on the circuit board, that’s what we’re lookin’ for.

The shutter release cable:

The video cable:

The USB cable:

It is interesting that there are several pins which are not used in any of these three functions. I’d be surprised if they didn’t put the camera into some kind of service mode or something. Also, given that the pins are populated on the video cable, it seems possible to create a shutter release using that cable if you don’t have one, even though you’d probably have to cut all the way down to the connector to access those pins.

There are a bunch of higher-resolution images, including images of the EX-F1 and EX-FH100 connector here.

That’s all for now. Cross-posted this since it is camera related.

Posted in Photography | 2 Comments

Kinect Hacking 105: Full Resolution, Public Domain Images of the Speckle Pattern.

On the OpenKinect Google Group, Zsolt Ero asked the following:

Zsolt Ero Nov 18 02:28PM
Can someone actually count the x and y resolution of the emitted image? If
someone could take a really high resolution IR photograph, it would be easy
to count the dots in x and y resolution.


Here are some 5Mpix images of the dot pattern [1 2 3 4 5 6]. I make no claim to copyright on these images, anyone can use them as they see fit. They should be good enough to count the dots using standard computer vision techniques… or do other analysis. Tonight, when I get home, I’ll see about doing the same thing in the dark, which should lead to slightly better images.

Posted in Uncategorized | 8 Comments

Kinect Hacking 104: Is the Kinect IR Projector Modulated or Synced?

Some people have been wondering if the IR projector is somehow synced to the camera that does 3D estimation.

Short answer: No.

Long answer
The easiest way to visualize a modulated signal is to use an oscilloscope. I got out my trusty Hameg and hooked up a photodiode to it. This photodiode has a peak response at 850nm, plenty close to the IR coming out of the projector on the Kinect.

I connected the photodiode to my ‘scope probe.

As a sanity check, hold it under a CFL bulb. You can clearly see the bulb oscillating on the ‘scope.

Holding the same photodiode in front of the Kinect IR projector gets…. flatline. As far as I could observe, the projector is never modulated — during capture, or when capture is not running but the Kinect is on.

Posted in ComputationalPhotography | 3 Comments

Kinect Hacking 103: Looking at Kinect IR Patterns.

So, I’m in the middle of reading every paper and patent related to Kinect, but in the meantime, I want to do something fun. Let’s look at the Kinect projector output.

The Kinect projector uses speckle to create this dot pattern. I will make an entire post about speckle, but in this case the IR laser is shining through a micro-patterned plastic lens. The resulting speckle pattern is “in focus” over a very large distance — tens of feet. For fun, I decided to place a book in the beam and look at just how it changed the pattern:

(large versions: frame 1; frame 2).

Here is the difference between those frames; the shift in the dots is immediately apparent.

Well, that was semi-informative. Interestingly, all the patents and papers related to the Kinect talk about creating the speckle dot pattern using a plain diffuser. While I’m going to demonstrate that in another post, this is NOT a random diffuser. In fact, the Kinect pattern repeats itself:

Here’s an animation of the different repeating elements laid on top of each other:

It’s not yet clear to me, however, if the repetition is actually being used by the Kinect, or if it is an artifact of micro-lithography/the diffuser printing process.

Posted in ComputationalPhotography | 5 Comments

Kinect Hacking 102: Foot-Pedal Operated Camera.

While hacking on the Kinect sensor, I became frustrated with taking pictures for tutorials. Most of the things I want to take pictures of involve me using my hands, which means that my hands are not free to take pictures. I had the idea that I needed a foot-operated camera. It’s not the first camera foot pedal to be put online, but it’s simpler than most others, and it’s mine. Video:

Gather your stuff in one place:

  • An SDM/CHDK capable camera.
  • A USB extension cord or socket.
  • A tattoo machine pedal from eBay.
  • A 3AAA holder.
  • 3 AAA batteries.
  • A soldering iron.
  • A screwdriver.
  • A wire stripper.
  • Heat shrink tubing or tape.
  • Remove the screws that hold the top of the pedal.

    Inside, you’ll see a switch and a spring. See them.

    Unsolder the top wire from the switch. This will become our ground wire.

    Put heat shrink tubing on one side. Solder it to the black wire from the battery pack.

    Apply heat. Your torch may be blurry; that’s OK.

    Solder the red wire to the top terminal of the switch.

    Apply foil tape or some other tape to the bottom of the battery pack.

    Stick it in place.

    Screw it back together. You know you want to.

    The cable that comes with this pedal is actually two cables with weird connectors in the middle. I cut the connectors off of the cable and soldered the two sections together to make an even longer cable. I also applied heat shrink tubing. Then I torched it to shrink it.

    Locate your USB socket. Of course, you could solder a mini-USB cable right on the end, but that’s not as nice as having a socket and being able to use different USB cables.

    Cut the end off. Strip the red and black wires. Red is the V+, black is GND.

    Rather than trying to remember which wire is which, I just step on the pedal and check the polarity with a multimeter. It’s positive, so the red lead is touching the positive wire.

    Solder the positive wire to the red wire of the cable coming from the pedal. Black wire to ground. Heatshrink and heat.

    Complete unit. Plug it into your SDM/CHDK enabled camera.

    Make awesome tutorials and share them with the world. I will be using this footpedal system to activate my IR camera.

    Posted in Photography | 3 Comments

    Kinect Hacking 101: Hack a Powershot A540 for Infrared Sensitivity.

    Microsoft’s new Kinect sensor is garnering a lot of attention from the hacking community, but the technical specifics of how it works still aren’t clear. I am working to understand the technology at a fundamental level – my interest is in the optical side of Kinect. My ultimate goal is to make the sensor nearsighted, so that the depth resolution can be used to scan small objects. The first step in understanding a technology is to look at it — that’s why teardowns like this one at iFixit are so important.

    Unfortunately for us humans the Kinect projector is infrared (or near-infrared) — probably somewhere between 900 and 1020nm. My guess is that it’s around 904nm, because it’s cheap to produce those lasers, but that’s just a guess; I haven’t measured anything yet. That means that by design, we can’t see the projection directly with our eyes. But we can see it with a camera. Almost all CMOS sensors in digital cameras ARE sensitive to infrared. In fact, they are so sensitive that there is a filter placed between the lens and the sensor to prevent IR from messing up your pictures. It’s called the IR cutoff filter.

    The IR cutoff filter is easily identifiable. It’s a bluish piece of glass. It’s blue because the glass absorbs wavelengths that are just longer than red. This is an IR cutoff filter from an old video camera, you can clearly see how the filter just sits on top of the sensor:

    Here’s the IR cutoff filter in my Sony NEX-5:

    These filters are so effective in reflecting and/or absorbing IR that the reflected IR has been used to detect cameras in dark theaters! Yet another effective anti-piracy strategy… I see it’s been steadily declining since that was published in 2004.

    Anyway, we need an IR sensitive camera to see what the hell is going on. I’d rather not use a cheap IR security cam — the resolution is just too low. And I’m not going to modify my NEX-5 for infrared (yet – but see Pete Ganzel’s excellent work on that!). So I’ll have to compromise and pick what is probably the most difficult option: modifying a compact Powershot camera. It’s difficult, because the filter in a compact camera is INSIDE a closed lens mechanism, and the camera was never designed to be disassembled. This tutorial will be a little incomplete, but should be enough to get any motivated person done with the same project. As all hackers know, it only takes one person to get the work done and share the results.

    Start with a clean workspace. Like this one.

    Disassemble the camera screw by screw. Don’t miss the hidden one inside the battery compartment.

    Carefully pull the body apart:

    The back will come off first. It may be blurry. Don’t let that bother you:

    Next, the front:

    Remove the display by removing the screw at the top left and unclipping these metal clips:

    Next, carefully unclip the FFC (Flat Flexible Cables) from their mounts. Some will be pull-out, and some will have a brown plastic clip that must be flipped up to release the cable. The display will come free, but it will be embarrassed and hide from the camera.

    Remove the keypad assembly, and unscrew all screws holding in the mainboard. Unfortunately, for the Powershot A540, I also had to unsolder this red and black wire which supply power to the flash. Since I hate the flash, and the camera is not dependent on it, I simply removed it for good. An IR cam has little use for a flash. Good riddance.

    Under the mainboard, you can see the back of the sensor. There is a bit of hot glue on a metal plate which is supported by three screws. This is the sensor assembly; it is our target. Now, before I go much further, I need to say that the camera will be difficult to return to normal operation. The IR filter must be destroyed to get it out. This forever changes the focal characteristics of the camera unless it is replaced with flat glass (and I’m not doing that). So adjust your expectations of how perfectly the camera will focus from here on out, and all will be well.
    Remove the mainboard.

    Here is a better shot of the sensor assembly. The three screws are covered in hot glue. That is because next to each screw, there is a small spring which pushes up on the sensor assembly. In other words, it’s a little 3-way platform that the sensor is adjusted on. The exact position is fixed because it was calibrated at the factory for perfect focus. We are going to destroy that by removing all three screws very slowly. Slowly, because the three springs will pop out if we move too quickly.

    Remove the three screws. Lift the sensor assembly free. Springs are visible.

    Well, there it is. The IR cut filter, held in by two dabs of hot glue. Try to lift it with a small screwdriver or hobby knife. It will most likely break because it is very thin. Remove the little pieces. Admire their lovely blue hue.

    Now comes the really hard part — you have to put the camera back together. I did so without the flash assembly in place, and I left a few screws out. My Dad taught me how to take things apart, and how to re-assemble them. He always called these “extra” screws “shipping screws”. Here are the shipping screws left out of this camera:

    Alright! I’ve completed the very first tool in my Kinect hacking suite, a camera to look at the Kinect’s pattern. But the question is: Was all this worth it? Does this really tell us anything? See for yourself:

    Before the infrared modification:

    After the infrared modification:

    Alright, looking good! Let’s make a movie:

    This is kickass! Here’s what the sensor output looks like up close — this board is about .5M away from the camera (click for full resolution, slightly misfocused – this image is public domain – I make no claim to copy rights):

    It’s interesting in a few different ways. One can easily see that the Kinect IR speckle-field is a 3×3 matrix of random dots. One can also see that they are differentiated by intensity and have a centered registration dot. So it is not purely random speckle.

    IR cameras are good for more than Kinect hacking. Here are a few outdoor shots showing some IR effects.

    Stay tuned as I build up a proper toolset for optical analysis and decipher just how these guys are using speckle to estimate depth.

    Posted in ComputationalPhotography, Photography | 16 Comments

    Fresh Array Output.

    This is what happens when you blend 64 images instead of 12: a much better looking composite.

    Sorry for the silence — things will be picking up shortly.

    Posted in ComputationalPhotography, LLFC | 2 Comments

    Gifts For The New Year.

    Matti has a new version of LFManip up. This one doesn’t rely so heavily on the images being evenly spaced — it uses the SURF library from OpenCV to calculate the distance between photos.

    Later, we’ll extend it to tougher cases and compute proper alignments, but for now, this version works pretty well.

    Posted in ComputationalPhotography | Leave a comment

    Wishlist for Photography: Ramesh Raskar.

    Ramesh Raskar presents his “Wishlist for Photography” at 6sight. Hard to imagine a better way to end this year that to spend an hour dreaming about the future of photographic capture.

    Posted in ComputationalPhotography | 3 Comments