Jump to content

How do I use the camera on tinkerboard?


Sean Carson

Recommended Posts

You can try my configuration file if you want, as a basis, since I've already enabled it. Turns out :

 

1) It's currently a staging driver. Meaning that it *could* work with *some* Raspberry Pi camera. As I understand, there's two completely different versions of the Raspberry Pi Camera and only one is mainlined in the staging folder.

2) It has a lot of weird dependencies, like requiring Mailbox hardware support, Broadcom SoC support, Raspberry PI Firmware loading support, ...

 

The configuration key is named VIDEO_BCM2835 .

 

Its basic requirements are : CONFIG_STAGING, CONFIG_BCM_VIDEOCORE, CONFIG_MEDIA_SUPPORT, CONFIG_VIDEO_V4L2, CONFIG_ARCH_BCM2835
CONFIG_BCM_VIDEOCORE requires CONFIG_RASPBERRYPI_FIRMWARE, which in turn requires CONFIG_BCM2835_MBOX, hence the requirement for Mailbox hardware support.

 

 

Link to comment
Share on other sites

  • chwe locked this topic
43 minutes ago, jkljkl1197 said:

No update about this thread?
if some one know how to get work this csi interface.

there you go.. :P 

 

to keep it short.. at the moment it doesn't boot and we're still not sure what it breaks.. I think it's DTS related, or we miss something in the configs, or one of our patches breaks it... We also tried the asus way of implementing camera support via isp10 (the old deprecated isp driver from rockchip and this seems to be not practicable)... I built more than 20 (I really don't remember how many SD cards I flashed...) images trying to bring up the camera. So feel free to join the party.. :P I decided that I need a break from the tinkercam... 

Link to comment
Share on other sites

I've never tested it. From the original dts, it's properly described (whereas the OV5647 misses the port description as described in the github issue you see in the other thread). So building a new image with the needed drivers, replace our dts (create patch = yes) which has some adjustments and build an Image could be worth to test. In case this doesn't work set GCC to <= 6 in the buildscript (cause RK described it somewhere in their documentation that they build with gcc <= 6 and we use a newer gcc for our builds).  This breaks for sure some functionality, e.g. DSI related stuff, eMMC for the tinker S, probably wifi and maybe some stuff I didn't think about yet.  In case this doesn't work you should have a look our config and the config which RK uses with their linaro.. Or you build a linaro first an look if it works there... 

The IMX219 arrived some days ago but I didn't spent that much attention to it at the moment..  I suggest you describe your findings in the other thread cause it is related to the new ISP driver. 

Link to comment
Share on other sites

At present we don't have the isp1 driver working, so neither RPi camera is functional.  I have both cameras, but have not gotten the DT/kconfig right to make it work.  There is also the issue that both cameras use the same resources, so they can't both be defined in the DT without overlays.

Link to comment
Share on other sites

6 hours ago, jkljkl1197 said:

No one have new about Sony IMX219 support?

it's everything there to try it on your own..  :P 

 

I decided that I need a break from the tinker cam cause it's frustrating to get oop as a first boot message..  Since my buildmachine is only limited usable. I build on a old desktop machine which doesn't have a screen and everything is through ssh --> copying to my notebook prior to flashing it to SD-Card (wifi card is broken, and the stick which is attached to it performs very bad), I'm not that motivated to build as much images as possible to nail down the problem. And I'm not experienced enough to figure out the problems without a 'try and error' approach.. :D So any help and findings what might help is appreciated.. 

Link to comment
Share on other sites

I'm going to take another shot at it, there's no good reason for it not to work if the Rockchip guys have done it, it's just that the kernel config documentation is not always so good. (Like for the Wifi, I had to find out what I was doing wrong by looking at the commit history)

Link to comment
Share on other sites

4 hours ago, jkljkl1197 said:

i just want to know how i can use a raspberry pi cameras. Does i need to do something or it's plug and play?

