Intelliflow pump RS485 protocol

miru

New Member
I have read threads in this forum that deal with the communication of the Pentair Intelliflo pump. Did anybody ever figure out how to do it and can tell me the baudrate, parity, stop bits and the protocol? I gathered from dbean's work it is a binary protocol with a checksum. My Intelliflow (it is standalone) will not talk to me at all, nor is it emitting any messages.
Thanks,
Michael
 
I have read threads in this forum that deal with the communication of the Pentair Intelliflo pump. Did anybody ever figure out how to do it and can tell me the baudrate, parity, stop bits and the protocol? I gathered from dbean's work it is a binary protocol with a checksum. My Intelliflow (it is standalone) will not talk to me at all, nor is it emitting any messages.
Thanks,
Michael

Here's a link that may give you a couple more leads: http://ths.gardenweb.com/forums/load/pools...2063326726.html
 
I have read threads in this forum that deal with the communication of the Pentair Intelliflo pump. Did anybody ever figure out how to do it and can tell me the baudrate, parity, stop bits and the protocol? I gathered from dbean's work it is a binary protocol with a checksum. My Intelliflow (it is standalone) will not talk to me at all, nor is it emitting any messages.

The protocol uses 9600-8-N-1 over two wire (half duplex) RS-485. I use it without flow control. I dont know if that's intended however. I do get the odd checksum error on occasion but havent bothered to track them down. I havnt figured out much more about the hardware. They dont seem to terminate the RS485 bus but do imply that you can put quite a few devices on it. I've noticed that it can get unreliable with just 5 devices.

I use my pump in conjunction with the the Intellitouch panel and accessories. While I can monitor many of the pump's operating parameters, I havent tried to initiate communication with it. The only control I have over it is by sending "relay" commands to the Intellitouch panel.

Each protocol message seems to follow this format:
00 ff a5 01 <src> <dst> <cmd> <dlen> <data*dlen> <csH> <csL>

It's hard to say if the '00 ff a5 01' is an end marker followed by a header or if it is the message separator. For my purposes, treating the sequence as a message separator works great. <src> <dst> <cmd> and <dlen> are all one byte. I am not sure that <src> and <dst> are really the source and destination of the message, but I have found some correlation between the messages generated and pushing buttons on the control panel. The <cmd> field says how to interpret the message data while <dlen> says how many bytes are in the message. <csH> and <csL> are the high and low order bytes of the checksum.

The checksum is nothing fancy. It's just an unsigned two byte integer sum of the data bytes in the message starting and the a5 and including everything up to the <csH>. Because the 'a5 01' is included in the checksum I suspect that those bytes are actually part of the message, like a protocol version or something. This would make the 'ff' a start of message and the '00' an end of message. But like I said before, it doesnt really matter unless you can figure out what the 'a5 01' really mean.

Armed with this information and an already functioning system, you too can start decoding messages. I when had the time, I would just push buttons and watch what happened on the wire. Much of it was really obvious (date, time, temp, pump speed and power) and much of it wasnt (programming the pump schedule).

With luck I'll have the the time to open my pool soon and start playing again.
 
Thanks dBeau!

I may attempt to implement a library in .Net if I ever get the time, this information will save huge amounts of time for me and to anyone attempting to do this in the future.

Now I wonder if the Tc15 ethernet adapter OEM'd from Homelogic for the screenlogic software just puts this protocol unencrypted over tcp/ip.

Justin
 
Thanks, dBeau! This gives me a good starting point. I went to a friends house this morning, he has one of these systems, and snooped on the RS485. It does communicate on 9600N81. I also captured some messages and will try to make sense out of them.
Michael
 
Now I wonder if the Tc15 ethernet adapter OEM'd from Homelogic for the screenlogic software just puts this protocol unencrypted over tcp/ip.

I have the screenlogic set up too. I have not tried to analyze the protocol between the software and the adapter. When I first set it up I couldnt figure out how to get it to sit on my local subnet. Instead I had to use the router they included with the package (gee no wonder it was so expensive!) It's really nuts that they expect you to run a separate network just to use their devices. Eventually I got it over to the same subnet I use for everything else. I just havnt had the time to dig into it.

BTW, for RS485 connectivity I use a serial to TCP adapter.
 
Now I wonder if the Tc15 ethernet adapter OEM'd from Homelogic for the screenlogic software just puts this protocol unencrypted over tcp/ip.

I have the screenlogic set up too. I have not tried to analyze the protocol between the software and the adapter. When I first set it up I couldnt figure out how to get it to sit on my local subnet. Instead I had to use the router they included with the package (gee no wonder it was so expensive!) It's really nuts that they expect you to run a separate network just to use their devices. Eventually I got it over to the same subnet I use for everything else. I just havnt had the time to dig into it.

BTW, for RS485 connectivity I use a serial to TCP adapter.

Hah, yes, I wondered if the included router was for real, and if it was really needed. I haven't purchased the ethernet interface yet, but the iPhone app for it has pretty much sealed the deal. I suppose they just want the network to just work with their pda and tablets with no setup. So does it just use DHCP to get an address or is there some setup software?
 
Hah, yes, I wondered if the included router was for real, and if it was really needed. I haven't purchased the ethernet interface yet, but the iPhone app for it has pretty much sealed the deal. I suppose they just want the network to just work with their pda and tablets with no setup. So does it just use DHCP to get an address or is there some setup software?

It's a standard D-Link WiFi router. Everything is defaulted to 192.168.1.0/24.

I agree with your guess, BTW. I cant blame them for not wanting to educate the pool builders in the ways of routers and IP connectivity. The pool builders who have seen my set-up have all been pretty puzzled.
 
Newbie question: I have only the Intelliflo pump. Can the ILink adapter talk directly to the pump without the Intellitouch controller?
 
Newbie question: I have only the Intelliflo pump. Can the ILink adapter talk directly to the pump without the Intellitouch controller?

From what I can tell no, the i-Link has commands for temperature and circuits, so it would only talk to the intellitouch panel, which would then talk to the pump. They are all sitting on the same rs485 bus, but the i-Link only translates a small subset of whats going on the bus.
 
From what I can tell no, the i-Link has commands for temperature and circuits, so it would only talk to the intellitouch panel, which would then talk to the pump. They are all sitting on the same rs485 bus, but the i-Link only translates a small subset of whats going on the bus.
[/quote]
So, a homebrew RS-485 controller could talk to the pump directly if we knew the protocol that IntelliTouch communicates with IntelliFlo. What we need is to hack the protocol between IntelliTouch panel and IntelliFlo pump, eliminating need for expensive add-on interface. For now, I will make an electromechanical actuator for the 4 buttons! (or just buy the IntelliComm box).
 
Maybe I missed it, or it's brand new: Intellicomm II interface at $203! Way less than the $500 Intellicomm.
Looks to me like they are waking up. Now, if they would publish their Rs485 communication protocol and API to the VS pump, they would be way ahead of everybody else.
Michael
 
I have read threads in this forum that deal with the communication of the Pentair Intelliflo pump. Did anybody ever figure out how to do it and can tell me the baudrate, parity, stop bits and the protocol? I gathered from dbean's work it is a binary protocol with a checksum. My Intelliflow (it is standalone) will not talk to me at all, nor is it emitting any messages.

The protocol uses 9600-8-N-1 over two wire (half duplex) RS-485. I use it without flow control. I dont know if that's intended however. I do get the odd checksum error on occasion but havent bothered to track them down. I havnt figured out much more about the hardware. They dont seem to terminate the RS485 bus but do imply that you can put quite a few devices on it. I've noticed that it can get unreliable with just 5 devices.

I use my pump in conjunction with the the Intellitouch panel and accessories. While I can monitor many of the pump's operating parameters, I havent tried to initiate communication with it. The only control I have over it is by sending "relay" commands to the Intellitouch panel.

Each protocol message seems to follow this format:
00 ff a5 01 <src> <dst> <cmd> <dlen> <data*dlen> <csH> <csL>

It's hard to say if the '00 ff a5 01' is an end marker followed by a header or if it is the message separator. For my purposes, treating the sequence as a message separator works great. <src> <dst> <cmd> and <dlen> are all one byte. I am not sure that <src> and <dst> are really the source and destination of the message, but I have found some correlation between the messages generated and pushing buttons on the control panel. The <cmd> field says how to interpret the message data while <dlen> says how many bytes are in the message. <csH> and <csL> are the high and low order bytes of the checksum.

The checksum is nothing fancy. It's just an unsigned two byte integer sum of the data bytes in the message starting and the a5 and including everything up to the <csH>. Because the 'a5 01' is included in the checksum I suspect that those bytes are actually part of the message, like a protocol version or something. This would make the 'ff' a start of message and the '00' an end of message. But like I said before, it doesnt really matter unless you can figure out what the 'a5 01' really mean.

Armed with this information and an already functioning system, you too can start decoding messages. I when had the time, I would just push buttons and watch what happened on the wire. Much of it was really obvious (date, time, temp, pump speed and power) and much of it wasnt (programming the pump schedule).

With luck I'll have the the time to open my pool soon and start playing again.


Did you ever figure out this protocol? I have many of the pentair devices and need a better way to talk to it on my own screens. Thanks
 
Did you ever figure out this protocol? I have many of the pentair devices and need a better way to talk to it on my own screens. Thanks
I did to the extend that I needed. I only have to talk to an Intelliflow VS pump to make it go/stop, change speed and report status... to implement my own controller. Got everything working around the beginning of this year and had no problems since. I am also using the same bus to communicate between the 'house' computer and the pool controller. If you can read C and are interrested, I can send you the code I used to test/investigate the bus from a Linux system connected through an RS485 adapter.
Michael
 
Back
Top