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