It should be plug and play. It works on ASUS images (https://tinkerboarding.co.uk/wiki/index.php?title=CSI-camera). But there is some bug that is preventing it from working in Armbian. It might have gotten fixed already, you can try it and see if it works.

(What I mean is that there has been a patchset applied recently in the development default image, that may have fixed the bug. But I have been the whole day trying to find my Rpi camera, without success, so I couldn't test it).

Link to comment
Share on other sites

25 minutes ago, JMCC said:

But there is some bug that is preventing it from working in Armbian

 

The Tinker OS kernel is using a now deprecated driver, As we're using the Rockchip kernel directly, we should work to the new driver, which requires *a lot* less "tweaking" to work.  In short, I haven't had the time to get this working, what with actual bugs on the table to deal with.  Like I said, I'll give it another go shortly.  There were some adjustments to the drivers, so we'll see.

Link to comment
Share on other sites

not with the IMX219, just gave it a short try after weeks of just ignoring it.. :D It still hangs in oops during boot.. And since I'm to dump build booting images with RKs buildscript... No clue if it's broken at all, or that I'm just to dump.. If someone builds a recent booting Image with their buildscript please post the actual config (not the one I get from the kernel, that's what I can do on my own.. :P )... 

 

46 minutes ago, JMCC said:

It should be plug and play.

not with the config we use at the moment, since activating the needed drives will end in not booting images anymore... Even if the camera is not connected.. In case you start to dive into it.. Which cam will you use? Just have a look to the github issue to avoid you doing common mistakes.. I don't have this image anymore to test it with the imx219, but as for my ov5647 I never got it working on their own image. So, I never saw a tinkerboard with their new isp1 driver and a working camera. But maybe, it needs some fresh mind working on it, since I might be to dump and miss something obvious. :P 

 

5 hours ago, jkljkl1197 said:

Does i need to do something or it's plug and play?

As said before.. Everything is there, it's just a thing to figure out what's going wrong.. :) You can start to build images on your own and try to figure it out. 

Link to comment
Share on other sites

	camera0: ov5647@36 {
		compatible = "ovti,ov5647";
		reg = <0x36>;
		clocks = <&ext_cam_clk>;
		status = "okay";
	};

	camera1: imx219@10 {
		compatible = "sony,imx219";
		reg = <0x10>;
		clocks = <&ext_cam_clk>;
		status = "okay";

		port {
			imx219_out: endpoint {
				remote-endpoint = <&imx219_in>;
				data-lanes = <1 2>;
			};
		};
	};

huh? both are status okay, but since cam0 has no endnode it will never run out of the box.. :D So cam1 (which means imx219) is the one looks complete and active.. Or do I miss something? :P 

Link to comment
Share on other sites

no, that's the original.. and actually also present in ours, cause we don't install the needed drivers, it is (at the moment) useless. In case you go for the OV5647 camera, you have to change it to something like: 

	camera0: ov5647@36 {
		compatible = "ovti,ov5647";
		reg = <0x36>;
		clocks = <&ext_cam_clk>;
		status = "okay";
		
		port {
			imx219_out: endpoint {
				remote-endpoint = <&imx219_in>;
				data-lanes = <1 2>;
			};
		};
	};

	camera1: imx219@10 {
		compatible = "sony,imx219";
		reg = <0x10>;
		clocks = <&ext_cam_clk>;
		status = "okay";

	};

Cause the port names in the rest of the DTS (where those ports end) are named imx219.. this should work... Actually a proper naming like camera_out would end in less confusion.. 

Link to comment
Share on other sites

hi Tony,

i found some driver source for imx219, but not similar ofcourse, can you implement to armbian ?

https://github.com/rockchip-linux/kernel/blob/release-4.4/drivers/media/i2c/imx219.c

https://github.com/allwinner-zh/linux-3.4-sunxi/blob/master/drivers/media/video/sunxi-vfe/device/imx219.c

https://github.com/rellimmot/Sony-IMX219-Raspberry-Pi-V2-CMOS/blob/master/imx219mipiraw_Sensor.c

 

