These are features and parts of code that are finished and working (green) or have yet to be finished (red), just to give you an idea of how the project is progressing.
01/24/2012 - Grow Control is finally communicating with plugins. I finally feel like I've accomplished something. The screenshot below is what it looks like at the moment. The timer is sending commands to the plugin, which is the window with the green and gray led pictures in it. Tomorrow I drop in the Arduino code and it should be working! Next I'll work on the timer code. There are a few bugs in the hot start protection, and a few more features to add to customize the timers. I can't wait to see some of these new, more advanced features in action.
I've had the software working a few times over the few years I've been working on the project. I'm stunned by the amount of work that goes into a project to take it from just a hobby to a finished product. It's taken countless thousands of hours to get to this point, but I think the software has evolved enough to work out most of the design and implimentation bugs. We'll work on getting it stable and reliable, then open it up to the community to use and make requests. I'm still unsure what will be in a pay version, but the first versions I release will be 100% free. Most of the features will always be free, but some things may have to be pay version only. There's a lot of inventment to recoup, and future development to fund. Check back again soon to see my progress, or maybe I'll even have a finished version ready for you!
Currently 21,000 lines of code. Most of it finished :-)
Random Screenshot
Making good progress!
01/22/2012 - The Arduino code has been rewritten and greatly improved. It now fully supports usb and both ethernet shields (wiznet and 28j60). On the pc side, queueing has been finished, to improve communication to and from the Arduino. The next step is to import this new communications code into a plugin that works with Grow Control. Here, I run into a wall. I spent weeks working on code that Grow Control will use to communicate across processes to the plugins, but it seems no amount of bug fixing will ever keep it from crashing.. Lesson learned: subclassing is a very bad idea in VB6, in all cases. A complex method has failed me, so it's back to the drawing board with K.I.S.S. in mind. A much easier method is to use the registry. It's not instantaneous like subclassing is, but it's still pretty fast and not heavy on resources. The communication delay should only be around 50ms, and it should still be able to handle hundreds of commands a second.
So that's where I'm at. A bunch more work, then it's finished. I should have Grow Control sending commands to the Arduino sometime this week. Timers need a bit more work yet, but they are working and usable. Some more work to finish up climate control, and that will be finished and working too. A few more weeks and I'll be down to just clean up and some quick testing.
Hard at work once again
I'll attempt to give a description of what work is left to do on the next release. I'm currently rewriting some of the website code. I have an api module left to finish, which I'm about to start on. After that, I can upload the new version of the website. That's it for the website update phase. Next phase is to finalize work on Grow Controls main program code. As far as I can remember, mostly everything is finished and working, but I probably will come across something that needs work.
Documentation is another phase running in parallel. I've started it, and it's looking good. It will include guides to build the electronics. I hope to have at least 2 versions of the guides. One for beginners and a more advanced and detailed version.
Update: I'm having some odd issues again where the development ide crashes when I run Grow Control. I'll have to reassemble the project from scratch to find the problem. I'll start on this once I have the above mentioned code finished.
I'll update this more soon.
Arduino 1.0
There is talk in the mailing list of a beta2 release in the next week, and a full release of 1.0 mid next month. This is good for the Grow Control project because then we can get back to work on the firmware. ArduinoGC will then have much better support for more shields. Both the official and unofficial ethernet shields, and soon after, wifi. We're looking for help! If you're an Arduino 1.0 programmer and think you can help, contact us!
I have been back to working on Grow Control the past few weeks, but nothing major finished to report yet. I'm working on what needs to be done to get it out. I'll post more news soon.
Need an arduino programmer!
Anyone a good arduino programmer with an etherShield or wiznet Ethernet Shield? I could use some help writing better software to run on the arduino. My code works, I'm just doing some updates to it right now, but it could be written better by someone with more experience in that area.
Short hiatus
I'll be back to work on Grow Control in about a week. I'm giving my other website, SchematicsForFree.com, some very long over-due updates. I'll post on there what the updates are, but I do plan on adding an Arduino section, and maybe one for hydroponics. It's just about finished.
When I get back to work, I do realize it's been a while sinse the last release, and there have been many bug fixes and new features. The next release, I plan to finish up some testing on my own, then get the first public free version released.
Happy New Year!
The goal for this month: to get to a stable point where the Grow Control Free Edition can be released. So keep an eye out for it!
ArduinoGC 1.3.5 Released - Many new updates to the testing app and the Arduino software, and I've renamed it to ArduinoGC. These 2 programs pair up to give you control and monitoring capabilities for each of the pins of the Arduino. This software is essentially the controller hub that connects Grow Control to the hardware of the garden.
Most notable, pin monitoring has been finished. Each pin can be set to report its current state back to the computer, twice a second. This will be most useful for temperature sensors, which are already working in Grow Control and will be in the next version. Please note, the etherShield itself doesn't support persistent connections, so pin monitoring wont work. A solution for this is in the works.
Calibrated Temperature Sensors!
12/30/2010 - Here's a sneak peek at what I've been working on. Take a thermistor, dunk it in 3 different temperature cups of water and capture the ADC values returned from the Arduino, then click the calibrate button. The software does all the complicated math in the background, and sets the A, B, and C values. Those values can then be used by the software to give you a very precise temperature reading. What more could you ask for! These temperature sensors can easily be found online for around 25 cents each. Just give it a good calibration and you're ready to go. 2 weeks of research, and trial and error. It's finally working! More to finish up on this, but it will be posted soon.
Arduino Ethershield Support Added!
The Arduino Ethershield is finished and working well. The code that runs on the Arduino has been updated, and support for the Ethershield has been added. The official Ethernet Shield will be supported eventually, but I don't have one to work with at the moment. The Grow Control software has many updates for the upcoming beta 4 release. I'll most likely include the early version of the scripting engine.
I've been doing some real-life testing of the system. Communication over ethernet has been working very well for me, but I did have some trouble with usb communication locking up. That turned out to be the fault of my usb hub. It's always a good idea to avoid using hubs with something like this. The Arduino should be plugged directly into the computer, or at least use a good quality hub with it's own power supply.
Grow Control 1.3.249 beta 3 released
Grow Control has never felt so complete before today. The Options window is finished with it's complete rewrite. Every feature currently supported in the program can now be set up right in the Options window. No need to go in the registry for anything. And, it's now packaged in an installer. Please note, Vista and 7 users may have to right click on the installer and Run As Administrator if the installer locks up. Should be fixed next month
The scripting engine, an automatic updater, and support for the Arduino ethernet shield will be coming up next! We'll have to start finding ways to break the program and making a list, so they can be fixed.
Progress of beta 3
11/09/2010 - The new arduino driver has been finished, as well as a new graphical timer control. The edges of the yellow timer blocks can now be drug with the mouse to adjust them. These are both finished and working in the Options window. This phase of the project is wrapping up. Over the next few days, I will be finishing up the Timers page of the Options window, then create a quick and simple page for adding/editing rooms. At this point, I will be ready to mark it as beta 3 and upload the new installer to the website. I'm bad at guessing these time frames, but I'll guess 3 days from now.
There is a new Screenshots page, and a new Docs/Guides section. I will be posting guides here for basic setup and operation of the Grow Control software, as well as electronics how to's to help you put things together.
10/06/2010 - Work on the options window has been set to the side to improve another piece of code that is needed to continue the on options window. I've completely rewrote the usb device detection method for arduino's. The driver api libraries for it are buggy, and I wasn't satisfied with any of the tricks I could come up with to try improving it. It hangs up the program for a moment when it's called, and the results are unpredictable with newly plugged devices and ones that are already in use. I found a much more reliable and faster method to detect usb devices right from the os and bypass the normal ftdi api's. No need to understand any of this. I've finished the work, and there shouldn't be many problems with this new code. It's been tested on windows xp and 7, with default security settings.
To sum it up, I have finished this new arduino usb detection code, and I'm starting work adding it into the options window tonight. I may get a release of this out very soon.
09/11/2010 - The big change in the next release will be the Options window. A complete rewrite of it to smooth out rough spots when loading. The basic settings are finished, and a few of the hardware types are configurable now, but the rest will be finished up in later releases. I am currently finishing up the Arduino config page, then I will have a release ready to put out.
Here's a quick picture of a device I'm putting together. It's a 12 volt power supply with a special feature. It has a 2 channel pwm amp built in. I'll draw up some schematics and tutorials eventually, but it's really pretty simple. Just 2 resistors and a mosfet per channel, the relay is optional. I plan to use this to power a cheap 12 volt fan I got from walmart. The pwm speed control should work with just about any low voltage fan, but reversing polarity doesn't work with most computer fans.
In the picture, I just have the mosfets hooked up to 2 of the solenoids, just messing with it. I was planning to use small relays to switch the solenoids on and off, but I do love how well the mosfets work. They can be directly connected to the arduino without a transistor in the middle to buffer it. They only draw less then 10ma on the arduino, but can switch 5 amps easy.
GrowControl 1.3.224 beta 2 Released!
08/26/2010 - This release fixes a few big bugs found in the arduino interface and the licensing system. There's still room for beta testers. Read below if you'd like to help test a copy. We can use your help.
Starting a rewrite of the options window next. I found better methods to make it load much smoother and organize the code. This shouldn't take very long. I'll have a release out in a week or 2 like this one was. I'll just get the most needed option fields working first.
GrowControl 1.3.218 beta 1 Released!
08/18/2010 - Beta testing has begun. Email me if you'd like to join the testers. We are currently focusing on the Arduino hardware and simple light timers, but the printer port and other hardware is also supported. A word of warning, this may even be an alpha release. Many parts of the program are unfinished, but we're working on it one feature at a time. Testing will remain private for now, until we have a stable application, but will eventually be made public and free. Don't forget to check out the yahoo group/mailing list http://tech.groups.yahoo.com/group/computerhydro/
PWM Circuit
7/5/2010 - Try using this PWM Driver Circuit for speed controlling computer fans. The Arduino software I wrote supports PWM, and so does the Grow Control software. I'm building a similar circuit, but with the EMF protection diode in the right place, and using a signal to base resistor of 680 ohm in place of the 1k. By my calculations, their resistor value is wrong, putting a limit of 3.6A, collector to emitter. Their specs say each channel can handle up to 5A, and so does the tip120 Darlington Mosfet I got from Radio Shack. The resistor value should be 680ohm to allow the mosfet to pass it's max continuous current. I may be wrong, so someone please check my work.
5V - 1.4V = 3.6V
Ib = 5A / 1000 = 5mA
I = V / R
3.6V / 1K = 3.6A
3.6V / 680ohm = 5.2A
My biggest 12 volt fan is a cheap thing from walmart. All 3 fans that I have fried their own wall transformers, plus a few others I had laying around. I put together a quick 12 volt 10 amp unregulated power supply, and have been running one of the fans on it's low setting with good results. My guess is, maybe the fan motors have some kind of damaging inductive feedback going back into the small power supplies. I'll be testing the PWM circuit with this fan soon, but I have to finish testing and building it first. I'm interested to see how well the mosfet will handle such a power abusive fan. Keep in mind, I'm mounting the mosfets on good heat sinks, with the proper insulating kit and grease.
Another idea, my final design will have a DPDT relay on each channel to reverse polarity on the output when activated. It doesn't have to be used or even hooked up. It will just stay default polarity when not in use, but may be very handy for future use! Some fans can be reversed, or could be used for opening/closing automatic shutters or loovers, or for reversing the direction of a light mover. Who knows what crazy ideas might be thought up.