Yes, that was pretty obvious from your post. It sounds like you were designing a product that you expected to be able to sell, and you realized that Mycodo was far better than anything you could have written yourself, so you thought that you could get the devs to write a custom version of Mycodo just for your specialized board which isn’t compatible with Mycodo. This is what I explained, your board is “tailored for your system” which means it’s not going to be useful to most other people’s use-cases or system designs. That’s why boards like this really don’t sell… especially since the hardware on your board isn’t compatible with Mycodo and you would need to make extensive modifications to the Mycodo code to make it compatible with the hardware on your board. Normally how this would be done for someone who is designing a hardware-specific product for sale, is you would setup an account on Github, and then you would fork the main Mycodo repository to your own repository, and then you would begin modifying your repository with the changes needed to run on your specialized product that you plan to sell.
Recent upgrades to the underlying operating systems are geared towards newer SBCs like the Pi 5 and the higher throughput they offer. While the Pi Zero 2 W has a 64-bit cpu… it only has 512MB of RAM, which isn’t much, especially when you start adding a lot of inputs, outputs, and functions in Mycodo. It is also recommended that the OS and Mycodo be installed on an SSD and plugged into one of the USB3 ports which are only available on the Pi 4 or 5. Some users, including myself, have experienced system crashing when using SD cards because even V60 and V90 rated SD cards are now simply too slow to keep up with the I/O throughput of the Pi and the newer operating systems, and the SD card slot on the Pi has a very slow write speed compared to USB3… 10MB/s compared to 500MB/s. Your use of the STM32G4 to control the I/O is completely redundant and unnecessary as Mycodo is designed to have all I/O connected directly to the Pi’s GPIO or through other standard communication means such as WiFi and MQTT.
Complete waste of time for a measurement that tells you absolutely nothing important. Tired of having to explain this to the noobs… “EC” is a measurement of electrical conductivity, that EC measurement can be loosely interpreted as an amount of total dissolved solids (TDS) in an aqueous solution at a specific temperature. All it really tells you is a rather inaccurate measurement of the concentration of everything that is dissolved in the solution… which you can’t do anything about except add more water if the concentration is too high. If it’s too low, you can’t raise it by adding more nutrients, because then you’ve thrown off the delicate nutrient balance that is recommended by the nutrient manufacturer. Pretty much all nutrient manufacturer instructions I’ve used state that you mix your tank with the recommended specific ratios of nutrients, and then you only add water to it for the next week or two until it’s time to flush the tank and mix a new batch of nutrients… you never add more nutrients to an already mixed tank. So really, the only time you might need to measure EC is when you first mix a new tank to make sure you haven’t mixed it too strong… but after that you don’t need to measure it again since you’ll be topping off the tank with only fresh water once a day until you change the tank again. And as you said, the EC can change drastically with just fluctuations in water temperature or pH, so how is that a useful measurement of anything??? It’s not. Focus on maintaining stable temperatures and pH and topping off the tank every day to offset evaporation instead of wasting time with completely meaningless EC readings.
Again, if your system is properly designed and built and you are maintaining stable temperatures in the grow space with air conditioning like you should be, then there shouldn’t be any drastic fluctuations in your water temperature that would require a sensor for compensating the pH measurements. By the way, pH probes are expensive, and there are none that are really designed for continuous use. They also require frequent re-calibration. I’ve found that it’s much easier to simply check pH by hand every other day using the pH liquid drops. One bottle of liquid pH testing drops usually lasts longer than most expensive pH probes. If your pH is fluctuating that much that you need to constantly check it, there is something seriously wrong with your system.
I already explained why both your reasons for the flow meter are unnecessary. Most people simply control the water flow from the pump by installing a ball valve at the pump outlet, or even by installing a ball valve at each plant. Pumps all have a listed flow rate. If you really need to control the amount of water, you simply do it by turning on the pump for a specific time duration according to the pump’s flow rate to get the specific amount of water you want. There is no need for a flow meter to accomplish this. And as I said before, in hydroponics, you usually just flood the grow medium completely at each watering cycle, there is no need to measure the amount of water. If you really need a closed-loop-system that tells you if your pumps are running, there are easier ways of doing it than a flow meter.
If there is that much debris in your system, then your system needs to be redesigned or better maintained. If there is enough debris to clog the pump, then the flow meter would be clogged as well.
So you have created a new Input module for Mycodo that supports CAN-Bus? I don’t see it in the latest change log on the GitHub repository or in the Input dropdown menu in Mycodo? CAN-Bus would actually be a useful addition to the Mycodo Input modules. However most people find the I2C interface more than adequate for most scenarios. Yes, i2c can be problematic when you need long cable lengths between the pi and the sensor, but there are a few hardware solutions for this, like the active terminator available from ADAfruit, or the i2c extender adapters from Sparkfun. The other solution is to attach your sensors to an ESP32 running Tasmota and send the telemetry to Mycodo via WiFi and MQTT. This is becoming the more commonly used option since it is inexpensive, very reliable, and eliminates any concerns with long i2c cables or any cables at all.
It sounds like you really aren’t familiar with Mycodo or it’s already supported hardware at all. Mycodo already supports “extensibility” through multiple “secondary boards” such as i2c and GPIO expanders that offer more GPIO pins than the Raspberry Pi’s existing 40-pin GPIO header. What you’re proposing is that Mycodo would need to first communicate with your STM32G4, and then through that connect with other “secondary boards”? Why go through the STM32G4 when you can just use the already supported hardware directly connected to the Pi? Your idea really doesn’t make much sense given the range of already supported hardware for Mycodo and the expense of your board.
Again, you’re proposing to “add functionality” that already exists in Mycodo. Mycodo does not currently support CAN-Bus, I don’t recall seeing any fans on the market that support CAN-Bus for speed control either, so not really sure what you are thinking here. Pretty much all fans and lights use simple 10v PWM input signal for dimming or speed control which can be accomplished by using a cheap level shifter that takes the Pi’s 3v PWM and boosts it to the 10V PWM used by most fans and lights. There are even plans for home-built adapters right here in this forum as well as multiple links to $5 PWM adapters on Amazon. So why would someone pay $54 for your board when they can pay $5 to accomplish the same thing? Same thing goes for the CAN-Bus, there have already been multiple requests on the forum and GitHub for a CAN-Bus Input module, but so far no one, including Kyle (the Mycodo inventor), has bothered to write one since there are alternative options available which work just as good as CAN-Bus. If you really want CAN-Bus I’d suggest buying one of the more common CAN-Bus breakout boards like the TJA1050 or the MCP2515 for $10 and writing a Mycodo Input module for it. No one is going to pay you $54 for a board that requires a special version of Mycodo to be written that is compatible with your board… especially when your board offers absolutely no functionality above and beyond what is already available with a Raspberry Pi, Mycodo, and the myriad of already compatible hardware that is readily available, literally for pennies on Amazon. I’m telling you, boards like yours just don’t work for most people’s needs, there have been a few other people here on this forum who have designed such boards, and they pretty much never sell because there is no interest in them when simple breakout boards are so cheap and readily available from global suppliers.
You may want to read a bit more about what Mycodo already supports, you’ll realize that your board is really more of a hindrance than a benefit to anyone wanting to design a custom DIY hydroponics system…