are there any options for using multiple webcams on windows? - windows

i been trying to use via USB HUB "4 ports" 2 web cams and i get this msg on the notification bar telling me to disconnect one unused usb from the port because low driver resources, yet i only have one port on my windows surface pro2 and on that one usb i connected the usb hub and on that is where i plugged the 2 webcams to use in my pc, So whats up with that driver resource ? thats a first i see that
i also plan to run on this power usb hub 2 optical usb mouse so i will appreciate this information.
using Processing IDE i am specifying which cameras to use which i currently do with just one of these USB cams and the internal cam on my tablet and i get dual video feed from both cam using this lines of code
cam1 = new Capture(this, w, h, "USB2.0 Camera", fps);
cam2 = new Capture(this, w, h, "Microsoft LifeCam Front", fps);
cam1.start();
cam2.start();
and this works fine but when i specify
cam1 = new Capture(this, w, h, "USB2.0 Camera", fps);
cam2 = new Capture(this, w, h, "USB2.0 PC CAMERA", fps);
cam1.start();
cam2.start();
which im telling it those two cams are both USB use it the IDE find it just confirming it is there but only uses one and occasionally i get a driver resource pop up telling me to dissconect any usb im not using while i only have those 2 usb in the 4 usb power hub so im not sure what the issue is, further more if i use just one usb cam and a optical usb mouse and usb keyboard and a Arduino using 4 servos I GET NO ERRORS about drive resource pop ups so WHAT DA ##$%!!?

I have had the same issue on my pc runnig win10 with 4 industrial usb cams.
At the moment the first usb device is connected to the pc, operating system allocates a portion of the transferring width to the device according to the firmware data inside the device. So lets say up to 20% of your bandwidth has been occupied by the first webcam of surface. Even if you do not use the cam, the space has been already occupied. Now the second cam comes in the ring and lets say this one occupies 30%, and also the pens you mentioned, consider 10 percent per each of them. Machine has some internal universal elements such as touch, finger print, bluetooth etc, which are all under the universal category. So the wise operating system distinguishes that most of the bandwidth of the usb has been occupied and there exists a danger to insert a new bandwidth consuming device which might cause deficiencies for the previously connected devices, that is why it warn every once in a while.
The harsh condition would be like mine, by inserting 4 HD usb cams and losing the connection with one of the cams after some seconds where the pc suffers from running out of bandwidth. For laptops or surface there is no option to expand the bandwidth, but for pc you could add a usb slot in pcie.
Hope you will find this helpful.

Related

Emulating a Raspberry Pi screen on Laptop (Windows 10), mimicking screen resolution and PPI

