Pixy for LEGO Mindstorms

I wanted to share some exciting news.  We sent out a survey a while back, and we received an incredibly enthusiastic response for adding LEGO Mindstorms support for Pixy.  So, we’ve been working hard since then, and we’re happy to announce that it’s ready!

We have a new version of Pixy that works with LEGO Mindstorms EV3 and NXT!

It’s available now at Robotshop and Amazon.com.

Thanks so much for your support! Check out the video and product details below.


Robot vision made easy

Pixy is a fast vision sensor for DIY robotics and similar applications. You can teach Pixy an object just by pressing a button. Use Pixy for lots of different applications.  It’s capable of tracking hundreds of objects simultaneously and only provides the data you are interested in.

Connect directly to LEGO Mindstorms EV3 and NXT

Pixy LEGO uses custom firmware that speaks the LEGO sensor protocol.  A special cable is provided that plugs directly into your LEGO brick.  You’ll be up and running fast!

Seamlessly integrates into the LEGO Mindstorms EV3 Environment

Pixy becomes part of the LEGO visual programming environment.  We provide software blocks for Pixy that make writing LEGO programs as easy as drag and drop!

Open Source Hardware logo
Want to dig deeper? Pixy is entirely open-source (hardware, firmware and software). We offer a helpful wiki, and you can always ask a question on our forums.

Available through Robotshop and Amazon.com

large-robotshop-logo front3-LEGO

Pixy CMUcam5 is a collaboration between Charmed Labs and Carnegie Mellon University.
LEGO Mindstorms EV3 and NXT are trademarks of the LEGO Group.  Neither Charmed Labs nor Carnegie Mellon University is associated with the LEGO Group.  

New firmware and software release for Pixy!

Hi Everybody,

It’s been awhile, but we have a major new firmware and software release for Pixy (Version 2.0). Here’s what’s in it:

  • Improved detection accuracy
  • Simplified and effective color signature adjustments
  • Improved button-teach method
  • Improved implementation of color codes
  • New features added to the serial interfaces
  • Saving and loading of onboard Pixy parameters

You can download here (new firmware included):

Here’s a video with the highlights of this release:

OK, that’s the big news — some smaller news — we have a Python API for our Linux, Raspberry Pi and BeagleBone Black users. And we’ve added lots of new distributors including distributors in Canada, Australia, China, Japan, Korea, Singapore, Italy, and two in Germany. (If you know of an online retailer that you think would be a good fit for Pixy, please send us a note!)

But back to the new release…

Way back in July we sent out a survey asking you what you what you wanted us to work on. And we got a significant percentage of you expressing a desire for improved detection accuracy, so that’s just what we did — we paused what we were working on and refocused our efforts like little Pixys tracking lasers, and we rewrote large sections of Pixy’ s firmware with the goal of improving detection accuracy. It took us a long time, but we’re happy with the results.

Improved detection accuracy — a weakness of previous firmware versions was false positives, where Pixy detected things that you didn’t intend. Pixy’s new firmware is more robust, using a more accurate color filtering algorithm. (The new color filtering algorithm is more computationally expensive too, but we spent lots of time optimizing, and it runs at 50 frames per second like before — yay!)

Simplified and effective color signature adjustments — another problem with previous firmware versions was the fact that it was somewhat difficult to “tweak” things if Pixy didn’t reliably detect the object you taught it. There was minimum saturation, hue range and a couple other parameters that you could adjust, but it was unintuitive, and you always needed to re-teach after tweaking things. The new firmware uses a simple slider for each color signature — slide it to the left and your color signature will be less inclusive, slide it to the right and your color signature will be more inclusive — everything is adjusted on-the-fly. It’s super easy… and kinda fun to be honest, but we’re sorta weird in that way.

Improved button-teach method — you’ve always been able to teach Pixy an object by pressing the button and holding your object in front of Pixy. This feature had room for improvement though. Sometimes Pixy would complain that the object’s hue wasn’t saturated enough. Sometimes it would learn your object, but detection accuracy would be an issue. The new firmware can learn objects with a huge range of color saturation levels. And when it learns an object, the detection accuracy is greatly improved.

Improved implementation of color codes — you may have noticed that our color code implementation never made it out of beta status. That’s because we simply weren’t happy with it. In this firmware version color codes are much improved — more accurate and easier to use.

