TTL camera with AltSoftSerial giving no response

PaulS:
It was nice of you to investigate, and develop a fix. How are you removing the dependency? By having the user provide the soft or hard serial instance to use?

I''m not sure that my solution is the ideal. It does mean that using a mega2560, it will remove any option of using softwareSerial.

Here's just one example of what I mean about the unnecessary dependency issue. When this runs, if you're using hardwareSerial, all should all be well EXCEPT it just won't compile unless you have the softwareSerial library present. (this is exactly as it comes)

void Adafruit_VC0706::sendCommand(uint8_t cmd, uint8_t args[] = 0, uint8_t argn = 0) {
  if(swSerial) {
#if ARDUINO >= 100
    swSerial->write((byte)0x56);
    swSerial->write((byte)serialNum);
    swSerial->write((byte)cmd);

    for (uint8_t i=0; i<argn; i++) {
      swSerial->write((byte)args[i]);
      //Serial.print(" 0x");
      //Serial.print(args[i], HEX);
    }
#else
    swSerial->print(0x56, BYTE);
    swSerial->print(serialNum, BYTE);
    swSerial->print(cmd, BYTE);

    for (uint8_t i=0; i<argn; i++) {
      swSerial->print(args[i], BYTE);
      //Serial.print(" 0x");
      //Serial.print(args[i], HEX);
    }
#endif
  } else {
#if ARDUINO >= 100
    hwSerial->write((byte)0x56);
    hwSerial->write((byte)serialNum);
    hwSerial->write((byte)cmd);

    for (uint8_t i=0; i<argn; i++) {
      hwSerial->write((byte)args[i]);
      //Serial.print(" 0x");
      //Serial.print(args[i], HEX);
    }
#else
    hwSerial->print(0x56, BYTE);
    hwSerial->print(serialNum, BYTE);
    hwSerial->print(cmd, BYTE);

    for (uint8_t i=0; i<argn; i++) {
      hwSerial->print(args[i], BYTE);
      //Serial.print(" 0x");
      //Serial.print(args[i], HEX);
    }
#endif
  }
}

So for this I've just added in front of it

#if defined(__AVR_ATmega2560__)
void Adafruit_VC0706::sendCommand(uint8_t cmd, uint8_t args[] = 0, uint8_t argn = 0) {

hwSerial->write((byte)0x56);
hwSerial->write((byte)serialNum);
    hwSerial->write((byte)cmd);
    for (uint8_t i=0; i<argn; i++) {
      hwSerial->write((byte)args[i]);
    }
}
#else ....

Personally, if I had more time to work on it, I'd be inclined to make an abstract class to handle the serial and make the rest of the library much cleaner. This would make it easier to include or leave out the softwareSerial as the user sees fit.