Writing a library - returning a char array

Note you have somewhat of a bug : You need to store manufacturer as an array of uint8_t (why not char ?), not uint8_t*, otherwise each element is a pointer and returning it safely becomes more complicated.

to your question, and as suggested by @gfvalvo, You can return a pointer to the internal array as const uint8_t* const, which prevents the caller from modifying the data or the pointer itself. For your class, it would look like this:

class lens {
  public:
    bool setManufacturer(const uint8_t* name) {
      ...
      return true;
    }

    const uint8_t* const getManufacturer() const {
      return manufacturer;
    }

  private:
    uint8_t manufacturer[15];
};