Open source pool controller

SteveH

0
Apr 13, 2010
20
Hi All,

With the new house we bought, we got a pool with it - but the pool was entirely manual maintenance based. I went to automate as much as I could but found the controllers on the market were just ridiculous priced for what you got - and none did everything. Since I work in the product design industry, it became very apparent something was needed for "the rest of us", so I designed a new one - one that is open source.

This design automates all the mundane stuff - it takes care of my pump, chlorinator, filter backwash, solar heating, timers (off peak etc), pool lights, garden (wall) lights, water feature, pool vacuum cleaner and a few statistics all via an RF remote control (off ebay of course). I have set it up on my own pool as a beta site, and debugged it all, and is now working really well.

The idea is that this controller is made available to anyone who is into DIY projects. The design is based on an FPGA, which is programmable hardware. So you can download the controller from the web site, wire up the parts to an FPGA board and off you go. If a new feature comes out - such as defrost for your solar heating, download and you got it. Hardware such as jandy actuators and valves are required, but id like to think thats an understood pre-requisite of any automation controller. Anyway - thats the idea.

I thought id raise the topic here to see if its something people would be interested in. It does require a bit of learning, purchasing of parts, and installation, and as with any DIY may have a few problems to over come, but im sure with the template design I have up and running, this should be no show stopper.

Anyway, I have started putting a web page together for anyone for may want to comment. I have only just started, so there is still a bit of info to be put up as yet. Hopefully Ill have all the info need up so the concept is clear.

Be good to hear any idea's.

Website is at;

http://www.applelogic.org/PPPhome.html

steve
 
Awesome to see someone doing this!
I had thought about this before, but don't have any time (or money right now) to put into development.
I will follow this for sure and hopefully things will settle down in the next few months and I can get some hardware by the beginning of next season.
 
This may or may not be beyond my tech level. I currently use a DIY X10 system to control lights outside including in and around the pool from my PC, but the pool itself just has an Intermatic T104. I did run my home network out to the pool pad (Cat 5e), where it currently connects to a wireless access point. I'll watch this to see if it is something I could use.

You mention the Jandy valve actuators, but what about motor control? specifically 2-speed pump motors? without buying a real controller? For me, it would have to start there.

Anyway, I applaud your initiative. In the box pool controllers have just seemed very expensive for what they do and upgrade-hostile. I like the concept of flexible open-source control. Best of luck!
 
This is a great idea. I gave some thought to doing something like this but put it down near the bottom of the list as the digital portion of this is not in my immediate area of expertise.

My intention was to do something with a more limited scope. Automated back washing seems like overkill, but my hat is off to you.

I was disappointed to find that your website wasn't really functional when I visited. For some reason all of the navigation bars linked back to the home page.

I am not familiar with the digital hardware but I am anxious to check it out. I will get to mfg. website to check it out so I am going to do some reading.

What about the intermediate analog hardware, relays, etc.? Are you using readily available generic comments? Do you have a specific list for these parts?
 
Hi Durk,

This may or may not be beyond my tech level. I currently use a DIY X10 system to control lights outside including in and around the pool from my PC, but the pool itself just has an Intermatic T104. I did run my home network out to the pool pad (Cat 5e), where it currently connects to a wireless access point. I'll watch this to see if it is something I could use.

--> Cool! - I think this is in your tech level, at the very least it might offer a fun challenge. I used CAT7 cable for my sensors, since the run to the pool pad was 10m or so and the cable is perfect for analog info such as pressure and temp due to its comprehensive shielding.

You mention the Jandy valve actuators, but what about motor control? specifically 2-speed pump motors? without buying a real controller? For me, it would have to start there.

--> I have built the model around the pentair intelliflo VF pump,

http://www.applelogic.org/AL/POWERPAD.JPG

which is connected to the RS485 port of the nanoboard. I originally went with the epump, but jandy didnt want anything to do with me when I asked for the protocol). My current set up is with the intelliflo VF set to a RPM thats suits both solar and the pool. I havent implemented the intelliflo's protocol as yet but when I do I will enable 3 speeds. An economy speed for the pool filter process. A high speed for backwash, and a low speed for solar dumping.


