VC0607 "No camera found?"

Post here about your Arduino projects, get help - for Adafruit customers!

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
User avatar
estillcn
 
Posts: 17
Joined: Mon Apr 02, 2018 4:19 pm

VC0607 "No camera found?"

Post by estillcn »

I am using an arduino and a sd shield with this ttl serial camera. I have successfully taken 2 pictures with this setup. Not sure what I did, but at some point I had disconnected the camera and connected a different sensor to the arduino, after reconnecting the camera, it was never able to be found with the arduino. I will always get the "No camera found?" answer. Should I get a new camera? I am assuming mine is broken because the code hasn't changed, and the arduino, and shield are both fine. Please help! (P.S. this is my first post, and I am unsure as to how to do these posts, please tell me if you need any new information. THANKS

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: VC0607 "No camera found?"

Post by adafruit_support_bill »

Please post some photos showing how you have the camera wired. And also please post the code you are using (if it is example code from the library or tutorial. a link will suffice).

User avatar
estillcn
 
Posts: 17
Joined: Mon Apr 02, 2018 4:19 pm

Re: VC0607 "No camera found?"

Post by estillcn »

This is the link to the github for this library: https://github.com/adafruit/Adafruit-VC ... ra-Library
There is an example that is included and that is the "snapshot" example.

I have some pictures of my setup. You will notice that there is not an SD shield, I have one and have used it but for debugging purposes I have removed it. There are two pictures showing the connection between the camera and Arduino. Then there is a picture of the soldering connections for the camera. I know that the setup says to have resistors for the camera but I have taken pictures without it before and I don't think this is a power problem. Any help would be great. I definitely feel like the answer is just getting a new camera but I don't want to resort for that.
Attachments
20180404_082417.jpg
20180404_082417.jpg (123.81 KiB) Viewed 534 times
20180404_082322.jpg
20180404_082322.jpg (161.84 KiB) Viewed 534 times
20180404_082311.jpg
20180404_082311.jpg (149.93 KiB) Viewed 534 times

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: VC0607 "No camera found?"

Post by adafruit_support_bill »

There is an example that is included and that is the "snapshot" example.

I have some pictures of my setup. You will notice that there is not an SD shield,
The snapshot example will not run without an SD card. If it does not find one, it will immediately exit:

Code: Select all

  // see if the card is present and can be initialized:
  if (!SD.begin(chipSelect)) {
    Serial.println("Card failed, or not present");
    // don't do anything more:
    return;
  }  

User avatar
estillcn
 
Posts: 17
Joined: Mon Apr 02, 2018 4:19 pm

Re: VC0607 "No camera found?"

Post by estillcn »

Yes I have already commented that out. This was so that I could debug only the camera and not have to worry about the SD card.

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: VC0607 "No camera found?"

Post by adafruit_support_bill »

The camera is a 3.3v device. So the raw 5v signals from your Arduino will overload the camera's Rx pin.

You should use a level shifter or a resistor voltage divider as shown here:

https://learn.adafruit.com/ttl-serial-c ... uino-usage

User avatar
estillcn
 
Posts: 17
Joined: Mon Apr 02, 2018 4:19 pm

Re: VC0607 "No camera found?"

Post by estillcn »

I have changed the setup to better resemble the picture. I redownloaded the sketch and there was still no response from the camera.
Attachments
20180404_091324.jpg
20180404_091324.jpg (190.89 KiB) Viewed 527 times

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: VC0607 "No camera found?"

Post by adafruit_support_bill »

That wiring looks good now. However, since the Rx pin has been exposed to signals higher than 3.3v, it is possible that the pin is damaged.

The data sheet does not specify an "absolute maximum" for signal inputs. But typical chip designs can only tolerate up to about 0.3v above the operating voltage for the chip. So a 5v signal would likely cause damage to a 3.3v device like this one.

https://cdn-shop.adafruit.com/product-f ... asheet.pdf

User avatar
estillcn
 
Posts: 17
Joined: Mon Apr 02, 2018 4:19 pm

Re: VC0607 "No camera found?"

Post by estillcn »

So I should get a new one is what you're saying?

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: VC0607 "No camera found?"

