BPI-M3 Android demo with USB camera

USB camera : Logitech C920r HD Pro http://www.logitech.com/en-hk/product/hd-pro-webcam-c920

Step 1 :

Burn the Android Images onto the SD-Card http://www.banana-pi.org/download.html#e-panel

Step 2 :

Install thrid-party apk (USB Camera Trial 2.1.7 APK) http://apk-dl.com/usb-camera-trial

Step 3 :

Open USB Camera Trial 2.1.7 APK


logitech C920r HD Pro Video Demo:


logitech C920r HD Pro:


Regular USB camera (supporting UVC driver)

1 Like

Hi Justin,

the android image does not have support for V4L and UVC. Could you please release the android image for M3 with the same. Could you also please share the actual android sources on github as you have done for the M2, so that we can re-compile the kernel if required.

Thanks.

1 Like

Which all other cameras do you support? Do you have any list of different cameras that have been tested and working fine with M3?

Hi

I tried to connect two usb cameras on M3 board which is android5.1 system. so checked the preview video using the USB Dual Camera APK after connected two usb cameras however, just one camera preview is working. device detecting is ok, i can find two usb camera devices.

Does it work well on your board? Does two usb camera previews work on same time?

ps. it works fine on BPI-M2PLUS board. (android4.4.2, android7.0 both) display two preview on the USB Dual Camera APK .

Please be interested in this issue ㅠ.ㅠ

This is a log message when two USB cameras are connected.

[  296.997174] uvcvideo: UVC device initialized.
[  297.002214] usb 1-1.2.4: usb_autosuspend_device: cnt 1 -> 0
[  297.010385] usb 1-1.2.4: usb_autosuspend_device: cnt 0 -> 0
[  297.019879] usb 1-1.2.1: usb_autoresume_device: cnt 1 -> 1
[  297.028100] usb 1-1.2.1: usb_autoresume_device: cnt 2 -> 1
[  297.036580] usb 1-1.2.1: usb_autosuspend_device: cnt 1 -> 0
[  297.055084] usb 1-1.2.1: usb_autoresume_device: cnt 2 -> 1
[  297.062800] usb 1-1.2.1: usb_autoresume_device: cnt 3 -> 1
[  297.070410] usb 1-1.2.1: usb_autosuspend_device: cnt 2 -> 0
[  297.077358] usb 1-1.2.1: usb_autoresume_device: cnt 3 -> 1
[  297.290520] usb 1-1.2.1: usb_autoresume_device: cnt 4 -> 1
[  297.296704] usb 1-1.2.1: usb_autosuspend_device: cnt 3 -> 0
[  297.303114] usb 1-1.2.1: usb_autosuspend_device: cnt 2 -> 0
[  297.321846] usb 1-1.2.4: usb_autoresume_device: cnt 1 -> 1
[  297.329821] usb 1-1.2.4: usb_autoresume_device: cnt 2 -> 1
[  297.338987] usb 1-1.2.4: usb_autosuspend_device: cnt 1 -> 0
[  297.346488] usb 1-1.2.4: usb_autoresume_device: cnt 2 -> 1
[  297.354158] usb 1-1.2.4: usb_autoresume_device: cnt 3 -> 1
[  297.362541] usb 1-1.2.4: usb_autosuspend_device: cnt 2 -> 0
[  297.370359] usb 1-1.2.4: usb_autoresume_device: cnt 3 -> 1
[  297.483520] usb 1-1.2.4: usb_autoresume_device: cnt 4 -> 1
[  297.489717] usb 1-1.2.4: usb_autosuspend_device: cnt 3 -> 0
[  297.496385] usb 1-1.2.4: usb_autosuspend_device: cnt 2 -> 0
[  297.516077] usb 1-1.2.4: usb_autosuspend_device: cnt 1 -> 0
[  297.606519] usb 1-1.2.1: usbfs: usb_submit_urb returned -28
[  297.617369] usb 1-1.2.1: usbfs: usb_submit_urb returned -28
[  297.632414] usb 1-1.2.1: usbfs: usb_submit_urb returned -28
[  297.643003] usb 1-1.2.1: usbfs: usb_submit_urb returned -28
[  297.652488] usb 1-1.2.1: usbfs: usb_submit_urb returned -28
[  297.665904] usb 1-1.2.1: usbfs: usb_submit_urb returned -28
[  297.675793] usb 1-1.2.1: usbfs: usb_submit_urb returned -28
[  297.685051] usb 1-1.2.1: usbfs: usb_submit_urb returned -28
[  297.694791] usb 1-1.2.1: usbfs: usb_submit_urb returned -28
[  297.701514] usb 1-1.2.1: usbfs: usb_submit_urb returned -28
[  297.709001] usb 1-1.2.1: usbfs: usb_submit_urb returned -28
[  297.716701] usb 1-1.2.1: usbfs: usb_submit_urb returned -28
[  297.723547] usb 1-1.2.1: usbfs: usb_submit_urb returned -28
[  297.730222] usb 1-1.2.1: usbfs: usb_submit_urb returned -28
[  297.736912] usb 1-1.2.1: usbfs: usb_submit_urb returned -28
[  297.743465] usb 1-1.2.1: usbfs: usb_submit_urb returned -28
[  297.750428] usb 1-1.2.1: usbfs: usb_submit_urb returned -28
[  297.757133] usb 1-1.2.1: usbfs: usb_submit_urb returned -28
[  297.764385] usb 1-1.2.1: usbfs: usb_submit_urb returned -28
[  297.771732] usb 1-1.2.1: usbfs: usb_submit_urb returned -28
[  297.778389] usb 1-1.2.1: usbfs: usb_submit_urb returned -28
[  297.785162] usb 1-1.2.1: usb_autoresume_device: cnt 3 -> 1
[  297.792778] usb 1-1.2.1: usb_autosuspend_device: cnt 2 -> 0

usb_submit_urb returned -28

#define ENOSPC          28      /* No space left on device */

-ENOSPC         This request would overcommit the usb bandwidth reserved
                for periodic transfers (interrupt, isochronous).

I can’t understand why there wouldn’t be enough usb bus bandwidth. Any thoughts?

I solved the problem.

ehci->uframe_periodic_max = 100;

I changed the value of 100 to 124.

It works well even if I connect 2 USB cameras.

1 Like