millst

New member
Oct 16, 2022
2
New Zealand
Hello
I have a zodiac pump which uses the Jandy rs485 protocol.
I want to throw away the controller and control the VSP pump directly from a home automation system and read back the RPM and power.
There are heaps of old threads on this topic refering to the Jandy pump protocol which someone reverse engineered and created a PDF for, but all the links to this document are dead.
I found a couple of bits of code which refer to a 'set demand' message and a 'go' message and using this I can start and stop the pump at full speed.

send motor the "set demand" command in Jandy format
10 02 78 44 00 10 00 27 05 10 03 - Jandy command
10 02 00 1F 44 00 10 27 00 AC 10 03 - Motor responds!!!

then
10 02 78 41 CB 10 03 - go command
10 02 00 01 41 00 54 10 03 - motor's response and motor starts!!!!

This works great
But what I really need is to find the document or some code which explains what each byte is for so that I can send a customized demand request and calculate the correct CRC to tag on the end of the message.
I am sure someone has this document lying around and could upload it or may be has some code running in their own system so we can keep links to this information alive and people can continue to develop their own solutions without having to reverse engineer the protocol every time.

Cheers
 
Welcome to TFP.

What threads have the broken link to the PDF you are looking for?
 
Are you talking about a controller like AquaLink or do you mean the controller on the pump itself?

Your best bet is to take a look at the NodeJS Pool Controller project in GitHub.

The Nixie standalone controller can already control Pentair and Hayward pumps.

It has a feature called Message Manager that can listen on the wire for data sent/received.
 
Last edited:
Are you talking about a controller like AquaLink or do you mean the controller on the pump itself?

Your best bet is to take a look at the NodeJS Pool Controller project in GitHub.

The Nixie standalone controller can already control Pentair and Hayward pumps.

It has a feature called Message Manager that can listen on the wire for commands sent/received.

Message Manager · rstrouse/nodejs-poolController-dashPanel Wiki
no not talking about Aqualink, I want to directly control the motor.
I can talk to the motor ok and read messages fine, what I'm struggling with is the checksum for the Jandy protocol.
Everything I read says it should be a sum of the first 6 bits.
But in the example messages (that work with the pump great) the checksum doesn't seem to work like this.
for example, hex 10 + 02 + 78 + 44 + 10 should be 0x00 0xDE or 222,
but in the test messages, its 0x27 0x05 which is 9989.
I just can't figure out how to get 0x27 0x05 from 10,02,78,44,10
 
Last edited:
The protocol in this instance is very simple.
[0x10, 0x02] = Preamble
[0x78] = Destination Address
[0x44] = Action Byte
[0x00, 0x10, 0x27] = Payload
[0x05] = Checksum
[0x10, 0x03] = Terminator

In the Jandy protocol it appears that it calculates a two-byte checksum but only uses the least significant byte.

So 0x10 + 0x02 + 0x78 + 0x44 + 0x00 + 0x10 + 0x27 = 0x105 & 0x00FF = 0x05
 
Last edited:
  • Like
Reactions: guinness
A member on this forum found a document for Century (Regal-Beloit) variable speed motors like VGreen 165.

It has similar commands to Jandy which are 0x41 for Go, 0x42 for Stop, 0x43 for Status and 0x44 for Set Demand.

It's not surprising since various manufacturers like Zodiac/Jandy use Century motors in their own pump models.

If you would be willing to help integrate Jandy pumps into njsPC your contribution would be much appreciated.
 
Last edited:
Yes I saw your posts in the thread below. Perhaps you and millst will be able to make some progress w/ Jandy.

 
Yes I saw your posts in the thread below. Perhaps you and millst will be able to make some progress w/ Jandy.

Yes I am trying Janday now if you have any information please share
 

Enjoying this content?

Support TFP with a donation.

Give Support
Hello
I have a zodiac pump which uses the Jandy rs485 protocol.
I want to throw away the controller and control the VSP pump directly from a home automation system and read back the RPM and power.
There are heaps of old threads on this topic refering to the Jandy pump protocol which someone reverse engineered and created a PDF for, but all the links to this document are dead.
I found a couple of bits of code which refer to a 'set demand' message and a 'go' message and using this I can start and stop the pump at full speed.

send motor the "set demand" command in Jandy format
10 02 78 44 00 10 00 27 05 10 03 - Jandy command
10 02 00 1F 44 00 10 27 00 AC 10 03 - Motor responds!!!

then
10 02 78 41 CB 10 03 - go command
10 02 00 01 41 00 54 10 03 - motor's response and motor starts!!!!

This works great
But what I really need is to find the document or some code which explains what each byte is for so that I can send a customized demand request and calculate the correct CRC to tag on the end of the message.
I am sure someone has this document lying around and could upload it or may be has some code running in their own system so we can keep links to this information alive and people can continue to develop their own solutions without having to reverse engineer the protocol every time.

Cheers
Hello @millst

I am also trying to do the same Jandy VSP interfacing with my board

1668240956739.png 1668240980751.png


As per RS485 standard, we know A B GND, but in Jandy using colors GREEN YELLOW BLACK RED so
I am thinking
RED = +ve
Black = GND
Could you please tell me what Green Yellow means which is A and which is B?
and But when I tested the volttage level

RED to BLACK - 0V

RED to YELLOW - ~10V
RED to GREEN - ~10V

BLACK to YELLOW - ~0V
BLACK to GREEN - ~0V

and what is the baud rate you kept for your test where VSP is working
 
Up to 32 devices can be connected via the same RS-485 bus with each needing a unique address. Jandy must have implemented an auto-addressing protocol that allows devices to be assigned addresses. I think this works by the controller sending a special broadcast message and devices respond accordingly. If someone had an Aqualink they could listen on the wire to see that message and what the responses were. Someone on the AqualinkD repo might have a better idea of how this works so I would ask there.
 
I would be willing to bet that the Jandy pump addresses start at 0x78 and end at 0x87 depending on model. This is similar to Pentair and Hayward where each equipment type has a range of reserved addresses. Pentair uses 0x60 to 0x6F. I remember back when you were trying to get a handle on the TriStar pump addresses. Since then, there have been several that have successfully implemented that pump on njsPC.

I took a look at the Jandy stuff and they use a probe mechanism where they scan all the address ranges. In theory it should be easier to set up but what ends up on the bus is a whole lot of traffic to probe for devices that do not exist. Theoretically, there are up to 256 potential addresses that can be connected to the RS485 bus given the protocol. However, there is a 32 device limit is due to electrical loading on the driver.
 
  • Love
Reactions: guinness
@guinness - you are correct might be Jandy is using auto-addressing protocol but unfortunately, I don't have Jandy Controller with me to sniff the packet going through the wire

@rstrouse - Yes Pentoar also doing some kind of different logic -- in the VSP display address the setting is from 1 to 16 but in the RS485 packet it will look for from 0x90 to 0x6F

and in Hayward, they have HUA logic but in Jandy, VSP PCB two DIP SW is there so max 4 we can -- but it should support up to 32 VSP

if anyone is having jandy controller and Jandy VSP could you please sniff the packets and let me know
 

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.