HELP: Sony FCB Block Camera w/ USB 3.0 interface: Black Screen, No Video (driver issue?)

Hello forum gurus,

I have been browsing the forums for some time now and have finally given in to creating an account.

I am having some issues trying to get a SONY FCB-EV7300 block camera to work on my Jetson TK1. I currently have the camera interfacing w/ an Aivion TL6035 USB 3.0 interface board (link: http://aivion.de/files/tl_6035.pdf) on both my Laptop Windows 10 64-bit system and Jetson. My Windows computer recognizes the camera module and DOES properly display output @ 1080P/30, but it does not work in Ubuntu. Below you will find my testing procedure and results. I would gladly appreciate it if anybody has an insight towards a solution to my problem.

============= Windows 10 64-bit OS =============

The steps I followed to initialize the camera:
-Check SW 1-2 ON and SW2-4 ON
-Plug in 5V external power from a large PSU (ample power) to the Aivion TL6035
-Plug in USB3 plug into isolated USB 3.0 port on my computer (No hub)
-Start up Sony FCB Control Software, Run Address Set Command, Run IF_Clear Command
-Check Register 74 (LVDS Mode) and make 00 (Single)
-Check Register 73 (Output Mode) and make 02 (Digital Output Enabled)
-Check Register 72 (Monitoring Mode) and make 07 [Full HD 30P (1920x1080P/30fps)]
-Power Cycle camera On/Off
-then look for video out using VLC and Windows Cam software.

In VLC, I was able to only get the first frame of the video out with the audio option selected. When the “audio” option was left empty, I was able to get slightly laggy but full 30fps 1080P video.

In Windows Cam software (native), the camera worked perfectly fine: no lag, FULL HD, no setup.

============= Ubuntu 14.04 LTS ===============

Then when I try to run the EV7300 on my modified Ubuntu 14.04 LTS (Trusty Tahr/Linux4Tegra) ARM-embedded OS (armhf) Jetson TK1 Development Board, I get the following output from terminal:

ubuntu@tegra-ubuntu:~$ lsusb
Bus 002 Device 013: ID 04b4:01fc Cypress Semiconductor Corp. (<-- this is the interface board) 
Bus 002 Device 012: ID 05e3:0616 Genesys Logic, Inc. 
Bus 002 Device 011: ID 05e3:0616 Genesys Logic, Inc. 
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 005: ID 046d:c077 Logitech, Inc. 
Bus 001 Device 003: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

ubuntu@tegra-ubuntu:~$ dmesg | grep video*
[ 8.692945] usbcore: registered new interface driver uvcvideo
[ 15.290126] uvcvideo: Found UVC 1.10 device Aivion-603-IF (04b4:01fc)
[ 304.028861] uvcvideo: Found UVC 1.10 device Aivion-603-IF (04b4:01fc)
[ 1160.792109] uvcvideo: Found UVC 1.10 device Aivion-603-IF (04b4:01fc)
[ 1203.163564] uvcvideo: Found UVC 1.10 device Aivion-603-IF (04b4:01fc)

So we know that the system recognizes the AIVION Interface module for the EV7300.

Settings: USB 3.0 enabled, USB autosuspend OFF
Tried (listed in degree of success): guvcview, luvcview, vlc, cheese, wxcam, webcam

**Below you will find the output of my terminal command: sudo guvcview --verbose

ubuntu@tegra-ubuntu:/etc/modprobe.d$ sudo guvcview --verbose
guvcview 1.7.1
file guvcview_video.mkv has extension type 1
file guvcview_image.jpg has extension type 0
file guvcview_image.jpg has extension type 0
Video file suffix detected: 1
Image file suffix detected: 0
video_device: /dev/video0
vid_sleep: 0
cap_meth: 1
resolution: 1920 x 1080
windowsize: 677 x 650
spin behavior: 0
default action: 0
mode: yuyv
fps: 1/30
Display Fps: 1
bpp: 32
hwaccel: 1
avi_format: 8
sound: 0
sound Device: 8
sound samp rate: 0
sound Channels: 0
Sound delay: 0 nanosec
Sound Format: 85 
Pan Step: 2 degrees
Tilt Step: 2 degrees
Video Filter Flags: 0
image inc: 1
profile(default):/home/ubuntu/default.gpfl
starting portaudio...
ALSA lib pcm_dsnoop.c:618:(snd_pcm_dsnoop_open) unable to open slave
ALSA lib pcm_dmix.c:1022:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
ALSA lib pcm_dmix.c:961:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
ALSA lib pcm_dmix.c:1022:(snd_pcm_dmix_open) unable to open slave
language catalog=> dir:/usr/share/locale type:C lang:C cat:guvcview.mo
Screen resolution is (1360 x 768)
yuyv: setting format to 1448695129
capture method = 1
video device: /dev/video0 
Device Node Path: /dev/video0
  VID/PID: 04b4 01fc
  Aivion
  Aivion-603-IF
  serial: (null)
Init. Aivion-603-IF (location: usb-tegra-xhci-1.2)
{ pixelformat = 'YUYV', description = 'YUV 4:2:2 (YUYV)' }
{ discrete: width = 1920, height = 1080 }
    Time interval between frame: 1/30, 
{ pixelformat = 'RGB3', description = 'RGB3' }
{ discrete: width = 1920, height = 1080 }
    Time interval between frame: 1/30, 
{ pixelformat = 'BGR3', description = 'BGR3' }
{ discrete: width = 1920, height = 1080 }
    Time interval between frame: 1/30, 
{ pixelformat = 'YU12', description = 'YU12' }
{ discrete: width = 1920, height = 1080 }
    Time interval between frame: 1/30, 
{ pixelformat = 'YV12', description = 'YV12' }
{ discrete: width = 1920, height = 1080 }
    Time interval between frame: 1/30, 
vid:04b4 
pid:01fc 
driver:uvcvideo
checking format: 1448695129
fps is set to 1/30
drawing controls

NEXT_CTRL flag not supported
Error: empty control list

(guvcview:3146): Gtk-CRITICAL **: gtk_widget_show: assertion 'GTK_IS_WIDGET (widget)' failed

(guvcview:3146): Gtk-CRITICAL **: gtk_scrolled_window_add_with_viewport: assertion 'GTK_IS_WIDGET (child)' failed
resolutions of format(1) = 1 
frame rates of 1? resolution=1 
fps is set to 1/30
Def. Res: 0  numb. fps:1
--------------------------------------- device #0
Name                     = HDA NVIDIA Tegra: HDMI 0 (hw:0,3)
Host API                 = ALSA
Max inputs = 0, Max outputs = 2
Def. low input latency   =   -1.000
Def. low output latency  =    0.006
Def. high input latency  =   -1.000
Def. high output latency =    0.035
Def. sample rate         = 44100.00
--------------------------------------- device #1
Name                     = tegra-rt5639: - (hw:1,0)
Host API                 = ALSA
Max inputs = 2, Max outputs = 2
Def. low input latency   =    0.009
Def. low output latency  =    0.009
Def. high input latency  =    0.035
Def. high output latency =    0.035
Def. sample rate         = 44100.00
--------------------------------------- device #2
Name                     = tegra-rt5639: - (hw:1,1)
Host API                 = ALSA
Max inputs = 0, Max outputs = 2
Def. low input latency   =   -1.000
Def. low output latency  =    0.009
Def. high input latency  =   -1.000
Def. high output latency =    0.035
Def. sample rate         = 44100.00
--------------------------------------- device #3
Name                     = tegra-rt5639: - (hw:1,2)
Host API                 = ALSA
Max inputs = 16, Max outputs = 16
Def. low input latency   =    0.009
Def. low output latency  =    0.009
Def. high input latency  =    0.035
Def. high output latency =    0.035
Def. sample rate         = 44100.00
--------------------------------------- device #4
Name                     = tegra-rt5639: - (hw:1,3)
Host API                 = ALSA
Max inputs = 2, Max outputs = 2
Def. low input latency   =    0.009
Def. low output latency  =    0.009
Def. high input latency  =    0.035
Def. high output latency =    0.035
Def. sample rate         = 44100.00
--------------------------------------- device #5
Name                     = tegra-rt5639: - (hw:1,4)
Host API                 = ALSA
Max inputs = 384, Max outputs = 384
Def. low input latency   =    0.009
Def. low output latency  =    0.009
Def. high input latency  =    0.035
Def. high output latency =    0.035
Def. sample rate         = 44100.00
--------------------------------------- device #6
Name                     = hdmi
Host API                 = ALSA
Max inputs = 0, Max outputs = 2
Def. low input latency   =   -1.000
Def. low output latency  =    0.006
Def. high input latency  =   -1.000
Def. high output latency =    0.035
Def. sample rate         = 44100.00
--------------------------------------- device #7
Name                     = pulse
Host API                 = ALSA
Max inputs = 32, Max outputs = 32
Def. low input latency   =    0.009
Def. low output latency  =    0.009
Def. high input latency  =    0.035
Def. high output latency =    0.035
Def. sample rate         = 44100.00
--------------------------------------- device #8
Name                     = music
Host API                 = ALSA
Max inputs = 128, Max outputs = 128
Def. low input latency   =    0.008
Def. low output latency  =    0.008
Def. high input latency  =    0.032
Def. high output latency =    0.032
Def. sample rate         = 48000.00
--------------------------------------- device #9
Name                     = demixer
Host API                 = ALSA
Max inputs = 0, Max outputs = 128
Def. low input latency   =   -1.000
Def. low output latency  =    0.021
Def. high input latency  =   -1.000
Def. high output latency =    0.021
Def. sample rate         = 48000.00
--------------------------------------- device #10
Name                     = aux
Host API                 = ALSA
Max inputs = 0, Max outputs = 2
Def. low input latency   =   -1.000
Def. low output latency  =    0.006
Def. high input latency  =   -1.000
Def. high output latency =    0.035
Def. sample rate         = 44100.00
--------------------------------------- device #11
Name                     = voice
Host API                 = ALSA
Max inputs = 128, Max outputs = 128
Def. low input latency   =    0.048
Def. low output latency  =    0.048
Def. high input latency  =    0.192
Def. high output latency =    0.192
Def. sample rate         =  8000.00
--------------------------------------- device #12
Name                     = aux_plug
Host API                 = ALSA
Max inputs = 0, Max outputs = 128
Def. low input latency   =   -1.000
Def. low output latency  =    0.006
Def. high input latency  =   -1.000
Def. high output latency =    0.035
Def. sample rate         = 44100.00
--------------------------------------- device #13
Name                     = music_and_voice
Host API                 = ALSA
Max inputs = 128, Max outputs = 128
Def. low input latency   =    0.048
Def. low output latency  =    0.048
Def. high input latency  =    0.192
Def. high output latency =    0.192
Def. sample rate         =  8000.00
--------------------------------------- device #14
[ Default Input, Default Output ]
Name                     = default
Host API                 = ALSA
Max inputs = 32, Max outputs = 32
Def. low input latency   =    0.009
Def. low output latency  =    0.009
Def. high input latency  =    0.035
Def. high output latency =    0.035
Def. sample rate         = 44100.00
----------------------------------------------
SampleRate:0 Channels:0
Video driver: x11
A window manager is available
(Desktop resolution = 1360x768)
Checking video mode 1920x1080@32bpp : OK 
 Could not grab image (select timeout): Resource temporarily unavailable
 Could not grab image (select timeout): Resource temporarily unavailable
 Could not grab image (select timeout): Resource temporarily unavailable
 Could not grab image (select timeout): Resource temporarily unavailable
 Could not grab image (select timeout): Resource temporarily unavailable
Shuting Down Thread
 Could not grab image (select timeout): Resource temporarily unavailable
 Could not grab image (select timeout): Resource temporarily unavailable
Thread terminated...
cleaning Thread allocations: 100%
Video thread completed
Video Thread finished
write /home/ubuntu/.config/guvcview/video0 OK
free audio mutex
closed v4l2 strutures
free controls - vidState
cleaned allocations - 100%
Closing portaudio ...OK
Closing GTK... OK

With every program I run, I am able to get the first frame from the camera sporadically (seems like every few times I try). I believe there is some driver issue with a blocking call that won’t allow the OS to grab any further video data. I may be wrong but am unable to progress past this stage in development.

Did you verify with “lsusb -t” that the ports really are in USB 3.0 mode? You should see some ports reporting 5000M as the bandwidth.