Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
Hello,
I created a DIY robot to perform water analysis and to automate the balling supplementation. I would like to know from you if some people are interested to reproduce it. If so, I will create a true documentation, assembly instruction, some tutorials (peristaltic pump calibration, how to calibrate for new tests, etc.).
Let's start with a video showing the robot in action.
It is running on my tank with great accuracy since few weeks but it is still a work in progress.
Why a DIY solution?
- Because I am more confident using something that I have a perfect mastery of and that I can easily repair in case of issues.
- Because I would like to implement some feature that do not existin the commercial products in the future,
- Because I always need projects to keep myself occupied.
- Because the commercial products are too expensive for me.
Outlines
- My project runs on a Raspberry Pi and is able to perform liquid reagent based colorimetric tests.
- I have imposed on myself the constraint of using only reliable, accessible, and widely available components in the market for a total <500$ (excluding 3d printer).
- Most of the parts are 3d printed (including the peristaltic pumps).
Since deployed, 147 tests (KH and Ca) has been performed with success. Manual tests are still performed on a regular basis to confirm that the robot measurement are accurate (Fortunately, it is).
What remains to be done
- Design of a PCB. I iterated a lot on the electronic part. That is why, so far, all the components are on breadboards, with a tangled mess of wires.
- Front end: I will develop a web frontend (Web application using Bootstrap, VueJs, etc.). Currently, I am accessing it through some Jupyter notebooks.
- Fixing some 3d models (for example, some missing screw holes added by hand)
What could be the next iteration
- Having a double measurement of KH for safety. In addition to the colorimetric measurement, a ph probe based KH sensing (with acid injection) is added. With dual KH measurement, I would be confident enough to let fully the robot logic to drive the KH supplementation.
- Implementation of a salinity meter using some linear CMOS,
- handling powder based colorimetric tests with a DIY robotic arm (seems not easy to design...).
PS: My native language is not English, so please excuse me for any potential errors.
Thank you for your feedback. I am aware that I have significant gaps to fill in chemistry.Even though it may not be your favorite field i suggest that you learn about the analytical methods before continuing with your project. As impressive as it would be for your robot to handle solids, it isn't necessary. There is no reason to use powders.
Ati and salifert are using the same method.
Sample set to ph 12 with NaOH
Add indicator
Titration with EDTA until blue.
Only difference with ati is that the indicator is dissolved already and salifert uses a mix of EDTA and NaOH.
There shouldnt be an issue with dissolving the indicator in RO water, and i think it should store long enough in a sealed tube. Maybe @Randy Holmes-Farley knows about the stability.
I think we can easily design a solution tailored to your specific needs. If you are colorblind, let's imagine the following cheapest solution that could work for you:Hi Benoit, would be nice of you could fork this project or I would if I could get the grasp. My idea is a colorimetric test reader "chamber" for who (like me) is color blind and can't really use colorimetric test without the help of someone. I will keep following your project hoping to extrapolate something for me. Your project is surely much cooler but out of my budget
It would already help to compare and learn about the different approach between salifert and ati.Thank you for your feedback. I am aware that I have significant gaps to fill in chemistry.
That's why, at first, I naively relied on the reagents as specified by the manufacturer's instructions. And in this regard, I see that many tests, including those for magnesium, involve solid reagents, that is why I felt it would be nice to handle it. If it's possible to transform them into liquid reagents through dilution without affecting their preservation, I am more than interested, and indeed, it deprioritizes the management of reagents in powder form.
In this regard, are there qualified individuals to assist me in this approach of diluting solid reagents?
Suis impatient et j'ai deja faitI think we can easily design a solution tailored to your specific needs. If you are colorblind, let's imagine the following cheapest solution that could work for you:
- A color sensor (TCS34725 that I am using for instance) connected to your PC via USB (Windows or Linux) through an intermediate board (I am thinking of an ft232h).
- A small program that you run before and during the test that will display a message or produce a sonor signal when the color in the vial reached the target color.
- You would just have to calibrate it a first time for each test because the threshold color measurement may depends on your type of vial and the light you would use to illuminate the vial.
It seems quite simple to implement but would still require a bit of time...
It would cost ~15$ at the end. What do you think about it?
Hello.Thanks, those are my low cost magnetic stirrer:
- a dc motor,
- a 3d printed head on which you clip two magnets and that is it
Thanks. For this Salifert Calcium test (I moved to the ATI test for the Bot since it does not involve powder) do you feel that we could dissolve the powder to create a solution instead of the powder step?It would already help to compare and learn about the different approach between salifert and ati.
With salifert you add the indicator first, and then set the sample to ph 12 with the second reactant which also already includes the EDTA. That's why you have to add the 0.6ml instantly.
I don't own the ati test so i don't have the description available.
Nice, using a cheap camera should work but you should ensure that you will not pollute your color measurement due to some automatic white balance correction (and to some extends brightness, contrast, hue, sharpness, saturation).Suis impatient et j'ai deja fait
Non, today following your post and a post found here i started to pull out stuff and i sorta did something a tiny bit similar. Surely not as nice and precise as yours but it's definetly enough for me.
I basically just put a cheap vga camera in front of the vial with a color grab software and a controlled lighting. so that i could match the color (in my case was just for MG and CA from salifert. i will refine it with a 3d printed mount and that's about the max i can do with my knowledge.
Your idea is absolutely great because i think would be very easy to integrate also other tests like PO4, NO3, NH that need a reading and match on the color scale and not just a signal when the target color is reached.
15$ is nothing, i would throw it at it without thinking, even double. I would love to help and i will surely come on it if help is needed and if i am able to do it. I don't program but i start to see if something is already available with the parts you told me. Or maybe i could deviate your end program to serve my idea. In all cases, we wait for your tutorial!!
This will definitely work. Though you may need to experiment with the durability of the solution. Eriochrome t is toxic for water organisms, but i don't know if this is enough to keep it from spoiling. I would try to make a test solution, use it in the robot and then just leave it. After a few weeks test if it still works. It probably will, but i never did this so i don't know for sure.Thanks. For this Salifert Calcium test (I moved to the ATI test for the Bot since it does not involve powder) do you feel that we could dissolve the powder to create a solution instead of the powder step?
awesome project.Thanks a lot
For the color measurement, I started with the cheapest RGB sensor available: the TCS34725 (~3$). I thought I would have to move to something more costly but in fact, definitely not! It measures the RGB channels with enough accuracy.
During a test, a LED illuminates the vial from the opposite side of the sensor. The sensor is tuned for a 200 ms integration time and called continuously. When X consecutive measurement reached the target color, then the test ends. I tested various conditions to stop the test but of the most simple (X lasts meeting the stop condition) works fine all the time. I don't find a significant impact of the magnetic stirrer moving which is something I feared at first.
For a given test, I define for each channel the threshold on each channel and the direction. For instance, for my Salifert KH test, my .json5 configuration contains:
which tells the programme to stop when X consecutive measurements are such that :
- the red channel component is above 0.9,
- the green channel is below 0.8,
- the blue channel is above 0.77
This corresponds to a lavander color from the sensor perspective (with some normalization) which is the true target color of the salifert KH test (the clear pink color indicated by the manufacturer is wrong).