Platform suggestions to camera evaluation

Hi All,

Currently, I would like to evaluate a suitable platform to develop a camera testing system upon the Android. It means that I need to bring up many different image sensors by myself. So far, I aware that whether Qualcomm or MTK platform, the HAL source code are not open source. (Qcom: vendor/qcom/proprietary/mm-camera, MTK: vendor/mediatek/proprietary/custom/xxx/hal). Because of this restriction, I may not bring up the image sensors without the support of Qcom/MTK.

  1. Is my understanding to the image sensor bring up correct about Qcom/MTK?
  2. Is there any other platform recommended to this purpose?

Best regards

Hi @simplehsu

Bringing up any camera that relies on it’s host for thinks like auto focus will require proprietary software for most platforms. Licensing or contracting models varies from manufacturer to manufacturer.

I don’t know anything about the MTK platforms but I think this remains one of the best explanations of how things work for the dragonboards (although for Snapdragon 845 you should try Thundercomm as well as Arrorw):

I recently also has requests to access to camera interfaces on Qcom platform SD845, and thanks to people’s response, I has following knowledge about Qcom and camera. I think professional people has more general view about this subject, and a new learner like me has a knowledge gap between them and me.
If I am wrong please correct me:
In my knowledge, there are two situations: whether you have license for one SoC from Qualcomm or MTK. If you do you can modify there drivers to support any features they supported.
For open source/linaro releases, there are two domains: SoC drivers and Camera drivers.
One camera inputs data into SoC involving MIPI-CSI for camera data interface, I2C for camera control interface, ISP which could provide conversion ( RAW bayer data into YUV, RGB or other image data), image processing ( transforming, scaling, etc ), then maybe Video/Image Encoder.

For Snapdragon platforms, I think all three products ( 410c, 820c, 845c ) are well supported in I2C and encoded supports, which are provided along releases of Linaro.
I think 410c and 820c ( this product seems discontinued ), are both supported for CSI access, I don’t have these boards but I see some threads in forum and kernel drivers provided.
845c, for now, is not provided with CSI support, @ndec told me this will be supported but not in a short term.

I see some posts, the ISP is not supposed to be supported ( I am not sure in fact ) because Qualcomm sees it as proprietary. So for these processes I guess it should be implemented in software. So although you can access CSI, you need to decide whether you want to use RAW bayer data or YUV like data. If former, you can use supported SoCs to access camera data through CSI directly, but if latter, you’d better choose one camera chip which can output YUV like image data format ( which has ISP inside it).

One other thing is the Camera driver, as long as you can access camera directly, you need to find whether there are already implemented driver for one camera, if not, you need to implement yourself.

IMO, snapdragon platform is powerful SoC, but very commercial licensed oriented platform ( although I think it is better than other similar SoCs, at least they actively involving in linux development)

If you want to stick to snapdragon, I suppose 820c ( if you can get one) and 410c is better than 845c.

If you need more open SoCs, I suggest you take a look at the ones such as Rockchip’s RK3328, RK3399, they are better supported to Open Source Community.

1 Like

Hi Danielt and Sprhawk:

Thanks for your input, I would take a look to RK3399 to see if it is more suitable to my target.