Anyway, I applaud your initiative. In the box pool controllers have just seemed very expensive for what they do and upgrade-hostile. I like the concept of flexible open-source control. Best of luck!


thanks
Steve
 
Hi Geri,

My intention was to do something with a more limited scope. Automated back washing seems like overkill, but my hat is off to you.

--> The jandy backwash valve was 80 bux - and the actuator i got off ebay for $60. In my book that was a total bargin, since backwashing the filter was causing me no end of grief since I was always forgetting to go and check it. After having it running for a month or so, id never go back to manual again. Its also cool to come back after work and see the PPP display where it tells you it initiated a backwash and how many it's done since the last restart. I liked it.

I was disappointed to find that your website wasn't really functional when I visited. For some reason all of the navigation bars linked back to the home page.

--> Yep - Im still going. Doing a web page means a lot of typing, and I can only do it in my off time. Hopefully I will have it complete soon.

I am not familiar with the digital hardware but I am anxious to check it out. I will get to mfg. website to check it out so I am going to do some reading.

--> Check out FPGA's while you at it. These devices make downloading a pool hardware controller from the internet all possible.

What about the intermediate analog hardware, relays, etc.? Are you using readily available generic comments? Do you have a specific list for these parts

--> I have a list of the items I used, which came from digikey and mouser. But really, in this department there is a plethora of compatible items. Ill attempt to provide at least several different makers of known good control devices.

steve
 
Great idea, will be watching for updates. Maybe I missed it somewhere, but what does the FPGA board set you back? I bought and implemented an Arduino ($35) that only controls my ECG (Intermatic timer does the pump,) although I originally intended to do the whole pool with internet capable control, as Piku did here - http://www.troublefreepool.com/diy-automated-controls-advice-solicited-t5708.html
I also have the NSLU2, N770 and other hardware, (relays, actuators, etc..another $150) but lost the time and interest to finish the thing. I came to the conclusion that if I automated it all, I would be responsible for ALL pool maintenance, as DW would not want to mess with a computer to re-program the pool. I also thought of doing a control station like this - http://www.troublefreepool.com/diy-remote-wall-switch-for-pool-control-t17605.html for her, but didn't follow up. She can turn the pump on/off at the timer, thats all we need.
I like the picture of your pad, I've never seen clear pipe used on a pool before!
Why do you need to back wash the filter so much? Do you have an auto-fill to maintain water level, and how often do you add salt?
I guess I've gotten spoiled, I have to remind myself to clean out the pump strainer basket and ECG filter monthly. DW empties the skimmer sock daily, and we skim by hand when it looks like it needs it, but I haven't backwashed in over 2 months, pressure is only up 3 psi over start-up. I've got borates in there too, so I really hate to dump water.
Anyway, good project and thanks for sharing it!
 
Intelliflow VF Maximum Priming Flow to 15 GPM without contro

SteveH:

I have a very simple functional requirement compared to the amazingly versatile system you have developed. I would like to use the manual keyboard on the Intelliflow VF to adjust the Maximum Priming Flow to a low value, e.g. 15 GPM. The procedure in the manual does not allow you to set this value lower than 30 GPM. However, someone has confirmed that with an Intellitouch you can set this value to as low as 15 GPM.

I'm hoping that you have somehow figured out the VF control procedures and know a method to set the Maximum Priming flow to 15 GPM without having to purchase $500 of hardware.
 
I'm very interested. I already have all the actuators and contactors hooked up and run everything from remote wired switch panel inside the house. Would like to take it to the next level and automate. I just can't make it overly complex for the wife, so I've been toying with making a user interface using LabView. Anyway, I can't seem to get to your website right now, but will keep trying.
 

Enjoying this content?

Support TFP with a donation.

Give Support
Hi All,

Sorry about the very late reply to this post, ive been quite busy with my work. I have had the chance to update the PPP site with more info for those who might be interested. Hopefully the pool pad partner website is beginning to reaching a point where it is able to help answer most things. There have been quite a few emails, and the one thing I did notice was people wanting to "go into business". I really dont have the time for that, and id rather this project be available free to anyone who wants it in its latest form. As a result, I have decided to keep the source closed for the mean time, but still make the software freely available for download. There are still more features Id like to add (see 'to do'), and now the core is complete I can finally start to think about these. Anyway, hopefully over time PPP will reach a point where its documented and flexible enough to meet most needs.

Be great to hear any feed back/suggestions etc.

steve



http://www.applelogic.org/PPPhome.html
 
have you been able to reverse engineer the 485 protocol?

I am an AMX programmer and wrote a pretty good program to be able to control a Jandy system using an Ipad. I ran into a few issues that while i'm sure many people already know, it may be helpful to someone.

1) The RS adapter from Jandy is very slow. If you try to send it a command before it replied to your previous command it locks up. It has such a limited buffer it is essentially useless in that sense.
2) The RS adapter does not offer full control over the Jandy system. You can only turn things on/ off/ or request status. you can not manipulate other things that are available in the Jandy panel like scheduling or chlorine settings for example. Also, the unit does not proactively alert you of status changes so if someone makes a change using a Jandy panel, you are not aware unless you poll it. That wouldn't be so bad if you didn't have to poll each device separately. I thought asking for the LED status would solve this but according to Jandy tech support that is not the case and is not reliable.
3) If you have color lights in your system, all bets are off. The relay that is connected to the color lights does not respond correctly to changes. If you are depending on real feedback from the system you can't count on it. For example, if i tell a color light to turn on, the response is that it turns off. Because i poll every aux every 30 seconds then i check it shortly after it then has the correct status. It makes for a terrible headache if you are trying to always know what state things are in.

My goal is to tie to the 485 bus directly and mimic a Jandy panel. While i know this isn't supported, it is the only way i can see the system working as it should. If anyone has any info they are willing to share about the 485 protocol i would greatly appreciate it.

FYI, I heard from someone at Jandy that they are working on a new controller and Iphone app. I think they are a little behind with the automation capabilities but at least they are trying to catch up. Personally i prefer to just go with tying to the 485 bus and be done. I;m sure the new 232 box will have its own set of issue. Also, If it isn't capable of IP control that will be a huge disappointed.
 
I have a parser that works 90% or so for Jandy 485 protocol.
I downloaded it once from some other site and improved it and cleaned it up.
It is running at 9600 baud, 8,N,1 but it still has a few features that are missing.
Most of the LCD messages and key presses are working OK.
I even developed a GUI user interface that emulated a Jandy controller.
For lack of time, I stopped playing with it but I would be interested in getting some help in finishing it up.
Let me know who is interested and how to get in touch.
I do not think it is ready for the public yet.
 
I'd be interested to see where you are at. I am doing my work in AMX, not sure if you are familiar with them. Do you know which pins on the jandy are tx and rx? Have you noticed that the protocol is difficult to decode or just time consuming? Apparently Jandy is coming out with a new 232 module in January. I don't know what its features will include but i know it will support color lights.

If you can, send me what you have and i'll see what i can do with it. I;ll update you on my progress.
 
Their RS232 modules are simple microcontrollers that translate their internal bus (RS485) protocol to PC friendly user protocol and whatever this device supports is supported and what is not is not.
You are always at their mercy to release and pay for updates and this new module is just an example of that.
Their internal protocol is easy to access with RS485 to RS232 (to USB) adapter but the protocol is not documented anywhere (?) but this gives you access to everything.
I found some reverse engineered documentation but it is not 100% complete (but close) and that is the problem.
 
kajtek said:
I have a parser that works 90% or so for Jandy 485 protocol.
..... I stopped playing with it but I would be interested in getting some help in finishing it up.
Let me know who is interested and how to get in touch.
I have installed a Net485 RS-485 to TCP bridge for $99. It worked first time! I have written a .net c# program to parse the chatter. The traffic is voluminous - often 20 messages per second! I can view the results in hex:

