Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MAX31865 Support (RTD for more accuracy at lower temps) #197

Open
TheAdeo opened this issue Nov 6, 2024 · 8 comments
Open

MAX31865 Support (RTD for more accuracy at lower temps) #197

TheAdeo opened this issue Nov 6, 2024 · 8 comments

Comments

@TheAdeo
Copy link

TheAdeo commented Nov 6, 2024

Hi, I am wondering how difficult it would be to add support for RTD amplifiers like the common MAX31865.
This is because for lower temperature applications like PID controlled convection ovens RTD offer much greater accuracy and repeatability and stability.
I know that these are not the applications for which this controller was written, but they would benefit greatly from being supported by it.

Thanks

@jbruce12000
Copy link
Owner

jbruce12000 commented Nov 10, 2024

The max-31865 probably would work fine but might require lots of code changes. I have not tried it. It would require uncommenting the module in requirements.txt and then closely examining the adafruit module to see how it handles errors. last, changes would need to be made to oven.py... TempSensorReal and ThermocoupleError classes would need to be created.

@jbruce12000
Copy link
Owner

Probably a few hours of work plus hardware time.

I don't have a max-31865 or rtd thermocouples, so I've not tried to do this. I've certainly thought about it, but for my application[s] that type of accuracy/repeatability is not needed. I could see this being used by scientists.

@jbruce12000
Copy link
Owner

Tell ya what, to make a small impact in the scientific community, you buy the hw... I'll write and test the code.

I think the total for a MAX31865 plus an RTD is about $26 + tax.

https://www.adafruit.com/product/3328

@jbruce12000 jbruce12000 reopened this Nov 12, 2024
@TheAdeo
Copy link
Author

TheAdeo commented Nov 12, 2024

Yeah I already have the MAX31865 and both a PT100 and some PT1000s, so I would be able to test it. Thank you very much <3

@TheAdeo
Copy link
Author

TheAdeo commented Nov 12, 2024

I don't want to scope creep you too much, but for a scientific precision application it would be better if you could set the controller operating frequency, as 2s intervals are too long for small and fast systems. And also I can't seem to find a way to measure and set the temperature in °C instead of °F

@jbruce12000
Copy link
Owner

without having hardware locally to test the changes on, the back-and-forth of getting you to test this would be too much effort. if you wish to make the code changes, submit a PR.

both of the things you mention above are settings.

see

sensor_time_wait = 2

see
temp_scale = "f" # c = Celsius | f = Fahrenheit - Unit to display

@jbruce12000
Copy link
Owner

A couple of things...

  1. sensor_time_wait was tested at 1/10th of a second and seems to work, but this is likely to cause problems with clients
  2. it's pretty unlikely that you have a system that heats and cools at a rate that requires at sensor_time_wait under 1s. Maybe, if it was like a high powered laser striking a plate in a vacuum of a small volume, but no oven that uses elements is ever gonna heat fast enough to need to take a sample every second.

Then again, I'm no scientist. Maybe you have a unique case.

@TheAdeo
Copy link
Author

TheAdeo commented Nov 12, 2024

Oh yeah if they're just settings in the config.py then it's good.
As for the sensor_time_wait, a shorter interval coupled to a RTD can lead to a much better accuracy and lower fluctuations, but yes, 1s is enough.

For the MAX31865: I can't spare that much money, but if you settle for Aliexpress you can get the module plus a pt100 for just 5$, and I would be happy to pay that

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants