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—

https://www.youtube.com/watch?v=7znEmgYZXL0

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:

https://www.youtube.com/watch?v=D1cZmfac990

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!

https://www.youtube.com/watch?v=ja5geAAlOC0

  • 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!

Fightin’ the good fight

Hey everybody!

First of all, thanks for your patience. We’re listening to you guys, and we’re hearing some frustration about the lack of updates. Our apologies for this— we’ll try to provide more updates and more detail going forward. We’ve been super busy, of course — but things are going well.

A quick thumbnail sketch before going into detail — assembled and tested hardware will start arriving in Austin after Christmas — a little ahead of schedule (yay!)  Software is going well too.  We’re a little behind, but working hard to get back on schedule.  Read on for more detail!

Hardware 

6124c17e823ec6c8825e7bd81d0fd3b5_large
“First article” from contract manfacturer– this is what your Pixy will look like!

We received the “first articles” from the contract manufacturer last week.

Some of the changes to the PCB involved moving the RGB LED farther from the lens so it’s easier to see (it’s at the bottom of the PCB now). We also added more mounting holes and gave it a “neck” to facilitate a tilt mount.  And we made various tweaks to improve manufacturing.  BTW, the final schematic is here for those interested.

We’ve been testing these guys, making sure everything works, etc. In short, they’re workin great!  And we’ve given our contract manufacturer the official “go”. i.e., go make thousands! then send them to us!  We wrote a really nice automated test program that they can use to test all features.  They plug in a USB cable and it gives them a green-light (pass) or red-light (fail) so they can detect defects early and remedy on their end (India).  The finished, tested hardware will start arriving here in Austin (in the thousands) after Christmas.

The lenses arrived yesterday from Asia!

5000 lenses--- tiny things, but about 150 lbs, all told
5000 lenses— tiny things, but about 150 lbs, all told

Oh— and the pan/tilt mechanism— if you remember, we did a full custom design for the pan/tilt mechanism to get the best performance and quality.  We received prototype laser-cut parts last week, and we’re going out for another revision.  We’ve also received several samples of servos and have evaluated them for their speed and torque.  Gonna hold off on the pictures for now…. but demos soon.

Software 

When we were thinking about what we wanted Pixy to do way back when, we laid out a list of basic things that needed to be in place, so PIxy wouldn’t just be a super fast color blob tracker, which is cool, but we wanted to be able to add new stuff (new functionality, algorithms, etc) without breaking existing stuff. And so things would run in limited memory, so you could debug easily, blah, blah.  Here’s the list— straight from our notes (but formatted to look prettier):

USB communications stack: fast, low code/execution overhead, plug/unplug robust, portable across Windows, MacOS, Linux (including driver support).

Host communication framework: ability to plug a USB cable into a live system and receive debug messages and render imaging objects (and then unplug, resume program). Ability to query and configure parameters (white balance, brightness, color signatures, etc) through host tool (PixyMon). Ability to extend functionality by adding new interfaces and parameters (for example, it should be easy to add an XYZ detector module with its configuration and processing procedures, you know, to extend Pixy’s capabilities.)

Nonvolatile parameter support: provide a common interface for creating, deleting, loading and saving nonvolatile parameters (on the Pixy side). And provide the ability to list/query/index parameters through host communications framework so we can display them and modify them through Pixymon.

Simple data communication support: ability to stream processed information through either SPI, I2C, UART serial, GPIO or analog out.  In particular, be able to talk to Arduino through ICSP connector, which has no slave select signal.

Firmware upload: ability to upload new firmware. Can’t rely on existing firmware state, existing bootloader, etc. Be able to do this easily through PixyMon — File->Load Firmware, or similar (no 3rd party tools).

This is the “low level stuff”— and we’ve been focusing on the LLS for pretty much all of November— and happily, we’re pretty much done, and it all works great, which is good, because a shaky implementation would lead to problems down the road.  But it took longer than we had expected.

Some of it we had to implement from scratch because the processor is new.  Some of it we wanted to get close to perfect instead of good enough.  And some of it we don’t have yet, like full Linux support— yet— but we’ve been careful to make the right decisions and not program ourselves into a corner, so to speak.

With these things taken care of, we’re ready to start on more of the fun/interesting stuff– like getting the color recognition software/algorithms cleaned up and readied.  So that will be our focus until we ship— the software that actually does the detection and tracking— the higher level stuff. This is much more fun to talk about and show off, makes for better updates.

We have a ship date of January 17 as our goal — looking at the list of tasks, it will be tight.  It’s a little early to tell, but in 2 weeks we’ll have a much better idea, and we’ll provide an update then, which details the tasks and schedule all the way until the ship date.  In the meantime, we’ll be here, fightin the good fight!

Thank you again for your support and your patience!

 

 

Thank you for an awesome Kickstarter!

Pixy-4-3-thanks
Our little Pixy, with flaxen hair and bookish good looks set out on Kickstarter 30 days ago with a $25,000 goal and a crazy idea: to bring fast, easy-to-use machine vision to robots everywhere.  He (she?)  passed 1000% funding before ending an awesome Kickstarter campaign.  We find this hard to believe!!  Thank you to everyone that contributed!

And if you missed our Kickstarter, no worries!  You can pre-order a Pixy here.  Thanks!