New AquaController 3/3 Pro Firmware

<a href=showthread.php?s=&postid=14897117#post14897117 target=_blank>Originally posted</a> by RussM
I deal with networked devices and embedded systems day in/day out, and it doesn't get much easier than this. Neptune cannot really be faulted here... they use standards-based protocols and methodology for doing firmware updates. Some of the proprietary methods I've seen for doing similar software loads have been outrageously complex and frustrating, even for a professional in the field. The "messing around" with DHCP on a home router consists of temporarily unchecking a single checkbox on the router's web page in most cases.

I fully understand that coming from a computer professional. I don't have any trouble with this either as I know the ins and outs of my router as well as networking and working with adding non standard devices to networks. Most devices if they have DHCP capabalities don't require me to modify my router settings even for a short period. Like I said, I don't have a problem with doing it but as you can see up through this thread others are asking what is DHCP? I think a lot of the people who purchase these devices will not have a clue, and if the old documentation that comes with the AC3 is any indication to the documentation that will be provided in the future, there is a lot to be desired. Yes I understand this is a Beta version, that is why I asked the question in the first place. Will the final version require end users to modify their router settings even for a short time?
 
The thing is that when the AC3 reboots, when it picks up it's DHCP, it looks for a boot file option, which is specified to be the firmware .bin file... If the AC3 gets its IP from the router, that option won't be specified, if it is from the DHCP on the AC3Loader, or the TFTP app, it is specified... Depends on who responds first :D I don't think it is that difficult.

I can see where someone who is not "savvy" would have some trouble with it, but without completely redesigning the way the controllers flash their firmware, I don't see how it could change.

The other thing about doing it this way, is that is seems that the AC3 is loading a boot code, and then the firmware, so if you trash your firmware, you can interrupt the boot, and reload the firmware.

BTW, it is working great for me!


Don
 
<a href=showthread.php?s=&postid=14897173#post14897173 target=_blank>Originally posted</a> by rbc1225
Yes I understand this is a Beta version, that is why I asked the question in the first place. Will the final version require end users to modify their router settings even for a short time?
Actually, the DHCP thing has nothing to do with being the firmware being a beta. It's a fundamental constraint due to the way DHCP works... as a general rule, there can only be one device actively providing DHCP services on a given IP address range or subnet, i.e. your home network. The actual firmware file download process utilizes another protocol called BOOTP which is layered on top of and dependent on DHCP.... and if DHCP doesn't work properly, then neither will the BOOTP process. Leaving DHCP enabled on the router will work in some cases... it's a crap shoot though.

The AC3 update process is the same I went through going from v3.2->3.3, and is unlikely to change going from 3.4beta to whatever comes next.

I definitely understand that it can be challenging for a non-technical person; all I am saying is that Neptune's process is actually a quite basic and reliable mechanism... it could be much worse. The readme.txt included in the firmware archive could stand to be a bit less terse though.... an example or two of a typical home network setup would be helpful to the layman.
 
I figured out that if i want to open the different actions into seperate windows, that i can hold the control (ctrl) key down when clicking on the hyperlink... So, i can open different windows and resize them to fit onto my desktop and have each graph open at the same time, .

Bery cool...
 
<a href=showthread.php?s=&postid=14897300#post14897300 target=_blank>Originally posted</a> by RussM
Actually, the DHCP thing has nothing to do with being the firmware being a beta. It's a fundamental constraint due to the way DHCP works... as a general rule, there can only be one device actively providing DHCP services on a given IP address range or subnet, i.e. your home network.


Exactly my point. There can be only one DHCP server running at once. So I guess the real queston why is this running a server and not a client application to allow the existing DHCP to populate as 99% of the other devices connecting to networks do. Maybe it is a limitation of the AC3 since the design is a couple years old.

I am glad you recognize that this could be quite challenging to people not familure with computer networking setup.
 
<a href=showthread.php?s=&postid=14897300#post14897300 target=_blank>Originally posted</a> by RussM

I definitely understand that it can be challenging for a non-technical person; all I am saying is that Neptune's process is actually a quite basic and reliable mechanism... it could be much worse. The readme.txt included in the firmware archive could stand to be a bit less terse though.... an example or two of a typical home network setup would be helpful to the layman.

Funny thing is, I consider my self quite technical, and the upgrade process still wasn't that straightforward. :-) As I mentioned before, I've only owned my AC3 for a couple months, so this is my first experience with upgrading the firmware, so didn't know how it's been handled in the past.

