# I need to read a lot of analog signals without any analog pins

I have an nvidia xavier with gpio running linux. It should work very similarly to raspberry pis. I need to connect a bunch of pressure sensors, thermistor, potentiometers, and vibration sensors to my robot. I expect to have over 100 analog sensors that I need to read from so I can control my servo motors accordingly.

Is there a good on the market chip with a linux library that makes it easy for me to daisy chain and read analog values from over 100 sensors?

If not, what are the key components I would need to create a circuit that accomplishes such a goal?

• you first question cannot be answered because we do not know what you would consider easy ............. second question: the key components would be A/D converters and possibly analog multiplexers ..... also you need to determine if some of the sensors could be read by a digital input instead of an analog input – jsotola Feb 16 '19 at 7:45

Depending on the resolution you need, you could use a few multi-channel ADC chips. The TLC1543IN is a through-hole (would work in a breadboard) 10-bit 11-input ADC that communicates over SPI. Connect however many you need to the same SPI bus, and then wire each chip's CS (chip select) pin to a GPIO on the Xavier. Whenever a chip's CS line is held high (at VCC), it'll ignore all activity on the SPI bus, allowing you to have multiple identical chips on the same bus - simply set all CS lines to high except for that of the ADC chip you wish to communicate with. I doubt there's a Linux driver, but it shouldn't be too hard to slap something together in C/C++. You could implement all of this with nothing but breadboards/perfboards, saving you the need to make a custom PCB.

Alternately, you could use a few microcontrollers communicating over SPI/I2C/CAN/your protocol of choice. something like an ATTINY828 could work - each chip is only \$1 or so, and has 28x 10-bit ADC channels. For more power and resolution, the STM32F303ZDT6 is a good choice - \$8/chip, but 40x 12-bit channels. Either way, that'll require some extra programming and probably PCB development.

Since we don't know what kind of sensors you want, here is the most specific-broad answer I (and maybe anybody) can give you: