Is it possible to print a custom object by passing it to Serial.print()?
There is a class called Printable. If you inherit from that, and implement the size_t printTo(Print&amp; p) function, your object can then be passed to the print functions:

class myClass : public Printable {
    private:
        int _val1;
        int _val2;

    public:
        myClass(int v1, v2) : _val1(v1), _val2(v2) {}
        size_t printTo(Print&amp; p) const {
             size_t r = 0;

             r += p.print("One: ");
             r += p.print(_val1);
             r += p.print(" Two: ");
             r += p.print(_val2);
             return r;
       }
};


Then:

myClass ob(4, 5);

Serial.println(ob);
=&gt; One: 4 Two: 5