Just give ADS some time to react to write and clear "ready" bit (or you just read previous result, maybe different pin, yes). C code is way faster than Python or shell. if (write(fd, buf, 3) != 3) { perror("Write to register 1"); exit(-1); } usleep(10000); ////////////////////////////// // wait for ...