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!

Thanks!

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!

 

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!

A slew of tweaks, improvements and fixes

Hey Everybody!
Hope your new year is going well! You know when someone asks what you’ve been up to, and you’ve been super busy, and you try to explain, but everything that comes out of your mouth sounds kind of lame? The last couple weeks have been like that. The focus has been on firmware and software. There’s been whole slew of tweaks, improvements and fixes all over the place, but nothing “huge”.  And so in that sense this update is pretty much the opposite of a cool demo, but to summarize, there’s been excellent progress lately, just not anything that can described with a cool pic or video.

Much of the work has been focused on the color signatures and the code that generates them, such as getting the lookup tables to generate quickly and efficiently, writing a region growing routine to do a simple object segmentation during “teach” mode, and saving and loading the color signatures from flash. We’ve made good progress on the Arduino libraries. We’ve improved the image rendering modes in Pixymon and made them more general purpose. We ran into some memory issues, fixed them, uncovered a USB issue, fixed it. A Heap issue was uncovered and fixed. Many comments added. Lots of coffee consumed….. still reading? (sorry!)

Manufacturing is ramping up. We have 4000 Pixys double-bagged and double-boxed, waiting patiently for lenses and firmware to make their little Pixy selves complete. We’re interviewing candidates to help with the Big Shipment and the tasks leading up to it. And we have little Pixy boxes. Here— take a look!

Your Pixy will arrive all snug in this little box
Your Pixy will arrive all snug in this little box

OK, the schedule– we’re trying to stick to the dates we laid out 4 weeks ago, namely feature completion the week of January 27 and start-ship the week February 17. We’re behind, but not hugely so, and trying to make up time wherever possible. We promise not to cut corners. The next couple weeks are the home stretch, or close to it, development-wise. We’ll be focusing more on Pixymon. There’s a cool feature (aspect?) of Pixymon that we’ve worked hard to maintain— Pixymon is a generic front-end and not tied to any particular algorithm (such as color blob analysis.) More on that in the next update as well as the status of the final push!

As always, thank you so much for your interest, support, and patience!

Ringing in 2014

Hey Everybody!
Just a quickie update this New Years Eve!

Our contract manufacturer shipped the first 2000 Pixys, and here they are, waiting for the lens attachment, the final firmware upload (when the final firmware is ready!) and packaging. More are on their way!

First Pixy shipment, 2000 units! more on their way!
First Pixy shipment, 2000 units! more on their way!
Each Pixy lovingly wrapped in bubble-wrap
Each Pixy lovingly wrapped in bubble-wrap

As far as software, we’ve been focusing on readying the image processing algorithms. One thing that’s worth noting is that we’ve upped the performance of the color blob algorithm by reducing its latency (the amount of time it takes for Pixy to sense something.)

The latency was pretty amazing at about 1.5 frames or 30ms, but now it’s as little as 0.5 frames or 10ms. This means among other things, that tracking objects is really dang fast.

Clarifying note— the update rate of Pixy is 50 frames per second (50 Hz), which is also the update rate of the image sensor. Latency can be independent of the update rate, though. So for example, latency can be several frames without affecting the update rate. USB webcams typically have a latency of about 100 ms for video frames. (Update rates for webcams are typically 30 Hz or 33 ms.) Add image processing and the latency is even suckier! (that’s for webcams— Pixy’s latency, which includes image processing, can be as little as 10 ms! dang!)

OK, enough of this latency and update crap! Let’s see a demo!

  • The USB cable is for power only— no batteries needed! But you could use batteries if you wanted to, by plugging them into the external power connector. (Pixy has a built-in regulator, so you can plug in a battery, 6.0V to 12V.)
  • The mechanism in the demo is basically the one we’re shipping, but with a few tweaks to improve it that extra little bit.
  • We are using Pixy’s built-in servo ports. The tracking algorithm is running on Pixy. We’ll provide an Arduino sketch where the tracking algorithm and servo control happens through the Arduino!
  • All of this is mostly for fun— although this may have important applications in the field of colorful object theft prevention. (Sorry– that was the best I could come up with…..)

