Hello, I am currently in the micro selection process for a project looking to go to production that requires the capturing of an image and the sending of that image over Bluetooth. Power consumption is a major concern for this project and from my initial calculations the nRF52840 meets those requirements.
I saw the example with the OV2640 Arducam on youtube and then the code on Github and this is getting pretty close to my application.
Obviously at scale, I cannot use the Arducam even though it solves the image buffer and parallel data to SPI issue very nicely. But the OV2640 works for this application (built-in JPEG compression is a must), I am open to other options if they are easier to interface and scalable.
My question is, assuming that the camera I use has a parallel interface like the OV2640, is there an easy or elegant way of capturing images without bit banging (speed and power concerns)?
The most scalable method I could come up with at the moment is the following, note these 2 modes will happen independently, these are simplified, there will be more interactions to enable this functionality, this I just to understand the image data flow:
Capturing Images: OV2640 -> Parallel to Serial Shift Register (this or similar) -> Serial Port #1 on nRF52840 -> easyDMA input buffer -> processor handles buffer transfer -> easyDMA output buffer -> Serial Port #2 probably SPI -> external SRAM or FLASH
Transmitting Images: external SRAM or FLASH -> easyDMA input buffer -> processor handles buffer transfer -> BT transfer buffer
Will this work? Are there any concerns? Is there a simpler way? Are there other imaging solutions that will be easier to implement that are also scalable?
Note that the external SRAM or FLASH image buffer is a must for this application, streaming the image without storing is not an option.