New features added to the serial interfaces — many of you wanted to be able to control Pixy’s camera brightness/exposure as well as Pixy’s RGB LED from an Arduino. These controls have been added and are in the Arduino API. And we’ve added pan/tilt servo control to the UART and I2C interfaces in addition to the camera brightness and LED controls. We’ve also added “SPI with slave select” as an interface option.

Saving and loading of onboard Pixy parameters — you can save Pixy’s parameters, including color signatures, on your computer and restore them to your Pixy or even copy them to another Pixy. This was in the previous beta release, but it’s also been improved.

More developments coming!

Many of you have asked us what’s the status of the GCC-compatible version of the firmware (what we’re calling the “Firmware SDK”). It’s next on our list. Much of the work is already done — so we’re hoping it will be released soon. And we’re going to release a face detection algorithm after that. These projects have been piled up behind this release and they’ve been running far behind schedule, so we’ll be glad to move onto these next tasks and get them moving toward the door.

We can always use help — if you’re a developer of any sort and want to help with the CMUcam5 Pixy project, please send us a note!


The Pixy Team

New Kickstarter that uses Pixy

IR-LOCK Kickstarter
IR-LOCK Kickstarter

Our friends at IR-LOCK launched their Kickstarter yesterday and it’s off to a great start — grabbing Staff Pick status!  IR-LOCK does something lots of our customers have requested — robust beacon tracking.  IR beacon tracking is robust under practically all conditions, even when it’s dark.  We see some really cool applications for quad-rotors/drones, and we look forward to seeing what people do with it.  And we’re looking forward to working with the IR-TRACK folks!  Congrats guys!


Color codes, libpixyusb and other cool stuff

Hope everyone is having a great summer!  We have a new version PixyMon and firmware that supports color codes. It’s beta status. Please check it out, and tell us what you think.  (And if you don’t own a Pixy yet, go here!)

Image 294

We also have a new library for communicating with Pixy over USB — we call it (appropriately) libpixyusb. It’s great if you want to talk to Pixy using a Raspberry Pi or Beagle Bone, or any other microcontroller with a USB port. (PixyMon already runs on these platforms, but if you wanted to write your own program to talk to Pixy over USB, there was no convenient way to do this. Libpixyusb makes it easy.)

We are actively working on a GCC port for the firmware. (Currently, Pixy’s firmware only compiles using the Keil compiler, which is a great tool, but it costs money.) The GCC port is coming along well and we hope to release it by the end of August. When it’s released you’ll be able to compile Pixy firmware with a free IDE (LPCXpresso) or just plain GCC. And, of course, this will bring Pixy firmware development to anyone who wants to develop their own vision algorithms. It’ll be awesome — there are lots of great ideas out there!

Speaking of algorithms, we’ve brought in some outside help to work on face detection for Pixy. We have the core algorithm working and are starting to work on optimization and platform support. A release date hasn’t materialized yet — we’ll keep you posted!

Pixy is a real product (for real)!

Image 232

It’s been a long time coming, but Pixy has finally grown up!  Pixy is no longer in Kickstarter/pre-order limbo.  Pixys and Pan/tilt Mechanisms are in stock and being sold right now, and more are being made as I type this, because, you know, we’re gettin’ low!  From now on, if you want to get yourself a Pixy, you can order through either Amazon or Shopify:

  • If you want delivery within the US, you can order Pixy through Shopify or Amazon.
  • If you want delivery outside the US, you must order Pixy through Shopify.

We are also working with interested distributors to bring Pixy to your corner of the world, particularly in Europe and Asia.  If you have a favorite source for your Arduino-y, robot-y, maker-y like things, send us a note!  (Hey Aussies,  where do you like to order your Arduinos?  Type it into that little “Contact Us” box to the right.)  In the meantime you can order through our Shopify page and all the right things will happen.

Thanks so much for helping our little guy take flight!

What should we talk about?

Hi everybody!

Just a quick update for y’all. All rewards and pre-orders have shipped! yay! Not everyone has received their rewards and pre-orders yet, but that will hopefully happen soon. Cool!

Yeah….. so…….. uh……….. how’s the weather been in your part of the world? (what do we talk about now that everything has shipped?)

Oh, development! We’ve been getting lots of emails the last couple weeks, so development has sorta lagged, but here are some things that are worth mentioning:

  • Linux support. Check it out! Tell us if it works, doesn’t work, what you needed to do to make it work. Thanks!
