Growing stuff and doing things

dstroy0

Zeroes and Ones
I bought 1 pound of extreme blend, and 5 grams of b vitamin complex from kelp4less

When I add them in, it'll be half recommended strength on the extreme blend and probably 1/4 strength for the b vitamins.

That's
1/8 tsp dry extreme blend per gallon (3.75 tsp per change)

1/16 tsp dry b vitamins per 50 gallons (a little more than 1/32 tsp per change)
 

dstroy0

Zeroes and Ones
I talked to someone from jacks and they said that the tiny bit of clear crystals in the bottom of my 1:100 concentrate was ok. I was feeding full strength, but maybe that's a bit strong? Full strength 321 3.6A-2.4calnit-1.1epsom, so I backed off to 75% strength and 1ml/gal protekt, which is about 1.4-1.5EC on my meter and brings the pH to 5.9.

I don't remember if I mentioned that I switched nozzles to tefen 21105, they're better performing than the ones I was using before.

Tefen 21105 sprays about 1.7-2ml/sec at 100psi, the old nozzles were about 1.1-1.2ml at 100psi.

35-40% more is a pretty significant increase in ml/sec, but the droplet size on the tefen nozzles is much more uniform compared to the nozzles I was using before with much fewer droplets larger than 70μm, it's still not as good as an AA nozzles droplet uniformity (not considering pattern) would be but it's close and these nozzles are inexpensive.

So, I've been slowly reducing feed times from 3 seconds and I'm down to 1.8 seconds every 3 minutes.

check out what happened when I got there
1617462420661.png
1617462485402.png

I think 1.8 seconds every 3 minutes with these nozzles is still too much, at least at this early stage. Because of the amount of runoff, it should be less.
 

dstroy0

Zeroes and Ones
My temp comp function needed some love, this is what I ended up with.

Temperature compensation for EC/pH, atlas scientific pH and EC circuits have a temp comp function, you just have to send them the temperature of whatever you're measuring over serial in a certain format "T,XX.XX\r\n", that's what this does and only when the temperature changes. This function is called every 5 seconds.

C++:
void temp_comp() {
  float a,b;
  static float prev_temp = 0;
  //round float to 2 decimal places ie 27.777777 would be 27.78
  a = roundf(prev_temp*100.0)/100.0;
  b = roundf(reservoir.temp*100.0)/100.0;
 
  // if the new measured temperature is different from the last measured temperature, send it to pH and EC circuits for compensation
  if (a != b) {
    //keep our comparator up to date
    prev_temp = reservoir.temp;
    
    //dtostrf float to string
    char out[32] = {0};
    dtostrf(reservoir.temp, 0, 2, out);

    //sprintf only buffer
    char buf[32] = {0};
    //format string to send to sensor circuits
    sprintf(buf, "T,%s\r\n", out);
    //send command string to sensor circuits
    multiuart.TransmitString(0, buf, strlen(buf));
    multiuart.TransmitString(1, buf, strlen(buf));

    //make record of temp comp in database (send json out serial0 USB)
    sprintf(buf, "T,%s", out);
    timeStamp();
    Serial.print(F("\"COM\":{\"SENSOR_0_COMMAND\":\"")); Serial.print(buf); Serial.print(F("\"}}}\r\n"));
    timeStamp();
    Serial.print(F("\"COM\":{\"SENSOR_1_COMMAND\":\"")); Serial.print(buf); Serial.print(F("\"}}}\r\n"));
  }
}
 

dstroy0

Zeroes and Ones
I'm working on major parts for the next controller update. Lots of hardware changes, most of the logic is going from 5v to 3.3v.

I'm using a teensy 4.1 from pjrc as the microcontroller, it has a ARM Cortex-M7 at 600 MHz.

I'm still working out pin assignments and whatnot but it looks like I can get rid of my spi2uart uart expander that I need on the mega2560, since the teensy 4.1 has 8 uarts.
 

Umpty Candy

In Bloom
My temp comp function needed some love, this is what I ended up with.

Temperature compensation for EC/pH, atlas scientific pH and EC circuits have a temp comp function, you just have to send them the temperature of whatever you're measuring over serial in a certain format "T,XX.XX\r\n", that's what this does and only when the temperature changes. This function is called every 5 seconds.

C++:
void temp_comp() {
  float a,b;
  static float prev_temp = 0;
  //round float to 2 decimal places ie 27.777777 would be 27.78
  a = roundf(prev_temp*100.0)/100.0;
  b = roundf(reservoir.temp*100.0)/100.0;

  // if the new measured temperature is different from the last measured temperature, send it to pH and EC circuits for compensation
  if (a != b) {
    //keep our comparator up to date
    prev_temp = reservoir.temp;
   
    //dtostrf float to string
    char out[32] = {0};
    dtostrf(reservoir.temp, 0, 2, out);

    //sprintf only buffer
    char buf[32] = {0};
    //format string to send to sensor circuits
    sprintf(buf, "T,%s\r\n", out);
    //send command string to sensor circuits
    multiuart.TransmitString(0, buf, strlen(buf));
    multiuart.TransmitString(1, buf, strlen(buf));

    //make record of temp comp in database (send json out serial0 USB)
    sprintf(buf, "T,%s", out);
    timeStamp();
    Serial.print(F("\"COM\":{\"SENSOR_0_COMMAND\":\"")); Serial.print(buf); Serial.print(F("\"}}}\r\n"));
    timeStamp();
    Serial.print(F("\"COM\":{\"SENSOR_1_COMMAND\":\"")); Serial.print(buf); Serial.print(F("\"}}}\r\n"));
  }
}
Easily can tell it´s a toker coding by all the "puff"s here and there.. lol

Seriously: Admire the talent..
 
Top Bottom