public byte read() {
            int value = 0;
            value |= pins[0].read() ? 1 << 0 : 0;
            value |= pins[1].read() ? 1 << 1 : 0;
            value |= pins[2].read() ? 1 << 2 : 0;
            value |= pins[3].read() ? 1 << 3 : 0;
            value |= pins[4].read() ? 1 << 4 : 0;
            value |= pins[5].read() ? 1 << 5 : 0;
            value |= pins[6].read() ? 1 << 6 : 0;
            value |= pins[7].read() ? 1 << 7 : 0;
            return (byte) value;
        }