El Linux con Pixy
  • We have a new firmware version that fixes the “daylight overexposure issue”. Download here. Use the instructions here to get new firmware on your Pixy. (BTW thanks everyone for your patience regarding this.)
  • Some Mac users have reported instability with PixyMon. We haven’t been able to reproduce on our end, but we are working with these users to shed more light on it and fix. You can help by mailing info to us (support a t charmedlabs d o t com) including crash reports and info about your system. And by by testing future PixyMon builds, and giving us thumbs up/down.
  • USB issues. Some issues have been solved by using different USB cables. Some appear to be USB 3.0 (and/or hardware) related. These have mostly been reported on Windows machines, but there have been 1 or 2 Mac users report this. We have some leads and will hopefully reproduce and fix within the next week. Like above, you can help by mailing your experiences (support a t charmedlabs d o t com). Just remember that if you’re using the pan/tilt mechanism with Pixy, use a shorter USB cable (3 ft or less is best).
  • We’re still on the hook (so to speak) for color codes and face detection. We expect color code support in the next firmware release (in the 2-3 week timeframe.) Face detection will come afterwards.

After color codes and face detection are done/released/stable, we’ll be polling you for the next capabilities for our little guy. Some of you already get this, but new firmware and algorithms for Pixy can create a completely new sensor: QR code detector/decoder, pupil tracker, motion measurer, wildlife detector, stale kidney bean counter, etc. These new future capabilities will be available to you and anyone who has a Pixy. We won’t be able to do everything everyone wants, but if we get a lot of enthusiasm for a particular capability, we’ll try our darndest to get it working as soon as possible. So think about it and send your thoughts!

Thank you all again for helping make this possible!

Shipping! (to Amazon, then shipping to you)

Hey everybody!

It’s been awhile since you (our lovely backers) have given us your shipping address, so please check to make sure that we have the correct address, because we’ll need them soon! If you’ve moved, just send us a message (through Kickstarter) and we’ll be sure to change.  If you’ve already sent us your address change, then all’s good!

We sent our first Pixy shipments to Amazon yesterday!  And we sent even more today, so about 700 Pixys are en route to Amazon shipping centers.  And more will be sent tomorrow…  The pan/tilt mechanism is on a “hazardous materials” hold by Amazon. (huh?)  We don’t understand it either… but something in the description of the pan/tilt mechanism caused Amazon’s system to flag it.  This might take a day or two to clear up.  The good news is that things are shipping.  And our calculated “rate” is 1500 Pixy/pan-tilts per week to Amazon.  This means that all Kickstarter rewards will be at Amazon within three weeks from now.

Pixys all snug in their little boxes. They'll soon arrive safely at Amazon in a box, in a box, in a box.
Pixys all snug in their little boxes. They’ll soon arrive safely at Amazon in a box, in a box, in a box.

OK, I must confess here — I’ve never done fulfillment through Amazon before, so there’s some guesswork here.  From what I gather, there are some delays in filling the pipeline, but once it’s filled, things go quickly.  Here’s how it breaks down— the packages that were shipped on Monday will get to Amazon Thursday and Friday of this week.  They are scanned and are “made available for sale within three business days of being received”.  I assume that three days applies to fulfillment too.  That puts things at Monday or Tuesday of next week for Pixys to start shipping to you.  So hundreds of early backers will likely get their Pixys next week There is some guessing/assuming going on here. Pan/tilts will probably be delayed a couple additional days because of the “hazmat” issue.

So the upshot is that you’ll be getting your Pixy soon.  We need to gather some more info and we’ll have more concrete information, by the end of next week, as the first Pixys land in backers’ hands.  A schedule based on backer number will be provided.

As always, thanks for your patience!

Amazon Pixy listing --- it sort of defies all categories, so Pixy, for now, is in the "spy camera" category
Amazon Pixy listing — it sort of defies all categories, so Pixy, for now, is in the “spy camera” category


...and here's the Pan/tilt Mechanism Kit. It too can be found with other useful espionage accessories.
…and here’s the Pan/tilt Mechanism Kit. It too can be found with other useful espionage accessories.


Light at the end of the tunnel

We’ve reached beta status! Our beta testers have been using Pixy for a week and sending their feedback. And so far so good… The beta helps ensure that when we ship to you, it all goes smoothly. Pretty much all new pieces of technology get a beta period and then a ramp-up of sales. We’re out of the gate with an accelerated beta followed by shipping to thousands of customers. Yikes! But we’ll be fine… we have confidence in our little guy.

OK, what else— manufacturing is going nuts, in a good way. We have boxes and boxes of Pixys ready for final programming, testing and packaging.

