We have an application using multiple F200 sensors.. We are getting an error intermittently where the sensor will return color information BUT NOT depth information.
When we try to use the Intel application to look at the streams we see the error -301 listed in the lower right quadrant below the streams box.
We can find no documentation regarding this error except in the include file as follows:
PXC_STATUS_EXEC_ABORTED= -301, /** Execution aborted due to errors in upstream components */
Is there any information about what this means? Or what we could check?
Thanks in advance for the help!
Aiken Development LLC
Currently RealSense DCM does not support multiple cameras at the same time.You can use following workaround.
1, Use multiple computers and each one ONLY connect one F200
2, Use our librealsense, it can support windows, Linux and MacOS. However, it ONLY supports raw streams. You need bring your own algorithm.
Thanks for the quick reply!
We have each sensor connected to it's own NUC i3 board. Each is running Windows 8 Industry Pro. We are NOT trying to use multiple F200's on a single PC.
Do you have any insight regarding -301 and what it could mean?
I suspect it's Windows 8 Industry Pro that is the issue (the one that has the full name Windows 8 Embedded Industry Pro?). The minimum OS for RealSense is Windows 8.1. I remember getting that error myself when trying to run RealSense in Windows 7.
RealSense is also unlikely to have been tested or meant for this flavor of Windows. During my researches, I came across an interesting comment in reply to someone who wanted to use the 8.1 version for home use.
"No matter how cheap it is...it is not meant for your purposes. It might boot and run on a desktop. But all the other subsystems - DirectX specifically? Doubtful. This is like asking - "I can get Server 2012 cheap from school. Is it good for gaming?" Yeah, maybe you can make it work. Mostly. But Win8 Embedded is ever farther out on the edge. It is not meant for general desktop use. And really not meant for games"
Thanks for the comment.
I don't think it is an OS issue. It is actually "Windows Embedded 8.1 Industry Pro". And it will often run for weeks without an issue..
I just really need some insight as to what -301 error means.. This could help us at least focus in the right area..
Can anyone from the Intel side shed some light on the error message? It could be helpful.
BTW.. To explain our application a bit more.
This is NOT a game.. It is a measurement application using 6 x F200 sensors. Each hosted by a separate i3Nuc. The sensors and cpu are packaged in an industrial package with highly regulated power, and a close Ethernet network.
We are capturing multiple images (depth + color) and are compositing them, then using Halcon to do image processing. We are using only the depth and color streams, we are not using any other features of the RSSDK.
That is why we are based on Embedded 8. It is closed, clean, thin, and not taking updates.. It is a SMART sensor based around the F200 (and soon the SR300).
I was not suggesting that your project was a game. I was quoting that comment from another discussion to make the point that the F200 camera's recommended spec is aimed at consumer versions of Windows 8.1 rather than specialized professional flavors of it. Such editions may lack features that the RealSense SDK relies upon.
You are right that there is not much info available regarding the 301 error. There were a batch of people who had that issue last year, and the cause of their error was generally an incompatible Windows version or that they did not have a 4th Generation (Haswell) Intel Core i3, i5 or i7 processor in their machine.
RealSense will sometimes run on other types of processors but some types of function may not function.
Forgive me..I didn't mean it to sound that way!
Just wanted to make sure that the application was understood to not be a game or some cheat. Please have a look at the nDepth sensor at www.aikencontrols.com.
The issue is VERY intermittent, so it is making us crazy. So, I am searching for some more precise cause of -301.
What is weird is that it really can work for weeks.. then we have a rash of these.. It is not always the same sensor in the array. And we can't seem to find any environmental cause. I am on the point of suspecting some firmware or driver issue.
I really don't think it is OS or driver related. If so I would expect it to never work, or fail much more quiet often.
Any insight my Intel friends?
Marty, thanks again for the input and help!
It's possible that the error codes are not officially documented and only have meaning to the people on the RealSense developer team. You can get so close to a project that you forget about the end-user of that product. It's a common trap in game development, if I may mention the G-word. :) The developers play their game so often during its creation that they don't realize that what is intuitively easy to them will be nightmare-hard to the ordinary player who has not had those play patterns ingrained into them.
Anyway, if you can rule out OS or processor incompatibility, the third most common cause of instability is the power supply to the USB port. In some modes, especially depth scanning, the camera's laser draws more power than usual. If the PC cannot supply the USB port with enough power to cope with this higher load then the camera can cut out.
Sometimes the PC has insufficient power because the manufacturers of that machine saved some pennies by not giving the USB sufficient juice from the power supply unit to help it cope when high-drain devices are connected. On some USB 3.0 PCI Express plug-in expansion cards there is a pin prong for a 5 volt cable from the power supply unit to give it extra power.
Sometimes it is because of the power-saving settings in Windows. In 8.1, Microsoft introduced a feature that reduces the power to the USB port if the PC is left inactive. Unfortunately, it does not recognize camera inputs as activity. So you could be waving your hands constantly for minutes and as long as you don't touch anything that Windows recognizes as activity (mouse, keyboard, etc) then Windows will go into power-saving and reduce the USB juice. You can disable this USB power-save in the power-saving settings of the Windows control panel.
A number of developers have gained stability by plugging their camera into a mains-powered USB hub instead of directly into the PC. This ensures that the camera has a constant supply of as much power as it needs, as the supply is not dependent on the PC.
The trouble with a problem being intermittent is that even if you added a mains hub, you are not going to know whether it worked until the next time that you get a glitch (or don't get a glitch, if it happens to solve the issue!)
A way to eliminate the camera driver / firmware as the possible cause may be to use the RealSense SDK's built in test mode, where you can process pre-recorded data instead of live camera input. You can apparently do this without the camera attached, as the test mode behaves like normal camera use in every respect except that you cannot update the camera's laser settings.
Thanks for your advice and help! It is really appreciated.
I really think our buddies at Intel RealSense should help out here. At least give us a little guidance? Intel RealSense guys/gals? Anyone out there? I know doc is often the last thing on the dev schedule and the ugly stuff at the end, but we need some insight to improve RealSense and to be successful with applications.
At the moment we have little chance to add a main hub due to the enclosure designs. But for sure we can check the USB power save mode. Since this is a NUC we can only hope that Intel didn't cheat too much!
We will have a look, check, and report back any discoveries to the forum.
Again, Marty, thanks for the help and advice. Hopefully we can return the favor one day.
Intel staffers do read the forum and reply. You can tell who they are because they have the word (Intel) in brackets after their name. The ones who reply to questions are typically community managers, and they can pass information along to the RealSense developer team. There are also Intel members who aren't acting in an official capacity on the RealSense team but drop in and ask questions themselves about RealSense personal projects they are working on themselves like the rest of us community members.
In large software companies, dev team members tend to be kept away from answering the forums and there is a formal structure where the community managers act as the front-end for the community's users and decide which information to prioritize to pass to the dev team. This is especially true in big online game companies like Blizzard, operators of World of Warcraft. The dev team, in turn, often work to strict roadmap plans of the tasks that they need to do, and so changes tend to be slow in coming because they have to complete their current scheduled commitments before adding new ones.
The above is a long-winded way of saying that if a community needs particular changes or features, it's usually faster to produce them yourself and distribute them to the rest of the community via the official forum, a fan-site or on a site like GitHub. This user-driven mode of development is the one used with the new open-source librealsense version of RealSense.
I do my best to answer as many questions as I can but there are numerous gaps in my RealSense knowledge that I don't have first-hand experience of. I also can't test out R200 related issues as I only have an F200. Still, I try my best. Fortunately there are other bright and helpful folk on this forum who help to fill in the knowledge gaps I can't cover myself. *smiles* Teamwork gets results for sure.
Anyway, in regard to the Intel NUC, they usually get very good reviews and are historically very stable when used with RealSense, since they are an Intel product too. There were some new models launched recently I believe that also got excellent reviews.
Best of luck with your equipment!
We have checked the embedded image, and we have the current USB setting as "USB Selective Suspend Setting = Enabled". So, we are going to disable this and see what happens.
To the Teamwork point.. I fully agree.. We are not bashful to work hard and take risks with new technology.. We have lots of scars to prove it.. grin.. and we are more than willing to help out if we can as well.
BUT Intel should not force the community to "Roll Our Own" if they really want us to consume the technologies. Either open-source it so we can support ourselves (drivers, firmware, algos, and frameworks) OR provide us an official support mechanism.
Support does NOT have to be free! If I have a specific issue that is important enough for me to ask for help.. I should be willing to pay. Expecting free is not realistic or serious. A paid support path would offer the developers that are trying to monetize the technology and create real products a chance to develop and deliver. Real products are the only way technologies will take hold. Real products require investment (by everyone in the chain) and proven support.
We appreciate all those that are donating time and effort! And we in turn are willing to help in the cause as well. But it would be nice to have a little more information to work from.
Be back soon with the results of the USB power settings.. Might be a week or so before we know.