- 13/11/2014 at 19:21 #2010
I got my dev kit shipped , and promptly discovered that my dev machine only has USB2.0. So, I’m speccing out a small cocmputer to expose my device’s Gaze API over the network and emit a stream of gaze points and timestamps. My question is how to determine the tradeoff between price and the new box’s performance as a device host.
Do you guys have any wisdom on this?
The documentation is fairly opaque on this, beyond mentioning the requirement to spawn a background thread to handle communications with the device. What’s that thread doing, with the Gaze API? How much heavy lifting occurs on the device, vs in the background thread? What’s its memory access profile look like? How much memory does it need, for best, worst, and average case?
Chris14/11/2014 at 13:31 #2012AndersParticipant
the EyeX Controller does its image processing on the host computer, which is why it needs USB3 for high bandwidth data transfer from the device as well as a reasonably fast CPU. If you plan to use the small computer only for driving the eye tracker then maybe it doesn’t matter so much if the CPU is busy all the time.
The Gaze SDK thread spends most of its time waiting for asynchronous I/O. It hardly moves the needle on the CPU meter and it should only use a few megs of memory.
Is your computer a desktop or laptop model btw? If it’s a desktop model there are plenty of USB3 adapters for purchase that are far less expensive than a small computer. For laptops it’s not quite as easy because you’ll probably need a powered USB3 hub.14/11/2014 at 17:16 #2019
It’s a laptop, specced as a mobile workstation. Lots of cores, lots of memory, etc – but no USB3. One of those ports allegedly speaks eSATA, which should be fast enough, but I can’t find adapters from USB3 to eSATA and I doubt your drivers are set up to deal with that arrangement.
What are your bandwidth requirements, if the Gaze background thread is mostly waiting for incoming traffic? If I hook up a powered USB3 hub to my USB2 computer, with a dedicated port, will it degrade gracefully?17/11/2014 at 10:07 #2032AndersParticipant
the reason I asked is because the only option that I know of to get a USB3 port for a laptop computer is via the ExpressCard/PC Card Express slot. And while that works fine in terms of bandwidth, it doesn’t work in terms of power supply, because the bus that these cards slot into simply doesn’t supply enough power to comply with the USB3 standard. And the EyeX Controller needs both the bandwidth and the power. But if you combine one of those cards with a powered USB3 hub then it’s possible to get the setup to work. (Note that there are quite a few not-so-compliant cards and hubs out there so make sure to read some reviews before you decide to purchase one.)
As for the processing power needs: the EyeX Controller driver runs as a stand-alone process and does quite a lot of image processing. The gaze background thread listens to the output from the driver and routes it into your application’s process. So there is a lot of stuff going on but not on the gaze background thread.17/11/2014 at 17:03 #2046
Okay, Anders, thanks very much. I’ve got a suitable expansion card and powered hub ordered. Thanks for your assistance. I’ll post back soon with my project!
- You must be logged in to reply to this topic.