It’s hard to convey in a picture, but we have 4000 Pixys ready for final programming and packaging and more are on the way!
It’s hard to convey in a picture, but we have 4000 Pixys ready for final programming and packaging and more are on the way!

Documentation is being written and it’s up on our wiki if you want to check out what we have so far. The docs are on the sparse side, but we’ll be adding to the wiki quite a bit over the next couple weeks, so by the time your Pixy arrives, there will be a much richer set of docs. And we’ll continue to add to the docs for the foreseeable future.

We’re just getting started, and there are lots of features, improvements and sensing tasks planned for Pixy (in addition to color-based object detection and tracking.) These new capabilities will be available to you, of course. Since you are our first customers, we’ll be asking you to weigh in on what we do next. But we’ll ask after you’ve had some time to play with your Pixy, which brings us to The Schedule.

We expect to get our first box out to Amazon either next Friday (March 7) or the following Monday. (We’re having Amazon do the procurement — they’re more efficient and quicker than we are, so they got the job!) We’re on schedule, mostly, maybe behind a day or two, but with the coding behind us (for this release) the remaining tasks are all fairly predictable. Put Pixy in box. Close box. Apply tape. Apply barcode. etc. In other words, you will be getting your Pixy soon. There’s light at the end of the tunnel!

Friends, thanks for hanging tough with us through all this. Your patience has been awesome and inspiring. Really.

Next update — we’ll be shipping, and we’ll have some good hard numbers on when you’ll receive your Pixy!

Pixys and pan/tilts are available for pre-order here.

First peeks

Hello Pixy friends!

We wanted to give you some first peeks, so in this update we have some demos for you to take a look at.  But first things first, let’s get to the big question— when will Pixy ship?  We had estimated several weeks ago that we would reach feature completion by the end of this week and start shipping in mid to late February.  We have good news and bad news on this front.  It won’t be possible to be finish coding by the end of this week without cutting corners or sacrificing quality. That’s the bad news, and we don’t dispense it lightly or without apology.

The good news— we’ve decided to use Amazon to ship your rewards. They will be able to ship all rewards within a week of receiving a big crate of Pixys from us. (We were estimating it would take at least 2 weeks for us to package and ship all of the rewards, so by going with Amazon, we save a week or more.) And Amazon will typically use a better carrier than we were planning on using, when shipping outside the US. So that’s good.

We will ship to Amazon the week of March 3. This means that you should receive your Pixy around the middle of, ahem… March. We know this is getting into Pretty Dang Late territory, which is why we’re working so hard to knock out the last remaining tasks as soon we possibly can. Please accept our apologies. It really helps keep us motivated that you are excited about PIxy. And Pixy is looking great! It’s better than we originally envisioned.

OK, onto demos—


One thing this video is missing (besides my upper torso) — it doesn’t mention that signatures are immediately stored in flash after they’re generated, so Pixy will continue to look for the same objects between power cycles. Also, those squares and rectangles rendered on the black background are plots of the data that the Arduino receives through it’s SPI port. We have a simple Arduino library that parses the SPI data and returns an array of “blobs”, where a blob is:

struct Blob {
unsigned int signature;
unsigned int x_center;
unsigned int y_center;
unsigned int width;
unsigned int height;

So you hook Pixy up to your Arduino with the included cable and call GetBlobs().  It’s simple!

The other thing I wanted to show you was the concept of “programs”.  Programs are tasks that run on Pixy. The “default program”, or the program that runs automatically when you apply power to Pixy, does what’s described on the Kickstarter page— namely, it finds objects and streams them out the port that you’ve specified (SPI, I2C, UART, or analog/digital I/O).  Here’s a demo of the pan/tilt program being selected and executed:


Some other notes about programs—

  • You can make any program the Default Program.
  • You can select any another program (besides the default) to run upon power up by using a button sequence.
  • You can modify programs or add new ones if you want to get your hands dirty.
  • A given Pixy can have several programs to choose from.
  • Your Pixy will arrive with at least two programs ready to run in firmware.
  • More to come! (for example, face detection)

Wrapping up

To give you feel for how close we are, the remaining tasks are— finishing up color codes, UART and I2C support, Windows 8 support (need to sign the USB drivers), and Mac support.  It’s no longer a daunting list, but it’s too much to tackle in next 3 or so days.

We’ll post another update in 2 weeks, and we expect to have code completion well within reach.  Thank for you for your continued patience!