I feel like using DHCP to upgrade an AC3 is like scratching your left ear with your right hand, i.e., a roundabout way of doing it. I understand they're taking advantage of BOOTP which is dependent on DHCP, but it's an unelegant solution, in my opinion. I can think of many networked devices whose firmware can be upgraded with much less invasiveness on my home network. For example, I just upgraded my Slingbox firmware the other night, and the process was a lot less complicated.

As I also mentioned before, turning off DHCP on my router wasn't as simple as just unclicking a checkbox. Doing so automatically caused my router to restart, causing every device (1 PC desktop, 2 Windows laptops, 1 Macbook, 1 DirecTV HR20, 2 DirecTivos, a Slingbox, a wireless print server, etc) on my network to renew its IP address. Of course, since my DHCP server was now down, none of them could. I happened to be on one of the Windows laptops that was wirelessly connected at this time, so I then lost all connectivity at that point.

Fortunately, the PC desktop was configured with a static IP and I was able to get to my router using that PC. Otherwise, I would've had to completely reset my router and re-configure it.

Perhaps Neptune Systems could add a requirement that the AC3loader be run on a PC that is physically wired to the router?
 
to people having trouble wiith graph: disable windows firewall and use ac3loader to upload the web pages again. it seems to fail part-way sometimes. You shoulds see "Success" after each file sent, dont forget to scroll down. I believe the last file is "setcond.xml".

to people with garbage in network setup fields - save your timers and program to a text file and reinitialize the controller "Initialize All" from the menus on the controller.

PS. tftp32 works better on vista/win7 than ac3loader. Turning off DHCP on your router isnt required in all cases, at least it wasnt for me using tftp32 and win7 via wifi on Apple Airport Extreme. Mac users can use some other tftp program and vmware.

Be on the lookout for the new AquaNotes for iPhone/iPod touch on the App Store. It will require this new firmware.
 
I agree with everyone that the upgrade process is not as simple as it could be. Almost all lower end network attached devices (WAP's, routers, NAS, etc) of these types for many years have used a simple website upload to dump the new firmware to the device and flash on the fly. Many users don't know how to get into their router let alone starting to mess with DHCP options.

That being said, it isn't a fully NECESSARY process, nor does it have to occur frequently. I would assume the upgrade process on the new unit will be drastically easier. I know the AC3 is somewhat constrained by the amount of horsepower and memory on the unit. The design of the code might also be a limiting factor. A "flash on the fly" via the website just might not be a possibility at this time. Without an option like this, DHCP/BOOTP is certainly the next best option.
 
<a href=showthread.php?s=&postid=14899140#post14899140 target=_blank>Originally posted</a> by zigzag
to people having trouble wiith graph: disable windows firewall and use ac3loader to upload the web pages again. it seems to fail part-way sometimes. You shoulds see "Success" after each file sent, dont forget to scroll down. I believe the last file is "setcond.xml".

to people with garbage in network setup fields - save your timers and program to a text file and reinitialize the controller "Initialize All" from the menus on the controller.

PS. tftp32 works better on vista/win7 than ac3loader. Turning off DHCP on your router isnt required in all cases, at least it wasnt for me using tftp32 and win7 via wifi on Apple Airport Extreme. Mac users can use some other tftp program and vmware.

Be on the lookout for the new AquaNotes for iPhone/iPod touch on the App Store. It will require this new firmware.

Thanks! That fixed my graphs.
 
<a href=showthread.php?s=&postid=14879987#post14879987 target=_blank>Originally posted</a> by RussM
On my reeftronics.net website, I already have a working data collector & graphing framework I built for the XML data from... another controller model... which I'll be adapting to the AC3's XML data as soon as I can... maybe by the end of the weekend.

The AC3's XML was so easy to work with that I just threw away the convoluted PHP code I'd written for working with XML from that 'other controller', and started off clean.

Bravo Zulu to Curt and the rest of Neptune gang for formatting the XML properly and sensibly!

If anyone wants PHP code that cleanly parses the new AC3 XML status data, I have posted my quick & dirty code for download here.

Example using a HTML table
Example using a dynamic PNG image

Both examples work in real-time, and use the same XML parsing; only the display of the status data is different. I didn't put much effort into cosmetics, as these are intended simply as samples. If you can work in PHP, you can modify it to your heart's content.

This should also work fine w/ the AC3pro, but I have not tested it as such. If anyone is willing to let me test against their 3Pro, please PM me.
 
Last edited:
<a href=showthread.php?s=&postid=14902936#post14902936 target=_blank>Originally posted</a> by RussM
The AC3's XML was so easy to work with that I just threw away the convoluted PHP code I'd written for working with XML from that 'other controller', and started off clean.

Bravo Zulu to Curt and the rest of Neptune gang for formatting the XML properly and sensibly!

If anyone wants PHP code that cleanly parses the new AC3 XML status data, I have posted my quick & dirty code for download here.

Example using a HTML table
Example using a dynamic PNG image

Both examples work in real-time, and use the same XML parsing; only the display of the status data is different. I didn't put much effort into cosmetics, as these are intended simply as samples. If you can work in PHP, you can modify it to your heart's content.

This should also work fine w/ the AC3pro, but I have not tested it as such. If anyone is willing to let me test against their 3Pro, please PM me.

Russ, looks really nice. Quick question, how hard would it be to do something where a device could be graphed as to on/off? Curious how much time my chiller is running now compared to middle of summer here in the hot desert of Washington state.
 
<a href=showthread.php?s=&postid=14903073#post14903073 target=_blank>Originally posted</a> by ciphros
Russ, looks really nice. Quick question, how hard would it be to do something where a device could be graphed as to on/off? Curious how much time my chiller is running now compared to middle of summer here in the hot desert of Washington state.
Thanks! That's my next task...
 
<a href=showthread.php?s=&postid=14899140#post14899140 target=_blank>Originally posted</a> by zigzag
to people having trouble wiith graph: disable windows firewall and use ac3loader to upload the web pages again. it seems to fail part-way sometimes. You shoulds see "Success" after each file sent, dont forget to scroll down. I believe the last file is "setcond.xml".

Thank you, that worked for me too.

Graphs look great.

And for the user that missed seeing all three graphs, you can open multiple graphs by holding downt he shift key while clicking on GRAPHS and then drop down box for each parameter in each window, then tile the windows...


good luck
 
RussM, do you know of a way to get the pages if your host blocks exec()? Apparently mine does and it's been driving me bonkers!
 
<a href=showthread.php?s=&postid=14907800#post14907800 target=_blank>Originally posted</a> by kenargo
RussM, do you know of a way to get the pages if your host blocks exec()? Apparently mine does and it's been driving me bonkers!

I *finally* found an alternative to exec(wget...) that works w/ my hosting provider - and it's faster as well. I'll PM you details later this evening.
 
<a href=showthread.php?s=&postid=14899140#post14899140 target=_blank>Originally posted</a> by zigzag
to people having trouble wiith graph: disable windows firewall and use ac3loader to upload the web pages again. it seems to fail part-way sometimes. You shoulds see "Success" after each file sent, dont forget to scroll down. I believe the last file is "setcond.xml".

to people with garbage in network setup fields - save your timers and program to a text file and reinitialize the controller "Initialize All" from the menus on the controller.

PS. tftp32 works better on vista/win7 than ac3loader. Turning off DHCP on your router isnt required in all cases, at least it wasnt for me using tftp32 and win7 via wifi on Apple Airport Extreme. Mac users can use some other tftp program and vmware.

Be on the lookout for the new AquaNotes for iPhone/iPod touch on the App Store. It will require this new firmware.

Are you saying that tftp32 does not work with a Mac running vmware?
 
<a href=showthread.php?s=&postid=14902936#post14902936 target=_blank>Originally posted</a> by RussM
The AC3's XML was so easy to work with that I just threw away the convoluted PHP code I'd written for working with XML from that 'other controller', and started off clean.

Bravo Zulu to Curt and the rest of Neptune gang for formatting the XML properly and sensibly!

If anyone wants PHP code that cleanly parses the new AC3 XML status data, I have posted my quick & dirty code for download here.

Example using a HTML table
Example using a dynamic PNG image

Both examples work in real-time, and use the same XML parsing; only the display of the status data is different. I didn't put much effort into cosmetics, as these are intended simply as samples. If you can work in PHP, you can modify it to your heart's content.

This should also work fine w/ the AC3pro, but I have not tested it as such. If anyone is willing to let me test against their 3Pro, please PM me.

Russ, this is great! I was planning on writing my own but you took all the hard work out of it! Thank you for sharing this with the community.

Also, I flashed my AC3 last night and am very happy with the new features, especially the xml output. The new graphs are nice. Thanks, Neptune, for giving us another reason to love our AC3s!
 
<a href=showthread.php?s=&postid=14911177#post14911177 target=_blank>Originally posted</a> by drimo
Russ, this is great! I was planning on writing my own but you took all the hard work out of it! Thank you for sharing this with the community.

I actually built and tested three different parsing models, but the one in the examples is the fastest and easiest to understand IMHO. Funny thing was, the SimpleXML lib built into PHP 5 was not very simple (at least to me!) And if you do build upon my code and come up with some really cool displays, please share back! (I suck at the artistic side) ;)
 
Back
Top