What is the FSD on an ESP32C3 ADC?
The docs say with
adc_oneshot_chan_cfg_t ADC1CH2config = {.bitwidth = ADC_BITWIDTH_12,.atten = ADC_ATTEN_DB_12,};
It's about 2v5, but it depends on VREF... "Among different chips, the Vref varies, the median is 1.1v"... -12db and an FSD of 1.1 should be a max voltage of 4.37898v?
In the past I've guestimated readings AKA measure the analougue voltage on the LM335 and make up a scalling factorto that from the digitized number.
Here I'm going to inject various discrete voltages into the ADC with this arragement and use the data to determine the real truth for (in this case an ESP32c3 on a Seeed Studio board.
For each measurement I sampled the value 100 times with a vTaskDelay(50); between each. Values were between 1 and 8 LSB different... i.e. a 0.20% variance.

| DVM measured |
ADC conversion |
| 2.838v | 4093 |
| 2.804v | 4088 |
| 2.500v | 3589 |
| 2.000v | 2850 |
| 1.507v | 2143 |
| 1.436v | 2035 |
| 1.255v | 1773 |
| 1.000v | 1410 |
| 0.871v | 1220 |
This looks like FSD is at 2.84v, with the LM335 this is a max measurable temperature of 284K or 10.85°C.
The numbers, if plotted look linear, but the confidence interval R2 is not quite 1!
It seems the ESP32-C3 ADC, at the low and high ends, is non linear.
To check this over time I adjusted the voltage to get an ADC conversion value of around 2048 (in reality I got to 2035) and measured the voltage @ 1.436 - I did this test twice, 30min apart. 2035 ±3 is an accurate repeatable reading (±0.147%).
I want to measure the temperature in a walk in freezer, values from -30°C to +30°C it should produce output voltages between 2.431v and 3.031v (at 0.01v per K).
A resistor divider WILL be necessary to prevent an overrage situation.
I've used 46.8kΩ and 19.95kΩ arranged to give me voltages at the ESP32 from 1.68 to 2.12, far away from the non-linearity and within the 0 ~ 2500mV range from the Espressif documentation
The LM335 is connected to 5v (I don't use the 3v3 from the ESP32c3 supply since there isn't a lot of head room). Searches will tell you 57°C is acheiveble, but that's crap, once you take (even a low 330Ω) bias resistor into account the limit is closer to 40°C before the sensor runs out of current.
I use a 3k3 bias current resistor.