Low Resolution camera for WisBlock based device

Issue:
I’m looking for a camera module that I can connect to WisBlock in this setup: RAK4631+RAK5005-O+RAK5860 or RAK4631+RAK5005-O+RAK2305

I am looking for a way to capture a low resolution image and slowly transfer it over LoRa or Cellular when needed.

Setup:
RAK4631+RAK5005-O+RAK5860 or RAK4631+RAK5005-O+RAK2305

Details:
Any ideas what camera module can fit my needs would be more than appreciated.

Thank you very much,
C

I can’t recommend and exact part number, but can give you some key features to narrow your research (from the requirements you posted). The camera module needs to:

  • Be I2C or SPI compatible, so you don’t have to mess with other protocols not yet supported by RAK core modules.

  • Include a FIFO, otherwise you will need lots of RAM to store your image.

  • Native command for scale image, so you don’t have to juggle with framebits.

  • Support snapshot mode.

  • Support RAW output format (easier to manage than compressed formats)

You could look at some of the things people use with the more primitive ATmega-based Arduinos.

But the key issue is that the extreme bandwidth limitation of LoRa makes sending images over LoRaWAN all but unworkable.

Think about what the minimum x * y * greyscale resolution to have anything useful would be. Then pack to bytes, and compare against LoRa packet lengths at various data rates. If you can use SF7 you might barely accomplish something split over multiple packets spaced out in time, but beyond that it’s really unworkable - you’d need to look at a cellular data solution, either traditional or one of the “in-between” scale technologies like LTE-M.

You can have a look at this camera - OV7670. This is very common.

You need many wires to connect it to WisBlock Core RAK4631 though. You can check RAK5804 WisBlock IO Extension Module to have access to most of the IO pins of RAK4631. Here’s the link https://docs.rakwireless.com/Product-Categories/WisBlock/RAK5804/Datasheet/#overview.

As for guide, you can look on tutorials how to connect OV7670 to nRF52840 since that is the same MCU used on RAK4631. There must be some libraries compatible to that.

2 Likes

Btw @celster, I moved this topic to WisBlock section.

1 Like

@carlrowan and all, thank you very much! This is very helpful.

1 Like

any updates on this approach? Looking to use an OV2640 or OV7670 but wondering if I’ll run into any issues with the standard SCCB interface

Welcome to the forum @geanner

I don’t think anyone has ever connected successfully a camera to the RAK4631.

But the community here might proof me wrong.

While I have not yet applied RAKwireless to sending images via LoRaP2P, I did succeed in doing so with two different Arduino Uno R3 arrangements (GitHub - SoothingMist/Scalable-Point-to-Point-LoRa-Sensor-Network: Builds a peer-to-peer network of LoRa transceivers for remote sensing. Uses flood-messaging to eliminate need for LoRaWAN and third-party services.).

That particular project is gradually being transitioned to RAKwireless. Unfortunately, I too do not see how to connect a camera directly to RAKwireless equipment. It may involve USB connection and may use an Rpi as a programmable USB Switch. Lots to go on this but hope one approach or the other can be adapted to RAKwireless equipment.

Is it possible to use the USB port on the RAK5804 to connect to an external device? For instance, could one connect to an Arduino R3 and communicate that way? I have done that between Rpi and Arduino so that Rpi can receive sensor data directly from Arduino.

Reading through RAK5804 documentation for the RAK19001 with RAK11310, it shows no examples nor which library to load for using the RAK5804’s USB port.

Hi @SoothingMist ,

The USB of RAK5804 has the same connection to the USB connection of the RAK19001 baseboard. You can send data from the core RAK11310 to rasbperry pi via that USB. But if you only need USB connection and not the IO access, then you can just directly use the USBC of RAK19001.

From what you say, the RAK5804 USB does not require a library to be added to the user code.

What I had hoped to do is use the baseboard’s USB for programming the RAK11310 and the RAK5804 USB for connection to a pre-programmed Arduino Uno R3. If that is possible then it would be possible to easily connect a PixyCam to RAK equipment since the PixyCam plugs directly into the Uno using a nice cable. This avoids the “many wires” problem.

Can the two USB ports be addressed independently? In other words can a program running on RAK11310 address both the serial monitor via the baseboard’s USB and the Uno through the RAK5804 USB?

The USB connector on the RAK5804 is goes to the same USB port on the RAK11310 than the USB connector on the BaseBoard. You cannot use both together.

The RAK11310 has only one USB port, you cannot connect two USB hosts to it.

AH ! Thank you both for your guidance.

It seems then that the Uno and RAK baseboard USB ports could be used to enable their intra-communication. Both would have to be preprogrammed. If in-process feedback is needed then the associated LED displays would have be be installed. Power would have to be supplied to the RAK via battery.

Please tell me if I am wrong in my thinking. This is a fine challenge that is most interesting. If successful, it would establish one way to add a camera while the RAK device broadcasts the data. This is basically the approach I took with the Rpi/Uno, which I am now transitioning to RAK. The need for Rpi would be eliminated. Essentially, camera talks to Uno, Uno talks to RAK, RAK broadcasts as a network node, RAK basestation receives and talks to a PC, PC displays the picture. One can imagine doing this with a cellphone instead of a PC.

Have to learn about powering RAK via battery since the power supply also uses the USB port. Should not be a big deal, according to the documentation.