New Fish

Long overdue update – the tank is going well, but there are a number of obstacles I’m currently trying to navigate.

The good news, finally purchased a pair of Apistogramma Caucatoides Double Reds. They are beautiful fish and I’m loving them so far.

The problems, in no particular order:

  • Covid-19 has really thrown a wrench into the tank – among other things.
  • I recently installed a Raspberry Pi running Node-Red and a Mosquitto MQTT broker. This acts as the main hub now. All of my esp8266 and esp32 boards communicate with Node-Red on the Pi. Fantastic system.
    • The problem is that there is something fishy going on – I am not sure if the Pi is overheating or if something is causing esp32 that run the lighting system to falter, but the automations stop after a day or so. Ordinarily, I would be home to trouble shoot, but with the pandemic still flared high, I am staying with my partner at her house and can’t be home to problem solve.
    • I am fairly certain the problem has something to do with the Micropython code I wrote. I’ve been learning more about try & except statements and it seems like this could be the culprit. Essentially, something in the program periodically throws an error which stalls the program.

  • A follow up problem to this issue with Node-Red umqtt automations is that it will fail with, obviously, the lights on or the lights off. So either the tank experiences 48 hours of blasting light or 48 hours of darkness. I’ve been stopping by my house every two days to check in (safely).
  • This, in turn, has kicked off some serious algae growth. Nothing too crazy yet, but without vigilant monitoring, I’m having trouble both understanding what is happening as well as well as fixing it.
  • As stated in previous posts, my naturally hard water is probably not making it any easier. I have added Indian Almond leaves, but I think CO2 is necessary. I purchased one of those cheap DIY baking soda/citric acid reactors, but it is not working very well. Depending on how the future shakes out with everything, I am seriously debating purchasing a proper regulator and pressurized co2 cylinder.
  • Also, due to Covid-19, I haven’t made it out to any pet stores recently to restock on food. The new cichlid don’t love the cheap flake food the guppies eat and I just ran out of frozen blood worms. I’ve been digging up earth worms for the Apistos, but I am not sure if they are big enough yet to go after earth worms.
  • I’ll be receiving a package of frozen food today, along with a few new aquatic plants (because why not) and some brine shrimp eggs. I’m going to try raising some baby brine shrimp and see how they do in terms of food for the Cichlids.

On another note, my lights are up and working. As of now, they are triggered by a MQTT message from Node-Red on the Pi. Its okay… but not cool enough, so I’ve order a pcb with 5 Meanwell LDD 700 PWM drivers. I’ll be using this to control the lights eventually. The advantage to this is that you can control the duty cycle on the LEDs with the drivers and thus the dimming/brightness of each LED string. So essentially, colour mixing with Red, Blue, Cool White and Warm White. I have to figure out what to do with the 5th driver.

I’ve written a code that can be triggered by MQTT and run transition fades from one duty cycle value to another. You would have to call these functions within the section listening for messages from the MQTT broker.

from machine import Pin, PWM import utime # This is still in BETA testing.  # The below light() function transtions between start value and stop values by increments as stated in the increase_X = variable.  # Still need to develop all of the various transitions and write the MQTT stuff.  r = PWM(Pin(16)) b = PWM(Pin(17)) ww = PWM(Pin(18))  cw = PWM(Pin(19)) def dark_sunrise():     red = 0     blue = 0     cool = 0     warm = 0     increase_r = 1     increase_b = 2     increase_cw = 3     increase_ww = 4          while True:         utime.sleep_ms(30)         while r.duty(red) != (1000):             if red > 300:                 print(str(r.duty()) + ' r.duty') # print() statements are for testing                 print(str(red) + ' red lights')                 break             else:                 print(str(r.duty()) + ' r.duty')                  print(str(red) + ' red lights')                  red += increase_r             break         while b.duty(blue) != (1000):             if blue > 300:                 print(str(b.duty()) + ' b.duty')                 print(str(blue) + ' blue lights')             else:                     print(str(b.duty()) + ' b.duty')                 print(str(blue) + ' blue lights')                 blue += increase_b             break         while cw.duty(cool) != (1000):             if cool > 300:                 print(str(cw.duty()) + ' cw.duty') # print() statements are for testing                 print(str(cool) + ' Cool White')                 break             else:                 print(str(cw.duty()) + ' cw.duty')                  print(str(cool) + ' Cool White')                  cool += increase_cw             break         while ww.duty(warm) != (1000):             if warm > 600:                 print(str(ww.duty()) + ' ww.duty') # print() statements are for testing                 print(str(warm) + ' Warm White')                 break             else:                 print(str(ww.duty()) + ' ww.duty')                  print(str(warm) + ' Warm White')                  warm += increase_ww             break         if red > 300 and blue > 300 and cool > 300 and warm > 600:             break

‘We are all broken, that’s how the light gets in.’ – Ernest Hemingway

New lights are in Titan Phase.

I’ve built a mostly working version of the networked high powered LED lights.

The Lights:

  • Three arrays of 3W LED’s.
  • There are an assortment of 25 or so white LED’s ranging from 4500-12000 kelvin
  • Eight Red at 660nm
  • Eight Blue at 445nm
  • Each array can be powered individually
  • Led’s mounted on aluminum one inch angle stock for heat dissipation.

Microcontroller:

  • ESP32 hooked up to 4 relay module
  • Programmed with micropython. Connects to a mqtt broker on a raspberry pi running Node-Red to schedule the lights (This might sound like overkill if you’re not home-automation adjacent like myself, but if you are at all interested in IoT stuff, running Node-Red on a Pi is a gamechanger and I wish I did this way earlier).

Obviously the lights are not yet ready for Phase SmokeShow, but they are a proof of concept, of sorts. I need to clean up the wiring and I need to replace the drivers. The drivers, though they seem to be working fine, are fairly cheap and I’d like to replace them with something more substantial. At that point, I’m hoping to have a better handle on dimming with constant current arrays and have the ESP32 handle that as well.

This is a photo of the setup with the old lights – primarily 5050smd led strips and a couple of NeoPixel 12” led’s off amazon. In hindsight, I see the folly of that setup now, but its been a cool process of learning not only about the mechanical/electrical aspect of light as well as the way that plants utilize light.

Here’s another shot of the new rig:

The comparison is a little unfair because of the way the camera on my phone calibrates automatically – but the difference is drastic.

I’ve noticed a few things in the two weeks or so I’ve been running this on a 12 hour light cycle.

  • There’s been an all round shift in plant growth. Not only in volume, but in character.
  • Almost all plants have more red in their stems. The Hygrophilia Stricta that I have growing above the surface in basically growing deep red/purple leaves. The stems of the Creeping Jenny have turned red, while their leaves have a very nice tender green colouring.
  • There is a small clustering ground cover plant that I unearthed from my garden. Outside it is often deep purple, but previously in the tank it had turned a healthy-ish green colour. It has now returned to its dark purple colouration.
  • My Morning Glories flowered almost immediately with the new lights. The leaves that are directly under one of the red LEDs is growing with these cool purple veins through the leaf structure.
  • The aquatic plants are reacting more slowly. I’m noticing some steady growth, but nothing spectacular. My thinking is that the plant growth is now most limited by my water quality/paramaters.  My water is fairly hard from the tap, and with the amount of volume the tank loses to evaporation… its causing problems, to say the least.
  • The Sagittaria Subulata seems to be enjoying the increased light.
  • There’s been an increase in Algae. Nothing dramatic, but I wouldn’t be surprised if I came home one day soon to some green water.