Zuntara / Arduino.Pentair

Arduino code for Pentair Intelliflo Wisperflo VS(D)
MIT License
22 stars 0 forks source link

Figure out the connection to the intelliflo vsd pump #1

Open Zuntara opened 7 years ago

Zuntara commented 7 years ago

Need to figure out which pins i need to connect to get RS485 working. Some other sites point out to use the pentair connection cable (which i don't have) - is there something build-in the cable to allow the communication?

When i connect to pins 6 and 7 of the connector (bottom and bottom-left) then my rs485 shields its RX port is constant on.

Checklist:

Zuntara commented 7 years ago

Summary of pab014share.zip which helped a lot!

Looks like the pump only reacts when it receives the correct message(s), we need to act as a controller who will constantly communicate with the pump.

The format is:

<ldb> <sub> <dst> <src> <cfi> <len> [<data>] <ckh> <ckl>

<lpb> - leading packet byte, 0xa5
<sub> - ?
<dst> - destination address
<src> - source address
<cfi> - command/function/instruction
<len> - size of data field (may be 0!)
<data ...>
<ckh> - most significant byte of checksum
<ckl> - least significant byte of checksum

In the message the FROM and DEST part indicate the addresses of the devices:

Apart from unsolicited broadcasts, information exchange is done by a device A sending a message to device B and device B sending an answer to device A. Messages for simple exchanges only differ in the fact that and are swapped. For example:

- C: A5 00 60 10 04 01 ff 02 19
- P: A5 00 10 60 04 01 ff 02 19

is a request from the controller to the pump to turn panel control off, which enables it to send other commands to the pump. The pump confirms the action in the answer. The following sequence will turn panel control back on:

 - C: A5 00 60 10 04 01 00 01 1A
 - P: A5 00 10 60 04 01 00 01 1A

It has to be in FILTER mode AND Started to make it go.

Unlike other controllers, which take over full control of the pump, the IntelliComII grabs control only for a short interval of time, every 30 seconds, to communicate what external program to run. If all inputs are off it does not even do that after it has had a respone from the pump.

More decoding of binary data from an IntelliTouch controlled system with a VS pump surfaced that there is a status report from the pump. It is only obtainable when the pump is in remote control.

C: A500 d=60 s=10 c=07 l=00 <011C> SEND status
P: A500 d=10 s=60 c=07 l=0f 0A0602024A08AC120000000A000F22 <028A>

        RUN 0a   Started
    MOD 06   Feature 1
    PMP 02   ? drive state
    PWR 024a  586 WATT
    RPM 08ac 2220 RPM
    GPM 12     18 GPM
    PPC 00      0 %
    b09 00   ? 
    ERR 00   ok
    b11 0a   ? 
    TMR 00   0 MIN
    CLK 0f22 15:34

The above sequence is embedded within the cyclic exchange of data between the controller and the pump. The full cyclic sequence is:

    C: A500 d=60 s=10 c=04 l=01 FF       <0219> SETCTRL remote
    P: A500 d=10 s=60 c=04 l=01 FF       <0219> CTRL is remote
    C: A500 d=60 s=10 c=01 l=04 02E40012 <0212> WRITE (18) to 0x02e4
    P: A500 d=10 s=60 c=01 l=02 0012 <012A>     VALIS (18)
    C: A500 d=60 s=10 c=05 l=01 06       <0121> SETMOD 06 (Feature 1)
    P: A500 d=10 s=60 c=05 l=01 06       <0121> MOD is 06
    C: A500 d=60 s=10 c=06 l=01 0A       <0126> SETRUN 0a Started
    P: A500 d=10 s=60 c=06 l=01 0A       <0126> RUN is 0a Started
    C: A500 d=60 s=10 c=07 l=00          <011C> SEND status
    P: A500 d=10 s=60 c=07 l=0f 0A0602024908B1120000000A000F22 <028E>

The controller never releases the pump as long as it is in AUTO mode. The display on the pump shows "Display not active..." and the LEDs above FEATURE 1 and START/STOP are on. Experiments with my pump showed that one can change the GPM setpoint 0x02e4 on the fly, it follows it! If the controller releases the pump the cyclic sequence changes to:

    C: A500 d=60 s=10 c=04 l=01 00 <011A> SETCTRL local
    P: A500 d=10 s=60 c=04 l=01 00 <011A> CTRL is local

It is important for any serious controller implementation to know when a pump runs into trouble and the Pentair IntelliFlow VS is fully capable of doing that!

Zuntara commented 7 years ago

The RS485 bus seems to collapse in voltage when i connect the shield !?

norcal88 commented 6 years ago

Hello, and thanks for this project, I also have an Intelliflo pump and am trying to use Arduino for control. Were you ever able to figure out this issue?

Currently, if I use the serial software port I get a "Display Not Active" message, which I believe means that communications of some sort happened. The hardware serial port never changes the pump. However, neither software nor hardware receive any messages from the pump, and the pump has never turned on or off from my messages.

Just wondering if you are still working on this, or is it abandoned? Thanks!

Guillaume1977 commented 5 years ago

Hello Zuntara, norcal88,

I have an Intelliflo WisperFlo VS pump too. I'd like to communicate with this pump. There is a 4 pins connector: IMG_8171

Could you tell me where you found the connection diagram?

THanks by advance.

Have a nice day.

Guillaume

hartmms commented 5 years ago

I would look in this thread.

XMaarten commented 4 years ago

@Zuntara Where you able to use your code in production?

I would like to do the same thing as you tried 3 years ago...