Today, one of my personal goals was realized. I made a small contribution to a large open-source project. The project is the Arduino core for the ESP8266. The ESP8266 is my workhorse microcontroller, but the Arduino core provides a framework to quickly develop software. It contains numerous features that are based on the Arduino platform but adapted for the ESP8266. It also has many features unique to this device. While working on μDAQC, I was trying to store login credentials in a secure way, but the existing Arduino core didn’t have functions that allowed me to do it. Instead of writing my own implementation, I took the plunge, forked (made my own copy of) the repository, and modified the core itself. Once I’d tested the change, I submitted the change as a Pull Request – my very first one. The folks who maintain the project reviewed it. Once I responded to their feedback, it was approved. Today, my fork was merged into the current development branch, and my changes will be a part of the next release. My little bit of code probably won’t be used for it’s intended purpose by too many people, and I seriously doubt it’ll ever actually protect anyone’s information from an intrusion. Still, once the next version is released, it’ll be sitting there on thousands of hard drives, ready if it’s needed. Here is a link to the pull request on GitHub if you’d like to see the details.
Before the hiatus, I made an attempt at creating a Continuous Fluid Density Sensor. Here are the primary components: Two dip tubes in the fermenter MPXV7002DP differential pressure sensor ADS1115 16-bit analog to digital converter Generic, chrome plated brass, 2.5 mm hose barb to M3 adapters and 2.5 mm pneumatic hose Generic 12V aquarium diaphragm pump (model no longer listed on eBay) Plumbing The first step was to install new dip tubes into the fermenter. These are just two tubes in the tank that terminate with their openings directed downward. They are connected to cam-lock adapters on the outside of the tank for attachment to hoses. I also wanted the portions of pipe inside the fermenter to have as few recesses as possible to limit contamination by undesirable microbes. I soldered the NPT stainless fittings using acidic flux (I used Stay-Clean). The 1/4″ stainless tubing connects through a compression fitting. These leaves less room for leaks and microbes. Now that we have dip tubes between which to measure the pressure difference, the first step in design is to calculate the expected difference in the pressure at the tip of each tube. The difference in their heights is approximately 15 cm. The conversion between Pascals and centimeters of water is , so the differential pressure between the two tubes due to a column of water is: The original gravity for a generic pale ale is approximately 1.05, so the differential pressure at the beginning of fermentation would be: The final gravity for a generic pale is about 1.011, so the differential pressure at the end of fermentation would be And finally, the change in the differential pressure is . The dip tubes need to be connected to a differential pressure sensor. The pressure sensors in the price range for this application connect via 2.5 mm pneumatic hose, but there are no adapters between pipe fittings (what I use in my brewery) and this diameter hose. So, I made adapters by taking a short length of 1/2″ NPT copper pipe and soldering a brass hose barb into it. The plating on the brass interfered with the soldering, so grinding down the threads on the barb before soldering was necessary. Diaphragm Pumps Lastly, the dip tubes will have a tendency to fill with fluid. Measuring the differential pressure will require a means to push the fluid out and fill the tube completely with gas. That’s accomplished with two diaphragm pumps. These simply take gas from the top of the fermentor and push it through the tubing leading to the dip tubes. MPXV7002DP This device is a differential pressure sensor. It operates at 5V and outputs an analog voltage between 0.5V and 4.5V that is proportional to the pressure detected by the device. Specifications dictate that this device detects a -2.0 kPa to 2.0 kPa range at 2.5% average and 6.25% maximum error. The first question is whether this is a significant error. At a range of 4000 Pa, the average error is 100