Looking for a board

Hello,

I am looking for a board to develop a project related to video recording.

I found one very interesting, the Dragonboard 410c but unfortunately, I can’t find information about a compatible camera. So I need one with a small module to be recognized by the Android as a native camera, I guess it would be connected through MIPI-CSI. Does exist support to a camera like this?

May someone recommends a board? The board must have:

  • Android
  • Camera to be recognized as a native camera
  • Low consumption
  • Performance similar to Snapdragon 410C
  • HDMI output
  • GPS, IMU would be a plus
  • Bluetooth and WiFi

Thank you

Any particular reason you don’t want a USB camera? There are a lot of really good USB cameras available, including USB3 if you happen to get a board with a USB3 interface. This should take care of any kind of bandwidth concern you may have with some USB cameras. And the real nice thing about USB cameras is that they’re virtually all supported through UVC, so just plug them in and you’re off. Worst case, you rebuild the kernel with UVC enabled.

Dragonboard 410C doesn’t have USB3, but if the bandwidth of USB2 will suffice, it can make a great board, HOWEVER, Android support on that board is a bit weak. There’s the ancient qualcomm builds of 5.1 and 6.0, and there is a seldom maintained AOSP master support. I’d recommend Hikey960 (not 970), which has EXCELLENT AOSP support and is supported within AOSP (i.e., officially by Google).

As far as GPS goes… the DB410C’s built in GPS is basically useless unless you get out your soldering iron and rejig it for an external antenna, and since you’re going with a wire hooked up to it, for $20 you can get a USB GPS with a U-Blox chip, which will work for ANY board that supports USB. You can use GPSd as the GPS HAL since it now has Android support.

Hi doitright,

Thank you for taking the time to reply to my question.

I can’t use a USB camera because it’s not recognized as a native camera by Android and the application that I use demands a native camera.

The Hikey960 seems to be fine for my needs but maybe too much powerful and too battery hungry. I am a little bit worried about the consumption too because the board will be powered by a portable battery. AOSP support is excellent. But what about the camera? I will have the same problem right? The USB won’t be recognized as a native camera.

A USB/UVC camera will be presented by the kernel the same as a CSI camera. As a V4L2 device (/dev/videoX). I don’t think you are going to find any camera for which there is an Android HAL, regardless of the interface by which it is connected.

And since you’re going to have to work on a HAL either way, you might as well start with something that may already work, or at least to some extent, rather than trying to rig up a completely new and custom HAL that bypasses V4L2.

https://git.linaro.org/people/yongqin.liu/public/hardware/linaro/common.git

Note that I’ve never tried that, and therefore can’t give you any idea what kind of shape it is in, but it is at least a starting point for you.

My first approach would be to buy a board with everything that I need, so the native camera working out of the box.

If not possible that’s ok, but I am not a specialist in this area, if I have to modify Android HAL I still would have to learn how to do it.

I promise you that the challenges of going with CSI are much greater than USB. While there are CSI cameras available that will work on DB410C and other 96boards, there are no Android HALs that I’ve seen to support them, which means that at best, you are still starting at V4L2.

This means that your challenges will include one of the following paths;

  1. duplicating the V4L2 driver from the debian kernel to the android kernel, followed by developing an android HAL to use a V4L2 interface,
    or…
  2. writing an android HAL that bypasses V4L2 (since you are worried about editing an existing android hal, this option is not going to be an option for you).

Note that in the case of a USB/UVC camera, the first half of option (1) has already been done for you, since the kernel already supports (as long as the configuration parameters are enabled at build time) these cameras.

Further, in the grand scheme of things, I think that more people will find it more useful to have further development towards an Android HAL working with V4L2, since this improves flexibility and choice, whereas CSI camera drivers are unique to each sensor, thus limiting camera selection to those particular sensors for which there are available drivers and on the hardware for which they are developed. For instance, a CSI camera driver is going to be as much a driver for the SoC’s CSI interface as it will be for the specific sensor, which means that if you want to switch to an SBC with a different SoC, you would have to do that work all over again.

Anyway, good luck!

1 Like

Actually, just a little bit more information;

There are 3 CSI camera mezzanine boards listed, 2 current, and 1 “coming soon”.
The 2 current ones are these;
“d3”: https://www.96boards.org/documentation/mezzanine/d3camera/
“mipi adapter”: https://www.96boards.org/product/mipiadapter/

Note that BOTH of these indicate support exclusively for Debian (no Android HAL).

The “coming soon” camera:
“on camera”: https://www.96boards.org/product/on-camera/

This one makes mention of Android, however, there aren’t enough details to guess at what they mean by that or what it will look like. For example, it could be by way of a closed source HAL restricted to the ancient qualcomm build of 5.1.

1 Like