TB-96AIoT new user help please!

Hi all, I bought 96Boards SoM carrier and 96AIoT SoM (RK1808), and trying to install the pre-built image using Windows RKDevtool (Androidtool).

Following the instructions here: https://github.com/96boards/documentation/blob/master/som/tb-96aiot/installation/windows.md

I see “Found One ADB Device”. But when I press Run, I get “Match Device type failed, stop running” error box.

What am I doing wrong? I was not sure what this line in the instructions means: ‘Press reset key of the developing board, and then long press recovery key around 3-4 seconds to enter.’ - which one is the recovery key?

Thanks for any help!

OK for anyone else facing problems with flashing the board, I found another document shows some detail about the process: http://t.rock-chips.com/en/wiki.php?mod=view&id=82

In fact what I found is that you don’t need to press the recovery key, only the “switch” button inside the Android tool, and wait for “Found 1 Loader” before pressing Run. I had to restart my PC before it would recognise the USB device for the loader, that was the problem blocking me.

I have another question if anyone is reading…

The carrier board has a socket for RPI camera (IMX219), and another two small connectors for a MIPI camera. I also have an IMX317 camera that fits this socket, bought along with the board.

What camera is really supported and working on Linux for the RK1808? This document seems to show that neither of the cameras above are supported! https://github.com/96boards-tb-96aiot/docs/blob/master/Platform%20support%20lists/Rockchip_Camera_Module_AVL_v2.0.pdf

What is the easiest route to getting a camera up and working?

Thanks for any help…

IMX327? right?

The rockchip kernel and dts (rk1808-evb-v10.dts) are by default configured for a imx327 sensor.

So AFAIU, the camera should be automatically detected. You can check e.g with media-ctl that all the pipeline is ready (media-ctl -p). You can find more information here: http://opensource.rock-chips.com/wiki_Camera_driver

1 Like

Hi Loic, yes it’s IMX327.

OK, looking on that wiki I have the media-ctl and v4l2-ctl tools, but no gstreamer.

The pipeline looks like this, I don’t understand it yet…

Thanks!

Media controller API version 0.1.0

Media device information
------------------------
driver          rkisp1
model           rkisp1
serial
bus info
hw revision     0x0
driver version  0.0.0

Device topology
- entity 1: rkisp1-isp-subdev (4 pads, 7 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev0
        pad0: Sink
                [fmt:SBGGR10_1X10/800x600 field:none
                 crop.bounds:(0,0)/800x600
                 crop:(0,0)/800x600]
                <- "rkisp1_dmapath":0 []
                <- "rockchip-mipi-dphy-rx":1 [ENABLED]
        pad1: Sink
                <- "rkisp1-input-params":0 [ENABLED]
        pad2: Source
                [fmt:YUYV8_2X8/800x600 field:none
                 crop.bounds:(0,0)/800x600
                 crop:(0,0)/800x600]
                -> "rkisp1_selfpath":0 [ENABLED]
                -> "rkisp1_mainpath":0 [ENABLED]
                -> "rkisp1_rawpath":0 [ENABLED]
        pad3: Source
                -> "rkisp1-statistics":0 [ENABLED]

- entity 2: rkisp1_mainpath (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video0
        pad0: Sink
                <- "rkisp1-isp-subdev":2 [ENABLED]

- entity 3: rkisp1_selfpath (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video1
        pad0: Sink
                <- "rkisp1-isp-subdev":2 [ENABLED]

- entity 4: rkisp1_rawpath (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video2
        pad0: Sink
                <- "rkisp1-isp-subdev":2 [ENABLED]

- entity 5: rkisp1_dmapath (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video3
        pad0: Source
                -> "rkisp1-isp-subdev":0 []

- entity 6: rkisp1-statistics (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video4
        pad0: Sink
                <- "rkisp1-isp-subdev":3 [ENABLED]

- entity 7: rkisp1-input-params (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video5
        pad0: Source
                -> "rkisp1-isp-subdev":1 [ENABLED]

- entity 8: rockchip-mipi-dphy-rx (2 pads, 1 link)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev1
        pad0: Sink
[ 1690.757624] ro       pad1: Source
                -> "rkispc1-isp-subdev":0 [ENABLED]

kchip-mipi-dphy-rx: No link between dphy a[root@rk1808:/]# nd sensor
[ 1690.757801] rockchip-mipi-dphy-rx: No link between dphy and sensor

Loic or anyone, my next question is how to get gstreamer built / installed. The pre-built binary does not seem to have gst-launcher and as far as I know that’s the easiest way to get a camera video output to the screen…?

Thank you…

weird, look like prebuilt has some script for testing camera but does not integrate the gst tool…
So you may have to rebuild an image with buildroot: https://www.96boards.org/documentation/som/tb-96aiot/build/buildroot.md.html And integrate gstreamer in the config.

1 Like

Thanks Loic,
Trying this, got GST included, but running into other problems. Now the rockchip logo stays on screen (no QT / desktop) and any command with video output fails and causes the display to go blank…

What should my config file include?

> 
> [root@rk1808:/usr/bin]# gstvideotest.sh
> librga:RGA_GET_VERSION:4.00,4.000000
> ctx=0x29113520,ctx->rgaFd=3
> Rga built version:version:+2017-09-28 10:12:42
> Setting pipeline to PAUSED ...
> Pipeline is PREROLLING ...
> /GstPipeline:pipeline0/GstKMSSink:kmssink0: display-width = 720
> /GstPipeline:pipeline0/GstKMSSink:kmssink0: display-height = 1280
> /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps = video/x-raw, format=(string)RGBx, width=(int)1280, height=(int)240, framerate=(fraction)30/1, multiview-mode=(string)mono, heigh=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, format=(string)RGBx, width=(int)1280, height=(int)240, framerate=(fraction)30/1, multiview-mode=(string)mono, heigh=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
> /GstPipeline:pipeline0/GstKMSSink:kmssink0.GstPad:sink: caps = video/x-raw, format=(string)RGBx, width=(int)1280, height=(int)240, framerate=(fraction)30/1, multiview-mode=(string)mono, heigh=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, format=(string)RGBx, width=(int)1280, height=(int)240, framerate=(fraction)30/1, multiview-mode=(string)mono, heigh=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
> ERROR: from element /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: Internal data stream error.
> Additional debug info:
> gstbasesrc.c(3055): gst_base_src_loop (): /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0:
> streaming stopped, reason error (-5)
> ERROR: pipeline doesn't want to preroll.
> Setting pipeline to NULL ...
> [  229.458017] rockchip-vop ffb00000.vop: [drm:vop_crtc_enable] Update mode to 720x1280p60, type: 16
> [  229.458255] dw-mipi-dsi ffb30000.dsi: final DSI-Link bandwidth: 426 x 4 Mbps

If anyone can advise how to set up a working video pipeline on this board, it would be very much appreciated!

I’m getting the same problem. I believe the sensor is not properly detected or driver not loaded. Look at the other thread, it is getting a subtype “Sensor” that is missing from the output of “media-ctl -p”:

- entity 7: ar0330_2 1-003c (1 pad, 1 link)
            type V4L2 subdev subtype Sensor flags 0
            device node name /dev/v4l-subdev2
        pad0: Source
                [fmt:UYVY2X8/1920x1080 field:none]
                -> "rockchip-sy-mipi-dphy":0 [ENABLED]