Hi-- I'm using a ReefAngel to control a planted freshwater aquarium, including using the RA pH probe to control my CO2 injection system. In contrast to most reef setups, with a freshwater aquarium you are typically shooting for water that is slightly acidic, say in the 6.5-7.0 range.

In the pH calibration process on the RA, the standards used are pH=7 and pH=10, appropriate for the alkaline pH values that I gather most saltwater setups are trying to target. I assume that the reef angel is doing some kind of functional (linear?) interpolation to calculate pH between these two values. However, for pH's below 7.0 the pH calculation must be an extrapolation of the functional fit between 7 and 10, rather than the interpolation that pH's between 7 and 10 would allow. Typically, extrapolations are more error-prone than interpolations. So a couple questions:

- How does reef angel calculate pH based on the calibration values? is it a simple linear relation? I'm having a hard time finding that part of the calculation in the libraries. If its linear and the relevant slope in the 7-10 range is about the same for pH<7, then there shouldn't be a problem using it for pH measurements in a freshwater aquarium.

- Otherwise, it might make sense for those of us trying to use the RA for freshwater setups to calibrate the probe for the acidic end of the pH spectrum, using say, pH=4 and pH=7 standards for the calibration. I've got only a vague sense of what needs to be done in the SetupCalibratePH functions in the libraries, and no idea what changes need to be made in the part of the code that does the actual pH calculation (nor where that part of the code even exists). Is it possible to easily modify the ReefAngel to use a 4-7calibration standard, rather than a 7-10 calibration?

I'm not much of a programmer, but would be happy to fiddle around with this problem if someone can point me at the relevant sections of code. Thanks much for any help or insight...

Yes, it is just simple interpolation and a pH probe has a fairly linear response, so even though it is extrapolating, the error shouldn't be concerning.But, if you are really trying to change the libraries, here is what needs to be done:Change your SetupCalibratePH() function to:

The above SetupCalibratePH() function is the adapted version of new function that will be released on the next libraries update. I just changed a couple days ago to have better resolution and noise cancellation.So, what I changed for your case was:

How did this work out? I am about to start dosing my freshwater planted tank with CO2 as well and wanted a more accurate pH reading. I will give this a try but I would like to know how it worked out for billybob.

I add it but there is something wrong with code, I have only few futures and Binary sketch size is 33,912 bytes, what can I do to check if there is any problem?

see:

The following features were automatically added:Watchdog TimerVersion Menu

The following features were detected:Dimming SignalWifi AttachmentCalibrate pH Menu with ChoicesSimple MenuBinary sketch size: 33,912 bytes (of a 32,256 byte maximum)processing.app.debug.RunnerException: Sketch too big; see http://www.arduino.cc/en/Guide/Troubleshooting#size for tips on reducing it. at processing.app.Sketch.size(Sketch.java:1844) at processing.app.Sketch.build(Sketch.java:1775) at processing.app.Sketch.build(Sketch.java:1750) at processing.app.Editor$DefaultRunHandler.run(Editor.java:1867) at java.lang.Thread.run(Thread.java:619)