Post by adafruit_support_bill »

Yes. There is a high probability the Rx pin on that one is damaged.

User avatar
estillcn
 
Posts: 17
Joined: Mon Apr 02, 2018 4:19 pm

Re: VC0607 "No camera found?"

Post by estillcn »

Ok, thank you for the help, I will try and update you when I get the new one to see if that was the problem.

User avatar
estillcn
 
Posts: 17
Joined: Mon Apr 02, 2018 4:19 pm

Re: VC0607 "No camera found?"

Post by estillcn »

I have since gotten new cameras and have tried them with the same wiring as shown above and they are still not being detected. Please tell me if you have any other ideas as to what might be the problem. Thanks in advance!

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: VC0607 "No camera found?"

Post by adafruit_support_bill »

Please post the code you are using to communicate with the cameras.

User avatar
estillcn
 
Posts: 17
Joined: Mon Apr 02, 2018 4:19 pm

Re: VC0607 "No camera found?"

Post by estillcn »

Code: Select all

// This is a basic snapshot sketch using the VC0706 library.
// On start, the Arduino will find the camera and SD card and
// then snap a photo, saving it to the SD card.
// Public domain.

// If using an Arduino Mega (1280, 2560 or ADK) in conjunction
// with an SD card shield designed for conventional Arduinos
// (Uno, etc.), it's necessary to edit the library file:
//   libraries/SD/utility/Sd2Card.h
// Look for this line:
//   #define MEGA_SOFT_SPI 0
// change to:
//   #define MEGA_SOFT_SPI 1
// This is NOT required if using an SD card breakout interfaced
// directly to the SPI bus of the Mega (pins 50-53), or if using
// a non-Mega, Uno-style board.

#include <Adafruit_VC0706.h>
#include <SPI.h>
#include <SD.h>

// comment out this line if using Arduino V23 or earlier
#include <SoftwareSerial.h>         

// uncomment this line if using Arduino V23 or earlier
// #include <NewSoftSerial.h>       

// SD card chip select line varies among boards/shields:
// Adafruit SD shields and modules: pin 10
// Arduino Ethernet shield: pin 4
// Sparkfun SD shield: pin 8
// Arduino Mega w/hardware SPI: pin 53
// Teensy 2.0: pin 0
// Teensy++ 2.0: pin 20
#define chipSelect 10

// Pins for camera connection are configurable.
// With the Arduino Uno, etc., most pins can be used, except for
// those already in use for the SD card (10 through 13 plus
// chipSelect, if other than pin 10).
// With the Arduino Mega, the choices are a bit more involved:
// 1) You can still use SoftwareSerial and connect the camera to
//    a variety of pins...BUT the selection is limited.  The TX
//    pin from the camera (RX on the Arduino, and the first
//    argument to SoftwareSerial()) MUST be one of: 62, 63, 64,
//    65, 66, 67, 68, or 69.  If MEGA_SOFT_SPI is set (and using
//    a conventional Arduino SD shield), pins 50, 51, 52 and 53
//    are also available.  The RX pin from the camera (TX on
//    Arduino, second argument to SoftwareSerial()) can be any
//    pin, again excepting those used by the SD card.
// 2) You can use any of the additional three hardware UARTs on
//    the Mega board (labeled as RX1/TX1, RX2/TX2, RX3,TX3),
//    but must specifically use the two pins defined by that
//    UART; they are not configurable.  In this case, pass the
//    desired Serial object (rather than a SoftwareSerial
//    object) to the VC0706 constructor.

// Using SoftwareSerial (Arduino 1.0+) or NewSoftSerial (Arduino 0023 & prior):
#if ARDUINO >= 100
// On Uno: camera TX connected to pin 2, camera RX to pin 3:
SoftwareSerial cameraconnection = SoftwareSerial(2, 3);
// On Mega: camera TX connected to pin 69 (A15), camera RX to pin 3:
//SoftwareSerial cameraconnection = SoftwareSerial(69, 3);
#else
NewSoftSerial cameraconnection = NewSoftSerial(2, 3);
#endif

Adafruit_VC0706 cam = Adafruit_VC0706(&cameraconnection);

// Using hardware serial on Mega: camera TX conn. to RX1,
// camera RX to TX1, no SoftwareSerial object is required:
//Adafruit_VC0706 cam = Adafruit_VC0706(&Serial1);

void setup() {

  // When using hardware SPI, the SS pin MUST be set to an
  // output (even if not connected or used).  If left as a
  // floating input w/SPI on, this can cause lockuppage.
#if !defined(SOFTWARE_SPI)
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
  if(chipSelect != 53) pinMode(53, OUTPUT); // SS on Mega
#else
  if(chipSelect != 10) pinMode(10, OUTPUT); // SS on Uno, etc.
#endif
#endif

  Serial.begin(9600);
  Serial.println("VC0706 Camera snapshot test");
  
  // see if the card is present and can be initialized:
  if (!SD.begin(chipSelect)) {
    Serial.println("Card failed, or not present");
    // don't do anything more:
    return;
  }  
  
  // Try to locate the camera
  if (cam.begin()) {
    Serial.println("Camera Found:");
  } else {
    Serial.println("No camera found?");
    return;
  }
  // Print out the camera version information (optional)
  char *reply = cam.getVersion();
  if (reply == 0) {
    Serial.print("Failed to get version");
  } else {
    Serial.println("-----------------");
    Serial.print(reply);
    Serial.println("-----------------");
  }

  // Set the picture size - you can choose one of 640x480, 320x240 or 160x120 
  // Remember that bigger pictures take longer to transmit!
  
  cam.setImageSize(VC0706_640x480);        // biggest
  //cam.setImageSize(VC0706_320x240);        // medium
  //cam.setImageSize(VC0706_160x120);          // small

  // You can read the size back from the camera (optional, but maybe useful?)
  uint8_t imgsize = cam.getImageSize();
  Serial.print("Image size: ");
  if (imgsize == VC0706_640x480) Serial.println("640x480");
  if (imgsize == VC0706_320x240) Serial.println("320x240");
  if (imgsize == VC0706_160x120) Serial.println("160x120");

  Serial.println("Snap in 3 secs...");
  delay(3000);

  if (! cam.takePicture()) 
    Serial.println("Failed to snap!");
  else 
    Serial.println("Picture taken!");
  
  // Create an image with the name IMAGExx.JPG
  char filename[13];
  strcpy(filename, "IMAGE00.JPG");
  for (int i = 0; i < 100; i++) {
    filename[5] = '0' + i/10;
    filename[6] = '0' + i%10;
    // create if does not exist, do not open existing, write, sync after write
    if (! SD.exists(filename)) {
      break;
    }
  }
  
  // Open the file for writing
  File imgFile = SD.open(filename, FILE_WRITE);

  // Get the size of the image (frame) taken  
  uint16_t jpglen = cam.frameLength();
  Serial.print("Storing ");
  Serial.print(jpglen, DEC);
  Serial.print(" byte image.");

  int32_t time = millis();
  pinMode(8, OUTPUT);
  // Read all the data up to # bytes!
  byte wCount = 0; // For counting # of writes
  while (jpglen > 0) {
    // read 32 bytes at a time;
    uint8_t *buffer;
    uint8_t bytesToRead = min(32, jpglen); // change 32 to 64 for a speedup but may not work with all setups!
    buffer = cam.readPicture(bytesToRead);
    imgFile.write(buffer, bytesToRead);
    if(++wCount >= 64) { // Every 2K, give a little feedback so it doesn't appear locked up
      Serial.print('.');
      wCount = 0;
    }
    //Serial.print("Read ");  Serial.print(bytesToRead, DEC); Serial.println(" bytes");
    jpglen -= bytesToRead;
  }
  imgFile.close();

  time = millis() - time;
  Serial.println("done!");
  Serial.print(time); Serial.println(" ms elapsed");
}

void loop() {
}
Last edited by estillcn on Mon Apr 16, 2018 4:40 pm, edited 1 time in total.

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: VC0607 "No camera found?"

Post by adafruit_support_bill »

Have you changed the baud-rate of the camera? You have it at 9600. By default it is 38400.

Locked
Please be positive and constructive with your questions and comments.

Return to “Arduino”