<< return to Pixycam.com

Can't upload firmware

Pixy arrived today and works fine, learning signatures etc. But I’m unable to upload new firmware. White light led lights ok but pixymon reports error: Cannot find Pixy DFU device.
Im using Mac OS 10.9.2


Hi Martin,

I’m sure this is a dumb question, but you were holding the button when plugging it in, correct?


Yes I was hence the White light LED

I’m having exactly the same problem. I’m running Ubuntu 13.10 (thank you so much for Linux support) and I followed the procedure but my Pixy cannot be found (please see attached screenshot). PixyMon version 0.1.48.

Other than that after brief testing all seems to be working pretty well.

I’m having the exact same problem on my Mac Pro running 10.9.2 (with all current updates). The dialog never comes up and I see the same messages in the window at the bottom of Pixymon;

Pixy programming state detected.
error: Cannot find Pixy DFU device.

with the last line in red. I held down the white button and the LED is showing a bright, constant white, then started PixyMon version 0.1.47, as instructed. I tried several USB cables and ports, but to no effect.

Has anyone with a Mac been able to update the firmware?

I’m using PixyMon version on Windows 8. Having the same problem.

I was finally able to update the firmware using a MacBook Air instead of my MacPro desktop. I have no idea why the Air works, but the MacPro doesn’t. However, in the interest of helping others, I’m happy to supply any additional information that might help diagnose what’s going on.


Tested to upload the the firmware on my laptop (Windows 7, usb 2.0), now works. Not sure why doesn’t work on my desktop (win 8, usb 3.0).

I am on a Mac Mini and have the same problem trying to upload the firmware, i.e. Pixy programming state detected. error: Cannot find Pixy DFU device. I tried the upload on a Windows 7 PC and was successful. This seem to be a problem with the Mac version of Pixymon.

Same problem here on Linux Mint (Ubuntu-derivative). PixyMon says “error: No Pixy devices have been detected”. PixyMon works perfect when not doing the firmware upgrade.

lsusb returns:

Bus 002 Device 008: ID 1fc9:000c NXP Semiconductors 
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1projects/cmucam5/wiki/Quick_Start
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x1fc9 NXP Semiconductors
  idProduct          0x000c 
  bcdDevice            1.00
  iManufacturer           1 
  iProduct                2 
  iSerial                 3 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           27
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       254 Application Specific Interface
      bInterfaceSubClass      1 Device Firmware Update
      bInterfaceProtocol      1 
      iInterface              4 
      Device Firmware Upgrade Interface Descriptor:
        bLength                             9
        bDescriptorType                    33
        bmAttributes                        9
          Will Detach
          Manifestation Intolerant
          Upload Unsupported
          Download Supported
        wDetachTimeout                  65280 milliseconds
        wTransferSize                    2048 bytes
        bcdDFUVersion                   1.00

So it seems that the Pixy is in the correct state (“Device Firmware Update”) but pixymon doesn’t seem to notice this?

It’s the call to

handle = libusb_open_device_with_vid_pid(m_context, PIXY_DFU_VID, PIXY_DFU_DID);

in ConnectEvent::getConnected() that fails (returns NULL). I don’t have any libusb sources on my system at this time, so no more details on why it fails to connect.

Starting PixyMon with LIBUSB_DEBUG=1 shows following traces even though udev rules have been installed.

libusbx: error [_get_usbfs_fd] libusbx couldn't open USB device /dev/bus/usb/002/017: Permission denied
libusbx: error [_get_usbfs_fd] libusbx requires write access to USB device nodes.

Running it as root seems to get a bit further. Also changing the udev rule for the NXP device to

SUBSYSTEM=="usb", ATTR{idVendor}=="1fc9", ATTR{idProduct}=="000c", MODE="0666", GROUP="plugdev"

and adding myself to the plugdev group solves the permission problem.

Now the following messages are shown in the PixyMon trace buffer:

Pixy programming state detected.
error: Cannot find Pixy DFU device.

This following error is returned from Dfu::Dfu() because it finds two devices and there is a check in that constructor expecting num_devs==1. Not sure what this piece of code is supposed to do. It finds the Pixy and a Broadcom device (the Bluetooth from my laptop).

dfu-util also lists those two devices:

Found Runtime: [1fc9:000c] devnum=0, cfg=1, intf=0, alt=0, name="DFU"
Found Runtime: [0a5c:219c] devnum=0, cfg=1, intf=3, alt=0, name="UNDEFINED"

If I skip this ==1 check in my debugger it selects the first device, which is the Pixy, and then I can flash the new firmware. So I’m now at 0.1.44, great :-).

The question still remain: why it finds those two devices? Shouldn’t the code have a check for the correct VID:DID? Then chances of finding two will be less.

I had the same problem on Windows 7 and pixymon_windows-0.1.49.exe fixed the issue for me.
Available in the files section.

I have the same problem, although it previously worked fine on the same computer (Win 7).

Indeed Pixymon 0.1.49 fixes the issue Kris described so well.

Matt— what problem are you having (please describe)? What version of PixyMon are you using?


I tried back in 2017, then 2018 and now 2019 and still cannot get the v3.0.14 firmware to update on my PIXY2 CMUcam5 camera.

I can load older firmware files, but not the latest ???

Hey Walt,

I think there’s some confusion here - Pixy2 is different than the original Pixy, CMUcam5. The hardware, software and firmware are different, and not compatible. For a visual guide to which version is which, check out the images here: https://pixycam.com/downloads/

Clicking on the model you have will get you to the correct Downloads page for firmware, etc. For reference, the latest version of original Pixy firmware is 2.0.19 which I suspect is correct for your Pixy version (original Pixy).

Hope this helps!



Not long ago my Windwos 10 C: drive died, so I’ve built up a new C: drive and installed PIXY2 Monitor 3.0.24 …

I also downloaded the 3.0.14 firmware but it won’t install … I tried the downloaded back in 2017 3.0.10 and it will install onto the PIXY2 CMUcam5 … I just keep getting the error with the newer firmware which was a problem in the past.

I’m a little confused because firmware version 3.0 didn’t come out until May of 2018.

Can you please clarify which Pixy version you have and what error your seeing?



I have installed PIXY2 Monitor 3.0.24 …

I’m trying to update the firmware in my PIXY2 with the freshly downloaded 3.0.14.

I have a Windows 10 Pro PC.

What error message do you see when trying to upload the firmware into you Pixy2?




error: procedure not supported

The firmware program opens a window for me to click on the firmware file to upload, then it seems to upload the firmware, then I get the error message.