we need real low level C++ api like raspicam(AVA) . any way to implement OpenMAX (mmal) to armbian?

i am opencv developer but i cant use TinkerBoard, v4l2 or gstreamer sucks :(

we need working mali driver(this is ok) + camera driver + OpenMAX platform or something like that (MPP with gpu+CSI layered) like rpi MMAL

 

can you do that ? :D or who wants to do that ? :( 

Link to comment
Share on other sites

Well, yes, that is the driver for the camera, now, how it interacts with the Rockchip ISP driver is a question, I assume our issues are purely kernel config related, but Hell if I know what the config should be, it isn't documented very well.

 

20 minutes ago, Cyper said:

can you do that ?

Good question.  As I haven't yet, I don't know.  :-)

 

20 minutes ago, Cyper said:

who wants to do that

Everyone, and seemingly no one.  Take yourself as a casual example.  Everyone wants it, no one wants to do it.

 

Unfortunately, at the moment we have bigger kernel config problems after some upstream updates so the camera is not on the immediate list of things to fix.  

Link to comment
Share on other sites

10 hours ago, Cyper said:

we need working mali driver(this is ok) + camera driver + OpenMAX platform or something like that (MPP with gpu+CSI layered) like rpi MMAL

Get all the  'we'  together. But it needs one to start and report back in the forum,  how about you,  as a developer you are familiar with the tools, right?

 

Link to comment
Share on other sites

15 hours ago, Cyper said:

we need working mali driver(this is ok) + camera driver + OpenMAX platform or something like that (MPP with gpu+CSI layered) like rpi MMAL

first:

14 hours ago, TonyMac32 said:

Unfortunately, at the moment we have bigger kernel config problems

then we need a kernelconfig which doesn't crash the kernel as soon as RKs ISP driver is activated...

Then we can think about 'fancy' stuff... :P The drivers are known since a long time..  but still something to do until it works.. :P 

Link to comment
Share on other sites

5 hours ago, Tido said:

Get all the  'we'  together. But it needs one to start and report back in the forum,  how about you,  as a developer you are familiar with the tools, right?

 

yes i have, but a lot of asian arm cpu produced every day, each one of them is different. i am not capable to writing kernel or driver for these cpu's. i can only do, design hardware and use properly mostly.

i think if armbian implement openmax code with gpu+csi drivers. than we have mmal layer for computing. that is better than gstreamer + v4l2 + mpp ; = openMAX

Link to comment
Share on other sites

Well, we're not a free resource for other people's projects in this specific of a context.  What you're proposing would easily double the workload I put into a side project that does not pay my bills, simply so you can have something for nothing, so they say.  I'm not trying to be rude, but I don't have time for every user's pet project, Once I get the latest Rockchip updates stabilized I may spend some time on getting the ISP driver working, or I may not, but that will be the limit, is to get the hardware to a functional level.  Any special or new functionality is outside of the scope of what I have time, resources, and in some cases knowledge.

 

1 hour ago, Cyper said:

but a lot of asian arm cpu produced every day, each one of them is different. i am not capable to writing kernel or driver for these cpu's.

 

And you think a loosely affiliated group of programmers doing this for their uses and enjoyment can?

Link to comment
Share on other sites

3 hours ago, Cyper said:

yes i have, but a lot of asian arm cpu produced every day,

Camera support is one feature of one SoC probably possible with one out of 32 kernels armbian supports (and has to maintain) populated on one out of 74 boards armbian supports..  We already 'wasted a few ours' to get it basically working (and failed)...  I opened a thread specific for the ISP issue, shared everything needed that someone could join it to figure out what's wrong but it seems that most people who want the camera working aren't really interested in getting it working.  So, guess why I lost somehow the interest, dealing with it? I'm not the super duper kernelhacker, it's mostly me wasting a bunch of time try to understand things or try things by try and error... 

 

2 hours ago, TonyMac32 said:

that does not pay my bills,

You've to pay for a test-camera first before you can even think about that it would pay your bills..  :lol: Even then, it's unlikely.. :P 

 

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines