reef-pi :: An opensource reef tank controller based on Raspberry Pi.

yes. in fact entire UI is backed by reef-pi's HTTP/JSON based api. Anything you do by reef-pi UI can be done by API, and it can be any external program. the API was thoroughly documented for 1.0, for 2.0 i didnt get the time to work on API docs. If you want to do somethig specific, let us know, happy to chalk out the details (in case code is not helpful).
API is what gives us the foundation to do clustering

Perfect! The system I use (Allonis.com) contains very powerful scripting and a vary nice GUI builder. This is going to be fun! I will let you know of any roadblocks. Allonis might be interested in this as well as several users ask about Reef control.
 
You'll need something like this, should be simple to hook up, the Jayfish controller (similar to reef pi) uses this for its dosing set up.

6cd6612a-18b8-4815-9d19-5b13c2dd0a0d.jpg
Ive used these, be careful if running anything over 5 amps through them, if so get the heatsink.
 
I have a few questions now that I am up and going. I have searched this thread and several others and sort of have some answers, but I figured that I would ask my questions in one place.
1. Is the Dashboard customizable? I would like to change the background to black and also add buttons for the equipment. I also would like to add a few quick buttons for scripts. Something like a Feeding Time script run button to the dash.
2. How do Macros actuate? Can a timer start a macro?
3. Is there a timer settings guideline someplace?
4. What does the "Enable Profiling" checkbox do?
5. In Timer setup - What is a subsystem?
6. Under camera setup, where do you define the setting for the upload to Gdrive option?

Thanks and sorry about all the questions.
1. The grid (row, column numbers, wdth/height of individual cells, etc) are customizable, but not to a extent that you can add widgets.
2. Currently macros dont have timers, they are start/stopped on demand (UI or API). This is coming in 3.0
3. Checkout: https://crontab.guru/
4. Enable profiling will allow you to perform profiling of the reef-pi code for performance analysis (read about go and pprof for details)
5. A subsystem is an entire module in reef-pi (like ATO, timer, temperature, etc). Macro allows you to turn off an entire module (aka subsystem). As you understand this is a powerful and dangerous feature.
6. You cant. Currently this is a very undocumented feature, which assumes you have drive (an opensource cli tool to interact with google drive) installed and configured. Use drive's documentation for setup instructions. I may remove it in future version of reef-pi, unless theres a strong requirement from the community. I use it to get automatic tank image updated on my google drive when i am on vacation.
Dont be sorry about the qustions. Sometime I dont get time, or the thread move so fast that i had hard time answering everything (a good problem if you ask me), but I and the community appreciate your curiosity and the attempt to make a diy controller.
 
1. The grid (row, column numbers, wdth/height of individual cells, etc) are customizable, but not to a extent that you can add widgets.
2. Currently macros dont have timers, they are start/stopped on demand (UI or API). This is coming in 3.0
3. Checkout: https://crontab.guru/
4. Enable profiling will allow you to perform profiling of the reef-pi code for performance analysis (read about go and pprof for details)
5. A subsystem is an entire module in reef-pi (like ATO, timer, temperature, etc). Macro allows you to turn off an entire module (aka subsystem). As you understand this is a powerful and dangerous feature.
6. You cant. Currently this is a very undocumented feature, which assumes you have drive (an opensource cli tool to interact with google drive) installed and configured. Use drive's documentation for setup instructions. I may remove it in future version of reef-pi, unless theres a strong requirement from the community. I use it to get automatic tank image updated on my google drive when i am on vacation.
Dont be sorry about the qustions. Sometime I dont get time, or the thread move so fast that i had hard time answering everything (a good problem if you ask me), but I and the community appreciate your curiosity and the attempt to make a diy controller.

Thanks for the answers! Much appreciated.
 
@Ranjib
Just another question out of curiosity.
Does reef-pi set the precision on the ds18b20 probes (9,10,11 or 12 bit)or does it read the probes as set when bought?
it does not set the precision for the probe. This is something we can do. How useful you think this will be? I am able to tune in 0.01 F precision with current setup
 
