Uno to Mega 2560 problem

Hey guys, So basically I am trying to use a t6603 CO2 sensor on a Mega 2560. It works fine on the UNO, but only getting zeros on the Mega. The arduino libraries used are from here https://github.com/thebrianmanley/T6603. I can’t seem to figure it out, so any help is appreciated, thanks.

example sketch

*/
#include "SoftwareSerial.h"
#include <T6603.h>

T6603 sensor;

void setup() {
    Serial.begin(19200);
    sensor.begin(9, 7);  
}

void loop() {
    Serial.println(sensor.get_co2());
    delay(2000);
}

t6603.cpp

*/
#include <SoftwareSerial.h>
#include "T6603.h"

T6603::T6603() {

}

T6603::~T6603() {
    
    if ( NULL != _serial ) {
        delete _serial;
        _serial = NULL;
    }
}

void T6603::begin(uint8_t rx, uint8_t tx) {

    _serial = new SoftwareSerial(rx, tx);
    _serial->begin(19200);
}

int T6603::get_co2(void) {

    _serial->overflow();
    _serial->write(FLAG);
    _serial->write(BRDCST);
    _serial->write(0x02);
    _serial->write(CMD_READ); 
    _serial->write(CO2_PPM);
    delay(50);

    for ( int attempts = 0; attempts < MAX_ATTEMPTS; attempts++ ) {

        byte reading[5]; 
        int bytesRead = 0;        
        
        while ( _serial->available() && bytesRead < 6) {
            reading[bytesRead] = _serial->read();
            bytesRead++;
            delay(10);
        }

        if ( reading[0] == 0xFF && reading[1] == 0xFA ) {
            int i = 0;
            i |= reading[3] & 0xFF;
            i <<= 8;
            i |= reading[4] & 0xFF;
            _lastReading = i;
            return (_lastReading); 
        }
    }
    
    return (_lastReading);
}

byte T6603::get_status(void) {

    _serial->overflow();
    _serial->write(FLAG);
    _serial->write(BRDCST);
    _serial->write(0x01);
    _serial->write(CMD_STATUS); 
    delay(50);

    for ( int attempts = 0; attempts < MAX_ATTEMPTS; attempts++ ) {

        byte reading[4]; 
        int bytesRead = 0;        
        
        while ( _serial->available() && bytesRead < 4) {
            reading[bytesRead] = _serial->read();
            bytesRead++;
            delay(10);
        }

        if ( reading[0] == 0xFF && reading[1] == 0xFA ) {
            return ( reading[3] );
        }
    }
    
    return (NULL);
}

void T6603::set_idle(bool onOff) {

    byte cmd = onOff ? 0x01 : 0x02;
    
    _serial->overflow();
    _serial->write(FLAG);
    _serial->write(BRDCST);
    _serial->write(0x02);
    _serial->write(CMD_IDLE); 
    _serial->write(cmd);
    delay(50);

    for ( int attempts = 0; attempts < MAX_ATTEMPTS; attempts++ ) {

        byte reading[3]; 
        int bytesRead = 0;        
        
        while ( _serial->available() && bytesRead < 3) {
            reading[bytesRead] = _serial->read();
            bytesRead++;
            delay(10);
        }

        if ( reading[0] == 0xFF && reading[1] == 0xFA ) {
            return;
        }
    }
        
}

T6603.h

*/
#include "Arduino.h"
#include <SoftwareSerial.h>

#define MAX_ATTEMPTS 10

class T6603 {

 private:
    static const byte FLAG          = 0xFF;
    static const byte BRDCST        = 0xFE;
    static const byte CMD_READ      = 0x02;
    static const byte CMD_UPDATE    = 0x03;
    static const byte CMD_STATUS    = 0xB6;
    static const byte CMD_IDLE      = 0xB9;

    static const byte CO2_PPM       = 0x03;
    static const byte SERIL         = 0x01;
    static const byte ELEVATION     = 0x0F;


    SoftwareSerial* _serial;
    int _lastReading;    
    
 public:
    T6603();  
    ~T6603();  
    void begin(uint8_t, uint8_t);
    int get_co2(void);
    byte get_status(void);
    void set_idle(bool);
};

Look in the reference under limitations. Note the Mega limitations.

Got it working on pins 10 and 11,
Thanks for the help.