PS3 camera, 180FPS video for less than $10

The ps3 eye toy has been available for unbelievably low pricing for years now ($7 USD).

For many tasks, high FPS video is very useful, and 30fps webcams simply will not due. Also critical to high frame rate cameras, it has a global shutter. It's too good to be true, because like most things, it is.

Once upon a time this camera worked with processing. Now the only way I can get it to work with processing is on a very specific old version of processing 1.5.1 shown here http://thomasdiewald.com/processing/libraries/diewald_PS3/

I'd really like to get this working on processing 3. I've searched extensively for cameras with similar capability and it doesn't exist outside the world of industry/scientific cameras starting at 100x the price.

It seems most of the hard work is already done inside of CLEyeMulticam.dll , and only the java side of things needs to be updated, in diewald_fluid.jar

The CLEye website which claims to sell an SDK with processing examples hasn't worked for years and attempts to contact them have not been returned.

Answers

  • Answer ✓

    i have one of these and i'm sure i've used it in processing without any dirvers. this is using linux (mint 13 / 18)

  • Capture.list() reports the following (video0 is the inbuilt camera)

    name=/dev/video1,size=640x480,fps=60
    name=/dev/video1,size=640x480,fps=50
    name=/dev/video1,size=640x480,fps=40
    name=/dev/video1,size=640x480,fps=30
    name=/dev/video1,size=640x480,fps=15
    name=/dev/video1,size=320x240,fps=187
    name=/dev/video1,size=320x240,fps=150
    name=/dev/video1,size=320x240,fps=137
    name=/dev/video1,size=320x240,fps=125
    name=/dev/video1,size=320x240,fps=100
    name=/dev/video1,size=320x240,fps=75
    name=/dev/video1,size=320x240,fps=60
    name=/dev/video1,size=320x240,fps=50
    name=/dev/video1,size=320x240,fps=37
    name=/dev/video1,size=320x240,fps=30
    name=/dev/video1,size=640x480,fps=60
    name=/dev/video1,size=640x480,fps=50
    name=/dev/video1,size=640x480,fps=40
    name=/dev/video1,size=640x480,fps=30
    name=/dev/video1,size=640x480,fps=15
    name=/dev/video1,size=320x240,fps=187
    name=/dev/video1,size=320x240,fps=150
    name=/dev/video1,size=320x240,fps=137
    name=/dev/video1,size=320x240,fps=125
    name=/dev/video1,size=320x240,fps=100
    name=/dev/video1,size=320x240,fps=75
    name=/dev/video1,size=320x240,fps=60
    name=/dev/video1,size=320x240,fps=50
    name=/dev/video1,size=320x240,fps=37
    name=/dev/video1,size=320x240,fps=30
    name=/dev/video1,size=640x480,fps=60
    name=/dev/video1,size=640x480,fps=50
    name=/dev/video1,size=640x480,fps=40
    name=/dev/video1,size=640x480,fps=30
    name=/dev/video1,size=640x480,fps=15
    name=/dev/video1,size=320x240,fps=187
    name=/dev/video1,size=320x240,fps=150
    name=/dev/video1,size=320x240,fps=137
    name=/dev/video1,size=320x240,fps=125
    name=/dev/video1,size=320x240,fps=100
    name=/dev/video1,size=320x240,fps=75
    name=/dev/video1,size=320x240,fps=60
    name=/dev/video1,size=320x240,fps=50
    name=/dev/video1,size=320x240,fps=37
    name=/dev/video1,size=320x240,fps=30
    name=/dev/video1,size=640x480,fps=60
    name=/dev/video1,size=640x480,fps=50
    name=/dev/video1,size=640x480,fps=40
    name=/dev/video1,size=640x480,fps=30
    name=/dev/video1,size=640x480,fps=15
    name=/dev/video1,size=320x240,fps=187
    name=/dev/video1,size=320x240,fps=150
    name=/dev/video1,size=320x240,fps=137
    name=/dev/video1,size=320x240,fps=125
    name=/dev/video1,size=320x240,fps=100
    name=/dev/video1,size=320x240,fps=75
    name=/dev/video1,size=320x240,fps=60
    name=/dev/video1,size=320x240,fps=50
    name=/dev/video1,size=320x240,fps=37
    name=/dev/video1,size=320x240,fps=30
    name=/dev/video1,size=640x480,fps=60
    name=/dev/video1,size=640x480,fps=50
    name=/dev/video1,size=640x480,fps=40
    name=/dev/video1,size=640x480,fps=30
    name=/dev/video1,size=640x480,fps=15
    name=/dev/video1,size=320x240,fps=187
    name=/dev/video1,size=320x240,fps=150
    name=/dev/video1,size=320x240,fps=137
    name=/dev/video1,size=320x240,fps=125
    name=/dev/video1,size=320x240,fps=100
    name=/dev/video1,size=320x240,fps=75
    name=/dev/video1,size=320x240,fps=60
    name=/dev/video1,size=320x240,fps=50
    name=/dev/video1,size=320x240,fps=37
    name=/dev/video1,size=320x240,fps=30
    

    which is a lot of repetition, i wonder why

    name=/dev/video1,size=320x240,fps=30 - OK
    name=/dev/video1,size=320x240,fps=37 - OK
    name=/dev/video1,size=320x240,fps=50 - OK
    name=/dev/video1,size=320x240,fps=60 - OK
    name=/dev/video1,size=320x240,fps=75 - NO
    name=/dev/video1,size=320x240,fps=100 - OK
    name=/dev/video1,size=320x240,fps=125 - NO
    name=/dev/video1,size=320x240,fps=137 - NO
    name=/dev/video1,size=320x240,fps=150 - NO
    name=/dev/video1,size=320x240,fps=187 - NO
    
    name=/dev/video1,size=640x480,fps=15 - OK
    name=/dev/video1,size=640x480,fps=30 - OK
    name=/dev/video1,size=640x480,fps=40 - OK
    name=/dev/video1,size=640x480,fps=50 - OK
    name=/dev/video1,size=640x480,fps=60 - OK
    

    i think the sdk may give you control over the leds and switching resolution on the fly. SDK also does 5 colour modes, perhaps that's why the duplication above. processing doesn't appear to let you choose between them

        if (key == '1') color_mode = COLOR_MODE.COLOR_PROCESSED;
        if (key == '2') color_mode = COLOR_MODE.MONO_PROCESSED;
        if (key == '3') color_mode = COLOR_MODE.COLOR_RAW;
        if (key == '4') color_mode = COLOR_MODE.MONO_RAW;
        if (key == '5') color_mode = COLOR_MODE.BAYER_RAW;
    

    um, a quick test shows that

    video = new Capture(this, 320, 240, "/dev/video1"); // WORKS
    

    but

    video = new Capture(this, 320, 240, "/dev/video1", 187); // FAILS    
    

    i've updated the above list to show what works and what doesn't (here at least)

  • If it's working for you with processing 3 in linux then I'll install linux just for that purpose, but for what it's worth I am attempting to get it working on windows 7 x64

  • yeah, it's just part of v4l on linux, usb webcam, nothing special.

    the forum on the CL site seems to still be active, mostly people who have lost their drivers and can't get a new one. and korean spam. the last driver update was 2012/13.

    this for windows 10 says that the drivers are pretty standard. http://www.tomshardware.co.uk/forum/id-3023460/ps3-camera-windows.html

    i also found links to sites with the windows driver for download. google 'ps3 camera windows free' for instance, watch the youtube video. the usual warnings about downloading random software form the internet apply.

    there's port of the linux version to windows, which is free and open source, doesn't say which version though.

    https://github.com/inspirit/PS3EYEDriver

    and this

    http://wiki.ipisoft.com/IPi_Recorder which is a suite of video tools that, i think, includes a usb driver (possibly the PS3EYEDriver above)

  • this thread - https://www.reddit.com/r/hoggit/comments/3u4fax/sony_playstation_eye_camera_driver_for_windows_7/ - points out that the last free driver (before it went paid-for) is widely available BUT CHECK THE SIGNATURE because infected versions exist.

  • I dug up this thread, seems like others ran into the same issue.

    https://forum.processing.org/one/topic/does-ps3eye-work-within-processing.html

    They were not able to figure it out. I have the drivers you linked, but it doesn't set up the camera to work like a normal webcam in windows, seems to require special treatment.

  • the cl eye toy (tool?) that that archive.org exe installs works with my ps3 camera and vista installation, was pretty straightforward. i don't have processing installed on my windows partition so i couldn't try that but...

  • edited March 2017

    Yes the CL tool works. I can get the video to work in their tool on win7x64 and processing 1.5, but not processing 3 or 2 or even newer versions of 1.

Sign In or Register to comment.