Precision Analog Usage/Range

Hello,

I have a PT100 oil temp sensor that I’d like to use in the 0-512mV range on a precision analog input.

When I select analog, none of the precision analogs show - the only way I can get a precision analog selection is to use Thermocouple K, and that’s not what’s really happening here.

I also have other 0-5v sensors I want to use on precision analog and discovered that I can change the range here:

but 0-5 is not an option.

Are these two things related somehow?
Do I need to use a custom channel and map it there?
how would I control pullups and pulldowns (or even range) in that case?

My hardware isn’t here yet - do I need to be connected to actual hardware in order to enable these various settings? Documentation is light on all this and I’ve been fumbling around trying to find the right solution. Any help is appreciated.

Having hardware changes nothing.
Is there a way to control pullups/pulldowns, se/de, and ranges?
I’ll figure out the rest if I can get to that point.

Hi,

Currently, the precision analogs are implemented only for thermocouple K, but there is an option to create a custom configuration.

A full 0-5 V range is not available at this moment. We have that as one of the things to implement, but it’s tied to a technical problem that will take significant time to solve.

Settings under “ECU / Hardware” are dedicated to each chip. A chip consists of four inputs. Inputs from 1-4 are Chip A, and inputs 5-8 are Chip B. It’s not possible to change those settings on a per-input basis.

Each precision analog is also sampled at most 40 times per second. That means those inputs are not the best for signals that change quickly and need a quick response. Temperature sensors (up to 512 mV) and switches are a good use case for those inputs.

Regarding custom configuration:
To set options that are per input, you can assign the input anywhere, change the setting, and remove the assignment. Settings for the input will be remembered and applied even if the input is not assigned.

To make a custom sensor calibration, create a table in the project tree. Add a precision analog voltage as the axis in the added table. Fill in the table with physical values corresponding to the specified input voltage. The value from that table will be your sensor value.

You can assign the output of that table as a custom source value in a specific sensor.

P.S.
We will increase the priority for the additional precision analog features.

Understood. I do intend to use these for slow moving temperature inputs.
Thanks for taking the time to reply - I don’t like the idea of ‘ghost settings’ - but it’ll have to do! It’s also nice to know that settings are per chip.

Don’t worry about making this a higher priority - there are likely things already there (I’m more interested in closed-loop transmission line pressure as a higher priority). Keep chipping, looking forward to the future of this product!

As always, happy to test anything for you while I have this on the bench - I’m an EE thats done a couple of decades of OEM/aftermarket automotive electronics (including firmware).

To continue,
Will full resolution of these channels be available in the future?

I made a table and the axis resolution for the precision inputs appears to be 4mV. Ideally it’d be ~8uV/bit for a 16bit input.

I think ‘Precision analog 1 Voltage’ is defaulting to 8bits of resolution. Is there a workaround to get full resolution of a precision analog input? This is a bit dissapointing - I was looking forward to using these when I bought my unit. I also now wonder the resolution of an EGT if I were to try those too.

It’s interesting that it allows .516, so the backing variable/channel must be in excess of 8bits anyways?

Hi,
Sorry for the late response.
I was on vacation.

I think you missed one crucial piece of information: the unit.
“Precision analog X voltage” is the input voltage in millivolts.
The channel is a signed 16-bit value with a divider of 128.

0.516 in the axis cell is 0.516 mV, which is 516 uV.
The resolution for this channel is, in fact, 8 uV/bit.

Thank you! I appreciate the technical details very much - I hope they make it into the help text for future users.

An int16_t range of -32768 to +32767 results in a mV range of -256mV to +255.992mV. Experimenting in the table verifies these values.

The inputs have a range of -256/+255mV regardless of single ended or differential? I just looked at the pinout documentation and assumed it was 0-512mV as written (I understand that 0-5v is not available yet). In this case, assume that the documentation is wrong and the input is +/-255mV until future enhancements arrive?

Thanks for continuing to walk me through this as I understand more about how things are done here. I’m learning a lot and appreciate your patience with me.

Yes, there are still some inconsistencies.

We had to change the chips for precision analog inputs, because the ones we used in the beginning were not available anymore (covid times).

This forced us to change the measurement range, and some things are messy as a result. And it’s hard to change some things without breaking compatibility with existing tunes.

We will sort all of that out when we start working on features for the precision inputs.

I’ve got a setup on the bench where I feed +/-256mV into the precision inputs. I see some further issues such as a 0-256mV range and the odd channels are pegged at 255mV (not working) and even channels are measuring my inputs (incorrectly).

All that said, I’ll just shelve the idea of using the precision inputs for things other than a K-type thermocouple until they’re developed further.

Thanks again :+1:
Looking forward to the future of this ecu.