That’s all for now! More focus on image processing firmware over the next couple weeks.

Happy New Year! Looking forward to seeing Pixy on your robot in 2014!

Punching Kittens

Hey everybody!

We’re changing the estimated ship date.  There….. I said it.

We’re pushing it back, for the last time.  You may feel inclined to go punch a kitten— or us… but please don’t….  As we get closer, the list of tasks gets smaller and the remaining tasks are easier to estimate, and so we’re getting a much clearer picture of where we are schedule-wise.  Here’s what we’re seeing—

The hardware isn’t driving the schedule like we’d thought — software and firmware are determining the ship date.  We have spent much the the last week shedding light on the remaining tasks and putting them into a revised schedule.

Here’s how it breaks down— we will reach code/feature completion the week of 1/27. We will then have a testing period, prepare the final release, which will push the ship date to the week of 2/17.

Pushing the ship date back is a big deal, we realize, but we want to give you the best information we have, even if it isn’t fun.  And as much as we’d like to ship sooner, it would mean cutting corners and risking product quality. And that’s an even bigger no no.

So when we start shipping the week of 2/17, it will take 3 weeks to ship all of the rewards. Some backers, particularly those with the higher backer numbers, won’t receive their Pixys until well into March.  We will lay out the shipping schedule (based on your backing number) closer to the ship date.  And pre-orders (non-Kickstarter) will ship after all of the Kickstarter rewards ship, in the order received (of course).  OK, that concludes the hard-truth portion of the update.  (But I suspect the real pain will come at us in the comments!)  Anyway, onto hardware—

Our contract manufacturer is cranking out Pixys full-tilt, and will continue to do so for several weeks.  Here are some pictures they sent us yesterday.

Lots of Pixys awaiting testing
Lots of Pixys awaiting testing
Freshly baked!
Freshly baked!
Functional testing
Functional testing

In that last picture, the functional test, the last I’d heard they’d tested 600 with zero defects— crazy!  We will receive our first shipment of 2000 before the end of the year.  We’ll do the final testing, programming, lens attachment and packaging here in beautiful Austin.  Speaking of packaging, we’re having custom boxes printed up for our little guy, with color codes printed right on the box!  You know, as part of the out-of-the box experience.

The custom pan/tilt mechanism design has been successfully prototyped and parts have been ordered.  Check out the pictures below—

Pixy mounted on a pan/tilt mechanism
Pixy mounted on a pan/tilt mechanis
Lookin down
Lookin down
Closeup of pan axis. See the base? your robot goes there!
Closeup of pan axis. See the base? your robot goes there!

 

Lookin up
Lookin up

The mechanism will come as a kit.  It’s easy to assemble, and it’s compact (as you can see in the pics.)  It sits comfortably on a flat surface, but you can take the base off and replace it with your robot, or whatever else you want to mount it to, to give your creation the ability to look around and find/track even more objects.  It’s mechanically fast— faster than the pan/tilt mechanism in the Kickstarter video.  (BTW, you can still pre-order a pan/tilthere.)

The mounting brackets that attach Pixy to the pan/tilt mechansim will come with your Pixy and allow for fixed mounting options, if you didn’t opt for a pan/tilt.

So hardware is on track. Software is going well, but slower than we’d all like. When we changed the ship date the first time (this is the 2nd and final time) someone commented that it looks like we don’t know what we’re doing. They’re right!  (well… sorta.)  It’s our first Kickstarter, our first design with these parts, our first camera with these capabilities and this price point.

This process, while not going exactly as planned, has been awesome— it’s given us an opportunity to demonstrate our idea to you, and for you to tell us whether you like it, what you like in particular, what you don’t like, and what you’d like to see more of.  It’s changed Pixy.  We will ship something better than we originally envisioned.  That’s on you.  That’s your fault!  (but thank you!!!)

And we’re truly sorry this is taking longer than expected….

The next update in a couple weeks— including video!