I am currently working on an engineering project that will include a 7", 800x480 Raspberry Pi LCD screen to display wether or not an experiment is going accordingly to plan (a parameter's value will be shown in green if so, and red if it isn't). By my calculations, this would mean I am getting a 131 PPI image quality in said screen.
It is important to verify wether or not the information is readable from afar, and for such I am trying to emulate a screen with these properties in my laptop's screen. My best attempt so far was to use Chrome's DevTools, but it seems to only re-size the webpage, and doesn't adjust image's PPI. Is there any other, easier ways to accomplish what I am trying to do?
PS: I could simply connect my screen to the RPi and be done with it, yes, but I got curious if there is any way to do that (also the RPi is currently being used for other purposes, so I can't access it that easily rigth now).
Following DevTool's device mode was the closest I got, due to its abilito to set any image size I wanted, but the PPI does not seem to have been altered.

What is the best way to toggle gpios to indicate the kernel boot progress?

I have an small embedded system board (much like a RasPi) running a Yocto Linux distro (from a third party vendor, not the open-embbeded original repo). On that electronic board there are a bunch of LEDs in a row, each with a specific GPIO assigned. I can toggle them easily using sysfs (ex: echo 1 >/sys/class/gpio/gpio123/value).
I would like to indicate the progress of the kernel boot sequence (not during u-boot, not during systemd, really during the various steps in loading the drivers, etc. which last roughly 2 or 3 seconds on my board) much like a splash screen, but instead using the physical LEDs as a progress bar "splashscreen-like" indicator.
Is there a pre-defined best-way or "recommended" method/place/script/anything to do so? It is most likely a very common thing, I just can't seem to find any other people doing so (I know, I know, I am most likely just not searching/googling for the right words).
Thanks!
Modify the device tree of your machine board. There is a compatible = "gpio-led" tag using for the nodes to toggle these pins for the LED. You need to see how to toggle the GPIOs in the RasPi. Maybe in the Pin Funciton Controller, you can find a list of GPIOs or in the internet you canf ind it easily.
Here the link:
kernel.org/doc/Documentation/devicetree/bindings/leds/leds-gpio.txt

OSX CoreAudio mic input mute vs. setting volume to 0.0f

I'm attempting to mute the mic on my Logitech C920 webcam (OSX 10.8.5), but both implementations that I have tried do not work 100%. I would really appreciate it if someone who has experience with Apple's CoreAudio could take a look.
Here is what I have tried:
Setting mute via AudioObjectSetPropertyData() using:
address.mScope = kAudioDevicePropertyScopeInput;
address.mElement = kAudioObjectPropertyElementMaster;
address.mSelector = kAudioDevicePropertyMute;
This works, I can successfully mute/unmute but eventually I am able to get into a state where the mic is no longer receiving audio. It seems to be triggered by switching the default input to the internal mic while the C920 is in the muted state and switching back to the C920 mic. The only way that I have found to get the C920 mic back into a good state is to pull the USB cable and plug it back in.
Setting the volume to 0.0f via AudioObjectSetPropertyData() using:
address.mScope = kAudioDevicePropertyScopeInput;
address.mElement = kAudioObjectPropertyElementMaster;
address.mSelector = kAudioDevicePropertyVolumeScalar;
This almost works. The OSX UI input volume slider moves all the way to the left, but the mic is still picking up a little bit of audio. Uhhhhggg so close!
Opening the "Audio MIDI setup" app shows the C920 mic. When the volume value is set to zero, the dB value is 20. When the volume value is set to 1, the db value is set to 50. This is different from the built in mic that looks like it has a dB range of -12 to 12. Not sure if this matters.
When setting mute or the volume, I've tried fetching the individual channels and setting them as well. Doesn't seem to have an impact. I think with both input devices setting the Master channel is working fine.
I was wondering if maybe this is a hardware issue. I should note that the Logitech C920 isn't officially supported on the Mac (although a ton of people use it). I'm able to control the internal mic without any issues. Hopefully I'm just overlooking something :-)
When setting volume kAudioDevicePropertyVolumeScalar to zero. You should also set mute to true using kAudioDevicePropertyMute. When adjusting volume of inputs, be careful to check the mute status.
For example:
Adjust input volume in system audio panel to 0
Adjust input volume using kAudioDevicePropertyVolumeScalar to 100
Look at the db indicator, it stay at zero but the slider is in 100. No sound from microphone can be captured. Use kAudioDevicePropertyMute to get mute value, we can get mute = 1
Conclusion:
There is a "Mute" status for the input in the system, but no shown in the audio setting panel. System will auto set mute to true when adjust volume to zero and disable mute when set volume larger than zero.

WP7 simultaneous recording and playing sound

I need to play a short sound repeatedly (simulating metronome) while recording sound.
What I did for the metronome was basically setting a DispatcherTimer with specific Interval, and every tick firing a SoundEffect. For the recorder I call the XNA's FrameworkDispatcher.Update method every 33 milisec (also using DispatcherTimer for that).
I run the metronome, it works fine, and then when I begin to record - there's a short break in playing sound (hard to say if it delays the Interval or just mutes the sound), and after a while (when already recording), the metronome continues to tick, but with more 'flatten' sound.
Is this a hardware limitation, or am I doing something wrong?
I thinkt this is connected with hardware. I was making an app to modify sound when it is captured. When I was using headset (with mic) connected to device there was big echo on playback. When I was using only headphones (and device mic) everything was ok. It was tested on HTC and Nokia - same results but HTC was little bit better :)

Universal Volume Control - Volume and BackgroundAudioPlayer.Instance.Volume

Are BackgroundAudioPlayer.Instance.Volume and the Volume n/30 that is displayed in the Universal Volume Control (mango only) connected?
I can set the BackgroundAudioPlayer.Instance.Volume value and whilst it does affect the Volume it does not change the n/30 figure in the UVC nor does it have the same level of control.
As an example setting BackgroundAudioPlayer.Instance.Volume to 1.0 (the max) is has a different level of sound when the UVC is 30/30 than when the UVC is 5/30.
What should I be setting in the app to mirror the UVC controls?
Can I request the UVC be displayed via code? (I realise it is displayed when u press the hardware volume buttons)
Pat
You can't affect the volume as displayed in the UVC. The phone's volume is up to the user to control.
The volume you can set for the BAP (and for MediaElement) is the relative volume within the app. In theory, setting the UVC volume to 30 and the BAP volume to 0.5 should be equivalent to setting the UVC volume to 15 and the BAP volume to 1.0.
Unless you want/need the volume of what you're playing via the BPA (or MediaElement) to be quieter relative to the other sounds on the phone always set the BAP volume to 1.0.
You control the relative volume of things within your app. The user controls the volume of the phone overall.
No, you can't trigger the UVC to be displayed from code.

Resources