2/26/2011 8:16:33 AM,237 # 13 10 02 40 04 06 20 20 20 20 41 49 52 20 35 35 60 46 20 20 20 20 68 10 03
2/26/2011 8:16:33 AM,237 # 14 10 02 00 01 fd 00 fd 10 03
2/26/2011 8:16:33 AM,237 # 15 10 02 40 04 07 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5d 10 03
2/26/2011 8:16:33 AM,237 # 16 10 02 00 01 fd 00 fd 10 03
2/26/2011 8:16:33 AM,237 # 17 10 02 40 08 09 00 00 63 10 03
2/26/2011 8:16:33 AM,237 # 18 10 02 40 08 09 00 00 63 10 03
2/26/2011 8:16:33 AM,237 # 19 10 02 40 08 09 00 00 63 10 03
2/26/2011 8:16:33 AM,237 # 20 10 02 00 01 fd 00 fd 10 03
2/26/2011 8:16:33 AM,237 # 21 10 02 60 00 72 10 03

Or add unique messages to a dictionary (with a count of how many times each identical message was seen). I have decoded the ASCII messages.

2/26/2011 8:16:33 AM,252 # 27 10 02 00 16 fd 08 00 00 2f 10 03 [26 times] CS=2d
2/26/2011 8:16:33 AM,299 # 63 10 02 00 01 fd 00 fd [18 times] CS=13
2/26/2011 8:16:33 AM,237 # 23 10 02 00 01 00 00 13 10 03 [728 times]
2/26/2011 8:16:33 AM,221 # 4 10 02 00 01 fd 00 fd 10 03 [120 times] CS=10
2/26/2011 8:16:37 AM,361 # 283 10 02 08 00 1a 10 03 [6 times]
2/26/2011 8:16:37 AM,736 # 293 10 02 09 00 1b 10 03 [6 times]
2/26/2011 8:16:38 AM, 96 # 303 10 02 0a 00 1c 10 03 [6 times]
2/26/2011 8:16:33 AM,252 # 30 10 02 0b 00 1d 10 03 [6 times]
2/26/2011 8:16:33 AM,346 # 99 10 02 10 00 00 22 10 03 [6 times]
2/26/2011 8:16:33 AM,362 # 116 10 02 18 00 2a 10 03 [6 times]
2/26/2011 8:16:33 AM,377 # 133 10 02 20 00 32 10 03 [6 times]
2/26/2011 8:16:50 AM,846 # 612 10 02 20 00 fd fd 2c 6a 04 fd fd 02 10 fd fd 2c 6a 04 fd fd 55 10 03 CS=60
2/26/2011 8:16:41 AM,439 # 393 10 02 21 00 33 10 03 [4 times]
2/26/2011 8:16:33 AM,440 # 173 10 02 22 00 34 10 03 [6 times]
2/26/2011 8:16:33 AM,658 # 183 10 02 23 00 35 10 03 [6 times]
2/26/2011 8:16:33 AM,237 # 22 10 02 28 02 01 00 00 00 00 3d 10 03 [354 times]
2/26/2011 8:16:33 AM,424 # 169 10 02 28 02 01 00 00 00 fd fd 2c 6a 04 fd fd 00 3d 10 03 CS=cb
2/26/2011 8:16:33 AM,237 # 24 10 02 29 02 01 00 00 00 00 3e 10 03 [356 times]
2/26/2011 8:16:34 AM, 33 # 193 10 02 2a 00 3c 10 03 [6 times]
2/26/2011 8:16:34 AM,408 # 203 10 02 2b 00 3d 10 03 [6 times]
2/26/2011 8:16:43 AM,189 # 439 10 02 30 00 42 10 03
2/26/2011 8:16:34 AM,768 # 213 10 02 38 00 4a 10 03 [6 times]
2/26/2011 8:16:35 AM,143 # 223 10 02 39 00 4b 10 03 [6 times]
2/26/2011 8:16:35 AM,518 # 233 10 02 3a 00 4c 10 03 [6 times]
2/26/2011 8:16:35 AM,877 # 243 10 02 3b 00 4d 10 03 [6 times]
2/26/2011 8:16:38 AM,846 # 323 10 02 40 00 52 10 03 [2 times]
2/26/2011 8:16:49 AM, 64 # 587 10 02 40 09 2d 00 fd 10 03 [6 times] CS=88
2/26/2011 8:16:54 AM,799 # 684 10 02 40 04 05 46 49 4c 54 45 52 20 50 55 4d 50 20 4f 46 46 20 fd 10 03 Decoded: FILTER PUMP OFF CS=9e
2/26/2011 8:16:54 AM,861 # 686 10 02 40 04 06 20 20 20 20 41 49 52 20 34 39 60 46 20 20 20 20 6b 10 03 Decoded: AIR 49`F [2 times]
2/26/2011 8:16:54 AM,595 # 680 10 02 40 04 02 20 20 30 32 2f 32 36 2f 31 31 20 53 41 54 20 20 6a 10 03 Decoded: 02/26/11 SAT
2/26/2011 8:16:54 AM,267 # 676 10 02 40 04 00 4a 41 4e 44 59 20 41 71 75 61 4c 69 6e 6b 52 53 fd 10 03 Decoded: JANDY AquaLinkRS [2 times] CS=a7
2/26/2011 8:16:54 AM,689 # 682 10 02 40 04 03 20 20 20 20 38 3a 31 36 20 41 4d 20 20 20 20 20 00 10 03 Decoded: 8:16 AM
2/26/2011 8:16:50 AM,736 # 611 10 02 40 05 57 10 03
2/26/2011 8:16:49 AM,408 # 594 10 02 40 04 07 20 20 20 20 52 45 56 20 4d 4d 4d 20 20 20 20 20 71 10 03 Decoded: REV MMM [14 times]
2/26/2011 8:16:49 AM,346 # 592 10 02 40 04 05 20 20 52 53 2d 31 36 20 43 6f 6d 62 6f 20 20 20 44 10 03 Decoded: RS-16 Combo
2/26/2011 8:16:54 AM,111 # 674 10 02 40 04 0b 20 20 20 4d 45 4e 55 20 2f 20 48 45 4c 50 20 20 fd 10 03 Decoded: MENU / HELP CS=ce
2/26/2011 8:16:54 AM, 49 # 672 10 02 40 04 0a 4f 4e 45 54 4f 55 43 48 20 20 4f 4e 2f 4f 46 46 fd 10 03 Decoded: ONETOUCH ON/OFF CS=ac
2/26/2011 8:16:47 AM,580 # 560 10 02 40 02 2d 00 00 00 00 fd 10 03 [174 times] CS=81
2/26/2011 8:16:49 AM,158 # 589 10 02 40 04 04 20 20 20 4d 4f 44 45 4c 20 38 31 36 36 20 20 20 fd 10 03 Decoded: MODEL 8166 [2 times] CS=80
2/26/2011 8:16:53 AM,611 # 667 10 02 40 04 09 45 51 55 49 50 4d 45 4e 54 20 4f 4e 2f 4f 46 46 fd 10 03 Decoded: EQUIPMENT ON/OFF [4 times] CS=de
2/26/2011 8:16:33 AM,393 # 142 10 02 40 09 00 00 5b 10 03 [4 times]
2/26/2011 8:16:33 AM,393 # 146 10 02 40 04 00 45 51 55 49 50 4d 45 4e 54 20 53 54 41 54 55 53 12 10 03 Decoded: EQUIPMENT STATUS [8 times]
2/26/2011 8:16:33 AM,408 # 152 10 02 40 04 02 20 20 41 71 75 61 50 75 72 65 20 34 35 25 20 20 fd 10 03 Decoded: AquaPure 45% CS=aa
2/26/2011 8:16:33 AM,237 # 17 10 02 40 08 09 00 00 63 10 03 [22 times]
2/26/2011 8:16:33 AM,252 # 28 10 02 40 02 00 00 00 00 00 54 10 03 [26 times]
2/26/2011 8:16:33 AM,237 # 15 10 02 40 04 07 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5d 10 03 Decoded: [4 times]
2/26/2011 8:16:33 AM,408 # 154 10 02 40 04 03 20 53 41 4c 54 20 32 35 35 30 30 20 50 50 4d 20 fd 10 03 Decoded: SALT 25500 PPM [12 times] CS=f6
2/26/2011 8:16:33 AM,221 # 11 10 02 40 04 06 20 20 20 20 41 49 52 20 35 35 60 46 20 20 20 20 68 10 03 Decoded: AIR 55`F [4 times]
2/26/2011 8:16:33 AM,221 # 9 10 02 40 04 05 20 20 20 50 4f 4f 4c 20 35 35 60 46 20 20 20 20 fd 10 03 Decoded: POOL 55`F CS=a5
2/26/2011 8:16:33 AM,221 # 5 10 02 40 04 03 20 20 20 20 31 3a 32 32 20 50 4d 20 20 20 20 20 05 10 03 Decoded: 1:22 PM [4 times]
2/26/2011 8:16:33 AM,424 # 163 10 02 40 04 04 20 43 48 45 43 4b 20 41 71 75 61 50 75 72 65 20 3c 10 03 Decoded: CHECK AquaPure [6 times]
2/26/2011 8:16:33 AM,424 # 168 10 02 40 04 05 20 47 45 4e Decoded: CS=7b
2/26/2011 8:16:33 AM,205 # 1 10 02 40 04 02 20 20 30 32 2f 32 35 2f 31 31 20 46 52 49 20 20 62 10 03 Decoded: 02/25/11 FRI [4 times] SO=5
2/26/2011 8:16:33 AM,283 # 47 10 02 41 00 53 10 03 [6 times]
2/26/2011 8:16:33 AM,299 # 64 10 02 42 00 54 10 03 [6 times]
2/26/2011 8:16:33 AM,330 # 82 10 02 43 00 55 10 03 [4 times]
2/26/2011 8:16:36 AM,252 # 253 10 02 48 00 5a 10 03 [6 times]
2/26/2011 8:16:33 AM,252 # 26 10 02 50 11 2d fd 10 03 [26 times] CS=a0
2/26/2011 8:16:36 AM,627 # 263 10 02 50 00 62 10 03 [6 times]
2/26/2011 8:16:36 AM,986 # 273 10 02 58 00 6a 10 03 [6 times]
2/26/2011 8:16:33 AM,237 # 21 10 02 60 00 72 10 03 [176 times]

But I would love to get some help decoding the rest! The protocol is not nearly as obvious as one would hope!

Please send me any decoded messages to my email at denny at bollay dot com.

Thanks!

Denny
 
druvolo said:
Have you noticed that the protocol is difficult to decode or just time consuming? ,,,

As you can see from my earlier post, most of the messages are of the form:
10 02 00 01 fd 00 fd 10 03

They start with DLE (0x10) and STX (0x02) and end with a one byte checksum and DLE and ETX (0x03). So the message contained is:
00 01 fd 00

The first byte appears to be an opcode, but the data following probably depends on the opcode. Unlike other protocols, it doesn't appear to have a length byte.
Confusingly, the checksum is wrong sometimes, and other times the message abrubtly ends. So either I have a slight comm issue, or the protocol has further kinks in it...

Please email me anything you have.

Thanks!

Denny
 
I know this is kind of an old post, hope someone is still following it. I don't know how I missed it. I am very interested in any info that anyone has. I would like to try it out and see if I can add to it or help out in some way. My idea is to use an arduino mega with an ethernet shield. I'd like to have an embedded webpage that I can access from a phone or computer to control the entire system. Has anyone looked at any of the Jandy emulators? I'm wondering if these can be decompiled to help figure out the protocol.
I have a similar post regarding the Jandy protocol. control-your-jandy-equipment-from-your-pc-with-a-15-adapter-t28409.html
I have also been posting at another forum where I get a lot of electronics help: http://doityourselfchristmas.com/forums ... ight=jandy

Here is the hex that I've been able to extract from my one touch panel:
... 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 30
00 42 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 31
00 43 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 32
00 44 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 33
00 45 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 38
00 4A 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 39
00 4B 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 3A
00 4C 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 3B
00 4D 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 48
00 5A 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 49
00 5B 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 4A
00 5C 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 4B
00 5D 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 50
00 62 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 51
00 63 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 52
00 64 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 53
00 65 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 58
00 6A 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 59
00 6B 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 5A
00 6C 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 5B
00 6D 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 60
00 72 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 61
00 73 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 62
00 74 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 63
00 75 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 08
00 1A 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 09
00 1B 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 0A
00 1C 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 0B
00 1D 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 41
00 53 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 40
09 BB 2F 45 10 03 10 02 00 01 00 00 13 10 03 10 02 40
04 00
45 51 55 49 50 4D 45 4E 54 20 53 54 41 54 55 53 (EQUIPMENT STATUS)
12 10 03 10 02 00 01 00 00 13 10 03 10 02 40
04 02 20 20
46 49 4C 54 45 52 20 50 55 4D 50 (FILTER PUMP)
20 20 20 20 10 03 10 02 00 01 00 00 13 10 03 10 02 40
04 03 20 20 20 20 20 20
53 41 4C 54 (SALT)
20 20 20 20 20 20 0D 10 03 10 02 00 01 00 00
13 10 03 10 02 42


