<< return to Pixycam.com

USB protocol?

It would be a great help to developers if you would post the USB protocol. All the information we have, other than that obtained by digging through source code, is that the USB protocol is “different” from the serial protocol.
Thanks, Jim Remington

Hi Jim,

Yes, the USB protocol is MUCH different than serial. We’re using a remote procedure call library written by Rich, called Chirp. The source code for the Pixymon side is “here”:https://github.com/charmedlabs/pixy/blob/d933e4d172cd9f2c4a9a34c74ef8c33756e3504f/host/pixymon/chirpmon.cpp. We do this so that Pixymon can be very flexible and communicate directly with procedures on the device. This way when we release a firmware update for Pixy, we don’t need to release a corresponding update for Pixymon.

You can try to use Chirp in your own code, although it may be difficult. Try looking through the Pixymon code to see how its used and maybe you can learn from there. We’re working on creating a library for desktop users so you don’t have to deal with this. Hopefully it’ll be out once things die down from the launch.

Let me know if you have any other questions. Thanks!

Scott

Thanks. It would be much, much more helpful if you could just post a list of the possible USB packets and their structure. Surely you defined all that somewhere, very early in the project!

Hi Jim,

I hate to say, but its really not that easy. The protocol is pretty complicated since it has to be flexible. I’d highly suggest using the chirp code “here”:https://github.com/charmedlabs/pixy/blob/master/common/chirp.cpp and “here”:https://github.com/charmedlabs/pixy/blob/master/host/pixymon/chirpmon.cpp from the host side.

Scott