|
09/20/2011, 12:23 PM | #701 |
Team RC Member
Join Date: Sep 2003
Location: NY
Posts: 17,749
|
I should say, the rtc is always tracking date info, wether we explicitly set it correctly or not. So first we need to set it correctly,bwhich can be done via the same method we set time, then, we can start using it. It is almost trivial compared to some of the things we have done to date.
__________________
Inconveniencing marine life since 1992 "It is my personal belief that reef aquaria should be thriving communities of biodiversity, representative of their wild counterparts, and not merely collections of pretty specimens growing on tidy clean rock shelves covered in purple coralline algae." (Eric Borneman) |
09/20/2011, 12:56 PM | #702 | |
Team RC Member
Join Date: Sep 2003
Location: NY
Posts: 17,749
|
Quote:
In terms of code size, a lot of that is boilerplate we would re use, i.e. the I2C library which is huge, but already in our code. Things I am thinking about include an adc for temp probes or pH. Or a dedicated moonlight or fan driver. Stuff like that.
__________________
Inconveniencing marine life since 1992 "It is my personal belief that reef aquaria should be thriving communities of biodiversity, representative of their wild counterparts, and not merely collections of pretty specimens growing on tidy clean rock shelves covered in purple coralline algae." (Eric Borneman) |
|
09/20/2011, 01:17 PM | #703 | |
Registered Member
Join Date: Jun 2007
Location: Waterford, MI
Posts: 790
|
Quote:
I forgot to mention something earlier on in feedback. Any ideas on storing the user-defined variables to EEPROM? I know it was part of the initial code base but it never worked (for me anyway). Having everything but the clock reset on power loss is sort of a big issue in my opinion, especially if you're running at less than max intensity, then have a power bump and suddenly you're frying your corals! I know we don't want to write them too often in the code itself because we'll hit the eeprom's limit quickly. by the way im not requesting all of this to be done, Im just putting it out there for reflection by others. I'll probably do most of the experimenting myself to see if I can get things working |
|
09/20/2011, 01:22 PM | #704 |
Team RC Member
Join Date: Sep 2003
Location: NY
Posts: 17,749
|
The eeprom variables code works fine for me and probably another dozen units i know of. Are you sure you are running the correct version of the firmware?
__________________
Inconveniencing marine life since 1992 "It is my personal belief that reef aquaria should be thriving communities of biodiversity, representative of their wild counterparts, and not merely collections of pretty specimens growing on tidy clean rock shelves covered in purple coralline algae." (Eric Borneman) |
09/20/2011, 01:46 PM | #705 | |
Registered Member
Join Date: Jun 2007
Location: Waterford, MI
Posts: 790
|
Quote:
I'll check into it when I get home. I know that they work when you hard code them, there's no doubt about that. The issue comes in when you want to change them through the UI then save them off for a power reset. That can't be working with the current setup as it's hard coded to reset them to a specific value when it reboots (lines 80 thru 98). We also didn't want to be doing an eeprom write with every iteration of a variable change, whereas we can easily increment memory variables without hardware consequence. Last edited by XSiVE; 09/20/2011 at 01:52 PM. |
|
09/20/2011, 02:57 PM | #706 | |
Registered Member
Join Date: Jul 2011
Posts: 118
|
Quote:
As to the date funtion, I saw that it was in the pde and thought it would be part of the display at least. As to other funtions that I personally would like to see added into the Typhon, It would be nice to have an output for a fan control and an auto shut-off if the temp kept rising above a set point. Dual temp controls would have to be added but from a hardware standpoint shouldn't that be doable? |
|
09/20/2011, 03:48 PM | #707 | |
Registered Member
Join Date: Jun 2007
Location: Waterford, MI
Posts: 790
|
Quote:
If we are defining & hard coding the eeprom variables in the above listed lines, why are they not being set to those values on each restart? This makes no sense to me. Secondly, I think I will want to change to local memory variables for the menu operations, and then write them to EEPROM on menu exit. This way we're not killing the eeprom with each press of the button while changing start/stop times etc. I don't know what the limit on the clear/writes to the chip's eeprom is but if it's on the low end (100,000) we could hit it relatively quickly just playing around testing, though real-world use would probably never see this, I'd like to avoid it if at all possible. Do these changes seem reasonable? |
|
09/20/2011, 07:25 PM | #708 | ||
Team RC Member
Join Date: Sep 2003
Location: NY
Posts: 17,749
|
Quote:
Quote:
__________________
Inconveniencing marine life since 1992 "It is my personal belief that reef aquaria should be thriving communities of biodiversity, representative of their wild counterparts, and not merely collections of pretty specimens growing on tidy clean rock shelves covered in purple coralline algae." (Eric Borneman) |
||
09/21/2011, 08:06 AM | #709 |
Registered Member
Join Date: Jun 2007
Location: Waterford, MI
Posts: 790
|
So I did some testing and here's what I found regarding the EEPROMvar library and how we're using its functions.
First, it appears that when we're instantiating the class it's requiring a value to be assigned, however it's not actually doing anything with this value. Can't tell exactly why but whatever.. Secondly, the only reason that we're actually able to store and retrieve values properly is because we're creating these variables statically and in the same order each time. If the code gets updated and we add another eeprom variable using this class say, at the top of the list then every other variable down the list will be looking to an address that's shifted down by however many we added at the top. While this works for the current version I'm not very comfortable using it going forward because who knows if we want to add more later on, or if there's even a possibility of dynamically creating a variable(or more than one) that would be stored in eeprom. We could consider using http://www.arduino.cc/playground/Cod...MWriteAnything or just do it manually byte by byte *shudder* I guess in any case, we may want to consider an index be stored so we know exactly what we're reading(or storing) and from where. Last edited by XSiVE; 09/21/2011 at 08:12 AM. |
09/21/2011, 08:22 AM | #710 |
Registered Member
Join Date: Aug 2009
Location: Northern VA
Posts: 4,618
|
I have worked with Non Volatile RAMs in the past which are similiar to EEPROMs. Limited writes ans such. I handled it by reading the RAM at power up into a local copy (structure with every byte accounted for). This local copy could be changed as desired. There was then a user/host command to store the RAM.
So you might consider doing it similarly. Read and write all at once, maybe you can have a character on the display to flag when the local copy differs from the EEPROM so the user knows to do a save. This shifting could cause real issue if you start make instances of EEPROM variables in different modules.
__________________
Click my home page for Thread Summaries Current Tank Info: 75 gallon lps and fish |
09/21/2011, 08:40 AM | #711 | |
Registered Member
Join Date: Jun 2007
Location: Waterford, MI
Posts: 790
|
Quote:
As for the limited writes, Im actually working on some code right now to deal with the issue. I've got it saving (if the values differ) as the user exits the current menu item instead of writing to eeprom at every iteration of change (as the current release does). I do however like your idea of the user being forced to save their changes through the UI and a reminder coming up to let them know it's unsaved. The next step is to determine which method should be used for EEPROM interaction and to design an appropriate data structure (I suck at data structures ) |
|
09/21/2011, 09:06 AM | #712 |
1x10^12 Hz
Join Date: Oct 2009
Location: Stamford, CT
Posts: 1,185
|
If you guys feel adventurous, the Hydra code has the functionality to save to eeprom any size vars, and does it only when you hit save.
__________________
Аз съм българче! Current Tank Info: DIY 40 Breeder with LEDs |
09/21/2011, 10:48 AM | #713 |
Registered Member
Join Date: Aug 2009
Location: Northern VA
Posts: 4,618
|
I am a programmer, by occupation so I can offer general comments and ideas. I intend to build both typhoon and hydra and then i will get into the code. Or at least that is the plan
Another thread that is getting a lot of good feed back is Another's (oops I mean katchupoy). They have clouds and modeling of existing reefs (I think). The difference is that it is a little looser (bought Arduino boards, most seem to use a graphics display) so you need to know how yours differs from others.
__________________
Click my home page for Thread Summaries Current Tank Info: 75 gallon lps and fish |
09/21/2011, 11:28 AM | #714 |
Team RC Member
Join Date: Sep 2003
Location: NY
Posts: 17,749
|
Is anyone using the button labeled select for anything?
__________________
Inconveniencing marine life since 1992 "It is my personal belief that reef aquaria should be thriving communities of biodiversity, representative of their wild counterparts, and not merely collections of pretty specimens growing on tidy clean rock shelves covered in purple coralline algae." (Eric Borneman) |
09/21/2011, 11:33 AM | #715 |
Registered Member
Join Date: Jun 2007
Location: Waterford, MI
Posts: 790
|
|
09/21/2011, 11:45 AM | #716 |
Team RC Member
Join Date: Sep 2003
Location: NY
Posts: 17,749
|
Good to know. That was the original intent. We could even have submenus for each LED channel so you didn't have to flip through 20 screens to change one thing.
__________________
Inconveniencing marine life since 1992 "It is my personal belief that reef aquaria should be thriving communities of biodiversity, representative of their wild counterparts, and not merely collections of pretty specimens growing on tidy clean rock shelves covered in purple coralline algae." (Eric Borneman) |
09/21/2011, 05:08 PM | #717 |
1x10^12 Hz
Join Date: Oct 2009
Location: Stamford, CT
Posts: 1,185
|
Makes 2 of us
Why is everyone so crazy about clouds? I can't see the point of it other than to say "my lights simulate clouds". Seriously, is there any other reason why people spend so much time on this?
__________________
Аз съм българче! Current Tank Info: DIY 40 Breeder with LEDs |
09/21/2011, 05:51 PM | #718 |
Team RC Member
Join Date: Sep 2003
Location: NY
Posts: 17,749
|
To me there are lots of ways to have a good, successful reef. Most people concentrate on things like growing corals fast or keeping popular or rare species. Personally, i am trying to concentrate on simulating nature, even if it is superficially, i.e. it does not directly impact the health of the corals. I want to recreate the sensations I remember diving on reefs, and that includes using light purely for dramatic effects in addition to using it to grow corals.
So yeah, it's pretty much about the bragging rights is all.
__________________
Inconveniencing marine life since 1992 "It is my personal belief that reef aquaria should be thriving communities of biodiversity, representative of their wild counterparts, and not merely collections of pretty specimens growing on tidy clean rock shelves covered in purple coralline algae." (Eric Borneman) |
09/21/2011, 05:59 PM | #719 | |
Registered Member
Join Date: Mar 2009
Location: Brazil
Posts: 250
|
Quote:
2. DWZM already said it, and I agree with him, simulating nature. It might be good for corals to have your lights dim down occasionally like in the wild too. It can't be a coincidence that some people report good results leaving their lights off for a day every 30 days. It sure is cool :-D
__________________
Tank: 180L (46gal) 60cm cube DT visible from all sides with central overflow column, 10cm crushed coral base, LR, 79L (20gal) sump with skimmer, ATS and refugium. External jerrican DIY ATO. Livestoc |
|
09/22/2011, 06:05 AM | #720 |
Registered Member
Join Date: Aug 2009
Location: Northern VA
Posts: 4,618
|
I would think it would be more important than clouds to have true phases of the moon, but that is not quite as visible.
__________________
Click my home page for Thread Summaries Current Tank Info: 75 gallon lps and fish |
09/22/2011, 06:48 AM | #721 | |
Registered Member
Join Date: Jul 2011
Posts: 118
|
Quote:
|
|
09/22/2011, 07:51 AM | #722 |
Team RC Member
Join Date: Sep 2003
Location: NY
Posts: 17,749
|
Moonlight should be the same as sunlight in terms of color and directionality and simulating phases should be easy for the controller. Peerhaps we have an option to turn one channel into a moonlight channel? Or instead of loosing a channel, we make a breakout board I2C moonlight driver?
I like the second option.
__________________
Inconveniencing marine life since 1992 "It is my personal belief that reef aquaria should be thriving communities of biodiversity, representative of their wild counterparts, and not merely collections of pretty specimens growing on tidy clean rock shelves covered in purple coralline algae." (Eric Borneman) |
09/22/2011, 09:21 AM | #723 |
Registered Member
Join Date: Jun 2007
Location: Waterford, MI
Posts: 790
|
I think that a breakout for controlling additional channel functionality like that would be the best option.
I use three channels currently but I could get away with using two instead. I'm lighting my tank uniformly with different dimming cycles for blues & whites. If someone with a larger tank (say, with four independent pendants) wanted to do a simulated daylight and moonlight cycle, lighting the tank from side to side they would have their current configuration crippled if we changed one of the current channels to a moon cycle. Sure they could continue to use older firmware, but why force old software on someone so they can maintain basic functionality? |
09/22/2011, 09:35 AM | #724 | |
Moved On
Join Date: Apr 2011
Location: Colorado
Posts: 246
|
Quote:
|
|
09/22/2011, 10:51 AM | #725 |
Registered Member
Join Date: Aug 2009
Location: Northern VA
Posts: 4,618
|
I read that somewhere too, but it probably won't matter. I am sure that it is not the changing of the moon light, but the change in gravity that causes the spawning. So it will be very important to synchronize your moon cycle with the real moon.
__________________
Click my home page for Thread Summaries Current Tank Info: 75 gallon lps and fish |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Cheap Moonlight | ticklesworth | New to the Hobby | 3 | 04/04/2010 04:09 PM |
Cheap Moonlight | ticklesworth | Do It Yourself | 0 | 04/03/2010 08:52 AM |
Arduino base controller - power pack ONLY TODAY | MaLi | Do It Yourself | 0 | 03/07/2010 05:56 AM |
Sumps 101: Cheap, simple and effective for small tanks | cody6766 | Central Oklahoma Marine Aquarium Society | 8 | 01/06/2009 10:57 AM |