Shop OBEX P1 Docs P2 Docs Learn Events
Integrating a Camera onto PCB - Stream low resolution images at a low frame rate — Parallax Forums

Integrating a Camera onto PCB - Stream low resolution images at a low frame rate

Hey guys,
I am wanting to integrate the propeller with a tiny, low resolution, low frame rate camera. Somewhere between 320x240 and 128x96 pixels resolution, low colors or greyscale, and would only need like 4 frames per second. I would obviously want a better image & framerate if I could get away with it.

I am also wanting to transmit this data via bluetooth module.

I know image data can get pretty huge, this is why I am ok with a low resolution image, and low frame rate, which I think should be feasible for bluetooth?

I had a couple questions:
1. The propCam looks to be a pretty good fit. Is there a BOM of this device so I can integrate it onto my PCB?
2. Are there other cameras that people have been integrating with that would be a good fit? I have been searching around a bit and cannot find something readily available that I can develop towards.
3. I came across 4D systems ucam II which looks decent. Usually developing against 4D systems products doesn't scale that well due to availability and cost, I could be wrong.
4. Has anyone messed with "camera cube"? They are really cheap, supposedly all in 1 chip. They are BGA unfortunately, but it might be a good solution?
5. Also came across Adafruit TTL camera, but again it would be nice to put everything on my own PCB, but if its a good solution?

Can you guys recommend anything? Thanks and any help is greatly appreciated!

