Comments: Leap Motion Teardown
Looking for answers to technical questions?
We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.
If you've found an issue with this tutorial content, please send us your feedback!
While that chip is mainly a USB chip, the datasheet still shows it as containing a 200Mhz ARM processor with 16KB of instruction memory that can be programmed. So there may still be some processing going on in the device itself.
It appears that the host end of the USB cable that comes with the leap is just a USB2.0 connector; there's no 5 extra pins.
32 mbit is an awful lot of flash for a USB phy...there's no onboard ram, so they can't be doing that much inline processing - certainly not time-based processing. The Cypress data sheet says there's up to 512 kb of SRAM - which, assuming the cameras are monochrome and 8-bits per pixel (most cmos imagers are 10-bit, but I digress), means 512000 pixels...for both cameras. Nope. In order to achieve the 1/100 mm accuracy they claim (I smell bull$hit) with an 8 cu ft volume, you would need to have about 30 MP per imager, monocrome. This is the equivalent to a 10MP color camera - so technically it's feasible. This is based on the assumption that they are able to interpolate down about 1/10 pixel accuracy. The maths: 8 cu ft = 2' x 2' x 2' = 600 mm per side 1/100 mm accuracy and 1/10 pixel accuracy = 1/10 mm per pixel 1/10 mm per pixel and 600 mm per side = 6000 pixels per side = 36 MP
36MP at >200FPS (as reported in this article)...nope, not going to happen. Not in a package as small as they have in this thing. Can they get less than 1/10 pixel accuracy? Unlikely, that's some heavy interpolation. Yup - there's some marketing going on here. Based on the photo in "The Seedless Underbelly", the imagers are about 1/2 inch. Based on that, my best guess is they are using the Vita1300 from onsemi - with a max frame rate of 150 FPS, without windowing. If they are smart (and they are) they can selectively window the imagers to skip pixel readouts and squeeze even higher framerates. But, the Vita1300 only has 1.3 MP...or 1024 pixels per side...which means they're claiming to get 1/60 pixel accuracy. Sigh. SPARKFUN, TELL US WHAT IMAGER THEY'RE USING!
So what is that flash for? Calibration look-up tables, most definitely. These can be huge. Program code, as well, for sure. That puny 16kb built-in instruction memory is probably just a bootloader and maybe a watchdog or something.
You usually find glue over inductors not because they're mechanically flimsy, but because they're noisy. Depending on the frequency of the signal passing through the inductor, it can make an annoying buzzing sound as the changing magnetic field in the coils pull them back and forth. Glue helps to hold the coils in place and minimise the noise.
From what was in the tear-down, the processor is most likely there to provide the front end filtering and data processing. My guess is to establish a predictable, usable, streamlined data packet to allow the software on the PC end to spend more of its time in utilizing the technology in programs and apps; more content oriented if you will.