00 54 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 43
00 55 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 10 00 (END?)
00 22 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 11
00 23 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 12
00 24 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 13
00 25 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 18
00 2A 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 19
00 2B 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 1A
00 2C 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 1B
00 2D 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 20
00 32 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 21
00 33 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 22
00 34 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 23
00 35 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 28
00 3A 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 29
00 3B 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 2A
00 3C 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 2B
00 3D 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 30
00 42 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 31
00 43 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 32
00 44 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 33
00 45 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 38
00 4A 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 39
00 4B 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 3A
00 4C 10 03 10 02 40 02 BB 2F 16 0C E0 40 10 03 10 02 00 01 00 00 13 10 03 10 02 3B
00 4D 10 03 ....
 
I've been working on the goldline controller and I can turn lights, valve, motor etc on and off. My results are shown on my site
draythomp.blogspot.com under the swimming pool tab at the top. What your seeing is multiple updates to the remote control from the controller and the remote controll telling the controller it's there. These devices are designed to constantly send data so the controller can put up the various messages one after the other. Additionally, they send data formated for multiple remotes. Things like 20 characters wide by 4 lines tall vs 2 lines of 16 characters.

Now, just to give you even more trouble, they send bit patterns that represent the various leds on the remotes. There is some bit in there that represents valve2. When the bit is a one, the valve is open, when the bit is zero, the valve is closed; this will correspond to the led being on or off.

Now, let's add another level of complexity to it. The buttons on the remote don't necessarily correspond to the led bits. So one bit will tell you that the valve is on and a completely different bit may well tell the valve to close. Also, they sometimes blink the led by sending one packet with the led on and a second with the led off, even though there's another bit that corresponds to the led that is set to tell it to blink.....go figure.

Soooo, to conquer this: set your packet capture code to separate the packets at the 10 02 and 10 03 (start and end)
so you get things like: 10 02 ......stuff.....10 03. For now, ignore the packets that don't fit the pattern (more on that below).
Put a second line below the first one of the packet, this second line will be simple ascii so you can read the text that is flying by.

10 02 .......stuff........10 03
ascii text here

You'll be surprised by the amount of text they are sending for the various remote controls. I went so far as to use a fixed width font and line up the characters directly underneath the hex translation of the packet.

Now, watch the remote and the packets and you'll see the display correspond to the packets being sent in some fashion. That's not too valuable, but it will show you more about what is going on.

To decode, push a button, see what happens. You will see the packet that commands the controller to do something, and the response back from the controller to the remote. I saw the command packet, a packet for the leds and another one for the display. Your system may work differently.

Ok, RS485 used like they use it is subject to collisions. A collision is when two devices try to send at the same time. This will destroy packets by chopping them in half or smashing characters. Hence the checksums. The checksums will often be wrong because the packets got clobbered and that's why they send them multiple times...over and over and over. So, you will eventually be required to check the checksums to be sure the data got to you OK, but for decoding and getting started you probably should ignore them. Once you're trying to do some testing, you MUST use them.

On my site I posted the code that I developed to decode the messages and send commands. It will probably work for you once you have enough information to know where the bits are and what to do with them. Heck, it may even work now in some limited fashion since the protocol looks to be almost the same.

One last thing and then I'll shut up. There are other things on the RS485 buss that are not directly related to the remote to controller interaction. There could be commands to the motor if you have variable speed, commands to some heater, comands to some other device that I haven't thought of. Don't let that stuff distract you, conquer the controller first then go after the other stuff.
 

Enjoying this content?

Support TFP with a donation.

Give Support
Thread Status
Hello , This thread has been inactive for over 60 days. New postings here are unlikely to be seen or responded to by other members. For better visibility, consider Starting A New Thread.