it does not set the precision for the probe. This is something we can do. How useful you think this will be? I am able to tune in 0.01 F precision with current setup
I was just curious, seems my probes have all come with 12 bit precision set. 12 point precision makes read times go to 750 milliseconds(time it takes the ds18b20 to calculate and send) , so there is a tradeoff there.
In case anyone is wondering how precison works at differing levels, this determines the graduations that your temp sensor can read.
9 bit=.5 degree celsius graduations
10 bit=.25 degree celsius graduations
11 bit=.125 degree celsuis graduations
12 bit=.0625 degree celsius graduations

There is a bitbanging script to run on a pi that can write to the ds18b20 and set the precision.

I do wonder though, with all these cheaper probes running around, is everyone working with different precisions set?
 
Last edited:
I was just curious, seems my probes have all come with 12 bit precision set. 12 point precision makes read times go to 750 milliseconds(time it takes the ds18b20 to calculate and send) , so there is a tradeoff there.

There is a bitbanging script to run on a pi that can write to the ds18b20 and set the precision.

I do wonder though, with all these cheaper probes running around, is everyone working with different precisions set?
can be. worth investigating.
 
The default resolution at power on is 12 bit.
So , by default we are running in highest resolution, which we rarely need,. This is good to know, we can have some tips to make thing more performant (for cases where multiple sensors are involved, or we are taking reading more frequently) to reduce the resolution and improve the read performance. Does that make sense?
 
Perfect sense! Maybe an option to let the user set resolution is in order.
I am very American in that sense. If there is more resolution, even if useless, meaningless or even mildly wasteful for a number of reasons, I still want it. It's like horsepower, I always want more. I want tighter tolerances on my parts from the machine shop, NIST calibrated thermometers, oversized electrical conductors, electrical parts that are linear over huge temperature ranges that it won't ever even come close to seeing in real use, etc etc.
 
I am very American in that sense. If there is more resolution, even if useless, meaningless or even mildly wasteful for a number of reasons, I still want it. It's like horsepower, I always want more. I want tighter tolerances on my parts from the machine shop, NIST calibrated thermometers, oversized electrical conductors, electrical parts that are linear over huge temperature ranges that it won't ever even come close to seeing in real use, etc etc.
Being an industrial electrician for years, I see nothing wrong with oversize electrical conductors. It eliminates a vast number of problems!
And machine shop tolerances, dont get me started, im a service engineer for CNC machinery, I work in micron tolerances.
 
PWM control will go to either PRI pins 18 and 19 or come from the PCA9685. If you are just wanting the motor to go in one direction run say the green control signal to ground and the blue to the GPIO output of your choosing. Dont forget to creat the virtual equipment in reefpi for those GPIO controls and turn them on.

Regards to the virtual equipment, I set it up, didn't work how it should with the pca9685, I set up one virtual pump per pump head. Should I set up a second one and set the pin to a ground pin, so as per the tutorial I'll have one off and one on?

Screenshot_2019-01-17-21-49-14-592_com.android.chrome.png


IMG_20190117_173131.jpg


IMG_20190117_173104.jpg


IMG_20190117_173050.jpg
 
So you would create a virtual equipment for pin 21 (alk) and switch it to on. The other input at the driver should be jumpered to ground.

Pretty sure that's what I'd done, I'll check again when I get home, it's possible that the PCA 9685 is faulty, it does light up and is recognised by the pi, however it did come out of an Arduino build which the RTC caught fire and took out a bunch of components with it, I should test it on my Arduino light controller.
 

TOP 10 Trending Threads

ARE YOU READY TO CONFESS TO CRAZIEST, DUMBEST, FUNNIEST THING YOU’VE EVER DONE IN REEFING?

  • Yeah, I'll confess! (Share your story in the comments!)

    Votes: 21 60.0%
  • Nah, I'll keep mine a secret...(Don't be like that, share with the class!)

    Votes: 14 40.0%
Back
Top
Home
Post thread…
Market
What's new