Comments

  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2016-12-02 03:37
    Mahonroy wrote:
    1. The propCam looks to be a pretty good fit. Is there a BOM of this device so I can integrate it onto my PCB?
    Unfortunately, that would not help, since the PropCAM's sensor chip is no longer in production. But I'm happy to assist you in any way I can to incorporate the PropCAM into your project. It's probaby the best fit for the Propeller's limited 32K RAM. And frame rate is not a problem.

    -Phil
  • Mahonroy wrote:
    1. The propCam looks to be a pretty good fit. Is there a BOM of this device so I can integrate it onto my PCB?
    Unfortunately, that would not help, since the PropCAM's sensor chip is no longer in production. But I'm happy to assist you in any way I can to incorporate the PropCAM into your project. It's probaby the best fit for the Propeller's limited 32K RAM. And frame rate is not a problem.

    -Phil
    Thanks Phil,
    Yeah I would probably just integrate with the PropCam module directly if it the modules were going to be available... looks like by the time I was ready to do a production run there would be no more left, so probably not worth it.
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2016-12-02 04:25
    Don't worry. There are plenty (>1200) left -- depending on the size or your production run, of course. I cornered the market on the remaining sensor chips for that module. That was either my biggest coup or my biggest mistake -- I'm not yet sure which! :)

    -Phi
  • Don't worry. There are plenty (>1200) left -- depending on the size or your production run, of course. I cornered the market on the remaining sensor chips for that module. That was either my biggest coup or my biggest mistake -- I'm not yet sure which! :)

    -Phi

    Well, what do you think of the "cameracube" by omnivision? There are a ton of them on Digikey. Do you think that would be a worthy integration?
  • The CameraCube looks like the same module that's used on the Parallax Laser Range Finder. But a 640x480 frame is more than 300K pixels -- more than the Prop can handle without sub-sampling. Plus, it uses a rolling shutter, with the usual side effects. All of the PropCAM's pixels are exposed at once.

    -Phil
  • MahonroyMahonroy Posts: 175
    edited 2016-12-02 14:21
    The CameraCube looks like the same module that's used on the Parallax Laser Range Finder. But a 640x480 frame is more than 300K pixels -- more than the Prop can handle without sub-sampling. Plus, it uses a rolling shutter, with the usual side effects. All of the PropCAM's pixels are exposed at once.

    -Phil
    I see that they have a non-rolling shutter version 400x400, although it does not look to be available yet:
    http://www.ovt.com/products/sensor.php?id=162
    http://www.ovt.com/products/sensor.php?id=147

    What are your thoughts on VGA cameras?
    e.g. the OV7670, this looks to be a really popular option in the arduino community, and they are only 5-7 bucks?
  • rjo__rjo__ Posts: 2,114
    edited 2016-12-02 16:23
    Not exactly sure what you need, but my experience with the OV7670 was that you can slow down the process to a couple of frames per second but when you do that you are integrating the entire time, and so you get motion artifacts... also has a rolling shutter. Omnivision has a lot of other chips. When I was playing around with them I was kind of encouraged by the flexibility of some of them, but they are all a little different, the data sheets are less than friendly, setting the registers is an art form, which requires a monastic dedication.

    I like the idea of the CameraCube... there should be usable code floating around and it is cheap. Ball grid so you have to be pretty good. If there was a CameraCube on a nice breakout board, I would want one... or more:)

    BUT.... BUT... BUT...

    The PropCam has a NICE form factor: 4 mounting holes on 1" centers, and a small connector on the back... it would be fairly straight forward to mount your Propeller board right to the back of the camera... then route through the connector to your board. I have thought about doing this, but I'm not really into board design. Also, the PropCam uses a 10MHz clock, with a very predictable readout of the data. You can fully configure the integration time and use snapshot mode to dictate when the frame is acquired... all with a glorious global shutter!!! Using snapshot mode you can go from 1 frame per day to about 500 FPS... that's pretty flexible:)

    A full 8bit frame is 12800 bytes, so transmitting the data is pretty easy.

    I don't know of a better camera in terms of performance and ease of use... and IMHO it is kind of a waste of your time looking. Every time I think I have found something ... turns out there are perfectly good reasons why it won't work or why I shouldn't bother.

    In a year or so, we are going to have P2 chips to play with and the PropCam software base should be ready to go.
    It turns out that programming for the PropCam on a P2 is actually much simpler than it is on the P1.

    Right now, the clock speed of the P2v requires 1 cog per camera. If the P2 gets boosted to say 100MHz, it should be possible to acquire two cameras with one cog.

    Take my advice. Dive in with the PropCam... study it, build around it. It is worth your time and effort.



    .... I have no proprietary interest in PropCam.





  • tonyp12tonyp12 Posts: 1,951
    edited 2016-12-02 17:38
    Do you plan to do computer vision, or just need to send lowres images over Bluetooth?

    Not sure how easy is to hack it so it sends new images 4 times-a-sec repeatedly.
    http://www.ebay.com/sch/i.html?_from=R40&_sacat=0&_nkw=Snap+pets+portable+bluetooth+camera&rt=nc&LH_BIN=1
  • rjo__rjo__ Posts: 2,114
    That's a good point... with a standard library, ball park the P1 should be able to send 2 frames per second.. if you can find a Bluetooth module that has a high enough baud rate.

    There is an interesting discussion about P1's baud limits here.
  • rjo__ wrote: »
    Not exactly sure what you need, but my experience with the OV7670 was that you can slow down the process to a couple of frames per second but when you do that you are integrating the entire time, and so you get motion artifacts... also has a rolling shutter. Omnivision has a lot of other chips. When I was playing around with them I was kind of encouraged by the flexibility of some of them, but they are all a little different, the data sheets are less than friendly, setting the registers is an art form, which requires a monastic dedication.

    I like the idea of the CameraCube... there should be usable code floating around and it is cheap. Ball grid so you have to be pretty good. If there was a CameraCube on a nice breakout board, I would want one... or more:)

    BUT.... BUT... BUT...

    The PropCam has a NICE form factor: 4 mounting holes on 1" centers, and a small connector on the back... it would be fairly straight forward to mount your Propeller board right to the back of the camera... then route through the connector to your board. I have thought about doing this, but I'm not really into board design. Also, the PropCam uses a 10MHz clock, with a very predictable readout of the data. You can fully configure the integration time and use snapshot mode to dictate when the frame is acquired... all with a glorious global shutter!!! Using snapshot mode you can go from 1 frame per day to about 500 FPS... that's pretty flexible:)

    A full 8bit frame is 12800 bytes, so transmitting the data is pretty easy.

    I don't know of a better camera in terms of performance and ease of use... and IMHO it is kind of a waste of your time looking. Every time I think I have found something ... turns out there are perfectly good reasons why it won't work or why I shouldn't bother.

    In a year or so, we are going to have P2 chips to play with and the PropCam software base should be ready to go.
    It turns out that programming for the PropCam on a P2 is actually much simpler than it is on the P1.

    Right now, the clock speed of the P2v requires 1 cog per camera. If the P2 gets boosted to say 100MHz, it should be possible to acquire two cameras with one cog.

    Take my advice. Dive in with the PropCam... study it, build around it. It is worth your time and effort.



    .... I have no proprietary interest in PropCam.




    Trust me, I would be all over the PropCam, I just don't like developing against something that is already out of production. This would mean that I would have to re-design it in the future and I don't want to do that. If I develop something with the PropCam, it pretty much guarantees me that it will never become an actual product - if the device is successful that is.
  • rjo__rjo__ Posts: 2,114
    I did that once... with a Kodak end of life camera for a digital angiography system. Everything would have been
    fine except I lost my programmer at the same time I lost access to the camera. What a disaster.
    Unhappy customers, unhappy wife, unhappy me:)

    The lesson I learned wasn't to avoid end of life products, but to know everything about my own products, do my
    own programming and leave retail to the experts.

    The P2 should be able to handle all kinds of cameras with relative ease...

    I would look at it as a design exercise for the moment. At least study the PropCam.
    It is done really well and there are all kinds of interesting things in there that I never thought about
    before.

    If you are intent on board design, the way to avoid losing money is to ask for interest before you make the product.
    That way you are sure that your costs will at least cover your expenses.

    There are usually enough guys here to cover a small run of just about anything.





  • rjo__rjo__ Posts: 2,114
    AND... I want 8 bit parallel output... right now it is 4bits. The reason this is important is that the readout in the serial mode is 8 times longer than the read out in parallel mode... so, the frame rate for a particular integration period goes way down when I need 8 bits and have to use serial mode. The same integration period with parallel mode gives much higher FPS... outside on a bright day it might be the difference between 250 FPS and 32 FPS... big difference... numbers not accurate:)

Sign In or Register to comment.