Robo-Tank DIY Aquarium Controller Forum
Robo-Tank v5.0 is Ready - Printable Version

+- Robo-Tank DIY Aquarium Controller Forum (https://www.robo-tank.ca/forum)
+-- Forum: Robo-Tank Arduino Based - NO LONGER AVAILABLE (https://www.robo-tank.ca/forum/forum-16.html)
+--- Forum: Current News and Design Ideas (https://www.robo-tank.ca/forum/forum-22.html)
+--- Thread: Robo-Tank v5.0 is Ready (/thread-386.html)

Pages: 1 2 3 4 5 6 7 8 9 10 11


Robo-Tank v5.0 is Ready - Rob F - 02-05-2019

Hello, can you believe its finally that time... Pull up a chair as this could take a while. If you have the controller you should have received an email, if you didn't send me a message.

I've been working on this update for quite a while now and have put much love into it. There still a lot I want to do and technically I could have used another couple weeks as the details never never end. There's still some lose ends and a few things I didn't fully finish yet but everything important is up and running. At the end of this post I'll point out things to watch for and what didn't get completed, this is a must read if you update. If you don't care to read the "manual" section which isn't necessary, just something I always do, scroll to the bottom of the post and you'll see it after the last image. 

I've never done this with an update, but I'm putting out a request for support if you are happy with the update and can spare any extra cash. It's very difficult trying to develop something because the hours required are unthinkable. If you aren't in a position to help no worries and don't feel bad, I know you already paid a lot for the controller. If you can my PayPal email address is info@robo-tank.ca

Now on to the good stuff.

As I've mentioned I've rewritten all the code so it's a fresh start on all systems, the real challenge was the display, it's now dynamic and can be fully customized. 

For reference here's the code sizes comparison from v4.2 to v5.0.

Controller Code Size
142,380 bytes  - v5.0   105,248 bytes smaller
247,628 bytes  - v4.2

Display Code Size
382,836  - v5.0   15,160 bytes smaller
397,996  - v4.2

I also figure I can drop the display size quite a bit so still lots of room for more features.

Even with the smaller code size the controller and display are now setup to handle the following equipment and sensors with the use of future addons.
  • 64 AC Outlets
  • 16 DC Accessories
  • 10 Flow Meters
  • 16 Dosing Pumps
  • 16 Dosing Pump Stirrers
  • 21 Temperature Sensors
  • 21 Analog Sensors / Switches
  • Combo of 8 PH/ORP/DO/EC probes
  • 6 ATO Systems
  • 16 LED Channels
Also another is the images for the display, v5 has 1,301 where v4.2 had 775, all images were recreated as well. This is why translations will take some time, I have to recreate possibly half of those images for each language plus a lot of other work with images.

The speed of the controller is great, depending what it's doing it runs through the program 500-2000 times per second. There's a meter on the header so you can always see how fast the controller is running. Dimming the LED's is the only thing that drops it to 500, that's because the 4 short lines of code to do this works with math using decimals which slows a processor down. When I have more time I'm going to try and figure a way to eliminate the decimals as I hate to see that number drop. In the end it doesn't matter as 500 times per second is still very fast but I feel I have to justify and now my marketing number is out the window lol. Without mentioning names there are other controllers out there that use a much slower processor and why lots of controllers don't have 16 channels for lights.

The display also improved in speed, I'm guessing pages load on average about 27% faster, you should feel a difference. The touch is also more responsive as the speed of each loop for the display is also much faster so no more touches not recognized because the processor was busy and missed the touch. Lots of other improvements with touch on pages with sliders etc...

Reliability will also be greatly improved with v5 (once any initial bugs are sorted out), well first because its all fresh code and everything works nicely together but secondly is how data is stored. In v4.2 quite a few settings are saved on the SD card which isn't very reliable and some of them were important settings such as heaters, custom rules and alerts. Now the only thing saved to SD cards are the login credentials for the web features and those have no effect on the controller. All custom rules and everything else is saved to EEPROM which is very reliable. This has one downside because it requires a lot of EEPROM, which there's plenty, and it takes 7ms to read each byte from the EEPROM during startup. If the controller was setup to do everything it possibly could which will never happen it would take 5 minutes to turn on because it has 10,000+ bytes to read from the EEPROM, you'll experience this with . With that said this only effects the startup time of the controller as the eeprom is only read during startup. The nice thing though is the code is smart enough to ignore any EEPROM locations not needed so for most users the startup time is quite a bit faster than v4.2 but you will notice as you add more schedules, alerts etc.. the startup will take a little longer because it needs to read more EEPROM. 

I also want to give a shout out and big thank-you to Iain Bonnes who was generous enough create a bunch of great images for the outlet and DC accessory icons, because of Iain there's a nice selection of 60 icons to choose from. If he hadn't done this there would be just what you already have so on behalf of everyone thanks Iain. :)


Ok first I'm going to give an overview of how everything works together so you can maybe get a visual.

The controller basically has 4 main systems with 4 sub systems.
The main systems are schedules, alerts, custom rules and lights.
The sub systems are heaters, feeding mode, maintenance mode and manual mode.

First I'll briefly explain each system, the details will come with the images.

Schedules
Everything uses one scheduling system except the lights, they have their own system.
You can setup a total of 250 schedules overall in many configurations. 

Alerts
Alerts use one system, you can create alerts for any parameter the controller can generate now and in the future. 
You can setup a total of 100 alerts.

Custom Rules
Custom rules use one system, you can create custom rules based off any sensor parameter available and control AC outlets, DC accessories or dosing pumps.
You can setup a total of 50 custom rules.

Lights
Lights are a completely different system from everything else, none of the other systems are tied in.
You can setup a total of 11 daily modes.
You can setup a total of 10 temporary modes.

Now how things play together. Obviously the sub systems have an important say on what can and can't happen, this is how they work.

Manual Mode
AC outlets and DC accessories have what's called a manual mode and this overrides everything. If you manually turn an outlet or DC on/off it will stay in that state forever, even after a power down. As an example, if outlet 4 was manually turned on no schedule, custom rule or any of the sub systems affect it, all other outlets will remain in auto mode and continue to act according to the respected settings. This is the same for DC accessories. When an outlet or DC is in manual mode a small red M appears on the icon so you can have a visual.

Heaters and Chillers
These are controlled on multiple levels. Overall the low and high temperatures selected are in control but you can also turn them on/off using schedules and custom rules but again temps will ultimately decide. For example if you set a schedule to turn on a heater it would when the schedule runs but if temperature said it should be off it would immediately turn off again. I was going to lock out schedules and custom rules from having any control as obviously it's not effective but I figured someone would have a scenario. 

The heaters are always being checked unless the maintenance mode is active or you put it in manual mode, at that point they will not turn on/off based on temperatures. Once maintenance mode is over or your resume auto mode the system will check the selected temperature and set heater accordingly.

Feeding Mode
The feeding mode will change selected AC outlets and DC accessories to a temporary mode for a selected period of time and feed your fish if selected. For example if you have power heads you want to turn off during the feed you can do it using this. Technically you can use this for anything other than feeding your fish. 

When the feeding mode is active schedules and heaters/chillers will still run as normal.
Custom rules and alerts have an option to be ignored during the feed schedule. For example you can create a custom rule and select to be ignored during the feed mode, doing this the custom rule will only activate during normal operations. This works the same for maintenance.

Maintenance Mode
The maintenance mode is similar to the feeding mode but does have some differences. Just the same, you can change selected AC outlets and DC accessories to a temporary mode for a selected amount of time but when maintenance mode is active all upcoming schedules and heater/chiller settings will be ignored until maintenance mode ends. Once maintenance mode is over all systems are checked and put in the correct modes.
You can also set options in the custom rules so they will be ignored during maintenance. 

More on Custom Rules
Using custom rules you can expand the features of the feeding and maintenance mode. When you setup a custom rule you can select if it works with the feeding or maintenance mode, these custom rules will only run during or after feeding and maintenance and are not based on any parameters but rather timers. The window for these to run is from the start of maintenance or feed mode until 255 minutes have past. 

For example, you can have the feed or maintenance mode run for 30 minutes but setup a custom rule/s to run 45 minutes or whatever after the mode started.



Ok now everything in detail with images. There some pages I didn't post an image for as they don't show much and this post is long enough. All screen shots can be viewed on the home page of website in a few days. I'll also come back later and give some of these images better descriptions. 

Home Page

[Image: Main_Home_Page.jpg]

This is the main page on the display you see and can be customized however this is still a work in progress so on the screen to customize some settings might show empty boxes on the home page, if that happens that's why. 

One small feature I'll mention here but will work on any page being viewed. If you press and hold the top left corner for 2 seconds the display will restart, if your press and hold the top left corner the controller and display will restart.

In the header I added 3 extra icons and later I plan to have analog sensors icons so you can see if they are open or closed. The first icon is a health meter so you can visually see how fast the controller is running (not the display). When meter is max the controller is reading the program at least 1800 times per second, the middle is 900 and min is 10. Because dimming drops the speed to 500 or so I did add a line of code to pad the meter so it doesn't look bad. :) That only happens during fading and when other tasks occur the meter still reflects them, it basically acts like dimming isn't happening. 

Everything on the home page is updated every second compared to 3 seconds in v4.2.

The 3 rows on the left side can show any parameter from temp ports, analog ports, flow meters and probes. If you press and hold that section the min/max for that sensor will be reset. 

The 1st row in 2nd column can show the weather forecast or current light mode, same as now.

The 2nd row in 2nd column can/will show dosing pumps, AC outlets, flow meters, or DC accessories.

The 1st row in 3rd column will scroll through up to 50 parameters at an interval of 1 second to 255 seconds. If you tap this section it will go to the next parameter and press and hold will reset the min/max for what's showing.

The 2nd row in 3rd column is the same size box to the left but one option is to show DC and flow meters as those are the default ports on controller. This makes it possible to see all ports on the controller. This box can/will also show dosing pumps, flow meters and AC outlets.

The 1st row in 4th column can/will show AC outlets, DC accessories or flow meters. If you have less than 8 outlets they will be larger icons. 

You can also tap any of the custom boxes and you'll go to the settings for the same. When you tap AC outlets or DC accessories you get a screen to turn them on/off manually. When you do this those 

The bottom column is the custom dock. Currently there are 2 but I will be adding more shortcut options later, the order of these can be changed on customize screen.

[b]Settings - Menu[/b]

[Image: Settings.jpg]

This is the main settings menu and never changes.

[b]Settings - Light Modes[/b]

[Image: settings_lights_modes.jpg]

This screen covers all the settings for daily light modes and temporary modes. 

The top left button will cycle through all the daily schedules in 60 seconds so you can preview it.

The bottom left button will toggle between the daily modes and temporary modes. Temporary modes are ones you can switch on/off at any time from the home page. If viewing temporary modes the buttons will reflect that. When you create a temporary light mode you do it the same way, you will be prompted for a schedule time however those have no effect at this time, coming later.

In the image above there are 6 daily modes setup on the left side, if you tap a mode it will be selected and the sliders will change to match. Press and hold the mode name the keyboard will open so you can change it, this can also be changed on the main labels screen. If you press "Add Daily Mode" button under the modes you can add a new mode, up to 11 can be used.

Press the "View Schedules" button and the mode names will be replaced with the time and length and each schedule. If you press and hold a schedule time you'll get the image below to edit the schedule. 

Press the "Delete Mode" button and the mode selected on the left will be deleted. 

Press the "View % Levels" button and the levels above each LED slider will change to % from a range of 0.0 - 100%.

Press the "More Channels" button and you get another page of sliders. On the equipment connected screen you can select how many LED channels you use and only those will be available. This will clean up the display and keeps the controller running at its peak.

Press the "Low/High Range" button at the top of each slider and you can have better control at low levels.

To move a slider you have to first touch the white marker, once selected you can drag your finger off the slider up to 2" either side and the slider will still move and no other sliders can move while one is selected.

[b]Settings - Light Modes - Schedules[/b]

[Image: settings_lights_Schedules.jpg]

Here you can select the time of day the light schedule runs and how long the fade lasts. The levels you set for this mode are reached once the fade is over. You can change the schedule number to change the order of the schedules. If the order of your schedules are not in a time of day sort it doesn't matter, the controller will sort out the times and get the order correct.

[b]Settings - Lights - Toggle Temporary Light Modes[/b]

[Image: Settings_Lights_TempModes.jpg]

You can access this screen using the shortcut on the home page dock. If you only have 2 temporary modes setup there will only be 2 icons. Simply press any of the modes and the lights will change, press the mode that's turned on and it'll turn off and lights will go back to the correct day mode based on the time.

[b]Settings - Storm Settings[/b]

[Image: settings_weather.jpg]

I know a lot of you are excited about this but what can I say, it hasn't been implemented yet. The pages are there and fully functioning but I haven't done the code yet on the controller as I just haven't had time yet with other more important things pending. Good news is I expect I can get it working in a day or so, it shouldn't be too long away.

Here you can set the min and max length of storm and the controller will randomly choose between those numbers. 

Lunar/Moon phase will keep the last daily light mode light according to the moon phase. 

Auto mode is just that otherwise you can enabled advance options and dial things in for your lights.

You can also block lightning during the night, if you allow storms at night the brightness of the lightning is greatly reduced so the fish aren't freaked out.

You can also select which channels you want lightning to strike or disable the storms all together which will disable the shortcut on home page dock.

The "Cloud Over Target" and "Advance Options" are below.

[b]Settings - Storm Settings - Advanced Options[/b]

[Image: settings_weather2.jpg]

Here you can set a min/max for the 4 available options. The controller will choose a random value between these levels to operate.

[b]Settings - Storm Settings - Cloud Over Target[/b]

[Image: settings_weather3.jpg]

Here you can set the maximum brightness for each channel during the day. The controller will choose a random value below these levels to dim to. If the storm runs at night this is ignored as the lights remain in the current state and just have dim lightning effect.

[b]Settings - Feed Settings for Feed Mode[/b]

[Image: settings_feed.jpg]

This screen is used to setup the settings for the feeding mode. Here you can set the state of AC outlets and DC accessories to go to when the feed mode starts. Once the feed mode is over the AC outlets and DC accessories will resume back to the regular mode. 

You can select how long to run the feed schedule and the maximum times it can run per day, this is reset at midnight. You can also enabled or disable the auto feeder. 

You can also create advanced custom rules to go with the feed schedule, this will be explained in the custom rules section. 

To start the feed mode you can press the button on the home page dock to do a manual feed or you can create multiple schedules using the schedules screen.

[b]Settings - Alerts - List Page[/b]

[Image: settings_alerts.jpg]

This is a list of all the alerts you setup for all the available parameters. You can sort any of the columns ascending or descending by tapping the column name. The last column "Del" is to delete an alert. Tab that box beside the alert to delete, an X will appear and at the bottom of the page where "Page 1 of 1" is a delete button will appear, press to delete otherwise press the box again and the delete button will disappear.

If you tab the "Sensor" column you can open an alert to edit it. You can adjust any settings except the parameter type.

Press the "Create Alert" button and you get the page below.

[b]Settings - Alerts - Select Parameter[/b]

[Image: settings_alerts2.jpg]

When you create a new alert you first need to select the parameter type and location to use for the alert. Once selected press "OK" and you'll get the page below.

[b]Settings - Alerts - Options Page[/b]

[Image: settings_alerts3.jpg]

These are the available options for alerts, you can select the level and if the alert should run if the level is less than or greater than. 

The option for "Low Flow or Total Flow" only appear if you select a flow meter for the alert. 

On the right side you can select any of the options for the alert. The home page notifications haven't been added yet so that option will have no effect. 

When you edit an alert you also get this page with the matching settings.

[b]Settings - Custom Rules - List Page[/b]

[Image: settings_customRules.jpg]

Custom rules can do almost anything and gives you full control of everything. You can use any parameter available to turn on/off any of the equipment and set timers and blocks. 

This is the list page and shows all the custom rules setup, if there's more than one page a button appears to change pages. 

The 3 icons under the first rule in the list reflect the different alerts available. Custom rules have their own optional alerts so you know when one is triggered. The first icon is for a notification on the home page (this hasn't been added yet), the 2nd icon will beep the speaker on the display and the 3rd icon shows an email will be sent when the custom rule is triggered.

Press the "Add New Rule" button on the bottom and you get the following page.

[b]Settings - Custom Rules - Select Parameter[/b]

[Image: settings_customRules2.jpg]

When you create a new custom rule you first select an available parameter or select the options on the bottom left corner to assign the custom rule to the feed or maintenance mode. Those custom rules don't use parameters to trigger, instead they are on a timer.

Once you select a parameter or option you will get the following page.

[b]Settings - Custom Rules - Options[/b]

[Image: settings_customRules3.jpg]

Here's where you select options for the custom rule. First you select a level and if the parameter should be less than or greater than. 

Next select any alerts if desired.

The next box is for an advanced feature, this will allow you to set the custom rule to either run or not run based on a schedule for the selected equipment. For example, if you selected outlet 1 to turn on but also set the option "Ignore Equipment if Schedule is not Running" then this custom rule will only run during the off period of the schedule. To visualize better imagine you only want something happening during daytime hours no matter what happens with the parameter, this will achieve that. Set up schedules to create a day/night period and the custom rule will follow.

You can scroll through the 3 rows of equipment if you are using addons and touch an icon to toggle through the options, on, off or no action. 

In the bottom row middle column you can set different timers for the custom rule. The first is a timer to allow the sensor to stabilize, this will prevent equipment turning on/off before it actually should.  

The next timer which you can see is a timer to prevent dosing pumps from running to often. For example, if a custom rule ran and turned on a dosing pump you can select between 0-24 hours so that dosing pump will not run again until that expires. Schedules set for the dosing pump will also be ignored if this timer is running.

If you create a custom rule based on feed or maintenance schedule you get set a timer when the custom rule is triggered after the respected mode starts up.

[b]Settings - Maintenance Mode[/b]

[Image: settings_maintenance.jpg]

Here you can setup the maintenance mode. Just like the feed schedule you can select AC outlets and DC Accessories to turn on/off during maintenance. When maintenance is over they will revert back to the correct modes based on the settings.

At any time you can manually start the maintenance mode or use schedules to turn activate it. 

As described you can create custom rules to only work with the maintenance schedule that will start during or after maintenance has completed, up to 255 minutes following the start of maintenance. 

You can add a schedule by tapping the button or visiting the schedules page.

Settings - System Settings

[Image: system_settings.jpg]

The system settings page also has the data for the web features. Here you can sync the display with controller (to be completed) or restore the default settings. 

You can also view a numerical value that the health meter is based off, this is updated every second.

Here you can change any of the data used for the web, the web connects using DHCP as previously and sorry to those who want to bypass that, for now we will do the simple code change but that will be coming. One thing I just realized I forgot is the API code for OpenWeatherMap used to get the local forecast. If you use that you will have to add the API code to the controller sketch before uploading which is easy to do and I mention how in the short update manual.

For web features it's basically all working the same however there's some things I will be doing soon to improve it.

Settings - Date and Time

[Image: settings_clock.jpg]

Here you can change the date and time or time format.

Customize - Menu

[Image: customize.jpg]

This is the main menu to customize the controller.

Customize - Customize Home Page

[Image: customize_home.jpg]

This page allows you to customize the home page, the layout matches the home page for reference. 

The 3 rows on the left side allow you to select the parameter to view in that location on the home page. Any parameter the controller can generate or will in the future will be available. 

If you tap the 3rd column 1st row you'll get a list page of all parameters available so you can select which should scroll in this location. You can select up to 50 parameters and select a timer from 1-255 seconds for it to scroll.

If you tap the "Customize Home Page Docks" button you get the page below.

Customize - Customize Home Page Docks

[Image: customize_home2.jpg]

Here you can customize the docks. There are 4 available but currently only enough shortcuts to fill 2 docks. More coming later. Arrange in any order to suit your needs.

Customize - Customize Display

[Image: customize_display.jpg]

Here you can customize the main display settings. You can adjust the max brightness of the screen and if it should dim automatically after a touch or if it should dim based on the photocell and set the sensitivity of the photocell. 

Options on this page change based on other option selections. 

Sorry but the screen saver isn't ready today but shouldn't be too long off.

Customize - Customize Labels

[Image: customize_labels.jpg]

Here is central list of all the custom names, you can toggle between types at the bottom and tap a row to edit the label, once you do you get the page below.

Customize - Label

[Image: customize_labels2.jpg]

Here you can type in the custom name. The average length for most things should be 11 characters max but if you go over the excess will be cut to fit the screen.

Customize - Customize LED Slider Colors

[Image: customize_sliders.jpg]

Here you can customize the slider colors for the LED light pages. You can use a default color or change the RGB value to get any 

Customize - Customize AC Icons

[Image: customize_outlets.jpg]

Here you can change the icons for each of the outlets, there is a total of 60 icons to choose from. Big thank-you to Iain Bonnes for creating the pictures on the buttons. Without him doing this there would only be what you already have.

Customize - Customize DC Icons

[Image: customize_dc.jpg]

Here you can change the icons for each DC accessory, the same 60 icons for outlets are available.

Hardware - Equipment Connected

[Image: hardware_addons.jpg]

Here you can select what you have connected to the controller. The purpose of this is to clean up the display so you only see what you need but also allows the controller to run as fast as possible. Don't worry having everything enabled is no problem, the controller can do much more than this. The startup will also be faster if you disable things you don't use as there's less EEPROM locations to read.

Hardware - Addons

[Image: hardware_addons2.jpg]

This shows all the addons plugged in and you can adjust how many ports on the addon are actually being used so the display only shows what it should.

Hardware - Thermometer Settings

[Image: hardware_temps.jpg]

This pages shows all the thermometers that are enabled. Here you can tap any sensor and switch between a DS18B20 or a DHT22.

Press the "Calibrate Thermometers" button and you get the page below.

Hardware - Calibrate Thermometers

[Image: hardware_temps2.jpg]

Here you can calibrate your DS18B20 or DHT22 thermometers. You can adjust the offset so the value matches what it should. There are instructions on the screen to do an ice calibration for the DS18B20 which is easy and efficient. 

Hardware - Analog Sensor Settings

[Image: hardware_analog.jpg]

Here is a list of all the analog sensors enabled. If you tap the sensor you can switch between a float switch or analog sensor. More options will be made available over time.

Hardware - DC Accessory Settings

[Image: hardware_dc.jpg]

Here you can set a min/max speed for each of the DC accessories which ultimately changes the output voltage of the port. I'm going to change those % values to represent voltage as that will be more clear. This will also be expanded. All it does for now is control the max voltage coming out of the port. The idea of the minimum is once it hits that threshold the voltage will drop to 0v.

Hardware - Dosing Pump Settings

[Image: hardware_dose.jpg]

Here you can change the dose amount, max dose size is 2,000ml, fill the reservoir and do a manual dose. You have to push and hold the "Refill Reservoir" and "Manual Dose" button for 1 second before they do what they should. This is so no accidents happen.

Press the "Advance Settings" button and you get the page below.

Hardware - Advanced Dosing Pump Settings

[Image: hardware_dose2.jpg]

Here you can set the reservoir capacity, maximum size is 20,000ml. 

Press and hold the "Calibrate" button for 1 second and you get the screen below.

Hardware - Calibrate Dosing Pumps

[Image: hardware_dose3.jpg]

Here you can easily calibrate your dosing pumps. The dose amount on the right side is a temporary setting only used for calibrating. Follow the instructions to calibrate.

Hardware - Flow Meter Settings

[Image: hardware_flow.jpg]

Here you can setup your flow meters. You will only see the number of icons to match the flow meters you have active.

The measurement and viewing options are universal and will appear on other pages related.

Press an icon to calibrate and you get the page below.

Hardware - Flow Meter Calibration

[Image: hardware_flow2.jpg]

Here you can calibrate the flow meters. There are actually two options available, one is basic where you adjust the pulse rate to match your flow meter.

The method in the image is the better way to go and will give the most accurate results. Follow the steps to do a full calibration.

Hardware - Automatic Top Off Settings

[Image: hardware_ato.jpg]

These are the settings for the ATO systems. With addons you can have a total of 6 ATO's running, if you have more than one you'll get a menu to select the ATO before coming to this page. Here you can adjust different settings and set the ATO in a test mode.

Hardware - Sensor Probes

[Image: hardware_probes.jpg]

This section is still a work in progress, currently there is no calibration and I've enabled one PH, ORP, DO and EC probe to work, if you have 2 PH probes contact me and I'll enable it in the code. Calibration settings for the Atlas circuits are stored on the circuit so you won't lose that when you upgrade to v5.0.

Schedules - Menu

[Image: schedules.jpg]

Here's the main menu for the schedules. The lights schedule button takes to the lights page for now, later I plan to have a list so they can be looked at easier.

The other 5 schedule types all use the same 3 pages but the color matches the buttons on the menu. 

Below are the 3 pages based on the AC outlets.

Schedules - AC Outlets

[Image: schedules_outlets.jpg]

When you select the type of schedules to view from the main menu you get a list of all schedules set. You can sort the list asscending or descending by any column by tapping the column name. The last column "Del" is used to select a schedule to delete. Once you tap a box an X will appear along with a "Delete" button at the bottom, press to delete or touch the box again to remove the X and delete button.

To create a new schedule tap the "Create Schedule" button to get the page below.

Schedules - Select Equipment for Schedule

[Image: schedules_outlets2.jpg]

Here you select the equipment to schedule, if this was for dosing pumps you would see those. Once you select an outlet in this case you'll get the page below.

Schedules - Schedule Options

[Image: schedules_outlets3.jpg]

Here you can setup the schedule. These are all the available options and some are hidden based on other options on the page. All are showing just for visual. 

If this was a schedule for a dosing pump, feeder or maintenance you would only have the option to setup an "On" schedule as timers turn those off.

You can set the schedule to run certain days or the week or every number of days and use the same schedule to turn equipment on/off multiple times in a period.

If you aren't running solid state relays be sure not to turn an outlet on/off too many times otherwise the relay will die. But if you have SSR you can turn them on/off every 2 seconds if you like. You can also do this with DC accessories as they use IC so no moving parts to wear out.

Schedules - Upcoming Schedules

[Image: schedules_upcoming.jpg]

This page displays all the upcoming schedules with the next schedule at the top. Currently it can't be sorted but will add that. 

As an example, if you have 2 schedules set for one outlet you'll only see the upcoming schedule for that outlet here.

Accessed from Home Page - Change Status of AC Outlets Manually

[Image: Main_AC_Manual.jpg]

Here you can change the status of an AC outlet manually and put that particular outlet in a manual mode. Tab an icon and it will turn green (on) or grey (off) and a small red M will appear on the top left corner as a reminder the outlet is in manual mode. When an outlet is in manual mode nothing will change the status of the outlet until your resume back to Auto mode. You can do that by pressing the "Resume" button on the bottom of the page which will only resume the outlets to the mode they should be based on the other settings. You can also press the "Resume" button on the home page dock which will resume all AC outlets and DC Accessories back to auto mode.

Accessed from Home Page - Change Status of DC Accessories Manually

[Image: Main_DC_Manual.jpg]

Here you can change the status of a DC accessory manually and put that particular DC accessory in a manual mode. Tab an icon and it will turn green (on) or grey (off) and a small red M will appear on the top left corner as a reminder the DC accessory is in manual mode. When an DC accessory is in manual mode nothing will change the status of the DC accessory until your resume back to Auto mode. You can do that by pressing the "Resume" button on the bottom of the page which will only resume the DC accessories to the mode they should be based on the other settings. You can also press the "Resume" button on the home page dock which will resume all AC outlets and DC Accessories back to auto mode.

Accessed from Home Page - Manually Start the Feed Mode

[Image: Main_Feed_Fish.jpg]

Here you can manually start or force stop the feed schedule at any time.

Accessed from Home Page - Flow Meter Details

[Image: Main_FlowMeters.jpg]

Here you can view all the flow meters in detail however this has yet to be added. You can currently view the flow meters on the home page.

Accessed from Home Page - 

[Image: main_graphs.jpg]

This is a view of a temperature graph and it's current reading. All logs have been changed to CSV format so it's easy to open using Microsoft Excel or the like.

Accessed from Home Page - Equipment Log

[Image: Main_Log.jpg]

This is a log of all the equipment actions. Currently everything is logged but in less detail as I have better plans for the logs. I'm going to add filters so you can view specific actions as things can get lost in the logs. These files are also in CSV format on the display SD card.

Accessed from Home Page - Display Lock

[Image: Main_Lock.jpg]

Here you unlock the screen and change the pin code. This still needs to be added.

Accessed from Home Page - Current Sensor Readings for all Parameters

[Image: Main_Sensors.jpg]

This page is to view all the parameters however this has still needs to be completed. There will be two views so more fit on the screen.

Accessed from Home Page - Local Weather Forecast

[Image: Main_Weather.jpg]

This screen shows your local weather forecast in detail, later you'll be able to use these values with the lights.

Accessed from Home Page - Local Weather Settings

[Image: Main_Weather2.jpg]

Here you can change the location for the local weather forecast and set the UTC so the sunrise sunset match the location.


Now for the small issues and things that haven't been completed. Sorry to those I will disappoint, I know a few. :( But not to worry it will be finished once I get a few other things done. My worst enemy is the calendar. 

Things not completed are as follows, lots are a few hours to a day so it shouldn't take too much to get them done. My main focus was on all the systems.
  • Screensaver
  • Screen Lock
  • Storm
  • Home page notifications
  • Calibrating PH, ORP, DO and EC probes
  • Scanning for addons (I temporarily enabled 2 power bars as nobody has more)
  • Flow meter details page
  • Sensor Parameter page
That's all I can think of off hand that hasn't been added yet, there's also a few things not completed as I have planned but those are more like extras.


As for the update I did include a sketch in the download package to run on the display and controller before updating. This will create a sketch so you can revert back to your settings for v4.2 and go back if necessary. After you upload the sketch you open the Serial Monitor in the Arduino IDE and it will fill up with text, once it stops select all the text in the Serial Monitor, press Ctrl + C on keyboard to copy to clipboard and open a new Arduino sketch, remove everything in it so its blank and paste what you copied. Then save the sketch and if you need to revert just upload, wait about 5 minutes and then upload v4.2 again and you'll be back to normal. You have to do this for display and controller and upload to both if going back. Shortly I'll have one to do the same with v5.

I guess to start there is always the risk I've missed something major and there's problems so you always have to consider that. With that said I've had pretty good luck with updates and the way I do things I usually catch everything major, takes longer but better end results at least for me. I've been running it on my tank for the last few days minimum and it's been fine however I'm currently not running a power bar. The bugs that are in v4.2 were caused because of major changes made to how the software fundamentally worked. Because I tried ripping out a system of how things were tracked and communicated there was lots of potential for problems and that unfortunately happened. The biggest issue was with the heaters which I can understand because I know how it works. This is why I've done everything over and not used any code from v4.2 except some for web but ended up making changes to a lot of that as well. So I'm guessing off the bat v5 will be more reliable than v4.2 just because the way it works. I've done as much testing as I can and believe things will be ok. Fun fact, I removed about 40kb of code that was just for debugging so every aspect has been tested multiple times but there will be some visuals I missed as lots can happen on the display.

The issues you could experience would be during setup and if you try putting things through its paces. If you're not into testing set things up how you want them and leave it alone and you should be ok but I hope some of you can push things to see if they break. The real world is a different thing than in house testing that's for sure. The first 48 hours are the most critical then just keep an eye on the logs.

Going off topic, I highly recommend leaving the web features disabled until your comfortable although it does seem to be working well, personally I hate the web features as they are the only thing that can cause issues. It's impossible for anything to pause the microcontroller except the web and that can have bad results in timing critical missions. In v5 less so but still as an example if network couldn't connect to something and the dosing pump was suppose to turn off that wouldn't happen until the web timed out but the damage could be done before that happens. It'll be a great day when I move the web to something different. Hoping that's not too long, will start with just the very basics like it is today so I can get it out and then work on it till its full featured. 

Now as for flaws the biggest is there's no clean up procedure yet. Because you can now select what equipment and sensors are enabled things need to be cleaned up if something is disabled otherwise there could be issues. For example, lets say you have alerts and custom rules based on analog port 4, then for whatever reason you disable port 4 but don't remove those custom rules and alerts there could be problems. Whatever you removed the ID that tracks it would be gone and those settings would be looking for that ID. With a clean up procedure anything custom rules or alerts would be removed automatically or something to that effect. 

Another example is with temperature sensors and heaters. Again if you had lets say temp sensor 3 being used for a heater then you disable that sensor the heater would either be locked on or off and probably unresponsive to anything else. So if you did something like disable a sensor port be sure nothing else is using that sensor before removing it. First change the heater settings then disable the port.

Another small thing, if you select parameters to view on the home page, then change a temperature port from DS18B20 to DHT22 all the parameters will shift one place as the DHT22 gives 2 parameters with the humidity. After doing that the parameters on the home page won't be as expected so you have to revisit the customize page and set what you want again.

Those are the kinds of things that can happen but they are minor and unlikely once you set things up how you want. It's recommended to set ports etc how you want then create all your schedules, custom rules, etc...

Well I think I've said enough, I hope you enjoy it! There's a short document to read before updating with all the steps required. If you have any questions or comments post them or send me a message.


RE: Robo-Tank v5.0 is Ready - Rob F - 02-05-2019

.


RE: Robo-Tank v5.0 is Ready - johnrc - 02-05-2019

Congratulations Rob.....you are the best.......


RE: Robo-Tank v5.0 is Ready - rott - 02-05-2019

wow this is a huge update. I can not believe how far this has come from the days of being kicked of forums and trying to read that tiny little screen well done Rob


RE: Robo-Tank v5.0 is Ready - Rob F - 02-05-2019

Thanks guys, I hope you enjoy it. Yeah were slowly getting there rott, lets see what another year or two brings.


RE: Robo-Tank v5.0 is Ready - Dom59 - 02-05-2019

Great job!!! I'm in a hurry to be at this weekend to try.
On my side, few years ago, I remember I wrote an Arduino sketch to blink 2 leds...


RE: Robo-Tank v5.0 is Ready - fietsenrex - 02-05-2019

Nice update, will try to check it this friday because it is a nightmare on a tiny phone screen to read it all..

Did check the flaws you mentioned but I do Think they are minor and almost not noticable if you clearly state it in the used manual that some features are designed in a specific way.


RE: Robo-Tank v5.0 is Ready - Rob F - 02-05-2019

(02-05-2019, 02:04 PM)Dom59 Wrote: Great job!!! I'm in a hurry to be at this weekend to try.
On my side, few years ago, I remember I wrote an Arduino sketch to blink 2 leds...

Thanks Dom, well next you'll have to do something like this, instead of 2 leds its 16. :)

(02-05-2019, 02:06 PM)fietsenrex Wrote: Nice update, will try to check it this friday because it is a nightmare on a tiny phone screen to read it all..

Did check the flaws you mentioned but I do Think they are minor and almost not noticable if you clearly state it in the used manual that some features are designed in a specific way.

Thanks and I agree phones and websites don't go together. Sounds like you read the important stuff, the other is basically a poorly written mini manual but most can figure it out. All the flaws are minor and will be fixed.


RE: Robo-Tank v5.0 is Ready - Rob F - 02-05-2019

Oh one important thing I forgot to mention, the code for the PH and other probes is untested as my Atlas circuit quite working that's why I didn't add the calibration yet. I think the code is ok but I did change it so not 100% sure. If someone has a circuit let me know if it works or not so I can do a quick fix if necessary.


RE: Robo-Tank v5.0 is Ready - Aquadominus - 02-05-2019

Great Job Rob!!!!! I think is beyond anyone's expectations!!!


RE: Robo-Tank v5.0 is Ready - Rob F - 02-05-2019

Thanks Aquadominus, still lots to comes.


RE: Robo-Tank v5.0 is Ready - Rob Wheatley - 02-05-2019

Hope to get this loaded tomorrow to give it a try, the tank its on is empty (as in no livestock) at the moment so not too much of a headache if there are issues.
Will let you know how it goes,


RE: Robo-Tank v5.0 is Ready - ChrisC - 02-05-2019

Rob I’ve been in software development for 30 years. What you have done by yourself is nothing short of amazing. I’m excited to load this on and try it out.


RE: Robo-Tank v5.0 is Ready - Rob F - 02-05-2019

(02-05-2019, 05:38 PM)Rob Wheatley Wrote: Hope to get this loaded tomorrow to give it a try, the tank its on is empty (as in no livestock) at the moment so not too much of a headache if there are issues.
Will let you know how it goes,

Sounds good Rob, hope the install goes smooth.

(02-05-2019, 05:54 PM)ChrisC Wrote: Rob I’ve been in software development for 30 years. What you have done by yourself is nothing short of amazing. I’m excited to load this on and try it out.

Thanks Chris, I've done a lot of projects and this has definitely been the most involved. You'll see a big change in the code and how much it really has changed.


RE: Robo-Tank v5.0 is Ready - Rob Wheatley - 02-06-2019

Hi Rob
Just tried to upload to v5 but having problems, when I power up the display only says v5.00 in the top left corner, no splash screen and with one red block at the bottom, it will stay like that unless i touch the screen, it then goes blank, also everything powers on as soon as I power up!

For the SD cards are we supposed to delete everything on them first or just copy the new files over? (I tried both with the display and do get a splash screen with the old files on it but that is the V4 splash)


RE: Robo-Tank v5.0 is Ready - Irass - 02-06-2019

I will test sketches at the weekend,
wow a huge change in the code.
It's a shame that there is no screensaver (clock) at night when I wake up, I have a nice big clock, my wife will not let this version go.
(man quickly gets used to the convenience)

On the SD card there is no welcome file "robotank.raw" and the code is, line 232


RE: Robo-Tank v5.0 is Ready - ariew - 02-06-2019

(02-06-2019, 10:35 AM)Rob Wheatley Wrote: Hi Rob
Just tried to upload to v5 but having problems, when I power up the display only says v5.00 in the top left corner, no splash screen and with one red block at the bottom, it will stay like that unless i touch the screen, it then goes blank, also everything powers on as soon as I power up!

For the SD cards are we supposed to delete everything on them first or just copy the new files over? (I tried both with the display and do get a splash screen with the old files on it but that is the V4 splash)
I have the same problem

(02-06-2019, 10:35 AM)Rob Wheatley Wrote: Hi Rob
Just tried to upload to v5 but having problems, when I power up the display only says v5.00 in the top left corner, no splash screen and with one red block at the bottom, it will stay like that unless i touch the screen, it then goes blank, also everything powers on as soon as I power up!

For the SD cards are we supposed to delete everything on them first or just copy the new files over? (I tried both with the display and do get a splash screen with the old files on it but that is the V4 splash)
I have the same problem


RE: Robo-Tank v5.0 is Ready - Rob F - 02-06-2019

Oh no, sorry guys, I did forget to change and include the splash screen.

It sounds like the display isn't plugged into the controller, have you tried resetting the controller with display attached?

It turns on the same as v4.2, first the controller, then the display. The display will remain at 1 red dot until the controller tells the display to go which isn't happening.

If you open the Arduino IDE serial monitor on the controller and set baud to 115200, what do you get? This is what you should see.

Initializing sd card...
SUCCESS - sd card initialized.
SUCCESS - Found index.html file.
Starting Controller -------------------This should read 50: 50
Internet setting is not enabled
Startup Complete -------------------1802


RE: Robo-Tank v5.0 is Ready - Rob F - 02-06-2019

(02-06-2019, 10:49 AM)Irass Wrote: I will test sketches at the weekend,
wow a huge change in the code.
It's a shame that there is no screensaver (clock) at night when I wake up, I have a nice big clock, my wife will not let this version go.
(man quickly gets used to the convenience)

On the SD card there is no welcome file "robotank.raw" and the code is, line 232

Your correct Irass, I forgot to redo that file. 

I'm sorry no screensaver/clock yet, tell your wife it won't be too long before its added. :)


RE: Robo-Tank v5.0 is Ready - Rob F - 02-06-2019

Ok so someone has reported success with the update so I'm wondering if you both only updated the display thinking maybe you could check that out before doing the controller? If so you have to update controller as well, the display won't turn on without the controller.

There's also a couple other images I forgot to move over so for today keep the images from v4.2 on the display SD card as I need to go through everything to make sure there's no other images I missed. There's a handful I reused such as the keyboard and was planning to rename to fit new naming system but forgot.

Also another important thing I forgot to mention for Gen 2 hardware users. Today you will only have access to the ports Gen 3 has, this means the last 2 temp ports, last 2 flow meter ports and dosing pump 5-8 won't work. I had to much to track so left it for today but will probably do something so you get access back to them.

Also all the references to port numbers are for Gen 3, as an example it will say one analog port is "Port 3" but on Gen 2 it's something else. So the best thing to do is change the labels on your controller to match the port numbers on Gen 3. If you look at the face plate on the home page banner image you can see what sensors/equipment go with each port number.