Lets talk about AD converters:
I had not considered how profoundly the sample rate of the ADC would impact its usefulness for homing. So here are some numbers:
Type | Samples Per Second | Resolution @ 5mm/s | Bits | Differential Inputs | Interface | Data Sheet | Sample Board |
---|---|---|---|---|---|---|---|
Digital Endstop Pin | 66,666* | 0.0003mm | - | - | - | - | - |
XH711 | 80 | 0.0625mm | 16 | 2 | SPI | datasheet | ![]() |
ADS1115 | 80 | 0.0625mm | 16 | 2 | I2C | datasheet | ![]() |
ADS1232 | 80 | 0.0625mm | 24 | 2 | SPI | datasheet | ![]() |
ADS1256 | 30,000 | 0.00017mm | 24 | 4 | SPI | datasheet | ![]() |
ADS1263 | 38,000 | 0.00013mm | 32 | 5 | SPI | datasheet | ![]() |
- Note 1: the digital endstop pins are sampled at 66.6k but they use 4 consecutive readings to trigger an event. So the effective triggering rate is ~16.6k leading to the lower than expected resolution.
- Note 2: the effective resolution @ 5mm/s with multi-mcu homing is 0.125mm but timing based compensation is applied to improve that.
- Note 3: The resolution for the ADC chips is theoretical and doesn’t include oversampling, which we may well need to do.
From this chart, only the ADS1256 and ADS1263 have a data rate that approaches the digital endstop pin. The sensors with an 80 SPS speed would only allow for 2 samples before they moved farther than the multi-mcu homing distance. That is a very narrow margin for success.
I’m going to develop for the ADS1263 because:
- it supports the highest sample rate
- Its available on a relatively cheap board that can be connected to a Pi or an MCU via SPI
- It supports standard SPI (supposedly)
- It has 5 differential inputs, I have a tool changer with 4 tools so that’s “enough” inputs
- The ADS1256 board is more expensive for no obvious advantage to us
There probably is an ideal chip for this application but finding it on a ready made board is going to be tough.